Article de reference

Format de fichier de fabrication additive

( Découvrez comment et quand supprimer ce message ) Le format de fichier de fabrication additive ( AMF ) est une norme ouverte permettant de décrire des objets pour les processu...

( Découvrez comment et quand supprimer ce message )

Le format de fichier de fabrication additive ( AMF ) est une norme ouverte permettant de décrire des objets pour les processus de fabrication additive tels que l'impression 3D . La norme officielle ISO / ASTM 52915:2016 est un format basé sur XML conçu pour permettre à tout logiciel de conception assistée par ordinateur de décrire la forme et la composition de tout objet 3D à fabriquer sur n'importe quelle imprimante 3D via un logiciel de fabrication assistée par ordinateur . Contrairement à son prédécesseur, le format STL , AMF prend en charge nativement la couleur, les matériaux, les treillis et les constellations.

Structure

Un fichier AMF peut représenter un objet ou plusieurs objets disposés en constellation. Chaque objet est décrit comme un ensemble de volumes non superposés. Chaque volume est décrit par un maillage triangulaire qui référence un ensemble de points (sommets). Ces sommets peuvent être partagés entre des volumes appartenant au même objet. Un fichier AMF peut également spécifier le matériau et la couleur de chaque volume, ainsi que la couleur de chaque triangle du maillage. Le fichier AMF est compressé à l'aide du format de compression zip, mais l'extension de fichier « .amf » est conservée. Une implémentation minimale du lecteur AMF doit être capable de décompresser un fichier AMF et d'importer au moins des informations de géométrie (en ignorant la courbure).

Structure de base du fichier

Le fichier AMF commence par la ligne de déclaration XML spécifiant la version XML et le codage. Le reste du fichier est inclus entre un <amf>élément d'ouverture et un </amf>élément de fermeture. Le système d'unités peut également être spécifié (millimètre, pouce, pied, mètre ou micromètre). En l'absence de spécification d'unités, les millimètres sont utilisés.

Dans les parenthèses AMF, il y a cinq éléments de niveau supérieur. Un seul élément objet est nécessaire pour un fichier AMF entièrement fonctionnel.

  1. <object>L'élément objet définit un ou plusieurs volumes de matériau, chacun étant associé à un identifiant de matériau pour l'impression. Au moins un élément objet doit être présent dans le fichier. Les objets supplémentaires sont facultatifs.
  2. <material>L'élément de matériau facultatif définit un ou plusieurs matériaux pour l'impression avec un ID de matériau associé. Si aucun élément de matériau n'est inclus, un seul matériau par défaut est utilisé.
  3. <texture>L'élément de texture facultatif définit une ou plusieurs images ou textures pour le mappage de couleurs ou de textures, chacune avec un ID de texture associé.
  4. <constellation>L'élément de constellation facultatif combine hiérarchiquement des objets et d'autres constellations dans un modèle relatif pour l'impression.
  5. <metadata>L'élément de métadonnées facultatif spécifie des informations supplémentaires sur les objets et éléments contenus dans le fichier.

Spécification de la géométrie

Le format utilise une disposition de maillage polygonal face-sommet<object> . Chaque élément de niveau supérieur spécifie un id. L' <object>élément peut également éventuellement spécifier un matériau. La géométrie du maillage entier est contenue dans un seul <mesh>élément. Le maillage est défini à l'aide d'un <vertices>élément et d'un ou plusieurs <volume>éléments. L' <vertices>élément requis répertorie tous les sommets utilisés dans cet objet. Chaque sommet se voit implicitement attribuer un numéro dans l'ordre dans lequel il a été déclaré, en commençant à zéro. L'élément enfant requis <coordinates>donne la position du point dans l'espace 3D à l'aide des éléments <x>, <y>et <z>. Après les informations sur le sommet, au moins un <volume>élément doit être inclus. Chaque volume encapsule un volume fermé de l'objet. Plusieurs volumes peuvent être spécifiés dans un seul objet. Les volumes peuvent partager des sommets au niveau des interfaces mais ne peuvent pas avoir de volume superposé. Dans chaque volume, l'élément enfant <triangle>est utilisé pour définir des triangles qui tesselent la surface du volume. Chaque <triangle>élément répertorie trois sommets à partir de l'ensemble d'indices des sommets précédemment définis donnés dans l' <vertices>élément. Les indices des trois sommets des triangles sont spécifiés à l'aide des éléments <v1>, <v2>et <v3>. L'ordre des sommets doit être conforme à la règle de la main droite, de telle sorte que les sommets soient répertoriés dans le sens inverse des aiguilles d'une montre, vus de l'extérieur. À chaque triangle est implicitement attribué un numéro dans l'ordre dans lequel il a été déclaré, en commençant à zéro.

Spécification de couleur

Les couleurs sont introduites à l'aide de l' élément en spécifiant les canaux <color>rouge, vert, bleu et alpha ( transparence ) dans l' espace colorimétrique sRGB sous forme de nombres compris entre 0 et 1. L' élément peut être inséré aux niveaux du matériau, de l'objet, du volume, du sommet ou du triangle, et prend la priorité dans l'ordre inverse (la couleur du triangle est la priorité la plus élevée). Le canal de transparence spécifie dans quelle mesure la couleur du niveau inférieur est mélangée. Par défaut, toutes les valeurs sont définies sur zéro. <color>

Une couleur peut également être spécifiée en se référant à une formule qui peut utiliser une variété de fonctions dépendantes des coordonnées.

Cartes de textures

Les cartes de texture permettent d'attribuer une couleur ou un matériau à une surface ou à un volume, en s'inspirant de l'idée de mappage de texture dans les graphiques. L' <texture>élément est d'abord utilisé pour associer un élément texture-idà des données de texture particulières. Les données peuvent être représentées sous forme de tableau 2D ou 3D, selon que la couleur ou le matériau doit être mappé à une surface ou à un volume. Les données sont représentées sous forme d'une chaîne d'octets en codage Base64 , un octet par pixel spécifiant le niveau de gris dans la plage 0-255.

Une fois l'ID de texture attribué, les données de texture peuvent être référencées dans une formule de couleur, comme dans l'exemple ci-dessous.

En général, les coordonnées ne sont pas utilisées directement comme indiqué ci-dessus, mais transformées au préalable pour les faire passer des coordonnées d'objet aux coordonnées de texture. Par exemple, tex(1,f1(x,y,z),f2(x,y,z),f3(x,y,z))f1(), f2(), f3()se trouvent certaines fonctions, généralement linéaires.

Spécifications matérielles

Les matériaux sont introduits à l'aide de l'élément <material>. À chaque matériau est attribué un identifiant unique. Les volumes géométriques sont associés aux matériaux en spécifiant un identifiant de matériau dans l'élément <volume>.

Matériaux mixtes, gradués, en treillis et aléatoires

Les nouveaux matériaux peuvent être définis comme des compositions d'autres matériaux. L'élément <composite>est utilisé pour spécifier les proportions de la composition, sous forme de constante ou de formule dépendant des coordonnées x, y et z. Une proportion de mélange constante conduira à un matériau homogène. Une composition dépendante des coordonnées peut conduire à un matériau gradué. Des proportions plus complexes dépendantes des coordonnées peuvent conduire à des gradients de matériaux non linéaires ainsi qu'à une sous-structure périodique et non périodique. La formule de proportion peut également faire référence à une carte de texture à l'aide de la tex(textureid,x,y,z)fonction. La référence à l'ID de matériau « 0 » (void) est réservée et peut être utilisée pour spécifier des structures poreuses. La référence à la rand(x,y,z)fonction peut être utilisée pour spécifier des matériaux pseudo-aléatoires. La rand(x,y,z)fonction renvoie un nombre aléatoire compris entre 0 et 1 qui est persistant pour cette coordonnée.

Imprimer les constellations

Plusieurs objets peuvent être organisés ensemble à l'aide de l' <constellation>élément. Une constellation peut spécifier la position et l'orientation des objets pour augmenter l'efficacité de l'emballage et pour décrire de grands tableaux d'objets identiques. L' <instance>élément spécifie le déplacement et la rotation qu'un objet existant doit subir pour arriver à sa position dans la constellation. Le déplacement et la rotation sont toujours définis par rapport à la position et à l'orientation d'origine dans lesquelles l'objet a été défini. Une constellation peut faire référence à une autre constellation à condition d'éviter les références cycliques.

Si plusieurs constellations de niveau supérieur sont spécifiées, ou si plusieurs objets sans constellations sont spécifiés, chacun d'eux sera importé sans données de position relative. Le programme d'importation peut alors déterminer librement le positionnement relatif.

Méta-données

L' <metadata>élément peut éventuellement être utilisé pour spécifier des informations supplémentaires sur les objets, les géométries et les matériaux définis. Par exemple, ces informations peuvent spécifier un nom, une description textuelle, la paternité, des informations de copyright et des instructions spéciales. L' <metadata>élément peut être inclus au niveau supérieur pour spécifier les attributs de l'ensemble du fichier, ou dans les objets, les volumes et les matériaux pour spécifier les attributs locaux de cette entité.

Triangles courbés optionnels

Un triangle courbe. Les normales aux sommets sont utilisées pour subdiviser de manière récursive le triangle en quatre sous-triangles

Afin d'améliorer la fidélité géométrique, le format permet de courber les zones triangulaires. Par défaut, tous les triangles sont supposés être plats et tous les bords des triangles sont supposés être des lignes droites reliant leurs deux sommets. Cependant, des triangles courbes et des bords courbes peuvent éventuellement être spécifiés afin de réduire le nombre d'éléments de maillage requis pour décrire une surface courbe. Il a été démontré que les informations de courbure réduisent l'erreur d'une surface sphérique d'un facteur 1000 par rapport à une surface décrite par le même nombre de triangles plans. La courbure ne doit pas créer d'écart par rapport au plan du triangle plat qui dépasse 50 % de la plus grande dimension du triangle.

Pour spécifier la courbure, un sommet peut éventuellement contenir un élément enfant <normal>pour spécifier la normale de surface souhaitée à l'emplacement du sommet. La normale doit être de longueur unitaire et pointer vers l'extérieur. Si cette normale est spécifiée, tous les bords du triangle se rencontrant à ce sommet sont courbés de manière à être perpendiculaires à cette normale et dans le plan défini par la normale et le bord droit d'origine. Lorsque la courbure d'une surface à un sommet n'est pas définie (par exemple au niveau d'une pointe, d'un coin ou d'un bord), un <edge>élément peut être utilisé pour spécifier la courbure d'un seul bord non linéaire joignant deux sommets. La courbure est spécifiée à l'aide des vecteurs de direction tangents au début et à la fin de ce bord. L' <edge>élément aura la priorité en cas de conflit avec la courbure impliquée par un <normal>élément.

Lorsque la courbure est spécifiée, le triangle est décomposé de manière récursive en quatre sous-triangles. La récursivité doit être exécutée sur cinq niveaux de profondeur, de sorte que le triangle incurvé d'origine soit finalement remplacé par 1024 triangles plats. Ces 1024 triangles sont générés « à la volée » et stockés temporairement uniquement pendant que les couches qui croisent ce triangle sont traitées pour la fabrication.

Formules

Dans les éléments <color>et <composite>, des formules dépendantes des coordonnées peuvent être utilisées à la place des constantes. Ces formules peuvent utiliser divers opérateurs et expressions algébriques et mathématiques standard.

Compression

Un fichier AMF peut être stocké soit sous forme de texte brut, soit sous forme de texte compressé. S'il est compressé, la compression est effectuée au format d'archive ZIP . Un fichier AMF compressé fait généralement environ la moitié de la taille d'un fichier STL binaire compressé équivalent. La compression peut être effectuée manuellement à l'aide d'un logiciel de compression , ou automatiquement par le logiciel d'exportation pendant l'écriture. Les fichiers compressés et non compressés ont tous deux l' .amfextension et il incombe au programme d'analyse de déterminer si le fichier est compressé ou non, et si tel est le cas, d'effectuer la décompression pendant l'importation.

Considérations de conception

Lorsque le sous-comité de conception de l'ASTM a commencé à élaborer les spécifications de l'AMF , une enquête auprès des parties prenantes a révélé que la priorité clé de la nouvelle norme était l'exigence d'un format non propriétaire . Les unités et les problèmes de constructibilité étaient une préoccupation persistante en raison des problèmes liés au format STL. D'autres exigences clés étaient la capacité de spécifier la géométrie avec une grande fidélité et des tailles de fichier réduites, plusieurs matériaux, couleurs et microstructures. Afin de réussir dans le domaine de la fabrication additive, ce format de fichier a été conçu pour répondre aux préoccupations suivantes

  1. Indépendance technologique : Le format de fichier doit décrire un objet de manière générale afin que n'importe quelle machine puisse le construire au mieux de ses capacités. Il est indépendant de la résolution et de l'épaisseur de couche et ne contient pas d'informations spécifiques à un procédé ou à une technique de fabrication. Cela n'empêche pas l'inclusion de propriétés que seules certaines machines avancées prennent en charge (par exemple, la couleur, les matériaux multiples, etc.), mais celles-ci sont définies de manière à éviter toute exclusivité.
  2. Simplicité : Le format du fichier doit être facile à mettre en œuvre et à comprendre. Le format doit être lisible et modifiable dans un simple visualiseur de texte, afin d'encourager la compréhension et l'adoption. Aucune information identique ne doit être stockée à plusieurs endroits.
  3. Évolutivité : le format de fichier doit pouvoir évoluer avec l'augmentation de la complexité et de la taille des pièces, ainsi qu'avec l'amélioration de la résolution et de la précision des équipements de fabrication. Cela implique de pouvoir gérer de grandes séries d'objets identiques, des caractéristiques internes complexes et répétées (par exemple des maillages), des surfaces courbes lisses avec une résolution d'impression fine et plusieurs composants disposés dans un emballage optimal pour l'impression.
  4. Performances : Le format de fichier doit permettre une durée raisonnable (temps interactif) pour les opérations de lecture et d'écriture et des tailles de fichier raisonnables pour un objet volumineux typique.
  5. Rétrocompatibilité : tout fichier STL existant doit pouvoir être converti directement en fichier AMF valide sans perte d'informations et sans nécessiter d'informations supplémentaires. Les fichiers AMF sont également facilement reconvertis en STL pour une utilisation sur des systèmes hérités, bien que les fonctionnalités avancées soient perdues.
  6. Compatibilité future : Pour rester utile dans un secteur en évolution rapide, ce format de fichier doit être facilement extensible tout en restant compatible avec les versions et technologies antérieures. Cela permet d'ajouter de nouvelles fonctionnalités au fur et à mesure des avancées technologiques, tout en fonctionnant parfaitement pour des géométries homogènes simples sur le matériel le plus ancien.

Histoire

Depuis le milieu des années 1980, le format de fichier STL est devenu la norme industrielle de facto pour le transfert d'informations entre les programmes de conception et les équipements de fabrication additive. Le format STL ne contenait que des informations sur un maillage de surface et ne comportait aucune disposition pour représenter la couleur, la texture, le matériau, la sous-structure et d'autres propriétés de l'objet cible fabriqué. À mesure que la technologie de fabrication additive évoluait, passant de la production de formes homogènes à un seul matériau à la production de géométries multi-matériaux en couleur avec des matériaux et des microstructures fonctionnellement gradués, il y avait un besoin croissant d'un format de fichier d'échange standard capable de prendre en charge ces caractéristiques. Un deuxième facteur qui a marqué le développement de la norme était l'amélioration de la résolution des technologies de fabrication additive. À mesure que la fidélité des processus d'impression approchait la résolution à l'échelle du micron, le nombre de triangles requis pour décrire des surfaces courbes lisses entraînait des tailles de fichier inacceptables.

Au cours des années 1990 et 2000, un certain nombre de formats de fichiers propriétaires ont été utilisés par diverses entreprises pour prendre en charge des fonctionnalités spécifiques de leurs équipements de fabrication, mais l'absence d'un accord à l'échelle de l'industrie a empêché l'adoption généralisée d'un format unique. En 2006, Jonathan D. Hiller et Hod Lipson ont présenté une première version de l'AMF baptisée « STL 2.0 ». En janvier 2009, un nouveau comité ASTM F42 sur les technologies de fabrication additive a été créé et un sous-comité de conception a été formé pour élaborer une nouvelle norme. Une enquête a été menée fin 2009 ce qui a donné lieu à plus d'un an de délibérations sur la nouvelle norme. La première révision de la norme AMF qui en a résulté est devenue officielle le 2 mai 2011.

Lors des réunions de juillet 2013 de l'ASTM F42 et de l'ISO TC261 à Nottingham (Royaume-Uni), le Plan conjoint de développement des normes de fabrication additive a été approuvé. Depuis lors, la norme AMF est gérée conjointement par l'ISO et l'ASTM.

Exemple de fichier

Objet produit par l'exemple de code AMF

Vous trouverez ci-dessous un fichier AMF simple décrivant une pyramide constituée de deux matériaux, adapté du tutoriel AMF (548 octets compressés). Pour créer ce fichier AMF, copiez et collez le texte ci-dessous dans un éditeur de texte ou un éditeur xml, puis enregistrez le fichier sous le nom "pyramid.amf". Compressez ensuite le fichier avec ZIP et renommez l' extension de fichier de ".zip" à ".zip.amf".

<?xml version="1.0" encoding="utf-8"?> 
<amf unit= "inch" version= "1.1" > <metadata type= "name" > Pyramide divisée </metadata> <metadata type= "author" > John Smith </metadata> <object id= "1" > <mesh> <sommets> <sommet> <coordonnées> <x> 0 </x><y> 0 </y><z> 0 </z></coordonnées></sommet> <sommet><coordonnées><x> 1 </x> <y> 0 </y> <z> 0 </z> < / coordonnées > </sommet> <sommet><coordonnées> <x> 0 </x> <y> 1 </y><z> 0 </z> </coordonnées></sommet> <sommet><coordonnées><x> 1 </x><y> 1 </y> <z> 0 </z></coordonnées></sommet> <sommet><coordonnées><x> 0,5 </x><y> 0.5 </y><z> 1 </z></coordinates></vertex> </vertices> <volume materialid= "2" > <metadata type= "name" > Côté dur </metadata> <triangle><v1> 2 </v1><v2> 1 </v2> <v3> 0 </v3></triangle> <triangle><v1> 0 </v1><v2> 1 </v2><v3> 4 </v3></triangle> <triangle><v1> 4 </v1> <v2> 1 </v2><v3> 2 </v3> </triangle> <triangle> <v1> 0 </v1><v2> 4 </v2> <v3> 2 </v3></triangle> </volume> <volume materialid= "3" > <metadata type= "name" > Côté souple </metadata> <triangle> <v1> 2 </v1> <v2> 3 </v2><v3> 1 </v3> </triangle> <triangle> <v1> 1 </v1><v2> 3 </v2><v3> 4 </v3></triangle> <triangle><v1> 4 </v1><v2> 3 </v2><v3> 2 </v3></triangle> <triangle><v1> 4 </v1><v2> 2 </v2><v3> 1 </v3></triangle> </volume> </mesh> </object>i=144></objet>i=144></objet>
<material id= "2" > <metadata type= " name " > Matériau dur </metadata> <color><r> 0,1 </r><g> 0,1 </g><b> 0,1 </b></color> </material> <material id= "3" > <metadata type= "name" > Matériau souple </metadata> <color><r> 0 </r><g> 0,9 </g><b> 0,9 </b><a> 0,5 </a></color> </material> </amf>

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index