{"id":3593,"date":"2025-10-03T15:53:44","date_gmt":"2025-10-03T13:53:44","guid":{"rendered":"https:\/\/ru.davidka.net\/ru\/?p=3593"},"modified":"2025-10-04T01:31:40","modified_gmt":"2025-10-03T23:31:40","slug":"lezione-1-preparazione-dellambiente-di-sviluppo","status":"publish","type":"post","link":"https:\/\/it.davidka.net\/it\/lezione-1-preparazione-dellambiente-di-sviluppo\/","title":{"rendered":"Lezione 1. Preparazione dell&#8217;ambiente di sviluppo"},"content":{"rendered":"\n<p class=\"has-medium-font-size wp-block-paragraph\"><em>\ud83d\udcd8 Corso di formazione: Creazione di addon per FreeCAD<\/em><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Obiettivo della lezione<\/strong>: configurare tutto il necessario per creare, testare ed eseguire il debug di addon senza sforzo.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"3593\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ol class=\"rtoc-mokuji decimal_ol level-1\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">\ud83d\udd27 Passo 1. Assicurati di avere FreeCAD installato<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-2\">Requisiti:<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-3\">\ud83d\udcc1 Passo 2. Trova la cartella degli addon<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-4\">\u2705 Come trovare la cartella esattamente?<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-5\">\u2795 Crea la cartella <code class=\"\" data-line=\"\">Mod<\/code><\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-6\">\ud83d\udda5 Passo 3. Configura un editor di testo (opzionale, ma altamente raccomandato)<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-7\">\ud83d\udd39 Consigliamo: Visual Studio Code (VS Code)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-8\">\ud83d\udd39 Come aprire la cartella dell&#8217;addon in VS Code?<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">\ud83d\udee0 Passo 4. Esplora gli strumenti integrati di FreeCAD<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-10\">1. Console Python<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-11\">2. Vista Report<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-12\">3. Registratore di Macro<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-13\">\ud83e\uddea Passo 5. Verifica: crea una cartella di test<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-14\">\ud83d\uddc2 Struttura della cartella dello sviluppatore (risultato)<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-15\">\u2705 Esercizio pratico<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-16\">\u25b6\ufe0f Cosa succede dopo?<\/a><\/li><\/ol><\/div><h2 id=\"rtoc-1\"  class=\"wp-block-heading\">\ud83d\udd27 Passo 1. Assicurati di avere FreeCAD installato<\/h2>\n\n\n\n<h3 id=\"rtoc-2\"  class=\"wp-block-heading\">Requisiti:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FreeCAD versione 0.20 o successiva<\/strong> (meglio 1.0+)<\/li>\n\n\n\n<li>Funziona su <strong>Windows<\/strong>, <strong>Linux<\/strong> o <strong>macOS<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 Se non hai ancora FreeCAD, scaricalo dal sito ufficiale:<br>\ud83d\udd17 <a href=\"https:\/\/www.freecad.org\/downloads.php\">https:\/\/www.freecad.org\/downloads.php<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scegli:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows<\/strong>: <code class=\"\" data-line=\"\">.exe<\/code> (installazione) o <code class=\"\" data-line=\"\">.7z<\/code> (portable)<\/li>\n\n\n\n<li><strong>Linux<\/strong>: AppImage o pacchetto dal repository<\/li>\n\n\n\n<li><strong>macOS<\/strong>: <code class=\"\" data-line=\"\">.dmg<\/code><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 <strong>Consiglio<\/strong>: per l&#8217;apprendimento \u00e8 meglio usare la <strong>versione installata<\/strong> (tramite l&#8217;installer), poich\u00e9 \u00e8 pi\u00f9 stabile e pi\u00f9 facile da configurare.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-3\"  class=\"wp-block-heading\">\ud83d\udcc1 Passo 2. Trova la cartella degli addon<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FreeCAD cerca gli addon personalizzati in una cartella speciale <code class=\"\" data-line=\"\">Mod<\/code>.<br>Il percorso dipende dal tuo sistema operativo e dal tipo di installazione.<\/p>\n\n\n\n<h3 id=\"rtoc-4\"  class=\"wp-block-heading\">\u2705 Come trovare la cartella esattamente?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Avvia FreeCAD.<\/li>\n\n\n\n<li>Apri la <strong>Console Python<\/strong>:<br><code class=\"\" data-line=\"\">Visualizza \u2192 Pannelli \u2192 Console Python<\/code><\/li>\n\n\n\n<li>Inserisci il comando:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">import FreeCAD\nprint(FreeCAD.getUserAppDataDir())<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Premi <strong>Invio<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Vedrai un percorso, ad esempio:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows (versione installata)<\/strong>:<br><code class=\"\" data-line=\"\">C:\\Users\\IlTuoNome\\AppData\\Roaming\\FreeCAD\\<\/code><\/li>\n\n\n\n<li><strong>Windows (portable)<\/strong>:<br><code class=\"\" data-line=\"\">D:\\FreeCAD\\data\\<\/code><\/li>\n\n\n\n<li><strong>Linux<\/strong>:<br><code class=\"\" data-line=\"\">\/home\/il_tuo_nome\/.local\/share\/FreeCAD\/<\/code><\/li>\n\n\n\n<li><strong>macOS<\/strong>:<br><code class=\"\" data-line=\"\">\/Users\/il_tuo_nome\/Library\/Application Support\/FreeCAD\/<\/code><\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-5\"  class=\"wp-block-heading\">\u2795 Crea la cartella <code class=\"\" data-line=\"\">Mod<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">All&#8217;interno di questa directory <strong>deve esserci una cartella <code class=\"\" data-line=\"\">Mod<\/code><\/strong>.<br>Se non c&#8217;\u00e8, creala manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esempio per Windows:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">C:\\Users\\IlTuoNome\\AppData\\Roaming\\FreeCAD\\Mod\\<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Un modo rapido per aprire la cartella su Windows:<br>Premi <strong>Win + R<\/strong> \u2192 digita <code class=\"\" data-line=\"\">%APPDATA%\\FreeCAD<\/code> \u2192 Invio<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-6\"  class=\"wp-block-heading\">\ud83d\udda5 Passo 3. Configura un editor di testo (opzionale, ma altamente raccomandato)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anche se puoi scrivere codice nel Blocco Note, \u00e8 pi\u00f9 comodo usare un editor con:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Evidenziazione della sintassi Python<\/li>\n\n\n\n<li>Completamento automatico<\/li>\n\n\n\n<li>Possibilit\u00e0 di eseguire script<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-7\"  class=\"wp-block-heading\">\ud83d\udd39 Consigliamo: <strong>Visual Studio Code (VS Code)<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Scarica e installa: <a href=\"https:\/\/code.visualstudio.com\/\">https:\/\/code.visualstudio.com\/<\/a><\/li>\n\n\n\n<li>Installa l&#8217;estensione <strong>Python<\/strong> (di Microsoft)<\/li>\n\n\n\n<li>(Opzionale) Installa l&#8217;estensione <strong>FreeCAD for VS Code<\/strong> \u2014 aggiunge suggerimenti per l&#8217;API di FreeCAD<\/li>\n<\/ol>\n\n\n\n<h3 id=\"rtoc-8\"  class=\"wp-block-heading\">\ud83d\udd39 Come aprire la cartella dell&#8217;addon in VS Code?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Avvia VS Code<\/li>\n\n\n\n<li><code class=\"\" data-line=\"\">File \u2192 Apri cartella<\/code><\/li>\n\n\n\n<li>Seleziona la cartella <code class=\"\" data-line=\"\">Mod<\/code> (o un singolo addon al suo interno)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ora puoi vedere la struttura del progetto e modificare i file comodamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-9\"  class=\"wp-block-heading\">\ud83d\udee0 Passo 4. Esplora gli strumenti integrati di FreeCAD<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FreeCAD contiene gi\u00e0 tutto il necessario per lo sviluppo.<\/p>\n\n\n\n<h3 id=\"rtoc-10\"  class=\"wp-block-heading\">1. <strong>Console Python<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menu: <code class=\"\" data-line=\"\">Visualizza \u2192 Pannelli \u2192 Console Python<\/code><\/li>\n\n\n\n<li>Permette di eseguire comandi in tempo reale<\/li>\n\n\n\n<li>Esempio: digita <code class=\"\" data-line=\"\">App.newDocument()<\/code> \u2192 verr\u00e0 creato un nuovo documento<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-11\"  class=\"wp-block-heading\">2. <strong>Vista Report<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menu: <code class=\"\" data-line=\"\">Visualizza \u2192 Pannelli \u2192 Vista Report<\/code><\/li>\n\n\n\n<li>Mostra <strong>errori<\/strong>, <strong>avvisi<\/strong>, log<\/li>\n\n\n\n<li><strong>Tienila sempre aperta<\/strong> durante il test dell&#8217;addon!<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-12\"  class=\"wp-block-heading\">3. <strong>Registratore di Macro<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menu: <code class=\"\" data-line=\"\">Macro \u2192 Macro...<\/code><\/li>\n\n\n\n<li>Pulsante <strong>Registra<\/strong> \u2014 registra le tue azioni in codice Python<\/li>\n\n\n\n<li>Ottimo modo per <strong>imparare l&#8217;API<\/strong> di FreeCAD<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Prova:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clicca su <strong>Macro \u2192 Avvia registrazione<\/strong><\/li>\n\n\n\n<li>Crea una scatola (<code class=\"\" data-line=\"\">Parte \u2192 Scatola<\/code>)<\/li>\n\n\n\n<li>Ferma la registrazione<\/li>\n\n\n\n<li>Apri la macro \u2014 vedrai il codice reale per la creazione dell&#8217;oggetto!<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-13\"  class=\"wp-block-heading\">\ud83e\uddea Passo 5. Verifica: crea una cartella di test<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per assicurarti che tutto funzioni:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Nella cartella <code class=\"\" data-line=\"\">Mod<\/code> crea una sottocartella:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   TestAddon<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Al suo interno crea un file <code class=\"\" data-line=\"\">__init__.py<\/code> (pu\u00f2 essere vuoto) \u2014 questo dice a Python che la cartella \u00e8 un modulo.<\/li>\n\n\n\n<li>Riavvia FreeCAD.<\/li>\n\n\n\n<li>Apri la <strong>Vista Report<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se <strong>non vedi errori<\/strong> \u2014 significa che FreeCAD sta scansionando correttamente la cartella <code class=\"\" data-line=\"\">Mod<\/code>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u2757 Se appare un errore del tipo <code class=\"\" data-line=\"\">ImportError<\/code> \u2014 controlla:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La correttezza del nome della cartella (senza spazi e caratteri cirillici)<\/li>\n\n\n\n<li>La presenza di <code class=\"\" data-line=\"\">__init__.py<\/code> (nelle nuove versioni non \u00e8 sempre obbligatorio, ma \u00e8 pi\u00f9 sicuro aggiungerlo)<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-14\"  class=\"wp-block-heading\">\ud83d\uddc2 Struttura della cartella dello sviluppatore (risultato)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Alla fine di questa lezione dovresti avere una struttura simile:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">(cartella FreeCAD dell&#039;utente)\n\u2514\u2500\u2500 Mod\/\n    \u2514\u2500\u2500 TestAddon\/\n        \u2514\u2500\u2500 __init__.py   \u2190 pu\u00f2 essere vuoto<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E sai:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dove si trova <code class=\"\" data-line=\"\">Mod<\/code><\/li>\n\n\n\n<li>Come aprire la Console Python e la Vista Report<\/li>\n\n\n\n<li>Come usare il Registratore di Macro<\/li>\n\n\n\n<li>Come configurare VS Code (opzionale)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-15\"  class=\"wp-block-heading\">\u2705 Esercizio pratico<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Trova la cartella <code class=\"\" data-line=\"\">Mod<\/code> tramite <code class=\"\" data-line=\"\">FreeCAD.getUserAppDataDir()<\/code><\/li>\n\n\n\n<li>Crea una cartella <code class=\"\" data-line=\"\">MyFirstAddon<\/code> all&#8217;interno di <code class=\"\" data-line=\"\">Mod<\/code><\/li>\n\n\n\n<li>Aggiungi un file vuoto <code class=\"\" data-line=\"\">__init__.py<\/code> al suo interno<\/li>\n\n\n\n<li>Riavvia FreeCAD<\/li>\n\n\n\n<li>Assicurati che non ci siano errori nella <strong>Vista Report<\/strong><\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83c\udfaf <strong>Obiettivo<\/strong>: FreeCAD dovrebbe avviarsi senza errori e &#8220;vedere&#8221; la tua cartella.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-16\"  class=\"wp-block-heading\">\u25b6\ufe0f Cosa succede dopo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nella <strong>Lezione 2<\/strong> creeremo un <strong>vero addon funzionante<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aggiungeremo un pulsante<\/li>\n\n\n\n<li>Faremo in modo che faccia qualcosa<\/li>\n\n\n\n<li>Impareremo a registrare comandi e ambienti di lavoro<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcd8 Corso di formazione: Creazione di addon per FreeCAD Obiettivo della lezione: configurare tutto il necessario per creare, testare ed eseguire il debug di addon senza sforzo. In Questo Articolo \ud83d\udd27 Passo 1. Assicurati di avere FreeCAD installato Requisiti: \ud83d\udcc1 Passo 2. Trova la cartella degli addon \u2705 Come trovare la cartella esattamente? \u2795 Crea&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[948],"tags":[],"class_list":["post-3593","post","type-post","status-publish","format-standard","hentry","category-creazione-di-addon-per-freecad"],"acf":[],"_links":{"self":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/comments?post=3593"}],"version-history":[{"count":0,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3593\/revisions"}],"wp:attachment":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media?parent=3593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/categories?post=3593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/tags?post=3593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}