Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use <../libs/triangles.scad>;
- exhaust_x = 3; // excluding standoff
- exhaust_y = 10;
- exhaust_z = 33;
- exhaust_standoff = 1;
- exhaust_notch_z = 2;
- exhaust_notch_spacing = 1.5;
- exhaust_notch_height = 28;
- cylinder_faces = 20;
- c_f = cylinder_faces;
- zff = 0.01;
- track_x = 12;
- track_y = 100;
- track_z = 40;
- track_bottom_chamfer = track_z/2.5;
- track_front_chamfer_angle = 45;
- track_rear_chamfer_angle = 45;
- track_rear_chamfer_ratio = 1.2;
- track_cutout_depth = 2;
- track_rear_cutout_y = 10;
- track_rear_cutout_z = 16;
- //track_rear_cutout_angle = 40;
- track_rear_cutout_angle = 40;
- track_rear_cutout_y_dist = 10;
- track_rear_cutout_z_dist = 5;
- track_rear_cutout_diag_length = 13;
- rear_exhaust_offset = 5;
- module whole()
- {
- }
- module track()
- {
- trc_y = track_rear_cutout_y;
- trc_z = track_rear_cutout_z;
- trc_y_d = track_rear_cutout_y_dist;
- trc_z_d = track_rear_cutout_z_dist;
- union()
- {
- difference()
- {
- cube([track_x, track_y, track_z]);
- // Corner chamfers
- translate([0,0,-(track_bottom_chamfer/2)]) rotate([45,0,0]) cube([track_x,track_bottom_chamfer/sqrt(2),track_bottom_chamfer/sqrt(2)]);
- translate([0,track_y,-(track_bottom_chamfer/2)]) rotate([45,0,0]) cube([track_x,track_bottom_chamfer/sqrt(2),track_bottom_chamfer/sqrt(2)]);
- translate([0,track_y,track_bottom_chamfer]) rotate([track_front_chamfer_angle,0,0]) cube([track_x,100,(track_z - track_bottom_chamfer)/sin(track_front_chamfer_angle)]);
- translate([0,0,track_bottom_chamfer*track_rear_chamfer_ratio])
- rotate([track_rear_chamfer_angle,0,0])
- tread_rear_chamfer();
- // Face cutouts
- /*#translate([track_x-track_cutout_depth,trc_y_d,trc_z_d]) cube([track_cutout_depth,trc_y,trc_z]);
- #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
- rotate([track_rear_cutout_angle,0,0])
- cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);
- #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
- rotate([track_rear_cutout_angle,0,0])
- cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);*/
- //#translate([0,trc_y_d,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
- #translate([0,5,25])
- rotate([track_rear_chamfer_angle,0,0])
- cube([track_x,trc_y*cos(track_rear_cutout_angle),track_cutout_depth]);
- }
- // Face additions
- //translate([track_x,40,17]) import("predator_exhaust.stl");
- translate([track_x,(track_z - track_bottom_chamfer*track_rear_chamfer_ratio)/tan(track_rear_chamfer_angle)+exhaust_y/2+rear_exhaust_offset,track_z-exhaust_z]) exhaust();
- translate([track_x,exhaust_y/2+track_y-(track_z - track_bottom_chamfer)/cos(track_front_chamfer_angle),track_z-exhaust_z]) exhaust();
- }
- }
- module tread_rear_chamfer()
- {
- trc_y = track_rear_cutout_y;
- trc_z = track_rear_cutout_z;
- trc_y_d = track_rear_cutout_y_dist;
- trc_z_d = track_rear_cutout_z_dist;
- temp = -91 ;
- echo(temp);
- trc_y_v = (track_z-track_bottom_chamfer*track_rear_chamfer_ratio)/sin(track_rear_chamfer_angle);
- cube([track_x,trc_y_v,60]);
- translate([0,trc_y_v/2-trc_y*cos(track_rear_cutout_angle)/2,-track_cutout_depth])
- cube([track_x,trc_y*cos(track_rear_cutout_angle),track_cutout_depth]);
- translate([track_x-track_cutout_depth,trc_y_v/2-trc_y*cos(track_rear_cutout_angle)/2,-track_rear_cutout_diag_length])
- cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),track_rear_cutout_diag_length]);
- //translate([track_x-track_cutout_depth,0,-track_rear_cutout_diag_length*2])
- //translate([0,0,0])
- rotate([temp,0,0])
- cube([track_cutout_depth,trc_y,trc_z]);
- /*#translate([track_x-track_cutout_depth,trc_y_d,trc_z_d]) cube([track_cutout_depth,trc_y,trc_z]);
- #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
- rotate([track_rear_cutout_angle,0,0])
- cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);*/
- }
- module exhaust()
- {
- exh_x = exhaust_x;
- exh_y = exhaust_y;
- exh_z = exhaust_z;
- exh_s = exhaust_standoff;
- difference()
- {
- union()
- {
- translate([exh_s,-exh_y/2,0]) cube([exh_x,exh_y,exh_z]);
- translate([0,-exh_y/2,0]) cube([exh_s,exh_y,exh_z]);
- }
- translate([exhaust_standoff,-25,0]) rotate([0,30,0]) cube([20,50,20]); // Chamfer at the bottom
- // Chamfer on the sides
- translate([exhaust_standoff+exh_x,(exh_y/2)-exh_x,0]) rotate([0,0,45]) cube([exh_x*sqrt(2),exh_x*sqrt(2),exh_z]);
- translate([exhaust_standoff+exh_x,-(exh_y/2)-exh_x,0]) rotate([0,0,45]) cube([exh_x*sqrt(2),exh_x*sqrt(2),exh_z]);
- for (n = [0:2])
- {
- translate([0,1,exhaust_notch_height-n*(exhaust_notch_z+exhaust_notch_spacing)]) exhaust_notch();
- translate([0,-1,exhaust_notch_height-n*(exhaust_notch_z+exhaust_notch_spacing)]) translate([0,0,exhaust_notch_z]) rotate([180,0,0]) exhaust_notch();
- }
- }
- difference()
- {
- translate([(exhaust_x+exhaust_standoff)/2,0,exhaust_z]) cylinder(r=2,h=2,$fn=c_f);
- translate([(exhaust_x+exhaust_standoff)/2,0,exhaust_z+1.5]) cylinder(r=1,h=2,$fn=c_f);
- }
- }
- module exhaust_notch()
- {
- exh_n_z = exhaust_notch_z;
- devisor_x = 1.8;
- devisor_y = 6;
- difference()
- {
- cube([10,10,exh_n_z]);
- cube([exhaust_x/devisor_x,exhaust_y/devisor_y,exh_n_z]);
- translate([0,exhaust_y/devisor_y,0,]) triangle(exhaust_y/devisor_y,exhaust_x/devisor_x,exh_n_z);
- }
- }
- render(convexity = 1)
- {
- //track();
- tread_rear_chamfer();
- //exhaust();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement