edwardvmills / Silk

NURBS Surface modeling tools focused on low degree and seam continuity (FreeCAD Workbench)
https://edwardvmills.github.io/Silk/
62 stars 11 forks source link

Create the surrounding ruling surfaces for a four corner surface #21

Closed parnasist3 closed 1 year ago

parnasist3 commented 3 years ago

Hi Edward, hope you are alright? We haven't heard from you in a while?

I created a topic General surface creation with emills2 "Silk" in the FreeCAD forum where I asked you if you could show me how to create a general surface. Where the hard part is to create the surrounding ruling surfaces.

The ruling surfaces shall be created in such a way that each corner is forced to be, at least, tangent to the local plane. This will gaurantee tangency with the neighbouring surfaces.

As can be seen in the model, the first corner-point is parent for the other three corner-points. Each corner-point is parent for the two vector-points making up the ends of the directional vectors per corner. Each plane is defined by the corners directional vectors/lines, hence creating a way of forcing everything to be, at the very least, tangent to each other.

So, by having everything connected to the first point it is easy to move the whole package around with just one set of [x,y,z] values and still having everything fully parametric.

But the best part is that it will be rock steady with respect to TopoNaming!

edwardvmills commented 1 year ago

Comments already in post linked above. Final notes before closing the github issue:

By my estimation, the above request asks for a setup where the only difference to the 'normal' Silk workflow lies entirely on the FreeCAD side of things. namely, the creation and handling of planes.

If you already have created 4 planes floating in space, using FreeCAD sketches to draw control nodes on those planes will result in Silk curves and surfaces that are tangent to those planes. The normal workflow produces the desired result.

If you create multiple curves/surfaces by drawing more nodes on those planes, and aligning the nodes (using sketch constraints, for example), the resulting surfaces will connect. This is the fundamental task that Silk performs, and has since day one.

As an example, see this post,(https://old.reddit.com/r/FreeCAD/comments/wp2f47/bevel_tool_no_good_try_the_silk_workbench/), where the user has drawn sketches on various existing surfaces to create a surface that is tangent to all reference surfaces (planar AND curved).

Silk is intended to allow users to connect smoothly to existing surfaces (planar, cylindrical, spherical, and all Silk surfaces themselves), by the use of sketches. At this time I have no desire to create or process plane objects, beyond the fact that there is already a way to do so by using sketches placed on those planes, which is the main workflow.