stringtranslate.com

Formato de archivo de fabricación aditiva

El formato de archivo de fabricación aditiva ( AMF ) es un estándar abierto para describir objetos para procesos de fabricación aditiva como la impresión 3D . El estándar oficial ISO / ASTM 52915:2016 [1] [2] es un formato basado en XML diseñado para permitir que cualquier software de diseño asistido por computadora describa la forma y la composición de cualquier objeto 3D que se fabricará en cualquier impresora 3D a través de un software de fabricación asistida por computadora . A diferencia de su predecesor, el formato STL , AMF tiene soporte nativo para color, materiales, celosías y constelaciones.

Estructura

Un archivo AMF puede representar un objeto o varios objetos dispuestos en una constelación. Cada objeto se describe como un conjunto de volúmenes que no se superponen. Cada volumen se describe mediante una malla triangular que hace referencia a un conjunto de puntos (vértices). Estos vértices se pueden compartir entre volúmenes que pertenecen al mismo objeto. Un archivo AMF también puede especificar el material y el color de cada volumen, así como el color de cada triángulo en la malla. El archivo AMF se comprime utilizando el formato de compresión zip, pero se conserva la extensión de archivo ".amf". Una implementación mínima de lector AMF debe poder descomprimir un archivo AMF e importar al menos información de geometría (ignorando la curvatura).

Estructura básica de archivos

El archivo AMF comienza con la línea de declaración XML que especifica la versión y codificación XML. El resto del archivo se encierra entre un <amf>elemento de apertura y un </amf>elemento de cierre. También se puede especificar el sistema de unidades (milímetro, pulgada, pie, metro o micrómetro). En ausencia de una especificación de unidades, se asumen milímetros.

Dentro de los corchetes AMF, hay cinco elementos de nivel superior. Solo se requiere un único elemento de objeto para que un archivo AMF funcione completamente.

  1. <object>El elemento de objeto define uno o varios volúmenes de material, cada uno de los cuales está asociado con un ID de material para impresión. Debe haber al menos un elemento de objeto en el archivo. Los objetos adicionales son opcionales.
  2. <material>El elemento de material opcional define uno o más materiales para imprimir con un ID de material asociado. Si no se incluye ningún elemento de material, se asume un único material predeterminado.
  3. <texture>El elemento de textura opcional define una o más imágenes o texturas para la asignación de color o textura, cada una con un ID de textura asociado.
  4. <constellation>El elemento de constelación opcional combina jerárquicamente objetos y otras constelaciones en un patrón relativo para la impresión.
  5. <metadata>El elemento de metadatos opcional especifica información adicional sobre los objetos y elementos contenidos en el archivo.

Especificación de geometría

El formato utiliza un diseño de malla poligonal de vértice-cara<object> . Cada elemento de nivel superior especifica un único id. El <object>elemento también puede especificar opcionalmente un material. Toda la geometría de la malla está contenida en un solo <mesh>elemento. La malla se define utilizando un <vertices>elemento y uno o más <volume>elementos. El <vertices>elemento requerido enumera todos los vértices que se utilizan en este objeto. A cada vértice se le asigna implícitamente un número en el orden en el que se declaró, comenzando en cero. El elemento secundario requerido <coordinates>proporciona la posición del punto en el espacio 3D utilizando los elementos <x>, <y>y <z>. Después de la información del vértice, se debe incluir al menos un <volume>elemento. Cada volumen encapsula un volumen cerrado del objeto. Se pueden especificar varios volúmenes en un solo objeto. Los volúmenes pueden compartir vértices en las interfaces, pero no pueden tener ningún volumen superpuesto. Dentro de cada volumen, el elemento secundario <triangle>se utiliza para definir triángulos que teselan la superficie del volumen. Cada <triangle>elemento enumerará tres vértices del conjunto de índices de los vértices definidos previamente proporcionados en el <vertices>elemento. Los índices de los tres vértices de los triángulos se especifican utilizando los elementos <v1>, <v2>y <v3>. El orden de los vértices debe ser según la regla de la mano derecha, de modo que los vértices se enumeren en orden antihorario vistos desde el exterior. A cada triángulo se le asigna implícitamente un número en el orden en el que fue declarado, comenzando en cero.

Especificación de color

Los colores se introducen utilizando el <color>elemento especificando los canales rojo, verde, azul y alfa ( transparencia ) en el espacio de color sRGB como números en el rango de 0 a 1. El elemento se puede insertar en los niveles de material, objeto, volumen, vértice o triángulo, y tiene prioridad en orden inverso (el color del triángulo tiene la máxima prioridad). El canal de transparencia especifica en qué grado se mezcla el color del nivel inferior. De forma predeterminada, todos los valores se establecen en cero.<color>

También se puede especificar un color haciendo referencia a una fórmula que puede utilizar una variedad de funciones dependientes de las coordenadas.

Mapas de textura

Los mapas de textura permiten asignar color o material a una superficie o un volumen, tomando prestada la idea del mapeo de texturas en gráficos. El <texture>elemento se utiliza primero para asociar un elemento texture-idcon datos de textura particulares. Los datos se pueden representar como una matriz 2D o 3D, dependiendo de si el color o el material deben asignarse a una superficie o a un volumen. Los datos se representan como una cadena de bytes en codificación Base64 , un byte por píxel que especifica el nivel de escala de grises en el rango de 0 a 255.

Una vez que se asigna el ID de textura, se pueden hacer referencias a los datos de textura en una fórmula de color, como en el siguiente ejemplo.

Sin embargo, normalmente las coordenadas no se utilizarán directamente como se muestra arriba, sino que se transformarán primero para convertirlas de coordenadas de objeto a coordenadas de textura. Por ejemplo, tex(1,f1(x,y,z),f2(x,y,z),f3(x,y,z))donde f1(), f2(), f3()hay algunas funciones, normalmente lineales.

Especificación del material

Los materiales se introducen mediante el elemento <material>. A cada material se le asigna un identificador único. Los volúmenes geométricos se asocian con los materiales especificando un identificador de material dentro del elemento <volume>.

Materiales mixtos, graduados, enrejados y aleatorios.

Los nuevos materiales se pueden definir como composiciones de otros materiales. El elemento <composite>se utiliza para especificar las proporciones de la composición, como una constante o como una fórmula que depende de las coordenadas x, y, z. Una proporción de mezcla constante dará lugar a un material homogéneo. Una composición que depende de las coordenadas puede dar lugar a un material graduado. Las proporciones más complejas que dependen de las coordenadas pueden dar lugar a gradientes de material no lineales, así como a una subestructura periódica y no periódica. La fórmula de proporción también puede hacer referencia a un mapa de textura mediante la tex(textureid,x,y,z)función. La referencia al identificador de material "0" (vacío) está reservada y se puede utilizar para especificar estructuras porosas. La referencia a la rand(x,y,z)función se puede utilizar para especificar materiales pseudoaleatorios. La rand(x,y,z)función devuelve un número aleatorio entre 0 y 1 que es persistente para esa coordenada.

Imprimir constelaciones

Se pueden organizar varios objetos juntos utilizando el <constellation>elemento. Una constelación puede especificar la posición y la orientación de los objetos para aumentar la eficiencia de empaquetamiento y describir grandes conjuntos de objetos idénticos. El <instance>elemento especifica el desplazamiento y la rotación que debe experimentar un objeto existente para llegar a su posición en la constelación. El desplazamiento y la rotación siempre se definen en relación con la posición y la orientación originales en las que se definió el objeto. Una constelación puede hacer referencia a otra constelación siempre que se eviten las referencias cíclicas.

Si se especifican varias constelaciones de nivel superior o varios objetos sin constelaciones, cada uno de ellos se importará sin datos de posición relativa. El programa de importación puede entonces determinar libremente la posición relativa.

Metadatos

El <metadata>elemento se puede utilizar opcionalmente para especificar información adicional sobre los objetos, las geometrías y los materiales que se están definiendo. Por ejemplo, esta información puede especificar un nombre, una descripción textual, la autoría, información de derechos de autor e instrucciones especiales. El <metadata>elemento se puede incluir en el nivel superior para especificar los atributos de todo el archivo, o dentro de los objetos, volúmenes y materiales para especificar los atributos locales de esa entidad.

Triángulos curvos opcionales

Un triángulo curvo. Las normales en los vértices se utilizan para subdividir recursivamente el triángulo en cuatro subtriángulos.

Para mejorar la fidelidad geométrica, el formato permite curvar los parches de triángulos. De manera predeterminada, se supone que todos los triángulos son planos y que todos los bordes de los triángulos son líneas rectas que conectan sus dos vértices. Sin embargo, se pueden especificar opcionalmente triángulos y bordes curvos para reducir la cantidad de elementos de malla necesarios para describir una superficie curva. Se ha demostrado que la información de curvatura reduce el error de una superficie esférica en un factor de 1000 en comparación con una superficie descrita por la misma cantidad de triángulos planos. [1] La curvatura no debe crear una desviación del plano del triángulo plano que exceda el 50 % de la dimensión más grande del triángulo.

Para especificar la curvatura, un vértice puede contener opcionalmente un elemento secundario <normal>para especificar la normal de la superficie deseada en la ubicación del vértice. La normal debe tener una longitud unitaria y apuntar hacia afuera. Si se especifica esta normal, todas las aristas del triángulo que se encuentran en ese vértice se curvan de modo que sean perpendiculares a esa normal y en el plano definido por la normal y la arista recta original. Cuando la curvatura de una superficie en un vértice no está definida (por ejemplo, en una cúspide, una esquina o una arista), <edge>se puede utilizar un elemento para especificar la curvatura de una única arista no lineal que une dos vértices. La curvatura se especifica utilizando los vectores de dirección tangente al principio y al final de esa arista. El <edge>elemento tendrá prioridad en caso de un conflicto con la curvatura implícita por un <normal>elemento.

Cuando se especifica la curvatura, el triángulo se descompone recursivamente en cuatro subtriángulos. La recursión debe ejecutarse en cinco niveles de profundidad, de modo que el triángulo curvo original sea finalmente reemplazado por 1024 triángulos planos. Estos 1024 triángulos se generan "sobre la marcha" y se almacenan temporalmente solo mientras se procesan las capas que intersecan ese triángulo para su fabricación.

Fórmulas

En los elementos <color>y <composite>se pueden utilizar fórmulas dependientes de coordenadas en lugar de constantes. Estas fórmulas pueden utilizar diversos operadores y expresiones algebraicas y matemáticas estándar.

Compresión

Un AMF se puede almacenar como texto simple o como texto comprimido. Si está comprimido, la compresión se realiza en formato de archivo ZIP . Un archivo AMF comprimido suele tener aproximadamente la mitad del tamaño de un archivo STL binario comprimido equivalente. [3] : 275  La compresión se puede realizar manualmente mediante un software de compresión o automáticamente mediante el software de exportación durante la escritura. Tanto los archivos comprimidos como los no comprimidos tienen la .amfextensión y es responsabilidad del programa de análisis determinar si el archivo está comprimido o no y, en caso afirmativo, realizar la descompresión durante la importación.

Consideraciones de diseño

Cuando el subcomité de diseño de ASTM comenzó a desarrollar las especificaciones AMF [ ¿cuándo? ] , una encuesta a las partes interesadas [4] reveló que la prioridad clave para la nueva norma era el requisito de un formato no propietario . Las cuestiones de unidades y capacidad de construcción eran una preocupación persistente debido a los problemas con el formato STL. Otros requisitos clave eran la capacidad de especificar la geometría con alta fidelidad y tamaños de archivo pequeños, múltiples materiales, color y microestructuras. Para tener éxito en el campo de la fabricación aditiva, este formato de archivo se diseñó para abordar las siguientes preocupaciones

  1. Independencia tecnológica : el formato de archivo debe describir un objeto de manera general, de modo que cualquier máquina pueda construirlo de la mejor manera posible. Es independiente de la resolución y del espesor de las capas, y no contiene información específica de ningún proceso o técnica de fabricación. Esto no niega la inclusión de propiedades que solo admiten ciertas máquinas avanzadas (por ejemplo, color, materiales múltiples, etc.), pero estas se definen de tal manera que se evite la exclusividad.
  2. Simplicidad : el formato del archivo debe ser fácil de implementar y comprender. El formato debe ser legible y editable en un visor de texto simple, con el fin de fomentar la comprensión y la adopción. No se debe almacenar información idéntica en varios lugares.
  3. Escalabilidad : el formato de archivo debe escalar bien con el aumento de la complejidad y el tamaño de las piezas, y con la mejora de la resolución y la precisión de los equipos de fabricación. Esto incluye la capacidad de manejar grandes conjuntos de objetos idénticos, características internas repetidas complejas (por ejemplo, mallas), superficies curvas suaves con una resolución de impresión fina y múltiples componentes dispuestos en un empaque óptimo para la impresión.
  4. Rendimiento : el formato de archivo debe permitir una duración razonable (tiempo interactivo) para operaciones de lectura y escritura y tamaños de archivo razonables para un objeto grande típico.
  5. Compatibilidad con versiones anteriores : cualquier archivo STL existente se puede convertir directamente en un archivo AMF válido sin pérdida de información y sin necesidad de información adicional. Los archivos AMF también se pueden convertir fácilmente a STL para su uso en sistemas antiguos, aunque se perderán las funciones avanzadas.
  6. Compatibilidad futura : para seguir siendo útil en una industria que cambia rápidamente, este formato de archivo debe ser fácilmente extensible y, al mismo tiempo, compatible con versiones y tecnologías anteriores. Esto permite agregar nuevas funciones a medida que los avances tecnológicos lo justifiquen, y al mismo tiempo seguir funcionando sin problemas para geometrías homogéneas simples en el hardware más antiguo.

Historia

Desde mediados de los años 1980, el formato de archivo STL ha sido el estándar de facto de la industria para transferir información entre programas de diseño y equipos de fabricación aditiva. El formato STL solo contenía información sobre una malla de superficie y no tenía disposiciones para representar color, textura, material, subestructura y otras propiedades del objeto de destino fabricado. A medida que la tecnología de fabricación aditiva evolucionó de producir principalmente formas homogéneas de un solo material a producir geometrías de múltiples materiales a todo color con materiales y microestructuras funcionalmente graduados, hubo una creciente necesidad de un formato de archivo de intercambio estándar que pudiera admitir estas características. Un segundo factor que marcó el comienzo del desarrollo del estándar fue la mejora de la resolución de las tecnologías de fabricación aditiva. A medida que la fidelidad de los procesos de impresión se acercaba a la resolución a escala micrométrica, la cantidad de triángulos necesarios para describir superficies curvas suaves dio como resultado tamaños de archivo inaceptablemente grandes. [4]

Durante los años 1990 y 2000, varias empresas han utilizado varios formatos de archivo propietarios para respaldar características específicas de sus equipos de fabricación, pero la falta de un acuerdo a nivel de toda la industria impidió la adopción generalizada de un formato único. En 2006, Jonathan D. Hiller y Hod Lipson presentaron una versión inicial de AMF denominada "STL 2.0". [3] En enero de 2009, se estableció un nuevo Comité F42 de ASTM sobre tecnologías de fabricación aditiva y se formó un subcomité de diseño para desarrollar una nueva norma. Se realizó una encuesta a fines de 2009 [4] que dio lugar a más de un año de deliberaciones sobre la nueva norma. La primera revisión resultante de la norma AMF se hizo oficial el 2 de mayo de 2011. [5]

Durante las reuniones de julio de 2013 del F42 de ASTM y el TC261 de ISO en Nottingham (Reino Unido), se aprobó el Plan Conjunto para el Desarrollo de Normas de Fabricación Aditiva. Desde entonces, la norma AMF es gestionada conjuntamente por ISO y ASTM.

Archivo de muestra

Objeto producido por el código AMF de muestra

A continuación se muestra un archivo AMF simple que describe una pirámide hecha de dos materiales, adaptado del tutorial AMF [6] (548 bytes comprimidos). Para crear este archivo AMF, copie y pegue el texto que aparece a continuación en un editor de texto o en un editor XML, y guarde el archivo como "pyramid.amf". Luego comprima el archivo con ZIP y cambie la extensión del archivo de ".zip" a ".zip.amf".

<?xml version="1.0" encoding="utf-8"?> <amf unit= "inch" version= "1.1" > <metadata type= "name" > Dividir pirámide </metadata> <metadata type= "author" > John Smith </metadata> <object id= "1" > <mesh> <vertices> <vertex><coordinates><x> 0 </x> <y> 0 </y><z> 0 </z> </coordinates></vertex> <vertex> <coordinates><x> 1 </x><y> 0 </y><z> 0 </z></coordinates></vertex> <vertex><coordinates><x> 0 </x><y> 1 </y><z> 0 </z></coordinates></vertex> <vertex><coordinates><x> 1 </x><y> 1 </y> <z> 0 </z> </coordinates> </vertex> <vertex> <coordinates><x> 1 </x><y> 1 </y><z> 0 </z></coordinates></vertex> <vértice><coordenadas><x> 0,5 </x><y> 0.5 </y><z> 1 </z></coordinates></vertex> </vertices> <volume materialid= "2" > <metadata type= "name" > Lado duro </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" > Lado blando </metadata> <triangle><v1> 2 </v1> <v2> 3 </v2><v3> 1 </v3> </triángulo> <triángulo> <v1> 1 </v1> <v2> 3 </v2><v3> 4 </v3></triángulo> < triángulo><v1> 4 </v1><v2> 3 </v2><v3> 2 </v3></triángulo> <triángulo><v1> 4 </v1> <v2> 2 </v2> <v3> 1 </v3> </triángulo> </volumen> </malla> </objeto>yo=144></objeto>yo=144></objeto>                                            <material id= "2" > <metadata type= " name " > Material duro </metadata> <color><r> 0,1 </r><g> 0,1 </g><b> 0,1 </b></color> </material> <material id= "3" > <metadata type= "name" > Material blando </metadata> <color><r> 0 </r><g> 0,9 </g><b> 0,9 </b><a> 0,5 </a></color> </material> </amf>             

Véase también

Notas

  1. ^ abc Especificación para el formato de intercambio de datos para fabricación aditiva
  2. ^ Especificación de AMF en la página web de ISO
  3. ^ ab Hiller, Jonathan D.; Lipson, Hod (2009). STL 2.0: Una propuesta para un formato de archivo universal de fabricación aditiva multimaterial (PDF) . Simposio de fabricación de formas libres sólidas (SFF'09). Austin, TX, EE. UU.: Universidad de Cornell. Archivado desde el original (PDF) el 2020-06-11 . Consultado el 5 de mayo de 2017 .
  4. ^ abc STL 2.0 podría reemplazar al antiguo y limitado formato de archivo Rapid Today, octubre de 2009
  5. ^ La nueva especificación de fabricación aditiva de ASTM responde a la necesidad de un formato de archivo de intercambio estándar ASTM, 20 de julio de 2011
  6. ^ Tutorial de AMF: conceptos básicos (parte 1)

Enlaces externos