<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: In Which OpenSCAD Wins Me Over</title>
	<atom:link href="http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/</link>
	<description>Exploring the Universe of Things</description>
	<lastBuildDate>Wed, 10 Mar 2010 00:22:15 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: OpenSCAD: A Love Story &#171; Project Blog</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1897</link>
		<dc:creator>OpenSCAD: A Love Story &#171; Project Blog</dc:creator>
		<pubDate>Fri, 27 Nov 2009 14:53:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1897</guid>
		<description>[...] a belly fully of thanksgiving turkey I tried it out. I agree with the Make post and the referenced Thingaverse post : In the right hands, designing the right parts, this is a game changer. I played around with it [...]</description>
		<content:encoded><![CDATA[<p>[...] a belly fully of thanksgiving turkey I tried it out. I agree with the Make post and the referenced Thingaverse post : In the right hands, designing the right parts, this is a game changer. I played around with it [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OpenSCAD: Constructive solid geometry CAD at long last &#124; china online business,e business,e-commerce consultant</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1895</link>
		<dc:creator>OpenSCAD: Constructive solid geometry CAD at long last &#124; china online business,e business,e-commerce consultant</dc:creator>
		<pubDate>Fri, 27 Nov 2009 01:47:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1895</guid>
		<description>[...] I was really stoked this morning to read this post over on the Thingiverse Blog about the advent of OpenSCAD, which does for 3D CAD what POV-Ray did for raytracing. At long last, [...]</description>
		<content:encoded><![CDATA[<p>[...] I was really stoked this morning to read this post over on the Thingiverse Blog about the advent of OpenSCAD, which does for 3D CAD what POV-Ray did for raytracing. At long last, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: failrate</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1701</link>
		<dc:creator>failrate</dc:creator>
		<pubDate>Sun, 08 Nov 2009 06:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1701</guid>
		<description>Well, it&#039;s open source.  I&#039;m only presuming that the language is not essential to the function of the application.  It may be practical to bind a different language to openSCAD or provide an API that could then be SWIG-i-fied for any given language.

For example, I generally work in either Python (standalone apps) or JavaScript (where the scripting language needs to be embedded).  In the case of the latter, I&#039;ve embedded the SpiderMonkey runtime into both an openGL-based renderer and a libSDL-based additive sine synthesis engine.  It may be relatively easy to replace the ad-hoc language of this with Your-Language-Of-Choice.</description>
		<content:encoded><![CDATA[<p>Well, it&#8217;s open source.  I&#8217;m only presuming that the language is not essential to the function of the application.  It may be practical to bind a different language to openSCAD or provide an API that could then be SWIG-i-fied for any given language.</p>
<p>For example, I generally work in either Python (standalone apps) or JavaScript (where the scripting language needs to be embedded).  In the case of the latter, I&#8217;ve embedded the SpiderMonkey runtime into both an openGL-based renderer and a libSDL-based additive sine synthesis engine.  It may be relatively easy to replace the ad-hoc language of this with Your-Language-Of-Choice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allan Ecker</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1696</link>
		<dc:creator>Allan Ecker</dc:creator>
		<pubDate>Sat, 07 Nov 2009 23:46:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1696</guid>
		<description>Mm.

I have lots of little gripes on this tool, but the core of it is so promising that I have little doubt it&#039;ll attract many users and ultimately enthusiastic coders to fill in the cracks.</description>
		<content:encoded><![CDATA[<p>Mm.</p>
<p>I have lots of little gripes on this tool, but the core of it is so promising that I have little doubt it&#8217;ll attract many users and ultimately enthusiastic coders to fill in the cracks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruno Rivard</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1695</link>
		<dc:creator>Bruno Rivard</dc:creator>
		<pubDate>Sat, 07 Nov 2009 20:44:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1695</guid>
		<description>Elegant and Useful, but not a game changer. NURBS (and now T-splines) have done that too. In free-form graphics and the command line. You can do the same sorts of ultra concise scripts. 

Unfortunately there is not any pure and dedicated open source application that utilizes NURBS. Rhino3D (www.rhino3d.com) has an opensource API however.

The new Mac port will use Python for scripting the API. Making an open source &quot;glue&quot; would be a good start. 

But till then OpenSCAD does it. :)</description>
		<content:encoded><![CDATA[<p>Elegant and Useful, but not a game changer. NURBS (and now T-splines) have done that too. In free-form graphics and the command line. You can do the same sorts of ultra concise scripts. </p>
<p>Unfortunately there is not any pure and dedicated open source application that utilizes NURBS. Rhino3D (www.rhino3d.com) has an opensource API however.</p>
<p>The new Mac port will use Python for scripting the API. Making an open source &#8220;glue&#8221; would be a good start. </p>
<p>But till then OpenSCAD does it. <img src='http://blog.thingiverse.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Revar</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1694</link>
		<dc:creator>Revar</dc:creator>
		<pubDate>Sat, 07 Nov 2009 20:43:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1694</guid>
		<description>Hmm.  I played with openSCAD a while longer, and yeah, recursion is impractical as yet.   So fractals are a lot harder.  I don&#039;t see any vector stack support like push/pop/insert/append, so it&#039;s hard to even fake recursion.  Oh well.  I&#039;ll have to wait for later releases for that particular fun, I guess.</description>
		<content:encoded><![CDATA[<p>Hmm.  I played with openSCAD a while longer, and yeah, recursion is impractical as yet.   So fractals are a lot harder.  I don&#8217;t see any vector stack support like push/pop/insert/append, so it&#8217;s hard to even fake recursion.  Oh well.  I&#8217;ll have to wait for later releases for that particular fun, I guess.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zignig</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1688</link>
		<dc:creator>zignig</dc:creator>
		<pubDate>Sat, 07 Nov 2009 08:34:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1688</guid>
		<description>Freecad (  http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page ) is also does parametric. 

It uses python.

I&#039;ve not tried it yet but it uses a well known cad core and does fillets and chamfers as well</description>
		<content:encoded><![CDATA[<p>Freecad (  <a href="http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page" rel="nofollow">http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page</a> ) is also does parametric. </p>
<p>It uses python.</p>
<p>I&#8217;ve not tried it yet but it uses a well known cad core and does fillets and chamfers as well</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Revar</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1686</link>
		<dc:creator>Revar</dc:creator>
		<pubDate>Fri, 06 Nov 2009 22:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1686</guid>
		<description>Sadly, I wasn&#039;t able to get module recursion to work, so I wonder if it&#039;s just not implemented yet, or if I need forward module declarations.  I was able to implement a limited simple Sierpinski tetrahedra sponge to five levels, but I should have been able to do it in far less code!  :)

&lt;code&gt;
module tetra(rad=10) {
	sval = rad*sin(60);
	cval = rad*cos(60);
	pt1 = [sval, -cval, -cval-rad];
	pt2 = [0, rad, -cval-rad];
	pt3 = [-sval, -cval, -cval-rad];
	pt4 = [0, 0, 0];
	polyhedron(
		points = [pt1,pt2,pt3,pt4],
		triangles = [
			[0, 1, 2],
			[3, 1, 0],
			[3, 2, 1],
			[0,2,3]
		]
	);
}

module sier1(rad) {
	rad = rad / 2;
	sval = rad*sin(60);
	cval = rad*cos(60);
	tetra(rad);
	translate([sval,-cval,-cval-rad]) tetra(rad);
	translate([-sval,-cval,-cval-rad]) tetra(rad);
	translate([0,rad,-cval-rad]) tetra(rad);
}

module sier2(rad) {
	rad = rad / 2;
	sval = rad*sin(60);
	cval = rad*cos(60);
	sier1(rad);
	translate([sval,-cval,-cval-rad]) sier1(rad);
	translate([-sval,-cval,-cval-rad]) sier1(rad);
	translate([0,rad,-cval-rad]) sier1(rad);
}

module sier3(rad) {
	rad = rad / 2;
	sval = rad*sin(60);
	cval = rad*cos(60);
	sier2(rad);
	translate([sval,-cval,-cval-rad]) sier2(rad);
	translate([-sval,-cval,-cval-rad]) sier2(rad);
	translate([0,rad,-cval-rad]) sier2(rad);
}

module sier4(rad) {
	rad = rad / 2;
	sval = rad*sin(60);
	cval = rad*cos(60);
	sier3(rad);
	translate([sval,-cval,-cval-rad]) sier3(rad);
	translate([-sval,-cval,-cval-rad]) sier3(rad);
	translate([0,rad,-cval-rad]) sier3(rad);
}

module sier5(rad) {
	rad = rad / 2;
	sval = rad*sin(60);
	cval = rad*cos(60);
	sier4(rad);
	translate([sval,-cval,-cval-rad]) sier4(rad);
	translate([-sval,-cval,-cval-rad]) sier4(rad);
	translate([0,rad,-cval-rad]) sier4(rad);
}

rotate([180,0,0]) sier4(30);
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Sadly, I wasn&#8217;t able to get module recursion to work, so I wonder if it&#8217;s just not implemented yet, or if I need forward module declarations.  I was able to implement a limited simple Sierpinski tetrahedra sponge to five levels, but I should have been able to do it in far less code!  <img src='http://blog.thingiverse.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><code><br />
module tetra(rad=10) {<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	pt1 = [sval, -cval, -cval-rad];<br />
	pt2 = [0, rad, -cval-rad];<br />
	pt3 = [-sval, -cval, -cval-rad];<br />
	pt4 = [0, 0, 0];<br />
	polyhedron(<br />
		points = [pt1,pt2,pt3,pt4],<br />
		triangles = [<br />
			[0, 1, 2],<br />
			[3, 1, 0],<br />
			[3, 2, 1],<br />
			[0,2,3]<br />
		]<br />
	);<br />
}</p>
<p>module sier1(rad) {<br />
	rad = rad / 2;<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	tetra(rad);<br />
	translate([sval,-cval,-cval-rad]) tetra(rad);<br />
	translate([-sval,-cval,-cval-rad]) tetra(rad);<br />
	translate([0,rad,-cval-rad]) tetra(rad);<br />
}</p>
<p>module sier2(rad) {<br />
	rad = rad / 2;<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	sier1(rad);<br />
	translate([sval,-cval,-cval-rad]) sier1(rad);<br />
	translate([-sval,-cval,-cval-rad]) sier1(rad);<br />
	translate([0,rad,-cval-rad]) sier1(rad);<br />
}</p>
<p>module sier3(rad) {<br />
	rad = rad / 2;<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	sier2(rad);<br />
	translate([sval,-cval,-cval-rad]) sier2(rad);<br />
	translate([-sval,-cval,-cval-rad]) sier2(rad);<br />
	translate([0,rad,-cval-rad]) sier2(rad);<br />
}</p>
<p>module sier4(rad) {<br />
	rad = rad / 2;<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	sier3(rad);<br />
	translate([sval,-cval,-cval-rad]) sier3(rad);<br />
	translate([-sval,-cval,-cval-rad]) sier3(rad);<br />
	translate([0,rad,-cval-rad]) sier3(rad);<br />
}</p>
<p>module sier5(rad) {<br />
	rad = rad / 2;<br />
	sval = rad*sin(60);<br />
	cval = rad*cos(60);<br />
	sier4(rad);<br />
	translate([sval,-cval,-cval-rad]) sier4(rad);<br />
	translate([-sval,-cval,-cval-rad]) sier4(rad);<br />
	translate([0,rad,-cval-rad]) sier4(rad);<br />
}</p>
<p>rotate([180,0,0]) sier4(30);<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allan Ecker</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1685</link>
		<dc:creator>Allan Ecker</dc:creator>
		<pubDate>Fri, 06 Nov 2009 20:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1685</guid>
		<description>Wasn&#039;t sure about argument passing since I hadn&#039;t tested it, but that&#039;s another big thing: generating a TearDrop of any size.

With this CSG program we can parametrize &lt;i&gt;everything.&lt;/i&gt;</description>
		<content:encoded><![CDATA[<p>Wasn&#8217;t sure about argument passing since I hadn&#8217;t tested it, but that&#8217;s another big thing: generating a TearDrop of any size.</p>
<p>With this CSG program we can parametrize <i>everything.</i></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andres</title>
		<link>http://blog.thingiverse.com/2009/11/06/in-which-openscad-wins-me-over/comment-page-1/#comment-1684</link>
		<dc:creator>Andres</dc:creator>
		<pubDate>Fri, 06 Nov 2009 20:03:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thingiverse.com/?p=812#comment-1684</guid>
		<description>It gets better, the teardrop module itself can get parametric, this isn&#039;t entirely so, but some quick changes and putting holes of various sizes, pretty easy.

module TearDrop(radius)
{
	union(){
		cylinder(h=200,r=radius, center = true);
		intersection(){
			rotate(45,[0 0 1]) scale([1 1 20]) cube(size = 2*radius, center = true);
			translate([1.75*radius, 0, 0]) scale([1 1 20]) cube(size = 2*radius, center  = true);
		}
	}
}

difference(){
	cube([50 300 100], center = true);
	translate([0 -100 0]) rotate(-90, [0 1 0]) TearDrop(10);
	rotate(-90, [0 1 0])TearDrop(20);
	translate([0 100 0]) rotate(-90, [0 1 0])TearDrop(30);
}

hope that comes out.</description>
		<content:encoded><![CDATA[<p>It gets better, the teardrop module itself can get parametric, this isn&#8217;t entirely so, but some quick changes and putting holes of various sizes, pretty easy.</p>
<p>module TearDrop(radius)<br />
{<br />
	union(){<br />
		cylinder(h=200,r=radius, center = true);<br />
		intersection(){<br />
			rotate(45,[0 0 1]) scale([1 1 20]) cube(size = 2*radius, center = true);<br />
			translate([1.75*radius, 0, 0]) scale([1 1 20]) cube(size = 2*radius, center  = true);<br />
		}<br />
	}<br />
}</p>
<p>difference(){<br />
	cube([50 300 100], center = true);<br />
	translate([0 -100 0]) rotate(-90, [0 1 0]) TearDrop(10);<br />
	rotate(-90, [0 1 0])TearDrop(20);<br />
	translate([0 100 0]) rotate(-90, [0 1 0])TearDrop(30);<br />
}</p>
<p>hope that comes out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
