omdl  v0.6.1
OpenSCAD Mechanical Design Library


omdl is an OpenSCAD mechanical design library that provides open-source high-level design primitives with coherent documentation generated by Doxygen using openscad-amu.

With Doxygen, the code documentation is written within the code itself, and is thus easy to keep current. Moreover, it provides a standard way to both write and present OpenSCAD design documentation, compilable to common output formats (html, pdf, etc). With omdl, all library primitives are parametric with minimal, mostly zero, global variable dependencies and all library API's include markups that describe its parameters, behavior, and use.

Validation scripts are used to verify that the core operations work as expected across evolving OpenSCAD versions (validation performed when building the documentation). The library uses a common set of conventions for specifying data types and is divided into individual component modules of functionality, organized into groups, that may be included as desired.

Getting Started


include <omdl-base.scad>;
$fn = 36;
frame = triangle_lp2ls( [ [30,0], [0,40], [30,40] ] );
core = 2 * frame / 3;
vrnd = [1, 2, 4];
cone( h=20, r=10, vr=2 );
rotate([0, 0, 360/20])
radial_repeat( n=5, angle=true )
etriangle_ls_c( vs=frame, vc=core, vr=vrnd, h=10 );
translate([0, -50,0])
text( text="omdl", size=20, halign="center", valign="center" );

Example Result


To use omdl, the library files must be copied to an OpenSCAD library location. This can be done manually or can be done using using openscad-amu.

The ladder has several advantages and is recommended. When using openscad-amu, the library documentation is installed together with the library source code. This documentation is also added to a local browsable index, which facilitates reference use. Moreover, with openscad-amu installed, one can develop documentation for other OpenSCAD design scripts.

See the recommended installation method for more information.


omdl uses git for development tracking, and is hosted on GitHub following the usual practice of forking and submitting pull requests to the source repository.

As it is released under the GNU Lesser General Public License, any file you change should bear your copyright notice alongside the original authors' copyright notices typically located at the top of each file.

Ideas, requests, comments, contributions, and constructive criticism are welcome.


In case you have any questions or would like to make feature requests, you can contact the maintainer of the project or file an issue.