OpenScad Virtual Machine - v0.2 by WilliamAAdams 3d model
3dmdb logo
Thingiverse
OpenScad Virtual Machine - v0.2 by WilliamAAdams

OpenScad Virtual Machine - v0.2 by WilliamAAdams

by Thingiverse
Last crawled date: 2 years, 11 months ago
Moving right along, adding some more convenience...
This thing builds on the last version of the OpenScad Virtual machine by adding a few convenience functions:
CUBE(size, center);
CYLINDER(r1, r2, h, center);
SPHERE(r);
And a couple for the CSG operations as well:
UNION(parts);
DIFFERENCE(part1, part2);
I also changed the 'CSG' module name to 'EXEC' which seems more appropriate.
So, now you can do this:
EXEC(UNION([CUBE([10,10,10]), CYLINDER(r1=6, r2=5, h=12)]);
That pretty much makes it look more like what you'd write in normal OpenScad. So, why bother? It's more direct, or 'imperative'. This style might match some people's style better than the strictly hierarchical way of doing things.
If you want to get really technical, this style is like functional programming. Since almost everything, other than EXEC() is a function, without side effects, the 'functions' can be easily passed around as parameters to other functions and modules.
Still don't have any variables, loops, and the like, but how hard could it be ;-)
Also, it's fairly easy to build individual parts as simple arrays and just use them.
At any rate, take a look at the 'test_openscad_vm.scad' file as it shows how to mix and match things. The 'target()' function uses the all new stuff. The 'wheel()' function does a mix and match of styles.
This all might make more obvious sense in a couple more versions.

Tags