// Router Template for a Slate // A guide for routing a slate for a cross bar. // Set units @settings(defaultLengthUnit = mm, kclVersion = 1.0) // Define parameters routerDiameter = 12.7 templateDiameter = (11 / 16): number(in) slateWidthHalf = 41.5 / 2 minClampingDistance = 50 + 30 templateThickness = 10 radius = 10 depth = 30 // Calculated parameters templateGap = (templateDiameter - routerDiameter) / 2 - 0.5 length001 = slateWidthHalf - radius length002 = depth + minClampingDistance // Create the first sketch sketch001 = startSketchOn(XZ) |> startProfile(at = [0, depth - templateGap]) |> xLine(length = length001, tag = $seg01) |> arc(angleStart = 90, angleEnd = 0, radius = radius - templateGap) |> yLine(endAbsolute = -templateGap * 2 - (templateDiameter / 2), tag = $seg05) |> xLine(endAbsolute = slateWidthHalf + templateThickness, tag = $seg04) |> yLine(length = -length002, tag = $seg03) |> xLine(endAbsolute = 0, tag = $seg02) // |> line(end = [7.78, 11.16]) |> xLine(length = -segLen(seg02)) |> yLine(length = segLen(seg03)) |> xLine(length = segLen(seg04)) |> yLine(length = segLen(seg05)) |> arc(angleStart = 180, angleEnd = 90, radius = radius - templateGap) |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> close() // Extrude the first sketch extrude001 = extrude(sketch001, length = 5) // Create the second sketch sketch002 = startSketchOn(extrude001, face = START) |> startProfile(at = [ -slateWidthHalf, -templateGap * 2 - (templateDiameter / 2) ]) |> xLine(length = -7, tag = $rectangleSegmentA001) |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = minClampingDistance, tag = $rectangleSegmentB001) |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> close() // Extrude the second sketch extrude002 = extrude(sketch002, length = 7.5) // Create the third sketch sketch003 = startSketchOn(extrude001, face = START) |> startProfile(at = [ slateWidthHalf, -templateGap * 2 - (templateDiameter / 2) ]) |> xLine(length = 7, tag = $rectangleSegmentA002) |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = minClampingDistance) |> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002)) |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> close() // Extrude the third Sketch extrude003 = extrude(sketch003, length = 7.5)