Surface GeomFillSurface/de

Surface GeomFüllfläche

Menüeintrag
Surface → Begrenzungskurven füllen
Arbeitsbereich
Surface
Standardtastenkürzel
Keiner
Eingeführt in Version
0.17
Siehe auch
Keiner

Beschreibung

Surface GeomFüllfläche erstellt eine parametrische Oberfläche aus zwei, drei, oder vier Randkurven mit einem möglichst glatten Übergang zwischen ihnen.

Links: Kanten, die zur Erzeugung einer Oberfläche mit dem Werkzeug GeomFüllfläche benutzt werden, 4 verbundene Kanten, 3 verbundene Kanten, und 2 getrennte Kanten. Rechts: die sich aus der Verwendung der Kanten 4, 3 und 2 ergebende Fläche.

Anwendung

  1. Es gibt mehrere Möglichkeiten, das Werkzeug aufzurufen.:
  2. Kanten in der 3D-Ansicht auswählen. Die Kanten müssen miteinander verbunden sein, sodass sie ein geschlossenes Profil bilden.
  3. OK drücken.

Hinweis: einmal erzeugt, ist es nicht möglich, weitere Einschränkungen zur erzeugten Oberfläche hinzuzufügen.

Optionen

Fill type: Stretch, Coons oder Curved.

Eigenschaften

Eine GeomFüllfläche (Klasse Surface::Filling) leitet sich von der grundlegenden Part Formelement (Klasse Part::Feature, über die Unterklasse Part::Spline) ab und teilt daher alle Eigenschaften der letzteren.

Zusätzlich zu den in Part Formelement beschriebenen Eigenschaften, hat die Füllfläche im Eigenschaften Editor folgende Eigenschaften.

Daten

Base

Ansicht

Base

Verdrehung der Oberfläche

Die Form der Oberfläche hängt von der Richtung der ausgewählten Kanten ab. Wenn Kanten ausgewählt werden und das Ergebnis eine sich selbst "verdrehende" Oberfläche ist, muss möglicherweise die Liste der Eckpunkte einer der Kanten in umgekehrter Reihenfolge angeordnet werden. Eine sich in sich selbst verdrehende Oberfläche weist wahrscheinlich Selbstüberschneidungen auf und ist daher eine ungültige TopoForm; dies kann mit Part GeometriePrüfen überprüft werden.

Zum Beispiel, wenn zwei Kurven die Punkte haben

curve1 = [a, b, c, d]
curve2 = [e, f, g]

und die resultierende Oberfläche nach Verwendung von GeomFüllfläche oder Querschnitte ist eine verdrehte Fläche, kann man eine dritte Kurve erstellen, die einer der beiden ursprünglichen Kurven entspricht, jedoch mit einer umgekehrten Liste von Punkten.

Entweder

curve1 = [a, b, c, d]
curve3 = [g, f, e]

oder

curve3 = [d, c, b, a]
curve2 = [e, f, g]

sollte funktionieren, um eine Oberfläche zu erzeugen, die sich nicht verdreht.

In der Praxis bedeutet dies, dass alle Kanten, die zur Erzeugung einer Fläche verwendet werden, vorzugsweise im Uhrzeigersinn oder gegen den Uhrzeigersinn erstellt werden sollten. Die Befolgung dieser einfachen Regel garantiert in der Regel, dass die Fläche der glattesten Richtung folgt und sich nicht verdreht.

Wenn die Eigenschaft AnsichtLighting der Oberfläche One side ist, wird eine Fläche vollständig schwarz dargestellt, wenn ihre Normalenrichtung in der 3D-Ansicht zeigt (vom aktuellen Betrachter weg), was eine gespiegelte Fläche im Vergleich zu den anderen farbigen Flächen anzeigt.

Links: Die Begrenzungskanten sind in dieselbe Richtung ausgerichtet, sodass die erzeugte Oberfläche glatt ist. Rechts: Die Begrenzungskanten weisen entgegengesetzte Richtungen auf, sodass sich die erzeugte Oberfläche um sich selbst dreht, was zu Selbstüberschneidungen führt.

Skripten

Siehe auch: Grundlagen der Skripterstellung in FreeCAD.

Das Werkzeug Surface GeomFüllfläche kann in Makros und der Python-Konsole verwendet werden und durch hinzufügen des Surface::GeomFillSurface-Objekts.

import FreeCAD as App
import Draft

doc = App.newDocument()

a = App.Vector(-140, -100, 0)
b = App.Vector(175, -108, 0)
c = App.Vector(200, 101, 0)
d = App.Vector(-135, 107, 70)

points1 = [a, App.Vector(-55, -91, 65), App.Vector(35, -85, -5), b]
obj1 = Draft.make_bspline(points1)

points2 = [b, App.Vector(217, -45, 55), App.Vector(217, 35, -15), c]
obj2 = Draft.make_bspline(points2)

points3 = [c, App.Vector(33, 121, 55), App.Vector(0, 91, 15), App.Vector(-80, 121, -40), d]
obj3 = Draft.make_bspline(points3)

points4 = [d, App.Vector(-140, 0, 45), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()

surf = doc.addObject("Surface::GeomFillSurface", "Surface")
surf.BoundaryList = [(obj1, "Edge1"),
                     (obj2, "Edge1"),
                     (obj3, "Edge1"),
                     (obj4, "Edge1")]
doc.recompute()