Strumenti Utente



tutorial_freecad:tutorial_04

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
tutorial_freecad:tutorial_04 [2014/11/04 13:32]
mickele [Tutorial FreeCAD #4]
tutorial_freecad:tutorial_04 [2015/05/03 10:39] (versione attuale)
mickele77
Linea 1: Linea 1:
-====== Tutorial FreeCAD #4 ======+====== Tutorial FreeCAD #4 - Python e la riga di comando ======
  
 In questo quarto tutorial vedremo come creare oggetti tridimensionali da linea di comando. Questo ci consentirà, con un po' di lavoro, di capire meglio come funziona FreeCAD ma soprattutto di aumentare la nostra produttività mediante la creazione di script personalizzati. Se ci limitassimo alla sola interfaccia grafica, FreeCAD avrebbe ben poco da offrirci rispetto ad analoghi CAD parametrici. E' proprio la linea di comando che ne fa un programma già pronto per "il mondo reale". In questo quarto tutorial vedremo come creare oggetti tridimensionali da linea di comando. Questo ci consentirà, con un po' di lavoro, di capire meglio come funziona FreeCAD ma soprattutto di aumentare la nostra produttività mediante la creazione di script personalizzati. Se ci limitassimo alla sola interfaccia grafica, FreeCAD avrebbe ben poco da offrirci rispetto ad analoghi CAD parametrici. E' proprio la linea di comando che ne fa un programma già pronto per "il mondo reale".
Linea 5: Linea 5:
 Nei precedenti tutorial abbiamo modellato alcuni solidi tridimensionali utilizzando la GUI. Per chi se ne fosse perso qualcuno riporto di seguito i relativi link link: Nei precedenti tutorial abbiamo modellato alcuni solidi tridimensionali utilizzando la GUI. Per chi se ne fosse perso qualcuno riporto di seguito i relativi link link:
  
 +~~READMORE~~
 +
 +  * [[tutorial_freecad:tutorial_00|Tutorial FreeCAD #0]]
   * [[tutorial_freecad:tutorial_01|Tutorial FreeCAD #1]]   * [[tutorial_freecad:tutorial_01|Tutorial FreeCAD #1]]
   * [[tutorial_freecad:tutorial_02|Tutorial FreeCAD #2]]   * [[tutorial_freecad:tutorial_02|Tutorial FreeCAD #2]]
Linea 13: Linea 16:
 Python è un linguaggio di programmazione che si è molto diffuso negli ultimi anni sia per la sua semplicità che per la sua potenza. In rete trovate molte risorse per imparare a programmare in python. Vi consiglio in particolare di visitare il sito di riferimento [[https://www.python.org/|www.python.org]]. Un altro sito utile per muovere i primi passi con python è [[http://www.learnpython.org/it/|www.learnpython.org/it/]]. Una sola accortezza: python è arrivato alla versione 3, ma FreeCAD per il momento supporta solo la versione 2, anche se le due versioni sono in realtà molto simili. Python è un linguaggio di programmazione che si è molto diffuso negli ultimi anni sia per la sua semplicità che per la sua potenza. In rete trovate molte risorse per imparare a programmare in python. Vi consiglio in particolare di visitare il sito di riferimento [[https://www.python.org/|www.python.org]]. Un altro sito utile per muovere i primi passi con python è [[http://www.learnpython.org/it/|www.learnpython.org/it/]]. Una sola accortezza: python è arrivato alla versione 3, ma FreeCAD per il momento supporta solo la versione 2, anche se le due versioni sono in realtà molto simili.
  
-Sicuramente studiare python può essere utile per usare al meglio FreeCAD, ma per portare a termine questo tutorial non avrete bisogno di essere degli esperti programmatori! Di seguito vedremo i pochi concetti necessari per cominciare a modellare da linea di comando.+Sicuramente conoscere bene python può essere utile per usare al meglio FreeCAD, ma per portare a termine questo tutorial non avrete bisogno di essere degli esperti programmatori! Di seguito vedremo i pochi concetti necessari per cominciare a modellare da linea di comando.
  
 Per prendere dimestichezza cominciamo a scrivere qualche riga di codice dopo aver lanciato FreeCAD. Prima di tutto verifichiamo che sia visibile la console python. Se non lo è la attiviamo spuntando la voce di menu Visualizza -> Viste -> Console python. Per prendere dimestichezza cominciamo a scrivere qualche riga di codice dopo aver lanciato FreeCAD. Prima di tutto verifichiamo che sia visibile la console python. Se non lo è la attiviamo spuntando la voce di menu Visualizza -> Viste -> Console python.
Linea 19: Linea 22:
 {{ :tutorial_freecad:tut04-01.png?600 |Per visualizzare la console python usiamo la voce del menu Visualizza -> Viste -> Console python}} {{ :tutorial_freecad:tut04-01.png?600 |Per visualizzare la console python usiamo la voce del menu Visualizza -> Viste -> Console python}}
  
-Python è un linguaggio interpretato interattivo, questo vuol dire che possiamo digitare un comando dalla console e vederne direttamente il risultato. Individuiamo il prompt della console python costituito dai tre simboli ">>>"+Python è un linguaggio interpretato interattivo, questo vuol dire che possiamo digitare un comando sulla console e vederne direttamente il risultato. Individuiamo il prompt della console python costituito dai tre simboli ">>>"
  
-Cominciamo con la definiamo di due variabili b e h+Cominciamo definendo due variabili b e h
  
   >>> b = 500.0   >>> b = 500.0
   >>> h = 100.0   >>> h = 100.0
  
-Automaticamente python ha creato le due variabili contenenti entrambe un numero in virgola mobile. Per calcolarne la somma basta digitare+Automaticamente python ha creato due variabili contenenti entrambe un numero in virgola mobile. Per calcolarne la somma basta digitare
  
   >>> print b + h   >>> print b + h
  
-print è un primo esempio di comando python che permette di visualizzare a video il contenuto di una variabile.+print è un primo esempio di comando python che permette di visualizzare a video il contenuto di un'operazione tra variabili (come in questo caso) o una variabile.
  
 Analogamente possiamo calcolare il prodotto b * h ed assegnare il relativo valore ad una terza variabile  Analogamente possiamo calcolare il prodotto b * h ed assegnare il relativo valore ad una terza variabile 
Linea 36: Linea 39:
   >>> A = b * h   >>> A = b * h
  
-Per visualizzare il contenuto di A usiamo print+Per visualizzare il contenuto di A usiamo nuovamente print
  
   >>> print A   >>> print A
      
-Prima di procedere con la modellazione vera e propria dobbiamo introdurre un'altra importante funzionalità di python: i moduli. Un modulo python è una sorta di scatola degli attrezzi, all'interno della quale troviamo gli strumenti specifici per un certo scopo. FreeCAD mette a nostra disposizione vari moduli, ognuno finalizzato ad una particolare attività (modellazione solida, creazione e modifica di mesh, disegno bidimensionale etc.).+L'altra importante funzinoalità di python che ci serve per cominciare con la modellazione vera e propria è costituita dai moduli. Un modulo python è una sorta di scatola degli attrezzi, all'interno della quale troviamo strumenti specifici per un certo scopo. Gli strumenti possono essere oggetti o funzioni. FreeCAD mette a nostra disposizione vari moduli, ognuno finalizzato ad una particolare attività (modellazione solida, creazione e modifica di mesh, disegno bidimensionale etc.).
  
-Per attivare (in gergo si dice importare) un modulo usiamo il comando+Per rendere disponibile un modulo dobbiamo importarlo con il comando
  
   >>> import <nome modulo>   >>> import <nome modulo>
Linea 48: Linea 51:
 ===== Alcuni oggetti python presenti in FreeCAD ===== ===== Alcuni oggetti python presenti in FreeCAD =====
  
-Per questo tutorial ci necessari due moduli di FreeCAD: FreeCAD e Part. Per attivare tali moduli dobbiamo digitare dalla console python di FreeCAD+Per questo tutorial ci necessari due moduli: FreeCAD e Part. Per attivare tali moduli dalla console python di FreeCAD digitiamo
  
   >>> import Part, FreeCAD   >>> import Part, FreeCAD
Linea 58: Linea 61:
 Ora siamo pronti per la modellazione vera e propria! Ora siamo pronti per la modellazione vera e propria!
  
-Modellando solidi ci fa comodo definire variabili di modo da render il codice più leggibile e facilitare eventuali modifiche. Sulla base di quanto visto al paragrafo precedente potremmo definire le coordinate di un punto con tre variabili, ma sarebbe abbastanza scomodo. FreeCAD ci mette a disposizione la classe Vector definita nel modulo Base. Per definire un oggetto Vector scriviamo+Modellando solidi ci fa comodo definire uno o più variabili di modo da rendere il codice più leggibile e facilitare eventuali modifiche. Sulla base di quanto visto al paragrafo precedente potremmo definire le coordinate di un punto con tre variabili, ma sarebbe abbastanza scomodo. Il modulo Base ci mette a disposizione la classe Vector. Per definire un oggetto Vector scriviamo
  
   >>> Vert = Base.Vector(0,0,0)   >>> Vert = Base.Vector(0,0,0)
  
-Possiamo rappresentare il segmento che unisce due vertici con un oggetto di tipo Line, contenuto nel modulo Part. Per definire un oggetto Line, dopo aver definito i relativi vertici, scriviamo+Il segmento che unisce due punti può essere invece rappresentato con un oggetto di tipo Line, contenuto nel modulo Part. Per definire un oggetto Line scriviamo
  
   >>> V1 = Base.Vector(0,0,0)   >>> V1 = Base.Vector(0,0,0)
Linea 68: Linea 71:
   >>> L1 = Part.Line(V1,V2)   >>> L1 = Part.Line(V1,V2)
  
-I tipi di oggetti definibili in Python sono molti ed in questa sede è prefrebile introdurne solo alcuni. In particolare citiamo alcuni degli oggetti nel modulo Part:+Le prime due linee ne definiscono i vertici, la terza crea l'oggetto Line. 
 + 
 +I tipi di oggetti definibili in Python sono molti ed in questa sede cominceremo a vederne una piccola parte. In particolare citiamo alcuni degli oggetti del modulo Part:
  
   * Shape: è un oggetto generico, che può essere impiegato per riferirsi a qualsiasi oggetto di questa lista   * Shape: è un oggetto generico, che può essere impiegato per riferirsi a qualsiasi oggetto di questa lista
Linea 77: Linea 82:
   * Shell: un insieme di oggetti Face connessi tramite i rispettivi Edge; anche questi oggetti possono essere aperti o chiusi   * Shell: un insieme di oggetti Face connessi tramite i rispettivi Edge; anche questi oggetti possono essere aperti o chiusi
   * Solid: una parte di spazio delimitata da oggetti di tipo Shell   * Solid: una parte di spazio delimitata da oggetti di tipo Shell
-  * Compsolid: un insieme di oggetti Solid connessi tramite le rispettve facce+  * Compsolid: un insieme di oggetti Solid connessi tramite le rispettive facce
  
 Per approfondire questi aspetti vi consiglio di dare un'occhiata alla pagina dal wiki di FreeCAD sul [[http://www.freecadweb.org/wiki/index.php?title=Topological_data_scripting/it|Topological data scripting]]. Per approfondire questi aspetti vi consiglio di dare un'occhiata alla pagina dal wiki di FreeCAD sul [[http://www.freecadweb.org/wiki/index.php?title=Topological_data_scripting/it|Topological data scripting]].
Linea 104: Linea 109:
   >>> Vert4 = Base.Vector(0,h,0)   >>> Vert4 = Base.Vector(0,h,0)
  
-Disegniamo ora due linee usnado l'oggetto Line del modulo Part+Disegniamo ora due linee usando l'oggetto Line del modulo Part
  
   >>> Line1 = Part.Line(Vert1,Vert2)   >>> Line1 = Part.Line(Vert1,Vert2)
   >>> Line2 = Part.Line(Vert3,Vert4)   >>> Line2 = Part.Line(Vert3,Vert4)
-   
  
-Passiamo quindi ai due archi di cerchio. In generale, per definire un arco dobbiamo indicarne tre punti. Creiamo quindi un oggetto Arc1 che va da Vert2 a Vert3, passando per il punto intermedio VertC1+Passiamo quindi ai due archi di cerchio. Per definire un arco dobbiamo indicarne tre punti. Creiamo quindi un oggetto Arc1 che va da Vert2 a Vert3, passando per il punto intermedio VertC1
  
   >>> VertC1 = Base.Vector(b+h/2,h/2,0)   >>> VertC1 = Base.Vector(b+h/2,h/2,0)
Linea 129: Linea 133:
   >>> Face1 = Part.Face(Wire1)   >>> Face1 = Part.Face(Wire1)
  
-Infine creiamo il solido finale estrudendo la faccia creata; utilizziamo il comando+Il primo comando crea un oggetto Wire dagli oggeti Edge associati a Shape1. Il secondo crea l'oggetto Face. 
 + 
 +Infine creiamo il solido estrudendo la faccia creata; utilizziamo il comando
      
   >>> Solid1 = Face1.extrude(Base.Vector(0,0,l))   >>> Solid1 = Face1.extrude(Base.Vector(0,0,l))
  
-A video non abbiamo visto ancora nulla di quanto fatto. Questo accade perché gli oggetti definiti nella console python non sono stati inseriti in FreeCAD. Per inserire Solid1 in FreeCAD ricorriamo alla funzione show() del modulo Part+A video non abbiamo visto ancora nulla di quanto fatto. Questo accade perché gli oggetti definiti nella console non sono stati inseriti in FreeCAD. Per inserire Solid1 in FreeCAD ricorriamo alla funzione show() del modulo Part
  
   >>> Part.show(Solid1)   >>> Part.show(Solid1)
 +
 +Nel prossimo tutorial ritorneremo su quest'ultimo passaggio per approfondirlo.
  
 Per vedere meglio il risultato del nostro lavoro digitiamo infine i comandi Per vedere meglio il risultato del nostro lavoro digitiamo infine i comandi
Linea 144: Linea 152:
 Il primo imposta una vista assonometrica, il secondo modifica lo zoom per farci vedere tutto il solido creato. Se tutto è andato bene dovremmo avere la seguente vista Il primo imposta una vista assonometrica, il secondo modifica lo zoom per farci vedere tutto il solido creato. Se tutto è andato bene dovremmo avere la seguente vista
  
-{{ :tutorial_freecad:tut04-02.png?600 |IL solido finale}}+{{ :tutorial_freecad:tut04-02.png?600 |Il solido finale modellato in questo tutorial}}
  
 ===== Riepilogo ===== ===== Riepilogo =====
Linea 185: Linea 193:
   * [[http://www.freecadweb.org/wiki/index.php?title=Topological_data_scripting]]   * [[http://www.freecadweb.org/wiki/index.php?title=Topological_data_scripting]]
   * [[http://www.cardanco.com/blog/basic-designs-with-freecad-python.html]]   * [[http://www.cardanco.com/blog/basic-designs-with-freecad-python.html]]
 +
 +====== Lista completa tutorial ======
 +
 +Vi riporto la lista completa dei tutorial su FreeCAD che trovate su IngegneriaLibera:
 +
 +<blog related>
 +
 +</blog>
  

tutorial_freecad/tutorial_04.1415104333.txt.gz · Ultima modifica: 2014/11/04 13:32 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email