Files
3D/tools/paracord/paracord_jig.scad
T
2026-10-15 09:25:20 +02:00

66 lines
2.1 KiB
OpenSCAD

$fn=60;
include <BOSL2/std.scad>
include <nutsnbolts/cyl_head_bolt.scad>;
tube_length=400;
tube_diam=16;
module screw_back() {
*nutcatch_parallel("M5", clh=0.1);
translate([0,0,27]) hole_through(name="M5", l=45, cld=0.1, h=10, hcld=0.4);
rotate([0,0,90]) translate([0,0,-10]) nutcatch_sidecut("M5", l=20, clk=0.1, clh=0.1, clsl=0.1);
}
module screw_front() {
*nutcatch_parallel("M5", clh=0.1);
translate([0,0,26]) hole_through(name="M5", l=24, cld=0.1, h=3, hcld=0.4);
rotate([0,0,-90]) translate([0,0,10]) nutcatch_sidecut("M5", l=20, clk=0.2, clh=0.5, clsl=0.5);
}
module end() {
difference() {
cuboid([100,25,50], rounding=2);
translate([-27.5,2.5,-7.5]) ycyl(d=16.5, l=10, rounding2=-1, anchor=FRONT);
translate([27.5,2.5,-7.5]) ycyl(d=16.5, l=10, rounding2=-1, anchor=FRONT);
rotate([0,0,180]) translate([0,0,3]) screw_front();
rotate([0,0,180]) translate([-30,0,3]) screw_front();
rotate([0,0,180]) translate([30,0,3]) screw_front();
}
}
module mid() {
difference() {
union() {
cuboid([100,30,15], rounding=2, anchor=TOP);
cuboid([100,30,25], rounding=2, anchor=BOTTOM);
}
translate([-27.5,0,0]) ycyl(d=16.5, l=30, rounding=-2);
translate([27.5,0,0]) ycyl(d=16.5, l=30, rounding=-2);
cuboid([110,40,2]);
translate([0,5,8]) screw_back();
translate([-27.5,-7,7.5]) screw_front();
translate([0,-7,7.5]) screw_front();
translate([27.5,-7,7.5]) screw_front();
}
}
color("grey") rotate([90,0,0,]) {
*tube(od=tube_diam, id=tube_diam-3, l=tube_length);
translate([-27.5,-7.5,0]) tube(od=16, id=14, l=400);
translate([27.5,-7.5,0]) tube(od=16, id=14, l=400);
}
translate([0,tube_length/2,0]) mirror([0,1,0]) end();
translate([0,-tube_length/2,0]) end();
color("red") {
translate([0,0,-7.5]) mid();
}
// extension
*color("pink") {
translate([0,tube_length/2+2,-27.5]) cuboid([100,26,5], rounding=2, edges=[BOT,FRONT+LEFT,FRONT+RIGHT,BACK+LEFT,BACK+RIGHT]);
translate([0,tube_length/2+12.5,-2.5]) cuboid([100,5,55], rounding=2, edges=[BACK,TOP+LEFT,TOP+RIGHT,BOT+LEFT,BOT+RIGHT]);
}