Created by: portnov
The plan is to add:
-
Support of FreeCAD's implementation of Nurbs curves and surfaces - Update existing nodes:
-
"Solid Edges" and "Solid Faces" output NURBS curves / surfaces -
"Solid Faces" node has additional "TrimCurves" output - outer edges of each face in U/V coordinate space of that surface, for use as trimming curve
-
- Face creation nodes:
-
"Polygon Face" - make a Face from a polygon defined by usual Sverchok's Vertices and Faces; the polygon must be flat. -
"Face from Curves" : build a flat face with curvy edges, by making a face from one or several Curves, representing face's outer edges; -
"Cut Surface to make a Face": build a curve face from a trimmed Surface; the only way I know to trim a Surface in FreeCAD API is to take a Curve somewhere in 3D space, and then project it onto surface (two methods of projection are available: parallel - along a vector, and perspective - from a point). Better name for this node is welcome.
-
- Solid creation nodes:
-
"Extrude Face (Solid)" node (extrude face along vector, UI for face.extrude
method) -
"Solidify Face (Solid)" node (make a solid by offsetting the face, UI for face.makeOffsetShape
method) - feel free to offer a better name -
"Revolve Face (Solid)" node (make a solid of revolution from a face, UI for face.revolve
method) -
"Sweep Face (Solid)" node (sweep a face along a curve, UI for Part.BRepOffsetAPI.MakePipeShell
) -
"Solid from two Faces" node: given two Faces ("floor" and "ceil"), make a Solid by connecting edges of these faces by ruled surfaces ("walls"). This works only when two faces have exactly the same number of edges. Moved to Alpha nodes, because gives weird results too frequently, and in company with Booleans causes crashes :/
-
-
"Split Solid by Face" node: take a Solid and cut it into two (or more) parts with a Face. -
"Project Curve on Surface (NURBS)" node. -
"Helix" node
Only NURBS and NURBS-like curves and surfaces are supported (at least for now).
I had the following options:
a) for all three solid-making nodes, support a switch which would allow different modes of how to provide a Face; b) add a new socket class for Solid Face, and three additional nodes to make Faces. c) add additional nodes to make Faces; use SvSurfaceSocket for faces, with SvSolidFaceSurface class
At the moment I like c) the most.
@vicdoval @zeffii your opinion?
NURBS interpolation + Coons Surface + Extrude Face + Solid Boolean:
Make a Ruled Surface from two interpolated curves, cut a Face from it by perspective projection of some Circle, then solidify this face, then cut holes with boolean:
Cut a Cone by some surface ("split solid by face"), take a central part and make a hole in it with Boolean:
Preflight checklist
Put an x letter in each brackets when you're done this item:
-
Code changes complete. -
Code documentation complete. -
Documentation for users complete (or not required, if user never sees these changes). -
Manual testing done. -
Unit-tests implemented. -
Ready for merge.