Learning
Model downloaden
Function parser for OpenSCAD and parametric curve grapher
65
Downloads
54
Likes
0
Makes
One of the OpenSCAD limitations is the inability to pass functions to functions or modules.
This library lets you define mathematical functions in a string, using all of the OpenSCAD mathematical operators (and a bit more). This string is then compiled to an optimized representation which can be evaluated fairly quickly. For instance:
use ;
f = "pow(x,3)*y-x*cos(y)+y";
fc = compileFunction(f);
echo(eval(fc, [["x", 12], ["y", -5]]));
will evaluate the function at x=12 and y=-5.
Parsing the string is not fast, but if you evaluate the compiled function for different variable values, the evaluated function should be fairly fast (in my test, about 10,000 `eval()`s per second).
There are three public functions provided:
* `compileFunction(f)`: takes a function string `f` and returns an optimized compiled representation; the representation is described here: http://www.thingiverse.com/thing:2289738
There may be some bugs in the optimization. If you run into p
This library lets you define mathematical functions in a string, using all of the OpenSCAD mathematical operators (and a bit more). This string is then compiled to an optimized representation which can be evaluated fairly quickly. For instance:
use ;
f = "pow(x,3)*y-x*cos(y)+y";
fc = compileFunction(f);
echo(eval(fc, [["x", 12], ["y", -5]]));
will evaluate the function at x=12 and y=-5.
Parsing the string is not fast, but if you evaluate the compiled function for different variable values, the evaluated function should be fairly fast (in my test, about 10,000 `eval()`s per second).
There are three public functions provided:
* `compileFunction(f)`: takes a function string `f` and returns an optimized compiled representation; the representation is described here: http://www.thingiverse.com/thing:2289738
There may be some bugs in the optimization. If you run into p
arpruss publiceert ook op
5 extra modellen op 1 andere platforms
Heb je dit model geprint? Inloggen en deel je make!
Log in om een reactie achter te laten
InloggenNog geen reacties – wees de eerste!