OpenScad Virtual Machine - v0.2 (Q49284)

From Library of Open Source Hardware
Revision as of 18:28, 25 February 2022 by Aisberg (talk | contribs) (‎Added [en] label: OpenScad Virtual Machine - v0.2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
No description defined
Language Label Description Also known as
English
OpenScad Virtual Machine - v0.2
No description defined

    Statements

    1.0.0
    0 references
    auto
    0 references
    www.thingiverse.com
    0 references
    en
    0 references
    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.
    0 references
    https://spdx.org/licenses/CC0-1.0
    0 references
    WilliamAAdams
    0 references
    0 references
    thingiverse.com
    0 references