149 lines
4.4 KiB
Plaintext
149 lines
4.4 KiB
Plaintext
// Poopy Shoe
|
|
// poop shute for bambu labs printer - optimized for printing.
|
|
|
|
// Set units
|
|
@settings(defaultLengthUnit = in, kclVersion = 1.0)
|
|
|
|
// Define parameters
|
|
wallThickness = 0.125
|
|
wallsWidth = 3
|
|
height = 5.125
|
|
filletRadius = 0.050
|
|
backLength = 6
|
|
exitHeight = 1
|
|
frontLength = 7
|
|
|
|
// Create the curved portion that catches the printer poop
|
|
sketch001 = startSketchOn(-YZ)
|
|
|> startProfile(at = [wallsWidth / 2, 0])
|
|
|> xLine(length = wallThickness / 2)
|
|
|> angledLine(angle = 60, endAbsoluteX = wallsWidth, tag = $seg01)
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(length = -wallThickness)
|
|
|> yLine(endAbsolute = segEndY(seg01))
|
|
|> angledLine(angle = 60, endAbsoluteX = wallsWidth / 2 + wallThickness / 2)
|
|
|> xLine(length = -wallThickness)
|
|
|> angledLine(angle = 180 - 60, endAbsoluteX = wallThickness)
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(endAbsolute = 0)
|
|
|> yLine(endAbsolute = segEndY(seg01))
|
|
|> angledLine(angle = 180 - 60, endAbsoluteY = 0)
|
|
|> close()
|
|
part001 = revolve(
|
|
sketch001,
|
|
angle = 90,
|
|
axis = {
|
|
direction = [1.0, 0.0],
|
|
origin = [0.0, height + .0001]
|
|
},
|
|
)
|
|
|
|
sketch002 = startSketchOn(-YZ)
|
|
|> startProfile(at = [wallsWidth / 2, 0])
|
|
|> xLine(length = wallThickness / 2)
|
|
|> angledLine(angle = 60, endAbsoluteX = wallsWidth, tag = $seg02)
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(length = -wallThickness)
|
|
|> yLine(endAbsolute = segEndY(seg01))
|
|
|> angledLine(angle = 60, endAbsoluteX = wallsWidth / 2 + wallThickness / 2)
|
|
|> xLine(length = -wallThickness)
|
|
|> angledLine(angle = 180 - 60, endAbsoluteX = wallThickness)
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(endAbsolute = 0)
|
|
|> yLine(endAbsolute = segEndY(seg02))
|
|
|> angledLine(angle = 180 - 60, endAbsoluteY = 0)
|
|
|> close()
|
|
|> extrude(length = backLength - height)
|
|
|
|
customPlane = {
|
|
origin = {
|
|
x = 0,
|
|
y = -(wallsWidth / 2 - (wallThickness / 2)),
|
|
z = 0
|
|
},
|
|
xAxis = { x = 1, y = 0, z = 0 },
|
|
yAxis = { x = 0, y = 0, z = 1 }
|
|
}
|
|
sketch003 = startSketchOn(customPlane)
|
|
|> startProfile(at = [0, 0])
|
|
|> tangentialArc(angle = 60, radius = height)
|
|
|> angledLine(angle = 60, endAbsoluteY = 0)
|
|
|> close()
|
|
|> extrude(length = wallThickness)
|
|
|
|
// Create the right side wall of the tub
|
|
sketch004 = startSketchOn(sketch002, face = END)
|
|
|> startProfile(at = [0, 0])
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(endAbsolute = wallThickness)
|
|
|> yLine(endAbsolute = segEndY(seg01))
|
|
|> angledLine(angle = 180 - 60, endAbsoluteX = wallsWidth / 2 - (wallThickness / 2))
|
|
|> xLine(length = wallThickness)
|
|
|> angledLine(angle = 60, endAbsoluteY = segEndY(seg01))
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(length = wallThickness)
|
|
|> tangentialArc(endAbsolute = [
|
|
(frontLength - wallsWidth) / 2 + wallsWidth,
|
|
height - ((height - exitHeight) / 2)
|
|
])
|
|
|> tangentialArc(endAbsolute = [frontLength, exitHeight])
|
|
|> yLine(endAbsolute = 0)
|
|
|> close(tag = $seg04)
|
|
|> extrude(length = wallThickness)
|
|
|
|
customPlane2 = {
|
|
origin = {
|
|
x = -1 * (backLength - height + wallsWidth),
|
|
y = 0,
|
|
z = 0
|
|
},
|
|
xAxis = { x = 0, y = 1, z = 0 },
|
|
yAxis = { x = 0, y = 0, z = 1 }
|
|
}
|
|
sketch005 = startSketchOn(customPlane2)
|
|
|> startProfile(at = [0, 0])
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(endAbsolute = -wallsWidth)
|
|
|> tangentialArc(endAbsolute = [
|
|
-1 * ((frontLength - wallsWidth) / 2 + wallsWidth),
|
|
height - ((height - exitHeight) / 2)
|
|
])
|
|
|> tangentialArc(endAbsolute = [-frontLength, exitHeight])
|
|
|> yLine(endAbsolute = 0, tag = $seg03)
|
|
|> close()
|
|
|> extrude(length = wallThickness)
|
|
|
|
sketch006 = startSketchOn(sketch005, face = seg03)
|
|
|> startProfile(at = [0, -1 * (backLength - height)])
|
|
|> xLine(endAbsolute = -exitHeight)
|
|
|> yLine(length = -wallsWidth)
|
|
|> xLine(endAbsolute = 0)
|
|
|> close()
|
|
|> extrude(length = wallThickness)
|
|
|
|
sketch007 = startSketchOn(sketch004, face = END)
|
|
|> startProfile(at = [0, 0])
|
|
|> xLine(endAbsolute = wallThickness)
|
|
|> yLine(endAbsolute = height)
|
|
|> xLine(endAbsolute = 0)
|
|
|> close()
|
|
|> extrude(length = wallsWidth - (2 * wallThickness))
|
|
|
|
customPlane3 = {
|
|
origin = {
|
|
x = -1 * (backLength - height + wallsWidth),
|
|
y = 0,
|
|
z = wallThickness
|
|
},
|
|
xAxis = { x = 0, y = -1, z = 0 },
|
|
yAxis = { x = 1, y = 0, z = 0 }
|
|
}
|
|
|
|
sketch008 = startSketchOn(customPlane3)
|
|
|> startProfile(at = [wallThickness, wallThickness])
|
|
|> xLine(endAbsolute = frontLength)
|
|
|> yLine(length = wallsWidth - (2 * wallThickness))
|
|
|> xLine(endAbsolute = wallThickness)
|
|
|> close()
|
|
|> extrude(length = -wallThickness)
|