

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cwwang.com &#187; Mechanisms</title>
	<atom:link href="http://cwwang.com/category/mechanisms/feed/" rel="self" type="application/rss+xml" />
	<link>http://cwwang.com</link>
	<description>Che-Wei Wang</description>
	<lastBuildDate>Sat, 06 Nov 2010 15:58:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>3.16 Billion Cycles</title>
		<link>http://cwwang.com/2009/05/05/316-billion-cycles/</link>
		<comments>http://cwwang.com/2009/05/05/316-billion-cycles/#comments</comments>
		<pubDate>Tue, 05 May 2009 20:41:10 +0000</pubDate>
		<dc:creator>che-wei wang</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[For Sale]]></category>
		<category><![CDATA[Mechanisms]]></category>
		<category><![CDATA[Objects]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sculpture]]></category>
		<category><![CDATA[Time]]></category>

		<guid isPermaLink="false">http://cwwang.com/?p=1090</guid>
		<description><![CDATA[Can we watch decay? Can we see glass as a fluid slowly slumping and deforming over time? Everything is in constant flux, yet we consider many things around us static and fixed. 3.16 Billion Cycles is an attempt to unravel a seemingly unchanging 100 years into a set of relationships in digestible increments. A 60 [...]]]></description>
			<content:encoded><![CDATA[<p>Can we watch decay?  Can we see glass as a fluid slowly slumping and deforming over time?<br />
Everything is in constant flux, yet we consider many things around us static and fixed.  3.16 Billion Cycles is an attempt to unravel a seemingly unchanging 100 years into a set of relationships in digestible increments.<br />
<span id="more-1090"></span></p>
<p><img src="http://cwwang.com/wordpress/wp-content/uploads/dsc1818-1024x1024.jpg" alt="_dsc1818" title="_dsc1818" width="570" height="570" class="alignleft size-large wp-image-1178" /></p>
<p>A 60 rpm (revolutions per minute) motor drives the entire mechanism.  It rotates once every second.  The following pulley rotates once every 5 seconds (1:5 ratio).  The next rotates once every 60 seconds or 1 minute.  Then 5 minutes, 1 hour, 1 day, 1 month, 1 year, and 1 decade.  The decade wheel carries the load of the large arc.  The large arc rotates once every century.  The final ratio between the 60 rpm motor and the large arc is approximately 1:31.6 billion. </p>
<p>Each wheel is marked with a black nut to highlight a position that could be tracked over time.  Along the arc, 100 lines mark the divisions of each passing year.  When the clock finally reaches the end of a 100 year cycle, the arc falls off its track onto the floor.</p>
<p>3.16 Billion Cycles is for sale as an edition of 5.</p>
<p>Materials:Aluminum, AC sync motor, rubber belts.<br />
Dimensions: 46” diameter (107cm), 6” (15cm) deep, wall mouted</p>
<p><a href="http://cwwang.com/wordpress/wp-content/uploads/century-16-r1a-labels.png" rel="lightbox[1090]" title="century-16-r1a-labels" rel="lightbox"><img src="http://cwwang.com/wordpress/wp-content/uploads/century-16-r1a-labels.thumbnail.png" alt="century-16-r1a-labels" width="128" height="95" class="attachment wp-att-1095 " /></a></p>
<p><a href="http://cwwang.com/wordpress/wp-content/uploads/316-billion-cycles.jpg" rel="lightbox[1090]" title="316-billion-cycles" rel="lightbox"><img src="http://cwwang.com/wordpress/wp-content/uploads/316-billion-cycles.thumbnail.jpg" alt="316-billion-cycles" width="128" height="85" class="attachment wp-att-1138 " /></a> <a href="http://cwwang.com/wordpress/wp-content/uploads/_dsc1826.jpg" rel="lightbox[1090]" title="_dsc1826" rel="lightbox"><img src="http://cwwang.com/wordpress/wp-content/uploads/_dsc1826.thumbnail.jpg" alt="_dsc1826" width="128" height="85" class="attachment wp-att-1093 " /></a> </p>
<p><object width="480" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4368844&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4368844&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="480" height="360"></embed></object>
<p><a href="http://vimeo.com/4368844">3.16 Billion Cycles</a> from <a href="http://vimeo.com/user271044">che-wei wang</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Special thanks to Julian LaVerdiere, Jessica Banks, Andrew Laska, Dustyn Roberts, Kevin Slavin, Al Zuger, and Milgo Bufkin for all their help.<a href="http://cwwang.com/wordpress/wp-content/uploads/DSC1818.JPG"></p>
]]></content:encoded>
			<wfw:commentRss>http://cwwang.com/2009/05/05/316-billion-cycles/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sprocket Rhinoscript</title>
		<link>http://cwwang.com/2009/04/01/sprocket-rhinoscript/</link>
		<comments>http://cwwang.com/2009/04/01/sprocket-rhinoscript/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 05:15:09 +0000</pubDate>
		<dc:creator>che-wei wang</dc:creator>
				<category><![CDATA[Mechanisms]]></category>
		<category><![CDATA[Rhinoscript]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://cwwang.com/?p=1071</guid>
		<description><![CDATA[UPDATE: this script generates inaccurately spaced teeth. sorry! fixes in new version coming soon. (6.25.09) Here&#8217;s some basic rhinoscript code to draw your own sprockets based on the number of desired teeth, chain pitch and roller diameter. It&#8217;s very basic, but enough to draw what you want and get some custom sprockets lasercut. Draw a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cwwang.com/wordpress/wp-content/uploads/sprockets-converted-01.png" rel="lightbox[1071]" title="sprockets-converted-01" rel="lightbox"><img src="http://cwwang.com/wordpress/wp-content/uploads/sprockets-converted-01.thumbnail.png" alt="sprockets-converted-01" width="128" height="91" class="attachment wp-att-1072 " /></a></p>
<p>UPDATE: this script generates inaccurately spaced teeth. sorry!  fixes in new version coming soon. (6.25.09)</p>
<p>Here&#8217;s some basic rhinoscript code to draw your own sprockets based on the number of desired teeth, chain pitch and roller diameter. It&#8217;s very basic, but enough to draw what you want and get some custom sprockets lasercut.  Draw a circle that&#8217;s larger than what you think it&#8217;s going to be in top view, then run the code.<br />
<span id="more-1071"></span></p>
<pre><code>Option Explicit
'Script written by cw wang
'based on sprocket drawing instructions from http://www.gizmology.net/sprockets.htm
'Script copyrighted by cwwang.com
'Script version Sunday, March 29, 2009 7:12:48 PM

Call Main()
Sub Main()
	Dim circle:circle=Rhino.getobject("select circle",4)
	Dim teeth:teeth=Rhino.GetInteger("number of teeth",10)
	Dim pitch:pitch=RHino.GetReal("pitch",.25)
	Dim rollerD:rollerD=RHino.GetReal("roller diameter",.13)

	Dim center:center=Rhino.CircleCenterPoint(circle)
	Dim	radius:radius=Rhino.CircleRadius(circle)

	Dim ln(2)
	Dim lnOff(3)
	ln(0)=Rhino.AddLine(center,array(center(0),center(1)+radius,center(2)))
	lnOff(0)=Rhino.OffsetCurve(ln(0),center,pitch/2,array(0,0,-1))(0)
	lnOff(1)=Rhino.OffsetCurve(ln(0),center,pitch/2,array(0,0,1))(0)

	ln(1)=Rhino.RotateObject(ln(0),center,(360/teeth),,True)
	Dim offsetDir:offsetDir=rhino.CurveEndPoint(ln(0))
	lnOff(2)=Rhino.OffsetCurve(ln(1),offsetDir,pitch/2)(0)
	ln(2)=Rhino.RotateObject(ln(0),center,-1*(360/teeth),,True)
	lnOff(3)=Rhino.OffsetCurve(ln(2),offsetDir,pitch/2)(0)

	'draw rollers
	Dim intersection1:intersection1=rhino.curvecurveIntersection(lnOff(0),lnOff(3))
	Dim plane1:plane1=rhino.planeFromNormal(intersection1(0,1),array(0,0,1))
	Dim roller1:roller1= rhino.AddCircle(plane1,rollerD/2)
	Dim intersection2:intersection2=rhino.curvecurveIntersection(lnOff(1),lnOff(2))
	Dim plane2:plane2=rhino.planeFromNormal(intersection2(0,1),array(0,0,1))
	Dim roller2:roller2= rhino.AddCircle(plane2,rollerD/2)
	Dim interLn:interLn=rhino.AddLine(intersection1(0,1),intersection2(0,1))	

	'draw circles
	Dim rollerLineIntersection1:rollerLineIntersection1=Rhino.CurveCurveIntersection(interLn,roller1)
	Dim r1:r1=Rhino.Distance(intersection2(0,1),rollerLineIntersection1(0,1))
	Dim circle1:circle1=Rhino.addCircle(plane1,r1)

	Dim rollerLineIntersection2:rollerLineIntersection2=Rhino.CurveCurveIntersection(interLn,roller2)
	Dim r2:r2=Rhino.Distance(intersection2(0,1),rollerLineIntersection2(0,1))
	Dim circle2:circle2=Rhino.addCircle(plane2,r1)

	Dim tootharc(3)
	'trim sharp part
	Dim tip:tip=Rhino.CurveCurveIntersection(circle1,circle2)
	Dim arrinterval(1)
	arrInterval(0)=Rhino.CurveClosestPoint(circle1,	tip(0,1))
	arrInterval(1)=RHino.CurveClosestPoint(circle1, rollerLineIntersection1(0,1))
	toothArc(0)=Rhino.TrimCurve(circle1,arrInterval,True)

	arrInterval(1)=Rhino.CurveClosestPoint(circle2,	tip(0,1))
	arrInterval(0)=RHino.CurveClosestPoint(circle2, rollerLineIntersection2(0,1))
	toothArc(1)=Rhino.TrimCurve(circle2,arrInterval,True)

	'trim valley
	Dim intersection:intersection=Rhino.CurveCurveIntersection(roller1,lnOff(3))
	arrinterval(0)=Rhino.CurveClosestpoint(roller1,rollerLineIntersection1(0,1))
	arrInterval(1)=RHino.CurveClosestPoint(roller1,	 intersection(1,1))
	toothArc(2)=Rhino.TrimCurve(roller1,arrInterval,True)

	intersection=Rhino.CurveCurveIntersection(roller2,lnOff(1))
	arrinterval(1)=Rhino.CurveClosestpoint(roller2,rollerLineIntersection2(0,1))
	arrInterval(0)=RHino.CurveClosestPoint(roller2,	 intersection(1,1))
	toothArc(3)=Rhino.TrimCurve(roller2,arrInterval,True)

	'delete stuff
	Call Rhino.DeleteObjects(ln)
	Call Rhino.DeleteObjects(lnOff)
	Call RHino.DeleteObject(interLn)

	Dim sprocketCrv()
	ReDim sprocketCrv(1)

	sprocketCrv(0)=Rhino.JoinCurves(toothArc,True)(0)

	Dim i
	For i=1 To teeth-1
		ReDim Preserve sprocketCrv(i)
		sprocketCrv(i)= Rhino.RotateObject(sprocketCrv(0),center,i*360/teeth,,True)
	Next

	Call Rhino.JoinCurves(sprocketCrv,True)

	Call Rhino.AddText(teeth,center,pitch)

	Call Rhino.addPoint(center)

End Sub</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://cwwang.com/2009/04/01/sprocket-rhinoscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

