Tuesday, February 07, 2012
ImplicitCAD 0.0.1
For the last few months, I've been working on a new CAD program, ImplicitCAD. I'm now pleased to announce the release of ImplicitCAD 0.0.1.
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!
ImplicitCAD also provides higher order modules, as this variable twist extrusion code demonstrates (note how twist is a function):
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!
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!
Labels: cad, Haskell, ImplicitCAD
Comments:
<< Home
Presently we support:
2D: 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 :)
2D: 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.
They all use solids. Most in a parametric way.
They 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.
As 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 :)
As 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.
Leave 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.
Post a Comment
Leave 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.
<< Home