Additive manufacturing file format
Additive manufacturing file format (AMF) is an open standard for describing objects for additive manufacturing processes such as 3D printing. The official ISO/ASTM 52915:2016[1][2] standard is an XML-based format designed to allow any computer-aided design software to describe the shape and composition of any 3D object to be fabricated on any 3D printer via a computer-aided manufacturing software. Unlike its predecessor STL format, AMF has native support for color, materials, lattices, and constellations. StructureAn AMF can represent one object, or multiple objects arranged in a constellation. Each object is described as a set of non-overlapping volumes. Each volume is described by a triangular mesh that references a set of points (vertices). These vertices can be shared among volumes belonging to the same object. An AMF file can also specify the material and the color of each volume, as well as the color of each triangle in the mesh. The AMF file is compressed using the zip compression format, but the ".amf" file extension is retained. A minimal AMF reader implementation must be able to decompress an AMF file and import at least geometry information (ignoring curvature). Basic file structureThe AMF file begins with the XML declaration line specifying the XML version and encoding. The remainder of the file is enclosed between an opening Within the AMF brackets, there are five top level elements. Only a single object element is required for a fully functional AMF file.
Geometry specificationThe format uses a Face-vertex polygon mesh layout. Each top-level Color specificationColors are introduced using the A color can also be specified by referring to a formula that can use a variety of coordinate-dependent functions. Texture mapsTexture maps allow assigning color or material to a surface or a volume, borrowing from the idea of Texture mapping in graphics. The Once the texture-id is assigned, the texture data can be referenced in a color formula, such as in the example below. Usually, however, the coordinates will not be used directly as shown above, but transformed first to bring them from object coordinates to texture coordinates. For example, Material specificationMaterials are introduced using the <material> element. Each material is assigned a unique id. Geometric volumes are associated with materials by specifying a material-id within the <volume> element. Mixed, graded, lattice, and random materialsNew materials can be defined as compositions of other materials. The element Print constellationsMultiple objects can be arranged together using the If multiple top-level constellations are specified, or if multiple objects without constellations are specified, each of them will be imported with no relative position data. The importing program can then freely determine the relative positioning. Meta-dataThe Optional curved trianglesIn order to improve geometric fidelity, the format allows curving the triangle patches. By default, all triangles are assumed to be flat and all triangle edges are assumed to be straight lines connecting their two vertices. However, curved triangles and curved edges can optionally be specified in order to reduce the number of mesh elements required to describe a curved surface. The curvature information has been shown to reduce the error of a spherical surface by a factor of 1000 as compared to a surface described by the same number of planar triangles.[1] Curvature should not create a deviation from the plane of the flat triangle that exceeds 50% of the largest dimension of the triangle. To specify curvature, a vertex can optionally contain a child element When curvature is specified, the triangle is decomposed recursively into four sub-triangles. The recursion must be executed five levels deep, so that the original curved triangle is ultimately replaced by 1024 flat triangles. These 1024 triangles are generated "on the fly" and stored temporarily only while layers intersecting that triangle are being processed for manufacturing. FormulasIn both the CompressionAn AMF can be stored either as plain text or as compressed text. If compressed, the compression is in ZIP archive format. A compressed AMF file is typically about half the size of an equivalent compressed binary STL file.[3]: 275 The compression can be done manually using compression software, or automatically by the exporting software during write. Both the compressed and uncompressed files have the Design considerationsWhen the ASTM Design subcommittee began developing the AMF specifications[when?], a survey of stakeholders[4] revealed that the key priority for the new standard was the requirement for a non-proprietary format. Units and buildability issues were a concern lingering from problems with the STL format. Other key requirements were the ability to specify geometry with high fidelity and small file sizes, multiple materials, color, and microstructures. In order to be successful across the field of additive manufacturing, this file format was designed to address the following concerns
HistorySince the mid-1980s, the STL file format has been the de facto industry standard for transferring information between design programs and additive manufacturing equipment. The STL format only contained information about a surface mesh, and had no provisions for representing color, texture, material, substructure, and other properties of the fabricated target object. As additive manufacturing technology evolved from producing primarily single-material, homogenous shapes to producing multi-material geometries in full color with functionally graded materials and microstructures, there was a growing need for a standard interchange file format that could support these features. A second factor that ushered the development of the standard was the improving resolution of additive manufacturing technologies. As the fidelity of printing processes approached micron scale resolution, the number of triangles required to describe smooth curved surfaces resulted in unacceptably large file sizes.[4] During the 1990s and 2000s, a number of proprietary file formats have been in use by various companies to support specific features of their manufacturing equipment, but the lack of an industry-wide agreement prevented widespread adoption of any single format. In 2006, Jonathan D. Hiller and Hod Lipson presented an initial version of AMF dubbed "STL 2.0".[3] In January 2009, a new ASTM Committee F42 on Additive Manufacturing Technologies was established, and a design subcommittee was formed to develop a new standard. A survey was conducted in late 2009[4] leading to over a year of deliberations on the new standard. The resulting first revision of the AMF standard became official on May 2, 2011.[5] During the July 2013 meetings of ASTM's F42 and ISO's TC261 in Nottingham (UK), the Joint Plan for Additive Manufacturing Standards Development was approved. Since then, the AMF standard is managed jointly by ISO and ASTM. Sample fileBelow is a simple AMF file describing a pyramid made of two materials, adapted from the AMF tutorial[6] (548 bytes compressed). To create this AMF file, copy and paste the text below into a text editor or an xml editor, and save the file as "pyramid.amf". Then compress the file with ZIP, and rename the file extension from ".zip" to ".zip.amf". <?xml version="1.0" encoding="utf-8"?>
<amf unit="inch" version="1.1">
<metadata type="name">Split Pyramid</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>0.5</x><y>0.5</y><z>1</z></coordinates></vertex>
</vertices>
<volume materialid="2">
<metadata type="name">Hard side</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">Soft side</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>
<material id="2">
<metadata type="name">Hard material</metadata>
<color><r>0.1</r><g>0.1</g><b>0.1</b></color>
</material>
<material id="3">
<metadata type="name">Soft material</metadata>
<color><r>0</r><g>0.9</g><b>0.9</b><a>0.5</a></color>
</material>
</amf>
See also
Notes
External links
|