Skip to content

Instantly share code, notes, and snippets.

@ryosuzuki
Created October 16, 2015 22:02
Show Gist options
  • Save ryosuzuki/b8b532568bbb4553d97f to your computer and use it in GitHub Desktop.
Save ryosuzuki/b8b532568bbb4553d97f to your computer and use it in GitHub Desktop.
craftml
<craft>
<info>
<title>Gear</title>
</info>
<craft name="sun-layout" module="sun-layout"/>
<param name="diameter" default="10" type="int"/>
<param name="teeth" default="10" type="int"/>
<param name="center_diameter" default="1.5" type="int"/>
<part name="gear-tooth">
<prism t="size(0.6, 1, 1)" style="color: blue;"></prism>
<cube t="size(0.4, 1, 1) translate(1.075, 0, 0) rotateZ(180)" style="color: blue;"></cube>
<prism t="size(0.6, 1, 1) translate(0.4, 0, 0)" style="color: blue;"></prism>
</part>
<part name="arrow">
<g l="centerYZ()">
<cube t="size(5, 1, 0.1)" style="color: red;"></cube>
<prism t="size(1.5, 1.5, 0.1) rotateZ(90) translate(4)" style="color: red;"></prism>
</g>
</part>
<part name="gear">
<g l="cut(.cutHere)">
<cylinder t="size({{diameter}}, {{diameter}}, 1) translate(-0.7, -0.7, 0)" color="blue"></cylinder>
<cylinder t="size({{center_diameter}}, {{center_diameter}}, 1) translate(-0.7, -0.7, 0)" class="cutHere"></cylinder>
<g c-if="diameter >= 8" t="size(1.5, 1, 0.1) translate(-1, 0, 1) rotateZ(90)">
{{teeth}} T
</g>
</g>
<sun-layout radius="{{diameter/2 + 0.3}}">
<gear-tooth c-repeat="teeth" rows="2" cols="2" color="orange"/>
</sun-layout>
</part>
<gear></gear>
<arrow t="translate({{diameter/4}}, 0, 1) size({{diameter/4}}, 1, 0.1)"></arrow>
</craft>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment