Arch: Controllare se tutti gli oggetti sono dei solidi

From FreeCAD Documentation
This page is a translated version of the page Arch Check and the translation is 100% complete.

Controlla

Posizione nel menu
Arch → Utilità → Controlla
Ambiente
Arch
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Chiudi fori

Descrizione

Questo strumento controlla il documento corrente o gli oggetti selezionati alla ricerca di oggetti Part o Arch, che potrebbero dare problemi, poiché la maggior parte delle operazioni del modulo Architettura richiedono oggetti solidi.

Utilizzo

  1. Premere il pulsante Controlla, o ArchUtilità Controlla nel menu principale.

Script

Vedere anche: API di Arch e Nozioni di base sugli script di FreeCAD.

Lo strumento può essere utilizzato nelle macro e dalla console Python tramite la seguente funzione:

list_bad = check(objectslist, includehidden=False)
  • Controlla se gli oggetti dati in objectslist contengono solo solidi.
  • Se includehidden è True include tutti gli oggetti nascosti, altrimenti li esclude dalla ricerca.
  • Restituisce una list_bad, una lista con gli oggetti che non sono derivati da una Part::Feature, o componenti che non sono chiusi, non validi, non contengono solidi o che contengono facce che non fanno parte di alcun solido. Questo è usato per rilevare contorni e profili di Arch o Draft che non sono solidi.
    • Ogni elemento in list_bad è un'altra lista [object, message], dove object è l'oggetto rilevato non solido, e message indica il motivo per cui è stato incluso in questo elenco.

Esempio:

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)