# General approach

37 messages
12
Open this post in threaded view
|

## Re: General approach

 > using STL than the difference between double precision and 'rational > numbers'. Single precision is equivalent to just 6-7 significant digits. But if you are speed obsessed you can just fixed point, which is more stable, means all your operations occur on fixed sized cubes that don't change with position, and is somewhat easier to vectorise, especially on low end processors. Alternatively you use the GPU to do the work. Alan _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

 > ... So the extended discussion of the internals is interesting and worthwhile but my original intent on the thread was to see if what I was doing made sense geometrically.  Similar to the thread about taking apart the three cones that were joined. ... The stuff in the original post doesn't seem correct to me.  It seems like you're confusing rotation by 180 degrees with reflection. Can you try using: "rotate (v=[0,1,0], a=180)" instead of "mirror([1,0,0])" ? -- Sent from: http://forum.openscad.org/_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

 In reply to this post by Alan Cox-2 On 2019-07-08 15:47, Alan Cox wrote: >> using STL than the difference between double precision and 'rational >> numbers'. Single precision is equivalent to just 6-7 significant >> digits. > > But if you are speed obsessed you can just fixed point, which is more > stable, means all your operations occur on fixed sized cubes that don't > change with position, and is somewhat easier to vectorise, especially > on > low end processors. > > Alternatively you use the GPU to do the work. > > Alan STL format has nothing to do with speed. You can use whatever method you think will work (whether it does or not), but if you export to STL you must adhere to the definition of that file format. In binary form that means single precision with just 6-7 significant digits. This is unrelated to computations employed, with or without obsessions. Carsten Arnholm _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

 In reply to this post by cacb On Mon, 08 Jul 2019 17:49:46 +0200 [hidden email] wrote: > On 2019-07-08 15:47, Alan Cox wrote: > >> using STL than the difference between double precision and 'rational > >> numbers'. Single precision is equivalent to just 6-7 significant > >> digits.   > > > > But if you are speed obsessed you can just fixed point, which is more > > stable, means all your operations occur on fixed sized cubes that don't > > change with position, and is somewhat easier to vectorise, especially > > on > > low end processors. > > > > Alternatively you use the GPU to do the work. > > > > Alan   > > STL format has nothing to do with speed. You can use whatever method you > think will work (whether it does or not), but if you export to STL you > must adhere to the definition of that file format. In binary form that > means single precision with just 6-7 significant digits. This is > unrelated to computations employed, with or without obsessions. Sure but that is the easy bit. Good STL exporters use a point dictionary. It's not rocket science. Binary STL is not a good system in the first place as you say. Alan _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Open this post in threaded view
|

## Re: General approach

 In reply to this post by DanS DanS wrote > Nate: what I was asking in the original post was how to take 1/6th of the > hallway design my head and make 1/3.  So yes it is a mirror operation. > The > best way to eliminate the stuff that overlapped the next octant turned out > to be using a box. > > After that I take that whole shape and need to displace it and rotate it > by > 120 (I need to do that twice). So you're trying to make something like a triangular pyramid but with ogee profiles? -- Sent from: http://forum.openscad.org/_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

Open this post in threaded view
|

## Re: General approach

 In reply to this post by nophead On Mon, Jul 08, 2019 at 05:13:15PM +0100, nop head wrote: > You get rounding errors because it is impossible to represent exact > rotations numerically on a digital computer. Of course it is accurate > enough for real life but you can't rely vertex positions exactly meeting > for example. rotate (2) cube (10); I have now represented a rotation with numbers (numerically) on a digital computer (mine, yours currently in your Email program or maybe browser). But yes, that "2" represents 2 degrees, which for technical reasons needs to be in radians ASAP. Then it becomes irrational. And most of the vertices of the cube move to irrational coordinates. For an example of "not exactly meeting": Suppose I do something like:   rotate (30) {      for (i=[0:10:60])         rotate (i) cube (10);   } now onthe last object you'd think it's rotated by 90 degrees but in fact its 30+60. Each of which was at one point converted to radians, rounded to the nearest double and then used to do trigonometry functions... In fact in this case I know that 30 and 60 in radians will be rounded precisely in the same direction: in floating point only the exponent differs. Thus the tolerance on the 90 degrees is even larger. And now that rotation is no longer precisely 90 degrees....         Roger. -- ** [hidden email] ** https://www.BitWizard.nl/ ** +31-15-2049110 ** **    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    ** The plan was simple, like my brother-in-law Phil. But unlike Phil, this plan just might work. _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org