Function parser for OpenSCAD and parametric curve grapher
- 15 Aufrufe
Dieses Modell wird auf Cults3D gehostet. Dateien, Bilder und Lizenzangaben gehören dem ursprünglichen Designer.
Auf Cults3D ansehen ↗Beschreibung
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 problems, add the optional argument optimize=false. * eval(fc, variables): takes a compiled function fc and evaluates it for the specified parameter values; variables is a vector of [variableName, value] pairs; for instance, [["x",1],["y",2]] * evaluateFunction(expression, variables): use this to evaluate an uncompiled function once; this is a convenience function equivalent to eval(compileFunction(expression,optimize=false),variables); if you are going to evaluate the function more than a couple of times, please compile it once…
About this model
Function parser for OpenSCAD and parametric curve grapher is a kostenlos 3D model in the Sonstiges category, shared by the Cults3D community. You can download it for 3D printing and reuse it in your own projects under the terms of its original license.
File formats
- STL — The most common mesh format for 3D printing — ready to slice and print on almost any printer.
The files for this model are hosted on Cults3D. Use the button above to open the original page and download it.