Conceptual Should Cost Tool Data Format
For the Conceptual Cost Model in the DMC Marketplace, contributed by PSU ARL, there is a required input file. The format is described below, and contains:
- Basic part geometry
- Part materials
- Part assembly information
Future goals include moving to a json representation, and allowing a separate input containing more details about the manufacturing capabilities of a shop.
Simple Example Input for Conceptual Cost Model
<?xml version="1.0" encoding="UTF-8"?> <mBOM version="2.0"> <parts> <part id="d1146573-70b3-4463-8fac-cd4fb59fa684"> <name>Part1</name> <length unit="mm">47.616109284685933</length> <height unit="mm">50.800000000000011</height> <width unit="mm">47.615254174927799</width> <surface_area unit="mm2">13199.451141525973</surface_area> <volume unit="mm3">42968.237338969411</volume> <weight unit="kg">42968237.338969409</weight> <instances> <instance instance_id="926d0684-20dc-4ce4-8ca3-52c2af4988cc" /> <instance instance_id="02f2fd2f-c236-4580-8fc0-e608848aabcc" /> </instances> <manufacturingDetails> <material>Steel</material> <coatings /> </manufacturingDetails> </part> <part id="1b46e606-f302-4efb-9ee9-5ccdca90f553"> <name>Part2</name> <length unit="mm">25.441961226668798</length> <height unit="mm">50.800000000000018</height> <width unit="mm">25.43822649519409</width> <surface_area unit="mm2">7562.3659056658926</surface_area> <volume unit="mm3">11384.09964272515</volume> <weight unit="kg">11384099.642725149</weight> <instances> <instance instance_id="fb7aacce-5c76-44de-b113-06f59597b569" /> </instances> <manufacturingDetails> <material>Aluminum</material> <coatings /> </manufacturingDetails> </part> </parts> <assemblies> <subassembly id="83b5b970-2a4b-4ec4-8c42-3b5d53e10915"> <name>Assembly</name> <contains> <partRef instance_id="926d0684-20dc-4ce4-8ca3-52c2af4988cc" /> <partRef instance_id="02f2fd2f-c236-4580-8fc0-e608848aabcc" /> <partRef instance_id="fb7aacce-5c76-44de-b113-06f59597b569" /> </contains> <assemblyDetails> <assemblyDetail> <mechanical> <fasteningMethod>bolt</fasteningMethod> <fasteningQuantity>4</fasteningQuantity> </mechanical> </assemblyDetail> </assemblyDetails> </subassembly> </assemblies> </mBOM>
Schema for Simple Example
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- XML Schema Generated from XML Document on Tue Apr 11 2017 10:19:55 GMT-0500 (Central Standard Time) --> <!-- with XmlGrid.net Free Online Service http://xmlgrid.net --> <xs:element name="mBOM"> <xs:complexType> <xs:sequence> <xs:element name="parts"> <xs:complexType> <xs:sequence> <xs:element name="part" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="length" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="height" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="width" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="surface_area" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="volume" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="weight" type="xs:double"> <xs:complexType> <xs:attribute name="unit" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="instances"> <xs:complexType> <xs:sequence> <xs:element name="instance" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="instance_id" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="manufacturingDetails"> <xs:complexType> <xs:sequence> <xs:element name="material" type="xs:string"></xs:element> <xs:element name="coatings"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="assemblies"> <xs:complexType> <xs:sequence> <xs:element name="subassembly"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="contains"> <xs:complexType> <xs:sequence> <xs:element name="partRef" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="instance_id" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="assemblyDetails"> <xs:complexType> <xs:sequence> <xs:element name="assemblyDetail"> <xs:complexType> <xs:sequence> <xs:element name="mechanical"> <xs:complexType> <xs:sequence> <xs:element name="fasteningMethod" type="xs:string"></xs:element> <xs:element name="fasteningQuantity" type="xs:int"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="version" type="xs:int"></xs:attribute> </xs:complexType> </xs:element> </xs:schema>