Nouvelle version 1.30 Voir l'historique des versions
stl2dat.zip v1.30
Autre téléchargements
Utilisation
Développements futurs
Historique des versions
Algorithme de conversion
Exemple
Conseils de modélisation
stl2dat est un utilitaire pour convertir des fichiers .stl issus de logiciels CAO comme Solidworks, Autocad, etc... en fichiers .dat pour les programmes compatibles ldraw.
Il convertit les facettes triangulaires du fichier de STL en facettes triangulaires et quadrangulaires, crée des lignes du type 2 et du type 5 et insère les primitives standard comme le cylindre (n-4.cyli.dat) et les bords circulaires (n-edge.dat)
Créer des pièces est à la main intéressant, mais quand vous avez accès à un logiciel moderne de CAO, c'est un peu fastidieux. Ainsi j'ai recherché une solution pour convertir les modèles CAO en un fichier .dat pour ldraw. J'ai trouvé que le format stl qui contient suffisamment d'information pour construire un fichier .dat. J'aurais pu faire un outil natif, mais ce travail beaucoup plus compliqué, et il aurait seulement été valable pour un logiciel particulier. Ainsi j'ai décidé de faire un outil pour convertir des fichiers de stl en fichiers de dat.
Note: stl2dat est seulement destiné à être utilisé pour des pièces Lego.
Le developpement est toujours en cours, mais le programme est utisable dès maintenant.
stl2dat.zip (40 Ko) le
programme lui-même
Fichiers sources Disponibles sur sourceforge.net/projects/stl2dat
stl.reg Un fichier de reglage pour définir
les paramètres d'enregistrement au format STL pour Solidworks (double-cliquer
sur le fichier pour l'installer)
stl.swb Une macro pour définir les paramètres
d'enregistrement au format STL pour Solidworks
32137.dat (68 Ko) un exemple de pièces
convertie avec stl2dat
Créez la pièce avec un logiciel de CAO.
Utilisez l'unité LDraw, pas les millimètres. (20 =
longueur de brique 1x1)
Exportez le modèle dans le format stl.
Avec Solidworks, utilisez la commande "Enregistrer
sous...".
Reglez les paramètres de stl. Déviation = 0,0005, Tolérance
d'angle = 22.5°.
La tolérance d'angle est importante pour la détection
des primitives cylindriques.
Avec Solidworks, vous devez utiliser la macro stl.swb pour cela.
Exécutez ensuite stl2dat pour convertir
le fichier.
Le programme doit s'exécuter dans une fenêtre de DOS ou
être démarré avec Démarrer / Exécuter. Le programme
doit s'exécuter sous Windows, même si le programme a
une interface de type console.
Essayez différentes valeurs d'eps d'angle. Un bon résultat
avec les options -a 22,51 -eps 0,01
Éditez le fichier .dat pour ajouter les
informations manquantes comme les commentaires.
Ajoutez les primitives comme le connecteur, la cheville,
le goujon, etc... (c'est trop complexe pour être fait
automatiquement.)
Copiez le fichier .dat dans le répertoire /parts et utilisez-le avec un programme compatible de LDraw.
Pour certaines pièces complexes, il peut être utile de modéliser des sections séparées de la pièce, et puis fusionner les fichiers .dat résultants. Dans ce cas, il y a généralement des facettes superflues dans le fichier .dat. Pour faciliter cette opération, les facettes tangente sont regroupées. Vous pouvez également employer l'option -cs pour visualiser plus facilement les surfaces détectées par le programme.
nom de fichier de stl2dat [ options ] [ nom [ auteur ] ]
-out nom_fichier: nom du fichier de sortie
-o X Y Z: point d'origine
-m X Y Z A B C D E F G H I : matrice de transformation
-scale S: S est le facteur d'échelle
-scalemm: unités du fichier d'entrée en mm au lieu d'unité ldraw (ldu)
-a angle : angle est la limite pour les bords facultatifs (défaut 22.5 degrés)
-aq angle : angle est la limite pour des quadrilatères (défaut 15 degrés)
-at angle : angle est la limite pour la suppression des facettes inutiles (défaut 11.25 degrés)
-eps valeur
-teps valeur : distance minimum pour la coïncidence (défaut 0.001)
-deps value : déterminant maximum pour les quadrilatères coplanaires (défaut 0.1)
-o4 : pas de fusion des quadrilatères
-o5 : suppression des bords facultatifs internes (concaves)
-op : ne pas créer les primitives
-pp : imprimer les surfaces géométriques
-cn : détecter les cylindres d'après la différence entre la normale de la facette et la normal de la surface théorique
-oe : ne pas créer les arêtes
-of : ne pas supprimer les facettes inutiles
-np : pas de surfaces géométriques planes
-nc : pas de surfaces géométriques cylindrique
-nt : pas de surfaces géométriques tangentes
-c1 couleur : couleur des primitives
-c2 couleur : couleur des bords
-c3 couleur : couleur des triangles
-c4 couleur : couleur des quadrilatères
-c5 couleur : couleur des bords facultatifs
-no1 : pas de primitives
-no2 : pas de bords
-no3 : pas de triangles
-no4 : pas de quadrilatères
-no5 : pas de bords facultatifs
-cs : couleur aléatoire des surfaces
-cc : couleur aléatoire des surfaces adjacentes à un cylindre
-dat : crée un fichier .dat
-ldr : crée un fichier .ldr
-nobfc : pas d'instructions BFC
-silent : n'affiche pas les informations
-ldraw : ne crée pas un entête au standard LDraw
-raw : conversion directe sans aucun calcul
stl2dat mypart.stl -a 22.5 "Ma première pièce" "Marc Klein"
stl2dat x000.dat - o 100 100 50 "Ma pièce" "Mon nom"
Le résultat est un fichier nommé mypart.dat dans le même répertoire que mypart.stl
Quelques idées
Faites une triangulation de Dealaunay (meilleure triangulation)
Détectez les primitives disque, boucle, cône
Détectez les primitifs de goujon
Fusionner les segment alignées.
Fusionner les facettes si possible.
32137.dat (68 Ko)
32137 a été créé avec Solidworks, puis converti avec stl2dat et rendu avec MLCAD
LEGO® est une marque déposée du groupe LEGO
qui ne soutient pas, n'autorise pas ou n'approuve pas ce site.
Visitez le site officiel Lego pour plus d'informations. www.lego.com