filament-abs.fr Posté(e) Décembre 13, 2020 Posté(e) Décembre 13, 2020 Bonjour, J'aimerais modéliser un polyèdre 3D à bords arrondis et je sèche... Voici un exemple de ce que je voudrais, sauf que dans ce cas, il s'agit d'un rectangle. Or j'aimerais qu'une base du rectangle soit moins large: minkowski() { cube([15,22,3]); cylinder(r=2,h=1); }
Vector Posté(e) Décembre 13, 2020 Posté(e) Décembre 13, 2020 (modifié) Salut @filament-abs.fr, c'est ça que tu veux faire ? Modifié (le) Décembre 13, 2020 par Vector
fran6p Posté(e) Décembre 13, 2020 Posté(e) Décembre 13, 2020 @filament-abs.fr Bonjour, La fonction «minkowski» est très intéressante pour créer des formes à bords arrondis mais elle ajoute deux fois le rayon du cylindre à la largeur et la longueur et ajoute la hauteur du cylindre à la hauteur aux dimensions de la forme de base, Citation $fn=60; mm=1.0; lar=15.0*mm; lon=22.0*mm; hau=3.0*mm; ray=2.0*mm; hcyl=1.0*mm; larrect=lar-2*ray; // largeur rectifiée lonrect=lon-2*ray; // longueur rectifiée haurect=hau-hcyl; // hauteur rectifiée translate([ray,ray,0]) minkowski() { cube([lar,lon,hau]); cylinder(r=ray,h=hcyl); } translate([ray,ray,10]) minkowski() { cube([larrect,lonrect,haurect]); cylinder(r=ray,h=hcyl); } Dérouler
filament-abs.fr Posté(e) Décembre 13, 2020 Auteur Posté(e) Décembre 13, 2020 @Vector Non pas tout à fait. Sur les 6 côtés, seuls deux doivent être plus courts que les autres (et eux-même de la même longueur). - Tu dessines un rectangle, - tu raccourcis un côté - tu lui donnes de l'épaisseur. Et merci à @fran6p pour l'astuce
fran6p Posté(e) Décembre 13, 2020 Posté(e) Décembre 13, 2020 Le 13/12/2020 at 15:37, filament-abs.fr a dit : - Tu dessines un rectangle, - tu raccourcis un côté - tu lui donnes de l'épaisseur. Dérouler C'est un trapèze ? Il faudrait peut-être utiliser la fonction «polyhedron». Un test avec un rectangle (en modifiant les 8 coordonnées du «cube» pour former un trapèze) ? : Citation $fn=60; mm=1.0; lar=15.0*mm; lon=22.0*mm; hau=3.0*mm; ray=2.0*mm; hcyl=1.0*mm; decal=3.0*mm; larrect=lar-2*ray; // largeur rectifiée lonrect=lon-2*ray; // longueur rectifiée haurect=hau-hcyl; // hauteur rectifiée /* minkowski() { cube([lar,lon,hau]); cylinder(r=ray,h=hcyl); } translate([ray,ray,10]) minkowski() { cube([larrect,lonrect,haurect]); cylinder(r=ray,h=hcyl); } minkowski() { cylinder(lonrect,lonrect,larrect,$fn=4); cylinder(r=ray,h=hcyl); } */ PointsCube=[ [0,0,0], //0 [larrect,0,0], //1 [larrect,lonrect,0], //2 [0,lonrect,0], //3 [decal,decal,haurect], //4 [larrect-decal,decal,haurect], //5 [larrect-decal,lonrect-decal,haurect], //6 [decal,lonrect-decal,haurect]]; //7 FacesCube=[ [4,5,1,0], //avant [5,6,2,1], //droite [6,7,3,2], //arriere [7,4,0,3], //gauche [0,1,2,3], //dessous [7,6,5,4]]; // dessus minkowski() { polyhedron(PointsCube,FacesCube); cylinder(r=ray,h=hcyl); } Dérouler
filament-abs.fr Posté(e) Décembre 13, 2020 Auteur Posté(e) Décembre 13, 2020 Oui, c'est un trapèze particulier: difference() { cube([20,10,4], true); translate ([17.6,0,0]) rotate ([0,0,15]) cube([20,30,5], true); mirror ([1,0,0]) translate ([17.6,0,0]) rotate ([0,0,15]) cube([20,30,5], true); } C'est ce truc que j'aimerais mais avec des angles arrondis. Avec polyhedron je n'arrive pas à obtenir un volume. (D'ailleurs la doc précise que polyhedron est dédié à la 2D). Je vais essayer de décortiquer ton code, cependant
Vector Posté(e) Décembre 14, 2020 Posté(e) Décembre 14, 2020 (modifié) Salut @filament-abs.fr, comme ça ? : Modifié (le) Décembre 14, 2020 par Vector
filament-abs.fr Posté(e) Décembre 14, 2020 Auteur Posté(e) Décembre 14, 2020 @Vector Oui, c'est exactement ce que je voudrais!
Vector Posté(e) Décembre 14, 2020 Posté(e) Décembre 14, 2020 (modifié) Si la forme de ta pièce est un trapèze isocèle, alors pour ça il va falloir dans un premier temps que tu installes cette librairie : dotSCAD https://github.com/JustinSDK/dotSCAD Et là, si t'es sur MAC, ben c'est le drame, je ne pourrais pas t'aider plus à ce sujet, infos ici : https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries Quand tu auras installé et vérifié la librairie, tu m'appelleras Modifié (le) Décembre 14, 2020 par Vector
filament-abs.fr Posté(e) Décembre 14, 2020 Auteur Posté(e) Décembre 14, 2020 Ha zut, je n'ai jamais réussi à installer une bibliothèque pour OpenScad (sur Mac en effet). J'ai mis la nouvelle bibliothèque au même endroit que la bibliothèque de base MACD mais rien à faire, ça ne fonctionne pas. Bon je vais creuser. Sinon, pourrais-tu afficher le code? Ainsi je pourrais l'essayer dès que j'aurais réussi à installer la bibliothèque?
Vector Posté(e) Décembre 14, 2020 Posté(e) Décembre 14, 2020 (modifié) Voici mon code : Citation use <shape_trapezium.scad>; use <path_extrude.scad>; use <bezier_curve.scad>; t_step = 1; $fn=200; B = 60; b = 25; h = 30; epaisseur = 10; arrondi = 5; shape_pts = shape_trapezium( [B, b], h , corner_r = arrondi ); p0 = [0, 0.001, 0]; p1 = [0, 0, epaisseur]; path_pts = bezier_curve(t_step, [p0, p1] ); path_extrude(shape_pts, path_pts); Dérouler L'idée de ce code vient d'ici : https://openhome.cc/eGossip/OpenSCAD/lib-shape_trapezium.html Bon, il va falloir investir dans un PC au bout d'un moment, hein ... Modifié (le) Décembre 14, 2020 par Vector
filament-abs.fr Posté(e) Décembre 14, 2020 Auteur Posté(e) Décembre 14, 2020 Bon, c'est un problème de path. En mettant le chemin complet aux librairies derrière "USE", ça fonctionne. Il faut donc que je révise mes cours Unix...
fran6p Posté(e) Décembre 15, 2020 Posté(e) Décembre 15, 2020 Le 13/12/2020 at 18:09, filament-abs.fr a dit : (D'ailleurs la doc précise que polyhedron est dédié à la 2D). Dérouler Bizarre polygon est son pendant pour la 2D. Les bibliothèques proposées par @Vector sont très bien. Je suis aussi obligé de mettre le chemin d'accès complet pour qu'OpenSCAD trouve les bibliothèques alors que ma variable d'environnement est correctement déclarée (Windows 10)
Vector Posté(e) Décembre 15, 2020 Posté(e) Décembre 15, 2020 (modifié) Salut @fran6p, Sur mon PC Windows 10, j'ai rajouté dans Variables d'environnement > Variables utilisateur pour xxxxxx > Nouvelle : - Nom de la variable : OPENSCADPATH - Valeur de la variable : C:\Users\xxxxxx\Documents\OpenSCAD\libraries\dotSCAD\src La librairie dotSCAD est située dans : C:\Users\xxxxxx\Documents\OpenSCAD\libraries\dotSCAD Pour vérification dans OpenSCAD : Menu fichier > Afficher le dossier des bibliothèques : C:\Users\xxxxxx\Documents\OpenSCAD\libraries Modifié (le) Décembre 15, 2020 par Vector
filament-abs.fr Posté(e) Décembre 15, 2020 Auteur Posté(e) Décembre 15, 2020 (modifié) Le 15/12/2020 at 09:57, fran6p a dit : Bizarre polygon est son pendant pour la 2D. Dérouler J'ai dû lire la doc de travers. Quoiqu'il en soit, les formes 3D que je réalisais avec polyhedron étaient "creuses". Un artefact très curieux. @Vector de mon côté, étant sur Mac le menu "Afficher le dossier des bibliothèques" affiche bien le bon répertoire avec ta bibliothèque. Modifié (le) Décembre 15, 2020 par filament-abs.fr
Invité Posté(e) Octobre 30, 2021 Posté(e) Octobre 30, 2021 déterrage du sujet voici le code (simple)sans la moindre bibliothèque et totalement modifable dans les dimensions $fn=100; H=10; // hauteur de l'objet Z R=5; // rayon des arrondi B= 25; // dimension de la base du trapeze S=15;// dimension du sommet du trapeze L=10; // largeur du trapeze hull(){ cylinder(H,R,R); translate([B,0,0]){cylinder(H,R,R);} translate([B-S/2,L,0]){cylinder(H,R,R);} translate([B-S,L,0]){cylinder(H,R,R);} }
fran6p Posté(e) Octobre 31, 2021 Posté(e) Octobre 31, 2021 (modifié) Le trapèze n'est pas régulier. En changeant une des dimensions du «trapèze», il devient encore plus irrégulier Modifié (le) Octobre 31, 2021 par fran6p
Invité Posté(e) Octobre 31, 2021 Posté(e) Octobre 31, 2021 Le 31/10/2021 at 09:23, fran6p a dit : Le trapèze n'est pas régulier. En changeant une des dimensions du «trapèze», il est devient encore plus irrégulier Dérouler j'ai écris ce bout de code en quelques secondes, juste pour exemple que c'est possible sans bibliotheques extérieure l’intérêt d'openscad et de ses variable en début de programme, c'est qu'on change toutes les dimensions en changeant un seul chiffre j'ai écris de nombreux objet que je redimensionne à volonté selon mes besoins du moment en cours de finition, le plan d'une maquette de maison avec modification de toutes se dimensions, y compris l'angle de la toiture garnie de tuiles dont le nombre est affiché par "echo" cloisons amovible, et même en angle si on le veux menuiseries a volonté et modifiable attention ordinateur ultra rapide nécessaire pour faire apparaitre le rendu
fran6p Posté(e) Octobre 31, 2021 Posté(e) Octobre 31, 2021 Le 31/10/2021 at 16:05, Patrick76 a dit : j'ai écris ce bout de code en quelques secondes, juste pour exemple que c'est possible sans bibliotheques extérieure Dérouler Certes on pourrait ne pas utiliser de bibliothèque extérieure mais ça ne produit pas ce que souhaitait @filament-abs.fr Mon ordinateur n'est plus un foudre de guerre mais me permet tout de même d'obtenir un rendu correct. Il faut juste être patient La fonction «hull» d'Openscad n'est pas une fonction «facile». De nombreuses bibliothèques permettent d'ajouter de nombreuses fonctions, pourquoi s'en passer alors qu'elles sont disponibles gratuitement Les variables quand elles sont bien «écrites» permettent d'utiliser le «customizer» (onglet Window, Customizer) même pas besoin d'intervenir dans le code :
Invité Posté(e) Octobre 31, 2021 Posté(e) Octobre 31, 2021 Le 31/10/2021 at 16:49, fran6p a dit : Les variables quand elles sont bien «écrites» permettent d'utiliser le «customizer» (onglet Window, Customizer) même pas besoin d'intervenir dans le code : Dérouler sauf lorsque la variable n'as de valeur fixe, mais calculée en effet les bibliothèques sont une aide précieuse dans de nombreux cas , mais au début, j'ai tenter d'écrire le plus simplement possible sans aide extérieure maintenant, j'écris mes propres bibliothèques que j'utilise pleinement.
F14Claude Posté(e) Juillet 25, 2022 Posté(e) Juillet 25, 2022 Le 30/10/2021 at 20:28, Patrick76 a dit : déterrage du sujet voici le code (simple)sans la moindre bibliothèque et totalement modifable dans les dimensions $fn=100; H=10; // hauteur de l'objet Z R=5; // rayon des arrondi B= 25; // dimension de la base du trapeze S=15;// dimension du sommet du trapeze L=10; // largeur du trapeze hull(){ cylinder(H,R,R); translate([B,0,0]){cylinder(H,R,R);} translate([B-S/2,L,0]){cylinder(H,R,R);} translate([B-S,L,0]){cylinder(H,R,R);} } Dérouler Plutôt que de faire un hull coûteux je ferais d'abord un plan 2D avec 4 cercles puis un linear_extrude...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant