<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix"><br>
      Hi Ed,<br>
      <br>
      Thanks for the feedback below. I think it confirms there is an
      issue and opportunity.<br>
      <br>
      We can both read P21 files. When the spec is finished we will both
      be able to read P21 e3 files. <br>
      <br>
      However, if we do not agree on a common organization for the
      partitioning then the only way I will be able to read your e3
      files will be to read all the partitions, assembly all the data in
      memory and create my internal data structures, and vice versa for
      your software. This is not going to work for incredibly large
      models.<br>
      <br>
      If we want to be able process each others very large models then
      we need to agree on one or more organizations for the e3 files.<br>
      <br>
      A simple example is a matrix. In the header of each P21 file we
      put a volume record describing the geometric limits of this model
      as a rectangular volume, then when I need to process your data to
      create a layer for some kind of machine processing I will be able
      to limit myself to those partitions that may contain material in
      this layer and vice versa.<br>
      <br>
      Obviously this only solves one of the problems because what
      happens when you want to visualize the whole model before your
      print it? (The AVM program has a very hard time when it wanted to
      exchange the complete model of its vehicle. It was only 700M but
      some of the low end CAD systems took forever to read and convert
      the data).<br>
      <br>
      Hence we need some kind of big manufacturing data project. The
      goal being to come up with one or more basic data organizations so
      that we can all cooperate to:<br>
      <br>
      1. Build very big models<br>
      2. Visualize and check them<br>
      3. Machine them<br>
      <br>
      Martin<br>
      <br>
      On 8/28/2014 8:25 AM, Paff, Ed wrote:<br>
    </div>
    <blockquote
      cite="mid:7707e13d97284190bab1d085a8a03385@EX1.iti-global.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Cambria;
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#8064A2;
        font-weight:bold;
        font-style:italic;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><b><i><span
style="font-family:"Calibri","sans-serif";color:#8064A2">Martin,
                I sent this to some of our guys who have been working
                with AM in our cambridge office with our cadfix
                product.  Here are some comments:<o:p></o:p></span></i></b></p>
        <p class="MsoNormal"><b><i><span
style="font-family:"Calibri","sans-serif";color:#8064A2"><o:p> </o:p></span></i></b></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB">I’m not entirely clear on the context but only
            considering the AM example I’d say that billions of
            triangles would be hard to justify even if the software
            didn’t buckle. The expectation is that some designer will be
            sending his models off to a bureau via the internet to
            manufacture – Like Henry does with his snowflakes. If the
            file size for a simple but highly curved object grows too
            quickly it becomes a punishment to send them to the bureau.
            Henry’s use case is actually about the worst possible
            scenario because each of the snowflakes he sends to
            Materialise is unique.
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB">Neither STL or AMF (fancy XML replacement for
            STL) really deal with the issue of rapidly rising facet
            counts as the precision of additive manufacturing machines
            increases. AMF at least uses a list of vertices indexed by
            the facets but it’s written in very idiomatic XML so it’s
            super-verbose in it’s raw form has to be zipped and
            decompressed on the fly while reading which can’t do much
            for performance.
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB">For our current work in AM I would tend to
            favour plain old BREP geometry with some kind of strict
            limit on the edge-face sloppiness which is the cause of most
            of our woes. STEP is perfectly suitable for this but things
            start to look a little tricky when we have to deal with “<a
              moz-do-not-send="true"
              href="http://www.thingiverse.com/thing:11509">organic</a>”
            looking models that can’t easily be converted into a BREP.
            Support for freeform models would probably require a lot of
            planar triangles or a neutral subdivision surface or
            high-order triangle representation like we use in CADfix.
            However, I don’t know if there’s much urgency in industrial
            AM applications to handle non-BREP data.  <o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB">Metadata is also fiddly and not really handled
            satisfactorily in AMF. Multi-material printers are
            increasingly popular these days but assigning a specific
            material or colour transition within a body just isn’t done.
            Usually it’s supported by cutting the body up with planes
            and assigning a single property each of the resulting
            bodies. Similarly, decisions about layer positioning and
            models orientation have a significant impact on the
            manufacturing results for precision parts and there’s a
            whole debate on whether this should be specified as part of
            the model description or left up to the machine operator to
            decide.
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"
            lang="EN-GB">So I guess I’m saying there’s a lot of room for
            improvement over current processes. A multi-file approach to
            massive models (or very large build volumes in AM) sounds
            very sensible as a means of keeping models manageable and
            any other moves to limit file size without losing quality of
            data would probably be appreciated. For reference CADfix can
            just about display 40 million triangles without dynamic
            rotation falling apart but I imagine that 100x that number
            would start causing all sorts of problems in the kernel – I
            note, for example, that the maximum 32 bit integer is about
            2 billion so we certainly can’t have a mesh/frog with more
            than that many vertices without switching a ton of code over
            to long integers. <o:p></o:p></span></p>
        <p class="MsoNormal"><b><i><span
style="font-family:"Calibri","sans-serif";color:#8064A2"><o:p> </o:p></span></i></b></p>
        <p class="MsoNormal"><b><i><span
style="font-family:"Calibri","sans-serif";color:#8064A2"><o:p> </o:p></span></i></b></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">
                wg11 [<a class="moz-txt-link-freetext" href="mailto:wg11-bounces@steptools.com">mailto:wg11-bounces@steptools.com</a>]
                <b>On Behalf Of </b>Martin Hardwick<br>
                <b>Sent:</b> Tuesday, August 26, 2014 11:55 AM<br>
                <b>To:</b> wg11<br>
                <b>Subject:</b> [wg11] Fwd: RE: Step Standards for
                Additive Manufacturing<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><br>
          <span style="color:#333300">All,<br>
            <br>
            Here is the paper that raised questions about the ability of
            traditional CAD systems to model very large structures for
            applications such as additive manufacturing.<br>
            <br>
            This does not mean that they cannot be used for such
            modeling but it does imply that new infrastructure is
            required to enable such modeling and in my opinion the best
            hope for a near term solution is Part 21 Edition 3 combined
            with AP242, and the STEP-NC models for additive and
            subtractive machining. <br>
            <br>
            Key advantages include:<br>
            1. Interfaces to read and write the geometry to and from
            nearly all the CAD systems<br>
            2. Very efficient format for modeling facets<br>
            3. Information models both additive and subtractive
            manufacturing<br>
            4. International Standard<br>
            <br>
            What we need to do is create an infrastructure for
            processing this data in very large volumes so that we can
            support applications like additive manufacturing, 3D circuit
            design, very large buildings construction and very large
            defense platforms.<br>
            <br>
            I would see this mostly as imposing an organization onto the
            division of an AP242 file into billions of linked P21 e3
            segments.</span> Seemingly trivial until you start to think
          about all the different ways that applications will want to
          find and access the data.<br>
          <br>
          Here is the problem statement that I received from a well
          known CAD/CAM vendor<o:p></o:p></p>
        <div>
          <div>
            <p class="MsoNormal"><span style="color:#BC0082"> </span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">(1)
                Simple calculations. Suppose you have an object with a
                volume of 1 cubic meter, and the</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">cells
                in the lattice have a volume of 1 cubic millimeter. Then
                there will be 10^9 cells.</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">If
                you use a curvy b-rep, there might only be 2 or 3 faces
                per cell; with a facetted b-rep,</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">maybe
                10 or 20 facets per cell. But, either way, that’s a huge
                number of faces. If the cells are</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">all
                identical, you can represent them using a repeated
                pattern technique some of the time,</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">but,
                for some operations, you will actually need explicit
                representations of all those faces.</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">No
                modeler (as far as I know) can handle that many faces,
                and no graphics card can handle</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">10^9
                triangles. Not even close.</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span style="color:#BC0082"> </span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">(2)
                These folks ... (in the attached paper)</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082"> </span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">found
                that ACIS ground to a halt when they tried to model a
                lattice with</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">around
                2400 simple cells (see pages 9-10). This was 10 years
                ago, and computers are</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">bigger/faster
                nowadays, but I don’t see that this will allow us to
                make the leap from</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">2400
                cells to 10^9. I’d love to be proven wrong. If plain old
                b-reps could be made to</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Cambria","serif";color:#BC0082">work,
                that would certainly make life easier for us.</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span style="color:#BC0082"> </span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span style="color:#003333">Martin
                Hardwick<br>
                President STEP Tools, Inc.<br>
                Professor of Computer Science, RPI<br>
                Team Leader ISO STEP-Manufacturing</span><span
style="font-size:11.0pt;font-family:"Cambria","serif""><o:p></o:p></span></p>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>