dragon_foot.scad
1 use <along_with.scad> 2 use <dragon_scales.scad> 3 use <dragon_claw.scad> 4 5 module knee() { 6 $fn = 4; 7 scale([1,0.85, 1]) union() { 8 knee_scales(75, 2.5, 4.25, -4, 1.25); 9 knee_scales(100, 1.25, 4.5, -7, 1); 10 knee_scales(110, 1.25, 3, -9, 1); 11 knee_scales(120, 2.5, 2, -9, 1); 12 } 13 } 14 15 module foot() { 16 upper_arm_r = 3.6; 17 lower_arm_r = 2.7; 18 arm_fn = 6; 19 scale_fn = 4; 20 scale_tilt_a = 6; 21 22 upper_arm_path = [[.5, 1, 10], [1.25, 6.25, 11.25], [2, 11.5, 12.5], [2, 16.75, 13.75], [1.9, 20, 14.25]]; 23 lower_arm_path = [[2, 22, 14], [3.5, 21, 10], [4.5, 20.3, 7]]; 24 25 upper_arm_scale_data = one_body_scale(upper_arm_r, arm_fn, scale_fn, scale_tilt_a); 26 lower_arm_scale_data = one_body_scale(lower_arm_r, arm_fn, scale_fn, scale_tilt_a); 27 28 along_with(upper_arm_path, scale = 0.75, method = "EULER_ANGLE") 29 rotate([-90, 0, 0]) 30 dragon_body_scales(upper_arm_r, arm_fn, upper_arm_scale_data); 31 32 along_with(lower_arm_path, scale = 0.7, method = "EULER_ANGLE") 33 rotate([-90, 0, 0]) 34 dragon_body_scales(lower_arm_r, arm_fn, lower_arm_scale_data); 35 36 translate([2.25, 14.5, 12.75]) 37 scale([0.7, 1.15, .8]) 38 rotate([108, 9, 1]) 39 knee(); 40 41 translate([6.4, 18.95, .25]) 42 rotate([11, 13, 185]) 43 scale([1.2, 1.2, 1.2]) 44 dragon_claw(); 45 }