2024-02-18 22:10:01 +01:00
|
|
|
//
|
2024-02-19 19:03:20 +00:00
|
|
|
// NopSCADlib Copyright Chris Palmer 2024
|
2024-02-18 22:10:01 +01:00
|
|
|
// nop.head@gmail.com
|
|
|
|
// hydraraptor.blogspot.com
|
|
|
|
//
|
|
|
|
// This file is part of NopSCADlib.
|
|
|
|
//
|
|
|
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
|
|
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
|
|
|
// the License, or (at your option) any later version.
|
|
|
|
//
|
|
|
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
// See the GNU General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
|
|
|
// If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
//
|
|
|
|
include <../utils/core/core.scad>
|
|
|
|
use <../utils/layout.scad>
|
2024-02-19 19:03:20 +00:00
|
|
|
use <../utils/maths.scad>
|
2024-02-18 22:10:01 +01:00
|
|
|
|
|
|
|
include <../vitamins/ttracks.scad>
|
|
|
|
|
|
|
|
module ttracks() {
|
|
|
|
colours = [ "LightSlateGray", "red", "blue", "LightSlateGray", "LightSlateGray" ];
|
2024-02-19 19:03:20 +00:00
|
|
|
gap = 8;
|
|
|
|
widths = [for(t = ttracks) ttrack_width(t)];
|
|
|
|
translate([0, 60])
|
|
|
|
layout(widths, gap) {
|
|
|
|
ttrack(ttracks[$i], 120, colours[$i]);
|
2024-02-18 22:10:01 +01:00
|
|
|
|
2024-02-19 19:03:20 +00:00
|
|
|
if($i < len(ttrack_bolts))
|
|
|
|
translate([0, -80])
|
|
|
|
ttrack_bolt(ttrack_bolts[$i], 30);
|
2024-02-18 22:10:01 +01:00
|
|
|
|
2024-02-19 19:03:20 +00:00
|
|
|
let(i = $i - len(ttrack_bolts))
|
|
|
|
if(i >= 0 && i < len(ttrack_inserts))
|
|
|
|
translate([0, -85])
|
|
|
|
rotate(90)
|
|
|
|
ttrack_insert(ttrack_inserts[i], 30, colour=colours[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
x = sumv(widths) + len(ttracks) * gap + ttrack_width(ttrack_universal_19mm) / 2;
|
|
|
|
translate([x, 20]) {
|
|
|
|
ttrack_assembly(ttrack_universal_19mm, 200);
|
|
|
|
ttrack_place_bolt(ttrack_universal_19mm, 50)
|
|
|
|
ttrack_bolt(ttrack_fixture(ttrack_universal_19mm), 30);
|
2024-02-18 22:10:01 +01:00
|
|
|
|
2024-02-19 19:03:20 +00:00
|
|
|
ttrack_place_bolt(ttrack_universal_19mm, -60)
|
|
|
|
ttrack_bolt(ttrack_fixture(ttrack_universal_19mm), 30);
|
2024-02-18 22:10:01 +01:00
|
|
|
}
|
|
|
|
|
2024-02-19 19:03:20 +00:00
|
|
|
x2 = x + ttrack_width(ttrack_universal_19mm) / 2 + gap + ttrack_width(ttrack_mitre_30mm) / 2;
|
|
|
|
translate([x2, 20]) {
|
2024-02-18 22:10:01 +01:00
|
|
|
ttrack_assembly(ttrack_mitre_30mm, 200);
|
2024-02-19 19:03:20 +00:00
|
|
|
|
2024-02-18 22:10:01 +01:00
|
|
|
ttrack_place_insert(ttrack_mitre_30mm, 50)
|
|
|
|
ttrack_insert(ttrack_fixture(ttrack_mitre_30mm), 30, 1, "red");
|
|
|
|
|
|
|
|
ttrack_place_insert(ttrack_mitre_30mm, -60) {
|
|
|
|
ttrack_insert(ttrack_fixture(ttrack_mitre_30mm), 60, 2, "red");
|
|
|
|
ttrack_insert_hole_positions(ttrack_fixture(ttrack_mitre_30mm), 60, 2)
|
|
|
|
translate_z(8)
|
|
|
|
screw(M6_hex_screw, 15);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if($preview)
|
|
|
|
let($show_threads = true)
|
|
|
|
ttracks();
|