Un oggetto App DocumentObject, o formalmente un App::DocumentObject
, è la classe di base di tutte le classi di oggetti gestite nel documento.
In termini generali, un "DocumentObject" è qualsiasi "cosa" che può apparire nella Vista ad albero e che viene salvata e ripristinata all'apertura di un documento.
Vista ad albero che mostra diversi oggetti nel documento. Ognuno di essi è un "oggetto documento", derivato in definitiva dalla classe di base App::DocumentObject
.
Diagramma semplificato delle relazioni tra gli oggetti principali in FreeCAD
App DocumentObject è una classe interna, quindi non può essere creata dall'interfaccia grafica, né deve essere utilizzata da sola. Definisce semplicemente il comportamento e le proprietà di base degli oggetti nel programma.
Alcuni dei DocumentObjects più importanti sono i seguenti:
Vedere Proprietà per tutti i tipi di proprietà che possono avere gli oggetti con script.
Queste sono le proprietà di base che essenzialmente hanno tutti gli oggetti. È possibile accedere a queste proprietà dalla console Python.
String
): il nome di questo oggetto modificabile dall'utente, è una stringa UTF8 arbitraria. Di default, è uguale al Name
.String
): una descrizione modificabile dall'utente più lunga di questo oggetto, è una stringa UTF8 arbitraria che può includere nuove righe. Di default, è una stringa vuota ""
.ExpressionEngine
): un elenco di espressioni.Bool
): se visualizzare l'oggetto o no.Per gli oggetti derivati, solo la proprietà DatiLabel verrà elencata di default nell'editor delle proprietà. Le altre proprietà saranno nascoste.
Vedere anche: Script di base per FreeCAD, e script di oggetti.
Vedere Part Feature per le informazioni generali sull'aggiunta di oggetti al documento.
Un DocumentObject viene creato con il metodo addObject()
del documento. Tuttavia, in generale, non è necessario creare questo oggetto manualmente. Di solito è meglio sottoclassare una delle sottoclassi più complesse, per esempio, App FeaturePython, App GeoFeature, Part Feature, Part Part2DObject, etc.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::DocumentObject", "Name")
obj.Label = "Custom label"