---
source: kcl-lib/src/simulation_tests.rs
description: Result of unparsing fillet-and-shell.kcl
---
rpizWidth = 30
rpizLength = 65

caseThickness = 1

border = 4

screwHeight = 4

caseWidth = rpizWidth + border * 2
caseLength = rpizLength + border * 2
caseHeight = 8

widthBetweenScrews = 23
lengthBetweenScrews = 29 * 2

miniHdmiDistance = 12.4
microUsb1Distance = 41.4
microUsb2Distance = 54

miniHdmiWidth = 11.2
microUsbWidth = 7.4
connectorPadding = 4

miniHdmiHole = startSketchOn(XY)
  |> startProfile(at = [
       0,
       border + miniHdmiDistance - (miniHdmiWidth / 2)
     ])
  |> line(endAbsolute = [
       0,
       border + miniHdmiDistance + miniHdmiWidth / 2
     ])
  |> line(endAbsolute = [
       1,
       border + miniHdmiDistance + miniHdmiWidth / 2
     ])
  |> line(endAbsolute = [
       1,
       border + miniHdmiDistance - (miniHdmiWidth / 2)
     ])
  |> close(%)

case = startSketchOn(XY)
  |> startProfile(at = [0, 0])
  |> line(endAbsolute = [caseWidth, 0], tag = $edge1)
  |> line(endAbsolute = [caseWidth, caseLength], tag = $edge2)
  |> line(endAbsolute = [0, caseLength], tag = $edge3)
  |> close(tag = $edge4)
  |> extrude(length = caseHeight)
  |> fillet(
       radius = 1,
       tags = [
         getNextAdjacentEdge(edge1),
         getNextAdjacentEdge(edge2),
         getNextAdjacentEdge(edge3),
         getNextAdjacentEdge(edge4)
       ],
     )

fn m25Screw(x, y, height) {
  screw = startSketchOn(XY)
    |> startProfile(at = [0, 0])
    |> circle(center = [x, y], radius = 2.5)
    |> subtract2d(tool = circle(center = [x, y], radius = 1.25))
    |> extrude(length = height)
  return screw
}

m25Screw(x = border + rpizWidth / 2 - (widthBetweenScrews / 2), y = 0 + border + rpizLength / 2 - (lengthBetweenScrews / 2), height = screwHeight)
m25Screw(x = border + rpizWidth / 2 - (widthBetweenScrews / 2), y = 0 + border + rpizLength / 2 + lengthBetweenScrews / 2, height = screwHeight)
m25Screw(x = border + rpizWidth / 2 + widthBetweenScrews / 2, y = 0 + border + rpizLength / 2 + lengthBetweenScrews / 2, height = screwHeight)
m25Screw(x = border + rpizWidth / 2 + widthBetweenScrews / 2, y = 0 + border + rpizLength / 2 - (lengthBetweenScrews / 2), height = screwHeight)

shell(case, faces = [END], thickness = caseThickness)
