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 09:35]
mickele [Riepilogo]
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, utilizzando python. 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.+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".
  
-Se ci limitassimo alla sola interfaccia grafica, FreeCAD avrebbe ben poco da offrirci rispetto ad altri analoghi CADE' proprio la linea di comando che ne fa un programma già pronto per "il mondo reale".+Nei precedenti tutorial abbiamo modellato alcuni solidi tridimensionali utilizzando la GUIPer chi se ne fosse perso qualcuno riporto di seguito i relativi link link:
  
-Nei precedenti tutorial abbiamo modellato alcuni solidi tridimensionali utilizzando la GUI. +~~READMORE~~
- +
-Per chi si fosse perso uno dei tre tutorial riporto di seguito i loro link:+
  
 +  * [[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 15: Linea 14:
 ===== Cos'è python?!? ===== ===== Cos'è python?!? =====
  
-Python è un linguaggio di programmazione che si è olto diffuso negli ultimi anni sia per la sua semplicità che per la sua versatilità. In rete trovate molte risorse per imparare a programmare in puython. Vi consiglio 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 le risorse appena riportate su python sono utilivedrete però che è possibile realizzare questo tutorial anche senza averle lette: python è veramente semplice ed intuitivo, oltre che molto potente!+Sicuramente conoscere bene python può essere utile per usare al meglio FreeCADma per portare a termine questo tutorial non avrete bisogno di essere degli esperti programmatoriDi seguito vedremo i pochi concetti necessari per cominciare a modellare da linea di comando.
  
-Cominciamo a scrivere qualche riga di codice dopo aver lanciato FreeCAD. Prima di tutto dobbiamo verificare 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.
  
 {{ :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 abbiamo una linea di comando su cui possiamo digitare i comandi e vederne direttamente il risultato. Individuaimo 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 a prendere dimestichezza con python definendo alcune variabili+Cominciamo definendo due variabili b e h
  
   >>> b = 500.0   >>> b = 500.0
   >>> h = 100.0   >>> h = 100.0
  
-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
  
-Analogamente possiamo calcolarne il prodotto che assegneremo ad una terza 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 
  
   >>> A = b * h   >>> A = b * h
  
-e farne apparire il risultato con+Per visualizzare il contenuto di A usiamo nuovamente print
  
   >>> print A   >>> print A
      
-print è un primo esempio di comando python+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.).
- +
-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 tutti gli strumenti specifici per un certo lavoro. FreeCAD ad esempio mette a nostra disposizione vari moduli, ognuno finalizzato ad una particolare attività.+
  
-Per attivare (in gergo si dice più correttamente importare) un modulo si usa il comando+Per rendere disponibile un modulo dobbiamo importarlo con il comando
  
   >>> import <nome modulo>   >>> import <nome modulo>
Linea 52: 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 62: 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 72: 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 81: 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 87: Linea 88:
 ===== Modellazione da linea di comando ===== ===== Modellazione da linea di comando =====
  
-Dopo questa necessaria premessa partiamo con la modellazione.+Dopo questa necessaria premessa partiamo con la modellazione (finalmente!).
  
 Prima di tutto definiamo tre variabili in cui inseriremo le dimensioni significative del solido che intendiamo realizzare Prima di tutto definiamo tre variabili in cui inseriremo le dimensioni significative del solido che intendiamo realizzare
Linea 97: Linea 98:
 Questo passaggio ci permetterà nel prossimo tutorial di creare agevolmente solidi con ingombri diversi. Questo passaggio ci permetterà nel prossimo tutorial di creare agevolmente solidi con ingombri diversi.
  
-Definiamo i quattro vertici della figura. I valori del punti saranno inseriti in un oggetto chiamato Vertex che troviamo nel modulo Base+Preoccupiamoci ora di disegnare la figura piana della figura 
 + 
 +{{ :tutorial_freecad:tut04-disegno-2d.png?450 |La figura piana da cui partiamo per la nostra modellazione}} 
 + 
 +Definiamo i quattro vertici della figura. I punti saranno inseriti definendo oggetti Vertex
  
   >>> Vert1 = Base.Vector(0,0,0)   >>> Vert1 = Base.Vector(0,0,0)
Linea 104: Linea 109:
   >>> Vert4 = Base.Vector(0,h,0)   >>> Vert4 = Base.Vector(0,h,0)
  
-Così abbiamo creato quattro punti. +Disegniamo ora due linee usando l'oggetto Line del modulo Part
- +
-Disegniamo ura due linee. Per farlo usiamo l'oggetto Line che troviamo nel modulo Part+
  
   >>> Line1 = Part.Line(Vert1,Vert2)   >>> Line1 = Part.Line(Vert1,Vert2)
   >>> Line2 = Part.Line(Vert3,Vert4)   >>> Line2 = Part.Line(Vert3,Vert4)
-   
  
-Creiamo ora due archi. Per definire un arco dobbiamo indicare tre punti. Creiamo ad esempio un aggetto Arc1 che va da Vert2 a Vert 3, passando per un punto intermedio che chiameremo 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 122: Linea 124:
   >>> Arc2 = Part.Arc(Vert4,VertC2,Vert1)   >>> Arc2 = Part.Arc(Vert4,VertC2,Vert1)
  
-Creiamo ora un oggetto Shape che contiene tutte le geometrie viste finora+Assembliamo il tutto creando un oggetto Shape
  
   >>> Shape1 = Part.Shape([Line1,Arc1,Line2,Arc2])   >>> Shape1 = Part.Shape([Line1,Arc1,Line2,Arc2])
Linea 131: Linea 133:
   >>> Face1 = Part.Face(Wire1)   >>> Face1 = Part.Face(Wire1)
  
-Infine creiamo il solido finale con 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))
  
-Finora a video non abbiamo visto nulla di quanto fatto. Questo accade perché gli oggetti creati finora sono stati definiti solo nella console python e non sono stati inseriti in FreeCAD. Per inserire Solid1 in FreeCAD ricorriamo alla funzione show() del modulo Part+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 146: 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 181: Linea 187:
   Gui.SendMsgToActiveView("ViewFit")   Gui.SendMsgToActiveView("ViewFit")
  
-Potete copiare le linee sopra riportate e incollarle direttamente sul prompt di python per vedere in pochi istanti il risultato finale.+Potete copiare le linee sopra riportate e incollarle direttamente sulla console python di FreeCAD per vedere in pochi istanti il risultato finale.
  
 ===== Per approfondire... ===== ===== Per approfondire... =====
Linea 187: 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.1415090123.txt.gz · Ultima modifica: 2014/11/04 09:35 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email