Surface Filling/de

Surface Füllfläche

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

Beschreibung

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.

Anwendung

  1. Press the Filling button.
  2. The Boundaries task panel opens. See Options.
  3. Select two or more edges in the 3D view:
    • There is no need to press the Add edge button in the Boundaries section at this time.
    • The edges must be selected in consecutive order.
    • The edges must be connected, but the complete boundary need not be closed.
    • The complete boundary should not self-intersect.
    • For a 360° circular boundary two semicircular edges can be selected.
  4. A preview of the final shape will be shown once enough valid geometry has been selected.
  5. Optionally select a Support surface. See Example.
  6. Optionally select one or more Edge constraints.
  7. Optionally select one or more Vertex constraints.
  8. Press OK button.

Optionen

Beispiel

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:

  1. In the Part Workbench create a cylinder and set its DatenAngle to 180°.
  2. Switch to the Surface Workbench and press the Filling button.
  3. Select the two semi-circular edges and the two straight edges that connect them.
  4. The result matches the four boundary edges, but the inner shape is quite different from the cylindrical face.
  5. Edit the Surface object and for the Support surface select the cylindrical face.
  6. The modified shape matches the cylindrical face much more closely.

Eigenschaften

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.

Daten

Filling

Ansicht

Base

Skripten

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.

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()