Möchte man sich nur Teile eines Mesh anschauen, kann man sich auf diese Weise sein Modell zusammenschneiden.
Es entsteht ein Teilmesh im Innern des Quaders
https://github.com/microelly2/freeCAD_macro/blob/master/misc/commonmesh.py
Wie erstellt man eine Schuhsohle?
Den Fuß näherungsweise als Streckenzug zeichnen, aus den Punkten eine schöne Kurve gestalten, die anschließend verkleinert unter den Fuß und vergrößert außen am Fuß nach oben gezogen wird.
Die drei Hilfskurven werden mit Part::Offset2D erzeugt und als BSpline zu einer schönen abgerundeten Form zusammengefasst.
Für große Datenmengen kan man zunächst eine Punktwolke erzeugen und daraus dann die Hüllflächen für einen Mesh generieren.
Im Beispiel werden in einem 1 m großen Würfel die Hüllen von 5000 Kugeln erzeugt. Bei einer Näherung auf 1 mmm Genauigkeit sind das 40 Millionen Punkte. Die Idee besteht darin, schichtenweise mittels der Bildbearbeitungsmethoden von OpenCV Schnitte zu erzeugen und diese Schichten dann im Raum anzuordnen. Die Bildbearbeitung kann schnell Kreise zeichnen und Hüllkurven finden.
Die beiden grundlegenden Nethoden sind
cv2.circle(img,(x,y),r, 255, -1)
edges = cv2.Canny(img,100,200)
Die Punkte liegen genau auf dem 1 mm Raster und können deshalb einfach zu Flächenteilen umgerechnet werden. Die für QuadMesh oder Nurbs notwendige Struktur ist schon vorbereitet.
Wie erzeugt man eine abgerundete Ecke, die drei abgerundete Kanten verbindet?
Eine solche Fläche lässt sich mit einem BSpline Surface mit 4 x 4 Polen darstellen Die “äußeren” Polesorgen für den Übergang zu den Kanten-BSplines und innen bleiben 4 Pole frei parametrisierbar, mit denen die Form der Rundung geändert werden kann.
Im Beispiel sind die inneren Pole alle auf einen Punkt zusammengefasst.