Track Saw Stuff

Updated about 3 hours ago

Edit

Scripts

New Script

Parallel Guide - Track Connector

const 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 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: 1 })
  .param('slot', { default: false })
  .define(({length, slot, connectors}) => {
    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 dist = length - 
        rail = rail.cutIf(
          !slot, 
          Cube()
            .centered()
            .w(ttrack_width)
            .h(plate_thickness)
            .d(20)
            .build()
            .add(
              Cylinder()
              .r(ttrack_thread_dia / 2 + slop)
              .h(100)
              .centered()
              .build()
            )
            .translate(
              0, 
              length / 2, 
              plate_thickness * 1.5 + ttrack_flange - slop * 2
            ).show()
        )
      }
      return rail
  })


//====== Zero Foot (Start) =======//

Cube()
  .w(ttrack_width)
  .d(ttrack_bracket_length)
  .h(zero_bar_thickness)
  .build()

TTrackRail({length: 50}).output()



//====== Zero Foot (End) =======//


//====== Track Bracket (Start) =======//

const slope_plane = planeXZ().translateLocal(0, plate_thickness, 0)

const ttrack_bracket = Cube()
  .w(ttrack_width)
  .d(ttrack_bracket_length)
  .h(plate_thickness)
  .build()
  .add(
    Cube()
      .w(ttrack_inside_width)
      .d(ttrack_bracket_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(-ttrack_bracket_length)
      //.show()
  )
  .subtract(
    Cube()
    .centered()
    .w(ttrack_width)
    .h(plate_thickness)
    .d(20)
    .build()
    .add(
      Cylinder()
      .r(ttrack_thread_dia / 2 + slop)
      .h(100)
      .centered()
      .build()
    )
    .translate(
      0, 
      ttrack_bracket_length / 2, 
      plate_thickness * 1.75
    )
  )
  .cut(
    Cube()
    .w(slot_width + slop)
    .h(slot_depth * 2 + slop)
    .d(ttrack_bracket_length * 2)
    .centered()
    .build()
  )
  //.output()

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)
  //.show()

festool_bracket
  .add(ttrack_bracket)
  .translate(0,100,0)
  .output()


//====== Track Bracket (End) =======//

Updated less than a minute ago