OpenSCAD Workbench/it: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(56 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/it|[[Mesh Module/it|Ambiente Mesh]]|[[Part Module/it|Ambiente Part]]|IconL=Workbench_Mesh.svg|IconR=Workbench_Part.svg}}
{{Docnav/it
|[[Mesh_Workbench/it|Ambiente Mesh]]
|[[Part_Workbench/it|Ambiente Part]]
|IconL=Workbench_Mesh.svg
|IconR=Workbench_Part.svg
}}


[[Image:Workbench_OpenSCAD.svg|thumb|128px|L'icona dell'ambiente OpenSCAD]]
[[Image:Workbench_OpenSCAD.svg|thumb|128px|L'icona dell'ambiente OpenSCAD]]
Line 6: Line 12:
== Introduzione ==
== Introduzione ==


L'[[OpenSCAD_Workbench/it|Ambiente OpenSCAD]] [[Image:Workbench_OpenSCAD.svg|24px]] serve per offrire interoperabilità con il software open source [http://www.openscad.org/ OpenSCAD]. Questo programma non è distribuito come parte di FreeCAD, ma dovrebbe essere installato per poter sfruttare appieno questo ambiente. OpenSCAD non deve essere confuso con [[OpenCASCADE/it|OpenCASCADE]], che è il kernel geometrico che FreeCAD utilizza per costruire la geometria sullo schermo. Le librerie OpenCASCADE sono sempre necessarie per utilizzare FreeCAD, mentre l'eseguibile OpenSCAD è del tutto opzionale.
The [[Image:Workbench_OpenSCAD.svg|24px]] [[OpenSCAD Workbench]] is intended to offer interoperability with the open source software [http://www.openscad.org/ OpenSCAD]. This program is not distributed as part of FreeCAD, but should be installed to make full use of this workbench.


Contiene un importatore [[OpenSCAD_CSG/it|CSG]] che permette di aprire i file CSG di OpenSCAD, e un esportatore per produrre un albero basato su CSG. La geometria che non è basata su operazioni CSG viene esportata come mesh.
Contiene un importatore [[OpenSCAD_CSG/it|CSG]] che permette di aprire i file CSG di OpenSCAD, e un esportatore per produrre un albero basato su CSG. La geometria che non è basata su operazioni CSG viene esportata come mesh.


Questo ambiente contiene le funzioni per modificare l'albero delle caratteristiche CSG e riparare i modelli. Contiene anche strumenti per scopi generali che non richiedono l'installazione di OpenSCAD; essi possono essere utilizzati in combinazione con altri ambienti di lavoro. Ad esempio, l'ambiente [[Mesh_Workbench/it|Mesh]] utilizza internamente le funzioni di OpenSCAD per eseguire le operazioni con le [[mesh/it|mesh]], poiché sono abbastanza robuste.
<div class="mw-translate-fuzzy">
Questo ambiente contiene le funzioni per modificare l'albero delle caratteristiche CSG e riparare i modelli. Contiene anche strumenti per scopi generali che non richiedono l'installazione di OpenSCAD; essi possono essere utilizzati in combinazione con altri ambienti di lavoro.
</div>


{{TOCright}}
{{TOCright}}
[[Image:OpenSCADexamaple1.png]]
[[Image:OpenSCADexamaple1.png]]


== Dependencies ==
== Dipendenze ==


In FreeCAD 0.19, the Ply (Python-Lex-Yacc) module, which is used to import CSG files, was removed from the FreeCAD source code, as it is a third party library not developed by FreeCAD. As a result, you now need to install Ply before using the OpenSCAD Workbench. When using a pre-packaged, stable version of FreeCAD this dependency should be installed automatically in all platforms; in other cases, for example, when [[Compiling|compiling]] from source, you may have to install it from an online repository.
In FreeCAD 0.19, il modulo Ply (Python-Lex-Yacc), utilizzato per importare i file CSG, è stato rimosso dal codice sorgente di FreeCAD, in quanto è una libreria di terze parti non sviluppata da FreeCAD. Di conseguenza, ora è necessario installare Ply prima di utilizzare l'ambiente OpenSCAD. Quando si utilizza una versione preconfezionata e stabile di FreeCAD, questa dipendenza dovrebbe essere installata automaticamente su tutte le piattaforme; in altri casi, ad esempio, quando si [[Compiling/it|compila]] dal sorgente, potrebbe essere necessario installarlo da un repository online.

In openSUSE questo viene fatto da:

{{Code|code=
sudo zypper install python3-ply
}}

Nei sistemi basati su Debian/Ubuntu questo è fatto in questo modo.


In Debian/Ubuntu based systems this is done like this.
{{Code|code=
{{Code|code=
sudo apt install python3-ply
sudo apt install python3-ply
}}
}}


L'installazione generale in tutte le piattaforme può essere eseguita dall'indice del pacchetto Python.
The general installation in all platforms can be done from the Python package index.

{{Code|code=
{{Code|code=
pip3 install --user ply
pip3 install --user ply
Line 40: Line 52:
==Strumenti==
==Strumenti==


* [[Image:OpenSCAD_ColorCodeShape.svg|32px]] [[OpenSCAD_ColorCodeShape/it|Codice colore della forma]]: Cambia il colore della forma selezionata o di tutte le forme in base alla loro validità.
<div class="mw-translate-fuzzy">
* [[Image:OpenSCAD_ReplaceObject.svg|32px]] [[OpenSCAD_ReplaceObject/it|Sostituisci un oggetto]]: Sostituisce un oggetto nell'albero delle operazioni. Selezionare l'oggetto vecchio, il nuovo e il genitore.
* [[Image:OpenSCAD_ColorCodeShape.png|32px]] [[OpenSCAD_ColorCodeShape/it|Codice Colore Forma]]: Cambia il colore della forma selezionata o di tutte le forme in base alla loro validità
* [[Image:OpenSCAD_RemoveSubtree.svg|32px]] [[OpenSCAD_RemoveSubtree/it|Elimina un ramo]]: Rimuove gli oggetti selezionati e tutti i suoi figli che non sono referenziati da altri oggetti.
* [[Image:OpenSCAD_ReplaceObject.png|32px]] [[OpenSCAD_ReplaceObject/it|Sostituisci Oggetto]]: Sostituisce un oggetto nell'albero delle operazioni. Selezionare l'oggetto vecchio, il nuovo e il genitore
* [[Image:OpenSCAD_RefineShapeFeature.svg|32px]] [[OpenSCAD_RefineShapeFeature/it|Affina la forma]]: Crea una operazione di affinatura della forma.
* [[Image:OpenSCAD_RemoveSubtree.png|32px]] [[OpenSCAD_RemoveSubtree/it|Elimina Ramo]]: Rimuove gli oggetti selezionati e tutti i suoi figli che non sono referenziati da altri oggetti
* [[Image:OpenSCAD_RefineShapeFeature.png|32px]] [[OpenSCAD_RefineShapeFeature/it|Affina Forma]]: Crea una operazione di affinatura della forma
* [[Image:OpenSCAD_MirrorMeshFeature.svg|32px]] [[OpenSCAD_MirrorMeshFeature/it|Specchia la mesh]]: Crea una funzione mesh speculare.
* [[Image:OpenSCAD ScaleMesh.svg|32px]] [[OpenSCAD_ScaleMeshFeature/it|Scala la mesh]]: Scala una funzione mesh.
* [[Image:OpenSCAD_IncreaseTolerance.png|32px]] [[OpenSCAD_IncreaseTolerance/it|Incrementa tolleranza]]: Aumenta la tolleranza di bordi/facce/vertici degli oggetti selezionati
* [[OpenSCAD_ResizeMeshFeature/it|Ridimensiona la mesh]]: Ridimensiona una funzione mesh.
* [[Image:OpenSCAD_Edgestofaces.png|32px]] [[OpenSCAD_Edgestofaces/it|Bordi in Facce]]: Converte i bordi (contorni) in facce. Utile per preparare la geometria DXF importata per essere estrusa.
* [[Image:OpenSCAD_IncreaseToleranceFeature.svg|32px]] [[OpenSCAD_IncreaseTolerance/it|Incrementa la tolleranza]]: Aumenta la tolleranza di bordi/facce/vertici degli oggetti selezionati.
* [[Image:OpenSCAD_ExpandPlacements.png|32px]] [[OpenSCAD_ExpandPlacements/it|Espandi Posizioni]]: Espande tutte le posizioni della struttura delle operazioni verso il basso
* [[Image:OpenSCAD_Edgestofaces.png|32px]] [[OpenSCAD_Edgestofaces/it|Converti i bordi in facce]]: Converte i bordi (contorni) in facce. Utile per preparare la geometria DXF importata per essere estrusa.
* [[Image:OpenSCAD_ExplodeGroup.png|32px]] [[OpenSCAD_ExplodeGroup/it|Scomponi il gruppo]]: Separa le primitive delle parti fuse.
* [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] [[OpenSCAD_AddOpenSCADElement/it|Aggiungi Elementi OpenSCAD]]: Aggiunge un elemento OpenSCAD inserendo il codice OpenSCAD nel pannello delle azioni
* [[Image:OpenSCAD_ExpandPlacements.png|32px]] [[OpenSCAD_ExpandPlacements/it|Espandi le posizioni]]: Espande tutte le posizioni della struttura delle operazioni verso il basso.
* [[Image:OpenSCAD_MeshBoolean.png|32px]] [[OpenSCAD_MeshBoolean/it|Mesh Boolean...]]: Crea un nuovo oggetto mesh da un'operazione booleana sulle forme.
* [[Image:OpenSCAD_ExplodeGroup.png|32px]] [[OpenSCAD_ExplodeGroup/it|Esplodi il gruppo]]: Separa le primitive delle parti fuse.
* [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] [[OpenSCAD_AddOpenSCADElement/it|Aggiungi un elemento OpenSCAD]]: Aggiunge un elemento OpenSCAD inserendo il codice OpenSCAD nel pannello delle azioni.
* [[Image:OpenSCAD_Hull.png|32px]] [[OpenSCAD_Hull/it|Hull]]: Applica un inviluppo Hull di forme selezionate.
* [[Image:OpenSCAD_Minkowski.png|32px]] [[OpenSCAD_Minkowski/it|Minkowski]]: Applica una somma Minkowski di forme selezionate.
* [[Image:OpenSCAD_MeshBoolean.png|32px]] [[OpenSCAD_MeshBoolean/it|Booleana su mesh...]]: Crea un nuovo oggetto mesh da un'operazione booleana sulle forme.
* [[Image:OpenSCAD_Hull.svg|32px]] [[OpenSCAD_Hull/it|Hull]]: Applica un inviluppo Hull di forme selezionate.
</div>
* [[Image:OpenSCAD_Minkowski.svg|32px]] [[OpenSCAD_Minkowski/it|Minkowski]]: Applica una somma Minkowski di forme selezionate.


== Preferenze ==
== Preferenze ==


* [[Image:Std_DlgParameter.svg|32px]] [[OpenSCAD_Preferences/it|Preferenze]]: Preferenze disponibili in OpenSCAD.
<div class="mw-translate-fuzzy">
* [[Image:Std_DlgParameter.png|32px]] [[OpenSCAD_Preferences/it|Preferenze]]: Preferenze disponibili in OpenSCAD.
</div>


== Limitazioni ==
== Limitazioni ==


OpenSCAD crea una geometria solida costruttiva, importa i file mesh e estrude la geometria 2D da file [[DXF/it|DXF]]. FreeCAD consente anche di creare CSG con primitive. Il kernel di geometria di FreeCAD (OCCT) funziona utilizzando la rappresentazione dei limiti.
OpenSCAD crea una geometria solida costruttiva, importa i file mesh e estrude la geometria 2D da file [[DXF/it|DXF]]. FreeCAD consente anche di creare CSG con primitive. Il kernel di geometria di FreeCAD (OCCT) funziona utilizzando la rappresentazione dei limiti. Pertanto la conversione da CSG a BREP dovrebbe, in teoria, essere possibile, mentre la conversione da BREP a CSG, in generale, non lo è.
Pertanto la conversione da CSG a BREP dovrebbe, in teoria, essere possibile, mentre la conversione da BREP a CSG, in generale, non lo è.


OpenSCAD lavora internamente su maglie. Alcune operazioni che sono utili con le maglie non sono significative su un modello BREP e attualmente non possono essere completamente supportate. Tra queste ci sono convex hull, minkowski sum, glide e subdiv. Attualmente si può eseguire il binario OpenSCAD al fine di eseguire le operazioni hull e minkwoski e importare il risultato. Ciò significa che la geometria coinvolta sarà triangolata. In OpenSCAD è spesso usata la scalatura non uniforme, che non crea alcun problema quando si utilizzano mesh. Nel nostro kernel geometrico le primitive geometriche (linee, sezioni circolari, ecc) vengono convertite in BSpline prima di eseguire queste deformazioni. Le bspline sono note per causare problemi nelle successive operazioni booleane. Al momento non è disponibile nessuna soluzione automatica. Non esitate a postare sul forum se si verificano tali problemi. Spesso tali problemi possono essere risolti rimodellamento piccole parti. Una deformazione di un cilindro può sostituita da una estrusione di una ellisse.
OpenSCAD lavora internamente su maglie. Alcune operazioni che sono utili con le maglie non sono significative su un modello BREP e attualmente non possono essere completamente supportate. Tra queste ci sono convex hull, minkowski sum, glide e subdiv. Attualmente si può eseguire il binario OpenSCAD al fine di eseguire le operazioni hull e minkwoski e importare il risultato. Ciò significa che la geometria coinvolta sarà triangolata. In OpenSCAD è spesso usata la scalatura non uniforme, che non crea alcun problema quando si utilizzano mesh. Nel nostro kernel geometrico le primitive geometriche (linee, sezioni circolari, ecc) vengono convertite in BSpline prima di eseguire queste deformazioni. Le bspline sono note per causare problemi nelle successive operazioni booleane. Al momento non è disponibile nessuna soluzione automatica. Non esitate a postare sul forum se si verificano tali problemi. Spesso tali problemi possono essere risolti rimodellamento piccole parti. Una deformazione di un cilindro può sostituita da una estrusione di una ellisse.

== Importare testo ==

L'importazione di codice OpenSCAD con testi richiede che i font utilizzati siano installati correttamente sul sistema. Puoi verificarlo aprendo OpenSCAD come strumento autonomo e controllando l'elenco in {{MenuCommand|Aiuto → Font List}}. L'elenco ti darà anche i nomi dei caratteri corretti. Se un font non viene visualizzato nell'elenco dopo l'installazione, potrebbe essere necessario copiare manualmente il file del font nella directory di sistema appropriata.

L'importazione di testi è relativamente lenta. Dietro le quinte FreeCAD utilizza un file DXF creato da OpenSCAD. Più contorni ci sono, più lenta sarà l'importazione.

Può essere una buona idea importare prima un semplice test case (sostituire {{Incode|NameOfFont}} con il nome del carattere corretto):

<pre>
TESTFONT="NameOfFont";
linear_extrude(0.001) {
text("A", size=5, font=TESTFONT, script="Latn");
};
</pre>

Il parametro {{Incode|<nowiki>script="Latn"</nowiki>}} può essere omesso qui, ma è obbligatorio se la stringa di testo non contiene lettere, ma solo punteggiatura e/o numeri.

Tieni presente che le istruzioni {{Incode|<nowiki>use <FONT>;</nowiki>}} nei file sorgente vengono ignorate durante l'importazione in FreeCAD. Sotto OpenSCAD l'effetto di un'istruzione {{Incode|use}} è che il file di font fornito viene temporaneamente aggiunto all'elenco dei font conosciuti (sebbene anche lì l'istruzione non funzioni quando uno script viene modificato in modo interattivo).


== Suggerimenti ==
== Suggerimenti ==
Line 76: Line 105:
Se FreeCAD va in crash durante l'importazione CSG, si consiglia vivamente di attivare 'controllare automaticamente il modello dopo l'operazione booleana' in: {{MenuCommand|Modifica → Preferenze → Part Design → Impostazione del modello}}.
Se FreeCAD va in crash durante l'importazione CSG, si consiglia vivamente di attivare 'controllare automaticamente il modello dopo l'operazione booleana' in: {{MenuCommand|Modifica → Preferenze → Part Design → Impostazione del modello}}.


== Tutorial ==
== Tutorials ==

* [[Import_OpenSCAD_code/it|Importare codice OpenSCAD]]
* [[Import_OpenSCAD_code/it|Importare codice OpenSCAD]]


== Links ==
<div class="mw-translate-fuzzy">
== Link ==
* [https://freecadweb.org/tracker/search.php?tag_string=OpenSCAD Open tickets tagged "Openscad" on the FreeCAD bugtracker]
* [http://www.thingiverse.com/tag:openscad Elementi etichettati "Openscad" in Thingiverse]
</div>


* Il repository ufficiale del codice sorgente del progetto OpenSCAD è ospitato su [https://github.com/openscad/openscad GitHub]
<div class="mw-translate-fuzzy">
* Aprire un ticket etichettato "OpenSCAD" su [https://github.com/FreeCAD/FreeCAD/labels/WB%20OpenSCAD FreeCAD Github Issue tracker]. Ci sono anche ticket sull'ormai archiviato [https://freecadweb.org/tracker/search.php?tag_string=OpenSCAD mantis bugtracker].
{{docnav/it|[[Mesh Module/it|Ambiente Mesh]]|[[Part Module/it|Ambiente Part]]|IconL=Workbench_Mesh.svg|IconR=Workbench_Part.svg}}
* Modelli etichettati con "OpenSCAD" su [http://www.thingiverse.com/tag:openscad Thingiverse]
</div>



{{Docnav/it
|[[Mesh_Workbench/it|Ambiente Mesh]]
|[[Part_Workbench/it|Ambiente Part]]
|IconL=Workbench_Mesh.svg
|IconR=Workbench_Part.svg
}}


{{OpenSCAD Tools navi{{#translation:}}}}
{{OpenSCAD Tools navi{{#translation:}}}}

Latest revision as of 20:38, 12 August 2022

L'icona dell'ambiente OpenSCAD

Introduzione

L'Ambiente OpenSCAD serve per offrire interoperabilità con il software open source OpenSCAD. Questo programma non è distribuito come parte di FreeCAD, ma dovrebbe essere installato per poter sfruttare appieno questo ambiente. OpenSCAD non deve essere confuso con OpenCASCADE, che è il kernel geometrico che FreeCAD utilizza per costruire la geometria sullo schermo. Le librerie OpenCASCADE sono sempre necessarie per utilizzare FreeCAD, mentre l'eseguibile OpenSCAD è del tutto opzionale.

Contiene un importatore CSG che permette di aprire i file CSG di OpenSCAD, e un esportatore per produrre un albero basato su CSG. La geometria che non è basata su operazioni CSG viene esportata come mesh.

Questo ambiente contiene le funzioni per modificare l'albero delle caratteristiche CSG e riparare i modelli. Contiene anche strumenti per scopi generali che non richiedono l'installazione di OpenSCAD; essi possono essere utilizzati in combinazione con altri ambienti di lavoro. Ad esempio, l'ambiente Mesh utilizza internamente le funzioni di OpenSCAD per eseguire le operazioni con le mesh, poiché sono abbastanza robuste.

Dipendenze

In FreeCAD 0.19, il modulo Ply (Python-Lex-Yacc), utilizzato per importare i file CSG, è stato rimosso dal codice sorgente di FreeCAD, in quanto è una libreria di terze parti non sviluppata da FreeCAD. Di conseguenza, ora è necessario installare Ply prima di utilizzare l'ambiente OpenSCAD. Quando si utilizza una versione preconfezionata e stabile di FreeCAD, questa dipendenza dovrebbe essere installata automaticamente su tutte le piattaforme; in altri casi, ad esempio, quando si compila dal sorgente, potrebbe essere necessario installarlo da un repository online.

In openSUSE questo viene fatto da:

sudo zypper install python3-ply

Nei sistemi basati su Debian/Ubuntu questo è fatto in questo modo.

sudo apt install python3-ply

L'installazione generale in tutte le piattaforme può essere eseguita dall'indice del pacchetto Python.

pip3 install --user ply

Linguaggio e formato dei file OpenSCAD

Il linguaggio OpenSCAD consente l'utilizzo di variabili e loop. Esso consente di specificare sotto-moduli per riutilizzare la geometria e il codice. Questo alto grado di flessibilità rende l'analisi sintattica molto complessa. Attualmente il modulo OpenSCAD in FreeCAD non in grado di gestire il linguaggio nativo di OpenSCAD. Invece, se OpenSCAD è installato, può essere utilizzato per convertire l'ingresso in un formato di output denominato 'CSG'. È un sottoinsieme del linguaggio OpenSCAD e può essere utilizzato come ingresso di OpenSCAD per una ulteriore elaborazione.

Durante la conversione si perde tutto il comportamento parametrico - tutti i nomi delle variabili vengono eliminati, i loop espansi e le espressioni matematiche valutate.

Strumenti

Preferenze

Limitazioni

OpenSCAD crea una geometria solida costruttiva, importa i file mesh e estrude la geometria 2D da file DXF. FreeCAD consente anche di creare CSG con primitive. Il kernel di geometria di FreeCAD (OCCT) funziona utilizzando la rappresentazione dei limiti. Pertanto la conversione da CSG a BREP dovrebbe, in teoria, essere possibile, mentre la conversione da BREP a CSG, in generale, non lo è.

OpenSCAD lavora internamente su maglie. Alcune operazioni che sono utili con le maglie non sono significative su un modello BREP e attualmente non possono essere completamente supportate. Tra queste ci sono convex hull, minkowski sum, glide e subdiv. Attualmente si può eseguire il binario OpenSCAD al fine di eseguire le operazioni hull e minkwoski e importare il risultato. Ciò significa che la geometria coinvolta sarà triangolata. In OpenSCAD è spesso usata la scalatura non uniforme, che non crea alcun problema quando si utilizzano mesh. Nel nostro kernel geometrico le primitive geometriche (linee, sezioni circolari, ecc) vengono convertite in BSpline prima di eseguire queste deformazioni. Le bspline sono note per causare problemi nelle successive operazioni booleane. Al momento non è disponibile nessuna soluzione automatica. Non esitate a postare sul forum se si verificano tali problemi. Spesso tali problemi possono essere risolti rimodellamento piccole parti. Una deformazione di un cilindro può sostituita da una estrusione di una ellisse.

Importare testo

L'importazione di codice OpenSCAD con testi richiede che i font utilizzati siano installati correttamente sul sistema. Puoi verificarlo aprendo OpenSCAD come strumento autonomo e controllando l'elenco in Aiuto → Font List. L'elenco ti darà anche i nomi dei caratteri corretti. Se un font non viene visualizzato nell'elenco dopo l'installazione, potrebbe essere necessario copiare manualmente il file del font nella directory di sistema appropriata.

L'importazione di testi è relativamente lenta. Dietro le quinte FreeCAD utilizza un file DXF creato da OpenSCAD. Più contorni ci sono, più lenta sarà l'importazione.

Può essere una buona idea importare prima un semplice test case (sostituire NameOfFont con il nome del carattere corretto):

TESTFONT="NameOfFont";
linear_extrude(0.001) {
  text("A", size=5, font=TESTFONT, script="Latn");
};

Il parametro script="Latn" può essere omesso qui, ma è obbligatorio se la stringa di testo non contiene lettere, ma solo punteggiatura e/o numeri.

Tieni presente che le istruzioni use <FONT>; nei file sorgente vengono ignorate durante l'importazione in FreeCAD. Sotto OpenSCAD l'effetto di un'istruzione use è che il file di font fornito viene temporaneamente aggiunto all'elenco dei font conosciuti (sebbene anche lì l'istruzione non funzioni quando uno script viene modificato in modo interattivo).

Suggerimenti

Quando si importano DXF impostare la precisione del progetto a un valore adeguato, in modo che vengano individuati i bordi connessi.

Per impostare la precisione nell'ambiente Draft: Modifica → Preferenze → Draft → Importa/Esporta → Opzioni del formato DXF → Segmento Spline massimo

Se FreeCAD va in crash durante l'importazione CSG, si consiglia vivamente di attivare 'controllare automaticamente il modello dopo l'operazione booleana' in: Modifica → Preferenze → Part Design → Impostazione del modello.

Tutorials

Links