GOUJAT

tutoriel openSCAD

tutoriel openSCAD
Réaliser une pièce mécanique nécessite un dessin. Tout a commencé avec le papier, et les premiers programmes de CAO utilisaient exactement le même style. Il y a même des carrés standards sur les dessins pour que chaque dessin soit identifié. Tout cela est utile lorsque vous démarrez la production dans de grandes entreprises. Cependant, lorsque vous commencez à fabriquer une nouvelle pièce mécanique, vous voudrez peut-être d'autres méthodes.

Les méthodes de CAO 3D vous permettent de voir la pièce entière telle qu'elle est. Vous pouvez également le tordre et le tourner. Dans un logiciel avancé, vous pouvez également simuler le mouvement. Dans tous les cas, vous dessinez les pièces à l'aide d'une interface graphique. C'est génial pour faire des boîtes et des cylindres, mais quand vous voulez faire des formes plus complexes, vous aurez peut-être besoin de méthodes mathématiques.

Entrez une manière standard de décrire n'importe quel matériau avec des commandes.

Ce qui rend openSCAD si spécial?

Dans openSCAD, vous ne dessinez rien avec votre pointeur ou votre stylo. Vous codez la pièce entière avec des commandes et des fonctions. C'est gênant pour les ingénieurs en mécanique, mais pour les programmeurs, vous avez une autre situation. En plus de vos préférences personnelles, vous avez également l'avantage de la précision. Lorsque vous le concevez avec du code, vous avez la précision là-bas dans le code.

La fonctionnalité la plus puissante d'openSCAD est les opérations binaires. Vous pouvez utiliser des opérateurs binaires pour assembler des pièces ou découper des matériaux. Il est facile de faire un cube avec un trou au centre en rétractant le cylindre du cube. Certaines de ces opérations sont disponibles dans d'autres logiciels de CAO, mais il est naturel de les utiliser dans openSCAD.

Quels sont les besoins de votre projet?

Après avoir mis votre design sur une serviette, vous pensez peut-être que vous devez voir ce qui se passe lorsque vous essayez d'en faire un design complet. Ne t'inquiète pas; il y a une fenêtre d'aperçu que vous pouvez regarder pendant que vous codez. Une fois que vous aurez compris les idées de base, vous saurez si c'est la meilleure solution pour votre projet.

Bref, si vous voulez créer de petites pièces aux formes complexes, vous devriez essayer openSCAD. Pour les équipements complets et les systèmes mécaniques, vous souhaitez utiliser des applications graphiques plus avancées. Ceci dit, tout est une question de goût. Vous pouvez créer des formes compliquées avec juste du code, envisageriez-vous de coder une voiture entière?

Installation

OpenSCAD, disponible dans vos référentiels standard pour la plupart des distributions, peut également être installé à l'aide d'un snap et d'AppImage. Il est intéressant de noter que vous disposez également d'un deuxième package comprenant des vis, des engrenages et des formes génériques. Le paquet le plus récent est dans le snap d'openscad-nightly.

sudo apt installer openscad
sudo snap install openscad-nightly

Si vous souhaitez utiliser les vis incluses dans un package séparé, utilisez les référentiels de votre distribution.

sudo apt installer openscad-mcad

L'utilisation des pièces incluses est une autre affaire, abordée plus loin.

Plusieurs formes standards

Les principes du script CAO sont que vous avez quelques formes géométriques standard. Vous utilisez ces formes et les combinez en formes plus complexes. Les formes standard sont le cercle, le carré et le polygone pour la 2D. Pour la 3D, vous avez une sphère, un cube, un cylindre et un polyèdre. En utilisant certains d'entre eux pour construire et d'autres pour couper, vous pouvez créer des formes très complexes.

Il existe également une fonction de texte qui crée un texte 2D. Lorsque vous devez créer des dessins pour un traitement ultérieur, vous pouvez utiliser la commande de projection. Cette commande coupe une forme 3D le long d'un plan afin que vous puissiez la transférer dans un dessin. Vous pouvez également ajouter des formes d'autres programmes ou même des images, en utilisant la commande d'importation. Cela fonctionne également avec les formes 3D.

De plus, vous pouvez extruder des formes à partir d'objets existants.

Transformations

Par défaut, vous créez toutes les pièces au centre de la grille dans toutes les dimensions. Cela les fait tous se chevaucher. Une fois que vous avez un certain nombre de formes, vous voulez les placer au bon endroit et les faire pivoter. Ces fonctions sont les plus simples, translate met l'objet à un autre endroit. La commande de rotation fait pivoter l'objet ou les objets enfants. Vous avez également la fonction miroir, qui crée une copie de l'objet en miroir autour de l'axe donné.

Les autres transformations ont besoin d'exemples pour expliquer. En bref, la coque crée les lignes extérieures de nombreuses formes. Essayez avec deux cercles et combinez-les avec coque(). Ou le code ci-dessous.

traduire([-10,0,0])
coque()
cylindre (30, 5, 1);
cube(9) ;
sphère (12) ;

L'opération de Minkowski est généralement utilisée pour créer des arêtes ; si vous les voulez arrondis, utilisez une sphère.

Opérations booléennes

De nombreuses pièces ne peuvent pas être créées avec uniquement des carrés, des cylindres et des sphères. La première chose que vous pouvez faire est de combiner et de couper de nombreuses formes en une seule forme. Vous utilisez des opérateurs booléens pour ce faire. Ils sont union, différence et intersection.

syndicat()
cube([35, 5, 2], centre = vrai);
cylindre(h = 2, r = 5, centre = vrai );

Dans le code ci-dessus, vous obtenez une seule pièce qui a une ampoule au centre. Pour faire un tube, tu fais la différence entre un cylindre et un autre.

différence()
cylindre(h = 15, r1 = 30, r2 = 30, center= true );
cylindre(h = 15, r1 = 25, r2 = 25, centre = vrai) ;

Au fur et à mesure que nous avançons, vous les utiliserez et plus encore. Voici un exemple d'intersection.

intersection()

tourner([45,0.0])
cylindre( h = 40, r = 4, centre = vrai);
traduire (5,5,5)
cylindre( h = 40, r = 6, centre = vrai);

L'intersection ne laisse que les éléments qui se chevauchent ; vous pouvez créer de nombreuses formes en utilisant cette méthode.

Pour les boucles

Beaucoup de vos conceptions auront la même pièce plusieurs fois, pensez à un patio. Ils sont généralement constitués de plusieurs planches avec des espaces entre elles. Dans ce cas, vous faites une planche et vous la parcourez simplement avec une boucle for.

écart = 8 ;
plank_width = (bed_width / 4) - espace ;
nombre_planches = 4 ;
for(plank_x_pos = [0:1:num_planks - 1])

translate([plank_width*plank_x_pos + espace * planche_x_pos,0,0])
cube([plank_width,4,200]);

Sans la boucle for, vous auriez écrit le cube et traduit les instructions quatre fois. Vous auriez également dû calculer jusqu'où irait la prochaine planche. Même avec seulement quatre pièces, cette solution semble beaucoup plus facile. Dans l'exemple, vous pouvez également voir les variables qui doivent être définies. Toutes les variables sont définies au moment de la compilation, ceci est important car vous pouvez rencontrer des problèmes de débogage si vous les considérez comme des valeurs dans d'autres langages de programmation. Comme vous le verrez plus tard, vous pouvez également faire de l'ensemble du patio un module.

Mathématiques

Inclus dans openSCAD, vous disposez de quelques fonctions mathématiques. Les fonctionnalités prises en charge sont la plupart des fonctions trigonométriques, l'arrondi de différentes manières et la fonction logarithmique. Vous pouvez voir un exemple ci-dessous.

pour(i=[0:36])
traduire([i*10,0,0])
cylindre(r=5,h=cos(i*10)*50+60);

La fonction ci-dessus crée une longue rangée droite de cylindres de hauteur différente. Les fonctions principales sont liées à la trigonométrie. Cependant, avec les fonctions d'arrondi aléatoire et les opérateurs standard, vous pouvez créer à peu près tout. Il existe également un support pour les vecteurs, les matrices et la racine carrée. Même avec ces fonctions, vous pouvez aller très loin. Cependant, ils ne couvrent pas tout ce que vous pouvez imaginer ; à la place, vous pouvez créer des fonctions.

Modules & Fonctions

Vous avez de nombreux modules inclus dans l'installation d'openSCAD. Cependant, vous pouvez également télécharger d'autres bibliothèques. Dans votre distribution, vous trouverez probablement MCAD, également appelé openscad-mcad. A installer sous Ubuntu.

$ sudo apt installer openscad-mcad

A l'intérieur de ce package, vous trouverez à la fois des modules et des fonctions. Avant de commencer un projet, recherchez des bibliothèques et des modules. Il existe déjà une bibliothèque de vis, et ce n'est que le début. Il manque une partie de votre conception? Créez vos propres modules ; vous les utilisez pour faire de nouvelles pièces. Lorsque vous utilisez des paramètres, vous pouvez en faire de nombreuses versions. La meilleure façon de créer un module est de créer la conception dans un fichier séparé, de déterminer ce qui doit être dynamique et d'ajouter un "module" autour de la pièce.

Pour utiliser un module, vous l'appelez par son nom. Étant donné que de nombreux modules sont fournis dans des fichiers séparés, vous devez mettre une instruction d'inclusion en haut de votre fichier. Faites attention à la différence entre la déclaration « include » et la déclaration « use ». Si vous voulez que tout dans un fichier s'exécute, vous "l'incluez", si vous voulez que les modules et les fonctions soient définis uniquement, "utilisez" le fichier. Pour vous assurer que vous pouvez utiliser les modules, vous devez les mettre dans le répertoire courant de votre modèle ou dans l'un des chemins de recherche.

Tout d'abord, examinons quelques-uns que vous pouvez télécharger et utiliser.

Des vis

Dans le paquet de la section précédente, vous pouvez trouver beaucoup de choses. Un groupe sont des vis! Vous pouvez les essayer en les chargeant dans l'application et en appelant le module. Dans la bibliothèque MCAD, vous pouvez trouver de nombreuses vis. Il existe de nombreuses autres collections provenant d'autres sources. Pour utiliser une vis, créez un fichier qui contient l'instruction include pour le module dont vous avez besoin. Maintenant, partout où vous voulez utiliser le module, vous pouvez utiliser le nom du module pour créer votre vis.

inclure ;
ball_groove(12, 40, 2);

C'est une vis qui peut s'adapter à une boule. Vous pouvez également trouver noix_et_boulons_scad, qui définit les vis et boulons métriques. Les concepteurs ont utilisé un site Web où vous pouvez trouver des boulons et ont créé une méthode que vous pouvez utiliser. Un autre exemple est un trou pour un boulon.

inclure
différence()
cube([12,16,20],centre = vrai);
traduire([0,0,-3])
boltHole(8, longueur = 300);

Le code ci-dessus crée un trou assez grand pour le boulon M8, cet exemple crée un cube et découpe deux cylindres de deux tailles. Ce n'est pas très compliqué, mais la complexité augmente rapidement lorsque vous utilisez d'autres composants. Ajoutez les vis aux boîtes paramétriques, et vous pouvez voir comment une bibliothèque aide.

Faire un chariot

Pour faire n'importe quelle construction de n'importe quelle complexité, vous devrez faire une pièce à la fois. Plus tard, vous les combinez les uns avec les autres. Comme nous l'avons mentionné précédemment, vous pouvez utiliser des modules et des fonctions. La meilleure façon de commencer est de décider où vous devez définir les variables. Pour un chariot simple, vous avez besoin de hauteur, d'empattement et de longueur. Vous devez définir les valeurs à un endroit et les utiliser pour adapter les pièces à la conception. Vous aurez peut-être besoin de plus de valeurs, mais ne les mettez pas toutes au début. Lorsque vous démarrez un nouveau projet, vous n'aurez pas toutes les pièces prêtes, alors soyez prêt à changer les choses.

empattement = 150 ;
longueur du chariot = empattement * 1.2 ;
largeur du chariot = 50 ;
diamètre de roue = 25 ;
hauteur de suspension = (diamètre de roue/2) + 5 ;
translate([empattement/2,cartwidth,0])
rotation([90,0,0])
cylindre(r = rayon de roue, 10, centre = vrai);
translate([empattement/2,-(cartwidth),0])
rotation([90,0,0])
cylindre(r = rayon de roue, 10, centre = vrai);

Le code montre le code pour les deux premières roues. Si vous y réfléchissez un peu, vous pouvez probablement faire les roues arrière. Pour ajouter la flak, la surface où vont toutes les choses, il suffit d'ajouter un cube. Utilisez les variables que vous mettez dans le code.

translate([0, 0, hauteursuspension])
cube([cartlength, cartwidth,10], center = true);

Ce flak est à la même hauteur que les roues, donc nous nous en sommes occupés avec la valeur de hauteur de suspension. La déclaration traduite affecte ce qui est directement après elle. Notez qu'il n'y a pas de point-virgule à la fin d'une ligne. Lorsque les instructions à l'intérieur deviennent longues, vous utilisez des accolades autour d'elle.

Maintenant, vous devez ajouter des essieux et une suspension. Les essieux peuvent être de simples cylindres qui passent entre les roues. Vous les placez de la même manière que vous avez fait les roues en utilisant rotation et translation. En fait, le mieux est d'utiliser les mêmes valeurs.

translate([empattement/2,0,0])
rotation([90,0,0])
cylindre (r = rayon de roue * 0.25 , h = (cartwidth * 2) + 15, center = true);

Le code ici met l'essieu avant en place. L'essieu arrière, je vous laisse le lecteur découvrir. Nous pouvons résoudre la suspension de plusieurs manières. Dans ce cas, nous allons rester simple.

// Suspension
translate([empattement/2, 0, hauteursuspension ])
rotation([90,0,0])

différence()
cylindre(r = hauteur de suspension, 10, centre = vrai );
cylindre(r = hauteur de suspension - 5, 11, centre = vrai );
cube([102, suspensionheight/6, 12], center = true);

translate([suspensionhauteur, 0, 0])
cylindre(r = hauteur de suspension/3, h = 12, centre = vrai);
translate([-suspensionheight, 0, 0])
cylindre(r = hauteur de suspension/3, h = 12, centre = vrai);

Ce code crée une suspension très grossière ; il n'utilise que des cylindres, donc ce ne sera pas le meilleur lorsque vous commencerez à l'utiliser. Il illustre une manière de créer des conceptions à partir des primitives ; cylindre, cube, et bien, c'est tout pour ce modèle. Au fur et à mesure de votre progression, vous ferez de chaque pièce un module et placerez ces pièces.

Le code du panier est disponible sur https://github.com/matstage/Carrosse! D'autres développements peuvent venir plus tard.

Bibliothèques

Dans la partie précédente, vous n'avez utilisé que des cercles. Toute conception utilisant uniquement ces primitives ne sera pas la meilleure pour toutes les applications. Vous devez créer des designs beaux et efficaces. La solution est mathématique! Pour ajouter cela, vous devez commencer par utiliser les bibliothèques d'autres personnes.

Il existe un grand nombre de bibliothèques construites par des personnes intelligentes dans la communauté. Les personnes qui construisent sont des utilisateurs qui résolvent leurs problèmes puis les partagent gracieusement avec tout le monde. Merci à tous! Un bon exemple est dotSCAD ; pour l'exemple de suspension, vous pouvez trouver une courbe de Bézier.

Exportation vers d'autres logiciels

Une fois que vous avez un design décent, vous voudrez peut-être l'utiliser dans un autre logiciel. Vous pouvez exporter vers stl, dwg et une multitude d'autres formats. Vos passionnés d'impression 3D peuvent utiliser les fichiers stl directement dans vos programmes de slicer.

Alternatives

ImplicitCAD est une autre alternative intéressante. Ce logiciel est très en développement. Vous devez exécuter sa ligne de commande et cela nécessite Haskell sur votre système. La plupart des installations standard n'ont pas Haskell!

Conclusion

À première vue, l'utilisation d'openSCAD est très difficile. Dépasser la courbe d'apprentissage est un peu difficile, mais cela en vaut la peine pour de nombreux utilisateurs. Merci aux projets de contribuer au projet. Vous avez de nombreuses fonctionnalités disponibles à la fin d'une commande git. Le simple fait de maîtriser les bases de la création de conceptions mécaniques à l'aide de code change la façon dont vous pensez aux formes. Ceci est bénéfique même si vous continuerez à utiliser le pointer-cliquer pour faire vos autres projets.

  • https://www.opencad.organisation/documentation.html?version=2019.05
  • http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial
  • https://www.opencad.org/cheatsheet/index.html
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...
5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...