Silk

NURBS Surface modeling tools focused on low degree and seam continuity (FreeCAD Workbench)

View the Project on GitHub edwardvmills/Silk

Silk Workbench

High quality & low weight surface modeling tools for design and engineering

example of current capability

Thats the goal anyway ;) it’s not perfect yet, but take a look below and decide if these results relate to your goals.

example of current capability example of current capability example of current capability example of current capability example of current capability example of current capability example of current capability example of current capability example of current capability example of current capability

Description

NURBS Surface modeling tools focused on low degree and seam continuity (FreeCAD Workbench). Silk is the new name of the NURBSlib_EVM project.

NURBS: smooth curves and surfaces whose form is controlled by a relatively small number of “control points”, which sort of float close to the curves and surfaces. As their name indicates, the “control points” are what the user modifies in order to control the curves or surfaces. The “refinement” of a NURBS is controlled by its degree, and the “distance of effect” of a control point is controlled by the knot vector of the NURBS.

example of current capability

Low Degree: Silk NURBS curves and surfaces are of the minimum degree suitable for the intended goal. The knot vectors are kept to a small consistent set. Often with NURBS modeling problems, the apparent solution is to increase the degree and number of knots. While this is perfectly valid, it raises the computational difficulty and organizational challenges of the control points. Silk aims to provide tools of the absolute minimum mathematical complexity for each problem solved.

Seam Continuity: Silk’s goal is to allow complex models to be built from individual NURBS sections, alternatively creating new surfaces to be continuous to existing surfaces, or providing tools to to create smooth transitions where surfaces are initially created with discontinuities.

FreeCAD does the heavy lifting:

-providing a planar sketch interface that we can locate anywhere in 3D space to manipulate simple groups of very few control point (Silk can use multiple sketches in different planes to construct truly 3D curves and surface edges).

-drawing the beautiful and smooth surfaces once appropriate control grids have been prepared using Silk tools.

Silk merely provides methods for combining these simple sketches into control point grids, which FreeCAD converts to NURBS surfaces.

The animation below demonstrates fine surface tuning through sketches with full engineering control of curve and surface continuity. Notice the low number of control points used on the profile control sketch. Up to a certain complexity, Silk updates virtually in real time with sketch editing.

example of current capability

Limitations

Although Silk is intended to provide efficient and user friendly tools in the long term, at this time, it behaves more like a low level library with GUI access to its functions. The individual functions create individual document objects, and in the future, relevant functions might be chained together automatically to create complex nested objects. The current objects are very likely to persist, both as individual document objects, and as sub-objects in the future.

Modeling can be done in the current state, and the resulting data structures are efficient, but the process can be laborious. The best path forward for user friendliness will depend heavily upon the outcome of several debates within the FreeCAD community on how parts, solid bodies, assemblies, and object linking are organized.

In the meantime Silk does offer a few tools not otherwise available in FreeCAD (eg. 3D splines), and can in general be seen as a sandbox for surface design, control strategies, data structures, and algorithms.

example of current capability example of current capability

Installation

Recommended installation is through the FreeCAD Addon Manager via Tools -> Addon Manager

Documentation

Until documentation and tutorials are rewritten for Silk, NURBSlib_EVM is the best source of information regarding the project. The tutorials can still be followed, simply skip setup, color, and display mode instructions. All setup is handled by installing the workbench, and the object display properties have been set to reasonable defaults. (Silk Wiki in progress)

Licence

All program files (.py, .pyc, .FCMacro) are offered under the terms of the Gnu gpl-v3.0

gplv3

Icon .svg files, icon .png files, demo models .FCStd files, and tutorial model .FCStd files are offered under the terms of CC-BY 4.0

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.