|
Menüeintrag |
---|
Surface → Filling |
Arbeitsbereich |
Surface |
Standardtastenkürzel |
Keiner |
Eingeführt in Version |
0.17 |
Siehe auch |
Keiner |
Surface Füllfläche erstellt eine Oberfläche aus einer Reihe von verbundenen Randkurven. Die Krümmung der Oberfläche kann zusätzlich über Kanten und Knotenpunkte innerhalb der Fläche sowie einer Stützfläche gesteuert werden.
Die Basisgeometrie kann zu Kurven, die mit den Arbeitsbereichen Draft oder Sketcher erstellt wurden, gehören, aber auch zu Festkörperobjekten, die mit demArbeitsbereich Part erzeugt wurden.
Zwei gefüllte Oberflächen, umrandet von vier Kanten auf der XY-Ebene. Die Oberfläche auf der rechten Seite wird zusätzlich durch eine Kante beeinflusst, die nicht zur Umrandung gehört.
Die Stützfläche Stellt eine weitere Randbedingung für die Oberfläche dar. Das folgende einfache Beispiel gibt einen Eindruck davon, wie dies funktioniert:
180°
.
A Surface Filling (Surface::Filling
class) is derived from the basic Part Feature (Part::Feature
class, through the Part::Spline
subclass), therefore it shares all the latter's properties.
In addition to the properties described in Part Feature, the Surface Filling has the following properties in the property editor.
Filling
LinkSubList
): boundary edges; C0 is required for edges without a corresponding face.StringList
):IntegerList
): order of constraint on boundary faces; 0
, 1
, and 2
are possible.LinkSubList
): unbound constraint edges; C0 is required for edges without a corresponding face.StringList
):IntegerList
): order of constraint on unbound faces; 0
, 1
, and 2
are possible.LinkSubList
): free constraint on a face.IntegerList
): order of constraint on free faces.LinkSubList
): constraint points on surface.LinkSub
): initial surface to use.Integer
): starting degree, it defaults to 3
.Integer
): number of points on an edge for constraint.Integer
): number of iterations, it defaults to 2
.Bool
): it defaults to false
.Float
): 2D tolerance, it defaults to 0.0
.Float
): 3D tolerance, it defaults to 0.0
.Float
): G1 tolerance, it defaults to 0.01
.Float
): G2 tolerance, it defaults to 0.10
.Integer
): maximum curve degree, it defaults to 8
.Integer
): maximum number of segments, it defaults to 9
.
Base
Bool
): it defaults to false
; if set to true
, it will show an overlay with the control points of the surface.
Siehe auch: FreeCAD Grundlagen Skripten.
The Surface Filling tool can be used in macros and from the Python console by adding the Surface::Filling
object.
BoundaryEdges
property of the object.UnboundEdges
and Points
properties of the object.import FreeCAD as App
import Draft
doc = App.newDocument()
a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)
points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)
points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)
points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)
points4 = [d, App.Vector(-2, -18, 0), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()
surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj1, "Edge1"),
(obj2, "Edge1"),
(obj3, "Edge1"),
(obj4, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
App.Vector(4, 0, 7),
App.Vector(18, 0, -5),
App.Vector(25, 0, 0),
App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()
surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
App.Vector(-3, 18, -5))
doc.recompute()
surf.Points = [(aux_v1, "Vertex2"),
(aux_v2, "Vertex1")]
doc.recompute()