FreeCAD: master 1acaa5ea
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
Gabriel Wicke | Gabriel Wicke | master | 2020-05-23 21:07:29 | master 6b0b2374 |
Changeset | Path: Respect meshing tolerance settings for 3d surfaces Meshing tolerance settings for 3d surface operations were ignored since switching to directly using facets from the view tesselation. On complex 3d shapes, this could cause serious meshing artifacts in the generated paths, serious enough to show up even in path previews. Additionally, there were occasionally segfaults when a model was not viewed and thus implicitly tessellated before starting an OCL operation. This patch switches from using view tessellations to explicitly calling `tessellate()`. While this is usually more expensive than using the existing view tessellation, recent changes to parallelize tessellation have reduced this additional cost significantly. Note that this diff only restores the use of LinearDeflection, since that is the main thing we care about in OCL use cases. Angular deflection is still ignored, but I think this is a good thing for this case since a highly refined mesh in tiny but heavily curved areas below the linear deflection threshold just adds unnecessary cost. If there is agreement on this point, then we can remove the preference for AngularDeflection from the UI in a follow-up. |
|||
mod - src/Mod/Path/PathScripts/PathSurfaceSupport.py | Diff File |