All Scripts
New ScriptHello Cube
My First Project// My first Castor script
// Create a simple box with a hole
const box = cube(20, 20, 10)
const hole = cylinder({ r: 5, h: 15 })
const result = box.subtract(hole)
output(result)
Updated about 6 hours ago
Parallel Guide - Track Connector
Track Saw Stuffconst festool_rail_width = 16;
const festool_rail_height = 10.5;
const festool_thread_dia = 7;
const festool_bracket_width = 70;
const ttrack_thread_dia = 6.5;
const ttrack_height = 9.4;
const ttrack_width = 19;
const ttrack_inside_width = 9.2;
const ttrack_inside_depth = 4.5;
const ttrack_inside_bottom_width = 11.7;
const ttrack_bracket_length = 80;
const ttrack_flange = 2.4;
const ttrack_conn_length = 20;
const hole_spacing = 50;
const plate_thickness = 6;
const slop = 0.3;
const slot_width = 2;
const slot_depth = 3;
const festool_track_width = 18.5;
const zero_bar_thickness = 2;
const zero_foot_thickness = 9;
const TTrackRail = Component('ttrack_rail')
.param('length')
.param('connectors', { default: 0 })
.param('slot', { default: false })
.param('connector_shift', {default: 0} )
.define(({length, slot, connectors, connector_shift}) => {
const slope_plane = planeXZ().translateLocal(0, plate_thickness, 0)
let rail = Cube()
.w(ttrack_width)
.d(length)
.h(plate_thickness)
.build()
.add(
Cube()
.w(ttrack_inside_width)
.d(length)
.h(plate_thickness * 2)
.build()
.translate((ttrack_width - ttrack_inside_width) / 2, 0, 0)
)
.translate(-ttrack_width/2, 0, 0)
.add(
sketch()
.moveTo(0,0)
.lineTo(ttrack_inside_width / 2, ttrack_flange)
.lineTo(
ttrack_inside_bottom_width/2,
ttrack_inside_depth + ttrack_flange
)
.hLine(-ttrack_inside_bottom_width)
.lineTo(-ttrack_inside_width / 2, ttrack_flange)
.close()
.onPlane(slope_plane)
.extrude(-length)
)
rail = rail.cutIf(
slot,
Cube()
.w(slot_width + slop)
.h(slot_depth * 2 + slop)
.d(length * 2)
.centered()
.build()
)
for( let i = 0; i < connectors; i++ ) {
const gap = (length - (ttrack_conn_length * connectors)) /
(connectors + 1)
const dist = gap * (i + 1) +
ttrack_conn_length * (i + 0.5)
rail = rail.cut(
Cube()
.centered()
.w(ttrack_width)
.h(plate_thickness)
.d(ttrack_conn_length)
.build()
.add(
Cylinder()
.r(ttrack_thread_dia / 2 + slop)
.h(100)
.centered()
.build()
)
.translate(
0,
dist + connector_shift,
plate_thickness * 1.5 + ttrack_flange - slop * 2
)
)
}
return rail
})
//====== Zero Foot (Start) =======//
// Cube()
// .w(ttrack_width)
// .d(ttrack_bracket_length)
// .h(zero_bar_thickness)
// .build()
//====== Zero Foot (End) =======//
//====== Track Bracket (Start) =======//
const track_bracket = TTrackRail({length: 70, connectors: 1, connector_shift: 0, slot: true})
const festool_bracket = Cube()
.w(festool_bracket_width)
.d(festool_rail_width)
.h(plate_thickness)
.centered()
.build()
.cut(
Cylinder()
.r(festool_thread_dia / 2)
.h(100)
.centered()
.build()
.translate(hole_spacing / 2, 0, 0)
)
.cut(
Cylinder()
.r(festool_thread_dia / 2)
.h(100)
.centered()
.build()
.translate(-hole_spacing / 2, 0, 0)
)
.translate(0, -festool_rail_width / 2, plate_thickness / 2)
festool_bracket
.add(track_bracket.solid())
.add(
Cube()
.centered()
.w(ttrack_width)
.d(6)
.h(ttrack_height + plate_thickness)
.build()
.translate(0, 3,(ttrack_height + plate_thickness) / 2)
)
.subtract(
Cylinder()
.r(3.5 + (slop / 2))
.h(100)
.centered()
.build()
.translate(0, 50.5 + 6, 0)
)
//.translate(0,100,0)
.output()
//====== Track Bracket (End) =======//
Updated about 1 hour ago