kcl-samples → starlink-mini-bracket
starlink-mini-bracket

KCL
// Starlink Mini Bracket // Bracket for holding a starlink device // Set units in inches (in) @settings(defaultLengthUnit = in) // Define parameters cutoutEdgeLength = 2 cutoutWidth = 0.52 cutoutAngleBase = 8 // degrees cutoutAngleSide = 14 // degrees cutoutDepth = 1 cutoutBaseDepth = 0.1 totalWidth = 1.25 blockEdgeLength = 0.5 FLIP = 0 sketch001 = startSketchOn(XZ) |> startProfile(at = [0.0, 0.0]) |> xLine(length = blockEdgeLength + cutoutEdgeLength) |> yLine(length = blockEdgeLength, tag = $seg01) |> xLine(endAbsolute = blockEdgeLength) |> yLine(endAbsolute = blockEdgeLength + cutoutEdgeLength) |> xLine(endAbsolute = 0, tag = $seg02) |> close() |> extrude(length = totalWidth) sketch002 = startSketchOn(sketch001, face = seg01) |> startProfile(at = [blockEdgeLength, 0.0]) |> xLine(length = cutoutDepth + cutoutBaseDepth) |> yLine(length = (totalWidth - cutoutWidth) / 2 - ((1 - FLIP) * cutoutDepth * sin(units::toRadians(cutoutAngleBase)))) |> angledLine(angle = 180 - ((1 - FLIP) * cutoutAngleBase), lengthX = cutoutDepth) |> yLine(length = cutoutWidth) |> angledLine(angle = FLIP * cutoutAngleBase, lengthX = cutoutDepth) |> yLine(endAbsolute = totalWidth) |> xLine(endAbsolute = blockEdgeLength) |> close() |> extrude(length = -1 * cutoutEdgeLength) sketch003 = startSketchOn(sketch001, face = seg02) |> startProfile(at = [-1 * blockEdgeLength, 0.0]) |> xLine(length = -1 * (cutoutDepth + cutoutBaseDepth)) |> yLine(length = (totalWidth - cutoutWidth) / 2 - ((1 - FLIP) * cutoutDepth * sin(units::toRadians(cutoutAngleSide)))) |> angledLine(angle = (1 - FLIP) * cutoutAngleSide, lengthX = cutoutDepth) |> yLine(length = cutoutWidth) |> angledLine(angle = 180 - (FLIP * cutoutAngleSide), lengthX = cutoutDepth) |> yLine(endAbsolute = totalWidth) |> xLine(endAbsolute = -1 * blockEdgeLength) |> close() |> extrude(length = -1 * cutoutEdgeLength) barrelD = 0.700 barrelL = 1.10 nRidges = 36 barrelC = 1.25 / 2 // guess holeD = 0.253 ridgeHeight = 1.1135 - barrelL ridgeWidth = 0.042 sketch004 = startSketchOn(XY) |> startProfile(at = [ -1 * (barrelC + barrelD / 2), -totalWidth / 2 ]) |> arc(angleStart = 180, angleEnd = 90, radius = barrelD / 2) |> xLine(endAbsolute = 0) |> yLine(endAbsolute = -(totalWidth / 2 + barrelD / 2)) |> xLine(endAbsolute = -barrelC) |> arc(angleEnd = 180, angleStart = 270, radius = barrelD / 2) |> close() |> extrude(length = barrelL) sketch005 = startSketchOn(sketch004, face = START) |> circle(center = [barrelC, -totalWidth / 2], radius = holeD / 2) |> extrude(length = -1 * barrelL) ridgePlane = offsetPlane(YZ, offset = -(barrelC + holeD / 2)) sketch006 = startSketchOn(ridgePlane) |> startProfile(at = [-totalWidth / 2, barrelL]) |> xLine(length = ridgeWidth / 2) |> line(end = [-ridgeWidth / 2, ridgeHeight]) |> line(end = [-ridgeWidth / 2, -ridgeHeight]) |> close() |> extrude(length = -((barrelD - holeD) / 2 - .003)) |> patternCircular3d( arcDegrees = 360, axis = [0, 0, barrelL], center = [-barrelC, -totalWidth / 2, barrelL], instances = nRidges, rotateDuplicates = true, )