One really awesome feature ImplicitCAD provides is rounded... well, everything. For example, look at the following extopenscad code (we provide a parser for an extended version of openscad, in addition to a Haskell API). The r=x is the rounding!
linear_extrude (40, r=8)
union (r=5) {
translate ([-10,-10]) square (30, r=3);
translate ([ 10, 10]) square (30, r=3);
}
ImplicitCAD also provides higher order modules, as this variable twist extrusion code demonstrates (note how twist is a function):
linear_extrude (height = 40, center=true, twist(h) = 35*cos(h*2*pi/60)) {
union ( r = 8) {
circle (10);
translate ([22,0]) circle (10);
translate ([0,22]) circle (10);
translate ([-22,0]) circle (10);
translate ([0,-22]) circle (10);
}
}
We also provide proper programmatic functionality, like variable assignment in loops, that was missing in OpenSCAD.
Check out ImplicitCAD on GitHub and the release notes for 0.0.1.
Important Aside: The third Toronto RepRap User Group meetup is happening on Feb. 27th at hacklab! If you're in Toronto/the GTA/Southern Ontario, please join us!
What CAD file formats can it read and write?
ReplyDeletePresently we support:
ReplyDelete2D: SVG, gcode*
3D: STL
Any triangle mesh or line segment based format can be quite easily added :)
* Experimental, only presently supports Hacklab's laser cutter. 3D gcode will come at some point as well :)
That's a problem because not a single CAD file format is mesh based.
ReplyDeleteThey all use solids. Most in a parametric way.
Ack, sorry, I misunderstood your question and provided the list of formats it can export. Should have read more carefully.
ReplyDeleteAs demonstrated in the post, one can use a extended version of OpenSCAD to describe your object. Since it's (trying to be) backwards compatible with OpenSCAD, I imagine that would count as an imported CAD format.
Haskell programs based on the Haskell bindings are also arguably a CAD format, though since they're the native format it's not really importing :)
Parsing a CSG based format or similar is entirely feasible. I don't really see support for non-progrmatic CAD formats coming in the near future, though.
So I guess I can't import much. On the other hand, I'm not sure that it's a huge problem. Lock into different CAD tools is a hard problem to solve, but projects like OpenSCAD have been very successful despite it :)
I think outputting GCode from a CAD program is a bad idea. CAD is CAD, CAM is CAM.
ReplyDeleteLeave slicing to slic3r (or SFACT, if you wish)
For 2D it is a little more acceptable, but I'd rather see that as a generic SVG-reading thing than as a part of a CAD program.