Skip to content

Instantly share code, notes, and snippets.

@robbintt
Last active December 31, 2017 00:37
Show Gist options
  • Save robbintt/768747b31b8896feb1ac9b3eeafda97a to your computer and use it in GitHub Desktop.
Save robbintt/768747b31b8896feb1ac9b3eeafda97a to your computer and use it in GitHub Desktop.
Some simple transformations of a cube, generalizing this stuff to make an 'augur' or 'grid' of objects would be fun.
Display the source blob
Display the rendered blob
Raw
solid OpenSCAD_Model
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 0.293968 -40.5309 15.2369
vertex -40.5309 15.2369 0.293968
vertex -25 -25 -25
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex -40.5309 15.2369 0.293968
vertex 0.293968 -40.5309 15.2369
vertex -15.2369 -0.293968 40.5309
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex -15.2369 -0.293968 40.5309
vertex 40.5309 -15.2369 -0.293968
vertex 25 25 25
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 40.5309 -15.2369 -0.293968
vertex -15.2369 -0.293968 40.5309
vertex 0.293968 -40.5309 15.2369
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 40.5309 -15.2369 -0.293968
vertex -0.293968 40.5309 -15.2369
vertex 25 25 25
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex -0.293968 40.5309 -15.2369
vertex 40.5309 -15.2369 -0.293968
vertex 15.2369 0.293968 -40.5309
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex -40.5309 15.2369 0.293968
vertex 15.2369 0.293968 -40.5309
vertex -25 -25 -25
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 15.2369 0.293968 -40.5309
vertex -40.5309 15.2369 0.293968
vertex -0.293968 40.5309 -15.2369
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 15.2369 0.293968 -40.5309
vertex 0.293968 -40.5309 15.2369
vertex -25 -25 -25
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 0.293968 -40.5309 15.2369
vertex 15.2369 0.293968 -40.5309
vertex 40.5309 -15.2369 -0.293968
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex -0.293968 40.5309 -15.2369
vertex -15.2369 -0.293968 40.5309
vertex 25 25 25
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex -15.2369 -0.293968 40.5309
vertex -0.293968 40.5309 -15.2369
vertex -40.5309 15.2369 0.293968
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 80.7678 10.0571 -15.8248
vertex 39.9429 65.8248 -30.7678
vertex 55.4738 25.5879 -56.0617
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 39.9429 65.8248 -30.7678
vertex 80.7678 10.0571 -15.8248
vertex 65.2369 50.294 9.46914
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 65.2369 50.294 9.46914
vertex 121.005 35.351 -31.3557
vertex 105.474 75.5879 -6.06172
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 121.005 35.351 -31.3557
vertex 65.2369 50.294 9.46914
vertex 80.7678 10.0571 -15.8248
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 121.005 35.351 -31.3557
vertex 80.1798 91.1188 -46.2986
vertex 105.474 75.5879 -6.06172
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 80.1798 91.1188 -46.2986
vertex 121.005 35.351 -31.3557
vertex 95.7107 50.8819 -71.5926
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 39.9429 65.8248 -30.7678
vertex 95.7107 50.8819 -71.5926
vertex 55.4738 25.5879 -56.0617
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 95.7107 50.8819 -71.5926
vertex 39.9429 65.8248 -30.7678
vertex 80.1798 91.1188 -46.2986
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 95.7107 50.8819 -71.5926
vertex 80.7678 10.0571 -15.8248
vertex 55.4738 25.5879 -56.0617
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 80.7678 10.0571 -15.8248
vertex 95.7107 50.8819 -71.5926
vertex 121.005 35.351 -31.3557
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 80.1798 91.1188 -46.2986
vertex 65.2369 50.294 9.46914
vertex 105.474 75.5879 -6.06172
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 65.2369 50.294 9.46914
vertex 80.1798 91.1188 -46.2986
vertex 39.9429 65.8248 -30.7678
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex -30.7678 39.9429 65.8248
vertex -71.5926 95.7107 50.8819
vertex -56.0617 55.4738 25.5879
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex -71.5926 95.7107 50.8819
vertex -30.7678 39.9429 65.8248
vertex -46.2986 80.1798 91.1188
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex -46.2986 80.1798 91.1188
vertex 9.46914 65.2369 50.294
vertex -6.06172 105.474 75.5879
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 9.46914 65.2369 50.294
vertex -46.2986 80.1798 91.1188
vertex -30.7678 39.9429 65.8248
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 9.46914 65.2369 50.294
vertex -31.3557 121.005 35.351
vertex -6.06172 105.474 75.5879
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex -31.3557 121.005 35.351
vertex 9.46914 65.2369 50.294
vertex -15.8248 80.7678 10.0571
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex -71.5926 95.7107 50.8819
vertex -15.8248 80.7678 10.0571
vertex -56.0617 55.4738 25.5879
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex -15.8248 80.7678 10.0571
vertex -71.5926 95.7107 50.8819
vertex -31.3557 121.005 35.351
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex -15.8248 80.7678 10.0571
vertex -30.7678 39.9429 65.8248
vertex -56.0617 55.4738 25.5879
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex -30.7678 39.9429 65.8248
vertex -15.8248 80.7678 10.0571
vertex 9.46914 65.2369 50.294
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex -31.3557 121.005 35.351
vertex -46.2986 80.1798 91.1188
vertex -6.06172 105.474 75.5879
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex -46.2986 80.1798 91.1188
vertex -31.3557 121.005 35.351
vertex -71.5926 95.7107 50.8819
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 50.8819 -71.5926 95.7107
vertex 10.0571 -15.8248 80.7678
vertex 25.5879 -56.0617 55.4738
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 10.0571 -15.8248 80.7678
vertex 50.8819 -71.5926 95.7107
vertex 35.351 -31.3557 121.005
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 35.351 -31.3557 121.005
vertex 91.1188 -46.2986 80.1798
vertex 75.5879 -6.06172 105.474
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 91.1188 -46.2986 80.1798
vertex 35.351 -31.3557 121.005
vertex 50.8819 -71.5926 95.7107
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 91.1188 -46.2986 80.1798
vertex 50.294 9.46914 65.2369
vertex 75.5879 -6.06172 105.474
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 50.294 9.46914 65.2369
vertex 91.1188 -46.2986 80.1798
vertex 65.8248 -30.7678 39.9429
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 10.0571 -15.8248 80.7678
vertex 65.8248 -30.7678 39.9429
vertex 25.5879 -56.0617 55.4738
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 65.8248 -30.7678 39.9429
vertex 10.0571 -15.8248 80.7678
vertex 50.294 9.46914 65.2369
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 65.8248 -30.7678 39.9429
vertex 50.8819 -71.5926 95.7107
vertex 25.5879 -56.0617 55.4738
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 50.8819 -71.5926 95.7107
vertex 65.8248 -30.7678 39.9429
vertex 91.1188 -46.2986 80.1798
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 50.294 9.46914 65.2369
vertex 35.351 -31.3557 121.005
vertex 75.5879 -6.06172 105.474
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 35.351 -31.3557 121.005
vertex 50.294 9.46914 65.2369
vertex 10.0571 -15.8248 80.7678
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 49.706 90.5309 34.7631
vertex 8.8812 146.299 19.8202
vertex 24.4121 106.062 -5.47379
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 8.8812 146.299 19.8202
vertex 49.706 90.5309 34.7631
vertex 34.1752 130.768 60.0571
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 34.1752 130.768 60.0571
vertex 89.9429 115.825 19.2322
vertex 74.4121 156.062 44.5262
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 89.9429 115.825 19.2322
vertex 34.1752 130.768 60.0571
vertex 49.706 90.5309 34.7631
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 89.9429 115.825 19.2322
vertex 49.1181 171.593 4.28932
vertex 74.4121 156.062 44.5262
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 49.1181 171.593 4.28932
vertex 89.9429 115.825 19.2322
vertex 64.649 131.356 -21.0046
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 8.8812 146.299 19.8202
vertex 64.649 131.356 -21.0046
vertex 24.4121 106.062 -5.47379
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 64.649 131.356 -21.0046
vertex 8.8812 146.299 19.8202
vertex 49.1181 171.593 4.28932
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 64.649 131.356 -21.0046
vertex 49.706 90.5309 34.7631
vertex 24.4121 106.062 -5.47379
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 49.706 90.5309 34.7631
vertex 64.649 131.356 -21.0046
vertex 89.9429 115.825 19.2322
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 49.1181 171.593 4.28932
vertex 34.1752 130.768 60.0571
vertex 74.4121 156.062 44.5262
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 34.1752 130.768 60.0571
vertex 49.1181 171.593 4.28932
vertex 8.8812 146.299 19.8202
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 19.8202 8.8812 146.299
vertex -21.0046 64.649 131.356
vertex -5.47379 24.4121 106.062
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex -21.0046 64.649 131.356
vertex 19.8202 8.8812 146.299
vertex 4.28932 49.1181 171.593
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 4.28932 49.1181 171.593
vertex 60.0571 34.1752 130.768
vertex 44.5262 74.4121 156.062
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 60.0571 34.1752 130.768
vertex 4.28932 49.1181 171.593
vertex 19.8202 8.8812 146.299
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 60.0571 34.1752 130.768
vertex 19.2322 89.9429 115.825
vertex 44.5262 74.4121 156.062
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 19.2322 89.9429 115.825
vertex 60.0571 34.1752 130.768
vertex 34.7631 49.706 90.5309
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 19.2322 89.9429 115.825
vertex 4.28932 49.1181 171.593
vertex 44.5262 74.4121 156.062
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 4.28932 49.1181 171.593
vertex 19.2322 89.9429 115.825
vertex -21.0046 64.649 131.356
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex -21.0046 64.649 131.356
vertex 34.7631 49.706 90.5309
vertex -5.47379 24.4121 106.062
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 34.7631 49.706 90.5309
vertex -21.0046 64.649 131.356
vertex 19.2322 89.9429 115.825
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 34.7631 49.706 90.5309
vertex 19.8202 8.8812 146.299
vertex -5.47379 24.4121 106.062
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 19.8202 8.8812 146.299
vertex 34.7631 49.706 90.5309
vertex 60.0571 34.1752 130.768
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 131.356 -21.0046 64.649
vertex 90.5309 34.7631 49.706
vertex 106.062 -5.47379 24.4121
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 90.5309 34.7631 49.706
vertex 131.356 -21.0046 64.649
vertex 115.825 19.2322 89.9429
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 115.825 19.2322 89.9429
vertex 171.593 4.28932 49.1181
vertex 156.062 44.5262 74.4121
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 171.593 4.28932 49.1181
vertex 115.825 19.2322 89.9429
vertex 131.356 -21.0046 64.649
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 171.593 4.28932 49.1181
vertex 130.768 60.0571 34.1752
vertex 156.062 44.5262 74.4121
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 130.768 60.0571 34.1752
vertex 171.593 4.28932 49.1181
vertex 146.299 19.8202 8.8812
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 130.768 60.0571 34.1752
vertex 115.825 19.2322 89.9429
vertex 156.062 44.5262 74.4121
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 115.825 19.2322 89.9429
vertex 130.768 60.0571 34.1752
vertex 90.5309 34.7631 49.706
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 90.5309 34.7631 49.706
vertex 146.299 19.8202 8.8812
vertex 106.062 -5.47379 24.4121
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 146.299 19.8202 8.8812
vertex 90.5309 34.7631 49.706
vertex 130.768 60.0571 34.1752
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 146.299 19.8202 8.8812
vertex 131.356 -21.0046 64.649
vertex 106.062 -5.47379 24.4121
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 131.356 -21.0046 64.649
vertex 146.299 19.8202 8.8812
vertex 171.593 4.28932 49.1181
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 100.294 59.4691 115.237
vertex 59.4691 115.237 100.294
vertex 75 75 75
endloop
endfacet
facet normal -0.804738 -0.505879 0.310617
outer loop
vertex 59.4691 115.237 100.294
vertex 100.294 59.4691 115.237
vertex 84.7631 99.706 140.531
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 84.7631 99.706 140.531
vertex 140.531 84.7631 99.706
vertex 125 125 125
endloop
endfacet
facet normal 0.505879 -0.310617 0.804738
outer loop
vertex 140.531 84.7631 99.706
vertex 84.7631 99.706 140.531
vertex 100.294 59.4691 115.237
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 140.531 84.7631 99.706
vertex 99.706 140.531 84.7631
vertex 125 125 125
endloop
endfacet
facet normal 0.804738 0.505879 -0.310617
outer loop
vertex 99.706 140.531 84.7631
vertex 140.531 84.7631 99.706
vertex 115.237 100.294 59.4691
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 59.4691 115.237 100.294
vertex 115.237 100.294 59.4691
vertex 75 75 75
endloop
endfacet
facet normal -0.505879 0.310617 -0.804738
outer loop
vertex 115.237 100.294 59.4691
vertex 59.4691 115.237 100.294
vertex 99.706 140.531 84.7631
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 115.237 100.294 59.4691
vertex 100.294 59.4691 115.237
vertex 75 75 75
endloop
endfacet
facet normal 0.310617 -0.804738 -0.505879
outer loop
vertex 100.294 59.4691 115.237
vertex 115.237 100.294 59.4691
vertex 140.531 84.7631 99.706
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 99.706 140.531 84.7631
vertex 84.7631 99.706 140.531
vertex 125 125 125
endloop
endfacet
facet normal -0.310617 0.804738 0.505879
outer loop
vertex 84.7631 99.706 140.531
vertex 99.706 140.531 84.7631
vertex 59.4691 115.237 100.294
endloop
endfacet
endsolid OpenSCAD_Model
;; bring primitives into namespace or whatever
(ns scad-demo.core
(:require [scad-clj.scad :refer :all]
[scad-clj.model :refer :all]))
(def c 50)
(def d 100)
(defn translate-primitive [prim x y z]
(->> prim
(translate [x y z])))
; render all 0->d translations between [0 0 0] and [d d d]
; generalize this concept a bit more before implementing fully
; would be nice to get all [-d, 0, d] values
; also would be nice to stretch in multiples of d
; also you can translate and offset this object
(defn all-translations [prim d results]
; use case and recursion to follow all branches?
; the "d d d" needs altered per branch...
(all-translations prim d (concat objects [(translate-primitive prim d d d)]))
)
(def primitives
(->>
(union
;(all-translations (cube c c c) d [])
(translate-primitive (cube c c c) 0 0 0)
(translate-primitive (cube c c c) d 0 0)
(translate-primitive (cube c c c) 0 d 0)
(translate-primitive (cube c c c) 0 0 d)
(translate-primitive (cube c c c) d d 0)
(translate-primitive (cube c c c) 0 d d)
(translate-primitive (cube c c c) d 0 d)
(translate-primitive (cube c c c) d d d)
)
(rotate (/ Math/PI 4) [1 1 1])
))
;; export to scad
(spit "scad/example.scad" (write-scad primitives))
rotate (a=45.0, v=[1, 1, 1]) {
union () {
translate ([0, 0, 0]) {
cube ([50, 50, 50], center=true);
}
translate ([100, 0, 0]) {
cube ([50, 50, 50], center=true);
}
translate ([0, 100, 0]) {
cube ([50, 50, 50], center=true);
}
translate ([0, 0, 100]) {
cube ([50, 50, 50], center=true);
}
translate ([100, 100, 0]) {
cube ([50, 50, 50], center=true);
}
translate ([0, 100, 100]) {
cube ([50, 50, 50], center=true);
}
translate ([100, 0, 100]) {
cube ([50, 50, 50], center=true);
}
translate ([100, 100, 100]) {
cube ([50, 50, 50], center=true);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment