Entrambe le parti precedenti la revisione
Revisione precedente
Prossima revisione
|
Revisione precedente
|
tutorial_freecad:tutorial_05 [2015/05/03 10:43] mickele77 |
tutorial_freecad:tutorial_05 [2016/01/13 18:20] mickele |
====== Tutorial FreeCAD #5 - Oggetti personalizzati ====== | ====== Tutorial FreeCAD #5 - Creiamo oggetti personalizzati ====== |
| |
Abbiamo visto nel [[tutorial_freecad:tutorial_04|precedente tutorial]] le potenzialità di personalizzazione offerte dagli script python all'interno di FreeCAD. Tale strumento potrebbe però trovare un limite nella necessità di ripetere tutta la sequenza di comandi python ogni qualvota desideriamo modificare l'oggetto che abbiamo creato. | Abbiamo visto nel [[tutorial_freecad:tutorial_04|precedente tutorial]] le potenzialità di personalizzazione offerte dagli script python all'interno di FreeCAD. Tale strumento potrebbe però trovare un limite nella necessità di ripetere tutta la sequenza di comandi python ogni qualvota desideriamo modificare l'oggetto che abbiamo creato. |
===== Moduli ===== | ===== Moduli ===== |
| |
Per lo svolgimento di questo tutorial utilizzeremo oltre ai moduli FreeCAD e FreeCADGui, utilizzeremo il modulo Part. All'inizio | Per lo svolgimento di questo tutorial utilizzeremo, oltre ai moduli FreeCAD e FreeCADGui, il modulo Part. All'inizio del file dobbiamo pertanto richiamare i moduli da importare |
| |
| import FreeCAD |
import | from FreeCAD import Base |
import FreeCAD | import Part |
from FreeCAD import Base | |
import Part | |
| |
===== CutomObject: definizione dell'oggetto ===== | ===== CutomObject: definizione dell'oggetto ===== |
obj.Proxy = self | obj.Proxy = self |
| |
Poniamo l'attenzione sull'ultima linea di codice. Nella creazione di CustomObject, è necessario dare come parametro un oggetto Part::FeaturePython, nel nostro codice obj. L'attributo Proxy della classe deve puntare all'oggetto personalizzato che stiamo creando. | Poniamo l'attenzione sull'ultima linea di codice. Nella creazione di CustomObject, è necessario dare come parametro un oggetto Part::FeaturePython, nel nostro codice obj. L'attributo Proxy della classe deve puntare all'oggetto personalizzato che stiamo creando. |
| |
| E' necessario definire la tipologia di proprietà che stiamo definendo. Nel nostro caso abbiamo definito le proprietà definite sono delle lunghezze cui FreeCAD associa il tipo //App::PropertyLength//. Per sapere quali sono le proprietà disponibili in FreeCAD digitiamo nella shell python: |
| |
| obj=FreeCAD.ActiveDocument.addObject("App::FeaturePython","Box") |
| obj.supportedProperties() |
| |
| Otteniamo così l'elenco completo delle proprietà disponibili: |
| |
| App::PropertyBool |
| App::PropertyBoolList |
| App::PropertyFloat |
| App::PropertyFloatList |
| App::PropertyFloatConstraint |
| App::PropertyQuantity |
| App::PropertyQuantityConstraint |
| App::PropertyAngle |
| App::PropertyDistance |
| App::PropertyLength |
| App::PropertySpeed |
| App::PropertyAcceleration |
| App::PropertyForce |
| App::PropertyPressure |
| App::PropertyInteger |
| ... |
| |
Passiamo ora a disegnare l'oggetto con i comandi già visti al precedente tutorial, che andremo a ricopiare nel metodo execute | Passiamo ora a disegnare l'oggetto con i comandi già visti al precedente tutorial, che andremo a ricopiare nel metodo execute |
| |
La classe ViewProviderCustomObject si occupa della visualizzazione del nostro oggetto. | La classe ViewProviderCustomObject si occupa della visualizzazione del nostro oggetto. |
| |
| |
| |
class ViewProviderCustomObject: | class ViewProviderCustomObject: |
| |
{{ :tutorial_freecad:tut05-03_oggetto_modificato.png?600 |Abbiamo modificato le proprietà dell'oggetto appena creato}} | {{ :tutorial_freecad:tut05-03_oggetto_modificato.png?600 |Abbiamo modificato le proprietà dell'oggetto appena creato}} |
| |
===== Caveat ===== | ===== Caveat ===== |
| |
{{ :tutorial_freecad:tut05-05_profilo-u.png?300 |Profilo ad U}} | {{ :tutorial_freecad:tut05-05_profilo-u.png?300 |Profilo ad U}} |
| |
* [[http://ingegnerialibera.altervista.org/blog-file/freecad-tut05/bolt.py|bolt.py]], per create bulloni | * [[http://ingegnerialibera.altervista.org/blog-file/freecad-tut05/bolt.py|bolt.py]], per creare bulloni |
| |
{{ :tutorial_freecad:tut05-06_bullone.png?300 |Bullone}} | {{ :tutorial_freecad:tut05-06_bullone.png?300 |Bullone}} |
| |
| * [[http://ingegnerialibera.altervista.org/blog-file/freecad-tut05/rectbeam.py|rectbeam.py]], per creare travi a sezione rettangolare tagliate alle estremità secondo angoli dati |
| |
| {{ :tutorial_freecad:tut05-07_rectbeam.png?300 |Trave a sezione rettangolare}} |
| |
===== Link utili ===== | ===== Link utili ===== |