Arch: Controllare se tutti gli oggetti sono dei solidi

From FreeCAD Documentation
Revision as of 19:35, 16 May 2020 by Renatorivo (talk | contribs)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Controlla

Posizione nel menu
Arch → Utilità → Controlla
Ambiente
Architettura
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 Parte o Architettura non-solidi, 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: Arch API 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)