KCL: Chamfer and fillet now use keyword arguments (#5389)
Previously:
`|> fillet({ radius = 5, tags = [seg01] }, %)`
Now:
`|> fillet(radius = 5, tags = [seg01])`
Also tweaks the formatter for keyword argument calls slightly.
			
			
This commit is contained in:
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -82,11 +82,11 @@ helixPath = helix(
 | 
			
		||||
  length = 10,
 | 
			
		||||
  radius = 5,
 | 
			
		||||
  axis = {
 | 
			
		||||
  custom = {
 | 
			
		||||
    axis = [0, 0, 1.0],
 | 
			
		||||
    origin = [0, 0.25, 0]
 | 
			
		||||
  }
 | 
			
		||||
},
 | 
			
		||||
    custom = {
 | 
			
		||||
      axis = [0, 0, 1.0],
 | 
			
		||||
      origin = [0, 0.25, 0]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Create a spring by sweeping around the helix path.
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -95,10 +95,10 @@ circleSketch1 = startSketchOn(offsetPlane('XY', offset = 150))
 | 
			
		||||
 | 
			
		||||
loft(
 | 
			
		||||
  [
 | 
			
		||||
  squareSketch,
 | 
			
		||||
  circleSketch0,
 | 
			
		||||
  circleSketch1
 | 
			
		||||
],
 | 
			
		||||
    squareSketch,
 | 
			
		||||
    circleSketch0,
 | 
			
		||||
    circleSketch1
 | 
			
		||||
  ],
 | 
			
		||||
  baseCurveIndex = 0,
 | 
			
		||||
  bezApproximateRational = false,
 | 
			
		||||
  tolerance = 0.000001,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13364
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
							
						
						
									
										13364
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -266,10 +266,10 @@ myRect = rect([20, 0])
 | 
			
		||||
 | 
			
		||||
myRect
 | 
			
		||||
  |> extrude(10, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = 0.5,
 | 
			
		||||
       tags = [myRect.tags.rectangleSegmentA001]
 | 
			
		||||
     }, %)
 | 
			
		||||
     )
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
See how we use the tag `rectangleSegmentA001` in the `fillet` function outside
 | 
			
		||||
 | 
			
		||||
@ -82,7 +82,7 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
    await page.keyboard.press('Enter') // submit
 | 
			
		||||
    await page.waitForTimeout(100)
 | 
			
		||||
    await expect(page.locator('.cm-activeLine')).toContainText(
 | 
			
		||||
      `fillet({ radius = ${KCL_DEFAULT_LENGTH}, tags = [seg01] }, %)`
 | 
			
		||||
      `fillet( radius = ${KCL_DEFAULT_LENGTH}, tags = [seg01] )`
 | 
			
		||||
    )
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -211,12 +211,13 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
        cameraPos: { x: 16020, y: -2000, z: 10500 },
 | 
			
		||||
        cameraTarget: { x: -150, y: -4500, z: -80 },
 | 
			
		||||
        beforeChamferSnippet: `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)
 | 
			
		||||
      chamfer({length = 30,tags = [
 | 
			
		||||
      chamfer(length = 30,tags = [
 | 
			
		||||
      seg01,
 | 
			
		||||
      getNextAdjacentEdge(yo),
 | 
			
		||||
      getNextAdjacentEdge(seg02),
 | 
			
		||||
      getOppositeEdge(seg01)
 | 
			
		||||
    ]}, %)`,
 | 
			
		||||
    ],
 | 
			
		||||
    )`,
 | 
			
		||||
 | 
			
		||||
        afterChamferSelectSnippet:
 | 
			
		||||
          'sketch002 = startSketchOn(extrude001, seg03)',
 | 
			
		||||
@ -236,14 +237,14 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
        beforeChamferSnippet: `angledLine([
 | 
			
		||||
         segAng(rectangleSegmentA001) - 90,
 | 
			
		||||
         217.26
 | 
			
		||||
       ], %, $seg01)chamfer({
 | 
			
		||||
       ], %, $seg01)chamfer(
 | 
			
		||||
         length = 30,
 | 
			
		||||
         tags = [
 | 
			
		||||
           seg01,
 | 
			
		||||
           getNextAdjacentEdge(yo),
 | 
			
		||||
           getNextAdjacentEdge(seg02)
 | 
			
		||||
         ]
 | 
			
		||||
       }, %)`,
 | 
			
		||||
       )`,
 | 
			
		||||
 | 
			
		||||
        afterChamferSelectSnippet:
 | 
			
		||||
          'sketch003 = startSketchOn(extrude001, seg04)',
 | 
			
		||||
@ -260,13 +261,13 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
        clickCoords: { x: 677, y: 87 },
 | 
			
		||||
        cameraPos: { x: -6200, y: 1500, z: 6200 },
 | 
			
		||||
        cameraTarget: { x: 8300, y: 1100, z: 4800 },
 | 
			
		||||
        beforeChamferSnippet: `angledLine([0, 268.43], %, $rectangleSegmentA001)chamfer({
 | 
			
		||||
        beforeChamferSnippet: `angledLine([0, 268.43], %, $rectangleSegmentA001)chamfer(
 | 
			
		||||
         length = 30,
 | 
			
		||||
         tags = [
 | 
			
		||||
           getNextAdjacentEdge(yo),
 | 
			
		||||
           getNextAdjacentEdge(seg02)
 | 
			
		||||
         ]
 | 
			
		||||
       }, %)`,
 | 
			
		||||
       )`,
 | 
			
		||||
        afterChamferSelectSnippet:
 | 
			
		||||
          'sketch004 = startSketchOn(extrude001, seg05)',
 | 
			
		||||
        afterRectangle1stClickSnippet:
 | 
			
		||||
@ -282,10 +283,9 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
        clickCoords: { x: 620, y: 300 },
 | 
			
		||||
        cameraPos: { x: -1100, y: -7700, z: 1600 },
 | 
			
		||||
        cameraTarget: { x: 1450, y: 670, z: 4000 },
 | 
			
		||||
        beforeChamferSnippet: `chamfer({
 | 
			
		||||
         length = 30,
 | 
			
		||||
         tags = [getNextAdjacentEdge(yo)]
 | 
			
		||||
       }, %)`,
 | 
			
		||||
        beforeChamferSnippet: `chamfer(length = 30, tags = [getNextAdjacentEdge(yo)])`,
 | 
			
		||||
        beforeChamferSnippetEnd:
 | 
			
		||||
          '|> chamfer(length = 30, tags = [getNextAdjacentEdge(yo)])',
 | 
			
		||||
        afterChamferSelectSnippet:
 | 
			
		||||
          'sketch005 = startSketchOn(extrude001, seg06)',
 | 
			
		||||
        afterRectangle1stClickSnippet:
 | 
			
		||||
@ -313,31 +313,16 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => {
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, %, $seg03)
 | 
			
		||||
  |> chamfer({ length = 30, tags = [seg01] }, %, $seg04)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getNextAdjacentEdge(seg02)]
 | 
			
		||||
     }, %, $seg05)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getNextAdjacentEdge(yo)]
 | 
			
		||||
     }, %, $seg06)
 | 
			
		||||
  |> chamfer(length = 30, tags = [getOppositeEdge(seg01)], tag = $seg03)
 | 
			
		||||
  |> chamfer(length = 30, tags = [seg01], tag = $seg04)
 | 
			
		||||
  |> chamfer(length = 30, tags = [getNextAdjacentEdge(seg02)], tag = $seg05)
 | 
			
		||||
  |> chamfer(length = 30, tags = [getNextAdjacentEdge(yo)], tag = $seg06)
 | 
			
		||||
sketch005 = startSketchOn(extrude001, seg06)
 | 
			
		||||
profile004 = startProfileAt([-23.43, 19.69], sketch005)
 | 
			
		||||
profile004=startProfileAt([-23.43,19.69], sketch005)
 | 
			
		||||
  |> angledLine([0, 9.1], %, $rectangleSegmentA005)
 | 
			
		||||
  |> angledLine([
 | 
			
		||||
       segAng(rectangleSegmentA005) - 90,
 | 
			
		||||
       84.07
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> angledLine([
 | 
			
		||||
       segAng(rectangleSegmentA005),
 | 
			
		||||
       -segLen(rectangleSegmentA005)
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> angledLine([segAng(rectangleSegmentA005) - 90, 84.07], %)
 | 
			
		||||
  |> angledLine([segAng(rectangleSegmentA005), -segLen(rectangleSegmentA005)], %)
 | 
			
		||||
  |> line(endAbsolute=[profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
sketch004 = startSketchOn(extrude001, seg05)
 | 
			
		||||
profile003 = startProfileAt([82.57, 322.96], sketch004)
 | 
			
		||||
@ -378,7 +363,6 @@ profile001 = startProfileAt([205.96, 254.59], sketch002)
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
`,
 | 
			
		||||
          { shouldNormalise: true }
 | 
			
		||||
        )
 | 
			
		||||
@ -415,13 +399,13 @@ profile001 = startProfileAt([205.96, 254.59], sketch002)
 | 
			
		||||
        cameraPos: { x: 16020, y: -2000, z: 10500 },
 | 
			
		||||
        cameraTarget: { x: -150, y: -4500, z: -80 },
 | 
			
		||||
        beforeChamferSnippet: `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)
 | 
			
		||||
      chamfer({length=30,tags=[
 | 
			
		||||
      chamfer(extrude001,length=30,tags=[
 | 
			
		||||
      seg01,
 | 
			
		||||
      getNextAdjacentEdge(yo),
 | 
			
		||||
      getNextAdjacentEdge(seg02),
 | 
			
		||||
      getOppositeEdge(seg01)
 | 
			
		||||
    ]}, extrude001)`,
 | 
			
		||||
        beforeChamferSnippetEnd: '}, extrude001)',
 | 
			
		||||
      getOppositeEdge(seg01),
 | 
			
		||||
    ])`,
 | 
			
		||||
        beforeChamferSnippetEnd: ')',
 | 
			
		||||
        afterChamferSelectSnippet:
 | 
			
		||||
          'sketch002 = startSketchOn(extrude001, seg03)',
 | 
			
		||||
        afterRectangle1stClickSnippet:
 | 
			
		||||
@ -447,18 +431,20 @@ profile001 = startProfileAt([205.96, 254.59], sketch002)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
chamf = chamfer({
 | 
			
		||||
chamf = chamfer(
 | 
			
		||||
       extrude001,
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, extrude001, $seg03)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       tags = [getOppositeEdge(seg01)],
 | 
			
		||||
       tag = $seg03,
 | 
			
		||||
     )
 | 
			
		||||
  |> chamfer(
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [
 | 
			
		||||
         seg01,
 | 
			
		||||
         getNextAdjacentEdge(yo),
 | 
			
		||||
         getNextAdjacentEdge(seg02)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
sketch002 = startSketchOn(extrude001, seg03)
 | 
			
		||||
profile001 = startProfileAt([205.96, 254.59], sketch002)
 | 
			
		||||
  |> angledLine([0, 11.39], %, $rectangleSegmentA002)
 | 
			
		||||
@ -470,7 +456,7 @@ profile001 = startProfileAt([205.96, 254.59], sketch002)
 | 
			
		||||
       segAng(rectangleSegmentA002),
 | 
			
		||||
       -segLen(rectangleSegmentA002)
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> line(endAbsolute=[profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
`,
 | 
			
		||||
        { shouldNormalise: true }
 | 
			
		||||
@ -1492,9 +1478,9 @@ sketch002 = startSketchOn('XZ')
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
`
 | 
			
		||||
    const firstFilletDeclaration = 'fillet({ radius = 5, tags = [seg01] }, %)'
 | 
			
		||||
    const firstFilletDeclaration = 'fillet(radius = 5, tags = [seg01])'
 | 
			
		||||
    const secondFilletDeclaration =
 | 
			
		||||
      'fillet({       radius = 5,       tags = [getOppositeEdge(seg01)]     }, %)'
 | 
			
		||||
      'fillet(radius = 5, tags = [getOppositeEdge(seg01)])'
 | 
			
		||||
 | 
			
		||||
    // Locators
 | 
			
		||||
    const firstEdgeLocation = { x: 600, y: 193 }
 | 
			
		||||
@ -1594,7 +1580,7 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
      await editor.expectEditor.toContain(firstFilletDeclaration)
 | 
			
		||||
      await editor.expectState({
 | 
			
		||||
        diagnostics: [],
 | 
			
		||||
        activeLines: ['|>fillet({radius=5,tags=[seg01]},%)'],
 | 
			
		||||
        activeLines: ['|> fillet(radius = 5, tags = [seg01])'],
 | 
			
		||||
        highlightedCode: '',
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
@ -1674,7 +1660,7 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
      await editor.expectEditor.toContain(secondFilletDeclaration)
 | 
			
		||||
      await editor.expectState({
 | 
			
		||||
        diagnostics: [],
 | 
			
		||||
        activeLines: ['radius=5,'],
 | 
			
		||||
        activeLines: ['|>fillet(radius=5,tags=[getOppositeEdge(seg01)])'],
 | 
			
		||||
        highlightedCode: '',
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
@ -1726,18 +1712,17 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [seg01] }, %) // fillet01
 | 
			
		||||
  |> fillet({ radius = 5, tags = [seg02] }, %) // fillet02
 | 
			
		||||
fillet03 = fillet({  radius = 5,  tags = [getOppositeEdge(seg01)]}, extrude001)
 | 
			
		||||
fillet04 = fillet({  radius = 5,  tags = [getOppositeEdge(seg02)]}, extrude001)
 | 
			
		||||
  |> fillet(radius = 5, tags = [seg01]) // fillet01
 | 
			
		||||
  |> fillet(radius = 5, tags = [seg02]) // fillet02
 | 
			
		||||
fillet03 = fillet(extrude001, radius = 5, tags = [getOppositeEdge(seg01)])
 | 
			
		||||
fillet04 = fillet(extrude001, radius = 5, tags = [getOppositeEdge(seg02)])
 | 
			
		||||
`
 | 
			
		||||
    const pipedFilletDeclaration = 'fillet({ radius = 5, tags = [seg01] }, %)'
 | 
			
		||||
    const secondPipedFilletDeclaration =
 | 
			
		||||
      'fillet({ radius = 5, tags = [seg02] }, %)'
 | 
			
		||||
    const pipedFilletDeclaration = 'fillet(radius = 5, tags = [seg01])'
 | 
			
		||||
    const secondPipedFilletDeclaration = 'fillet(radius = 5, tags = [seg02])'
 | 
			
		||||
    const standaloneFilletDeclaration =
 | 
			
		||||
      'fillet03 = fillet({  radius = 5,  tags = [getOppositeEdge(seg01)]}, extrude001)'
 | 
			
		||||
      'fillet03 = fillet(extrude001, radius = 5, tags = [getOppositeEdge(seg01)])'
 | 
			
		||||
    const secondStandaloneFilletDeclaration =
 | 
			
		||||
      'fillet04 = fillet({  radius = 5,  tags = [getOppositeEdge(seg02)]}, extrude001)'
 | 
			
		||||
      'fillet04 = fillet(extrude001, radius = 5, tags = [getOppositeEdge(seg02)])'
 | 
			
		||||
 | 
			
		||||
    // Locators
 | 
			
		||||
    const pipedFilletEdgeLocation = { x: 600, y: 193 }
 | 
			
		||||
@ -1871,9 +1856,9 @@ fillet04 = fillet({  radius = 5,  tags = [getOppositeEdge(seg02)]}, extrude001)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
`
 | 
			
		||||
    const firstChamferDeclaration = 'chamfer({ length = 5, tags = [seg01] }, %)'
 | 
			
		||||
    const firstChamferDeclaration = 'chamfer(length = 5, tags = [seg01])'
 | 
			
		||||
    const secondChamferDeclaration =
 | 
			
		||||
      'chamfer({       length = 5,       tags = [getOppositeEdge(seg01)]     }, %)'
 | 
			
		||||
      'chamfer(length = 5, tags = [getOppositeEdge(seg01)])'
 | 
			
		||||
 | 
			
		||||
    // Locators
 | 
			
		||||
    const firstEdgeLocation = { x: 600, y: 193 }
 | 
			
		||||
@ -1964,7 +1949,7 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
      await editor.expectEditor.toContain(firstChamferDeclaration)
 | 
			
		||||
      await editor.expectState({
 | 
			
		||||
        diagnostics: [],
 | 
			
		||||
        activeLines: ['|>chamfer({length=5,tags=[seg01]},%)'],
 | 
			
		||||
        activeLines: ['|>chamfer(length=5,tags=[seg01])'],
 | 
			
		||||
        highlightedCode: '',
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
@ -2048,7 +2033,7 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
      await editor.expectEditor.toContain(secondChamferDeclaration)
 | 
			
		||||
      await editor.expectState({
 | 
			
		||||
        diagnostics: [],
 | 
			
		||||
        activeLines: ['length=5,'],
 | 
			
		||||
        activeLines: ['|>chamfer(length=5,tags=[getOppositeEdge(seg01)])'],
 | 
			
		||||
        highlightedCode: '',
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
@ -2096,18 +2081,17 @@ extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -12)
 | 
			
		||||
  |> chamfer({ length = 5, tags = [seg01] }, %) // chamfer01
 | 
			
		||||
  |> chamfer({ length = 5, tags = [seg02] }, %) // chamfer02
 | 
			
		||||
chamfer03 = chamfer({  length = 5,  tags = [getOppositeEdge(seg01)]}, extrude001)
 | 
			
		||||
chamfer04 = chamfer({  length = 5,  tags = [getOppositeEdge(seg02)]}, extrude001)
 | 
			
		||||
  |> chamfer(length = 5, tags = [seg01]) // chamfer01
 | 
			
		||||
  |> chamfer(length = 5, tags = [seg02]) // chamfer02
 | 
			
		||||
chamfer03 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])
 | 
			
		||||
chamfer04 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg02)])
 | 
			
		||||
`
 | 
			
		||||
    const pipedChamferDeclaration = 'chamfer({ length = 5, tags = [seg01] }, %)'
 | 
			
		||||
    const secondPipedChamferDeclaration =
 | 
			
		||||
      'chamfer({ length = 5, tags = [seg02] }, %)'
 | 
			
		||||
    const pipedChamferDeclaration = 'chamfer(length = 5, tags = [seg01])'
 | 
			
		||||
    const secondPipedChamferDeclaration = 'chamfer(length = 5, tags = [seg02])'
 | 
			
		||||
    const standaloneChamferDeclaration =
 | 
			
		||||
      'chamfer03 = chamfer({  length = 5,  tags = [getOppositeEdge(seg01)]}, extrude001)'
 | 
			
		||||
      'chamfer03 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])'
 | 
			
		||||
    const secondStandaloneChamferDeclaration =
 | 
			
		||||
      'chamfer04 = chamfer({  length = 5,  tags = [getOppositeEdge(seg02)]}, extrude001)'
 | 
			
		||||
      'chamfer04 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg02)])'
 | 
			
		||||
 | 
			
		||||
    // Locators
 | 
			
		||||
    const pipedChamferEdgeLocation = { x: 600, y: 193 }
 | 
			
		||||
 | 
			
		||||
@ -424,7 +424,7 @@ test(
 | 
			
		||||
test(
 | 
			
		||||
  'when code with error first loads you get errors in console',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ context, page }, testInfo) => {
 | 
			
		||||
  async ({ context, page, editor }, testInfo) => {
 | 
			
		||||
    await context.folderSetupFn(async (dir) => {
 | 
			
		||||
      await fsp.mkdir(path.join(dir, 'broken-code'), { recursive: true })
 | 
			
		||||
      await fsp.copyFile(
 | 
			
		||||
@ -434,16 +434,19 @@ test(
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
 | 
			
		||||
    await expect(page.getByText('broken-code')).toBeVisible()
 | 
			
		||||
 | 
			
		||||
    await page.getByText('broken-code').click()
 | 
			
		||||
 | 
			
		||||
    // Gotcha: You can not use scene.waitForExecutionDone() since the KCL code is going to fail
 | 
			
		||||
    await expect(page.getByTestId('loading')).toBeAttached()
 | 
			
		||||
    await expect(page.getByTestId('loading')).not.toBeAttached({
 | 
			
		||||
      timeout: 20_000,
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    // Gotcha: Scroll to the text content in code mirror because CodeMirror lazy loads DOM content
 | 
			
		||||
    await editor.scrollToText(
 | 
			
		||||
      "|> line(end = [0, wallMountL], tag = 'outerEdge')"
 | 
			
		||||
    )
 | 
			
		||||
    // error in guter
 | 
			
		||||
    await expect(page.locator('.cm-lint-marker-error')).toBeVisible()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -764,15 +764,15 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
 | 
			
		||||
    |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
    |> close()
 | 
			
		||||
  extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
    |> chamfer({
 | 
			
		||||
    |> chamfer(
 | 
			
		||||
     length = 30,
 | 
			
		||||
     tags = [
 | 
			
		||||
       seg01,
 | 
			
		||||
       getNextAdjacentEdge(yo),
 | 
			
		||||
       getNextAdjacentEdge(seg02),
 | 
			
		||||
       getOppositeEdge(seg01)
 | 
			
		||||
     ]
 | 
			
		||||
   }, %)
 | 
			
		||||
     ],
 | 
			
		||||
   )
 | 
			
		||||
  `)
 | 
			
		||||
    await expect(
 | 
			
		||||
      page.getByTestId('model-state-indicator-execution-done')
 | 
			
		||||
@ -810,15 +810,15 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
 | 
			
		||||
    await checkCodeAtHoverPosition(
 | 
			
		||||
      'oppositeChamfer',
 | 
			
		||||
      oppositeChamfer,
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)chamfer({length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)]},%)`,
 | 
			
		||||
      '}, %)'
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)chamfer(length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)],)`,
 | 
			
		||||
      '   )'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    await checkCodeAtHoverPosition(
 | 
			
		||||
      'baseChamfer',
 | 
			
		||||
      baseChamfer,
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)chamfer({length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)]},%)`,
 | 
			
		||||
      '}, %)'
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)chamfer(length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)],)`,
 | 
			
		||||
      '   )'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    await u.openAndClearDebugPanel()
 | 
			
		||||
@ -848,15 +848,15 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
 | 
			
		||||
    await checkCodeAtHoverPosition(
 | 
			
		||||
      'adjacentChamfer1',
 | 
			
		||||
      adjacentChamfer1,
 | 
			
		||||
      `line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)chamfer({length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)]},%)`,
 | 
			
		||||
      '}, %)'
 | 
			
		||||
      `line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)chamfer(length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)],)`,
 | 
			
		||||
      '   )'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    await checkCodeAtHoverPosition(
 | 
			
		||||
      'adjacentChamfer2',
 | 
			
		||||
      adjacentChamfer2,
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)chamfer({length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)]},%)`,
 | 
			
		||||
      '}, %)'
 | 
			
		||||
      `angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)chamfer(length=30,tags=[seg01,getNextAdjacentEdge(yo),getNextAdjacentEdge(seg02),getOppositeEdge(seg01)],)`,
 | 
			
		||||
      '   )'
 | 
			
		||||
    )
 | 
			
		||||
  })
 | 
			
		||||
  test("Extrude button should be disabled if there's no extrudable geometry when nothing is selected", async ({
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								exp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								exp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
sketch001=startSketchOn('XZ')|>startProfileAt([75.8,317.2],%)//[$startCapTag,$EndCapTag]|>angledLine([0,268.43],%,$rectangleSegmentA001)|>angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)|>angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)|>line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)|>close()extrude001=extrude(sketch001,length=100)|>chamfer(length=30,tags=[getOppositeEdge(seg01)],tag=$seg03)|>chamfer(length=30,tags=[seg01],tag=$seg04)|>chamfer(length=30,tags=[getNextAdjacentEdge(seg02)],tag=$seg05)|>chamfer(length=30,tags=[getNextAdjacentEdge(yo)],tag=$seg06)sketch004=startSketchOn(extrude001,seg05)profile003=startProfileAt([82.57,322.96],sketch004)|>angledLine([0,11.16],%,$rectangleSegmentA004)|>angledLine([segAng(rectangleSegmentA004)-90,103.07],%)|>angledLine([segAng(rectangleSegmentA004),-segLen(rectangleSegmentA004)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch003=startSketchOn(extrude001,seg04)profile002=startProfileAt([-209.64,255.28],sketch003)|>angledLine([0,11.56],%,$rectangleSegmentA003)|>angledLine([segAng(rectangleSegmentA003)-90,106.84],%)|>angledLine([segAng(rectangleSegmentA003),-segLen(rectangleSegmentA003)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch002=startSketchOn(extrude001,seg03)profile001=startProfileAt([205.96,254.59],sketch002)|>angledLine([0,11.39],%,$rectangleSegmentA002)|>angledLine([segAng(rectangleSegmentA002)-90,105.26],%)|>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()
 | 
			
		||||
							
								
								
									
										1
									
								
								got
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								got
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
sketch001=startSketchOn('XZ')|>startProfileAt([75.8,317.2],%)//[$startCapTag,$EndCapTag]|>angledLine([0,268.43],%,$rectangleSegmentA001)|>angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)|>angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)|>line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)|>close()extrude001=extrude(sketch001,length=100)|>chamfer(length=30,tags=[getOppositeEdge(seg01)],tag=$seg03)|>chamfer(length=30,tags=[seg01],tag=$seg04)|>chamfer(length=30,tags=[getNextAdjacentEdge(seg02)],tag=$seg05)|>chamfer(length=30,tags=[getNextAdjacentEdge(yo)],tag=$seg06)sketch005=startSketchOn(extrude001,seg06)profile004=startProfileAt([-23.43,19.69],sketch005)|>angledLine([0,9.1],%,$rectangleSegmentA005)|>angledLine([segAng(rectangleSegmentA005)-90,84.07],%)|>angledLine([segAng(rectangleSegmentA005),-segLen(rectangleSegmentA005)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch004=startSketchOn(extrude001,seg05)profile003=startProfileAt([82.57,322.96],sketch004)|>angledLine([0,11.16],%,$rectangleSegmentA004)|>angledLine([segAng(rectangleSegmentA004)-90,103.07],%)|>angledLine([segAng(rectangleSegmentA004),-segLen(rectangleSegmentA004)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch003=startSketchOn(extrude001,seg04)profile002=startProfileAt([-209.64,255.28],sketch003)|>angledLine([0,11.56],%,$rectangleSegmentA003)|>angledLine([segAng(rectangleSegmentA003)-90,106.84],%)|>angledLine([segAng(rectangleSegmentA003),-segLen(rectangleSegmentA003)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch002=startSketchOn(extrude001,seg03)profile001=startProfileAt([205.96,254.59],sketch002)|>angledLine([0,11.39],%,$rectangleSegmentA002)|>angledLine([segAng(rectangleSegmentA002)-90,105.26],%)|>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()
 | 
			
		||||
@ -85,7 +85,7 @@
 | 
			
		||||
    "fmt": "prettier --write ./src *.ts *.json *.js ./e2e ./packages",
 | 
			
		||||
    "fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages",
 | 
			
		||||
    "fetch:wasm": "./get-latest-wasm-bundle.sh",
 | 
			
		||||
    "fetch:samples": "echo \"Fetching latest KCL samples...\" && curl -o public/kcl-samples-manifest-fallback.json https://raw.githubusercontent.com/KittyCAD/kcl-samples/next/manifest.json",
 | 
			
		||||
    "fetch:samples": "echo \"Fetching latest KCL samples...\" && curl -o public/kcl-samples-manifest-fallback.json https://raw.githubusercontent.com/KittyCAD/achalmers/kw-fillet-chamfer/manifest.json",
 | 
			
		||||
    "isomorphic-copy-wasm": "(copy src/wasm-lib/pkg/wasm_lib_bg.wasm public || cp src/wasm-lib/pkg/wasm_lib_bg.wasm public)",
 | 
			
		||||
    "build:wasm-dev": "yarn wasm-prep && (cd src/wasm-lib && wasm-pack build --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt",
 | 
			
		||||
    "build:wasm": "yarn wasm-prep && cd src/wasm-lib && wasm-pack build --release --target web --out-dir pkg && cargo test -p kcl-lib export_bindings && cd ../.. && yarn isomorphic-copy-wasm && yarn fmt",
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@ child_process.spawnSync('git', [
 | 
			
		||||
  'clone',
 | 
			
		||||
  '--single-branch',
 | 
			
		||||
  '--branch',
 | 
			
		||||
  'next',
 | 
			
		||||
  'achalmers/kw-fillet-chamfer',
 | 
			
		||||
  URL_GIT_KCL_SAMPLES,
 | 
			
		||||
  DIR_KCL_SAMPLES,
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
@ -626,7 +626,6 @@ export function sketchOnExtrudedFace(
 | 
			
		||||
  } else {
 | 
			
		||||
    _tag = createLiteral(info.subType.toUpperCase())
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const newSketch = createVariableDeclaration(
 | 
			
		||||
    newSketchName,
 | 
			
		||||
    createCallExpressionStdLib('startSketchOn', [
 | 
			
		||||
 | 
			
		||||
@ -412,7 +412,7 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -439,7 +439,7 @@ extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -466,7 +466,7 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -493,7 +493,7 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg02] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg02])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -511,7 +511,7 @@ extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [seg01] }, %)`
 | 
			
		||||
  |> fillet( radius = 5, tags = [seg01] )`
 | 
			
		||||
        const segmentSnippets = ['line(end = [-20, 0])']
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
@ -521,8 +521,8 @@ extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [seg01] }, %)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg02] }, %)`
 | 
			
		||||
  |> fillet(radius = 5, tags = [seg01])
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg02])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -540,7 +540,7 @@ extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> chamfer({ length = 5, tags = [seg01] }, %)`
 | 
			
		||||
  |> chamfer(length = 5, tags = [seg01])`
 | 
			
		||||
        const segmentSnippets = ['line(end = [-20, 0])']
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
@ -550,8 +550,8 @@ extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> chamfer({ length = 5, tags = [seg01] }, %)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg02] }, %)`
 | 
			
		||||
  |> chamfer(length = 5, tags = [seg01])
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg02])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -578,7 +578,7 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01, seg02] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01, seg02])`
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -617,7 +617,7 @@ extrude002 = extrude(sketch002, length = -25)` // <--- body 2
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01, seg02] }, %)
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01, seg02])
 | 
			
		||||
sketch002 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([30, 10], %)
 | 
			
		||||
  |> line(end = [15, 0])
 | 
			
		||||
@ -626,7 +626,7 @@ sketch002 = startSketchOn('XY')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude002 = extrude(sketch002, length = -25)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg03] }, %)` // <-- able to add a new one
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg03])` // <-- able to add a new one
 | 
			
		||||
 | 
			
		||||
        await runModifyAstCloneWithEdgeTreatmentAndTag(
 | 
			
		||||
          code,
 | 
			
		||||
@ -647,8 +647,8 @@ extrude002 = extrude(sketch002, length = -25)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
        const edgeTreatmentSnippet = `${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
        const edgeTreatmentSnippet = `${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0])
 | 
			
		||||
@ -673,8 +673,8 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, extrude001)`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, extrude001)`
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0])
 | 
			
		||||
@ -700,8 +700,8 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [getOppositeEdge(seg01)] }, extrude001)`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [getOppositeEdge(seg01)] }, extrude001)`
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0])
 | 
			
		||||
@ -726,8 +726,8 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [getNextAdjacentEdge(seg01)] }, extrude001)`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}({ ${parameterName} = 3, tags = [getNextAdjacentEdge(seg01)] }, extrude001)`
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [getNextAdjacentEdge(seg01)])`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 3, tags = [getNextAdjacentEdge(seg01)])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0])
 | 
			
		||||
@ -753,11 +753,11 @@ extrude001 = extrude(sketch001, length = -15)`
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [getOppositeEdge(seg02)] }, %)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 6, tags = [seg02] }, extrude001)
 | 
			
		||||
chamfer001 = chamfer({ length = 5, tags = [getOppositeEdge(seg01)] }, extrude001)`
 | 
			
		||||
        const edgeTreatmentSnippet = `${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])
 | 
			
		||||
  |> fillet(radius = 5, tags = [getOppositeEdge(seg02)])
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 6, tags = [seg02])
 | 
			
		||||
chamfer001 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
        const edgeTreatmentSnippet = `${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0], tag = $seg01)
 | 
			
		||||
@ -766,15 +766,9 @@ chamfer001 = chamfer({ length = 5, tags = [getOppositeEdge(seg01)] }, extrude001
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 5,
 | 
			
		||||
       tags = [getOppositeEdge(seg02)]
 | 
			
		||||
     }, %)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 6, tags = [seg02] }, extrude001)
 | 
			
		||||
chamfer001 = chamfer({
 | 
			
		||||
  length = 5,
 | 
			
		||||
  tags = [getOppositeEdge(seg01)]
 | 
			
		||||
}, extrude001)`
 | 
			
		||||
  |> fillet(radius = 5, tags = [getOppositeEdge(seg02)])
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 6, tags = [seg02])
 | 
			
		||||
chamfer001 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
 | 
			
		||||
        await runDeleteEdgeTreatmentTest(
 | 
			
		||||
          code,
 | 
			
		||||
@ -791,11 +785,11 @@ chamfer001 = chamfer({
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [getOppositeEdge(seg02)] }, %)
 | 
			
		||||
fillet001 = ${edgeTreatmentType}({ ${parameterName} = 6, tags = [seg02] }, extrude001)
 | 
			
		||||
chamfer001 = chamfer({ length = 5, tags = [getOppositeEdge(seg01)] }, extrude001)`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}({ ${parameterName} = 6, tags = [seg02] }, extrude001)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])
 | 
			
		||||
  |> fillet( radius = 5, tags = [getOppositeEdge(seg02)] )
 | 
			
		||||
fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 6, tags = [seg02])
 | 
			
		||||
chamfer001 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
        const edgeTreatmentSnippet = `fillet001 = ${edgeTreatmentType}(extrude001, ${parameterName} = 6, tags = [seg02])`
 | 
			
		||||
        const expectedCode = `sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([-10, 10], %)
 | 
			
		||||
  |> line(end = [20, 0], tag = $seg01)
 | 
			
		||||
@ -804,15 +798,9 @@ chamfer001 = chamfer({ length = 5, tags = [getOppositeEdge(seg01)] }, extrude001
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -15)
 | 
			
		||||
  |> ${edgeTreatmentType}({ ${parameterName} = 3, tags = [seg01] }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 5,
 | 
			
		||||
       tags = [getOppositeEdge(seg02)]
 | 
			
		||||
     }, %)
 | 
			
		||||
chamfer001 = chamfer({
 | 
			
		||||
  length = 5,
 | 
			
		||||
  tags = [getOppositeEdge(seg01)]
 | 
			
		||||
}, extrude001)`
 | 
			
		||||
  |> ${edgeTreatmentType}(${parameterName} = 3, tags = [seg01])
 | 
			
		||||
  |> fillet(radius = 5, tags = [getOppositeEdge(seg02)])
 | 
			
		||||
chamfer001 = chamfer(extrude001, length = 5, tags = [getOppositeEdge(seg01)])`
 | 
			
		||||
 | 
			
		||||
        await runDeleteEdgeTreatmentTest(
 | 
			
		||||
          code,
 | 
			
		||||
@ -832,14 +820,14 @@ describe('Testing isTagUsedInEdgeTreatment', () => {
 | 
			
		||||
  |> line(end = [-6.37, 3.88], tag = $seg02)
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -5)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = 1.11,
 | 
			
		||||
       tags = [
 | 
			
		||||
         getOppositeEdge(seg01),
 | 
			
		||||
         seg01,
 | 
			
		||||
         getPreviousAdjacentEdge(seg02)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
     )
 | 
			
		||||
`
 | 
			
		||||
  it('should correctly identify getOppositeEdge and baseEdge edges', () => {
 | 
			
		||||
    const ast = assertParse(code)
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,8 @@ import {
 | 
			
		||||
  createArrayExpression,
 | 
			
		||||
  createIdentifier,
 | 
			
		||||
  createPipeExpression,
 | 
			
		||||
  createCallExpressionStdLibKw,
 | 
			
		||||
  createLabeledArg,
 | 
			
		||||
} from '../modifyAst'
 | 
			
		||||
import {
 | 
			
		||||
  getNodeFromPath,
 | 
			
		||||
@ -166,13 +168,14 @@ export function modifyAstWithEdgeTreatmentAndTag(
 | 
			
		||||
    const firstTag = tagCalls[0] // can be Identifier or CallExpression (for opposite and adjacent edges)
 | 
			
		||||
 | 
			
		||||
    // edge treatment call
 | 
			
		||||
    const edgeTreatmentCall = createCallExpressionStdLib(parameters.type, [
 | 
			
		||||
      createObjectExpression({
 | 
			
		||||
        [parameterName]: parameterValue,
 | 
			
		||||
        tags: createArrayExpression(tagCalls),
 | 
			
		||||
      }),
 | 
			
		||||
      createPipeSubstitution(),
 | 
			
		||||
    ])
 | 
			
		||||
    const edgeTreatmentCall = createCallExpressionStdLibKw(
 | 
			
		||||
      parameters.type,
 | 
			
		||||
      null,
 | 
			
		||||
      [
 | 
			
		||||
        createLabeledArg(parameterName, parameterValue),
 | 
			
		||||
        createLabeledArg('tags', createArrayExpression(tagCalls)),
 | 
			
		||||
      ]
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    // Locate the extrude call
 | 
			
		||||
    const locatedExtrudeDeclarator = locateExtrudeDeclarator(
 | 
			
		||||
@ -751,6 +754,16 @@ export const isTagUsedInEdgeTreatment = ({
 | 
			
		||||
      ) {
 | 
			
		||||
        inEdgeTreatment = true
 | 
			
		||||
      }
 | 
			
		||||
      if (inEdgeTreatment && node.type === 'CallExpressionKw') {
 | 
			
		||||
        node.arguments.forEach((prop) => {
 | 
			
		||||
          if (
 | 
			
		||||
            prop.label.name === 'tags' &&
 | 
			
		||||
            prop.arg.type === 'ArrayExpression'
 | 
			
		||||
          ) {
 | 
			
		||||
            inObj = true
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      if (inEdgeTreatment && node.type === 'ObjectExpression') {
 | 
			
		||||
        node.properties.forEach((prop) => {
 | 
			
		||||
          if (
 | 
			
		||||
@ -795,6 +808,16 @@ export const isTagUsedInEdgeTreatment = ({
 | 
			
		||||
      ) {
 | 
			
		||||
        inEdgeTreatment = false
 | 
			
		||||
      }
 | 
			
		||||
      if (inEdgeTreatment && node.type === 'CallExpressionKw') {
 | 
			
		||||
        node.arguments.forEach((prop) => {
 | 
			
		||||
          if (
 | 
			
		||||
            prop.label.name === 'tags' &&
 | 
			
		||||
            prop.arg.type === 'ArrayExpression'
 | 
			
		||||
          ) {
 | 
			
		||||
            inObj = true
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      if (inEdgeTreatment && node.type === 'ObjectExpression') {
 | 
			
		||||
        node.properties.forEach((prop) => {
 | 
			
		||||
          if (
 | 
			
		||||
 | 
			
		||||
@ -251,27 +251,24 @@ describe('testing addTagForSketchOnFace', () => {
 | 
			
		||||
  const chamferTestCases = [
 | 
			
		||||
    {
 | 
			
		||||
      desc: 'chamfer in pipeExpr',
 | 
			
		||||
      originalChamfer: `  |> chamfer({
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [seg01, getOppositeEdge(seg01)]
 | 
			
		||||
     }, %)`,
 | 
			
		||||
      expectedChamfer: `  |> chamfer({
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, %, $seg03)
 | 
			
		||||
  |> chamfer({ length = 30, tags = [seg01] }, %)`,
 | 
			
		||||
      originalChamfer: `  |> chamfer(length = 30, tags = [seg01, getOppositeEdge(seg01)])`,
 | 
			
		||||
      expectedChamfer: `  |> chamfer(length = 30, tags = [getOppositeEdge(seg01)], tag = $seg03)
 | 
			
		||||
  |> chamfer(length = 30, tags = [seg01])`,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      desc: 'chamfer with its own variable',
 | 
			
		||||
      originalChamfer: `chamf = chamfer({
 | 
			
		||||
      originalChamfer: `chamf = chamfer(
 | 
			
		||||
       extrude001,
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [seg01, getOppositeEdge(seg01)]
 | 
			
		||||
     }, extrude001)`,
 | 
			
		||||
      expectedChamfer: `chamf = chamfer({
 | 
			
		||||
       tags = [seg01, getOppositeEdge(seg01)],
 | 
			
		||||
     )`,
 | 
			
		||||
      expectedChamfer: `chamf = chamfer(
 | 
			
		||||
       extrude001,
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, extrude001, $seg03)
 | 
			
		||||
  |> chamfer({ length = 30, tags = [seg01] }, %)`,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)],
 | 
			
		||||
       tag = $seg03,
 | 
			
		||||
     )
 | 
			
		||||
  |> chamfer(length = 30, tags = [seg01])`,
 | 
			
		||||
    },
 | 
			
		||||
    // Add more test cases here if needed
 | 
			
		||||
  ] as const
 | 
			
		||||
 | 
			
		||||
@ -2573,22 +2573,22 @@ export function replaceSketchLine({
 | 
			
		||||
 *
 | 
			
		||||
 * However things get complicated in situations like:
 | 
			
		||||
 * ```ts
 | 
			
		||||
 * |> chamfer({
 | 
			
		||||
 *     length: 1,
 | 
			
		||||
 *     tags: [tag1, tagOfInterest]
 | 
			
		||||
 *   }, %)
 | 
			
		||||
 * |> chamfer(
 | 
			
		||||
 *     length = 1,
 | 
			
		||||
 *     tags = [tag1, tagOfInterest],
 | 
			
		||||
 *   )
 | 
			
		||||
 * ```
 | 
			
		||||
 * Because tag declarator is not allowed on a chamfer with more than one tag,
 | 
			
		||||
 * They must be pulled apart into separate chamfer calls:
 | 
			
		||||
 * ```ts
 | 
			
		||||
 * |> chamfer({
 | 
			
		||||
 *     length: 1,
 | 
			
		||||
 *     tags: [tag1]
 | 
			
		||||
 *   }, %)
 | 
			
		||||
 * |> chamfer({
 | 
			
		||||
 *     length: 1,
 | 
			
		||||
 *     tags: [tagOfInterest]
 | 
			
		||||
 *   }, %, $newTagDeclarator)
 | 
			
		||||
 * |> chamfer(
 | 
			
		||||
 *     length = 1,
 | 
			
		||||
 *     tags = [tag1],
 | 
			
		||||
 *   )
 | 
			
		||||
 * |> chamfer(
 | 
			
		||||
 *     length = 1,
 | 
			
		||||
 *     tags = [tagOfInterest],
 | 
			
		||||
 *   , tag = $newTagDeclarator)
 | 
			
		||||
 * ```
 | 
			
		||||
 */
 | 
			
		||||
function addTagToChamfer(
 | 
			
		||||
@ -2625,25 +2625,22 @@ function addTagToChamfer(
 | 
			
		||||
  const callExpr = isPipeExpression
 | 
			
		||||
    ? pipeExpr.node.body[pipeIndex]
 | 
			
		||||
    : variableDec.node.init
 | 
			
		||||
  if (callExpr.type !== 'CallExpression')
 | 
			
		||||
  if (callExpr.type !== 'CallExpressionKw')
 | 
			
		||||
    return new Error('no chamfer call Expr')
 | 
			
		||||
  const chamferObjArg = callExpr.arguments[0]
 | 
			
		||||
  if (chamferObjArg.type !== 'ObjectExpression')
 | 
			
		||||
    return new Error('first argument should be an object expression')
 | 
			
		||||
  const inputTags = getObjExprProperty(chamferObjArg, 'tags')
 | 
			
		||||
  const inputTags = findKwArg('tags', callExpr)
 | 
			
		||||
  if (!inputTags) return new Error('no tags property')
 | 
			
		||||
  if (inputTags.expr.type !== 'ArrayExpression')
 | 
			
		||||
  if (inputTags.type !== 'ArrayExpression')
 | 
			
		||||
    return new Error('tags should be an array expression')
 | 
			
		||||
 | 
			
		||||
  const isChamferBreakUpNeeded = inputTags.expr.elements.length > 1
 | 
			
		||||
  const isChamferBreakUpNeeded = inputTags.elements.length > 1
 | 
			
		||||
  if (!isChamferBreakUpNeeded) {
 | 
			
		||||
    return addTag(2)(tagInfo)
 | 
			
		||||
    return addTagKw()(tagInfo)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // There's more than one input tag, we need to break that chamfer call into a separate chamfer call
 | 
			
		||||
  // so that it can have a tag declarator added.
 | 
			
		||||
  const tagIndexToPullOut = inputTags.expr.elements.findIndex((tag) => {
 | 
			
		||||
    // e.g. chamfer({ tags: [tagOfInterest, tag2] }, %)
 | 
			
		||||
  const tagIndexToPullOut = inputTags.elements.findIndex((tag) => {
 | 
			
		||||
    // e.g. chamfer(tags: [tagOfInterest, tag2])
 | 
			
		||||
    //                       ^^^^^^^^^^^^^
 | 
			
		||||
    const elementMatchesBaseTagType =
 | 
			
		||||
      edgeCutMeta?.subType === 'base' &&
 | 
			
		||||
@ -2651,7 +2648,7 @@ function addTagToChamfer(
 | 
			
		||||
      tag.name === edgeCutMeta.tagName
 | 
			
		||||
    if (elementMatchesBaseTagType) return true
 | 
			
		||||
 | 
			
		||||
    // e.g. chamfer({ tags: [getOppositeEdge(tagOfInterest), tag2] }, %)
 | 
			
		||||
    // e.g. chamfer(tags: [getOppositeEdge(tagOfInterest), tag2])
 | 
			
		||||
    //                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
			
		||||
    const tagMatchesOppositeTagType =
 | 
			
		||||
      edgeCutMeta?.subType === 'opposite' &&
 | 
			
		||||
@ -2661,7 +2658,7 @@ function addTagToChamfer(
 | 
			
		||||
      tag.arguments[0].name === edgeCutMeta.tagName
 | 
			
		||||
    if (tagMatchesOppositeTagType) return true
 | 
			
		||||
 | 
			
		||||
    // e.g. chamfer({ tags: [getNextAdjacentEdge(tagOfInterest), tag2] }, %)
 | 
			
		||||
    // e.g. chamfer(tags: [getNextAdjacentEdge(tagOfInterest), tag2])
 | 
			
		||||
    //                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
			
		||||
    const tagMatchesAdjacentTagType =
 | 
			
		||||
      edgeCutMeta?.subType === 'adjacent' &&
 | 
			
		||||
@ -2675,34 +2672,30 @@ function addTagToChamfer(
 | 
			
		||||
  })
 | 
			
		||||
  if (tagIndexToPullOut === -1) return new Error('tag not found')
 | 
			
		||||
  // get the tag we're pulling out
 | 
			
		||||
  const tagToPullOut = inputTags.expr.elements[tagIndexToPullOut]
 | 
			
		||||
  const tagToPullOut = inputTags.elements[tagIndexToPullOut]
 | 
			
		||||
  // and remove it from the original chamfer call
 | 
			
		||||
  // [pullOutTag, tag2] to [tag2]
 | 
			
		||||
  inputTags.expr.elements.splice(tagIndexToPullOut, 1)
 | 
			
		||||
  inputTags.elements.splice(tagIndexToPullOut, 1)
 | 
			
		||||
 | 
			
		||||
  // get the length of the chamfer we're breaking up, as the new chamfer will have the same length
 | 
			
		||||
  const chamferLength = getObjExprProperty(chamferObjArg, 'length')
 | 
			
		||||
  const chamferLength = findKwArg('length', callExpr)
 | 
			
		||||
  if (!chamferLength) return new Error('no chamfer length')
 | 
			
		||||
  const tagDec = createTagDeclarator(findUniqueName(_node, 'seg', 2))
 | 
			
		||||
  const solid3dIdentifierUsedInOriginalChamfer = callExpr.arguments[1]
 | 
			
		||||
  const newExpressionToInsert = createCallExpression('chamfer', [
 | 
			
		||||
    createObjectExpression({
 | 
			
		||||
      length: chamferLength.expr,
 | 
			
		||||
      // single tag to add to the new chamfer call
 | 
			
		||||
      tags: createArrayExpression([tagToPullOut]),
 | 
			
		||||
    }),
 | 
			
		||||
    isPipeExpression
 | 
			
		||||
      ? createPipeSubstitution()
 | 
			
		||||
      : solid3dIdentifierUsedInOriginalChamfer,
 | 
			
		||||
    tagDec,
 | 
			
		||||
  const solid3dIdentifierUsedInOriginalChamfer = callExpr.unlabeled
 | 
			
		||||
  const solid = isPipeExpression ? null : solid3dIdentifierUsedInOriginalChamfer
 | 
			
		||||
  const newExpressionToInsert = createCallExpressionStdLibKw('chamfer', solid, [
 | 
			
		||||
    createLabeledArg('length', chamferLength),
 | 
			
		||||
    // single tag to add to the new chamfer call
 | 
			
		||||
    createLabeledArg('tags', createArrayExpression([tagToPullOut])),
 | 
			
		||||
    createLabeledArg('tag', tagDec),
 | 
			
		||||
  ])
 | 
			
		||||
 | 
			
		||||
  // insert the new chamfer call with the tag declarator, add its above the original
 | 
			
		||||
  // insert the new chamfer call with the tag declarator, add it above the original
 | 
			
		||||
  // alternatively we could use `pipeIndex + 1` to insert it below the original
 | 
			
		||||
  if (isPipeExpression) {
 | 
			
		||||
    pipeExpr.node.body.splice(pipeIndex, 0, newExpressionToInsert)
 | 
			
		||||
  } else {
 | 
			
		||||
    callExpr.arguments[1] = createPipeSubstitution()
 | 
			
		||||
    callExpr.unlabeled = null // defaults to pipe substitution
 | 
			
		||||
    variableDec.node.init = createPipeExpression([
 | 
			
		||||
      newExpressionToInsert,
 | 
			
		||||
      callExpr,
 | 
			
		||||
 | 
			
		||||
@ -29,22 +29,22 @@ sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg06)
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(%, length = width)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = extFilletRadius,
 | 
			
		||||
       tags = [getNextAdjacentEdge(seg03)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       tags = [getNextAdjacentEdge(seg03)],
 | 
			
		||||
     )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletRadius,
 | 
			
		||||
       tags = [getNextAdjacentEdge(seg06)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
    radius = filletRadius,
 | 
			
		||||
    tags = [seg02, getOppositeEdge(seg02)],
 | 
			
		||||
  }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
    radius = filletRadius,
 | 
			
		||||
    tags = [seg05, getOppositeEdge(seg05)],
 | 
			
		||||
  }, %)
 | 
			
		||||
       tags = [getNextAdjacentEdge(seg06)],
 | 
			
		||||
     )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
      radius = filletRadius,
 | 
			
		||||
      tags = [seg02, getOppositeEdge(seg02)],
 | 
			
		||||
    )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
      radius = filletRadius,
 | 
			
		||||
      tags = [seg05, getOppositeEdge(seg05)],
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
sketch002 = startSketchOn(sketch001, seg03)
 | 
			
		||||
  |> circle({
 | 
			
		||||
 | 
			
		||||
@ -131,7 +131,7 @@ See later source ranges for more context. about the sweep`,
 | 
			
		||||
          prompts.push({
 | 
			
		||||
            prompt: `This selection is for a segment (line, xLine, angledLine etc) that has been swept (a general-sweep, either an extrusion, revolve, sweep or loft).
 | 
			
		||||
Because it now refers to an edge the way to refer to this edge is to add a tag to the segment, and then use that tag directly.
 | 
			
		||||
i.e. \`fillet({ radius = someInteger, tags = [newTag] }, %)\` will work in the case of filleting this edge
 | 
			
		||||
i.e. \`fillet( radius = someInteger, tags = [newTag])\` will work in the case of filleting this edge
 | 
			
		||||
See later source ranges for more context. about the sweep`,
 | 
			
		||||
            range: convertAppRangeToApiRange(selection.codeRef.range, code),
 | 
			
		||||
          })
 | 
			
		||||
 | 
			
		||||
@ -945,10 +945,7 @@ mod tests {
 | 
			
		||||
        let snippet = fillet_fn.to_autocomplete_snippet().unwrap();
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            snippet,
 | 
			
		||||
            r#"fillet({
 | 
			
		||||
	radius = ${0:3.14},
 | 
			
		||||
	tags = [${1:"tag_or_edge_fn"}],
 | 
			
		||||
}, ${2:%})${}"#
 | 
			
		||||
            r#"fillet(${0:%}, radius = ${1:3.14}, tags = [${2:"tag_or_edge_fn"}])${}"#
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -109,14 +109,14 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
  |> line([0, -wallMountL + thickness], %)
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(width, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(innerEdge, %)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR + thickness,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(outerEdge, %)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR,
 | 
			
		||||
       tags = [getPreviousAdjacentEdge(innerEdge, %)]
 | 
			
		||||
     )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR + thickness,
 | 
			
		||||
       tags = [getPreviousAdjacentEdge(outerEdge, %)]
 | 
			
		||||
     )
 | 
			
		||||
"
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
@ -156,14 +156,14 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
  |> line([0, -wallMountL + thickness], %)
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(width, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(innerEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR + thickness,
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(outerEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR,
 | 
			
		||||
       tags = [getPreviousAdjacentEdge(innerEdge)]
 | 
			
		||||
     )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR + thickness,
 | 
			
		||||
       tags = [getPreviousAdjacentEdge(outerEdge)]
 | 
			
		||||
     )
 | 
			
		||||
"
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2359,11 +2359,11 @@ async fn kcl_test_kcl_lsp_diagnostics_on_execution_error() {
 | 
			
		||||
  |> line(end = [-20, 0])
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(length = 3.14)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
    radius: 3.14,
 | 
			
		||||
    tags: ["tag_or_edge_fn"],
 | 
			
		||||
  }, %)"#
 | 
			
		||||
                    .to_string(),
 | 
			
		||||
  |> fillet(
 | 
			
		||||
    radius = 3.14,
 | 
			
		||||
    tags = ["tag_or_edge_fn"],
 | 
			
		||||
  )"#
 | 
			
		||||
                .to_string(),
 | 
			
		||||
            },
 | 
			
		||||
        })
 | 
			
		||||
        .await;
 | 
			
		||||
 | 
			
		||||
@ -517,13 +517,6 @@ impl Args {
 | 
			
		||||
        FromArgs::from_args(self, 0)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub(crate) fn get_data_and_solid_and_tag<'a, T>(&'a self) -> Result<(T, Box<Solid>, Option<TagNode>), KclError>
 | 
			
		||||
    where
 | 
			
		||||
        T: serde::de::DeserializeOwned + FromKclValue<'a> + Sized,
 | 
			
		||||
    {
 | 
			
		||||
        FromArgs::from_args(self, 0)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub(crate) fn get_tag_to_number_sketch(&self) -> Result<(TagIdentifier, f64, Sketch), KclError> {
 | 
			
		||||
        FromArgs::from_args(self, 0)
 | 
			
		||||
    }
 | 
			
		||||
@ -994,29 +987,6 @@ impl<'a> FromKclValue<'a> for super::sketch::BezierData {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<'a> FromKclValue<'a> for super::chamfer::ChamferData {
 | 
			
		||||
    fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
 | 
			
		||||
        let obj = arg.as_object()?;
 | 
			
		||||
        let_field_of!(obj, length);
 | 
			
		||||
        let_field_of!(obj, tags);
 | 
			
		||||
        Some(Self { length, tags })
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<'a> FromKclValue<'a> for super::fillet::FilletData {
 | 
			
		||||
    fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
 | 
			
		||||
        let obj = arg.as_object()?;
 | 
			
		||||
        let_field_of!(obj, radius);
 | 
			
		||||
        let_field_of!(obj, tolerance?);
 | 
			
		||||
        let_field_of!(obj, tags);
 | 
			
		||||
        Some(Self {
 | 
			
		||||
            radius,
 | 
			
		||||
            tolerance,
 | 
			
		||||
            tags,
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<'a> FromKclValue<'a> for super::helix::HelixRevolutionsData {
 | 
			
		||||
    fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
 | 
			
		||||
        let obj = arg.as_object()?;
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,6 @@ use anyhow::Result;
 | 
			
		||||
use derive_docs::stdlib;
 | 
			
		||||
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::CutType, ModelingCmd};
 | 
			
		||||
use kittycad_modeling_cmds as kcmc;
 | 
			
		||||
use schemars::JsonSchema;
 | 
			
		||||
use serde::{Deserialize, Serialize};
 | 
			
		||||
 | 
			
		||||
use crate::{
 | 
			
		||||
    errors::{KclError, KclErrorDetails},
 | 
			
		||||
@ -16,22 +14,14 @@ use crate::{
 | 
			
		||||
 | 
			
		||||
pub(crate) const DEFAULT_TOLERANCE: f64 = 0.0000001;
 | 
			
		||||
 | 
			
		||||
/// Data for chamfers.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
#[serde(rename_all = "camelCase")]
 | 
			
		||||
pub struct ChamferData {
 | 
			
		||||
    /// The length of the chamfer.
 | 
			
		||||
    pub length: f64,
 | 
			
		||||
    /// The tags of the paths you want to chamfer.
 | 
			
		||||
    pub tags: Vec<EdgeReference>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Create chamfers on tagged paths.
 | 
			
		||||
pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let (data, solid, tag): (ChamferData, Box<Solid>, Option<TagNode>) = args.get_data_and_solid_and_tag()?;
 | 
			
		||||
    let solid = args.get_unlabeled_kw_arg("solid")?;
 | 
			
		||||
    let length = args.get_kw_arg("length")?;
 | 
			
		||||
    let tags = args.get_kw_arg("tags")?;
 | 
			
		||||
    let tag = args.get_kw_arg_opt("tag")?;
 | 
			
		||||
 | 
			
		||||
    let value = inner_chamfer(data, solid, tag, exec_state, args).await?;
 | 
			
		||||
    let value = inner_chamfer(solid, length, tags, tag, exec_state, args).await?;
 | 
			
		||||
    Ok(KclValue::Solid { value })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -56,7 +46,7 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///   |> close(tag = $edge4)
 | 
			
		||||
///
 | 
			
		||||
/// mountingPlate = extrude(mountingPlateSketch, length = thickness)
 | 
			
		||||
///   |> chamfer({
 | 
			
		||||
///   |> chamfer(
 | 
			
		||||
///     length = chamferLength,
 | 
			
		||||
///     tags = [
 | 
			
		||||
///       getNextAdjacentEdge(edge1),
 | 
			
		||||
@ -64,7 +54,7 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///       getNextAdjacentEdge(edge3),
 | 
			
		||||
///       getNextAdjacentEdge(edge4)
 | 
			
		||||
///     ],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
@ -82,10 +72,12 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
/// part001 = cube([0,0], 20)
 | 
			
		||||
///     |> close(tag = $line1)
 | 
			
		||||
///     |> extrude(length = 20)
 | 
			
		||||
///     |> chamfer({
 | 
			
		||||
///     // We tag the chamfer to reference it later.
 | 
			
		||||
///     |> chamfer(
 | 
			
		||||
///         length = 10,
 | 
			
		||||
///         tags = [getOppositeEdge(line1)]
 | 
			
		||||
///     }, %, $chamfer1) // We tag the chamfer to reference it later.
 | 
			
		||||
///         tags = [getOppositeEdge(line1)],
 | 
			
		||||
///         tag = $chamfer1,
 | 
			
		||||
///     )  
 | 
			
		||||
///
 | 
			
		||||
/// sketch001 = startSketchOn(part001, chamfer1)
 | 
			
		||||
///     |> startProfileAt([10, 10], %)
 | 
			
		||||
@ -99,19 +91,28 @@ pub async fn chamfer(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "chamfer",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    keywords = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solid = { docs = "The solid whose edges should be chamfered" },
 | 
			
		||||
        length = { docs = "The length of the chamfer" },
 | 
			
		||||
        tags = { docs = "The paths you want to chamfer" },
 | 
			
		||||
        tag = { docs = "Create a new tag which refers to this chamfer"},
 | 
			
		||||
    }
 | 
			
		||||
}]
 | 
			
		||||
async fn inner_chamfer(
 | 
			
		||||
    data: ChamferData,
 | 
			
		||||
    solid: Box<Solid>,
 | 
			
		||||
    length: f64,
 | 
			
		||||
    tags: Vec<EdgeReference>,
 | 
			
		||||
    tag: Option<TagNode>,
 | 
			
		||||
    exec_state: &mut ExecState,
 | 
			
		||||
    args: Args,
 | 
			
		||||
) -> Result<Box<Solid>, KclError> {
 | 
			
		||||
    // Check if tags contains any duplicate values.
 | 
			
		||||
    let mut tags = data.tags.clone();
 | 
			
		||||
    let mut tags = tags.clone();
 | 
			
		||||
    tags.sort();
 | 
			
		||||
    tags.dedup();
 | 
			
		||||
    if tags.len() != data.tags.len() {
 | 
			
		||||
    if tags.len() != tags.len() {
 | 
			
		||||
        return Err(KclError::Type(KclErrorDetails {
 | 
			
		||||
            message: "Duplicate tags are not allowed.".to_string(),
 | 
			
		||||
            source_ranges: vec![args.source_range],
 | 
			
		||||
@ -120,7 +121,7 @@ async fn inner_chamfer(
 | 
			
		||||
 | 
			
		||||
    // If you try and tag multiple edges with a tagged chamfer, we want to return an
 | 
			
		||||
    // error to the user that they can only tag one edge at a time.
 | 
			
		||||
    if tag.is_some() && data.tags.len() > 1 {
 | 
			
		||||
    if tag.is_some() && tags.len() > 1 {
 | 
			
		||||
        return Err(KclError::Type(KclErrorDetails {
 | 
			
		||||
            message: "You can only tag one edge at a time with a tagged chamfer. Either delete the tag for the chamfer fn if you don't need it OR separate into individual chamfer functions for each tag.".to_string(),
 | 
			
		||||
            source_ranges: vec![args.source_range],
 | 
			
		||||
@ -128,7 +129,7 @@ async fn inner_chamfer(
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let mut solid = solid.clone();
 | 
			
		||||
    for edge_tag in data.tags {
 | 
			
		||||
    for edge_tag in tags {
 | 
			
		||||
        let edge_id = match edge_tag {
 | 
			
		||||
            EdgeReference::Uuid(uuid) => uuid,
 | 
			
		||||
            EdgeReference::Tag(edge_tag) => args.get_tag_engine_info(exec_state, &edge_tag)?.id,
 | 
			
		||||
@ -140,7 +141,7 @@ async fn inner_chamfer(
 | 
			
		||||
            ModelingCmd::from(mcmd::Solid3dFilletEdge {
 | 
			
		||||
                edge_id,
 | 
			
		||||
                object_id: solid.id,
 | 
			
		||||
                radius: LengthUnit(data.length),
 | 
			
		||||
                radius: LengthUnit(length),
 | 
			
		||||
                tolerance: LengthUnit(DEFAULT_TOLERANCE), // We can let the user set this in the future.
 | 
			
		||||
                cut_type: CutType::Chamfer,
 | 
			
		||||
                // We make this a none so that we can remove it in the future.
 | 
			
		||||
@ -152,7 +153,7 @@ async fn inner_chamfer(
 | 
			
		||||
        solid.edge_cuts.push(EdgeCut::Chamfer {
 | 
			
		||||
            id,
 | 
			
		||||
            edge_id,
 | 
			
		||||
            length: data.length,
 | 
			
		||||
            length,
 | 
			
		||||
            tag: Box::new(tag.clone()),
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -19,20 +19,6 @@ use crate::{
 | 
			
		||||
    std::Args,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/// Data for fillets.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
#[serde(rename_all = "camelCase")]
 | 
			
		||||
pub struct FilletData {
 | 
			
		||||
    /// The radius of the fillet.
 | 
			
		||||
    pub radius: f64,
 | 
			
		||||
    /// The tags of the paths you want to fillet.
 | 
			
		||||
    pub tags: Vec<EdgeReference>,
 | 
			
		||||
    /// The tolerance for the fillet.
 | 
			
		||||
    #[serde(default)]
 | 
			
		||||
    pub tolerance: Option<f64>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// A tag or a uuid of an edge.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Eq, Ord, PartialOrd, Hash)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
@ -55,9 +41,12 @@ impl EdgeReference {
 | 
			
		||||
 | 
			
		||||
/// Create fillets on tagged paths.
 | 
			
		||||
pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let (data, solid, tag): (FilletData, Box<Solid>, Option<TagNode>) = args.get_data_and_solid_and_tag()?;
 | 
			
		||||
 | 
			
		||||
    let value = inner_fillet(data, solid, tag, exec_state, args).await?;
 | 
			
		||||
    let solid = args.get_unlabeled_kw_arg("solid")?;
 | 
			
		||||
    let radius = args.get_kw_arg("radius")?;
 | 
			
		||||
    let tolerance = args.get_kw_arg_opt("tolerance")?;
 | 
			
		||||
    let tags = args.get_kw_arg("tags")?;
 | 
			
		||||
    let tag = args.get_kw_arg_opt("tag")?;
 | 
			
		||||
    let value = inner_fillet(solid, radius, tags, tolerance, tag, exec_state, args).await?;
 | 
			
		||||
    Ok(KclValue::Solid { value })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -81,7 +70,7 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///   |> close(tag = $edge4)
 | 
			
		||||
///
 | 
			
		||||
/// mountingPlate = extrude(mountingPlateSketch, length = thickness)
 | 
			
		||||
///   |> fillet({
 | 
			
		||||
///   |> fillet(
 | 
			
		||||
///     radius = filletRadius,
 | 
			
		||||
///     tags = [
 | 
			
		||||
///       getNextAdjacentEdge(edge1),
 | 
			
		||||
@ -89,7 +78,7 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///       getNextAdjacentEdge(edge3),
 | 
			
		||||
///       getNextAdjacentEdge(edge4)
 | 
			
		||||
///     ],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
@ -106,7 +95,7 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///   |> close(tag = $edge4)
 | 
			
		||||
///
 | 
			
		||||
/// mountingPlate = extrude(mountingPlateSketch, length = thickness)
 | 
			
		||||
///   |> fillet({
 | 
			
		||||
///   |> fillet(
 | 
			
		||||
///     radius = filletRadius,
 | 
			
		||||
///     tolerance = 0.000001,
 | 
			
		||||
///     tags = [
 | 
			
		||||
@ -115,24 +104,35 @@ pub async fn fillet(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
 | 
			
		||||
///       getNextAdjacentEdge(edge3),
 | 
			
		||||
///       getNextAdjacentEdge(edge4)
 | 
			
		||||
///     ],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "fillet",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    keywords = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solid = { docs = "The solid whose edges should be filletted" },
 | 
			
		||||
        radius = { docs = "The radius of the fillet" },
 | 
			
		||||
        tags = { docs = "The paths you want to fillet" },
 | 
			
		||||
        tolerance = { docs = "The tolerance for this fillet" },
 | 
			
		||||
        tag = { docs = "Create a new tag which refers to this fillet"},
 | 
			
		||||
    }
 | 
			
		||||
}]
 | 
			
		||||
async fn inner_fillet(
 | 
			
		||||
    data: FilletData,
 | 
			
		||||
    solid: Box<Solid>,
 | 
			
		||||
    radius: f64,
 | 
			
		||||
    tags: Vec<EdgeReference>,
 | 
			
		||||
    tolerance: Option<f64>,
 | 
			
		||||
    tag: Option<TagNode>,
 | 
			
		||||
    exec_state: &mut ExecState,
 | 
			
		||||
    args: Args,
 | 
			
		||||
) -> Result<Box<Solid>, KclError> {
 | 
			
		||||
    // Check if tags contains any duplicate values.
 | 
			
		||||
    let mut tags = data.tags.clone();
 | 
			
		||||
    tags.sort();
 | 
			
		||||
    tags.dedup();
 | 
			
		||||
    if tags.len() != data.tags.len() {
 | 
			
		||||
    let mut unique_tags = tags.clone();
 | 
			
		||||
    unique_tags.sort();
 | 
			
		||||
    unique_tags.dedup();
 | 
			
		||||
    if unique_tags.len() != tags.len() {
 | 
			
		||||
        return Err(KclError::Type(KclErrorDetails {
 | 
			
		||||
            message: "Duplicate tags are not allowed.".to_string(),
 | 
			
		||||
            source_ranges: vec![args.source_range],
 | 
			
		||||
@ -140,7 +140,7 @@ async fn inner_fillet(
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let mut solid = solid.clone();
 | 
			
		||||
    for edge_tag in data.tags {
 | 
			
		||||
    for edge_tag in tags {
 | 
			
		||||
        let edge_id = edge_tag.get_engine_id(exec_state, &args)?;
 | 
			
		||||
 | 
			
		||||
        let id = exec_state.next_uuid();
 | 
			
		||||
@ -149,8 +149,8 @@ async fn inner_fillet(
 | 
			
		||||
            ModelingCmd::from(mcmd::Solid3dFilletEdge {
 | 
			
		||||
                edge_id,
 | 
			
		||||
                object_id: solid.id,
 | 
			
		||||
                radius: LengthUnit(data.radius),
 | 
			
		||||
                tolerance: LengthUnit(data.tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
 | 
			
		||||
                radius: LengthUnit(radius),
 | 
			
		||||
                tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
 | 
			
		||||
                cut_type: CutType::Fillet,
 | 
			
		||||
                // We make this a none so that we can remove it in the future.
 | 
			
		||||
                face_id: None,
 | 
			
		||||
@ -161,7 +161,7 @@ async fn inner_fillet(
 | 
			
		||||
        solid.edge_cuts.push(EdgeCut::Fillet {
 | 
			
		||||
            id,
 | 
			
		||||
            edge_id,
 | 
			
		||||
            radius: data.radius,
 | 
			
		||||
            radius,
 | 
			
		||||
            tag: Box::new(tag.clone()),
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -213,10 +213,10 @@ pub async fn get_opposite_edge(exec_state: &mut ExecState, args: Args) -> Result
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 5)
 | 
			
		||||
///   |> fillet({
 | 
			
		||||
///   |> fillet(
 | 
			
		||||
///     radius = 3,
 | 
			
		||||
///     tags = [getOppositeEdge(referenceEdge)],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "getOppositeEdge",
 | 
			
		||||
@ -286,10 +286,10 @@ pub async fn get_next_adjacent_edge(exec_state: &mut ExecState, args: Args) -> R
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 5)
 | 
			
		||||
///   |> fillet({
 | 
			
		||||
///   |> fillet(
 | 
			
		||||
///     radius = 3,
 | 
			
		||||
///     tags = [getNextAdjacentEdge(referenceEdge)],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "getNextAdjacentEdge",
 | 
			
		||||
@ -371,10 +371,10 @@ pub async fn get_previous_adjacent_edge(exec_state: &mut ExecState, args: Args)
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 5)
 | 
			
		||||
///   |> fillet({
 | 
			
		||||
///   |> fillet(
 | 
			
		||||
///     radius = 3,
 | 
			
		||||
///     tags = [getPreviousAdjacentEdge(referenceEdge)],
 | 
			
		||||
///   }, %)
 | 
			
		||||
///   )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "getPreviousAdjacentEdge",
 | 
			
		||||
 | 
			
		||||
@ -327,6 +327,19 @@ impl CallExpression {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl CallExpressionKw {
 | 
			
		||||
    fn recast_args(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> Vec<String> {
 | 
			
		||||
        let mut arg_list = if let Some(first_arg) = &self.unlabeled {
 | 
			
		||||
            vec![first_arg.recast(options, indentation_level, ctxt)]
 | 
			
		||||
        } else {
 | 
			
		||||
            Vec::with_capacity(self.arguments.len())
 | 
			
		||||
        };
 | 
			
		||||
        arg_list.extend(
 | 
			
		||||
            self.arguments
 | 
			
		||||
                .iter()
 | 
			
		||||
                .map(|arg| arg.recast(options, indentation_level, ctxt)),
 | 
			
		||||
        );
 | 
			
		||||
        arg_list
 | 
			
		||||
    }
 | 
			
		||||
    fn recast(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> String {
 | 
			
		||||
        let indent = if ctxt == ExprContext::Pipe {
 | 
			
		||||
            "".to_string()
 | 
			
		||||
@ -334,23 +347,19 @@ impl CallExpressionKw {
 | 
			
		||||
            options.get_indentation(indentation_level)
 | 
			
		||||
        };
 | 
			
		||||
        let name = &self.callee.name;
 | 
			
		||||
        let mut arg_list = if let Some(first_arg) = &self.unlabeled {
 | 
			
		||||
            vec![first_arg.recast(options, indentation_level, ctxt)]
 | 
			
		||||
        } else {
 | 
			
		||||
            Vec::new()
 | 
			
		||||
        };
 | 
			
		||||
        arg_list.extend(
 | 
			
		||||
            self.arguments
 | 
			
		||||
                .iter()
 | 
			
		||||
                .map(|arg| arg.recast(options, indentation_level, ctxt)),
 | 
			
		||||
        );
 | 
			
		||||
        let arg_list = self.recast_args(options, indentation_level, ctxt);
 | 
			
		||||
        let args = arg_list.clone().join(", ");
 | 
			
		||||
        if arg_list.len() >= 4 {
 | 
			
		||||
        let has_lots_of_args = arg_list.len() >= 4;
 | 
			
		||||
        let some_arg_is_already_multiline = arg_list.len() > 1 && arg_list.iter().any(|arg| arg.contains('\n'));
 | 
			
		||||
        let multiline = has_lots_of_args || some_arg_is_already_multiline;
 | 
			
		||||
        if multiline {
 | 
			
		||||
            let next_indent = indentation_level + 1;
 | 
			
		||||
            let inner_indentation = if ctxt == ExprContext::Pipe {
 | 
			
		||||
                options.get_indentation_offset_pipe(indentation_level + 1)
 | 
			
		||||
                options.get_indentation_offset_pipe(next_indent)
 | 
			
		||||
            } else {
 | 
			
		||||
                options.get_indentation(indentation_level + 1)
 | 
			
		||||
                options.get_indentation(next_indent)
 | 
			
		||||
            };
 | 
			
		||||
            let arg_list = self.recast_args(options, next_indent, ctxt);
 | 
			
		||||
            let mut args = arg_list.join(&format!(",\n{inner_indentation}"));
 | 
			
		||||
            args.push(',');
 | 
			
		||||
            let args = args;
 | 
			
		||||
@ -1424,7 +1433,7 @@ fn rectShape = (pos, w, l) => {
 | 
			
		||||
// only used for visualization
 | 
			
		||||
scarlett_body = rectShape([0, 0], width, length)
 | 
			
		||||
  |> extrude(depth, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = radius,
 | 
			
		||||
       tags = [
 | 
			
		||||
  edge2,
 | 
			
		||||
@ -1432,7 +1441,7 @@ scarlett_body = rectShape([0, 0], width, length)
 | 
			
		||||
  getOppositeEdge(edge2),
 | 
			
		||||
  getOppositeEdge(edge4)
 | 
			
		||||
]
 | 
			
		||||
     }, %)
 | 
			
		||||
   )
 | 
			
		||||
  // build the bracket sketch around the body
 | 
			
		||||
fn bracketSketch = (w, d, t) => {
 | 
			
		||||
  s = startSketchOn({
 | 
			
		||||
@ -1457,15 +1466,15 @@ fn bracketSketch = (w, d, t) => {
 | 
			
		||||
// build the body of the bracket
 | 
			
		||||
bracket_body = bracketSketch(width, depth, thk)
 | 
			
		||||
  |> extrude(length + 10, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = radius,
 | 
			
		||||
       tags: [
 | 
			
		||||
       tags = [
 | 
			
		||||
  getNextAdjacentEdge(edge7),
 | 
			
		||||
  getNextAdjacentEdge(edge2),
 | 
			
		||||
  getNextAdjacentEdge(edge3),
 | 
			
		||||
  getNextAdjacentEdge(edge6)
 | 
			
		||||
]
 | 
			
		||||
     }, %)
 | 
			
		||||
     )
 | 
			
		||||
  // build the tabs of the mounting bracket (right side)
 | 
			
		||||
tabs_r = startSketchOn({
 | 
			
		||||
       plane: {
 | 
			
		||||
@ -1545,15 +1554,15 @@ fn rectShape(pos, w, l) {
 | 
			
		||||
// only used for visualization
 | 
			
		||||
scarlett_body = rectShape([0, 0], width, length)
 | 
			
		||||
  |> extrude(depth, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = radius,
 | 
			
		||||
       tags = [
 | 
			
		||||
         edge2,
 | 
			
		||||
         edge4,
 | 
			
		||||
         getOppositeEdge(edge2),
 | 
			
		||||
         getOppositeEdge(edge4)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
// build the bracket sketch around the body
 | 
			
		||||
fn bracketSketch(w, d, t) {
 | 
			
		||||
  s = startSketchOn({
 | 
			
		||||
@ -1578,15 +1587,15 @@ fn bracketSketch(w, d, t) {
 | 
			
		||||
// build the body of the bracket
 | 
			
		||||
bracket_body = bracketSketch(width, depth, thk)
 | 
			
		||||
  |> extrude(length + 10, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = radius,
 | 
			
		||||
       tags = [
 | 
			
		||||
         getNextAdjacentEdge(edge7),
 | 
			
		||||
         getNextAdjacentEdge(edge2),
 | 
			
		||||
         getNextAdjacentEdge(edge3),
 | 
			
		||||
         getNextAdjacentEdge(edge6)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
// build the tabs of the mounting bracket (right side)
 | 
			
		||||
tabs_r = startSketchOn({
 | 
			
		||||
       plane = {
 | 
			
		||||
 | 
			
		||||
@ -652,7 +652,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      298,
 | 
			
		||||
      339,
 | 
			
		||||
      332,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -667,8 +667,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      390,
 | 
			
		||||
      417,
 | 
			
		||||
      383,
 | 
			
		||||
      410,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -683,8 +683,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      390,
 | 
			
		||||
      417,
 | 
			
		||||
      383,
 | 
			
		||||
      410,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -694,8 +694,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      390,
 | 
			
		||||
      417,
 | 
			
		||||
      383,
 | 
			
		||||
      410,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -711,8 +711,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      423,
 | 
			
		||||
      441,
 | 
			
		||||
      416,
 | 
			
		||||
      434,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -732,8 +732,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      447,
 | 
			
		||||
      466,
 | 
			
		||||
      440,
 | 
			
		||||
      459,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -753,8 +753,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      472,
 | 
			
		||||
      528,
 | 
			
		||||
      465,
 | 
			
		||||
      521,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -774,8 +774,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      527,
 | 
			
		||||
      534,
 | 
			
		||||
      541,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -786,8 +786,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -802,8 +802,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -816,8 +816,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -827,8 +827,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -839,8 +839,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -852,8 +852,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -866,8 +866,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -880,8 +880,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -894,8 +894,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -908,8 +908,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -922,8 +922,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -10,11 +10,11 @@ flowchart LR
 | 
			
		||||
    8[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path25 [Path]
 | 
			
		||||
    25["Path<br>[390, 417, 0]"]
 | 
			
		||||
    26["Segment<br>[423, 441, 0]"]
 | 
			
		||||
    27["Segment<br>[447, 466, 0]"]
 | 
			
		||||
    28["Segment<br>[472, 528, 0]"]
 | 
			
		||||
    29["Segment<br>[534, 541, 0]"]
 | 
			
		||||
    25["Path<br>[383, 410, 0]"]
 | 
			
		||||
    26["Segment<br>[416, 434, 0]"]
 | 
			
		||||
    27["Segment<br>[440, 459, 0]"]
 | 
			
		||||
    28["Segment<br>[465, 521, 0]"]
 | 
			
		||||
    29["Segment<br>[527, 534, 0]"]
 | 
			
		||||
    30[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[12, 31, 0]"]
 | 
			
		||||
@ -33,8 +33,8 @@ flowchart LR
 | 
			
		||||
  21["SweepEdge Adjacent"]
 | 
			
		||||
  22["SweepEdge Opposite"]
 | 
			
		||||
  23["SweepEdge Adjacent"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[298, 339, 0]"]
 | 
			
		||||
  31["Sweep Extrusion<br>[555, 585, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[298, 332, 0]"]
 | 
			
		||||
  31["Sweep Extrusion<br>[548, 578, 0]"]
 | 
			
		||||
  32[Wall]
 | 
			
		||||
  33[Wall]
 | 
			
		||||
  34[Wall]
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
@ -393,7 +394,7 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 339,
 | 
			
		||||
          "end": 332,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 257,
 | 
			
		||||
            "name": "extrude001",
 | 
			
		||||
@ -451,66 +452,44 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 335,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 317,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 313,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 307,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 307,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 317,
 | 
			
		||||
                          "raw": "5",
 | 
			
		||||
                          "start": 316,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 5.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 333,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 323,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 319,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 319,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 332,
 | 
			
		||||
                              "name": "seg01",
 | 
			
		||||
                              "start": 327,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 333,
 | 
			
		||||
                          "start": 326,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 315,
 | 
			
		||||
                      "raw": "5",
 | 
			
		||||
                      "start": 314,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 5.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 305,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 338,
 | 
			
		||||
                    "start": 337,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 330,
 | 
			
		||||
                          "name": "seg01",
 | 
			
		||||
                          "start": 325,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 331,
 | 
			
		||||
                      "start": 324,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -519,13 +498,14 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                  "start": 298,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 339,
 | 
			
		||||
                "end": 332,
 | 
			
		||||
                "start": 298,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 339,
 | 
			
		||||
            "end": 332,
 | 
			
		||||
            "start": 260,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -533,7 +513,7 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
          "start": 247,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 339,
 | 
			
		||||
        "end": 332,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 247,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
@ -541,11 +521,11 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 541,
 | 
			
		||||
          "end": 534,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 349,
 | 
			
		||||
            "end": 342,
 | 
			
		||||
            "name": "sketch002",
 | 
			
		||||
            "start": 340,
 | 
			
		||||
            "start": 333,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
@ -553,28 +533,28 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 376,
 | 
			
		||||
                    "end": 369,
 | 
			
		||||
                    "name": "extrude001",
 | 
			
		||||
                    "start": 366,
 | 
			
		||||
                    "start": 359,
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 383,
 | 
			
		||||
                    "end": 376,
 | 
			
		||||
                    "name": "seg02",
 | 
			
		||||
                    "start": 378,
 | 
			
		||||
                    "start": 371,
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 365,
 | 
			
		||||
                  "end": 358,
 | 
			
		||||
                  "name": "startSketchOn",
 | 
			
		||||
                  "start": 352,
 | 
			
		||||
                  "start": 345,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 384,
 | 
			
		||||
                "start": 352,
 | 
			
		||||
                "end": 377,
 | 
			
		||||
                "start": 345,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              },
 | 
			
		||||
@ -584,9 +564,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                    "elements": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "argument": {
 | 
			
		||||
                          "end": 408,
 | 
			
		||||
                          "end": 401,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 407,
 | 
			
		||||
                          "start": 400,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -594,17 +574,17 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        "end": 408,
 | 
			
		||||
                        "end": 401,
 | 
			
		||||
                        "operator": "-",
 | 
			
		||||
                        "start": 406,
 | 
			
		||||
                        "start": 399,
 | 
			
		||||
                        "type": "UnaryExpression",
 | 
			
		||||
                        "type": "UnaryExpression"
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "argument": {
 | 
			
		||||
                          "end": 412,
 | 
			
		||||
                          "end": 405,
 | 
			
		||||
                          "raw": "6",
 | 
			
		||||
                          "start": 411,
 | 
			
		||||
                          "start": 404,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -612,33 +592,33 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        "end": 412,
 | 
			
		||||
                        "end": 405,
 | 
			
		||||
                        "operator": "-",
 | 
			
		||||
                        "start": 410,
 | 
			
		||||
                        "start": 403,
 | 
			
		||||
                        "type": "UnaryExpression",
 | 
			
		||||
                        "type": "UnaryExpression"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "end": 413,
 | 
			
		||||
                    "start": 405,
 | 
			
		||||
                    "end": 406,
 | 
			
		||||
                    "start": 398,
 | 
			
		||||
                    "type": "ArrayExpression",
 | 
			
		||||
                    "type": "ArrayExpression"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 416,
 | 
			
		||||
                    "start": 415,
 | 
			
		||||
                    "end": 409,
 | 
			
		||||
                    "start": 408,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 404,
 | 
			
		||||
                  "end": 397,
 | 
			
		||||
                  "name": "startProfileAt",
 | 
			
		||||
                  "start": 390,
 | 
			
		||||
                  "start": 383,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 417,
 | 
			
		||||
                "start": 390,
 | 
			
		||||
                "end": 410,
 | 
			
		||||
                "start": 383,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              },
 | 
			
		||||
@ -653,9 +633,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 436,
 | 
			
		||||
                          "end": 429,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 435,
 | 
			
		||||
                          "start": 428,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -664,9 +644,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 439,
 | 
			
		||||
                          "end": 432,
 | 
			
		||||
                          "raw": "3",
 | 
			
		||||
                          "start": 438,
 | 
			
		||||
                          "start": 431,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -675,21 +655,21 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 440,
 | 
			
		||||
                      "start": 434,
 | 
			
		||||
                      "end": 433,
 | 
			
		||||
                      "start": 427,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 427,
 | 
			
		||||
                  "end": 420,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 423,
 | 
			
		||||
                  "start": 416,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 441,
 | 
			
		||||
                "start": 423,
 | 
			
		||||
                "end": 434,
 | 
			
		||||
                "start": 416,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -705,9 +685,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 460,
 | 
			
		||||
                          "end": 453,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 459,
 | 
			
		||||
                          "start": 452,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -717,9 +697,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "argument": {
 | 
			
		||||
                            "end": 464,
 | 
			
		||||
                            "end": 457,
 | 
			
		||||
                            "raw": "3",
 | 
			
		||||
                            "start": 463,
 | 
			
		||||
                            "start": 456,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -727,28 +707,28 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                              "suffix": "None"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 464,
 | 
			
		||||
                          "end": 457,
 | 
			
		||||
                          "operator": "-",
 | 
			
		||||
                          "start": 462,
 | 
			
		||||
                          "start": 455,
 | 
			
		||||
                          "type": "UnaryExpression",
 | 
			
		||||
                          "type": "UnaryExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 465,
 | 
			
		||||
                      "start": 458,
 | 
			
		||||
                      "end": 458,
 | 
			
		||||
                      "start": 451,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 451,
 | 
			
		||||
                  "end": 444,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 447,
 | 
			
		||||
                  "start": 440,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 466,
 | 
			
		||||
                "start": 447,
 | 
			
		||||
                "end": 459,
 | 
			
		||||
                "start": 440,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -766,59 +746,59 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 507,
 | 
			
		||||
                              "start": 506,
 | 
			
		||||
                              "end": 500,
 | 
			
		||||
                              "start": 499,
 | 
			
		||||
                              "type": "PipeSubstitution",
 | 
			
		||||
                              "type": "PipeSubstitution"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 505,
 | 
			
		||||
                            "end": 498,
 | 
			
		||||
                            "name": "profileStartX",
 | 
			
		||||
                            "start": 492,
 | 
			
		||||
                            "start": 485,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 508,
 | 
			
		||||
                          "start": 492,
 | 
			
		||||
                          "end": 501,
 | 
			
		||||
                          "start": 485,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 525,
 | 
			
		||||
                              "start": 524,
 | 
			
		||||
                              "end": 518,
 | 
			
		||||
                              "start": 517,
 | 
			
		||||
                              "type": "PipeSubstitution",
 | 
			
		||||
                              "type": "PipeSubstitution"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 523,
 | 
			
		||||
                            "end": 516,
 | 
			
		||||
                            "name": "profileStartY",
 | 
			
		||||
                            "start": 510,
 | 
			
		||||
                            "start": 503,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 526,
 | 
			
		||||
                          "start": 510,
 | 
			
		||||
                          "end": 519,
 | 
			
		||||
                          "start": 503,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 527,
 | 
			
		||||
                      "start": 491,
 | 
			
		||||
                      "end": 520,
 | 
			
		||||
                      "start": 484,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 476,
 | 
			
		||||
                  "end": 469,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 472,
 | 
			
		||||
                  "start": 465,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 528,
 | 
			
		||||
                "start": 472,
 | 
			
		||||
                "end": 521,
 | 
			
		||||
                "start": 465,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -826,38 +806,38 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 539,
 | 
			
		||||
                  "end": 532,
 | 
			
		||||
                  "name": "close",
 | 
			
		||||
                  "start": 534,
 | 
			
		||||
                  "start": 527,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 541,
 | 
			
		||||
                "start": 534,
 | 
			
		||||
                "end": 534,
 | 
			
		||||
                "start": 527,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 541,
 | 
			
		||||
            "start": 352,
 | 
			
		||||
            "end": 534,
 | 
			
		||||
            "start": 345,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
          },
 | 
			
		||||
          "start": 340,
 | 
			
		||||
          "start": 333,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 541,
 | 
			
		||||
        "end": 534,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 340,
 | 
			
		||||
        "start": 333,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 585,
 | 
			
		||||
          "end": 578,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 552,
 | 
			
		||||
            "end": 545,
 | 
			
		||||
            "name": "extrude002",
 | 
			
		||||
            "start": 542,
 | 
			
		||||
            "start": 535,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
@ -869,9 +849,9 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
                  "name": "length"
 | 
			
		||||
                },
 | 
			
		||||
                "arg": {
 | 
			
		||||
                  "end": 584,
 | 
			
		||||
                  "end": 577,
 | 
			
		||||
                  "raw": "5",
 | 
			
		||||
                  "start": 583,
 | 
			
		||||
                  "start": 576,
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "value": {
 | 
			
		||||
@ -882,34 +862,34 @@ description: Result of parsing artifact_graph_example_code1.kcl
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "end": 562,
 | 
			
		||||
              "end": 555,
 | 
			
		||||
              "name": "extrude",
 | 
			
		||||
              "start": 555,
 | 
			
		||||
              "start": 548,
 | 
			
		||||
              "type": "Identifier"
 | 
			
		||||
            },
 | 
			
		||||
            "end": 585,
 | 
			
		||||
            "start": 555,
 | 
			
		||||
            "end": 578,
 | 
			
		||||
            "start": 548,
 | 
			
		||||
            "type": "CallExpressionKw",
 | 
			
		||||
            "type": "CallExpressionKw",
 | 
			
		||||
            "unlabeled": {
 | 
			
		||||
              "end": 572,
 | 
			
		||||
              "end": 565,
 | 
			
		||||
              "name": "sketch002",
 | 
			
		||||
              "start": 563,
 | 
			
		||||
              "start": 556,
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "start": 542,
 | 
			
		||||
          "start": 535,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 585,
 | 
			
		||||
        "end": 578,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 542,
 | 
			
		||||
        "start": 535,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 586,
 | 
			
		||||
    "end": 579,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
			
		||||
  |> close()
 | 
			
		||||
extrude001 = extrude(sketch001, length = -10)
 | 
			
		||||
  |> fillet({ radius = 5, tags = [seg01] }, %)
 | 
			
		||||
  |> fillet(radius = 5, tags = [seg01])
 | 
			
		||||
sketch002 = startSketchOn(extrude001, seg02)
 | 
			
		||||
  |> startProfileAt([-2, -6], %)
 | 
			
		||||
  |> line(end = [2, 3])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,51 +73,40 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 5.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "seg01",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          305,
 | 
			
		||||
          335,
 | 
			
		||||
          314,
 | 
			
		||||
          315,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "seg01",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          337,
 | 
			
		||||
          338,
 | 
			
		||||
          324,
 | 
			
		||||
          331,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -124,11 +114,23 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      298,
 | 
			
		||||
      339,
 | 
			
		||||
      332,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
@ -140,8 +142,8 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          366,
 | 
			
		||||
          376,
 | 
			
		||||
          359,
 | 
			
		||||
          369,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -152,16 +154,16 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          378,
 | 
			
		||||
          383,
 | 
			
		||||
          371,
 | 
			
		||||
          376,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      352,
 | 
			
		||||
      384,
 | 
			
		||||
      345,
 | 
			
		||||
      377,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -184,16 +186,16 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          583,
 | 
			
		||||
          584,
 | 
			
		||||
          576,
 | 
			
		||||
          577,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      555,
 | 
			
		||||
      585,
 | 
			
		||||
      548,
 | 
			
		||||
      578,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -205,8 +207,8 @@ description: Operations executed artifact_graph_example_code1.kcl
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        563,
 | 
			
		||||
        572,
 | 
			
		||||
        556,
 | 
			
		||||
        565,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Variables in memory after executing artifact_graph_example_code1.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "E": {
 | 
			
		||||
@ -589,8 +590,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            423,
 | 
			
		||||
            441,
 | 
			
		||||
            416,
 | 
			
		||||
            434,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -600,8 +601,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            447,
 | 
			
		||||
            466,
 | 
			
		||||
            440,
 | 
			
		||||
            459,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -611,8 +612,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            472,
 | 
			
		||||
            528,
 | 
			
		||||
            465,
 | 
			
		||||
            521,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -627,8 +628,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                423,
 | 
			
		||||
                441,
 | 
			
		||||
                416,
 | 
			
		||||
                434,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -650,8 +651,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                447,
 | 
			
		||||
                466,
 | 
			
		||||
                440,
 | 
			
		||||
                459,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -673,8 +674,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                472,
 | 
			
		||||
                528,
 | 
			
		||||
                465,
 | 
			
		||||
                521,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -696,8 +697,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                527,
 | 
			
		||||
                534,
 | 
			
		||||
                541,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1150,8 +1151,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__meta": [
 | 
			
		||||
            {
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                352,
 | 
			
		||||
                384,
 | 
			
		||||
                345,
 | 
			
		||||
                377,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
@ -1173,8 +1174,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              390,
 | 
			
		||||
              417,
 | 
			
		||||
              383,
 | 
			
		||||
              410,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -1187,8 +1188,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
        "__meta": [
 | 
			
		||||
          {
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              390,
 | 
			
		||||
              417,
 | 
			
		||||
              383,
 | 
			
		||||
              410,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -1203,8 +1204,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
      "__meta": [
 | 
			
		||||
        {
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            390,
 | 
			
		||||
            417,
 | 
			
		||||
            383,
 | 
			
		||||
            410,
 | 
			
		||||
            0
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
@ -1710,8 +1711,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              423,
 | 
			
		||||
              441,
 | 
			
		||||
              416,
 | 
			
		||||
              434,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
@ -1733,8 +1734,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              447,
 | 
			
		||||
              466,
 | 
			
		||||
              440,
 | 
			
		||||
              459,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
@ -1756,8 +1757,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              472,
 | 
			
		||||
              528,
 | 
			
		||||
              465,
 | 
			
		||||
              521,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
@ -1779,8 +1780,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              527,
 | 
			
		||||
              534,
 | 
			
		||||
              541,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
@ -2233,8 +2234,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
        "__meta": [
 | 
			
		||||
          {
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              352,
 | 
			
		||||
              384,
 | 
			
		||||
              345,
 | 
			
		||||
              377,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -2256,8 +2257,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
        "__geoMeta": {
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            390,
 | 
			
		||||
            417,
 | 
			
		||||
            383,
 | 
			
		||||
            410,
 | 
			
		||||
            0
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
@ -2270,8 +2271,8 @@ description: Variables in memory after executing artifact_graph_example_code1.kc
 | 
			
		||||
      "__meta": [
 | 
			
		||||
        {
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            390,
 | 
			
		||||
            417,
 | 
			
		||||
            383,
 | 
			
		||||
            410,
 | 
			
		||||
            0
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -630,8 +630,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      274,
 | 
			
		||||
      297,
 | 
			
		||||
      258,
 | 
			
		||||
      281,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -645,7 +645,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      223,
 | 
			
		||||
      309,
 | 
			
		||||
      283,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -661,7 +661,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      223,
 | 
			
		||||
      309,
 | 
			
		||||
      283,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -24,8 +24,8 @@ flowchart LR
 | 
			
		||||
  20["SweepEdge Adjacent"]
 | 
			
		||||
  21["SweepEdge Opposite"]
 | 
			
		||||
  22["SweepEdge Adjacent"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[223, 309, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[223, 309, 0]"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[223, 283, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[223, 283, 0]"]
 | 
			
		||||
  1 --- 2
 | 
			
		||||
  2 --- 3
 | 
			
		||||
  2 --- 4
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,14 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
    "body": [
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 309,
 | 
			
		||||
          "end": 283,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "part001",
 | 
			
		||||
@ -344,87 +345,65 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 305,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 249,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 245,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 239,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 239,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 249,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 248,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 2.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 298,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 262,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 258,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 258,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 272,
 | 
			
		||||
                              "name": "thing3",
 | 
			
		||||
                              "start": 266,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 296,
 | 
			
		||||
                                  "name": "thing3",
 | 
			
		||||
                                  "start": 290,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 289,
 | 
			
		||||
                                "name": "getOppositeEdge",
 | 
			
		||||
                                "start": 274,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 297,
 | 
			
		||||
                              "start": 274,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 298,
 | 
			
		||||
                          "start": 265,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 240,
 | 
			
		||||
                      "raw": "2",
 | 
			
		||||
                      "start": 239,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 2.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 230,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 308,
 | 
			
		||||
                    "start": 307,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 256,
 | 
			
		||||
                          "name": "thing3",
 | 
			
		||||
                          "start": 250,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 280,
 | 
			
		||||
                              "name": "thing3",
 | 
			
		||||
                              "start": 274,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 273,
 | 
			
		||||
                            "name": "getOppositeEdge",
 | 
			
		||||
                            "start": 258,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 281,
 | 
			
		||||
                          "start": 258,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 282,
 | 
			
		||||
                      "start": 249,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -433,13 +412,14 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
                  "start": 223,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 309,
 | 
			
		||||
                "end": 283,
 | 
			
		||||
                "start": 223,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 309,
 | 
			
		||||
            "end": 283,
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -447,14 +427,14 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 309,
 | 
			
		||||
        "end": 283,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 310,
 | 
			
		||||
    "end": 284,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,4 @@ part001 = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
  |> close(tag = $thing3)
 | 
			
		||||
  |> extrude(length = 10)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 2,
 | 
			
		||||
       tags = [thing3, getOppositeEdge(thing3)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(radius = 2, tags = [thing3, getOppositeEdge(thing3)])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,55 +73,44 @@ description: Operations executed basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 2.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "thing3",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          230,
 | 
			
		||||
          305,
 | 
			
		||||
          239,
 | 
			
		||||
          240,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "thing3",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          307,
 | 
			
		||||
          308,
 | 
			
		||||
          249,
 | 
			
		||||
          282,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -128,10 +118,22 @@ description: Operations executed basic_fillet_cube_close_opposite.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      223,
 | 
			
		||||
      309,
 | 
			
		||||
      283,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -630,8 +630,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      261,
 | 
			
		||||
      283,
 | 
			
		||||
      245,
 | 
			
		||||
      267,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -645,7 +645,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      211,
 | 
			
		||||
      295,
 | 
			
		||||
      269,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -661,7 +661,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      211,
 | 
			
		||||
      295,
 | 
			
		||||
      269,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -24,8 +24,8 @@ flowchart LR
 | 
			
		||||
  20["SweepEdge Adjacent"]
 | 
			
		||||
  21["SweepEdge Opposite"]
 | 
			
		||||
  22["SweepEdge Adjacent"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[211, 295, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[211, 295, 0]"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[211, 269, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[211, 269, 0]"]
 | 
			
		||||
  1 --- 2
 | 
			
		||||
  2 --- 3
 | 
			
		||||
  2 --- 4
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,14 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing basic_fillet_cube_end.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
    "body": [
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 295,
 | 
			
		||||
          "end": 269,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "part001",
 | 
			
		||||
@ -335,87 +336,65 @@ description: Result of parsing basic_fillet_cube_end.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 291,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 237,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 233,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 227,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 227,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 237,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 236,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 2.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 284,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 250,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 246,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 246,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 259,
 | 
			
		||||
                              "name": "thing",
 | 
			
		||||
                              "start": 254,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 282,
 | 
			
		||||
                                  "name": "thing",
 | 
			
		||||
                                  "start": 277,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 276,
 | 
			
		||||
                                "name": "getOppositeEdge",
 | 
			
		||||
                                "start": 261,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 283,
 | 
			
		||||
                              "start": 261,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 284,
 | 
			
		||||
                          "start": 253,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 228,
 | 
			
		||||
                      "raw": "2",
 | 
			
		||||
                      "start": 227,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 2.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 218,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 294,
 | 
			
		||||
                    "start": 293,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 243,
 | 
			
		||||
                          "name": "thing",
 | 
			
		||||
                          "start": 238,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 266,
 | 
			
		||||
                              "name": "thing",
 | 
			
		||||
                              "start": 261,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 260,
 | 
			
		||||
                            "name": "getOppositeEdge",
 | 
			
		||||
                            "start": 245,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 267,
 | 
			
		||||
                          "start": 245,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 268,
 | 
			
		||||
                      "start": 237,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -424,13 +403,14 @@ description: Result of parsing basic_fillet_cube_end.kcl
 | 
			
		||||
                  "start": 211,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 295,
 | 
			
		||||
                "end": 269,
 | 
			
		||||
                "start": 211,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 295,
 | 
			
		||||
            "end": 269,
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -438,14 +418,14 @@ description: Result of parsing basic_fillet_cube_end.kcl
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 295,
 | 
			
		||||
        "end": 269,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 296,
 | 
			
		||||
    "end": 270,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,4 @@ part001 = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
  |> extrude(length = 10)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 2,
 | 
			
		||||
       tags = [thing, getOppositeEdge(thing)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(radius = 2, tags = [thing, getOppositeEdge(thing)])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed basic_fillet_cube_end.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,55 +73,44 @@ description: Operations executed basic_fillet_cube_end.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 2.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "thing",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          218,
 | 
			
		||||
          291,
 | 
			
		||||
          227,
 | 
			
		||||
          228,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "thing",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          293,
 | 
			
		||||
          294,
 | 
			
		||||
          237,
 | 
			
		||||
          268,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -128,10 +118,22 @@ description: Operations executed basic_fillet_cube_end.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      211,
 | 
			
		||||
      295,
 | 
			
		||||
      269,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -630,8 +630,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      281,
 | 
			
		||||
      308,
 | 
			
		||||
      265,
 | 
			
		||||
      292,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -645,7 +645,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      238,
 | 
			
		||||
      320,
 | 
			
		||||
      294,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,14 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
    "body": [
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 320,
 | 
			
		||||
          "end": 294,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "part001",
 | 
			
		||||
@ -358,80 +359,58 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 316,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 264,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 260,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 254,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 254,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 264,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 263,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 2.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 309,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 277,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 273,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 273,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 307,
 | 
			
		||||
                                  "name": "thing3",
 | 
			
		||||
                                  "start": 301,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 300,
 | 
			
		||||
                                "name": "getNextAdjacentEdge",
 | 
			
		||||
                                "start": 281,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 308,
 | 
			
		||||
                              "start": 281,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 309,
 | 
			
		||||
                          "start": 280,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 255,
 | 
			
		||||
                      "raw": "2",
 | 
			
		||||
                      "start": 254,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 2.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 245,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 319,
 | 
			
		||||
                    "start": 318,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 291,
 | 
			
		||||
                              "name": "thing3",
 | 
			
		||||
                              "start": 285,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 284,
 | 
			
		||||
                            "name": "getNextAdjacentEdge",
 | 
			
		||||
                            "start": 265,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 292,
 | 
			
		||||
                          "start": 265,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 293,
 | 
			
		||||
                      "start": 264,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -440,13 +419,14 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
                  "start": 238,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 320,
 | 
			
		||||
                "end": 294,
 | 
			
		||||
                "start": 238,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 320,
 | 
			
		||||
            "end": 294,
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -454,14 +434,14 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 320,
 | 
			
		||||
        "end": 294,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 321,
 | 
			
		||||
    "end": 295,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,4 @@ part001 = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
  |> close(tag = $thing3)
 | 
			
		||||
  |> extrude(length = 10)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 2,
 | 
			
		||||
       tags = [getNextAdjacentEdge(thing3)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(radius = 2, tags = [getNextAdjacentEdge(thing3)])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,50 +73,39 @@ description: Operations executed basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 2.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          245,
 | 
			
		||||
          316,
 | 
			
		||||
          254,
 | 
			
		||||
          255,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          318,
 | 
			
		||||
          319,
 | 
			
		||||
          264,
 | 
			
		||||
          293,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -123,10 +113,22 @@ description: Operations executed basic_fillet_cube_next_adjacent.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      238,
 | 
			
		||||
      320,
 | 
			
		||||
      294,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -630,8 +630,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      281,
 | 
			
		||||
      312,
 | 
			
		||||
      265,
 | 
			
		||||
      296,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -645,7 +645,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      238,
 | 
			
		||||
      324,
 | 
			
		||||
      298,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,14 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
    "body": [
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 324,
 | 
			
		||||
          "end": 298,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "part001",
 | 
			
		||||
@ -358,80 +359,58 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 320,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 264,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 260,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 254,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 254,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 264,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 263,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 2.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 313,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 277,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 273,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 273,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 311,
 | 
			
		||||
                                  "name": "thing3",
 | 
			
		||||
                                  "start": 305,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 304,
 | 
			
		||||
                                "name": "getPreviousAdjacentEdge",
 | 
			
		||||
                                "start": 281,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 312,
 | 
			
		||||
                              "start": 281,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 313,
 | 
			
		||||
                          "start": 280,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 255,
 | 
			
		||||
                      "raw": "2",
 | 
			
		||||
                      "start": 254,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 2.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 245,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 323,
 | 
			
		||||
                    "start": 322,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 295,
 | 
			
		||||
                              "name": "thing3",
 | 
			
		||||
                              "start": 289,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 288,
 | 
			
		||||
                            "name": "getPreviousAdjacentEdge",
 | 
			
		||||
                            "start": 265,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 296,
 | 
			
		||||
                          "start": 265,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 297,
 | 
			
		||||
                      "start": 264,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -440,13 +419,14 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
                  "start": 238,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 324,
 | 
			
		||||
                "end": 298,
 | 
			
		||||
                "start": 238,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 324,
 | 
			
		||||
            "end": 298,
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -454,14 +434,14 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 324,
 | 
			
		||||
        "end": 298,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 325,
 | 
			
		||||
    "end": 299,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,4 @@ part001 = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
  |> close(tag = $thing3)
 | 
			
		||||
  |> extrude(length = 10)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = 2,
 | 
			
		||||
       tags = [getPreviousAdjacentEdge(thing3)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(radius = 2, tags = [getPreviousAdjacentEdge(thing3)])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,50 +73,39 @@ description: Operations executed basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 2.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          245,
 | 
			
		||||
          320,
 | 
			
		||||
          254,
 | 
			
		||||
          255,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          322,
 | 
			
		||||
          323,
 | 
			
		||||
          264,
 | 
			
		||||
          297,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -123,10 +113,22 @@ description: Operations executed basic_fillet_cube_previous_adjacent.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      238,
 | 
			
		||||
      324,
 | 
			
		||||
      298,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -630,7 +630,7 @@ description: Artifact commands basic_fillet_cube_start.kcl
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      211,
 | 
			
		||||
      260,
 | 
			
		||||
      253,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -646,7 +646,7 @@ description: Artifact commands basic_fillet_cube_start.kcl
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      211,
 | 
			
		||||
      260,
 | 
			
		||||
      253,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -24,8 +24,8 @@ flowchart LR
 | 
			
		||||
  20["SweepEdge Adjacent"]
 | 
			
		||||
  21["SweepEdge Opposite"]
 | 
			
		||||
  22["SweepEdge Adjacent"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[211, 260, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[211, 260, 0]"]
 | 
			
		||||
  23["EdgeCut Fillet<br>[211, 253, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[211, 253, 0]"]
 | 
			
		||||
  1 --- 2
 | 
			
		||||
  2 --- 3
 | 
			
		||||
  2 --- 4
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,14 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing basic_fillet_cube_start.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
    "body": [
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 260,
 | 
			
		||||
          "end": 253,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "part001",
 | 
			
		||||
@ -335,73 +336,51 @@ description: Result of parsing basic_fillet_cube_start.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 256,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 230,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 226,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 220,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 220,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 230,
 | 
			
		||||
                          "raw": "2",
 | 
			
		||||
                          "start": 229,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 2.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 254,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 236,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 232,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 232,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 245,
 | 
			
		||||
                              "name": "thing",
 | 
			
		||||
                              "start": 240,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 253,
 | 
			
		||||
                              "name": "thing2",
 | 
			
		||||
                              "start": 247,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 254,
 | 
			
		||||
                          "start": 239,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 228,
 | 
			
		||||
                      "raw": "2",
 | 
			
		||||
                      "start": 227,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 2.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 218,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 259,
 | 
			
		||||
                    "start": 258,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 243,
 | 
			
		||||
                          "name": "thing",
 | 
			
		||||
                          "start": 238,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 251,
 | 
			
		||||
                          "name": "thing2",
 | 
			
		||||
                          "start": 245,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 252,
 | 
			
		||||
                      "start": 237,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -410,13 +389,14 @@ description: Result of parsing basic_fillet_cube_start.kcl
 | 
			
		||||
                  "start": 211,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 260,
 | 
			
		||||
                "end": 253,
 | 
			
		||||
                "start": 211,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 260,
 | 
			
		||||
            "end": 253,
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -424,14 +404,14 @@ description: Result of parsing basic_fillet_cube_start.kcl
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 260,
 | 
			
		||||
        "end": 253,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 261,
 | 
			
		||||
    "end": 254,
 | 
			
		||||
    "start": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,4 +5,4 @@ part001 = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
  |> extrude(length = 10)
 | 
			
		||||
  |> fillet({ radius = 2, tags = [thing, thing2] }, %)
 | 
			
		||||
  |> fillet(radius = 2, tags = [thing, thing2])
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed basic_fillet_cube_start.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,56 +73,45 @@ description: Operations executed basic_fillet_cube_start.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 2.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "thing",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "thing2",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          218,
 | 
			
		||||
          256,
 | 
			
		||||
          227,
 | 
			
		||||
          228,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "thing",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "thing2",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          258,
 | 
			
		||||
          259,
 | 
			
		||||
          237,
 | 
			
		||||
          252,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -129,10 +119,22 @@ description: Operations executed basic_fillet_cube_start.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      211,
 | 
			
		||||
      260,
 | 
			
		||||
      253,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -17,55 +17,55 @@ flowchart LR
 | 
			
		||||
    14[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path31 [Path]
 | 
			
		||||
    31["Path<br>[1341, 1366, 0]"]
 | 
			
		||||
    31["Path<br>[1337, 1362, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path32 [Path]
 | 
			
		||||
    32["Path<br>[1374, 1418, 0]"]
 | 
			
		||||
    33["Segment<br>[1374, 1418, 0]"]
 | 
			
		||||
    32["Path<br>[1370, 1414, 0]"]
 | 
			
		||||
    33["Segment<br>[1370, 1414, 0]"]
 | 
			
		||||
    34[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path35 [Path]
 | 
			
		||||
    35["Path<br>[1431, 1476, 0]"]
 | 
			
		||||
    36["Segment<br>[1431, 1476, 0]"]
 | 
			
		||||
    35["Path<br>[1427, 1472, 0]"]
 | 
			
		||||
    36["Segment<br>[1427, 1472, 0]"]
 | 
			
		||||
    37[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path45 [Path]
 | 
			
		||||
    45["Path<br>[1341, 1366, 0]"]
 | 
			
		||||
    45["Path<br>[1337, 1362, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path46 [Path]
 | 
			
		||||
    46["Path<br>[1374, 1418, 0]"]
 | 
			
		||||
    47["Segment<br>[1374, 1418, 0]"]
 | 
			
		||||
    46["Path<br>[1370, 1414, 0]"]
 | 
			
		||||
    47["Segment<br>[1370, 1414, 0]"]
 | 
			
		||||
    48[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path49 [Path]
 | 
			
		||||
    49["Path<br>[1431, 1476, 0]"]
 | 
			
		||||
    50["Segment<br>[1431, 1476, 0]"]
 | 
			
		||||
    49["Path<br>[1427, 1472, 0]"]
 | 
			
		||||
    50["Segment<br>[1427, 1472, 0]"]
 | 
			
		||||
    51[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path59 [Path]
 | 
			
		||||
    59["Path<br>[1341, 1366, 0]"]
 | 
			
		||||
    59["Path<br>[1337, 1362, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path60 [Path]
 | 
			
		||||
    60["Path<br>[1374, 1418, 0]"]
 | 
			
		||||
    61["Segment<br>[1374, 1418, 0]"]
 | 
			
		||||
    60["Path<br>[1370, 1414, 0]"]
 | 
			
		||||
    61["Segment<br>[1370, 1414, 0]"]
 | 
			
		||||
    62[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path63 [Path]
 | 
			
		||||
    63["Path<br>[1431, 1476, 0]"]
 | 
			
		||||
    64["Segment<br>[1431, 1476, 0]"]
 | 
			
		||||
    63["Path<br>[1427, 1472, 0]"]
 | 
			
		||||
    64["Segment<br>[1427, 1472, 0]"]
 | 
			
		||||
    65[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path73 [Path]
 | 
			
		||||
    73["Path<br>[1341, 1366, 0]"]
 | 
			
		||||
    73["Path<br>[1337, 1362, 0]"]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path74 [Path]
 | 
			
		||||
    74["Path<br>[1374, 1418, 0]"]
 | 
			
		||||
    75["Segment<br>[1374, 1418, 0]"]
 | 
			
		||||
    74["Path<br>[1370, 1414, 0]"]
 | 
			
		||||
    75["Segment<br>[1370, 1414, 0]"]
 | 
			
		||||
    76[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path77 [Path]
 | 
			
		||||
    77["Path<br>[1431, 1476, 0]"]
 | 
			
		||||
    78["Segment<br>[1431, 1476, 0]"]
 | 
			
		||||
    77["Path<br>[1427, 1472, 0]"]
 | 
			
		||||
    78["Segment<br>[1427, 1472, 0]"]
 | 
			
		||||
    79[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[373, 461, 0]"]
 | 
			
		||||
@ -85,38 +85,38 @@ flowchart LR
 | 
			
		||||
  27["SweepEdge Adjacent"]
 | 
			
		||||
  28["SweepEdge Opposite"]
 | 
			
		||||
  29["SweepEdge Adjacent"]
 | 
			
		||||
  30["Plane<br>[1314, 1333, 0]"]
 | 
			
		||||
  38["Sweep Extrusion<br>[1488, 1512, 0]"]
 | 
			
		||||
  30["Plane<br>[1310, 1329, 0]"]
 | 
			
		||||
  38["Sweep Extrusion<br>[1484, 1508, 0]"]
 | 
			
		||||
  39[Wall]
 | 
			
		||||
  40["Cap Start"]
 | 
			
		||||
  41["Cap End"]
 | 
			
		||||
  42["SweepEdge Opposite"]
 | 
			
		||||
  43["SweepEdge Adjacent"]
 | 
			
		||||
  44["Plane<br>[1314, 1333, 0]"]
 | 
			
		||||
  52["Sweep Extrusion<br>[1488, 1512, 0]"]
 | 
			
		||||
  44["Plane<br>[1310, 1329, 0]"]
 | 
			
		||||
  52["Sweep Extrusion<br>[1484, 1508, 0]"]
 | 
			
		||||
  53[Wall]
 | 
			
		||||
  54["Cap Start"]
 | 
			
		||||
  55["Cap End"]
 | 
			
		||||
  56["SweepEdge Opposite"]
 | 
			
		||||
  57["SweepEdge Adjacent"]
 | 
			
		||||
  58["Plane<br>[1314, 1333, 0]"]
 | 
			
		||||
  66["Sweep Extrusion<br>[1488, 1512, 0]"]
 | 
			
		||||
  58["Plane<br>[1310, 1329, 0]"]
 | 
			
		||||
  66["Sweep Extrusion<br>[1484, 1508, 0]"]
 | 
			
		||||
  67[Wall]
 | 
			
		||||
  68["Cap Start"]
 | 
			
		||||
  69["Cap End"]
 | 
			
		||||
  70["SweepEdge Opposite"]
 | 
			
		||||
  71["SweepEdge Adjacent"]
 | 
			
		||||
  72["Plane<br>[1314, 1333, 0]"]
 | 
			
		||||
  80["Sweep Extrusion<br>[1488, 1512, 0]"]
 | 
			
		||||
  72["Plane<br>[1310, 1329, 0]"]
 | 
			
		||||
  80["Sweep Extrusion<br>[1484, 1508, 0]"]
 | 
			
		||||
  81[Wall]
 | 
			
		||||
  82["Cap Start"]
 | 
			
		||||
  83["Cap End"]
 | 
			
		||||
  84["SweepEdge Opposite"]
 | 
			
		||||
  85["SweepEdge Adjacent"]
 | 
			
		||||
  86["EdgeCut Fillet<br>[1064, 1274, 0]"]
 | 
			
		||||
  87["EdgeCut Fillet<br>[1064, 1274, 0]"]
 | 
			
		||||
  88["EdgeCut Fillet<br>[1064, 1274, 0]"]
 | 
			
		||||
  89["EdgeCut Fillet<br>[1064, 1274, 0]"]
 | 
			
		||||
  86["EdgeCut Fillet<br>[1064, 1270, 0]"]
 | 
			
		||||
  87["EdgeCut Fillet<br>[1064, 1270, 0]"]
 | 
			
		||||
  88["EdgeCut Fillet<br>[1064, 1270, 0]"]
 | 
			
		||||
  89["EdgeCut Fillet<br>[1064, 1270, 0]"]
 | 
			
		||||
  1 --- 2
 | 
			
		||||
  2 --- 3
 | 
			
		||||
  2 --- 4
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -47,15 +47,15 @@ case = startSketchOn('XY')
 | 
			
		||||
  |> line(endAbsolute = [0, caseLength], tag = $edge3)
 | 
			
		||||
  |> close(tag = $edge4)
 | 
			
		||||
  |> extrude(length = caseHeight)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = 1,
 | 
			
		||||
       tags = [
 | 
			
		||||
         getNextAdjacentEdge(edge1),
 | 
			
		||||
         getNextAdjacentEdge(edge2),
 | 
			
		||||
         getNextAdjacentEdge(edge3),
 | 
			
		||||
         getNextAdjacentEdge(edge4)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
 | 
			
		||||
fn m25Screw(x, y, height) {
 | 
			
		||||
  screw = startSketchOn("XY")
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,62 +73,51 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 1.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1071,
 | 
			
		||||
          1270,
 | 
			
		||||
          1088,
 | 
			
		||||
          1089,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1272,
 | 
			
		||||
          1273,
 | 
			
		||||
          1105,
 | 
			
		||||
          1262,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -135,25 +125,37 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1064,
 | 
			
		||||
      1274,
 | 
			
		||||
      1270,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "UserDefinedFunctionCall",
 | 
			
		||||
    "name": "m25Screw",
 | 
			
		||||
    "functionSourceRange": [
 | 
			
		||||
      1287,
 | 
			
		||||
      1529,
 | 
			
		||||
      1283,
 | 
			
		||||
      1525,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "unlabeledArg": null,
 | 
			
		||||
    "labeledArgs": {},
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1531,
 | 
			
		||||
      1660,
 | 
			
		||||
      1527,
 | 
			
		||||
      1656,
 | 
			
		||||
      0
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -165,16 +167,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          "value": "XY"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1324,
 | 
			
		||||
          1328,
 | 
			
		||||
          1332,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1314,
 | 
			
		||||
      1333,
 | 
			
		||||
      1310,
 | 
			
		||||
      1329,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -190,8 +192,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1431,
 | 
			
		||||
          1476,
 | 
			
		||||
          1427,
 | 
			
		||||
          1472,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -203,16 +205,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1478,
 | 
			
		||||
          1479,
 | 
			
		||||
          1474,
 | 
			
		||||
          1475,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "hole",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1426,
 | 
			
		||||
      1480,
 | 
			
		||||
      1422,
 | 
			
		||||
      1476,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -235,16 +237,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1505,
 | 
			
		||||
          1511,
 | 
			
		||||
          1501,
 | 
			
		||||
          1507,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1488,
 | 
			
		||||
      1512,
 | 
			
		||||
      1484,
 | 
			
		||||
      1508,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -269,15 +271,15 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
    "type": "UserDefinedFunctionCall",
 | 
			
		||||
    "name": "m25Screw",
 | 
			
		||||
    "functionSourceRange": [
 | 
			
		||||
      1287,
 | 
			
		||||
      1529,
 | 
			
		||||
      1283,
 | 
			
		||||
      1525,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "unlabeledArg": null,
 | 
			
		||||
    "labeledArgs": {},
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1662,
 | 
			
		||||
      1789,
 | 
			
		||||
      1658,
 | 
			
		||||
      1785,
 | 
			
		||||
      0
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -289,16 +291,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          "value": "XY"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1324,
 | 
			
		||||
          1328,
 | 
			
		||||
          1332,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1314,
 | 
			
		||||
      1333,
 | 
			
		||||
      1310,
 | 
			
		||||
      1329,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -314,8 +316,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1431,
 | 
			
		||||
          1476,
 | 
			
		||||
          1427,
 | 
			
		||||
          1472,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -327,16 +329,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1478,
 | 
			
		||||
          1479,
 | 
			
		||||
          1474,
 | 
			
		||||
          1475,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "hole",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1426,
 | 
			
		||||
      1480,
 | 
			
		||||
      1422,
 | 
			
		||||
      1476,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -359,16 +361,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1505,
 | 
			
		||||
          1511,
 | 
			
		||||
          1501,
 | 
			
		||||
          1507,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1488,
 | 
			
		||||
      1512,
 | 
			
		||||
      1484,
 | 
			
		||||
      1508,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -393,15 +395,15 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
    "type": "UserDefinedFunctionCall",
 | 
			
		||||
    "name": "m25Screw",
 | 
			
		||||
    "functionSourceRange": [
 | 
			
		||||
      1287,
 | 
			
		||||
      1529,
 | 
			
		||||
      1283,
 | 
			
		||||
      1525,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "unlabeledArg": null,
 | 
			
		||||
    "labeledArgs": {},
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1791,
 | 
			
		||||
      1916,
 | 
			
		||||
      1787,
 | 
			
		||||
      1912,
 | 
			
		||||
      0
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -413,16 +415,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          "value": "XY"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1324,
 | 
			
		||||
          1328,
 | 
			
		||||
          1332,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1314,
 | 
			
		||||
      1333,
 | 
			
		||||
      1310,
 | 
			
		||||
      1329,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -438,8 +440,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1431,
 | 
			
		||||
          1476,
 | 
			
		||||
          1427,
 | 
			
		||||
          1472,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -451,16 +453,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1478,
 | 
			
		||||
          1479,
 | 
			
		||||
          1474,
 | 
			
		||||
          1475,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "hole",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1426,
 | 
			
		||||
      1480,
 | 
			
		||||
      1422,
 | 
			
		||||
      1476,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -483,16 +485,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1505,
 | 
			
		||||
          1511,
 | 
			
		||||
          1501,
 | 
			
		||||
          1507,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1488,
 | 
			
		||||
      1512,
 | 
			
		||||
      1484,
 | 
			
		||||
      1508,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -517,15 +519,15 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
    "type": "UserDefinedFunctionCall",
 | 
			
		||||
    "name": "m25Screw",
 | 
			
		||||
    "functionSourceRange": [
 | 
			
		||||
      1287,
 | 
			
		||||
      1529,
 | 
			
		||||
      1283,
 | 
			
		||||
      1525,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "unlabeledArg": null,
 | 
			
		||||
    "labeledArgs": {},
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1918,
 | 
			
		||||
      2045,
 | 
			
		||||
      1914,
 | 
			
		||||
      2041,
 | 
			
		||||
      0
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -537,16 +539,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          "value": "XY"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1324,
 | 
			
		||||
          1328,
 | 
			
		||||
          1332,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1314,
 | 
			
		||||
      1333,
 | 
			
		||||
      1310,
 | 
			
		||||
      1329,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -562,8 +564,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1431,
 | 
			
		||||
          1476,
 | 
			
		||||
          1427,
 | 
			
		||||
          1472,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -575,16 +577,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1478,
 | 
			
		||||
          1479,
 | 
			
		||||
          1474,
 | 
			
		||||
          1475,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "hole",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1426,
 | 
			
		||||
      1480,
 | 
			
		||||
      1422,
 | 
			
		||||
      1476,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -607,16 +609,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1505,
 | 
			
		||||
          1511,
 | 
			
		||||
          1501,
 | 
			
		||||
          1507,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1488,
 | 
			
		||||
      1512,
 | 
			
		||||
      1484,
 | 
			
		||||
      1508,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -650,8 +652,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          2067,
 | 
			
		||||
          2074,
 | 
			
		||||
          2063,
 | 
			
		||||
          2070,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -670,16 +672,16 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          2088,
 | 
			
		||||
          2101,
 | 
			
		||||
          2084,
 | 
			
		||||
          2097,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "shell",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      2047,
 | 
			
		||||
      2102,
 | 
			
		||||
      2043,
 | 
			
		||||
      2098,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -691,8 +693,8 @@ description: Operations executed fillet-and-shell.kcl
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        2049,
 | 
			
		||||
        2053,
 | 
			
		||||
        2057,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "E": {
 | 
			
		||||
@ -1150,11 +1151,11 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
        "body": [
 | 
			
		||||
          {
 | 
			
		||||
            "declaration": {
 | 
			
		||||
              "end": 1512,
 | 
			
		||||
              "end": 1508,
 | 
			
		||||
              "id": {
 | 
			
		||||
                "end": 1311,
 | 
			
		||||
                "end": 1307,
 | 
			
		||||
                "name": "screw",
 | 
			
		||||
                "start": 1306,
 | 
			
		||||
                "start": 1302,
 | 
			
		||||
                "type": "Identifier"
 | 
			
		||||
              },
 | 
			
		||||
              "init": {
 | 
			
		||||
@ -1162,22 +1163,22 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                  {
 | 
			
		||||
                    "arguments": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1332,
 | 
			
		||||
                        "end": 1328,
 | 
			
		||||
                        "raw": "\"XY\"",
 | 
			
		||||
                        "start": 1328,
 | 
			
		||||
                        "start": 1324,
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "value": "XY"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "callee": {
 | 
			
		||||
                      "end": 1327,
 | 
			
		||||
                      "end": 1323,
 | 
			
		||||
                      "name": "startSketchOn",
 | 
			
		||||
                      "start": 1314,
 | 
			
		||||
                      "start": 1310,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "end": 1333,
 | 
			
		||||
                    "start": 1314,
 | 
			
		||||
                    "end": 1329,
 | 
			
		||||
                    "start": 1310,
 | 
			
		||||
                    "type": "CallExpression",
 | 
			
		||||
                    "type": "CallExpression"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1186,9 +1187,9 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                      {
 | 
			
		||||
                        "elements": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1358,
 | 
			
		||||
                            "end": 1354,
 | 
			
		||||
                            "raw": "0",
 | 
			
		||||
                            "start": 1357,
 | 
			
		||||
                            "start": 1353,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1197,9 +1198,9 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1361,
 | 
			
		||||
                            "end": 1357,
 | 
			
		||||
                            "raw": "0",
 | 
			
		||||
                            "start": 1360,
 | 
			
		||||
                            "start": 1356,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1208,81 +1209,81 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "end": 1362,
 | 
			
		||||
                        "start": 1356,
 | 
			
		||||
                        "end": 1358,
 | 
			
		||||
                        "start": 1352,
 | 
			
		||||
                        "type": "ArrayExpression",
 | 
			
		||||
                        "type": "ArrayExpression"
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1365,
 | 
			
		||||
                        "start": 1364,
 | 
			
		||||
                        "end": 1361,
 | 
			
		||||
                        "start": 1360,
 | 
			
		||||
                        "type": "PipeSubstitution",
 | 
			
		||||
                        "type": "PipeSubstitution"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "callee": {
 | 
			
		||||
                      "end": 1355,
 | 
			
		||||
                      "end": 1351,
 | 
			
		||||
                      "name": "startProfileAt",
 | 
			
		||||
                      "start": 1341,
 | 
			
		||||
                      "start": 1337,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "end": 1366,
 | 
			
		||||
                    "start": 1341,
 | 
			
		||||
                    "end": 1362,
 | 
			
		||||
                    "start": 1337,
 | 
			
		||||
                    "type": "CallExpression",
 | 
			
		||||
                    "type": "CallExpression"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "arguments": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1414,
 | 
			
		||||
                        "end": 1410,
 | 
			
		||||
                        "properties": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1398,
 | 
			
		||||
                            "end": 1394,
 | 
			
		||||
                            "key": {
 | 
			
		||||
                              "end": 1389,
 | 
			
		||||
                              "end": 1385,
 | 
			
		||||
                              "name": "center",
 | 
			
		||||
                              "start": 1383,
 | 
			
		||||
                              "start": 1379,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "start": 1383,
 | 
			
		||||
                            "start": 1379,
 | 
			
		||||
                            "type": "ObjectProperty",
 | 
			
		||||
                            "value": {
 | 
			
		||||
                              "elements": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 1394,
 | 
			
		||||
                                  "end": 1390,
 | 
			
		||||
                                  "name": "x",
 | 
			
		||||
                                  "start": 1393,
 | 
			
		||||
                                  "start": 1389,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 1397,
 | 
			
		||||
                                  "end": 1393,
 | 
			
		||||
                                  "name": "y",
 | 
			
		||||
                                  "start": 1396,
 | 
			
		||||
                                  "start": 1392,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "end": 1398,
 | 
			
		||||
                              "start": 1392,
 | 
			
		||||
                              "end": 1394,
 | 
			
		||||
                              "start": 1388,
 | 
			
		||||
                              "type": "ArrayExpression",
 | 
			
		||||
                              "type": "ArrayExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1412,
 | 
			
		||||
                            "end": 1408,
 | 
			
		||||
                            "key": {
 | 
			
		||||
                              "end": 1406,
 | 
			
		||||
                              "end": 1402,
 | 
			
		||||
                              "name": "radius",
 | 
			
		||||
                              "start": 1400,
 | 
			
		||||
                              "start": 1396,
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "start": 1400,
 | 
			
		||||
                            "start": 1396,
 | 
			
		||||
                            "type": "ObjectProperty",
 | 
			
		||||
                            "value": {
 | 
			
		||||
                              "end": 1412,
 | 
			
		||||
                              "end": 1408,
 | 
			
		||||
                              "raw": "2.5",
 | 
			
		||||
                              "start": 1409,
 | 
			
		||||
                              "start": 1405,
 | 
			
		||||
                              "type": "Literal",
 | 
			
		||||
                              "type": "Literal",
 | 
			
		||||
                              "value": {
 | 
			
		||||
@ -1292,25 +1293,25 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "start": 1381,
 | 
			
		||||
                        "start": 1377,
 | 
			
		||||
                        "type": "ObjectExpression",
 | 
			
		||||
                        "type": "ObjectExpression"
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1417,
 | 
			
		||||
                        "start": 1416,
 | 
			
		||||
                        "end": 1413,
 | 
			
		||||
                        "start": 1412,
 | 
			
		||||
                        "type": "PipeSubstitution",
 | 
			
		||||
                        "type": "PipeSubstitution"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "callee": {
 | 
			
		||||
                      "end": 1380,
 | 
			
		||||
                      "end": 1376,
 | 
			
		||||
                      "name": "circle",
 | 
			
		||||
                      "start": 1374,
 | 
			
		||||
                      "start": 1370,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "end": 1418,
 | 
			
		||||
                    "start": 1374,
 | 
			
		||||
                    "end": 1414,
 | 
			
		||||
                    "start": 1370,
 | 
			
		||||
                    "type": "CallExpression",
 | 
			
		||||
                    "type": "CallExpression"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1319,55 +1320,55 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                      {
 | 
			
		||||
                        "arguments": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1472,
 | 
			
		||||
                            "end": 1468,
 | 
			
		||||
                            "properties": [
 | 
			
		||||
                              {
 | 
			
		||||
                                "end": 1455,
 | 
			
		||||
                                "end": 1451,
 | 
			
		||||
                                "key": {
 | 
			
		||||
                                  "end": 1446,
 | 
			
		||||
                                  "end": 1442,
 | 
			
		||||
                                  "name": "center",
 | 
			
		||||
                                  "start": 1440,
 | 
			
		||||
                                  "start": 1436,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 1440,
 | 
			
		||||
                                "start": 1436,
 | 
			
		||||
                                "type": "ObjectProperty",
 | 
			
		||||
                                "value": {
 | 
			
		||||
                                  "elements": [
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "end": 1451,
 | 
			
		||||
                                      "end": 1447,
 | 
			
		||||
                                      "name": "x",
 | 
			
		||||
                                      "start": 1450,
 | 
			
		||||
                                      "start": 1446,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    {
 | 
			
		||||
                                      "end": 1454,
 | 
			
		||||
                                      "end": 1450,
 | 
			
		||||
                                      "name": "y",
 | 
			
		||||
                                      "start": 1453,
 | 
			
		||||
                                      "start": 1449,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    }
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "end": 1455,
 | 
			
		||||
                                  "start": 1449,
 | 
			
		||||
                                  "end": 1451,
 | 
			
		||||
                                  "start": 1445,
 | 
			
		||||
                                  "type": "ArrayExpression",
 | 
			
		||||
                                  "type": "ArrayExpression"
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              {
 | 
			
		||||
                                "end": 1470,
 | 
			
		||||
                                "end": 1466,
 | 
			
		||||
                                "key": {
 | 
			
		||||
                                  "end": 1463,
 | 
			
		||||
                                  "end": 1459,
 | 
			
		||||
                                  "name": "radius",
 | 
			
		||||
                                  "start": 1457,
 | 
			
		||||
                                  "start": 1453,
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 1457,
 | 
			
		||||
                                "start": 1453,
 | 
			
		||||
                                "type": "ObjectProperty",
 | 
			
		||||
                                "value": {
 | 
			
		||||
                                  "end": 1470,
 | 
			
		||||
                                  "end": 1466,
 | 
			
		||||
                                  "raw": "1.25",
 | 
			
		||||
                                  "start": 1466,
 | 
			
		||||
                                  "start": 1462,
 | 
			
		||||
                                  "type": "Literal",
 | 
			
		||||
                                  "type": "Literal",
 | 
			
		||||
                                  "value": {
 | 
			
		||||
@ -1377,43 +1378,43 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            ],
 | 
			
		||||
                            "start": 1438,
 | 
			
		||||
                            "start": 1434,
 | 
			
		||||
                            "type": "ObjectExpression",
 | 
			
		||||
                            "type": "ObjectExpression"
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "end": 1475,
 | 
			
		||||
                            "start": 1474,
 | 
			
		||||
                            "end": 1471,
 | 
			
		||||
                            "start": 1470,
 | 
			
		||||
                            "type": "PipeSubstitution",
 | 
			
		||||
                            "type": "PipeSubstitution"
 | 
			
		||||
                          }
 | 
			
		||||
                        ],
 | 
			
		||||
                        "callee": {
 | 
			
		||||
                          "end": 1437,
 | 
			
		||||
                          "end": 1433,
 | 
			
		||||
                          "name": "circle",
 | 
			
		||||
                          "start": 1431,
 | 
			
		||||
                          "start": 1427,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "end": 1476,
 | 
			
		||||
                        "start": 1431,
 | 
			
		||||
                        "end": 1472,
 | 
			
		||||
                        "start": 1427,
 | 
			
		||||
                        "type": "CallExpression",
 | 
			
		||||
                        "type": "CallExpression"
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1479,
 | 
			
		||||
                        "start": 1478,
 | 
			
		||||
                        "end": 1475,
 | 
			
		||||
                        "start": 1474,
 | 
			
		||||
                        "type": "PipeSubstitution",
 | 
			
		||||
                        "type": "PipeSubstitution"
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "callee": {
 | 
			
		||||
                      "end": 1430,
 | 
			
		||||
                      "end": 1426,
 | 
			
		||||
                      "name": "hole",
 | 
			
		||||
                      "start": 1426,
 | 
			
		||||
                      "start": 1422,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "end": 1480,
 | 
			
		||||
                    "start": 1426,
 | 
			
		||||
                    "end": 1476,
 | 
			
		||||
                    "start": 1422,
 | 
			
		||||
                    "type": "CallExpression",
 | 
			
		||||
                    "type": "CallExpression"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1426,89 +1427,89 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
                          "name": "length"
 | 
			
		||||
                        },
 | 
			
		||||
                        "arg": {
 | 
			
		||||
                          "end": 1511,
 | 
			
		||||
                          "end": 1507,
 | 
			
		||||
                          "name": "height",
 | 
			
		||||
                          "start": 1505,
 | 
			
		||||
                          "start": 1501,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "callee": {
 | 
			
		||||
                      "end": 1495,
 | 
			
		||||
                      "end": 1491,
 | 
			
		||||
                      "name": "extrude",
 | 
			
		||||
                      "start": 1488,
 | 
			
		||||
                      "start": 1484,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "end": 1512,
 | 
			
		||||
                    "start": 1488,
 | 
			
		||||
                    "end": 1508,
 | 
			
		||||
                    "start": 1484,
 | 
			
		||||
                    "type": "CallExpressionKw",
 | 
			
		||||
                    "type": "CallExpressionKw",
 | 
			
		||||
                    "unlabeled": null
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "end": 1512,
 | 
			
		||||
                "start": 1314,
 | 
			
		||||
                "end": 1508,
 | 
			
		||||
                "start": 1310,
 | 
			
		||||
                "type": "PipeExpression",
 | 
			
		||||
                "type": "PipeExpression"
 | 
			
		||||
              },
 | 
			
		||||
              "start": 1306,
 | 
			
		||||
              "start": 1302,
 | 
			
		||||
              "type": "VariableDeclarator"
 | 
			
		||||
            },
 | 
			
		||||
            "end": 1512,
 | 
			
		||||
            "end": 1508,
 | 
			
		||||
            "kind": "const",
 | 
			
		||||
            "start": 1306,
 | 
			
		||||
            "start": 1302,
 | 
			
		||||
            "type": "VariableDeclaration",
 | 
			
		||||
            "type": "VariableDeclaration"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "argument": {
 | 
			
		||||
              "end": 1527,
 | 
			
		||||
              "end": 1523,
 | 
			
		||||
              "name": "screw",
 | 
			
		||||
              "start": 1522,
 | 
			
		||||
              "start": 1518,
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier"
 | 
			
		||||
            },
 | 
			
		||||
            "end": 1527,
 | 
			
		||||
            "start": 1515,
 | 
			
		||||
            "end": 1523,
 | 
			
		||||
            "start": 1511,
 | 
			
		||||
            "type": "ReturnStatement",
 | 
			
		||||
            "type": "ReturnStatement"
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "end": 1529,
 | 
			
		||||
        "start": 1302
 | 
			
		||||
        "end": 1525,
 | 
			
		||||
        "start": 1298
 | 
			
		||||
      },
 | 
			
		||||
      "end": 1529,
 | 
			
		||||
      "end": 1525,
 | 
			
		||||
      "params": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "Parameter",
 | 
			
		||||
          "identifier": {
 | 
			
		||||
            "end": 1289,
 | 
			
		||||
            "end": 1285,
 | 
			
		||||
            "name": "x",
 | 
			
		||||
            "start": 1288,
 | 
			
		||||
            "start": 1284,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "Parameter",
 | 
			
		||||
          "identifier": {
 | 
			
		||||
            "end": 1292,
 | 
			
		||||
            "end": 1288,
 | 
			
		||||
            "name": "y",
 | 
			
		||||
            "start": 1291,
 | 
			
		||||
            "start": 1287,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "Parameter",
 | 
			
		||||
          "identifier": {
 | 
			
		||||
            "end": 1300,
 | 
			
		||||
            "end": 1296,
 | 
			
		||||
            "name": "height",
 | 
			
		||||
            "start": 1294,
 | 
			
		||||
            "start": 1290,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "start": 1287,
 | 
			
		||||
      "start": 1283,
 | 
			
		||||
      "type": "FunctionExpression"
 | 
			
		||||
    },
 | 
			
		||||
    "memory": [
 | 
			
		||||
@ -1518,8 +1519,8 @@ description: Variables in memory after executing fillet-and-shell.kcl
 | 
			
		||||
    "__meta": [
 | 
			
		||||
      {
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1287,
 | 
			
		||||
          1529,
 | 
			
		||||
          1283,
 | 
			
		||||
          1525,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing mike_stress_test.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Variables in memory after executing mike_stress_test.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "E": {
 | 
			
		||||
 | 
			
		||||
@ -758,8 +758,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      725,
 | 
			
		||||
      757,
 | 
			
		||||
      724,
 | 
			
		||||
      756,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -773,7 +773,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      646,
 | 
			
		||||
      777,
 | 
			
		||||
      773,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -789,7 +789,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      646,
 | 
			
		||||
      777,
 | 
			
		||||
      773,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -889,8 +889,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -905,8 +905,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -919,8 +919,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -930,8 +930,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -942,8 +942,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -955,8 +955,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -969,8 +969,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -983,8 +983,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      929,
 | 
			
		||||
      961,
 | 
			
		||||
      924,
 | 
			
		||||
      956,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -997,8 +997,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      850,
 | 
			
		||||
      981,
 | 
			
		||||
      846,
 | 
			
		||||
      973,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1013,8 +1013,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      850,
 | 
			
		||||
      981,
 | 
			
		||||
      846,
 | 
			
		||||
      973,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -36,15 +36,15 @@ flowchart LR
 | 
			
		||||
  24["Cap End"]
 | 
			
		||||
  25["SweepEdge Opposite"]
 | 
			
		||||
  26["SweepEdge Adjacent"]
 | 
			
		||||
  27["EdgeCut Fillet<br>[646, 777, 0]"]
 | 
			
		||||
  28["EdgeCut Fillet<br>[646, 777, 0]"]
 | 
			
		||||
  33["Sweep Extrusion<br>[816, 844, 0]"]
 | 
			
		||||
  27["EdgeCut Fillet<br>[646, 773, 0]"]
 | 
			
		||||
  28["EdgeCut Fillet<br>[646, 773, 0]"]
 | 
			
		||||
  33["Sweep Extrusion<br>[812, 840, 0]"]
 | 
			
		||||
  34[Wall]
 | 
			
		||||
  35["Cap End"]
 | 
			
		||||
  36["SweepEdge Opposite"]
 | 
			
		||||
  37["SweepEdge Adjacent"]
 | 
			
		||||
  38["EdgeCut Fillet<br>[850, 981, 0]"]
 | 
			
		||||
  39["EdgeCut Fillet<br>[850, 981, 0]"]
 | 
			
		||||
  38["EdgeCut Fillet<br>[846, 973, 0]"]
 | 
			
		||||
  39["EdgeCut Fillet<br>[846, 973, 0]"]
 | 
			
		||||
  1 --- 2
 | 
			
		||||
  2 --- 3
 | 
			
		||||
  2 --- 4
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "Ok": {
 | 
			
		||||
@ -840,7 +841,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 777,
 | 
			
		||||
          "end": 773,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 601,
 | 
			
		||||
            "name": "plumbus1",
 | 
			
		||||
@ -888,143 +889,121 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 773,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 672,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 668,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 662,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 671,
 | 
			
		||||
                      "raw": "5",
 | 
			
		||||
                      "start": 670,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 5.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "computed": false,
 | 
			
		||||
                          "end": 713,
 | 
			
		||||
                          "object": {
 | 
			
		||||
                            "computed": false,
 | 
			
		||||
                            "end": 705,
 | 
			
		||||
                            "object": {
 | 
			
		||||
                              "end": 700,
 | 
			
		||||
                              "name": "c1",
 | 
			
		||||
                              "start": 698,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "property": {
 | 
			
		||||
                              "end": 705,
 | 
			
		||||
                              "name": "tags",
 | 
			
		||||
                              "start": 701,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "start": 698,
 | 
			
		||||
                            "type": "MemberExpression",
 | 
			
		||||
                            "type": "MemberExpression"
 | 
			
		||||
                          },
 | 
			
		||||
                          "property": {
 | 
			
		||||
                            "end": 713,
 | 
			
		||||
                            "name": "arc_tag",
 | 
			
		||||
                            "start": 706,
 | 
			
		||||
                            "type": "Identifier",
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "start": 698,
 | 
			
		||||
                          "type": "MemberExpression",
 | 
			
		||||
                          "type": "MemberExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 662,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 672,
 | 
			
		||||
                          "raw": "5",
 | 
			
		||||
                          "start": 671,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 5.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 766,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 685,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 681,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 681,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "computed": false,
 | 
			
		||||
                              "end": 714,
 | 
			
		||||
                              "end": 755,
 | 
			
		||||
                              "object": {
 | 
			
		||||
                                "computed": false,
 | 
			
		||||
                                "end": 706,
 | 
			
		||||
                                "end": 747,
 | 
			
		||||
                                "object": {
 | 
			
		||||
                                  "end": 701,
 | 
			
		||||
                                  "end": 742,
 | 
			
		||||
                                  "name": "c1",
 | 
			
		||||
                                  "start": 699,
 | 
			
		||||
                                  "start": 740,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "property": {
 | 
			
		||||
                                  "end": 706,
 | 
			
		||||
                                  "end": 747,
 | 
			
		||||
                                  "name": "tags",
 | 
			
		||||
                                  "start": 702,
 | 
			
		||||
                                  "start": 743,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 699,
 | 
			
		||||
                                "start": 740,
 | 
			
		||||
                                "type": "MemberExpression",
 | 
			
		||||
                                "type": "MemberExpression"
 | 
			
		||||
                              },
 | 
			
		||||
                              "property": {
 | 
			
		||||
                                "end": 714,
 | 
			
		||||
                                "end": 755,
 | 
			
		||||
                                "name": "arc_tag",
 | 
			
		||||
                                "start": 707,
 | 
			
		||||
                                "start": 748,
 | 
			
		||||
                                "type": "Identifier",
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "start": 699,
 | 
			
		||||
                              "start": 740,
 | 
			
		||||
                              "type": "MemberExpression",
 | 
			
		||||
                              "type": "MemberExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "computed": false,
 | 
			
		||||
                                  "end": 756,
 | 
			
		||||
                                  "object": {
 | 
			
		||||
                                    "computed": false,
 | 
			
		||||
                                    "end": 748,
 | 
			
		||||
                                    "object": {
 | 
			
		||||
                                      "end": 743,
 | 
			
		||||
                                      "name": "c1",
 | 
			
		||||
                                      "start": 741,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "property": {
 | 
			
		||||
                                      "end": 748,
 | 
			
		||||
                                      "name": "tags",
 | 
			
		||||
                                      "start": 744,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "start": 741,
 | 
			
		||||
                                    "type": "MemberExpression",
 | 
			
		||||
                                    "type": "MemberExpression"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "property": {
 | 
			
		||||
                                    "end": 756,
 | 
			
		||||
                                    "name": "arc_tag",
 | 
			
		||||
                                    "start": 749,
 | 
			
		||||
                                    "type": "Identifier",
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "start": 741,
 | 
			
		||||
                                  "type": "MemberExpression",
 | 
			
		||||
                                  "type": "MemberExpression"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 740,
 | 
			
		||||
                                "name": "getOppositeEdge",
 | 
			
		||||
                                "start": 725,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 757,
 | 
			
		||||
                              "start": 725,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 766,
 | 
			
		||||
                          "start": 688,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 739,
 | 
			
		||||
                            "name": "getOppositeEdge",
 | 
			
		||||
                            "start": 724,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 756,
 | 
			
		||||
                          "start": 724,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 653,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 776,
 | 
			
		||||
                    "start": 775,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 765,
 | 
			
		||||
                      "start": 687,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -1033,13 +1012,14 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
                  "start": 646,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 777,
 | 
			
		||||
                "end": 773,
 | 
			
		||||
                "start": 646,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 777,
 | 
			
		||||
            "end": 773,
 | 
			
		||||
            "start": 604,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -1047,7 +1027,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
          "start": 593,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 777,
 | 
			
		||||
        "end": 773,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 593,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
@ -1055,19 +1035,19 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 796,
 | 
			
		||||
          "end": 792,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 780,
 | 
			
		||||
            "end": 776,
 | 
			
		||||
            "name": "c2",
 | 
			
		||||
            "start": 778,
 | 
			
		||||
            "start": 774,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "end": 792,
 | 
			
		||||
                "end": 788,
 | 
			
		||||
                "raw": "200",
 | 
			
		||||
                "start": 789,
 | 
			
		||||
                "start": 785,
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "value": {
 | 
			
		||||
@ -1076,48 +1056,48 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "end": 795,
 | 
			
		||||
                "end": 791,
 | 
			
		||||
                "name": "a",
 | 
			
		||||
                "start": 794,
 | 
			
		||||
                "start": 790,
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "end": 788,
 | 
			
		||||
              "end": 784,
 | 
			
		||||
              "name": "circl",
 | 
			
		||||
              "start": 783,
 | 
			
		||||
              "start": 779,
 | 
			
		||||
              "type": "Identifier"
 | 
			
		||||
            },
 | 
			
		||||
            "end": 796,
 | 
			
		||||
            "start": 783,
 | 
			
		||||
            "end": 792,
 | 
			
		||||
            "start": 779,
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression"
 | 
			
		||||
          },
 | 
			
		||||
          "start": 778,
 | 
			
		||||
          "start": 774,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 796,
 | 
			
		||||
        "end": 792,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 778,
 | 
			
		||||
        "start": 774,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 981,
 | 
			
		||||
          "end": 973,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 805,
 | 
			
		||||
            "end": 801,
 | 
			
		||||
            "name": "plumbus0",
 | 
			
		||||
            "start": 797,
 | 
			
		||||
            "start": 793,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "body": [
 | 
			
		||||
              {
 | 
			
		||||
                "end": 810,
 | 
			
		||||
                "end": 806,
 | 
			
		||||
                "name": "c2",
 | 
			
		||||
                "start": 808,
 | 
			
		||||
                "start": 804,
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier"
 | 
			
		||||
              },
 | 
			
		||||
@ -1130,22 +1110,22 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
                      "name": "length"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 843,
 | 
			
		||||
                      "end": 839,
 | 
			
		||||
                      "name": "plumbusLen",
 | 
			
		||||
                      "start": 833,
 | 
			
		||||
                      "start": 829,
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 823,
 | 
			
		||||
                  "end": 819,
 | 
			
		||||
                  "name": "extrude",
 | 
			
		||||
                  "start": 816,
 | 
			
		||||
                  "start": 812,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 844,
 | 
			
		||||
                "start": 816,
 | 
			
		||||
                "end": 840,
 | 
			
		||||
                "start": 812,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -1153,173 +1133,152 @@ description: Result of parsing pentagon_fillet_sugar.kcl
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 977,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 876,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 872,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 866,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 871,
 | 
			
		||||
                      "raw": "5",
 | 
			
		||||
                      "start": 870,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "value": 5.0,
 | 
			
		||||
                        "suffix": "None"
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "computed": false,
 | 
			
		||||
                          "end": 913,
 | 
			
		||||
                          "object": {
 | 
			
		||||
                            "computed": false,
 | 
			
		||||
                            "end": 905,
 | 
			
		||||
                            "object": {
 | 
			
		||||
                              "end": 900,
 | 
			
		||||
                              "name": "c2",
 | 
			
		||||
                              "start": 898,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "property": {
 | 
			
		||||
                              "end": 905,
 | 
			
		||||
                              "name": "tags",
 | 
			
		||||
                              "start": 901,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            },
 | 
			
		||||
                            "start": 898,
 | 
			
		||||
                            "type": "MemberExpression",
 | 
			
		||||
                            "type": "MemberExpression"
 | 
			
		||||
                          },
 | 
			
		||||
                          "property": {
 | 
			
		||||
                            "end": 913,
 | 
			
		||||
                            "name": "arc_tag",
 | 
			
		||||
                            "start": 906,
 | 
			
		||||
                            "type": "Identifier",
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "start": 898,
 | 
			
		||||
                          "type": "MemberExpression",
 | 
			
		||||
                          "type": "MemberExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 866,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 876,
 | 
			
		||||
                          "raw": "5",
 | 
			
		||||
                          "start": 875,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
                            "value": 5.0,
 | 
			
		||||
                            "suffix": "None"
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 970,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 889,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 885,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 885,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "computed": false,
 | 
			
		||||
                              "end": 918,
 | 
			
		||||
                              "end": 955,
 | 
			
		||||
                              "object": {
 | 
			
		||||
                                "computed": false,
 | 
			
		||||
                                "end": 910,
 | 
			
		||||
                                "end": 947,
 | 
			
		||||
                                "object": {
 | 
			
		||||
                                  "end": 905,
 | 
			
		||||
                                  "end": 942,
 | 
			
		||||
                                  "name": "c2",
 | 
			
		||||
                                  "start": 903,
 | 
			
		||||
                                  "start": 940,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "property": {
 | 
			
		||||
                                  "end": 910,
 | 
			
		||||
                                  "end": 947,
 | 
			
		||||
                                  "name": "tags",
 | 
			
		||||
                                  "start": 906,
 | 
			
		||||
                                  "start": 943,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                },
 | 
			
		||||
                                "start": 903,
 | 
			
		||||
                                "start": 940,
 | 
			
		||||
                                "type": "MemberExpression",
 | 
			
		||||
                                "type": "MemberExpression"
 | 
			
		||||
                              },
 | 
			
		||||
                              "property": {
 | 
			
		||||
                                "end": 918,
 | 
			
		||||
                                "end": 955,
 | 
			
		||||
                                "name": "arc_tag",
 | 
			
		||||
                                "start": 911,
 | 
			
		||||
                                "start": 948,
 | 
			
		||||
                                "type": "Identifier",
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "start": 903,
 | 
			
		||||
                              "start": 940,
 | 
			
		||||
                              "type": "MemberExpression",
 | 
			
		||||
                              "type": "MemberExpression"
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "computed": false,
 | 
			
		||||
                                  "end": 960,
 | 
			
		||||
                                  "object": {
 | 
			
		||||
                                    "computed": false,
 | 
			
		||||
                                    "end": 952,
 | 
			
		||||
                                    "object": {
 | 
			
		||||
                                      "end": 947,
 | 
			
		||||
                                      "name": "c2",
 | 
			
		||||
                                      "start": 945,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "property": {
 | 
			
		||||
                                      "end": 952,
 | 
			
		||||
                                      "name": "tags",
 | 
			
		||||
                                      "start": 948,
 | 
			
		||||
                                      "type": "Identifier",
 | 
			
		||||
                                      "type": "Identifier"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "start": 945,
 | 
			
		||||
                                    "type": "MemberExpression",
 | 
			
		||||
                                    "type": "MemberExpression"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "property": {
 | 
			
		||||
                                    "end": 960,
 | 
			
		||||
                                    "name": "arc_tag",
 | 
			
		||||
                                    "start": 953,
 | 
			
		||||
                                    "type": "Identifier",
 | 
			
		||||
                                    "type": "Identifier"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "start": 945,
 | 
			
		||||
                                  "type": "MemberExpression",
 | 
			
		||||
                                  "type": "MemberExpression"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 944,
 | 
			
		||||
                                "name": "getOppositeEdge",
 | 
			
		||||
                                "start": 929,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 961,
 | 
			
		||||
                              "start": 929,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 970,
 | 
			
		||||
                          "start": 892,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 939,
 | 
			
		||||
                            "name": "getOppositeEdge",
 | 
			
		||||
                            "start": 924,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 956,
 | 
			
		||||
                          "start": 924,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 857,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 980,
 | 
			
		||||
                    "start": 979,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 965,
 | 
			
		||||
                      "start": 887,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 856,
 | 
			
		||||
                  "end": 852,
 | 
			
		||||
                  "name": "fillet",
 | 
			
		||||
                  "start": 850,
 | 
			
		||||
                  "start": 846,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 981,
 | 
			
		||||
                "start": 850,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "end": 973,
 | 
			
		||||
                "start": 846,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 981,
 | 
			
		||||
            "start": 808,
 | 
			
		||||
            "end": 973,
 | 
			
		||||
            "start": 804,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
          },
 | 
			
		||||
          "start": 797,
 | 
			
		||||
          "start": 793,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 981,
 | 
			
		||||
        "end": 973,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 797,
 | 
			
		||||
        "start": 793,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 982,
 | 
			
		||||
    "end": 974,
 | 
			
		||||
    "nonCodeMeta": {
 | 
			
		||||
      "nonCodeNodes": {
 | 
			
		||||
        "3": [
 | 
			
		||||
 | 
			
		||||
@ -25,20 +25,20 @@ fn circl(x, face) {
 | 
			
		||||
c1 = circl(-200, c)
 | 
			
		||||
plumbus1 = c1
 | 
			
		||||
  |> extrude(length = plumbusLen)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = 5,
 | 
			
		||||
       tags = [
 | 
			
		||||
         c1.tags.arc_tag,
 | 
			
		||||
         getOppositeEdge(c1.tags.arc_tag)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
c2 = circl(200, a)
 | 
			
		||||
plumbus0 = c2
 | 
			
		||||
  |> extrude(length = plumbusLen)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = 5,
 | 
			
		||||
       tags = [
 | 
			
		||||
         c2.tags.arc_tag,
 | 
			
		||||
         getOppositeEdge(c2.tags.arc_tag)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -172,55 +173,44 @@ description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 5.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "arc_tag",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          653,
 | 
			
		||||
          773,
 | 
			
		||||
          670,
 | 
			
		||||
          671,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "arc_tag",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          775,
 | 
			
		||||
          776,
 | 
			
		||||
          687,
 | 
			
		||||
          765,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -228,11 +218,23 @@ description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      646,
 | 
			
		||||
      777,
 | 
			
		||||
      773,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "type": "UserDefinedFunctionCall",
 | 
			
		||||
@ -245,8 +247,8 @@ description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
    "unlabeledArg": null,
 | 
			
		||||
    "labeledArgs": {},
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      783,
 | 
			
		||||
      796,
 | 
			
		||||
      779,
 | 
			
		||||
      792,
 | 
			
		||||
      0
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@ -307,16 +309,16 @@ description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          833,
 | 
			
		||||
          843,
 | 
			
		||||
          829,
 | 
			
		||||
          839,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      816,
 | 
			
		||||
      844,
 | 
			
		||||
      812,
 | 
			
		||||
      840,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -336,66 +338,67 @@ description: Operations executed pentagon_fillet_sugar.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 5.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "arc_tag",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          857,
 | 
			
		||||
          977,
 | 
			
		||||
          870,
 | 
			
		||||
          871,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "arc_tag",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          979,
 | 
			
		||||
          980,
 | 
			
		||||
          887,
 | 
			
		||||
          965,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      850,
 | 
			
		||||
      981,
 | 
			
		||||
      846,
 | 
			
		||||
      973,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -651,8 +651,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      585,
 | 
			
		||||
      607,
 | 
			
		||||
      562,
 | 
			
		||||
      584,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -666,7 +666,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      492,
 | 
			
		||||
      534,
 | 
			
		||||
      527,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -681,8 +681,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      540,
 | 
			
		||||
      627,
 | 
			
		||||
      533,
 | 
			
		||||
      600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -697,8 +697,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      633,
 | 
			
		||||
      684,
 | 
			
		||||
      606,
 | 
			
		||||
      656,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -713,8 +713,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -729,8 +729,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -740,8 +740,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -757,8 +757,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      776,
 | 
			
		||||
      824,
 | 
			
		||||
      748,
 | 
			
		||||
      796,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -778,8 +778,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      830,
 | 
			
		||||
      931,
 | 
			
		||||
      802,
 | 
			
		||||
      903,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -799,8 +799,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      937,
 | 
			
		||||
      1057,
 | 
			
		||||
      909,
 | 
			
		||||
      1029,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -820,8 +820,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1063,
 | 
			
		||||
      1119,
 | 
			
		||||
      1035,
 | 
			
		||||
      1091,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -841,8 +841,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1125,
 | 
			
		||||
      1133,
 | 
			
		||||
      1097,
 | 
			
		||||
      1105,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -853,8 +853,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -869,8 +869,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -880,8 +880,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -897,8 +897,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1225,
 | 
			
		||||
      1273,
 | 
			
		||||
      1197,
 | 
			
		||||
      1245,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -918,8 +918,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1279,
 | 
			
		||||
      1381,
 | 
			
		||||
      1251,
 | 
			
		||||
      1353,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -939,8 +939,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1387,
 | 
			
		||||
      1507,
 | 
			
		||||
      1359,
 | 
			
		||||
      1479,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -960,8 +960,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1513,
 | 
			
		||||
      1569,
 | 
			
		||||
      1485,
 | 
			
		||||
      1541,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -981,8 +981,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1575,
 | 
			
		||||
      1583,
 | 
			
		||||
      1547,
 | 
			
		||||
      1555,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -993,8 +993,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1009,8 +1009,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1023,8 +1023,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1034,8 +1034,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1046,8 +1046,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1059,8 +1059,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1073,8 +1073,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1087,8 +1087,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1101,8 +1101,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1115,8 +1115,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1129,8 +1129,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1143,8 +1143,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1157,8 +1157,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -10,21 +10,21 @@ flowchart LR
 | 
			
		||||
    8[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path27 [Path]
 | 
			
		||||
    27["Path<br>[736, 770, 0]"]
 | 
			
		||||
    28["Segment<br>[776, 824, 0]"]
 | 
			
		||||
    29["Segment<br>[830, 931, 0]"]
 | 
			
		||||
    30["Segment<br>[937, 1057, 0]"]
 | 
			
		||||
    31["Segment<br>[1063, 1119, 0]"]
 | 
			
		||||
    32["Segment<br>[1125, 1133, 0]"]
 | 
			
		||||
    27["Path<br>[708, 742, 0]"]
 | 
			
		||||
    28["Segment<br>[748, 796, 0]"]
 | 
			
		||||
    29["Segment<br>[802, 903, 0]"]
 | 
			
		||||
    30["Segment<br>[909, 1029, 0]"]
 | 
			
		||||
    31["Segment<br>[1035, 1091, 0]"]
 | 
			
		||||
    32["Segment<br>[1097, 1105, 0]"]
 | 
			
		||||
    33[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path34 [Path]
 | 
			
		||||
    34["Path<br>[1184, 1219, 0]"]
 | 
			
		||||
    35["Segment<br>[1225, 1273, 0]"]
 | 
			
		||||
    36["Segment<br>[1279, 1381, 0]"]
 | 
			
		||||
    37["Segment<br>[1387, 1507, 0]"]
 | 
			
		||||
    38["Segment<br>[1513, 1569, 0]"]
 | 
			
		||||
    39["Segment<br>[1575, 1583, 0]"]
 | 
			
		||||
    34["Path<br>[1156, 1191, 0]"]
 | 
			
		||||
    35["Segment<br>[1197, 1245, 0]"]
 | 
			
		||||
    36["Segment<br>[1251, 1353, 0]"]
 | 
			
		||||
    37["Segment<br>[1359, 1479, 0]"]
 | 
			
		||||
    38["Segment<br>[1485, 1541, 0]"]
 | 
			
		||||
    39["Segment<br>[1547, 1555, 0]"]
 | 
			
		||||
    40[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[12, 31, 0]"]
 | 
			
		||||
@ -43,10 +43,10 @@ flowchart LR
 | 
			
		||||
  21["SweepEdge Adjacent"]
 | 
			
		||||
  22["SweepEdge Opposite"]
 | 
			
		||||
  23["SweepEdge Adjacent"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[492, 534, 0]"]
 | 
			
		||||
  25["Plane<br>[1184, 1219, 0]"]
 | 
			
		||||
  26["Plane<br>[736, 770, 0]"]
 | 
			
		||||
  41["Sweep Extrusion<br>[1597, 1628, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[492, 527, 0]"]
 | 
			
		||||
  25["Plane<br>[1156, 1191, 0]"]
 | 
			
		||||
  26["Plane<br>[708, 742, 0]"]
 | 
			
		||||
  41["Sweep Extrusion<br>[1569, 1600, 0]"]
 | 
			
		||||
  42[Wall]
 | 
			
		||||
  43[Wall]
 | 
			
		||||
  44[Wall]
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -12,12 +12,9 @@ sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
  |> fillet({ radius = 20, tags = [seg01] }, %)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length = 50,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, %, $seg03)
 | 
			
		||||
  |> chamfer({ length = 50, tags = [seg02] }, %, $seg04)
 | 
			
		||||
  |> fillet(radius = 20, tags = [seg01])
 | 
			
		||||
  |> chamfer(length = 50, tags = [getOppositeEdge(seg01)], tag = $seg03)
 | 
			
		||||
  |> chamfer(length = 50, tags = [seg02], tag = $seg04)
 | 
			
		||||
 | 
			
		||||
sketch003 = startSketchOn(extrude001, seg04)
 | 
			
		||||
  |> startProfileAt([-69.1, 277.34], %)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,51 +73,40 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 20.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 20.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "seg01",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          499,
 | 
			
		||||
          530,
 | 
			
		||||
          508,
 | 
			
		||||
          510,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "seg01",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          532,
 | 
			
		||||
          533,
 | 
			
		||||
          519,
 | 
			
		||||
          526,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -124,58 +114,43 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      492,
 | 
			
		||||
      534,
 | 
			
		||||
      527,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "length": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "length": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 50.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 50.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          548,
 | 
			
		||||
          615,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          617,
 | 
			
		||||
          618,
 | 
			
		||||
          550,
 | 
			
		||||
          552,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -185,68 +160,68 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          "name": "seg03"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          620,
 | 
			
		||||
          626,
 | 
			
		||||
          593,
 | 
			
		||||
          599,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          561,
 | 
			
		||||
          585,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "chamfer",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      540,
 | 
			
		||||
      627,
 | 
			
		||||
      533,
 | 
			
		||||
      600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "length": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "length": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 50.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 50.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "seg02",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          641,
 | 
			
		||||
          672,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          674,
 | 
			
		||||
          675,
 | 
			
		||||
          623,
 | 
			
		||||
          625,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -256,20 +231,49 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          "name": "seg04"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          677,
 | 
			
		||||
          683,
 | 
			
		||||
          649,
 | 
			
		||||
          655,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "seg02",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          634,
 | 
			
		||||
          641,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "chamfer",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      633,
 | 
			
		||||
      684,
 | 
			
		||||
      606,
 | 
			
		||||
      656,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
@ -281,8 +285,8 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          712,
 | 
			
		||||
          722,
 | 
			
		||||
          684,
 | 
			
		||||
          694,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -293,16 +297,16 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          724,
 | 
			
		||||
          729,
 | 
			
		||||
          696,
 | 
			
		||||
          701,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      698,
 | 
			
		||||
      730,
 | 
			
		||||
      670,
 | 
			
		||||
      702,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -318,8 +322,8 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1160,
 | 
			
		||||
          1170,
 | 
			
		||||
          1132,
 | 
			
		||||
          1142,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -330,16 +334,16 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1172,
 | 
			
		||||
          1177,
 | 
			
		||||
          1144,
 | 
			
		||||
          1149,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1146,
 | 
			
		||||
      1178,
 | 
			
		||||
      1118,
 | 
			
		||||
      1150,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -362,16 +366,16 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1625,
 | 
			
		||||
          1627,
 | 
			
		||||
          1597,
 | 
			
		||||
          1599,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -383,8 +387,8 @@ description: Operations executed sketch-on-chamfer-two-times-different-order.kcl
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        1605,
 | 
			
		||||
        1614,
 | 
			
		||||
        1577,
 | 
			
		||||
        1586,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -651,8 +651,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      642,
 | 
			
		||||
      664,
 | 
			
		||||
      618,
 | 
			
		||||
      640,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -666,7 +666,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      492,
 | 
			
		||||
      534,
 | 
			
		||||
      527,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -681,8 +681,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      540,
 | 
			
		||||
      591,
 | 
			
		||||
      533,
 | 
			
		||||
      583,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -697,8 +697,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      597,
 | 
			
		||||
      684,
 | 
			
		||||
      589,
 | 
			
		||||
      656,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -713,8 +713,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -729,8 +729,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -740,8 +740,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      736,
 | 
			
		||||
      770,
 | 
			
		||||
      708,
 | 
			
		||||
      742,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -757,8 +757,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      776,
 | 
			
		||||
      824,
 | 
			
		||||
      748,
 | 
			
		||||
      796,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -778,8 +778,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      830,
 | 
			
		||||
      931,
 | 
			
		||||
      802,
 | 
			
		||||
      903,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -799,8 +799,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      937,
 | 
			
		||||
      1057,
 | 
			
		||||
      909,
 | 
			
		||||
      1029,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -820,8 +820,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1063,
 | 
			
		||||
      1119,
 | 
			
		||||
      1035,
 | 
			
		||||
      1091,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -841,8 +841,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1125,
 | 
			
		||||
      1133,
 | 
			
		||||
      1097,
 | 
			
		||||
      1105,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -853,8 +853,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -869,8 +869,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -880,8 +880,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1184,
 | 
			
		||||
      1219,
 | 
			
		||||
      1156,
 | 
			
		||||
      1191,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -897,8 +897,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1225,
 | 
			
		||||
      1273,
 | 
			
		||||
      1197,
 | 
			
		||||
      1245,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -918,8 +918,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1279,
 | 
			
		||||
      1381,
 | 
			
		||||
      1251,
 | 
			
		||||
      1353,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -939,8 +939,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1387,
 | 
			
		||||
      1507,
 | 
			
		||||
      1359,
 | 
			
		||||
      1479,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -960,8 +960,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1513,
 | 
			
		||||
      1569,
 | 
			
		||||
      1485,
 | 
			
		||||
      1541,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -981,8 +981,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1575,
 | 
			
		||||
      1583,
 | 
			
		||||
      1547,
 | 
			
		||||
      1555,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -993,8 +993,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1009,8 +1009,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1023,8 +1023,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1034,8 +1034,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1046,8 +1046,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1059,8 +1059,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1073,8 +1073,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1087,8 +1087,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1101,8 +1101,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1115,8 +1115,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1129,8 +1129,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1143,8 +1143,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1157,8 +1157,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -10,21 +10,21 @@ flowchart LR
 | 
			
		||||
    8[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path27 [Path]
 | 
			
		||||
    27["Path<br>[736, 770, 0]"]
 | 
			
		||||
    28["Segment<br>[776, 824, 0]"]
 | 
			
		||||
    29["Segment<br>[830, 931, 0]"]
 | 
			
		||||
    30["Segment<br>[937, 1057, 0]"]
 | 
			
		||||
    31["Segment<br>[1063, 1119, 0]"]
 | 
			
		||||
    32["Segment<br>[1125, 1133, 0]"]
 | 
			
		||||
    27["Path<br>[708, 742, 0]"]
 | 
			
		||||
    28["Segment<br>[748, 796, 0]"]
 | 
			
		||||
    29["Segment<br>[802, 903, 0]"]
 | 
			
		||||
    30["Segment<br>[909, 1029, 0]"]
 | 
			
		||||
    31["Segment<br>[1035, 1091, 0]"]
 | 
			
		||||
    32["Segment<br>[1097, 1105, 0]"]
 | 
			
		||||
    33[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path34 [Path]
 | 
			
		||||
    34["Path<br>[1184, 1219, 0]"]
 | 
			
		||||
    35["Segment<br>[1225, 1273, 0]"]
 | 
			
		||||
    36["Segment<br>[1279, 1381, 0]"]
 | 
			
		||||
    37["Segment<br>[1387, 1507, 0]"]
 | 
			
		||||
    38["Segment<br>[1513, 1569, 0]"]
 | 
			
		||||
    39["Segment<br>[1575, 1583, 0]"]
 | 
			
		||||
    34["Path<br>[1156, 1191, 0]"]
 | 
			
		||||
    35["Segment<br>[1197, 1245, 0]"]
 | 
			
		||||
    36["Segment<br>[1251, 1353, 0]"]
 | 
			
		||||
    37["Segment<br>[1359, 1479, 0]"]
 | 
			
		||||
    38["Segment<br>[1485, 1541, 0]"]
 | 
			
		||||
    39["Segment<br>[1547, 1555, 0]"]
 | 
			
		||||
    40[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[12, 31, 0]"]
 | 
			
		||||
@ -43,10 +43,10 @@ flowchart LR
 | 
			
		||||
  21["SweepEdge Adjacent"]
 | 
			
		||||
  22["SweepEdge Opposite"]
 | 
			
		||||
  23["SweepEdge Adjacent"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[492, 534, 0]"]
 | 
			
		||||
  25["Plane<br>[736, 770, 0]"]
 | 
			
		||||
  26["Plane<br>[1184, 1219, 0]"]
 | 
			
		||||
  41["Sweep Extrusion<br>[1597, 1628, 0]"]
 | 
			
		||||
  24["EdgeCut Fillet<br>[492, 527, 0]"]
 | 
			
		||||
  25["Plane<br>[708, 742, 0]"]
 | 
			
		||||
  26["Plane<br>[1156, 1191, 0]"]
 | 
			
		||||
  41["Sweep Extrusion<br>[1569, 1600, 0]"]
 | 
			
		||||
  42[Wall]
 | 
			
		||||
  43[Wall]
 | 
			
		||||
  44[Wall]
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -12,12 +12,9 @@ sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
  |> fillet({ radius = 20, tags = [seg01] }, %)
 | 
			
		||||
  |> chamfer({ length = 50, tags = [seg02] }, %, $seg04)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length = 50,
 | 
			
		||||
       tags = [getOppositeEdge(seg01)]
 | 
			
		||||
     }, %, $seg03)
 | 
			
		||||
  |> fillet(radius = 20, tags = [seg01])
 | 
			
		||||
  |> chamfer(length = 50, tags = [seg02], tag = $seg04)
 | 
			
		||||
  |> chamfer(length = 50, tags = [getOppositeEdge(seg01)], tag = $seg03)
 | 
			
		||||
 | 
			
		||||
sketch003 = startSketchOn(extrude001, seg04)
 | 
			
		||||
  |> startProfileAt([-69.1, 277.34], %)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,51 +73,40 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 20.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 20.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "seg01",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          499,
 | 
			
		||||
          530,
 | 
			
		||||
          508,
 | 
			
		||||
          510,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "seg01",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          532,
 | 
			
		||||
          533,
 | 
			
		||||
          519,
 | 
			
		||||
          526,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -124,59 +114,43 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      492,
 | 
			
		||||
      534,
 | 
			
		||||
      527,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "length": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "length": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 50.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 50.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "TagIdentifier",
 | 
			
		||||
                  "value": "seg02",
 | 
			
		||||
                  "artifact_id": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          548,
 | 
			
		||||
          579,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          581,
 | 
			
		||||
          582,
 | 
			
		||||
          550,
 | 
			
		||||
          552,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -186,67 +160,69 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          "name": "seg04"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          584,
 | 
			
		||||
          590,
 | 
			
		||||
          576,
 | 
			
		||||
          582,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "TagIdentifier",
 | 
			
		||||
              "value": "seg02",
 | 
			
		||||
              "artifact_id": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          561,
 | 
			
		||||
          568,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "chamfer",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      540,
 | 
			
		||||
      591,
 | 
			
		||||
      533,
 | 
			
		||||
      583,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "length": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "length": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 50.0,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 50.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          605,
 | 
			
		||||
          672,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          674,
 | 
			
		||||
          675,
 | 
			
		||||
          606,
 | 
			
		||||
          608,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -256,20 +232,48 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          "name": "seg03"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          677,
 | 
			
		||||
          683,
 | 
			
		||||
          649,
 | 
			
		||||
          655,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          617,
 | 
			
		||||
          641,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "chamfer",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      597,
 | 
			
		||||
      684,
 | 
			
		||||
      589,
 | 
			
		||||
      656,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
@ -281,8 +285,8 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          712,
 | 
			
		||||
          722,
 | 
			
		||||
          684,
 | 
			
		||||
          694,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -293,16 +297,16 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          724,
 | 
			
		||||
          729,
 | 
			
		||||
          696,
 | 
			
		||||
          701,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      698,
 | 
			
		||||
      730,
 | 
			
		||||
      670,
 | 
			
		||||
      702,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -318,8 +322,8 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1160,
 | 
			
		||||
          1170,
 | 
			
		||||
          1132,
 | 
			
		||||
          1142,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -330,16 +334,16 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1172,
 | 
			
		||||
          1177,
 | 
			
		||||
          1144,
 | 
			
		||||
          1149,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1146,
 | 
			
		||||
      1178,
 | 
			
		||||
      1118,
 | 
			
		||||
      1150,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -362,16 +366,16 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1625,
 | 
			
		||||
          1627,
 | 
			
		||||
          1597,
 | 
			
		||||
          1599,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1597,
 | 
			
		||||
      1628,
 | 
			
		||||
      1569,
 | 
			
		||||
      1600,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -383,8 +387,8 @@ description: Operations executed sketch-on-chamfer-two-times.kcl
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        1605,
 | 
			
		||||
        1614,
 | 
			
		||||
        1577,
 | 
			
		||||
        1586,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -728,8 +728,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1383,
 | 
			
		||||
      1413,
 | 
			
		||||
      1367,
 | 
			
		||||
      1397,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -742,8 +742,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1492,
 | 
			
		||||
      1522,
 | 
			
		||||
      1450,
 | 
			
		||||
      1480,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -757,7 +757,7 @@ snapshot_kind: text
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1334,
 | 
			
		||||
      1425,
 | 
			
		||||
      1399,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -772,8 +772,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1431,
 | 
			
		||||
      1534,
 | 
			
		||||
      1405,
 | 
			
		||||
      1482,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -788,8 +788,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1583,
 | 
			
		||||
      1614,
 | 
			
		||||
      1531,
 | 
			
		||||
      1562,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -804,8 +804,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1583,
 | 
			
		||||
      1614,
 | 
			
		||||
      1531,
 | 
			
		||||
      1562,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -815,8 +815,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1583,
 | 
			
		||||
      1614,
 | 
			
		||||
      1531,
 | 
			
		||||
      1562,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -832,8 +832,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1620,
 | 
			
		||||
      1645,
 | 
			
		||||
      1568,
 | 
			
		||||
      1593,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -853,8 +853,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1651,
 | 
			
		||||
      1676,
 | 
			
		||||
      1599,
 | 
			
		||||
      1624,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -874,8 +874,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1682,
 | 
			
		||||
      1707,
 | 
			
		||||
      1630,
 | 
			
		||||
      1655,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -895,8 +895,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1713,
 | 
			
		||||
      1769,
 | 
			
		||||
      1661,
 | 
			
		||||
      1717,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -916,8 +916,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1775,
 | 
			
		||||
      1783,
 | 
			
		||||
      1723,
 | 
			
		||||
      1731,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -928,8 +928,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -944,8 +944,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -958,8 +958,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -969,8 +969,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -981,8 +981,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -994,8 +994,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1008,8 +1008,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1022,8 +1022,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1036,8 +1036,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1050,8 +1050,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1064,8 +1064,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1078,8 +1078,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
@ -1092,8 +1092,8 @@ snapshot_kind: text
 | 
			
		||||
  {
 | 
			
		||||
    "cmdId": "[uuid]",
 | 
			
		||||
    "range": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "command": {
 | 
			
		||||
 | 
			
		||||
@ -11,12 +11,12 @@ flowchart LR
 | 
			
		||||
    9[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  subgraph path33 [Path]
 | 
			
		||||
    33["Path<br>[1583, 1614, 0]"]
 | 
			
		||||
    34["Segment<br>[1620, 1645, 0]"]
 | 
			
		||||
    35["Segment<br>[1651, 1676, 0]"]
 | 
			
		||||
    36["Segment<br>[1682, 1707, 0]"]
 | 
			
		||||
    37["Segment<br>[1713, 1769, 0]"]
 | 
			
		||||
    38["Segment<br>[1775, 1783, 0]"]
 | 
			
		||||
    33["Path<br>[1531, 1562, 0]"]
 | 
			
		||||
    34["Segment<br>[1568, 1593, 0]"]
 | 
			
		||||
    35["Segment<br>[1599, 1624, 0]"]
 | 
			
		||||
    36["Segment<br>[1630, 1655, 0]"]
 | 
			
		||||
    37["Segment<br>[1661, 1717, 0]"]
 | 
			
		||||
    38["Segment<br>[1723, 1731, 0]"]
 | 
			
		||||
    39[Solid2d]
 | 
			
		||||
  end
 | 
			
		||||
  1["Plane<br>[992, 1011, 0]"]
 | 
			
		||||
@ -41,9 +41,9 @@ flowchart LR
 | 
			
		||||
  28["SweepEdge Adjacent"]
 | 
			
		||||
  29["SweepEdge Opposite"]
 | 
			
		||||
  30["SweepEdge Adjacent"]
 | 
			
		||||
  31["EdgeCut Fillet<br>[1334, 1425, 0]"]
 | 
			
		||||
  32["EdgeCut Fillet<br>[1431, 1534, 0]"]
 | 
			
		||||
  40["Sweep Extrusion<br>[1789, 1809, 0]"]
 | 
			
		||||
  31["EdgeCut Fillet<br>[1334, 1399, 0]"]
 | 
			
		||||
  32["EdgeCut Fillet<br>[1405, 1482, 0]"]
 | 
			
		||||
  40["Sweep Extrusion<br>[1737, 1757, 0]"]
 | 
			
		||||
  41[Wall]
 | 
			
		||||
  42[Wall]
 | 
			
		||||
  43[Wall]
 | 
			
		||||
 | 
			
		||||
@ -396,7 +396,7 @@ snapshot_kind: text
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 1534,
 | 
			
		||||
          "end": 1482,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 989,
 | 
			
		||||
            "name": "bracket",
 | 
			
		||||
@ -860,76 +860,54 @@ snapshot_kind: text
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1421,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1366,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 1356,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 1350,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 1350,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 1366,
 | 
			
		||||
                          "name": "filletR",
 | 
			
		||||
                          "start": 1359,
 | 
			
		||||
                          "type": "Identifier",
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1414,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 1379,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 1375,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 1375,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 1412,
 | 
			
		||||
                                  "name": "innerEdge",
 | 
			
		||||
                                  "start": 1403,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 1402,
 | 
			
		||||
                                "name": "getNextAdjacentEdge",
 | 
			
		||||
                                "start": 1383,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 1413,
 | 
			
		||||
                              "start": 1383,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 1414,
 | 
			
		||||
                          "start": 1382,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 1341,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 1357,
 | 
			
		||||
                      "name": "filletR",
 | 
			
		||||
                      "start": 1350,
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1424,
 | 
			
		||||
                    "start": 1423,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 1396,
 | 
			
		||||
                              "name": "innerEdge",
 | 
			
		||||
                              "start": 1387,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 1386,
 | 
			
		||||
                            "name": "getNextAdjacentEdge",
 | 
			
		||||
                            "start": 1367,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1397,
 | 
			
		||||
                          "start": 1367,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1398,
 | 
			
		||||
                      "start": 1366,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
@ -938,113 +916,93 @@ snapshot_kind: text
 | 
			
		||||
                  "start": 1334,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1425,
 | 
			
		||||
                "end": 1399,
 | 
			
		||||
                "start": 1334,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1530,
 | 
			
		||||
                    "properties": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1475,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 1453,
 | 
			
		||||
                          "name": "radius",
 | 
			
		||||
                          "start": 1447,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 1447,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "end": 1475,
 | 
			
		||||
                          "left": {
 | 
			
		||||
                            "end": 1463,
 | 
			
		||||
                            "name": "filletR",
 | 
			
		||||
                            "start": 1456,
 | 
			
		||||
                            "type": "Identifier",
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "operator": "+",
 | 
			
		||||
                          "right": {
 | 
			
		||||
                            "end": 1475,
 | 
			
		||||
                            "name": "thickness",
 | 
			
		||||
                            "start": 1466,
 | 
			
		||||
                            "type": "Identifier",
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "start": 1456,
 | 
			
		||||
                          "type": "BinaryExpression",
 | 
			
		||||
                          "type": "BinaryExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "radius"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 1440,
 | 
			
		||||
                      "left": {
 | 
			
		||||
                        "end": 1428,
 | 
			
		||||
                        "name": "filletR",
 | 
			
		||||
                        "start": 1421,
 | 
			
		||||
                        "type": "Identifier",
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1523,
 | 
			
		||||
                        "key": {
 | 
			
		||||
                          "end": 1488,
 | 
			
		||||
                          "name": "tags",
 | 
			
		||||
                          "start": 1484,
 | 
			
		||||
                          "type": "Identifier"
 | 
			
		||||
                        },
 | 
			
		||||
                        "start": 1484,
 | 
			
		||||
                        "type": "ObjectProperty",
 | 
			
		||||
                        "value": {
 | 
			
		||||
                          "elements": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "arguments": [
 | 
			
		||||
                                {
 | 
			
		||||
                                  "end": 1521,
 | 
			
		||||
                                  "name": "outerEdge",
 | 
			
		||||
                                  "start": 1512,
 | 
			
		||||
                                  "type": "Identifier",
 | 
			
		||||
                                  "type": "Identifier"
 | 
			
		||||
                                }
 | 
			
		||||
                              ],
 | 
			
		||||
                              "callee": {
 | 
			
		||||
                                "end": 1511,
 | 
			
		||||
                                "name": "getNextAdjacentEdge",
 | 
			
		||||
                                "start": 1492,
 | 
			
		||||
                                "type": "Identifier"
 | 
			
		||||
                              },
 | 
			
		||||
                              "end": 1522,
 | 
			
		||||
                              "start": 1492,
 | 
			
		||||
                              "type": "CallExpression",
 | 
			
		||||
                              "type": "CallExpression"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "end": 1523,
 | 
			
		||||
                          "start": 1491,
 | 
			
		||||
                          "type": "ArrayExpression",
 | 
			
		||||
                          "type": "ArrayExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "start": 1438,
 | 
			
		||||
                    "type": "ObjectExpression",
 | 
			
		||||
                    "type": "ObjectExpression"
 | 
			
		||||
                      "operator": "+",
 | 
			
		||||
                      "right": {
 | 
			
		||||
                        "end": 1440,
 | 
			
		||||
                        "name": "thickness",
 | 
			
		||||
                        "start": 1431,
 | 
			
		||||
                        "type": "Identifier",
 | 
			
		||||
                        "type": "Identifier"
 | 
			
		||||
                      },
 | 
			
		||||
                      "start": 1421,
 | 
			
		||||
                      "type": "BinaryExpression",
 | 
			
		||||
                      "type": "BinaryExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1533,
 | 
			
		||||
                    "start": 1532,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "type": "Identifier",
 | 
			
		||||
                      "name": "tags"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 1479,
 | 
			
		||||
                              "name": "outerEdge",
 | 
			
		||||
                              "start": 1470,
 | 
			
		||||
                              "type": "Identifier",
 | 
			
		||||
                              "type": "Identifier"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 1469,
 | 
			
		||||
                            "name": "getNextAdjacentEdge",
 | 
			
		||||
                            "start": 1450,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1480,
 | 
			
		||||
                          "start": 1450,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1481,
 | 
			
		||||
                      "start": 1449,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1437,
 | 
			
		||||
                  "end": 1411,
 | 
			
		||||
                  "name": "fillet",
 | 
			
		||||
                  "start": 1431,
 | 
			
		||||
                  "start": 1405,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1534,
 | 
			
		||||
                "start": 1431,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
                "end": 1482,
 | 
			
		||||
                "start": 1405,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 1534,
 | 
			
		||||
            "end": 1482,
 | 
			
		||||
            "start": 992,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
@ -1052,7 +1010,7 @@ snapshot_kind: text
 | 
			
		||||
          "start": 982,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 1534,
 | 
			
		||||
        "end": 1482,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 982,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
@ -1060,11 +1018,11 @@ snapshot_kind: text
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "declaration": {
 | 
			
		||||
          "end": 1809,
 | 
			
		||||
          "end": 1757,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "end": 1545,
 | 
			
		||||
            "end": 1493,
 | 
			
		||||
            "name": "sketch001",
 | 
			
		||||
            "start": 1536,
 | 
			
		||||
            "start": 1484,
 | 
			
		||||
            "type": "Identifier"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
@ -1072,28 +1030,28 @@ snapshot_kind: text
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1569,
 | 
			
		||||
                    "end": 1517,
 | 
			
		||||
                    "name": "bracket",
 | 
			
		||||
                    "start": 1562,
 | 
			
		||||
                    "start": 1510,
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1576,
 | 
			
		||||
                    "end": 1524,
 | 
			
		||||
                    "name": "seg01",
 | 
			
		||||
                    "start": 1571,
 | 
			
		||||
                    "start": 1519,
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1561,
 | 
			
		||||
                  "end": 1509,
 | 
			
		||||
                  "name": "startSketchOn",
 | 
			
		||||
                  "start": 1548,
 | 
			
		||||
                  "start": 1496,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1577,
 | 
			
		||||
                "start": 1548,
 | 
			
		||||
                "end": 1525,
 | 
			
		||||
                "start": 1496,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              },
 | 
			
		||||
@ -1102,9 +1060,9 @@ snapshot_kind: text
 | 
			
		||||
                  {
 | 
			
		||||
                    "elements": [
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1603,
 | 
			
		||||
                        "end": 1551,
 | 
			
		||||
                        "raw": "4.28",
 | 
			
		||||
                        "start": 1599,
 | 
			
		||||
                        "start": 1547,
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "value": {
 | 
			
		||||
@ -1113,9 +1071,9 @@ snapshot_kind: text
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "end": 1609,
 | 
			
		||||
                        "end": 1557,
 | 
			
		||||
                        "raw": "3.83",
 | 
			
		||||
                        "start": 1605,
 | 
			
		||||
                        "start": 1553,
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "type": "Literal",
 | 
			
		||||
                        "value": {
 | 
			
		||||
@ -1124,26 +1082,26 @@ snapshot_kind: text
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "end": 1610,
 | 
			
		||||
                    "start": 1598,
 | 
			
		||||
                    "end": 1558,
 | 
			
		||||
                    "start": 1546,
 | 
			
		||||
                    "type": "ArrayExpression",
 | 
			
		||||
                    "type": "ArrayExpression"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1613,
 | 
			
		||||
                    "start": 1612,
 | 
			
		||||
                    "end": 1561,
 | 
			
		||||
                    "start": 1560,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1597,
 | 
			
		||||
                  "end": 1545,
 | 
			
		||||
                  "name": "startProfileAt",
 | 
			
		||||
                  "start": 1583,
 | 
			
		||||
                  "start": 1531,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1614,
 | 
			
		||||
                "start": 1583,
 | 
			
		||||
                "end": 1562,
 | 
			
		||||
                "start": 1531,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              },
 | 
			
		||||
@ -1158,9 +1116,9 @@ snapshot_kind: text
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 1636,
 | 
			
		||||
                          "end": 1584,
 | 
			
		||||
                          "raw": "2.17",
 | 
			
		||||
                          "start": 1632,
 | 
			
		||||
                          "start": 1580,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -1170,9 +1128,9 @@ snapshot_kind: text
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "argument": {
 | 
			
		||||
                            "end": 1643,
 | 
			
		||||
                            "end": 1591,
 | 
			
		||||
                            "raw": "0.03",
 | 
			
		||||
                            "start": 1639,
 | 
			
		||||
                            "start": 1587,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1180,28 +1138,28 @@ snapshot_kind: text
 | 
			
		||||
                              "suffix": "None"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1643,
 | 
			
		||||
                          "end": 1591,
 | 
			
		||||
                          "operator": "-",
 | 
			
		||||
                          "start": 1638,
 | 
			
		||||
                          "start": 1586,
 | 
			
		||||
                          "type": "UnaryExpression",
 | 
			
		||||
                          "type": "UnaryExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1644,
 | 
			
		||||
                      "start": 1631,
 | 
			
		||||
                      "end": 1592,
 | 
			
		||||
                      "start": 1579,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1624,
 | 
			
		||||
                  "end": 1572,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 1620,
 | 
			
		||||
                  "start": 1568,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1645,
 | 
			
		||||
                "start": 1620,
 | 
			
		||||
                "end": 1593,
 | 
			
		||||
                "start": 1568,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -1218,9 +1176,9 @@ snapshot_kind: text
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "argument": {
 | 
			
		||||
                            "end": 1668,
 | 
			
		||||
                            "end": 1616,
 | 
			
		||||
                            "raw": "0.07",
 | 
			
		||||
                            "start": 1664,
 | 
			
		||||
                            "start": 1612,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1228,17 +1186,17 @@ snapshot_kind: text
 | 
			
		||||
                              "suffix": "None"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1668,
 | 
			
		||||
                          "end": 1616,
 | 
			
		||||
                          "operator": "-",
 | 
			
		||||
                          "start": 1663,
 | 
			
		||||
                          "start": 1611,
 | 
			
		||||
                          "type": "UnaryExpression",
 | 
			
		||||
                          "type": "UnaryExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "argument": {
 | 
			
		||||
                            "end": 1674,
 | 
			
		||||
                            "end": 1622,
 | 
			
		||||
                            "raw": "1.8",
 | 
			
		||||
                            "start": 1671,
 | 
			
		||||
                            "start": 1619,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1246,28 +1204,28 @@ snapshot_kind: text
 | 
			
		||||
                              "suffix": "None"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1674,
 | 
			
		||||
                          "end": 1622,
 | 
			
		||||
                          "operator": "-",
 | 
			
		||||
                          "start": 1670,
 | 
			
		||||
                          "start": 1618,
 | 
			
		||||
                          "type": "UnaryExpression",
 | 
			
		||||
                          "type": "UnaryExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1675,
 | 
			
		||||
                      "start": 1662,
 | 
			
		||||
                      "end": 1623,
 | 
			
		||||
                      "start": 1610,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1655,
 | 
			
		||||
                  "end": 1603,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 1651,
 | 
			
		||||
                  "start": 1599,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1676,
 | 
			
		||||
                "start": 1651,
 | 
			
		||||
                "end": 1624,
 | 
			
		||||
                "start": 1599,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -1284,9 +1242,9 @@ snapshot_kind: text
 | 
			
		||||
                      "elements": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "argument": {
 | 
			
		||||
                            "end": 1699,
 | 
			
		||||
                            "end": 1647,
 | 
			
		||||
                            "raw": "2.07",
 | 
			
		||||
                            "start": 1695,
 | 
			
		||||
                            "start": 1643,
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "type": "Literal",
 | 
			
		||||
                            "value": {
 | 
			
		||||
@ -1294,16 +1252,16 @@ snapshot_kind: text
 | 
			
		||||
                              "suffix": "None"
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1699,
 | 
			
		||||
                          "end": 1647,
 | 
			
		||||
                          "operator": "-",
 | 
			
		||||
                          "start": 1694,
 | 
			
		||||
                          "start": 1642,
 | 
			
		||||
                          "type": "UnaryExpression",
 | 
			
		||||
                          "type": "UnaryExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "end": 1705,
 | 
			
		||||
                          "end": 1653,
 | 
			
		||||
                          "raw": "0.05",
 | 
			
		||||
                          "start": 1701,
 | 
			
		||||
                          "start": 1649,
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "type": "Literal",
 | 
			
		||||
                          "value": {
 | 
			
		||||
@ -1312,21 +1270,21 @@ snapshot_kind: text
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1706,
 | 
			
		||||
                      "start": 1693,
 | 
			
		||||
                      "end": 1654,
 | 
			
		||||
                      "start": 1641,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1686,
 | 
			
		||||
                  "end": 1634,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 1682,
 | 
			
		||||
                  "start": 1630,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1707,
 | 
			
		||||
                "start": 1682,
 | 
			
		||||
                "end": 1655,
 | 
			
		||||
                "start": 1630,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -1344,59 +1302,59 @@ snapshot_kind: text
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 1748,
 | 
			
		||||
                              "start": 1747,
 | 
			
		||||
                              "end": 1696,
 | 
			
		||||
                              "start": 1695,
 | 
			
		||||
                              "type": "PipeSubstitution",
 | 
			
		||||
                              "type": "PipeSubstitution"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 1746,
 | 
			
		||||
                            "end": 1694,
 | 
			
		||||
                            "name": "profileStartX",
 | 
			
		||||
                            "start": 1733,
 | 
			
		||||
                            "start": 1681,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1749,
 | 
			
		||||
                          "start": 1733,
 | 
			
		||||
                          "end": 1697,
 | 
			
		||||
                          "start": 1681,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "arguments": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "end": 1766,
 | 
			
		||||
                              "start": 1765,
 | 
			
		||||
                              "end": 1714,
 | 
			
		||||
                              "start": 1713,
 | 
			
		||||
                              "type": "PipeSubstitution",
 | 
			
		||||
                              "type": "PipeSubstitution"
 | 
			
		||||
                            }
 | 
			
		||||
                          ],
 | 
			
		||||
                          "callee": {
 | 
			
		||||
                            "end": 1764,
 | 
			
		||||
                            "end": 1712,
 | 
			
		||||
                            "name": "profileStartY",
 | 
			
		||||
                            "start": 1751,
 | 
			
		||||
                            "start": 1699,
 | 
			
		||||
                            "type": "Identifier"
 | 
			
		||||
                          },
 | 
			
		||||
                          "end": 1767,
 | 
			
		||||
                          "start": 1751,
 | 
			
		||||
                          "end": 1715,
 | 
			
		||||
                          "start": 1699,
 | 
			
		||||
                          "type": "CallExpression",
 | 
			
		||||
                          "type": "CallExpression"
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "end": 1768,
 | 
			
		||||
                      "start": 1732,
 | 
			
		||||
                      "end": 1716,
 | 
			
		||||
                      "start": 1680,
 | 
			
		||||
                      "type": "ArrayExpression",
 | 
			
		||||
                      "type": "ArrayExpression"
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1717,
 | 
			
		||||
                  "end": 1665,
 | 
			
		||||
                  "name": "line",
 | 
			
		||||
                  "start": 1713,
 | 
			
		||||
                  "start": 1661,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1769,
 | 
			
		||||
                "start": 1713,
 | 
			
		||||
                "end": 1717,
 | 
			
		||||
                "start": 1661,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
@ -1404,20 +1362,20 @@ snapshot_kind: text
 | 
			
		||||
              {
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "end": 1782,
 | 
			
		||||
                    "start": 1781,
 | 
			
		||||
                    "end": 1730,
 | 
			
		||||
                    "start": 1729,
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1780,
 | 
			
		||||
                  "end": 1728,
 | 
			
		||||
                  "name": "close",
 | 
			
		||||
                  "start": 1775,
 | 
			
		||||
                  "start": 1723,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1783,
 | 
			
		||||
                "start": 1775,
 | 
			
		||||
                "end": 1731,
 | 
			
		||||
                "start": 1723,
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression"
 | 
			
		||||
              },
 | 
			
		||||
@ -1430,9 +1388,9 @@ snapshot_kind: text
 | 
			
		||||
                      "name": "length"
 | 
			
		||||
                    },
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "end": 1808,
 | 
			
		||||
                      "end": 1756,
 | 
			
		||||
                      "raw": "10",
 | 
			
		||||
                      "start": 1806,
 | 
			
		||||
                      "start": 1754,
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "value": {
 | 
			
		||||
@ -1443,34 +1401,34 @@ snapshot_kind: text
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "end": 1796,
 | 
			
		||||
                  "end": 1744,
 | 
			
		||||
                  "name": "extrude",
 | 
			
		||||
                  "start": 1789,
 | 
			
		||||
                  "start": 1737,
 | 
			
		||||
                  "type": "Identifier"
 | 
			
		||||
                },
 | 
			
		||||
                "end": 1809,
 | 
			
		||||
                "start": 1789,
 | 
			
		||||
                "end": 1757,
 | 
			
		||||
                "start": 1737,
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "type": "CallExpressionKw",
 | 
			
		||||
                "unlabeled": null
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "end": 1809,
 | 
			
		||||
            "start": 1548,
 | 
			
		||||
            "end": 1757,
 | 
			
		||||
            "start": 1496,
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression"
 | 
			
		||||
          },
 | 
			
		||||
          "start": 1536,
 | 
			
		||||
          "start": 1484,
 | 
			
		||||
          "type": "VariableDeclarator"
 | 
			
		||||
        },
 | 
			
		||||
        "end": 1809,
 | 
			
		||||
        "end": 1757,
 | 
			
		||||
        "kind": "const",
 | 
			
		||||
        "start": 1536,
 | 
			
		||||
        "start": 1484,
 | 
			
		||||
        "type": "VariableDeclaration",
 | 
			
		||||
        "type": "VariableDeclaration"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "end": 1810,
 | 
			
		||||
    "end": 1758,
 | 
			
		||||
    "nonCodeMeta": {
 | 
			
		||||
      "nonCodeNodes": {
 | 
			
		||||
        "0": [
 | 
			
		||||
@ -1631,8 +1589,8 @@ snapshot_kind: text
 | 
			
		||||
        ],
 | 
			
		||||
        "10": [
 | 
			
		||||
          {
 | 
			
		||||
            "end": 1536,
 | 
			
		||||
            "start": 1534,
 | 
			
		||||
            "end": 1484,
 | 
			
		||||
            "start": 1482,
 | 
			
		||||
            "type": "NonCodeNode",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "type": "newLine"
 | 
			
		||||
 | 
			
		||||
@ -32,14 +32,8 @@ bracket = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -wallMountL + thickness])
 | 
			
		||||
  |> close(%)
 | 
			
		||||
  |> extrude(length = width)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = filletR,
 | 
			
		||||
       tags = [getNextAdjacentEdge(innerEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius = filletR + thickness,
 | 
			
		||||
       tags = [getNextAdjacentEdge(outerEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet(radius = filletR, tags = [getNextAdjacentEdge(innerEdge)])
 | 
			
		||||
  |> fillet(radius = filletR + thickness, tags = [getNextAdjacentEdge(outerEdge)])
 | 
			
		||||
 | 
			
		||||
sketch001 = startSketchOn(bracket, seg01)
 | 
			
		||||
  |> startProfileAt([4.28, 3.83], %)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Operations executed sketch_on_face_after_fillets_referencing_face.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
@ -72,50 +73,39 @@ description: Operations executed sketch_on_face_after_fillets_referencing_face.k
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 0.25,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Default",
 | 
			
		||||
                "len": {
 | 
			
		||||
                  "type": "Mm"
 | 
			
		||||
                },
 | 
			
		||||
                "angle": {
 | 
			
		||||
                  "type": "Degrees"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 0.25,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1341,
 | 
			
		||||
          1421,
 | 
			
		||||
          1350,
 | 
			
		||||
          1357,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1423,
 | 
			
		||||
          1424,
 | 
			
		||||
          1366,
 | 
			
		||||
          1398,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
@ -123,64 +113,77 @@ description: Operations executed sketch_on_face_after_fillets_referencing_face.k
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1334,
 | 
			
		||||
      1425,
 | 
			
		||||
      1399,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "data": {
 | 
			
		||||
      "radius": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Object",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "radius": {
 | 
			
		||||
              "type": "Number",
 | 
			
		||||
              "value": 0.5707134902949093,
 | 
			
		||||
              "ty": {
 | 
			
		||||
                "type": "Unknown"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "tags": {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Uuid",
 | 
			
		||||
                  "value": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 0.5707134902949093,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Unknown"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1438,
 | 
			
		||||
          1530,
 | 
			
		||||
          1421,
 | 
			
		||||
          1440,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "solid": {
 | 
			
		||||
      "tags": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Uuid",
 | 
			
		||||
              "value": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1532,
 | 
			
		||||
          1533,
 | 
			
		||||
          1449,
 | 
			
		||||
          1481,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "fillet",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1431,
 | 
			
		||||
      1534,
 | 
			
		||||
      1405,
 | 
			
		||||
      1482,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
    "unlabeledArg": null
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
@ -192,8 +195,8 @@ description: Operations executed sketch_on_face_after_fillets_referencing_face.k
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1562,
 | 
			
		||||
          1569,
 | 
			
		||||
          1510,
 | 
			
		||||
          1517,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
@ -204,16 +207,16 @@ description: Operations executed sketch_on_face_after_fillets_referencing_face.k
 | 
			
		||||
          "artifact_id": "[uuid]"
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1571,
 | 
			
		||||
          1576,
 | 
			
		||||
          1519,
 | 
			
		||||
          1524,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "startSketchOn",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1548,
 | 
			
		||||
      1577,
 | 
			
		||||
      1496,
 | 
			
		||||
      1525,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
@ -236,16 +239,16 @@ description: Operations executed sketch_on_face_after_fillets_referencing_face.k
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": [
 | 
			
		||||
          1806,
 | 
			
		||||
          1808,
 | 
			
		||||
          1754,
 | 
			
		||||
          1756,
 | 
			
		||||
          0
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "name": "extrude",
 | 
			
		||||
    "sourceRange": [
 | 
			
		||||
      1789,
 | 
			
		||||
      1809,
 | 
			
		||||
      1737,
 | 
			
		||||
      1757,
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "type": "StdLibCall",
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/simulation_tests.rs
 | 
			
		||||
description: Variables in memory after executing sketch_on_face_after_fillets_referencing_face.kcl
 | 
			
		||||
snapshot_kind: text
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "E": {
 | 
			
		||||
@ -1101,8 +1102,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            1620,
 | 
			
		||||
            1645,
 | 
			
		||||
            1568,
 | 
			
		||||
            1593,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -1112,8 +1113,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            1651,
 | 
			
		||||
            1676,
 | 
			
		||||
            1599,
 | 
			
		||||
            1624,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -1123,8 +1124,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            1682,
 | 
			
		||||
            1707,
 | 
			
		||||
            1630,
 | 
			
		||||
            1655,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -1134,8 +1135,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "faceId": "[uuid]",
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            1713,
 | 
			
		||||
            1769,
 | 
			
		||||
            1661,
 | 
			
		||||
            1717,
 | 
			
		||||
            0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": null,
 | 
			
		||||
@ -1150,8 +1151,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1620,
 | 
			
		||||
                1645,
 | 
			
		||||
                1568,
 | 
			
		||||
                1593,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1173,8 +1174,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1651,
 | 
			
		||||
                1676,
 | 
			
		||||
                1599,
 | 
			
		||||
                1624,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1196,8 +1197,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1682,
 | 
			
		||||
                1707,
 | 
			
		||||
                1630,
 | 
			
		||||
                1655,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1219,8 +1220,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1713,
 | 
			
		||||
                1769,
 | 
			
		||||
                1661,
 | 
			
		||||
                1717,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1242,8 +1243,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
            "__geoMeta": {
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1775,
 | 
			
		||||
                1783,
 | 
			
		||||
                1723,
 | 
			
		||||
                1731,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            },
 | 
			
		||||
@ -1820,8 +1821,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "__meta": [
 | 
			
		||||
            {
 | 
			
		||||
              "sourceRange": [
 | 
			
		||||
                1548,
 | 
			
		||||
                1577,
 | 
			
		||||
                1496,
 | 
			
		||||
                1525,
 | 
			
		||||
                0
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
@ -1843,8 +1844,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
          "__geoMeta": {
 | 
			
		||||
            "id": "[uuid]",
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              1583,
 | 
			
		||||
              1614,
 | 
			
		||||
              1531,
 | 
			
		||||
              1562,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -1857,8 +1858,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
        "__meta": [
 | 
			
		||||
          {
 | 
			
		||||
            "sourceRange": [
 | 
			
		||||
              1583,
 | 
			
		||||
              1614,
 | 
			
		||||
              1531,
 | 
			
		||||
              1562,
 | 
			
		||||
              0
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -1873,8 +1874,8 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re
 | 
			
		||||
      "__meta": [
 | 
			
		||||
        {
 | 
			
		||||
          "sourceRange": [
 | 
			
		||||
            1583,
 | 
			
		||||
            1614,
 | 
			
		||||
            1531,
 | 
			
		||||
            1562,
 | 
			
		||||
            0
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -5,4 +5,4 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
    |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
    |> close(tag = $thing3)
 | 
			
		||||
    |> extrude(length = 10)
 | 
			
		||||
    |> fillet({radius: 2, tags: [thing3, getOppositeEdge(thing3)]}, %)
 | 
			
		||||
    |> fillet(radius = 2, tags = [thing3, getOppositeEdge(thing3)])
 | 
			
		||||
 | 
			
		||||
@ -5,4 +5,4 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
    |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
    |> close()
 | 
			
		||||
    |> extrude(length = 10)
 | 
			
		||||
    |> fillet({radius: 2, tags: [thing, getOppositeEdge(thing)]}, %)
 | 
			
		||||
    |> fillet(radius = 2, tags = [thing, getOppositeEdge(thing)])
 | 
			
		||||
 | 
			
		||||
@ -5,4 +5,4 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
    |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
    |> close(tag = $thing3)
 | 
			
		||||
    |> extrude(length = 10)
 | 
			
		||||
    |> fillet({radius: 2, tags: [getNextAdjacentEdge(thing3)]}, %)
 | 
			
		||||
    |> fillet(radius = 2, tags = [getNextAdjacentEdge(thing3)], %)
 | 
			
		||||
 | 
			
		||||
@ -5,4 +5,4 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
    |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
    |> close(tag = $thing3)
 | 
			
		||||
    |> extrude(length = 10)
 | 
			
		||||
    |> fillet({radius: 2, tags: [getPreviousAdjacentEdge(thing3)]}, %)
 | 
			
		||||
    |> fillet(radius = 2, tags = [getPreviousAdjacentEdge(thing3)])
 | 
			
		||||
 | 
			
		||||
@ -5,5 +5,5 @@ const part001 = startSketchOn('XY')
 | 
			
		||||
    |> line(end = [0, -10], tag = $thing2)
 | 
			
		||||
    |> close()
 | 
			
		||||
    |> extrude(length = 10)
 | 
			
		||||
    |> fillet({radius: 2, tags: [thing, thing2]}, %)
 | 
			
		||||
    |> fillet(radius = 2, tags = [thing, thing2])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -29,16 +29,16 @@ const bracket = startSketchOn('XY')
 | 
			
		||||
  |> line(end = [0, -wallMountL + thickness])
 | 
			
		||||
  |> close()
 | 
			
		||||
  |> extrude(length = width)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR,
 | 
			
		||||
       tags: [
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR,
 | 
			
		||||
       tags = [
 | 
			
		||||
         getPreviousAdjacentEdge('innerEdge', %)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletR + thickness,
 | 
			
		||||
       tags: [
 | 
			
		||||
     )
 | 
			
		||||
  |> fillet(
 | 
			
		||||
       radius = filletR + thickness,
 | 
			
		||||
       tags = [
 | 
			
		||||
         getPreviousAdjacentEdge('outerEdge', %)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
     )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,12 +12,13 @@ const sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close()
 | 
			
		||||
const extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
const chamf = chamfer({
 | 
			
		||||
  length: 30,
 | 
			
		||||
  tags: [
 | 
			
		||||
const chamf = chamfer(
 | 
			
		||||
  extrude001,
 | 
			
		||||
  length = 30,
 | 
			
		||||
  tags = [
 | 
			
		||||
    seg01,
 | 
			
		||||
    getNextAdjacentEdge(yo),
 | 
			
		||||
    getNextAdjacentEdge(seg02),
 | 
			
		||||
    getOppositeEdge(seg01)
 | 
			
		||||
  ]
 | 
			
		||||
}, extrude001)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -12,12 +12,12 @@ const sketch001 = startSketchOn('XZ')
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
 | 
			
		||||
  |> close()
 | 
			
		||||
const extrude001 = extrude(sketch001, length = 100)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
  |> chamfer(
 | 
			
		||||
       length = 30,
 | 
			
		||||
       tags = [
 | 
			
		||||
         seg01,
 | 
			
		||||
         getNextAdjacentEdge(yo),
 | 
			
		||||
         getNextAdjacentEdge(seg02),
 | 
			
		||||
         getOppositeEdge(seg01)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
       ],
 | 
			
		||||
     )
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user