Arch Überprüfen

From FreeCAD Documentation
Revision as of 18:23, 24 April 2019 by Le Loup (talk | contribs)

Arch Check

Menüeintrag
Arch → Dienstprogramme → Überprüfung
Arbeitsbereich
Arch
Standardtastenkürzel
Keiner
Eingeführt in Version
-
Siehe auch
Arch Schließt Löcher

Beschreibung

Dieses Werkzeug prüft, ob es sich bei den Objekten im aktuellen Dokument bzw. den selektierten Objekte um Part- oder Arch-Volumenkörper handelt. Anderenfalls könnte es zu Problemen kommen, weil die meisten Operationen des Arch-Moduls Volumenkörper erfordern.

Anwendung

  1. Drücke den Überprüfung-Eintrag im Arch → Dienstprogramme-Menü.

Scripting

Siehe auch: Arch API und FreeCAD Scripting Basics.

Dieses Werkzeug kann in Makros ebenso wie aus der Python-Konsole heraus durch folgende Funktion angesprochen werden:

list_bad = check(objectslist, includehidden=False)
  • Prüft, ob es sich bei allen angegebenen Objekten in objectslist um Volumenkörper (solids) handelt.
  • Wenn includehidden den Wert True hat, werden auch alle versteckten Objekte berücksichtigt, anderenfalls von der Suche ausgenommen.
  • Liefert in list_bad eine Liste mit Objekten zurück, die nicht von einem Part::Feature abgeleitet sind oder Komponenten, die nicht geschlossen, nicht valide sind, keine Volumenkörper sind oder die Flächen enthalten, die nicht Teil irgendeines Volumenkörpers sind. Diese Liste wird im Arch- oder Draft-Arbeitsbereich genutzt, um Linienzüge und Profile zu erkennen, die keine Volumenkörper sind.
    • Jedes Element in list_bad ist eine weitere Liste object, message, wobei object der erkannte nicht-Volumenkörper ist und message den Grund angibt, warum er in dieser Liste enthalten ist.

Beispiel:

import FreeCAD, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(2000, 0, 0)
baseline = Draft.makeLine(p1, p2)
Wall1 = Arch.makeWall(baseline, length=None, width=150, height=2000)
FreeCAD.ActiveDocument.recompute()

Wall2 = Arch.makeWall(None, length=2000, width=200, height=1000)
FreeCAD.ActiveDocument.recompute()

Circle = Draft.makeCircle(450)
Wire = Draft.makeWire([FreeCAD.Vector(1000, 0, 0), FreeCAD.Vector(1500, 1000, 0), FreeCAD.Vector(2500, -1000, 0)])

list_bad = Arch.check([Wall1, Wall2, Circle, Wire], includehidden=True)
print(list_bad)