1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-09 22:51:16 +02:00

Fixed bug in rail screw placement when putting screws in the middle.

Rail test can now move the carriages with customiser.
This commit is contained in:
Chris Palmer
2020-11-26 14:24:46 +00:00
parent c5b35daeac
commit ceac5cdb27
2 changed files with 6 additions and 5 deletions

View File

@@ -52,8 +52,9 @@ function rail_holes(type, length) = //! Number of holes in a rail given its ```l
module rail_hole_positions(type, length, first = 0, screws = 100, both_ends = true) { //! Position children over screw holes
pitch = rail_pitch(type);
holes = rail_holes(type, length);
for(i = [first : holes - 1 - first])
if(i < screws || (holes - i <= screws && both_ends))
last = first + screws;
for(i = [first : holes - 1], j = holes - 1 - i)
if(i < last || both_ends && (j >= first && j < last))
translate([i * pitch - length / 2 + (length - (holes - 1) * pitch) / 2, 0])
children();
}
@@ -177,7 +178,6 @@ module rail_assembly(type, length, pos, carriage_end_colour = grey(20), carriage
translate([pos, 0])
carriage(rail_carriage(type), type, carriage_end_colour, carriage_wiper_colour);
}
module rail_screws(type, length, thickness, screws = 100) { //! Place screws in the rail
@@ -193,6 +193,6 @@ module rail_screws(type, length, thickness, screws = 100) { //! Place screws in
screw(end_screw, end_screw_len);
translate_z(rail_screw_height(type, screw))
rail_hole_positions(type, length, index_screws, screws)
rail_hole_positions(type, length, index_screws, min(screws, rail_holes(type, length)) - 2 * index_screws)
screw(screw, screw_len);
}