Last active
July 1, 2020 18:29
-
-
Save idcrook/1eef0fa371d356a3791ebc5f7ea2598b to your computer and use it in GitHub Desktop.
Improved version of attempt at reverse engineering Xcode 12 Instruments icon, modeled in OpenSCAD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Reverse-engineer model an Xcode 12 Instruments icon mesh in OpenSCAD | |
// [email protected] | |
// Inspired to create by | |
// https://twitter.com/edwardsanchez/status/1278152030645698560 | |
// Turn on Animate in App menu bar | |
// [x] Check Dump Pictures | |
// - creates files in sequence frame00000.png | |
// - Select FPS: 12 and Steps: 60 | |
// | |
// Time ($t) sweeps from 0.0 to 1.0 | |
size = 100; | |
// https://openscadsnippetpad.blogspot.com/2017/06/figure-eight-path.html | |
function figure8(m=size)=[for(t=[0:1:360]) | |
let(scale = 2 / (3 - cos(2*t)),x =m* scale * cos(t),y =m* scale * sin(2*t) / 2) | |
[x,y]]; | |
function close(p)= concat(p,[p[0]]); | |
module polyline(p) {for(i=[0:max(0,len(p)-2)])line(p[i],p[i+1]);} | |
module line(p1, p2, width=(size/7)/2.0) | |
{ | |
hull() { | |
translate(p1) sphere(width); | |
translate(p2) sphere(width); | |
} | |
} | |
module one_symbol() { | |
polyline(close(figure8(size/2))); | |
} | |
module assembly2 () { | |
x_off = 16.5; | |
z_off = 23; | |
translate([-x_off,0,0]) | |
//rotate([45/2 , 90 + 30, 45/2]) | |
rotate([0 , 90 + 30, 0]) | |
rotate([0 , 0, -15]) | |
one_symbol(); | |
translate([x_off,0,0]) | |
rotate([0, -(90 + 30), 0]) | |
rotate([0 , 0, -15]) | |
one_symbol(); | |
translate([0,0,-z_off]) | |
rotate([0 , 0, -15]) | |
rotate([0 , 0, 0]) | |
one_symbol(); | |
} | |
show_assembly = true; | |
// $preview requires version 2019.05 | |
fn = $preview ? 30 : 100; | |
// can only _assign_ viewpoint variables at top-level | |
$vpt = [0,0,0]; | |
$vpr = [90, 0, $t * 360]; // rotate viewpoint | |
$vpd = 415; | |
if (show_assembly) { | |
scale ([1.0,1.0,1.0]) | |
translate([0,0,0]) | |
rotate([0,0,0]) | |
assembly2(); | |
} else { | |
scale ([1.0,1.0,1.0]) | |
translate([0,0,0]) | |
rotate([0,0,0]) | |
one_symbol(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -x | |
# ImageMagick has these utilities | |
convert 'frame000*.png' -set delay 1x24 animated.gif | |
convert animated.gif -scale 25% animated_25pct.gif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment