feat: inserts
13
README.md
@@ -82,6 +82,19 @@ To be compatible with standard bricks, the following print settings are strongly
|
|||||||
My prints were done on a modified SecKit SK-Go2 running Klipper, with 10k acceleration and 150mm/s print speed for a good
|
My prints were done on a modified SecKit SK-Go2 running Klipper, with 10k acceleration and 150mm/s print speed for a good
|
||||||
balance of speed and quality. A short rail will take about an hour to print.
|
balance of speed and quality. A short rail will take about an hour to print.
|
||||||
|
|
||||||
|
### Inserts
|
||||||
|
|
||||||
|
_This is optional and increases difficulty and print time, but I highly recommened it._
|
||||||
|
|
||||||
|
Studs and anti-studs print rather inconsistently at the orientation of the rail.
|
||||||
|
To combat that, I added the option to pre-print stud and anti-stud inserts at perfect orientation and insert them mid-print.
|
||||||
|
Because the layer is immediately covered up, the plastic will adhere like it would if it was printed in one go.
|
||||||
|
|
||||||
|
This also allows you to pre-select the best inserts without having to print a full rail only to have one bad stud.
|
||||||
|
|
||||||
|
- In Cura, insert a "Pause at layer" at the last layer where the insert spots are not covered yet.
|
||||||
|
- If you use Klipper, use "Search and replace" with `; Layer 32` to `; Layer 32\nPAUSE`.
|
||||||
|
|
||||||
### Filament
|
### Filament
|
||||||
|
|
||||||
| Color | RAL | PLA Supplier | ABS Supplier |
|
| Color | RAL | PLA Supplier | ABS Supplier |
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 607 B After Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 731 B |
|
Before Width: | Height: | Size: 863 B After Width: | Height: | Size: 849 B |
|
Before Width: | Height: | Size: 476 B After Width: | Height: | Size: 472 B |
|
Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 384 B |
|
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 658 B |
|
Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 493 B |
|
Before Width: | Height: | Size: 664 B After Width: | Height: | Size: 644 B |
|
Before Width: | Height: | Size: 596 B After Width: | Height: | Size: 569 B |
|
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 399 B |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 700 B |
|
Before Width: | Height: | Size: 761 B After Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 644 B After Width: | Height: | Size: 627 B |
34
track.scad
@@ -2,12 +2,10 @@ include <BOSL2/std.scad>;
|
|||||||
include <BOSL2/beziers.scad>;
|
include <BOSL2/beziers.scad>;
|
||||||
|
|
||||||
/* [Print Settings] */
|
/* [Print Settings] */
|
||||||
// Some feature are generated with respect to the layer height
|
|
||||||
LayerHeight = 0.2; // [0.1,0.13,0.2]
|
|
||||||
// Mid-print stud inserts allowing the studs to be printed facing up seperately
|
// Mid-print stud inserts allowing the studs to be printed facing up seperately
|
||||||
StudInserts = false;
|
StudInserts = true;
|
||||||
// Mid-print slot inserts eliminating the need for supports
|
// Mid-print slot inserts eliminating the need for supports
|
||||||
AntiStudInserts = false;
|
AntiStudInserts = true;
|
||||||
// Part to generate
|
// Part to generate
|
||||||
Type = "rail"; // [rail,studs,antistuds]
|
Type = "rail"; // [rail,studs,antistuds]
|
||||||
|
|
||||||
@@ -68,8 +66,12 @@ module antiStudInsert(carve=true, depth=$studHeight * 2, supportHeight=$LDU * 4,
|
|||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
cube([$tile * 2, $tile, depth + supportHeight], anchor=FRONT+BOTTOM);
|
cube([$tile * 2, $tile, depth + supportHeight], anchor=FRONT+BOTTOM);
|
||||||
translate([0, $tile, 0]) cube([$tile * 2 + supportWidth, supportWidth, depth + supportHeight], anchor=FRONT+BOTTOM);
|
translate([0, $tile + supportWidth + (carve ? 0 : $LDU / 2), 0])
|
||||||
translate([0, $tile / 2, 0]) cube([$tile * 2 + supportWidth, supportWidth, depth + supportHeight], anchor=FRONT+BOTTOM);
|
cube([
|
||||||
|
$tile * 2 + supportWidth + (carve ? 0 : $LDU),
|
||||||
|
supportWidth + $tile * 0.6 + (carve ? 0 : $LDU),
|
||||||
|
depth + supportHeight
|
||||||
|
], anchor=BACK+BOTTOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (carve) {
|
if (carve) {
|
||||||
@@ -85,12 +87,17 @@ module antiStudInsert(carve=true, depth=$studHeight * 2, supportHeight=$LDU * 4,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module studInsert(supportThickness = $LDU * 4) {
|
module studInsert(carve=true, supportThickness = $LDU * 4) {
|
||||||
mirror_copy([0, 1, 0]) translate([0, $tile / 2, 0]) group() {
|
mirror_copy([0, 1, 0])
|
||||||
cube([supportThickness, $stud, $stud], anchor=RIGHT);
|
translate([0, $tile / 2, 0])
|
||||||
cyl(l=$studHeight, d=$stud, $fn=48, anchor=TOP, orient=LEFT);
|
cyl(l=$studHeight + $LDU / 2, d=$stud + $LDU / 2, $fn=48, anchor=TOP, orient=LEFT);
|
||||||
}
|
cube([supportThickness, $tile + $stud, $stud], anchor=RIGHT);
|
||||||
translate([-supportThickness, 0, 0]) cube([supportThickness, $tile + $stud + $LDU, $stud], anchor=RIGHT);
|
translate([-supportThickness, 0, $stud / 2])
|
||||||
|
cube([
|
||||||
|
supportThickness + (carve ? 0 : $LDU),
|
||||||
|
$tile + $stud + $LDU + (carve ? 0 : $LDU),
|
||||||
|
$stud + $LDU * 1.5 + (carve ? 0 : $LDU)
|
||||||
|
], anchor=RIGHT+TOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
module brickSlot(w=1, l=1, h=3) {
|
module brickSlot(w=1, l=1, h=3) {
|
||||||
@@ -117,9 +124,10 @@ module endCapStraight(includeRail=true) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (StudInserts) {
|
if (StudInserts) {
|
||||||
mirror_copy([1, 0, 0]) translate([$width / 2, 0, 0]) studInsert();
|
mirror_copy([1, 0, 0]) translate([$width / 2, 0, 0]) studInsert(carve=false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mirror_copy([1, 0, 0]) translate([$tile, 0, $tile / 2 - $plate * 2]) cyl(d=$fillet, h=$tile, $fn=12, anchor=TOP);
|
||||||
translate([0, -$tile, $tile / 2 - $plate * 2]) cube([$tile * 2, $tile, $plate], anchor=FRONT+TOP);
|
translate([0, -$tile, $tile / 2 - $plate * 2]) cube([$tile * 2, $tile, $plate], anchor=FRONT+TOP);
|
||||||
translate([0, -$tile, $tile / 2 - $plate * 2]) antiStudInsert(carve=false);
|
translate([0, -$tile, $tile / 2 - $plate * 2]) antiStudInsert(carve=false);
|
||||||
|
|
||||||
|
|||||||