<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 7/11/2019 2:01 PM, GZ wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANL-r-y6zhP7gHQ7icByp=eU10R+LTjSAgQT_b8MkNn9V2Zb+g@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">relativity.scad library does alignments</pre>
    </blockquote>
    <br>
    Aligning objects a priori is not hard.  What's not possible is
    taking some arbitrary object and determining its geometry after it's
    been constructed.<br>
    <br>
    That is:<br>
    <blockquote>
      <pre>cylinder(h=10, d=2);
translate([-1,-1,10]) cube(2);
</pre>
    </blockquote>
    <p>will more or less reliably give you a cube atop a cylinder. 
      However, if you then</p>
    <blockquote>
      <pre>module foo() {
        rotate([45,0,0]) {
                cylinder(h=10, d=2);
                translate([-1,-1,10]) cube(2);
        }
}
</pre>
    </blockquote>
    <p>there's no way to perch something on top of the resulting foo()
      without doing math.</p>
    <p>I'm too lazy right now to do the math, but experimentation says
      it's at about [ 0, -7.8, 9.2 ].  There's no way to get that value
      out of OpenSCAD, or to get the foo's bounding box.</p>
    <p>Relativity helps you to construct a model with specified
      alignment, but does it at the front of the pipeline.  You can't
      give it an arbitrary existing object like foo() above and expect
      it to be able to align additional objects relative to it. 
      Relativity can only work because it _knows_ the geometry of the
      objects it's putting together.</p>
    <p><br>
    </p>
  </body>
</html>