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 composición de cualquier objeto 3D que se fabrique en cualquier impresora 3D a través de una computadora. -Software de fabricación asistida . A diferencia de su formato predecesor STL , AMF tiene soporte nativo para colores, materiales, celosías y constelaciones.

Estructura

Un AMF puede representar uno o varios objetos dispuestos en una constelación. Cada objeto se describe como un conjunto de volúmenes que no se superponen. Cada volumen está descrito por 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 de 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 del lector AMF debe poder descomprimir un archivo AMF e importar al menos información geométrica (ignorando la curvatura).

Estructura de archivos básica

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 está encerrado entre un <amf>elemento de apertura y un </amf>elemento de cierre. También se puede especificar el sistema de unidades (milímetro, pulgada, pies, metro o micrómetro). En ausencia de una especificación de unidades, se asumen milímetros.

Dentro de los corchetes de la AMF, hay cinco elementos de nivel superior. Solo se requiere un elemento de objeto para un archivo AMF completamente funcional.

  1. <object>El elemento objeto define un volumen o volúmenes de material, cada uno de los cuales está asociado con un ID de material para imprimir. Al menos un elemento de objeto debe estar presente en el archivo. Los objetos adicionales son opcionales.
  2. <material>El elemento material opcional define uno o más materiales para imprimir con un ID de material asociado. Si no se incluye ningún elemento material, se supone un único material predeterminado.
  3. <texture>El elemento de textura opcional define una o más imágenes o texturas para mapeo de color o textura, cada una con una ID de textura asociada.
  4. <constellation>El elemento de constelación opcional combina jerárquicamente objetos y otras constelaciones en un patrón relativo para imprimir.
  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 cara-vértice . Cada elemento de nivel superior <object>especifica un único id. Opcionalmente, el <object>elemento también puede especificar un material. Toda la geometría de la malla está contenida en un único <mesh>elemento. La malla se define utilizando un <vertices>elemento y uno o más <volume>elementos. El elemento requerido <vertices>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 que fue declarado, comenzando en cero. El elemento secundario requerido <coordinates>proporciona la posición del punto en el espacio 3D utilizando los <x>elementos <y>y <z>. Después de la información del vértice, <volume>se debe incluir al menos un 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 previamente definidos dados en el <vertices>elemento. Los índices de los tres vértices de los triángulos se especifican mediante los elementos <v1>, <v2>y <v3>. El orden de los vértices debe seguir la regla de la mano derecha, de modo que los vértices se enumeren en el sentido contrario a las agujas del reloj, vistos desde el exterior. A cada triángulo se le asigna implícitamente un número en el orden en 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 el material, objeto, volumen, vértice, o niveles de triángulo, y tiene prioridad en orden inverso (el color del triángulo es la prioridad más alta). El canal de transparencia especifica hasta qué punto se mezcla el color del nivel inferior. De forma predeterminada, todos los valores están establecidos 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 volumen, tomando prestado la idea de mapeo de textura en los gráficos. El <texture>elemento se utiliza primero para asociar a 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 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 0-255.

Una vez asignado el ID de textura, se puede hacer referencia a los datos de la textura en una fórmula de color, como en el siguiente ejemplo.

Sin embargo, normalmente las coordenadas no se usarán directamente como se muestra arriba, sino que primero se transformarán para llevarlas de coordenadas de objeto a coordenadas de textura. Por ejemplo, tex(1,f1(x,y,z),f2(x,y,z),f3(x,y,z))¿dónde f1(), f2(), f3()están algunas funciones, normalmente lineales?

Especificación de material

Los materiales se introducen utilizando el elemento <material>. A cada material se le asigna una identificación única. Los volúmenes geométricos se asocian con materiales especificando un material-id dentro del elemento <volume>.

Materiales mixtos, graduados, reticulares y aleatorios.

Los nuevos materiales pueden definirse 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 dependiente de las coordenadas x, y, z. Una proporción de mezcla constante dará como resultado un material homogéneo. Una composición dependiente de las coordenadas puede conducir a un material graduado. Proporciones más complejas que dependen de coordenadas pueden conducir a gradientes de material no lineales, así como a subestructuras periódicas y no periódicas. La fórmula de proporción también puede referirse a un mapa de textura usando la tex(textureid,x,y,z)función. La referencia al ID de material "0" (vacío) está reservada y puede usarse 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 orientación de objetos para aumentar la eficiencia del empaquetado y describir grandes conjuntos de objetos idénticos. El <instance>elemento especifica el desplazamiento y la rotación que debe sufrir 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 orientación originales en las que se definió el objeto. Una constelación puede hacer referencia a otra constelación siempre que se eviten referencias cíclicas.

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

Metadatos

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

Triángulos curvos opcionales

Un parche triangular 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 forma 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, opcionalmente se pueden especificar triángulos curvos y bordes curvos para reducir el número 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 el mismo número 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 superficie normal deseada en la ubicación del vértice. Lo normal debe ser de 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, esquina o borde), <edge>se puede utilizar un elemento para especificar la curvatura de un único borde no lineal que une dos vértices. La curvatura se especifica utilizando los vectores de dirección tangente al principio y al final de ese borde. El <edge>elemento tendrá prioridad en caso de conflicto con la curvatura implicada por un <normal>elemento.

Cuando se especifica la curvatura, el triángulo se descompone recursivamente en cuatro subtriángulos. La recursión debe ejecutarse con 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 sólo mientras las capas que se cruzan con ese triángulo se procesan para su fabricación.

Fórmulas

Tanto en los elementos <color>como <composite>, se pueden utilizar fórmulas dependientes de coordenadas en lugar de constantes. Estas fórmulas pueden utilizar varios operadores y expresiones algebraicos y matemáticos estándar.

Compresión

Un AMF se puede almacenar como texto sin formato o como texto comprimido. Si está comprimido, la compresión es 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 utilizando el software de compresión o automáticamente mediante el software de exportación durante la escritura. Tanto los archivos comprimidos como los descomprimidos tienen la .amfextensión y es responsabilidad del programa de análisis determinar si el archivo está comprimido o no y, de ser así, 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 entre las partes interesadas [4] reveló que la prioridad clave para el nuevo estándar era el requisito de un formato no propietario . Las unidades y los problemas de construcción eran una preocupación persistente debido a los problemas con el formato STL. Otros requisitos clave fueron la capacidad de especificar geometría con alta fidelidad y tamaños de archivo pequeños, múltiples materiales, colores y microestructuras. Para tener éxito en el campo de la fabricación aditiva, este formato de archivo se diseñó para abordar las siguientes inquietudes

  1. Independencia tecnológica : el formato del archivo debe describir un objeto de forma general, de modo que cualquier máquina pueda construirlo lo mejor que pueda. Es independiente de la resolución y del espesor de la capa 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, múltiples materiales, etc.), pero están definidas de tal manera que se evita 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, para fomentar su comprensión y 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 precisión de los equipos de fabricación. Esto incluye ser capaz 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 embalaje óptimo para la impresión.
  4. Rendimiento : el formato del archivo debe permitir una duración razonable (tiempo interactivo) para las 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 debe poder convertirse directamente en un archivo AMF válido sin pérdida de información y sin requerir ninguna información adicional. Los archivos AMF también se pueden volver a convertir fácilmente a STL para usarlos en sistemas heredados, 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 seguir siendo compatible con versiones y tecnologías anteriores. Esto permite agregar nuevas funciones a medida que los avances tecnológicos lo justifiquen, sin dejar de funcionar perfectamente para geometrías simples y homogéneas en el hardware más antiguo.

Historia

Desde mediados de la década de 1980, el formato de archivo STL ha sido el estándar industrial de facto 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 el color, la textura, el material, la subestructura y otras propiedades del objeto objetivo fabricado. A medida que la tecnología de fabricación aditiva evolucionó desde la producción principalmente de formas homogéneas de un solo material hasta la producción de geometrías de múltiples materiales a todo color con materiales y microestructuras funcionalmente graduados, surgió 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 de la norma 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 de micras, la cantidad de triángulos necesarios para describir superficies curvas suaves daba como resultado archivos de tamaño inaceptablemente grandes. [4]

Durante las décadas de 1990 y 2000, varias empresas utilizaron varios formatos de archivo propietarios para respaldar funciones específicas de sus equipos de fabricación, pero la falta de un acuerdo en 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. A finales de 2009 [4] se llevó a cabo una encuesta 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 del TC261 de ISO en Nottingham (Reino Unido), se aprobó el Plan Conjunto para el Desarrollo de Estándares 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 de AMF [6] (548 bytes comprimidos). Para crear este archivo AMF, copie y pegue el texto debajo del texto en un editor de texto o un editor xml y guarde el archivo como "pyramid.amf". Luego comprima el archivo con ZIP y cambie el nombre de la extensión del archivo de ".zip" a ".zip.amf".

<?xml versión="1.0" codificación="utf-8"?> <amf unidad= "pulgadas" versión= "1.1" > <metadata tipo= "nombre" > Pirámide dividida </metadata> <metadata tipo= "autor " > John Smith </metadata> <object id= "1" > <mesh> <vertices> <vertex><coordinates><x> 0 </x><y> 0 </y><z> 0 </ z></coordenadas></vertex> <vértice><coordenadas><x> 1 </x><y> 0 </y><z> 0 </z></coordinadas></vertex> <vértice ><coordenadas><x> 0 </x><y> 1 </y><z> 0 </z></coordenadas></vertex> <vértice><coordenadas><x> 1 </x> <y> 1 </y><z> 0 </z></coordinadas></vertex> <vertex><coordinadas><x> 0,5 </x><y> 0.5 </y><z> 1 </z></coordenadas></vertex> </vertices> <volumen materialid= "2" > <metadata tipo= "nombre" > Lado duro </metadata> <triángulo> <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= "nombre" > Lado suave </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></objeto>i=144></objeto>                                            <material id= "2" > <metadata type= "nombre" > Material duro </metadata> <color><r> 0,1 </r><g> 0,1 </g><b> 0,1 </b>< /color> </material> <material id= "3" > <metadata type= "nombre" > Material blando </metadata> <color><r> 0 </r><g> 0,9 </g><b > 0,9 </b><a> 0,5 </a></color> </material> </amf>             

Ver también

Notas

  1. ^ Especificación abc para el formato de intercambio de datos para la fabricación aditiva
  2. ^ Especificación de AMF en la página web ISO
  3. ^ ab Hiller, Jonathan D.; Lipson, Hod (2009). STL 2.0: una propuesta para un formato de archivo universal de fabricación aditiva de múltiples materiales (PDF) . Simposio sobre fabricación de formas libres sólidas (SFF'09). Austin, TX, EE.UU.: Universidad de Cornell. Archivado desde el original (PDF) el 11 de junio de 2020 . Consultado el 5 de mayo de 2017 .
  4. ^ abc STL 2.0 puede reemplazar el formato de archivo antiguo y limitado 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