* Teaching t2c how to counterbore, countersink, and counterdrill * Delete public/kcl-samples/parametric-bearing-pillow-block directory * Update mounting-wire.kcl * new artifiacts Signed-off-by: Jess Frazelle <github@jessfraz.com> * Update kcl-samples simulation test output * Update kcl-samples simulation test output * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> Co-authored-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
121 lines
4.1 KiB
Plaintext
121 lines
4.1 KiB
Plaintext
// Counterdrilled Weldment
|
|
// A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins.
|
|
|
|
// Set units
|
|
@settings(defaultLengthUnit = in)
|
|
|
|
// Define parameters
|
|
boltSpacingX = 5
|
|
boltSpacingY = 3
|
|
boltDiameter = 1 / 4
|
|
counterdrillDiameter = 7 / 16
|
|
counterdrillDepth = 3 / 16
|
|
tubeInnerDiameter = 1 + 1 / 4
|
|
tubeThickness = 0.115
|
|
tubeHeight = 2
|
|
stockThickness = .5
|
|
|
|
// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterdrill diameter to the bolt spacing
|
|
blockLength = boltSpacingX + boltDiameter * 6
|
|
blockWidth = boltSpacingY + boltDiameter * 6
|
|
|
|
// Draw the base plate
|
|
plateSketch = startSketchOn(XY)
|
|
|> startProfile(at = [-blockLength / 2, -blockWidth / 2])
|
|
|> angledLine(angle = 0, length = blockLength, tag = $rectangleSegmentA001)
|
|
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = blockWidth, tag = $rectangleSegmentB001)
|
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
|
|> close()
|
|
|> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2))
|
|
plateBody = extrude(plateSketch, length = stockThickness)
|
|
|> chamfer(
|
|
length = boltDiameter * 2,
|
|
tags = [
|
|
getNextAdjacentEdge(rectangleSegmentB001),
|
|
getNextAdjacentEdge(rectangleSegmentA001),
|
|
getNextAdjacentEdge(rectangleSegmentC001),
|
|
getNextAdjacentEdge(rectangleSegmentD001)
|
|
],
|
|
)
|
|
|
|
// Define hole positions
|
|
holePositions = [
|
|
[-boltSpacingX / 2, -boltSpacingY / 2],
|
|
[-boltSpacingX / 2, boltSpacingY / 2],
|
|
[boltSpacingX / 2, -boltSpacingY / 2],
|
|
[boltSpacingX / 2, boltSpacingY / 2]
|
|
]
|
|
|
|
// Function to create a counterdrilled hole
|
|
fn counterdrill(@holePosition) {
|
|
cbdrill = startSketchOn(plateBody, face = END)
|
|
|> circle(center = holePosition, radius = counterdrillDiameter / 2)
|
|
|> extrude(length = -counterdrillDepth)
|
|
cbBolt = startSketchOn(cbdrill, face = START)
|
|
|> circle(center = holePosition, radius = boltDiameter / 2, tag = $hole01)
|
|
|> extrude(length = -stockThickness + counterdrillDepth)
|
|
// Use a chamfer to create a 90-degree counterdrill edge
|
|
|> chamfer(length = (counterdrillDiameter - boltDiameter) / 2 * sqrt(2), tags = [hole01])
|
|
return { }
|
|
}
|
|
|
|
// Place a counterdrilled hole at each bolt hole position
|
|
map(holePositions, f = counterdrill)
|
|
|
|
// Drill a small pin hole in the side of the tube
|
|
pinhole = startSketchOn(YZ)
|
|
|> circle(center = [0, 2.2], radius = 0.125)
|
|
|> extrude(length = -10)
|
|
|
|
// Model the central tube and subtract the pin hole
|
|
centralTube = startSketchOn(offsetPlane(XY, offset = stockThickness))
|
|
|> circle(center = [0, 0], radius = tubeInnerDiameter / 2 + tubeThickness)
|
|
|> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2))
|
|
|> extrude(length = tubeHeight)
|
|
|> subtract(tools = [pinhole])
|
|
|
|
// Create a function to create a fin which spans from the central tube to the bolt hole
|
|
fn fin(@i) {
|
|
diagPlane = {
|
|
origin = [0.0, 0.0, 0.0],
|
|
xAxis = [
|
|
boltSpacingX / 2 * i,
|
|
boltSpacingY / 2,
|
|
0.0
|
|
],
|
|
yAxis = [0.0, 0.0, 1.0]
|
|
}
|
|
|
|
finSketch = startSketchOn(diagPlane)
|
|
|> startProfile(at = [
|
|
tubeInnerDiameter / 2 + tubeThickness,
|
|
stockThickness
|
|
])
|
|
|> xLine(endAbsolute = sqrt((boltSpacingX / 2) ^ 2 + (boltSpacingY / 2) ^ 2) - counterdrillDiameter)
|
|
|> yLine(length = 0.15)
|
|
|> line(endAbsolute = [
|
|
profileStartX(%) + 0.15,
|
|
stockThickness + tubeHeight * .8
|
|
])
|
|
|> xLine(length = -0.15)
|
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|
|> close()
|
|
|> extrude(length = tubeThickness, symmetric = true)
|
|
|
|
// Use a circular pattern to create an identical fin on the opposite side
|
|
otherFin = patternCircular3d(
|
|
finSketch,
|
|
instances = 2,
|
|
axis = [0, 0, 1],
|
|
center = [0, 0, 0],
|
|
arcDegrees = 360,
|
|
rotateDuplicates = true,
|
|
)
|
|
return { }
|
|
}
|
|
|
|
// Place a pair of support fins along each diagonal axis of the bolt pattern
|
|
fin(1)
|
|
fin(-1)
|