Files
modeling-app/rust/kcl-lib/tests/panic_repro_cube/input.kcl
Jess Frazelle 7ac4a9507b fix unwrap (#6825)
* fix unwrap

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* udaptes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-05-10 13:00:14 -07:00

57 lines
1.7 KiB
Plaintext

/* Generated by Text-to-CAD:
Create a cube with sides of length 20mm. On the top face, add a cylindrical boss of radius 6mm and height 2mm. Then, shell the body to 2mm thickness, leaving the top face of the cylindrical boss open. */
@settings(defaultLengthUnit = mm)
// Define the dimensions of the cube
cubeSide = 20
// Define the dimensions of the cylindrical boss
bossRadius = 6
bossHeight = 2
// Define the shell thickness
shellThickness = 2
// Define the fillet radius
filletRadius = 2
// Create a sketch for the cube
cubeSketch = startSketchOn(XY)
|> startProfile(at = [-cubeSide / 2, -cubeSide / 2])
|> xLine(length = cubeSide)
|> yLine(length = cubeSide, tag = $seg01)
|> xLine(length = -cubeSide)
|> yLine(length = -cubeSide, tag = $seg02)
|> close()
// Extrude the cube
cube = extrude(
cubeSketch,
length = cubeSide,
tagEnd = $topFace,
tagStart = $capStart001,
)
// Apply fillets to all edges of the cube
filletedCube = fillet(
cube,
radius = filletRadius,
tags = [
getNextAdjacentEdge(seg01),
getNextAdjacentEdge(seg02),
// these double wrapped functions are the point of this test
getNextAdjacentEdge(getNextAdjacentEdge(seg01)),
getNextAdjacentEdge(getNextAdjacentEdge(seg02))
]
)
// Create a sketch for the cylindrical boss on the top face of the cube
bossSketch = startSketchOn(filletedCube, face = topFace)
|> circle(center = [0, 0], radius = bossRadius)
// Extrude the cylindrical boss
boss = extrude(bossSketch, length = bossHeight, tagEnd = $bossTopFace)
// Shell the cube, leaving the top face of the cylindrical boss open
shell([filletedCube, boss], thickness = shellThickness, faces = [bossTopFace])