Metodi FeaturePython
Introduzione
Questa pagina funge da riferimento per i metodi sovrascrivibili disponibili negli Creare oggetti FeaturePython parte I o Oggetti creati da script.
Primary reference
Riferimento primario
I metodi seguenti rappresentano circa il 99% dei casi d'uso che gli utenti esperti possono avere per le classi proxy Python.
execute(self, obj)
|
Chiamato durante il ricalcolo del documento | Non chiamare recompute() da questo metodo (o qualsiasi metodo chiamato da execute()) poiché ciò provoca un ricalcolo nidificato.
|
onBeforeChange(self, obj, prop)
|
Chiamato prima che il valore di una proprietà venga modificato | prop è il nome della proprietà da modificare, non l'oggetto proprietà stesso. Le modifiche alla proprietà non possono essere annullate. I valori delle proprietà precedente/successiva non sono disponibili contemporaneamente per il confronto.
|
onChanged(self, obj, prop)
|
Chiamato dopo la modifica di una proprietà | prop è il nome della proprietà da modificare, non l'oggetto proprietà stesso.
|
onDocumentRestored(self, obj)
|
Chiamato dopo il ripristino di un documento o la copia di un oggetto FeaturePython. | Occasionalmente, i riferimenti all'oggetto FeaturePython dalla classe o alla classe dall'oggetto FeaturePython potrebbero essere interrotti, poiché il metodo della classe __init__() non viene chiamato quando l'oggetto viene ricostruito. L'aggiunta di self.Object = obj o obj.Proxy = self spesso risolve questi problemi.
|
Non è raro incontrare una situazione in cui i callback Python non vengono attivati come dovrebbero. I principianti in questa situazione possono essere certi che il sistema di callback FeaturePython non è fragile o corrotto. Invariabilmente quando i callback non vengono eseguiti è perché un riferimento è perso o non è definito nel codice sottostante. Se, tuttavia, i callback sembrano non funzionare senza alcuna spiegazione, fornire riferimenti a oggetti/proxy nel callback onDocumentRestored() (come indicato nella prima tabella sopra) può alleviare questi problemi. Finché non ci si sente a proprio agio con il sistema di callback, potrebbe essere utile aggiungere istruzioni print in ogni callback per stampare messaggi sulla console durante lo sviluppo.
Additional methods
Metodi aggiuntivi
I metodi seguenti sono per l'uso avanzato delle classi proxy Python e normalmente non ci sarà bisogno di usarli.
- mustExecute
- getViewProviderName
- getSubObject
- getSubObjects
- getLinkedObject
- hasChildElement
- isElementVisible
- canLinkProperties
- allowDuplicateLabel
- redirectSubName
- canLoadPartial
- onBeforeChangeLabel
Determining available Python methods
Determinazione dei metodi Python disponibili
All'interno della FeaturePython Template Class esistono varie imp-><method name>() chiamate.
Ognuna di queste corrisponde a un metodo Python associato disponibile.
Ad esempio, imp->execute() alla riga 193 indica che il metodo execute è disponibile.
Nota, getPyObject() e init() sono casi speciali e non seguono l'euristica di cui sopra.
Vedere anche
- FreeCAD GitHub: FeaturePython.h - public API
- FreeCAD GitHub: FeaturePythonT template class
- FreeCAD Forum Discussion: Scripted Objects Complete Method Reference
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub