Skip to content

Instantly share code, notes, and snippets.

@robbintt
Last active December 30, 2017 09:43
Show Gist options
  • Save robbintt/0ee92fcda9cdf9e61ffec4f0937a5502 to your computer and use it in GitHub Desktop.
Save robbintt/0ee92fcda9cdf9e61ffec4f0937a5502 to your computer and use it in GitHub Desktop.
parametrically extruded cubes
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
solid OpenSCAD_Model
facet normal 0.505879 -0.310618 0.804738
outer loop
vertex 152.5 2.5 2.5
vertex 150.029 -4.05309 1.52369
vertex 154.053 -1.52369 -0.0293961
endloop
endfacet
facet normal 0.804737 0.50588 -0.310618
outer loop
vertex 151.524 0.0293961 -4.05309
vertex 149.971 4.05309 -1.52369
vertex 152.5 2.5 2.5
endloop
endfacet
facet normal 0.505879 -0.310618 0.804738
outer loop
vertex 152.5 2.5 2.5
vertex 148.476 -0.0293961 4.05309
vertex 150.029 -4.05309 1.52369
endloop
endfacet
facet normal 0.804737 0.50588 -0.310618
outer loop
vertex 154.053 -1.52369 -0.0293961
vertex 151.524 0.0293961 -4.05309
vertex 152.5 2.5 2.5
endloop
endfacet
facet normal -0.804739 -0.505879 0.310616
outer loop
vertex 150.029 -4.05309 1.52369
vertex 145.947 1.52369 0.0293961
vertex 147.5 -2.5 -2.5
endloop
endfacet
facet normal -0.804739 -0.505879 0.310616
outer loop
vertex 145.947 1.52369 0.0293961
vertex 150.029 -4.05309 1.52369
vertex 148.476 -0.0293961 4.05309
endloop
endfacet
facet normal -0.50588 0.310617 -0.804738
outer loop
vertex 145.947 1.52369 0.0293961
vertex 151.524 0.0293961 -4.05309
vertex 147.5 -2.5 -2.5
endloop
endfacet
facet normal -0.50588 0.310617 -0.804738
outer loop
vertex 151.524 0.0293961 -4.05309
vertex 145.947 1.52369 0.0293961
vertex 149.971 4.05309 -1.52369
endloop
endfacet
facet normal 0.310618 -0.804738 -0.505879
outer loop
vertex 151.524 0.0293961 -4.05309
vertex 150.029 -4.05309 1.52369
vertex 147.5 -2.5 -2.5
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 150.029 -4.05309 1.52369
vertex 151.524 0.0293961 -4.05309
vertex 154.053 -1.52369 -0.0293961
endloop
endfacet
facet normal -0.310618 0.804738 0.505879
outer loop
vertex 149.971 4.05309 -1.52369
vertex 145.947 1.52369 0.0293961
vertex 148.476 -0.0293961 4.05309
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 149.971 4.05309 -1.52369
vertex 148.476 -0.0293961 4.05309
vertex 152.5 2.5 2.5
endloop
endfacet
facet normal 0.586239 -0.0933817 0.804738
outer loop
vertex 147.237 57.6892 -0.0587931
vertex 135.789 56.182 8.10617
vertex 141.738 49.9359 3.04738
endloop
endfacet
facet normal -0.549889 -0.775331 0.310617
outer loop
vertex 141.738 49.9359 3.04738
vertex 135.789 56.182 8.10617
vertex 135.876 50.8697 -5
endloop
endfacet
facet normal 0.549889 0.775332 -0.310617
outer loop
vertex 147.237 57.6892 -0.0587931
vertex 135.426 64.8691 -3.04738
vertex 141.288 63.9353 5
endloop
endfacet
facet normal 0.549889 0.775332 -0.310617
outer loop
vertex 135.426 64.8691 -3.04738
vertex 147.237 57.6892 -0.0587931
vertex 141.375 58.623 -8.10617
endloop
endfacet
facet normal 0.586239 -0.0933805 0.804738
outer loop
vertex 141.288 63.9353 5
vertex 135.789 56.182 8.10617
vertex 147.237 57.6892 -0.0587931
endloop
endfacet
facet normal -0.594933 0.624612 0.50588
outer loop
vertex 141.288 63.9353 5
vertex 129.927 57.1158 0.0587931
vertex 135.789 56.182 8.10617
endloop
endfacet
facet normal -0.54989 -0.775331 0.310617
outer loop
vertex 135.789 56.182 8.10617
vertex 129.927 57.1158 0.0587931
vertex 135.876 50.8697 -5
endloop
endfacet
facet normal -0.586239 0.0933817 -0.804738
outer loop
vertex 129.927 57.1158 0.0587931
vertex 141.375 58.623 -8.10617
vertex 135.876 50.8697 -5
endloop
endfacet
facet normal -0.586239 0.0933805 -0.804738
outer loop
vertex 141.375 58.623 -8.10617
vertex 129.927 57.1158 0.0587931
vertex 135.426 64.8691 -3.04738
endloop
endfacet
facet normal 0.594933 -0.624613 -0.505879
outer loop
vertex 141.375 58.623 -8.10617
vertex 141.738 49.9359 3.04738
vertex 135.876 50.8697 -5
endloop
endfacet
facet normal 0.594933 -0.624613 -0.505879
outer loop
vertex 141.738 49.9359 3.04738
vertex 141.375 58.623 -8.10617
vertex 147.237 57.6892 -0.0587931
endloop
endfacet
facet normal -0.594933 0.624613 0.505879
outer loop
vertex 135.426 64.8691 -3.04738
vertex 129.927 57.1158 0.0587931
vertex 141.288 63.9353 5
endloop
endfacet
facet normal 0.57735 0.138071 0.804738
outer loop
vertex 117.896 111.432 -0.0881901
vertex 106.066 116.673 7.5
vertex 114.726 97.5305 4.57107
endloop
endfacet
facet normal -0.211325 -0.926746 0.310618
outer loop
vertex 114.726 97.5305 4.57107
vertex 94.2359 100.7 0.0881901
vertex 106.066 95.4594 -7.5
endloop
endfacet
facet normal 0.788675 -0.349396 -0.50588
outer loop
vertex 117.896 111.432 -0.0881901
vertex 106.066 95.4594 -7.5
vertex 109.236 109.361 -12.1593
endloop
endfacet
facet normal 0.57735 0.138071 0.804738
outer loop
vertex 106.066 116.673 7.5
vertex 102.896 102.771 12.1593
vertex 114.726 97.5305 4.57107
endloop
endfacet
facet normal -0.57735 -0.138071 -0.804738
outer loop
vertex 106.066 95.4594 -7.5
vertex 94.2359 100.7 0.0881901
vertex 109.236 109.361 -12.1593
endloop
endfacet
facet normal 0.788675 -0.349396 -0.505879
outer loop
vertex 114.726 97.5305 4.57107
vertex 106.066 95.4594 -7.5
vertex 117.896 111.432 -0.0881901
endloop
endfacet
facet normal -0.211325 -0.926746 0.310617
outer loop
vertex 102.896 102.771 12.1593
vertex 94.2359 100.7 0.0881901
vertex 114.726 97.5305 4.57107
endloop
endfacet
facet normal -0.788675 0.349396 0.505879
outer loop
vertex 94.2359 100.7 0.0881901
vertex 106.066 116.673 7.5
vertex 97.4058 114.602 -4.57107
endloop
endfacet
facet normal -0.788675 0.349396 0.505879
outer loop
vertex 106.066 116.673 7.5
vertex 94.2359 100.7 0.0881901
vertex 102.896 102.771 12.1593
endloop
endfacet
facet normal -0.57735 -0.138071 -0.804738
outer loop
vertex 109.236 109.361 -12.1593
vertex 94.2359 100.7 0.0881901
vertex 97.4058 114.602 -4.57107
endloop
endfacet
facet normal 0.211325 0.926746 -0.310617
outer loop
vertex 109.236 109.361 -12.1593
vertex 106.066 116.673 7.5
vertex 117.896 111.432 -0.0881901
endloop
endfacet
facet normal 0.211324 0.926746 -0.310617
outer loop
vertex 106.066 116.673 7.5
vertex 109.236 109.361 -12.1593
vertex 97.4058 114.602 -4.57107
endloop
endfacet
facet normal 0.480565 0.348504 0.804738
outer loop
vertex 69.2375 151.228 -0.117587
vertex 55.1788 132.906 16.2123
vertex 72.4258 132.486 6.09476
endloop
endfacet
facet normal 0.862349 -0.0209871 -0.505879
outer loop
vertex 72.4258 132.486 6.09476
vertex 59.6262 144.258 -16.2123
vertex 69.2375 151.228 -0.117587
endloop
endfacet
facet normal -0.159412 0.937073 -0.310617
outer loop
vertex 59.6262 144.258 -16.2123
vertex 51.9906 151.648 10
vertex 69.2375 151.228 -0.117587
endloop
endfacet
facet normal 0.480564 0.348504 0.804738
outer loop
vertex 69.2375 151.228 -0.117587
vertex 51.9906 151.648 10
vertex 55.1788 132.906 16.2123
endloop
endfacet
facet normal 0.159412 -0.937072 0.310617
outer loop
vertex 55.1788 132.906 16.2123
vertex 45.5675 125.936 0.117587
vertex 72.4258 132.486 6.09476
endloop
endfacet
facet normal -0.862349 0.0209871 0.505879
outer loop
vertex 51.9906 151.648 10
vertex 45.5675 125.936 0.117587
vertex 55.1788 132.906 16.2123
endloop
endfacet
facet normal -0.159412 0.937073 -0.310617
outer loop
vertex 59.6262 144.258 -16.2123
vertex 42.3793 144.677 -6.09476
vertex 51.9906 151.648 10
endloop
endfacet
facet normal 0.159412 -0.937072 0.310617
outer loop
vertex 72.4258 132.486 6.09476
vertex 45.5675 125.936 0.117587
vertex 62.8145 125.516 -10
endloop
endfacet
facet normal -0.480565 -0.348503 -0.804738
outer loop
vertex 45.5675 125.936 0.117587
vertex 59.6262 144.258 -16.2123
vertex 62.8145 125.516 -10
endloop
endfacet
facet normal -0.480565 -0.348503 -0.804738
outer loop
vertex 59.6262 144.258 -16.2123
vertex 45.5675 125.936 0.117587
vertex 42.3793 144.677 -6.09476
endloop
endfacet
facet normal -0.862349 0.020987 0.505879
outer loop
vertex 51.9906 151.648 10
vertex 42.3793 144.677 -6.09476
vertex 45.5675 125.936 0.117587
endloop
endfacet
facet normal 0.862349 -0.0209869 -0.505879
outer loop
vertex 62.8145 125.516 -10
vertex 59.6262 144.258 -16.2123
vertex 72.4258 132.486 6.09476
endloop
endfacet
facet normal 0.310617 0.505879 0.804738
outer loop
vertex 7.61845 170.265 -0.146983
vertex -12.5 162.5 12.5
vertex 20.2654 150.147 7.61845
endloop
endfacet
facet normal -0.505879 0.804738 -0.310617
outer loop
vertex -0.146983 157.618 -20.2654
vertex -20.2654 149.853 -7.61845
vertex -12.5 162.5 12.5
endloop
endfacet
facet normal 0.310617 0.505879 0.804738
outer loop
vertex 20.2654 150.147 7.61845
vertex -12.5 162.5 12.5
vertex 0.146983 142.382 20.2654
endloop
endfacet
facet normal -0.505879 0.804738 -0.310617
outer loop
vertex -0.146983 157.618 -20.2654
vertex -12.5 162.5 12.5
vertex 7.61845 170.265 -0.146983
endloop
endfacet
facet normal -0.310617 -0.505879 -0.804738
outer loop
vertex -7.61845 129.735 0.146983
vertex -0.146983 157.618 -20.2654
vertex 12.5 137.5 -12.5
endloop
endfacet
facet normal -0.310617 -0.505879 -0.804738
outer loop
vertex -0.146983 157.618 -20.2654
vertex -7.61845 129.735 0.146983
vertex -20.2654 149.853 -7.61845
endloop
endfacet
facet normal 0.50588 -0.804738 0.310617
outer loop
vertex -7.61845 129.735 0.146983
vertex 20.2654 150.147 7.61845
vertex 0.146983 142.382 20.2654
endloop
endfacet
facet normal 0.505879 -0.804738 0.310617
outer loop
vertex 20.2654 150.147 7.61845
vertex -7.61845 129.735 0.146983
vertex 12.5 137.5 -12.5
endloop
endfacet
facet normal 0.804738 0.310617 -0.505879
outer loop
vertex 20.2654 150.147 7.61845
vertex -0.146983 157.618 -20.2654
vertex 7.61845 170.265 -0.146983
endloop
endfacet
facet normal 0.804738 0.310617 -0.505879
outer loop
vertex -0.146983 157.618 -20.2654
vertex 20.2654 150.147 7.61845
vertex 12.5 137.5 -12.5
endloop
endfacet
facet normal -0.804738 -0.310617 0.505879
outer loop
vertex 0.146983 142.382 20.2654
vertex -20.2654 149.853 -7.61845
vertex -7.61845 129.735 0.146983
endloop
endfacet
facet normal -0.804738 -0.310617 0.505879
outer loop
vertex -12.5 162.5 12.5
vertex -20.2654 149.853 -7.61845
vertex 0.146983 142.382 20.2654
endloop
endfacet
facet normal 0.0933813 0.58624 0.804738
outer loop
vertex -35.0026 148.051 9.14214
vertex -58.2626 164.548 -0.17638
vertex -53.741 130.203 24.3185
endloop
endfacet
facet normal 0.624613 0.594933 -0.505879
outer loop
vertex -35.0026 148.051 9.14214
vertex -61.064 146.961 -24.3185
vertex -58.2626 164.548 -0.17638
endloop
endfacet
facet normal -0.775331 0.549889 -0.310617
outer loop
vertex -61.064 146.961 -24.3185
vertex -77.001 146.7 15
vertex -58.2626 164.548 -0.17638
endloop
endfacet
facet normal 0.0933812 0.58624 0.804738
outer loop
vertex -58.2626 164.548 -0.17638
vertex -77.001 146.7 15
vertex -53.741 130.203 24.3185
endloop
endfacet
facet normal 0.775331 -0.549889 0.310617
outer loop
vertex -35.0026 148.051 9.14214
vertex -53.741 130.203 24.3185
vertex -37.8041 130.464 -15
endloop
endfacet
facet normal -0.775331 0.549889 -0.310617
outer loop
vertex -61.064 146.961 -24.3185
vertex -79.8024 129.113 -9.14214
vertex -77.001 146.7 15
endloop
endfacet
facet normal -0.0933814 -0.58624 -0.804738
outer loop
vertex -56.5425 112.616 0.17638
vertex -79.8024 129.113 -9.14214
vertex -61.064 146.961 -24.3185
endloop
endfacet
facet normal 0.775331 -0.549889 0.310617
outer loop
vertex -53.741 130.203 24.3185
vertex -56.5425 112.616 0.17638
vertex -37.8041 130.464 -15
endloop
endfacet
facet normal -0.0933812 -0.58624 -0.804738
outer loop
vertex -56.5425 112.616 0.17638
vertex -61.064 146.961 -24.3185
vertex -37.8041 130.464 -15
endloop
endfacet
facet normal 0.624613 0.594933 -0.505879
outer loop
vertex -37.8041 130.464 -15
vertex -61.064 146.961 -24.3185
vertex -35.0026 148.051 9.14214
endloop
endfacet
facet normal -0.624613 -0.594933 0.505879
outer loop
vertex -53.741 130.203 24.3185
vertex -79.8024 129.113 -9.14214
vertex -56.5425 112.616 0.17638
endloop
endfacet
facet normal -0.624613 -0.594933 0.505879
outer loop
vertex -77.001 146.7 15
vertex -79.8024 129.113 -9.14214
vertex -53.741 130.203 24.3185
endloop
endfacet
facet normal -0.138071 0.57735 0.804738
outer loop
vertex -118.586 133.67 -0.205777
vertex -130.815 106.066 17.5
vertex -86.1498 126.273 10.6658
endloop
endfacet
facet normal -0.926746 0.211325 -0.310617
outer loop
vertex -125.982 85.8588 -10.6658
vertex -130.815 106.066 17.5
vertex -113.753 113.462 -28.3716
endloop
endfacet
facet normal -0.138071 0.57735 0.804738
outer loop
vertex -86.1498 126.273 10.6658
vertex -130.815 106.066 17.5
vertex -98.3786 98.6696 28.3716
endloop
endfacet
facet normal -0.926746 0.211325 -0.310617
outer loop
vertex -113.753 113.462 -28.3716
vertex -130.815 106.066 17.5
vertex -118.586 133.67 -0.205777
endloop
endfacet
facet normal 0.349396 0.788675 -0.505879
outer loop
vertex -81.3173 106.066 -17.5
vertex -118.586 133.67 -0.205777
vertex -86.1498 126.273 10.6658
endloop
endfacet
facet normal 0.349396 0.788675 -0.505879
outer loop
vertex -118.586 133.67 -0.205777
vertex -81.3173 106.066 -17.5
vertex -113.753 113.462 -28.3716
endloop
endfacet
facet normal 0.138071 -0.57735 -0.804738
outer loop
vertex -93.5461 78.4624 0.205777
vertex -113.753 113.462 -28.3716
vertex -81.3173 106.066 -17.5
endloop
endfacet
facet normal 0.138071 -0.57735 -0.804738
outer loop
vertex -113.753 113.462 -28.3716
vertex -93.5461 78.4624 0.205777
vertex -125.982 85.8588 -10.6658
endloop
endfacet
facet normal 0.926746 -0.211325 0.310617
outer loop
vertex -98.3786 98.6696 28.3716
vertex -81.3173 106.066 -17.5
vertex -86.1498 126.273 10.6658
endloop
endfacet
facet normal 0.926746 -0.211325 0.310617
outer loop
vertex -81.3173 106.066 -17.5
vertex -98.3786 98.6696 28.3716
vertex -93.5461 78.4624 0.205777
endloop
endfacet
facet normal -0.349396 -0.788675 0.505879
outer loop
vertex -98.3786 98.6696 28.3716
vertex -125.982 85.8588 -10.6658
vertex -93.5461 78.4624 0.205777
endloop
endfacet
facet normal -0.349396 -0.788675 0.505879
outer loop
vertex -98.3786 98.6696 28.3716
vertex -130.815 106.066 17.5
vertex -125.982 85.8588 -10.6658
endloop
endfacet
facet normal -0.348503 0.480565 0.804738
outer loop
vertex -163.874 81.0725 -0.235174
vertex -164.713 46.5786 20
vertex -126.391 87.449 12.1895
endloop
endfacet
facet normal 0.937072 0.159412 0.310617
outer loop
vertex -126.391 87.449 12.1895
vertex -127.23 52.9551 32.4247
vertex -113.29 33.7325 0.235174
endloop
endfacet
facet normal -0.937072 -0.159412 -0.310617
outer loop
vertex -150.773 27.356 -12.1895
vertex -164.713 46.5786 20
vertex -149.934 61.85 -32.4247
endloop
endfacet
facet normal -0.348503 0.480565 0.804738
outer loop
vertex -126.391 87.449 12.1895
vertex -164.713 46.5786 20
vertex -127.23 52.9551 32.4247
endloop
endfacet
facet normal -0.937072 -0.159412 -0.310617
outer loop
vertex -149.934 61.85 -32.4247
vertex -164.713 46.5786 20
vertex -163.874 81.0725 -0.235174
endloop
endfacet
facet normal 0.0209869 0.862349 -0.505879
outer loop
vertex -149.934 61.85 -32.4247
vertex -163.874 81.0725 -0.235174
vertex -126.391 87.449 12.1895
endloop
endfacet
facet normal -0.0209869 -0.862349 0.505879
outer loop
vertex -127.23 52.9551 32.4247
vertex -164.713 46.5786 20
vertex -150.773 27.356 -12.1895
endloop
endfacet
facet normal -0.0209869 -0.862349 0.505879
outer loop
vertex -127.23 52.9551 32.4247
vertex -150.773 27.356 -12.1895
vertex -113.29 33.7325 0.235174
endloop
endfacet
facet normal 0.348504 -0.480565 -0.804738
outer loop
vertex -112.451 68.2264 -20
vertex -150.773 27.356 -12.1895
vertex -149.934 61.85 -32.4247
endloop
endfacet
facet normal 0.0209869 0.862349 -0.505879
outer loop
vertex -112.451 68.2264 -20
vertex -149.934 61.85 -32.4247
vertex -126.391 87.449 12.1895
endloop
endfacet
facet normal 0.348504 -0.480565 -0.804738
outer loop
vertex -113.29 33.7325 0.235174
vertex -150.773 27.356 -12.1895
vertex -112.451 68.2264 -20
endloop
endfacet
facet normal 0.937072 0.159412 0.310617
outer loop
vertex -112.451 68.2264 -20
vertex -126.391 87.449 12.1895
vertex -113.29 33.7325 0.235174
endloop
endfacet
facet normal -0.505879 0.310617 0.804738
outer loop
vertex -150.265 36.4778 13.7132
vertex -186.478 13.7132 -0.264571
vertex -172.5 -22.5 22.5
endloop
endfacet
facet normal 0.804738 0.505879 0.310617
outer loop
vertex -113.522 -13.7132 0.264571
vertex -150.265 36.4778 13.7132
vertex -136.287 0.264571 36.4778
endloop
endfacet
facet normal 0.804738 0.505879 0.310617
outer loop
vertex -150.265 36.4778 13.7132
vertex -113.522 -13.7132 0.264571
vertex -127.5 22.5 -22.5
endloop
endfacet
facet normal -0.804738 -0.505879 -0.310617
outer loop
vertex -149.735 -36.4778 -13.7132
vertex -172.5 -22.5 22.5
vertex -163.713 -0.264571 -36.4778
endloop
endfacet
facet normal -0.505879 0.310617 0.804738
outer loop
vertex -150.265 36.4778 13.7132
vertex -172.5 -22.5 22.5
vertex -136.287 0.264571 36.4778
endloop
endfacet
facet normal -0.804738 -0.505879 -0.310617
outer loop
vertex -172.5 -22.5 22.5
vertex -186.478 13.7132 -0.264571
vertex -163.713 -0.264571 -36.4778
endloop
endfacet
facet normal -0.310617 0.804738 -0.505879
outer loop
vertex -163.713 -0.264571 -36.4778
vertex -150.265 36.4778 13.7132
vertex -127.5 22.5 -22.5
endloop
endfacet
facet normal -0.310617 0.804738 -0.505879
outer loop
vertex -150.265 36.4778 13.7132
vertex -163.713 -0.264571 -36.4778
vertex -186.478 13.7132 -0.264571
endloop
endfacet
facet normal 0.505879 -0.310617 -0.804738
outer loop
vertex -163.713 -0.264571 -36.4778
vertex -113.522 -13.7132 0.264571
vertex -149.735 -36.4778 -13.7132
endloop
endfacet
facet normal 0.505879 -0.310617 -0.804738
outer loop
vertex -113.522 -13.7132 0.264571
vertex -163.713 -0.264571 -36.4778
vertex -127.5 22.5 -22.5
endloop
endfacet
facet normal 0.310617 -0.804738 0.505879
outer loop
vertex -136.287 0.264571 36.4778
vertex -149.735 -36.4778 -13.7132
vertex -113.522 -13.7132 0.264571
endloop
endfacet
facet normal 0.310617 -0.804738 0.505879
outer loop
vertex -136.287 0.264571 36.4778
vertex -172.5 -22.5 22.5
vertex -149.735 -36.4778 -13.7132
endloop
endfacet
endsolid OpenSCAD_Model
;; this example could go a lot of different directions
;; you could bind the difference between the min cube size and max cube size to an interval and extrude N objects over the distance between 0 and PI.
;; lots of other cool parametric things are possible before the code gets translated.
;; bring primitives into namespace or whatever
(ns scad-demo.core
(:require [scad-clj.scad :refer :all]
[scad-clj.model :refer :all]))
;; make primitives
;; change this to union M objects within range (A, B) with an increment size calculation function, by default increment
;; adding a constant fraction (/ (- B A) M) but allow for customization
;; if extruding over a fraction of pi, then (A, B) is constrained by (0 <= a < b < 2) or (0 < a < b <= 2) depending on your preference.
;; to keep things simple lets focus on generating M objects into the union function
(defn cube-instance [a b c]
(->> (rotate (* Math/PI (/ a b)) [0 0 1])
(->> (cube c c c)
(rotate (/ Math/PI 4) [1 1 1])
(translate [150 0 0]))
))
(defn render-range [size size-inc bottom range-inc top objects]
(print objects)
(newline)
(print cube-instance bottom top size)
(newline)
(newline)
(if (<= bottom top)
(render-range (+ size size-inc) size-inc (+ bottom range-inc) range-inc top (concat objects [(cube-instance bottom top size)]))
[objects]))
(def primitives
(union
;(render-range 5 5 0 1 4 [])
(render-range 1 1 0 1 64 [])
)
)
;; export to scad
(spit "scad/example.scad" (write-scad primitives))
union () {
rotate (a=0.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([1, 1, 1], center=true);
}
}
}
rotate (a=2.8125, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([2, 2, 2], center=true);
}
}
}
rotate (a=5.625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([3, 3, 3], center=true);
}
}
}
rotate (a=8.4375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([4, 4, 4], center=true);
}
}
}
rotate (a=11.25, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([5, 5, 5], center=true);
}
}
}
rotate (a=14.0625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([6, 6, 6], center=true);
}
}
}
rotate (a=16.875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([7, 7, 7], center=true);
}
}
}
rotate (a=19.6875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([8, 8, 8], center=true);
}
}
}
rotate (a=22.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([9, 9, 9], center=true);
}
}
}
rotate (a=25.312499999999996, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([10, 10, 10], center=true);
}
}
}
rotate (a=28.125, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([11, 11, 11], center=true);
}
}
}
rotate (a=30.937499999999996, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([12, 12, 12], center=true);
}
}
}
rotate (a=33.75, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([13, 13, 13], center=true);
}
}
}
rotate (a=36.56250000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([14, 14, 14], center=true);
}
}
}
rotate (a=39.375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([15, 15, 15], center=true);
}
}
}
rotate (a=42.18749999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([16, 16, 16], center=true);
}
}
}
rotate (a=45.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([17, 17, 17], center=true);
}
}
}
rotate (a=47.81250000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([18, 18, 18], center=true);
}
}
}
rotate (a=50.62499999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([19, 19, 19], center=true);
}
}
}
rotate (a=53.43749999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([20, 20, 20], center=true);
}
}
}
rotate (a=56.25, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([21, 21, 21], center=true);
}
}
}
rotate (a=59.06250000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([22, 22, 22], center=true);
}
}
}
rotate (a=61.87499999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([23, 23, 23], center=true);
}
}
}
rotate (a=64.6875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([24, 24, 24], center=true);
}
}
}
rotate (a=67.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([25, 25, 25], center=true);
}
}
}
rotate (a=70.3125, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([26, 26, 26], center=true);
}
}
}
rotate (a=73.12500000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([27, 27, 27], center=true);
}
}
}
rotate (a=75.9375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([28, 28, 28], center=true);
}
}
}
rotate (a=78.75, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([29, 29, 29], center=true);
}
}
}
rotate (a=81.5625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([30, 30, 30], center=true);
}
}
}
rotate (a=84.37499999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([31, 31, 31], center=true);
}
}
}
rotate (a=87.1875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([32, 32, 32], center=true);
}
}
}
rotate (a=90.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([33, 33, 33], center=true);
}
}
}
rotate (a=92.81250000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([34, 34, 34], center=true);
}
}
}
rotate (a=95.62500000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([35, 35, 35], center=true);
}
}
}
rotate (a=98.4375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([36, 36, 36], center=true);
}
}
}
rotate (a=101.24999999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([37, 37, 37], center=true);
}
}
}
rotate (a=104.0625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([38, 38, 38], center=true);
}
}
}
rotate (a=106.87499999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([39, 39, 39], center=true);
}
}
}
rotate (a=109.68749999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([40, 40, 40], center=true);
}
}
}
rotate (a=112.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([41, 41, 41], center=true);
}
}
}
rotate (a=115.31249999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([42, 42, 42], center=true);
}
}
}
rotate (a=118.12500000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([43, 43, 43], center=true);
}
}
}
rotate (a=120.9375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([44, 44, 44], center=true);
}
}
}
rotate (a=123.74999999999999, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([45, 45, 45], center=true);
}
}
}
rotate (a=126.56250000000001, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([46, 46, 46], center=true);
}
}
}
rotate (a=129.375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([47, 47, 47], center=true);
}
}
}
rotate (a=132.1875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([48, 48, 48], center=true);
}
}
}
rotate (a=135.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([49, 49, 49], center=true);
}
}
}
rotate (a=137.81249999999997, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([50, 50, 50], center=true);
}
}
}
rotate (a=140.625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([51, 51, 51], center=true);
}
}
}
rotate (a=143.4375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([52, 52, 52], center=true);
}
}
}
rotate (a=146.25000000000003, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([53, 53, 53], center=true);
}
}
}
rotate (a=149.0625, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([54, 54, 54], center=true);
}
}
}
rotate (a=151.875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([55, 55, 55], center=true);
}
}
}
rotate (a=154.6875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([56, 56, 56], center=true);
}
}
}
rotate (a=157.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([57, 57, 57], center=true);
}
}
}
rotate (a=160.3125, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([58, 58, 58], center=true);
}
}
}
rotate (a=163.125, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([59, 59, 59], center=true);
}
}
}
rotate (a=165.9375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([60, 60, 60], center=true);
}
}
}
rotate (a=168.74999999999997, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([61, 61, 61], center=true);
}
}
}
rotate (a=171.56249999999997, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([62, 62, 62], center=true);
}
}
}
rotate (a=174.375, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([63, 63, 63], center=true);
}
}
}
rotate (a=177.1875, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([64, 64, 64], center=true);
}
}
}
rotate (a=180.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([65, 65, 65], center=true);
}
}
}
}
union () {
rotate (a=0.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([5, 5, 5], center=true);
}
}
}
rotate (a=22.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([10, 10, 10], center=true);
}
}
}
rotate (a=45.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([15, 15, 15], center=true);
}
}
}
rotate (a=67.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([20, 20, 20], center=true);
}
}
}
rotate (a=90.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([25, 25, 25], center=true);
}
}
}
rotate (a=112.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([30, 30, 30], center=true);
}
}
}
rotate (a=135.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([35, 35, 35], center=true);
}
}
}
rotate (a=157.5, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([40, 40, 40], center=true);
}
}
}
rotate (a=180.0, v=[0, 0, 1]) {
translate ([150, 0, 0]) {
rotate (a=45.0, v=[1, 1, 1]) {
cube ([45, 45, 45], center=true);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment