Merge branch 'rail_carriage_coloring' of https://github.com/martinbudden/NopSCADlib into martinbudden-rail_carriage_coloring

This commit is contained in:
Chris Palmer 2020-02-22 21:59:15 +00:00
commit 9d71438a3c
2 changed files with 26 additions and 15 deletions

View File

@ -34,7 +34,7 @@ module rails()
nut = screw_nut(screw); nut = screw_nut(screw);
washer = screw_washer(screw); washer = screw_washer(screw);
rail_assembly(rail, length, rail_travel(rail, length) / 2); rail_assembly(rail, length, rail_travel(rail, length) / 2, $i<2 ? grey20 : "green", $i<2 ? grey20 : "red");
rail_screws(rail, length, sheet + nut_thickness(nut, true) + washer_thickness(washer)); rail_screws(rail, length, sheet + nut_thickness(nut, true) + washer_thickness(washer));

View File

@ -65,7 +65,7 @@ module carriage_hole_positions(type) { //! Position children over screw holes
children(); children();
} }
module carriage(type, rail) { //! Draw the specified carriage module carriage(type, rail, end_color = grey20, wiper_color = grey20) { //! Draw the specified carriage
total_l = carriage_length(type); total_l = carriage_length(type);
block_l = carriage_block_length(type); block_l = carriage_block_length(type);
block_w = carriage_width(type); block_w = carriage_width(type);
@ -100,19 +100,30 @@ module carriage(type, rail) { //! Draw the specified carriage
carriage_hole_positions(type) carriage_hole_positions(type)
circle(screw_pilot_hole(screw)); circle(screw_pilot_hole(screw));
} }
} }
color(grey20)
for(end = [-1, 1])
translate([end * (block_l / 2 + end_l / 2), 0])
rotate([90, 0, 90])
linear_extrude(height = end_l, center = true)
difference() {
translate([-end_w / 2, carriage_clearance(type)])
square([end_w, end_h]);
cutout(); module carriage_end(type, end_w, end_h, end_l) {
} wiper_length = 0.5;
color(wiper_color) translate_z(-end_l/2) linear_extrude(wiper_length)
difference() {
translate([-end_w/2, carriage_clearance(type)])
square([end_w, end_h]);
cutout();
}
color(end_color) translate_z(wiper_length-end_l/2) linear_extrude(end_l-wiper_length)
difference() {
translate([-end_w/2, carriage_clearance(type)])
square([end_w, end_h]);
cutout();
}
}
translate([-(block_l+end_l)/2,0,0])
rotate([90, 0, 90])
carriage_end(type, end_w, end_h, end_l);
translate([(block_l+end_l)/2,0,0])
rotate([90, 0, -90])
carriage_end(type, end_w, end_h, end_l);
} }
module rail(type, length) { //! Draw the specified rail module rail(type, length) { //! Draw the specified rail
@ -139,11 +150,11 @@ module rail(type, length) { //! Draw the specified rail
} }
} }
module rail_assembly(type, length, pos) { //! Rail and carriage assembly module rail_assembly(type, length, pos, carriage_end_color = grey20, carriage_wiper_color = grey20) { //! Rail and carriage assembly
rail(type, length); rail(type, length);
translate([pos, 0]) translate([pos, 0])
carriage(rail_carriage(type), type); carriage(rail_carriage(type), type, carriage_end_color, carriage_wiper_color);
} }