|
Menüeintrag |
---|
Surface → Begrenzungskurven füllen |
Arbeitsbereich |
Surface |
Standardtastenkürzel |
Keiner |
Eingeführt in Version |
0.17 |
Siehe auch |
Keiner |
Surface GeomFüllfläche erstellt eine parametrische Oberfläche aus zwei, drei, oder vier Randkurven mit einem möglichst glatten Übergang zwischen ihnen.
Left: edges that are used to generate a surface with the GeomFillSurface tool, 4 connected edges, 3 connected edges, and 2 disconnected edges. Right: resulting surface from using the 4, 3, and 2 edges, respectively.
Hinweis: einmal erzeugt, ist es nicht möglich, weitere Einschränkungen zur erzeugten Oberfläche hinzuzufügen.
Fill type: Stretch,
Coons oder
Curved.
A Surface GeomFillSurface (Surface::GeomFillSurface
class) is derived from the basic Part Feature (Part::Feature
class, through the Part::Spline
subclass), therefore it shares all the latter's properties.
Zusätzlich zu den in Part Formelement beschriebenen Eigenschaften, hat die Füllfläche im Eigenschaften Editor folgende Eigenschaften.
Basis
Enumeration
): the applied filling algorithm; Stretch, the style with the flattest patches; Coons
, a rounded style with less depth than Curved; Curved, the style with the most rounded patches.LinkSubList
): a list of edges that will be used to build the surface.BoolList
):
Basis
Bool
): it defaults to false
; if set to true
, it will show an overlay with the control points of the surface.
The shape of the surface depends on the direction of the chosen edges; if edges are selected and the result is a surface that "twists" on itself, one of the edges may need its list of vertices in the reverse order. A surface that twists on itself will probably have self-intersections, and thus will be an invalid Shape; this can be verified with Part CheckGeometry.
Zum Beispiel, wenn zwei Kurven die Punkte haben
curve1 = [a, b, c, d]
curve2 = [e, f, g]
and the resulting surface after using GeomFillSurface or
Sections is a twisted surface, you may create a third curve that is equal to one of the two original curves but with a reversed list of points.
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 practical terms this means that all edges used to generate a surface should be created preferably in the same clockwise or anti-clockwise direction. Following this simple rule usually guarantees that the surface will follow the smoothest direction and won't twist.
When the surface's AnsichtLighting property is One side
, a face will be painted completely black if its normal direction points into the 3D view (away from the current viewer), indicating a flipped face with respect to the other colored faces.
Left: the boundary edges are oriented in the same direction, and thus the generated surface is smooth. Right: the boundary edges have opposite directions, and thus the generated surface twists on itself, resulting in self-intersections.
Siehe auch: Grundlagen der Skripterstellung in FreeCAD.
The Surface GeomFillSurface tool can be used in macros and from the Python console by adding the Surface::GeomFillSurface
object.
BoundaryList
property of the object.FillType
property.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()