Resumé
Une chose amusante s'est produite en chemin lors du développement de choses géodésiques. J'ai découvert que j'avais besoin de développer complètement certains solides platoniques. Et comme j'avais besoin d'en développer trois, j'ai pensé que je les développerais tous.
Cette chose représente la dernière incarnation de la bibliothèque maths_geodesic, plus des extras.
Tout d'abord, la bibliothèque originale maths_geodesic.scad avait un petit bug dans la fonction 'clean' qui l'empêchait de convertir correctement les coordonnées sphériques.
Il y a quelques ajouts :
DEGREES() - Déjà existant dans d'autres bibliothèques, convertit des radians en degrés.
RADIANS() - Existe déjà dans d'autres bibliothèques, convertit des degrés en radians.
deg(deg,min,sec) - Crée une structure de données qui contient des degrés, des minutes et des secondes.
deg_to_dec(d) - convertit cette structure de données en degrés en forme décimale.
Ces éléments seront utiles un jour, lorsque des choses plus sphériques et géographiques commenceront à apparaître.
sphu_from_cart(c, rad=1) - Fait la même chose que sph_from_cart, mais vous permet de spécifier le rayon. C'est très pratique lorsque vous convertissez à partir de certaines coordonnées cartésiennes, et que vous voulez faire quelque chose avec un rayon fixe.
Puis, il y a certaines choses liées aux mathématiques des polygones. Comprendre les angles internes, et ainsi de suite. Peut-être que le plus intéressant est de calculer l'angle dièdre pour un solide platonicien. Cela s'avère utile pour certains calculs.
Mais, ce qui est vraiment nouveau, c'est l'ensemble d'éléments liés directement aux solides platoniques dans le fichier 'platonic.scad'.
Tout d'abord, les 5 solides platoniques sont représentés par des fonctions qui représentent leur géométrie/topologie, sous une forme appropriée pour le rendu avec le module polyhedron().
Donc :
Tétraèdre (rayon=1)
Octahèdre (rayon=1)
Hexahèdre (rayon=1)
Dodecaèdre (rayon=1)
Un icosaèdre (rayon = 1)
Vous pouvez l'utiliser comme ceci :
afficher_polyèdre(icosaèdre(20));
Cela rendra un icosaèdre centré à [0,0,0], avec un rayon de 20.
Être capable de définir le rayon est vraiment pratique car vous pouvez faire des choses comme les imbriquer, ou simplement les créer à la taille dont vous avez besoin. Le fait qu'ils soient centrés sur l'origine rend assez facile de les faire pivoter dans n'importe quelle orientation que vous souhaitez.
Les fichiers .stl présentés ici montrent juste quelques rendus occasionnels qui peuvent être générés avec le fichier test_platonic.scad. Effectuer des troncations et des stellations est assez simple. Même faire des formes évidées, en particulier avec des doubles, est également assez simple.
La seule chose qui n'est pas ici, c'est l'utilisation du rayon intérieur, du rayon circonférentiel et du rayon médian pour effectuer un alignement correct des doubles. Mais, à quel point ça peut être difficile ?
En tout cas, OpenScad dispose maintenant d'un petit ensemble bien rangé de solides platoniques avec lesquels jouer.
Mise à jour : 2011-08-19
J'ai ajouté quelques fichiers .stl qui sont des rendus des différents solides. Le dodécahédrone rencontre effectivement un problème dans OpenScad. Je vais déboguer celui-là et le télécharger quand il fonctionnera réellement. Un bug très étrange.
Mise à jour : 03092011
J'ai remplacé le fichier platonics.stl par platonic_set.stl. J'ai maintenant un meilleur dodécahèdre.
Instructions
1) Téléchargez les différents fichiers. platonic.scad dépend de maths_geodesic.scad, vous devriez donc au moins obtenir ces deux fichiers.
2) Jouez avec le fichier test_platonic.scad pour voir comment les choses sont faites.
3) Réjouissez-vous !