Index: smd_leg.fawk =================================================================== --- smd_leg.fawk (revision 38314) +++ smd_leg.fawk (revision 38315) @@ -25,25 +25,25 @@ function main(ARGV) { -length_total = "2.0"; thickness = "0.3"; outer_dia = "0.8"; height = "1.0"; width = "0.4"; -bend_angle = "15.0"; -bend_start = "0.75"; +bend_angle = "23.0"; +leg1_length = "0.75"; +leg2_length = "1.5"; -leg1 = translate(0,0,0,cube(bend_start,thickness,width)); +leg1 = translate(0,0,0,cube(leg1_length,thickness,width)); diag_length = (height-outer_dia+outer_dia/2*sin(bend_angle/180*3.14159265359)+(outer_dia/2-thickness)*sin(bend_angle/180*3.14159265359))/cos(bend_angle/180*3.14159265359); -bend_shift = diag_length*sin(bend_angle/180*3.14159265359)-(1-cos(bend_angle/180*3.14159265359))*(outer_dia/2-thickness)-(1-cos(bend_angle/180*3.14159265359))*outer_dia/2; +bend_shift = diag_length*sin(bend_angle/180*3.14159265359)+cos(bend_angle/180*3.14159265359)*(outer_dia/2-thickness)-(1-cos(bend_angle/180*3.14159265359))*outer_dia/2; -leg3 = translate(length_total-bend_start+bend_shift,height-thickness,0,cube(bend_start,thickness,width)); +leg3 = translate(leg1_length+outer_dia/2+bend_shift,height-thickness,0,cube(leg2_length,thickness,width)); -leg2 = translate(bend_start,outer_dia/2,0,rotate(0,0,-bend_angle,translate(outer_dia/2-thickness,0,0,cube(thickness,diag_length,width)))); +leg2 = translate(leg1_length,outer_dia/2,0,rotate(0,0,-bend_angle,translate(outer_dia/2-thickness,0,0,cube(thickness,diag_length,width)))); -knee1 = translate(bend_start,outer_dia/2,0,knee_arc(outer_dia, thickness, width, bend_angle)); -knee2 = translate(length_total-bend_start+bend_shift,height-outer_dia/2,0,rotate(0,0,180, knee_arc(outer_dia, thickness, width, bend_angle))); +knee1 = translate(leg1_length,outer_dia/2,0,knee_arc(outer_dia, thickness, width, bend_angle)); +knee2 = translate(leg1_length+outer_dia/2+bend_shift,height-outer_dia/2,0,rotate(0,0,180, knee_arc(outer_dia, thickness, width, bend_angle))); commit(color(1, 0, 0, o_fn(30,rough_tin(union(leg1, knee1, leg2, knee2, leg3))))); }