stl2dat
Convertisseur STL vers LDraw

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.


Téléchargements

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


Utilisation

  1. Créez la pièce avec un logiciel de CAO.
    Utilisez l'unité LDraw, pas les millimètres. (20 = longueur de brique 1x1)

  2. 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.

  3. 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

  4. É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.)

  5. Copiez le fichier .dat dans le répertoire /parts et utilisez-le avec un programme compatible de LDraw.

Astuce :

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.

Syntaxe :

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

Exemples:

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


Développements futurs

Quelques idées


Historique des versions


Algorithme de conversion

  1. Le programme balaye d'abord toutes les facettes pour créer tous les bords adjacent et pour garder l'information au sujet des facettes adjacent.
  2. Toutes les facettes tangentes sont regroupées par surfaces géométriques. Les type supporté sont : plan, cylindre et toute autre surface tangente
  3. Les primitives cylindriques sont détectées en tenant compte de l'angle entre deux facettes.
  4. Les bords nécessaires sont crées : lignes du type 2 et 5.

Un exemple du résultat de la conversion

32137.dat (68 Ko)

32137 a été créé avec Solidworks, puis converti avec stl2dat et rendu avec MLCAD


Avertissement

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

Retour à ma page Lego