OpenSCAD Workbench/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Le module OpenSCAD n'est pas encore inclus dans FreeCAD, et, est au début de son développement.")
No edit summary
 
(157 intermediate revisions by 11 users not shown)
Line 1: Line 1:
<languages/>
Le module OpenSCAD n'est pas encore inclus dans FreeCAD, et, est au début de son développement.


{{Docnav/fr
The OpenSCAD module offers interoperability with the open source software [http://www.openscad.org/ OpenSCAD].
|[[Mesh_Workbench/fr|Atelier Mesh]]
|[[Part_Workbench/fr|Atelier Part]]
|IconL=Workbench_Mesh.svg
|IconR=Workbench_Part.svg
}}


[[Image:Workbench_OpenSCAD.svg|thumb|128px|Icône de l'atelier OpenSCAD]]


== Introduction ==
[[Image:OpenSCADexamaple1.png|An example of imported OpenSCAD geometry]]


L'[[Image:Workbench_OpenSCAD.svg|24px]] [[OpenSCAD_Workbench/fr|atelier OpenSCAD]] est destiné à offrir une interopérabilité avec le logiciel open source [http://www.openscad.org/ OpenSCAD]. Ce programme n'est pas distribué comme partie prenante de FreeCAD, mais doit être installé pour utiliser pleinement cet atelier. OpenSCAD ne doit pas être confondu avec [[OpenCASCADE/fr|OpenCASCADE]], qui est le noyau géométrique que FreeCAD utilise pour créer la géométrie à l'écran. Les bibliothèques OpenCASCADE sont toujours nécessaires pour utiliser FreeCAD tandis que l'exécutable OpenSCAD est entièrement facultatif.
It contains an [[OpenSCAD_CSG|importer]] which allows you to open the [[OpenSCAD_CSG|.csg]] output from OpenSCAD in FreeCAD.


Il contient un importateur [[OpenSCAD_CSG/fr|CSG]] pour ouvrir les fichiers CSG créés par OpenSCAD et un exportateur pour générer une arborescence basée sur CSG. Les géométries non basées sur des opérations CSG seront exportées sous forme de maillage.
The [[OpenSCAD_CSG|exporter]] outputs a CSG based (sub-)tree to [[OpenSCAD_CSG|.csg]]. Geometry which is not based on CSG operations and is exported as a mesh.
The OpenSCAD module contains a toolbox with functions to modify the feature tree and repair models.


Cet atelier contient des fonctions permettant de modifier l'arborescence des éléments CSG et de réparer les modèles. Il contient également des outils d'usage général qui ne nécessitent pas l'installation d'OpenSCAD et peuvent être utilisés conjointement avec d'autres ateliers. Par exemple, l'[[Mesh_Workbench/fr|Atelier Mesh]] utilise en interne les fonctions OpenSCAD pour effectuer des opérations avec de [[mesh/fr|maillage]] car elles sont assez robustes.
== OpenSCAD language and file format ==
The OpenSCAD language allows the use of variables and loops. It allows you to specify submodules to reuse geometry and code. This high degree of flexibility makes parsing very complex. Currently the OpenSCAD module in FreeCAD can not handle the OpenSCAD language natively.
Instead, if OpenSCAD is installed, it can be used to convert the input to an output format named 'CSG'. It is a subset of the OpenSCAD Language and can be used as the input to OpenSCAD for further processing.
During conversion all parametric behavior is lost - all variable names are discarded, loops expanded and mathematical expressions evaluated.


{{TOCright}}
== GUI Commands ==
[[Image:OpenSCADexamaple1.png]]
{{OpenSCAD Tools}}

== Dépendances ==

Dans FreeCAD 0.19, le module Ply (Python-Lex-Yacc), qui est utilisé pour importer des fichiers CSG, a été supprimé du code source de FreeCAD, car il s'agit d'une bibliothèque tierce non développée par FreeCAD. Par conséquent, vous devez maintenant installer Ply avant d'utiliser OpenSCAD Workbench. Lorsque vous utilisez une version pré-packagée et stable de FreeCAD, cette dépendance doit être installée automatiquement sur toutes les plates-formes. Dans d'autres cas, par exemple, lorsque vous voulez [[Compiling/fr|compiler]] à partir de la source, vous devrez peut-être l'installer à partir d'un référentiel en ligne.

Dans openSUSE, ceci est fait par :

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

Sur les systèmes basés sur Debian/Ubuntu, cela se fait de la manière suivante :

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

L'installation générale sur toutes les plates-formes peut être effectuée à partir de l'index du package Python.

{{Code|code=
pip3 install --user ply
}}

==Langage OpenSCAD et format de fichier==

Le langage [http://www.openscad.org/ OpenSCAD] permet l'utilisation de variables et de boucles. Il permet de spécifier les sous-modules pour réutiliser le code et les formes géométriques. Cette grande flexibilité, rend l'analyse très complexe. Actuellement le module '''OpenSCAD de FreeCAD''' ne permet pas de gérer le langage OpenSCAD nativement. Au contraire, si '''OpenSCAD''' est installé, il est utilisé pour compiler l'entrée dans un format de sortie nommé '''CSG'''. C'est un sous-ensemble du langage d'OpenSCAD et peut être utilisé comme entrée de '''OpenSCAD''' pour un traitement ultérieur. Cependant dans cette étape de la compilation, tous les comportements paramétriques sont perdus. Tous les noms de variables seront écartés, les boucles sont élargies et les expressions mathématiques sont évaluées.

== Outils ==

* [[Image:OpenSCAD_ColorCodeShape.svg|32px]] [[OpenSCAD_ColorCodeShape/fr|ColorCodeShape]] : Change la couleur de la sélection, ou toutes les formes en fonction de leurs validités.
* [[Image:OpenSCAD_ReplaceObject.svg|32px]] [[OpenSCAD_ReplaceObject/fr|Remplacement d'un objet]] : Remplace un objet dans l'arborescence des éléments.
* [[Image:OpenSCAD_RemoveSubtree.svg|32px]] [[OpenSCAD_RemoveSubtree/fr|Suppression de l'arborescence]] : Supprime les objets sélectionnés, et toute leur descendance non référencée depuis d'autres objets.
* [[Image:OpenSCAD_RefineShapeFeature.svg|32px]] [[OpenSCAD_RefineShapeFeature/fr|Affinage de la forme]] : Crée et affine les caractéristiques de la forme.
* [[Image:OpenSCAD_MirrorMeshFeature.svg|32px]] [[OpenSCAD_MirrorMeshFeature/fr|Maillage miroir]]: Crée un maillage en miroir.
* [[Image:OpenSCAD_ScaleMeshFeature.svg|32px]] [[OpenSCAD_ScaleMeshFeature/fr|Mettre à l'echelle]]: Changer d'echelle un maillage.
* [[Image:OpenSCAD_ResizeMeshFeature.svg|32px]] [[OpenSCAD_ResizeMeshFeature/fr|Redimensionner le maillage]]: Redimensionne le maillage.
* [[Image:OpenSCAD_IncreaseToleranceFeature.svg|32px]] [[OpenSCAD_IncreaseToleranceFeature/fr|Augmenter la tolérance]] : Augmente la tolérance des arêtes/faces/sommets des objets sélectionnés.
* [[Image:OpenSCAD_Edgestofaces.svg|32px]] [[OpenSCAD_Edgestofaces/fr|Convertir des arêtes en faces]] : Converti les Bords en Faces. Utile pour préparer les formes géométriques '''DXF''' importées, pour les extruder.
* [[Image:OpenSCAD_ExpandPlacements.svg|32px]] [[OpenSCAD_ExpandPlacements/fr|Développer les placements]] : Développe toutes les éléments vers le bas de l'arborescence.
* [[Image:OpenSCAD_ExplodeGroup.svg|32px]] [[OpenSCAD_ExplodeGroup/fr|Dégrouper]]: Dégroupe les primitives des pièces fusionnées.
* [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] [[OpenSCAD_AddOpenSCADElement/fr|Ajout d'un élément OpenSCAD]] : Ajoute un élément OpenSCAD en entrant le code OpenSCAD dans le panneau de tâches et exécute le binaire OpenSCAD (OpenSCAD doit être installé sur votre ordinateur) Remarque: Cet icône ne s'affiche pas (même si OpenSCAD est installé sur votre ordinateur), vous devez également configurer FreeCAD. [https://sourceforge.net/apps/mediawiki/free-cad/index.php?title=OpenSCAD_AddOpenSCADElement#Initial_set_up_from_within_FreeCAD Voir ici pour plus de détails]
* [[Image:OpenSCAD_MeshBoolean.svg|32px]] [[OpenSCAD_MeshBoolean/fr|Maillage à partir d'opération booléenne]] : Crée un nouvel objet maille avec une opération booléenne à partir de plusieurs formes.
* [[Image:OpenSCAD_Hull.svg|32px]] [[OpenSCAD_Hull/fr|Enveloppe convexe]] : Applique une coque aux formes sélectionnées.
* [[Image:OpenSCAD_Minkowski.svg|32px]] [[OpenSCAD_Minkowski/fr|Somme de Minkowski]] : Applique une somme de Minkowski aux formes sélectionnées.

== Préférences ==

* [[Image:Std_DlgPreferences.svg|32px]] [[OpenSCAD_Preferences/fr|Préférences...]]: préférences disponibles dans OpenSCAD Tools.


== Limitations ==
== Limitations ==
OpenSCAD creates constructive solid geometry as well as importing mesh files and extruding 2d geometry (from dxf files). FreeCAD allows you to create CSG with primitives as well. The FreeCAD geometry kernel (OCCT) works using a boundary representation.
Therefore conversion from CSG to BREP should, in theory, be possible whereas conversion from BREP to CSG is, in general, not.


OpenSCAD crée des géométries solides constructives, importe des fichiers de maillage et extrude des géométries 2D à partir de fichiers [[DXF/fr|DXF]]. FreeCAD vous permet également de créer des CSG avec des primitives. Le noyau géométrique de FreeCAD (OCCT) fonctionne en utilisant une représentation des frontières. Par conséquent, la conversion de CSG en BREP devrait, en théorie, être possible alors que la conversion de BREP en CSG ne l'est pas en général.
OpenSCAD works internaly on meshes. Some operations which are useful on meshes are not meaningful on a BREP model and are currently not available. Among these are convex hull, minkowski sum, glide and subdiv.
OpenSCAD is very tolerant when doing booleans on coincident geometry. The FreeCAD geometry kernel is less tolerant. An automatic solution is not available at the moment. Please feel free to post to the forum if you encounter such problems.


OpenSCAD fonctionne en interne avec les maillages (mesh). Certaines opérations qui sont utiles sur les maillages ne sont pas significatives sur un modèle BREP et peuvent ne pas être entièrement supporté. Parmi celle-ci figurent le recouvrement convexe, la somme de Minkowski, glide et subdiv. Pour l’instant OpenSCAD est exécuté pour réaliser le recouvrement convexe et la somme de Minkowski et importer le résultat. Cela signifie que la géométrie impliquée sera triangulée. Avec OpenSCAD la mise à l’échelle non uniforme est souvent utilisée, ce qui ne pose pas de problèmes avec les maillages. Avec notre noyau géométrique, les formes primitives (lignes, sections circulaires, etc) sont converties en BSpline avant d’être déformées. Ces BSplines sont connues pour poser problèmes avec des opérations booléennes futures. Une solution automatique n’est pas disponible pour le moment. S’il vous plaît n’hésitez pas à poster sur le [http://forum.freecadweb.org/ forum] si vous rencontrez ce genre de problème. Souvent ce genre de problèmes peut être résolu en modélisant des parties plus petites. Une déformation d’un cylindre peut être remplacée par l’extrusion d’une ellipse.
== Hints ==
When importing DXF set the Draft precision to a sensible amount as this will affect the detection of connected edges.


== Importer du texte ==
If FreeCAD crashes when importing CSG, it is strongly recommended that you enable 'automatically check model after boolean operation' in Menu -> Edit -> Preferences -> Part Design -> Model setting


L'importation de code OpenSCAD avec des textes nécessite que les polices utilisées soient correctement installées sur votre système. Vous pouvez le vérifier en ouvrant OpenSCAD en tant qu'outil autonome et en consultant la liste dans {{MenuCommand|Aide → Liste des polices}}. La liste vous donnera également les noms de polices corrects. Si une police n'apparaît pas dans la liste après l'installation, vous devrez peut-être copier manuellement le fichier de police dans le répertoire système approprié.
== Links ==
* [http://www.thingiverse.com/tag:openscad Things tagged with "Openscad" on Thingiverse]


L'importation de textes est relativement lente. Dans les coulisses, FreeCAD utilise un fichier DXF créé par OpenSCAD. Plus il y a de contours, plus l'importation est lente.
{{docnav|}}


Il peut être judicieux d'importer d'abord un cas de test simple (remplacer {{Incode|NameOfFont}} par le nom correct de la police) :
[[Category:User Documentation]]


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

Le paramètre {{Incode|<nowiki>script="Latn"</nowiki>}} peut être omis ici, mais il est requis si la chaîne de texte ne contient pas de lettres, mais uniquement des signes de ponctuation et/ou des chiffres.

Veuillez noter que les instructions {{Incode|<nowiki>use <FONT>;</nowiki>}} dans vos fichiers sources sont ignorées lors de l'importation dans FreeCAD. Sous OpenSCAD, l'effet d'une instruction {{Incode|use}} est que le fichier de police fourni est temporairement ajouté à la liste des polices connues (bien que même là, l'instruction ne fonctionne pas lorsqu'un script est modifié interactivement).

== Conseils ==

Lors de l'importation du fichier [[DXF/fr|DXF]], il faut définir la précision du projet à une valeur raisonnable, car cela aura une incidence sur la détection des arêtes connectées.

Si FreeCAD se bloque lors de l'importation de CSG, il est fortement recommandé d'activer la case à cocher "Vérifier les modèles automatiquement après une opération booléenne" dans le menu {{MenuCommand|Édition → Préférences → Conception de pièces → Général → Paramètres de modèle}}

== Tutoriels ==

* [[Import_OpenSCAD_code/fr|Importer code OpenSCAD]]

== Liens ==

* Le dépôt officiel du code source du projet OpenSCAD est hébergé sur [https://github.com/openscad/openscad GitHub].
* Tickets ouverts étiquetés "OpenSCAD" sur le [https://github.com/FreeCAD/FreeCAD/labels/WB%20OpenSCAD FreeCAD Suivi des problèmes sur Github]. Il existe également des tickets sur le [https://freecadweb.org/tracker/search.php?tag_string=OpenSCAD gestionnaire de bogues mantis], désormais archivé.
* Modèles étiquetés "OpenSCAD" sur [http://www.thingiverse.com/tag:openscad Thingiverse].


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

{{OpenSCAD Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 17:32, 12 March 2022

Icône de l'atelier OpenSCAD

Introduction

L' atelier OpenSCAD est destiné à offrir une interopérabilité avec le logiciel open source OpenSCAD. Ce programme n'est pas distribué comme partie prenante de FreeCAD, mais doit être installé pour utiliser pleinement cet atelier. OpenSCAD ne doit pas être confondu avec OpenCASCADE, qui est le noyau géométrique que FreeCAD utilise pour créer la géométrie à l'écran. Les bibliothèques OpenCASCADE sont toujours nécessaires pour utiliser FreeCAD tandis que l'exécutable OpenSCAD est entièrement facultatif.

Il contient un importateur CSG pour ouvrir les fichiers CSG créés par OpenSCAD et un exportateur pour générer une arborescence basée sur CSG. Les géométries non basées sur des opérations CSG seront exportées sous forme de maillage.

Cet atelier contient des fonctions permettant de modifier l'arborescence des éléments CSG et de réparer les modèles. Il contient également des outils d'usage général qui ne nécessitent pas l'installation d'OpenSCAD et peuvent être utilisés conjointement avec d'autres ateliers. Par exemple, l'Atelier Mesh utilise en interne les fonctions OpenSCAD pour effectuer des opérations avec de maillage car elles sont assez robustes.

Dépendances

Dans FreeCAD 0.19, le module Ply (Python-Lex-Yacc), qui est utilisé pour importer des fichiers CSG, a été supprimé du code source de FreeCAD, car il s'agit d'une bibliothèque tierce non développée par FreeCAD. Par conséquent, vous devez maintenant installer Ply avant d'utiliser OpenSCAD Workbench. Lorsque vous utilisez une version pré-packagée et stable de FreeCAD, cette dépendance doit être installée automatiquement sur toutes les plates-formes. Dans d'autres cas, par exemple, lorsque vous voulez compiler à partir de la source, vous devrez peut-être l'installer à partir d'un référentiel en ligne.

Dans openSUSE, ceci est fait par :

sudo zypper install python3-ply

Sur les systèmes basés sur Debian/Ubuntu, cela se fait de la manière suivante :

sudo apt install python3-ply

L'installation générale sur toutes les plates-formes peut être effectuée à partir de l'index du package Python.

pip3 install --user ply

Langage OpenSCAD et format de fichier

Le langage OpenSCAD permet l'utilisation de variables et de boucles. Il permet de spécifier les sous-modules pour réutiliser le code et les formes géométriques. Cette grande flexibilité, rend l'analyse très complexe. Actuellement le module OpenSCAD de FreeCAD ne permet pas de gérer le langage OpenSCAD nativement. Au contraire, si OpenSCAD est installé, il est utilisé pour compiler l'entrée dans un format de sortie nommé CSG. C'est un sous-ensemble du langage d'OpenSCAD et peut être utilisé comme entrée de OpenSCAD pour un traitement ultérieur. Cependant dans cette étape de la compilation, tous les comportements paramétriques sont perdus. Tous les noms de variables seront écartés, les boucles sont élargies et les expressions mathématiques sont évaluées.

Outils

Préférences

Limitations

OpenSCAD crée des géométries solides constructives, importe des fichiers de maillage et extrude des géométries 2D à partir de fichiers DXF. FreeCAD vous permet également de créer des CSG avec des primitives. Le noyau géométrique de FreeCAD (OCCT) fonctionne en utilisant une représentation des frontières. Par conséquent, la conversion de CSG en BREP devrait, en théorie, être possible alors que la conversion de BREP en CSG ne l'est pas en général.

OpenSCAD fonctionne en interne avec les maillages (mesh). Certaines opérations qui sont utiles sur les maillages ne sont pas significatives sur un modèle BREP et peuvent ne pas être entièrement supporté. Parmi celle-ci figurent le recouvrement convexe, la somme de Minkowski, glide et subdiv. Pour l’instant OpenSCAD est exécuté pour réaliser le recouvrement convexe et la somme de Minkowski et importer le résultat. Cela signifie que la géométrie impliquée sera triangulée. Avec OpenSCAD la mise à l’échelle non uniforme est souvent utilisée, ce qui ne pose pas de problèmes avec les maillages. Avec notre noyau géométrique, les formes primitives (lignes, sections circulaires, etc) sont converties en BSpline avant d’être déformées. Ces BSplines sont connues pour poser problèmes avec des opérations booléennes futures. Une solution automatique n’est pas disponible pour le moment. S’il vous plaît n’hésitez pas à poster sur le forum si vous rencontrez ce genre de problème. Souvent ce genre de problèmes peut être résolu en modélisant des parties plus petites. Une déformation d’un cylindre peut être remplacée par l’extrusion d’une ellipse.

Importer du texte

L'importation de code OpenSCAD avec des textes nécessite que les polices utilisées soient correctement installées sur votre système. Vous pouvez le vérifier en ouvrant OpenSCAD en tant qu'outil autonome et en consultant la liste dans Aide → Liste des polices. La liste vous donnera également les noms de polices corrects. Si une police n'apparaît pas dans la liste après l'installation, vous devrez peut-être copier manuellement le fichier de police dans le répertoire système approprié.

L'importation de textes est relativement lente. Dans les coulisses, FreeCAD utilise un fichier DXF créé par OpenSCAD. Plus il y a de contours, plus l'importation est lente.

Il peut être judicieux d'importer d'abord un cas de test simple (remplacer NameOfFont par le nom correct de la police) :

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

Le paramètre script="Latn" peut être omis ici, mais il est requis si la chaîne de texte ne contient pas de lettres, mais uniquement des signes de ponctuation et/ou des chiffres.

Veuillez noter que les instructions use <FONT>; dans vos fichiers sources sont ignorées lors de l'importation dans FreeCAD. Sous OpenSCAD, l'effet d'une instruction use est que le fichier de police fourni est temporairement ajouté à la liste des polices connues (bien que même là, l'instruction ne fonctionne pas lorsqu'un script est modifié interactivement).

Conseils

Lors de l'importation du fichier DXF, il faut définir la précision du projet à une valeur raisonnable, car cela aura une incidence sur la détection des arêtes connectées.

Si FreeCAD se bloque lors de l'importation de CSG, il est fortement recommandé d'activer la case à cocher "Vérifier les modèles automatiquement après une opération booléenne" dans le menu Édition → Préférences → Conception de pièces → Général → Paramètres de modèle

Tutoriels

Liens