kcl-lib 0.2.185

KittyCAD Language implementation and tools
Documentation
///```kcl
///@settings(defaultLengthUnit = mm, kclVersion = 2.0, experimentalFeatures = allow)
///stockLength = 100mm
///stockWidth = 60mm
///stockHeight = 20mm
///toolDiameter = 20mm
///stepOver = 0.7
///halfStockLength = (stockLength / 2): mm
///halfStockWidth = (stockWidth / 2): mm
///
///stockProfile = sketch(on = XY) {
///  bottomEdge = line(start = [var -50mm, var -30mm], end = [var 50mm, var -30mm])
///  rightEdge = line(start = [var 50mm, var -30mm], end = [var 50mm, var 30mm])
///  topEdge = line(start = [var 50mm, var 30mm], end = [var -50mm, var 30mm])
///  leftEdge = line(start = [var -50mm, var 30mm], end = [var -50mm, var -30mm])
///
///  coincident([bottomEdge.end, rightEdge.start])
///  coincident([rightEdge.end, topEdge.start])
///  coincident([topEdge.end, leftEdge.start])
///  coincident([leftEdge.end, bottomEdge.start])
///  horizontal(bottomEdge)
///  vertical(rightEdge)
///  horizontal(topEdge)
///  vertical(leftEdge)
///  horizontalDistance([bottomEdge.start, bottomEdge.end]) == stockLength
///  verticalDistance([rightEdge.start, rightEdge.end]) == stockWidth
///  horizontalDistance([bottomEdge.start, ORIGIN]) == halfStockLength
///  verticalDistance([bottomEdge.start, ORIGIN]) == halfStockWidth
///}
///
///stockRegion = region(
///  segments = [
///    stockProfile.bottomEdge,
///    stockProfile.rightEdge
///  ],
///  intersectionIndex = -1,
///  direction = CCW,
///)
///stockBody = extrude(stockRegion, length = stockHeight)
///hide(stockProfile)
///
///facingOperation = operation::facing(stockBody, toolDiameter = toolDiameter, stepOver = stepOver)
///
///```
@(impl = std_rust, experimental = true, feature_tree = false)
export fn facing(@solid: Solid, toolDiameter: number(Length), stepOver: number): number(_) {}