Loading

ImplicitCAD 0.0.1 Examples

by colah, published

ImplicitCAD 0.0.1 Examples by colah Feb 7, 2012

Description

Examples for the ImplicitCAD 0.0.1 Release. Look at the *.escad source files to see the exciting features of ImplcitCAd's Extended OpenSCAD format.

See the README:
github.com/colah/ImplicitCAD

See the Release Notes:
christopherolah.wordpress.com/2012/02/06/implicitcad-0-0-1-release/

Recent Comments

view all

How to implement hull or smth for emulating "extrude along the curved path"? In OpenScad I can do this via

union(){
hull(){
translate([0,0,10])rotate(15,[180,0,0])cylinder(h=0.1,r=5);
translate([0,-15,50])rotate(45,[180,0,0])cylinder(h=0.1,r=12);
}
hull(){
translate([0,-15,50])rotate(45,[180,0,0])cylinder(h=0.1,r=12);
translate([0,-30,70])rotate(60,[180,0,0])cylinder(h=0.1,r=20);
}}

Well, the first thing would be to try and make some things with it. I can't overemphasize how important bug reports are.

If you want to become more deeply involved in its development, send me an email and we can find something for you to hack on :)

Amen.

Liked By

view all

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

Instructions

Just install as described in the README, then run extopenscad [filename] -- it will produce an STL file with an intelligently chosen name, if there's a 3D object to render. View the resulting STL in your favourite triangle mesh viewer.

Comments

You must be logged in to post a comment.

Karabas on Jan 8, 2013 said:

How to implement hull or smth for emulating "extrude along the curved path"? In OpenScad I can do this via

union(){
hull(){
translate([0,0,10])rotate(15,[180,0,0])cylinder(h=0.1,r=5);
translate([0,-15,50])rotate(45,[180,0,0])cylinder(h=0.1,r=12);
}
hull(){
translate([0,-15,50])rotate(45,[180,0,0])cylinder(h=0.1,r=12);
translate([0,-30,70])rotate(60,[180,0,0])cylinder(h=0.1,r=20);
}}

emmett on Feb 7, 2012 said:

Wow, this is very exciting. As someone who designs almost exclusively in OpenSCAD, I'm always on the lookout for improvements. I agree with laird that you should focus on the modeling portion and not Gcode for now. I say this because I too have worked on making a better Gcode generator, and I now understand just how much of a bear that problem is. That said, if you want to bounce ideas around, I've spent some time thinking about the math behind it.

colah on Feb 8, 2012 said:

&
gt; That said, if you want to bounce ideas around, I've spent some time thinking about the math behind it.

Thanks!

I have some very different ideas, based on Implicit functions. In the cases I can guarantee Lipschitz Cont (c=1) I can do cool things like calculus based overhang detection (what's the partial derivative with respect to z?) and interior varying infill (focus infill near the edges where it
is most useful -- easy since I always know how far in I am).

I may take you up on your offer and bounce a bunch of ideas off you!

AndyP on Feb 7, 2012 said:

Great! I like what you are doing here. Last night I was trying to create a smooth rounded shelf handle with WilliamAAdams hermite surfaces and I was almost content with it, but I couldn't twist my shape satisfactorily along the extrusion path. I think you're linear_extrude with a mathematically defined twist path is what I'm looking for. Plus, it is easy to round unioned shapes. This ease of rounding should make many prints more aesthetically pleasing and still functional.

colah on Feb 8, 2012 said:

&
gt; Great! I like what you are doing here

Yay! Thanks!

&
gt; This ease of rounding should make many prints more aesthetically pleasing and still functional.

This is one of my goals. :) I really hate how OpenSCAD objects look like a bunch of things that have just been stuck together -- unless you spend a ludicrous amount of effort smoothing everything manually, which I've done and it sucks.

laird on Feb 7, 2012 said:

This looks really cool. It's interesting that there are now at least three different projects to do basically what OpenSCAD does but without the limitations of OpenSCAD's language. So far I've found pySCAD, py2scad, and now ImplicitCAD. I'm very happy, because I love the idea of code generating 3D objects, and I'm not thrilled by OpenSCAD's limitations. Who defines a language without variables that can actually vary? :-P

So I hope your project does well. Reading OpenSCAD, and extending it, is brilliant - it allows for easy adoption by all of the people using OpenSCAD, which is quite popular. And while you clearly love Haskell, OpenSCAD, despite its limitations, is much more readable. So thanks for that!

That bein
g said:
- All of my OpenSCAD has user-defined modules. So I'd sure like to see them implemented in ImplicitCAD. Otherwise I have to rip up my code in unpleasant ways to load it in. You're working on that, from your notes, so it's just a matter of time,
- The install process is a bit of a bear, since
you need to do a whole series of installs to get the various pieces. Anything that you can do to make it easier would be great. If you bundled it all into an app (kinda like OpenSCAD, for example) that would be great in terms of increasing adoption. One thing that OpenSCAD got right is that it's ea
sy to get started. Bundling everything into an app, and including examples and links to the manual, were very smart moves.
- And I have mixed feelings about your adding gcode generation for 3D printers. On the 'plus' side, ReplicatorG/Skeinforge is complex and extremely slow, so your stuff would hav
e to be an improvement. But on the 'minus' side, there are a lot of real world complexities in generating gcode for 3D printing, resulting in all sorts of complex configuration options that matter. And if you end up burning a lot of time reimplementing all of that mess, it might be better for you to
generate an STL and pass is off to one of the gcode generators, and focus on making your modeling language awesome!

Of course, you're doing all of the work, for free, so you certainly don't have to listen to me! Keep on cranking!

colah on Feb 7, 2012 said:

&
gt; So far I've found pySCAD, py2scad, and now ImplicitCAD.

Well, on the python-openscad front there's also openscadpy (by Henning Meyer) and pyopenscad (by Evan Jones).

There's also my previous project, surfcad, which was fundamentally different (non-CSG approach).

That said, most of these are just changing the programming capabilities. ImplicitCAD cha
nges the actual graphics capabilities with rounded CSG and so on.

&
gt; All of my OpenSCAD has user-defined modules. So I'd sure like to see them implemented in ImplicitCAD.

It's definitely coming. In fact, its what I was supposed to finish today before I got sick. It should be in the development version before the end of the week.

&
gt;he install process is a bit of a bear, since you need to do a whole series of installs to get the various pieces. Anything that you can do to make it easier would be great. If you bundled it all into an app (kinda like OpenSCAD, for example)

I note that OpenSCAD's packages are fairly recent. And if you're on a platform that doesn't have one (because there definitely aren't for a lot of smaller distros, or they're broken like the ones for Arch), ImplicitCAD is a lot easier to install.

That said, other things being hard to install is n
o excuse for me to slack off. I want to have packages for major distros for the first stable release (which I'm hoping to do in a month or two).

&
gt; And I have mixed feelings about your adding gcode generation for 3D printers. ...

I think I can do a better job with my approach, and generally simplify the problem. If that proves wrong I'll back off from it :)

&
gt; Keep on cranking!

Will do, thanks!

Top