"Refine shape" flips normals
Forum rules
and Helpful information
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help
Also, be nice to others! Read the FreeCAD code of conduct!
Also, be nice to others! Read the FreeCAD code of conduct!
"Refine shape" flips normals
Refining shape causes some transparent faces on special parts.
Is there a way to make them two-sided?
Version 0.13
Rev. 0681
Windows Vista (32-bit)
Is there a way to make them two-sided?
Version 0.13
Rev. 0681
Windows Vista (32-bit)
Re: "Refine shape" flips normals
Can you upload this example? And what do you mean with transparent in context with refining?Refining shape causes some transparent faces on special parts.
In the property editor you can set Lighting to Two-sided.Is there a way to make them two-sided?
Re: "Refine shape" flips normals
After I run "Refine shape" on part WB some faces seems transparent so you can look through them.wmayer wrote: Can you upload this example? And what do you mean with transparent in context with refining?
This is typical when normals of faces flip to the other side. One way is to select this faces and flip the normal to the other side or to make them two-sided so they are opaque from both side.
Sorry, but I can't find the property editor.wmayer wrote:In the property editor you can set Lighting to Two-sided.
In this example you can see it on the right mount.
- Attachments
-
- Y_Rod_Mount_ refined.FCStd
- (90.28 KiB) Downloaded 96 times
Re: "Refine shape" flips normals
The face is not transparent, it is lost! This is very likely a bug in the refinement algorithm.After I run "Refine shape" on part WB some faces seems transparent so you can look through them.
In FreeCAD reverted faces appear in black if lighting is set to One side.This is typical when normals of faces flip to the other side. One way is to select this faces and flip the normal to the other side or to make them two-sided so they are opaque from both side.
View > Views > Combo view. Select the object and on the View tab you'll find Lighting. But as said above the face is missing, not transparent.Sorry, but I can't find the property editor.
Edit: I must partially revert what I said. The face _is_ there and its orientation is indeed reversed. But it's really missing in the visualization of the B-REP model probably because of its bad orientation. If I make a mesh from the B-REP model the face is in the mesh but with reversed normal. But the question still is: does the refinement create this invalid face?
Edit2: The answer is yes. When I disable the cylinder refinement everything is OK
- tanderson69
- Veteran
- Posts: 1626
- Joined: Thu Feb 18, 2010 1:07 am
Re: "Refine shape" flips normals
I agree. I will have a look at it.wmayer wrote:Edit2: The answer is yes. When I disable the cylinder refinement everything is OK
Re: "Refine shape" flips normals
could this "reversed in brep/ absent in model" problem be related to fillets having perfectly calculated filleted contours but ending with whole faces missing?
Re: "Refine shape" flips normals
No, this was a little bug in the cylinder refinement algorithm which is already fixed.
Re: "Refine shape" flips normals
[if this is still completely off the mark, please just ignore ]
i was talking about the very next thread on this subforum. (i had been time travellling, and got confused where to post)
not talking about the cases where the whole object disappears, which it the true limit of the fillet algo, but the ones where it clearly worked, and then changed its mind and messed up the object.
i was talking about the very next thread on this subforum. (i had been time travellling, and got confused where to post)
i was wondering, because it just looks similar, in general terms, to the particular outcome of that refinement bug. not saying one causes the others. but if the missing surfaces on bad fillets were to be present and normal flipped at the brep level, could all these bad fillets not be fixed by a fairly straightforward routine? like have the user identify a surface with good normals, then propagate the orientation to tangent/adjoining surfaces?" you can select only one edge in a chain and the fillet/chamfer will propagate to all tangent edges? Cool!
That's the default behaviour of the filleting algorithm. We have no control over this.
" Any idea why that would happen?
No, but the shape has an error: StandardError: Bad orientation of sub-shape
not talking about the cases where the whole object disappears, which it the true limit of the fillet algo, but the ones where it clearly worked, and then changed its mind and messed up the object.
- tanderson69
- Veteran
- Posts: 1626
- Joined: Thu Feb 18, 2010 1:07 am
Re: "Refine shape" flips normals
I supposed this is possible, but I would consider it a hack to make the user fix modelling data after a modelling operation. Developer time is better used preventing these corruptions than trying to build an interface to fix them. At least for the refine problem, the orientation of the bounding wire was the problem and not the surface normal. So there is more to it than just flipping surface normals.emills wrote:...like have the user identify a surface with good normals, then propagate the orientation to tangent/adjoining surfaces?
Re: "Refine shape" flips normals
I'm trying to import OpenSCAD example016 to FreeCAD. To do boolean operations with other Parts i use makeShapeFromMesh(). The resulting Part is valid but the boolean operations fails (maybe because of coplanar faces). Therefore I wanted to do a refine shape on this Part.
unfortunatly this changes the orientation of the hole Part as the Volume becomes negative. Does anyone see a solution for this problem?
Spliting the independent components first and then applying make Shape from mesh on each and do the refine Shape on each didn't solve the problem?
unfortunatly this changes the orientation of the hole Part as the Volume becomes negative. Does anyone see a solution for this problem?
Spliting the independent components first and then applying make Shape from mesh on each and do the refine Shape on each didn't solve the problem?