More warnings

Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
Nick Cameron
2025-06-17 17:08:10 +12:00
parent 4b4960ac2c
commit d4c5cef78a
14 changed files with 195 additions and 162 deletions

View File

@ -912,7 +912,7 @@ a1 = startSketchOn(offsetPlane(XY, offset = 10))
|> close()
|> revolve(
axis = revolveAxis,
angle = 90
angle = 90deg
)
`
)

View File

@ -317,7 +317,7 @@ test.describe('Point-and-click tests', () => {
clickCoords: { x: 570, y: 220 },
cameraPos: { x: 16020, y: -2000, z: 10500 },
cameraTarget: { x: -150, y: -4500, z: -80 },
beforeChamferSnippet: `angledLine(angle=segAng(rectangleSegmentA001)-90,length=217.26,tag=$seg01)
beforeChamferSnippet: `angledLine(angle=segAng(rectangleSegmentA001)-90deg,length=217.26,tag=$seg01)
chamfer(length = 30,tags = [
seg01,
getNextAdjacentEdge(yo),
@ -330,8 +330,8 @@ test.describe('Point-and-click tests', () => {
'sketch002 = startSketchOn(extrude001, face = seg03)',
afterRectangle1stClickSnippet:
'startProfile(sketch002, at = [205.96, 254.59])',
afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.39,tag=$rectangleSegmentA002)
|>angledLine(angle=segAng(rectangleSegmentA002)-90,length=105.26)
afterRectangle2ndClickSnippet: `angledLine(angle=0deg,length=11.39,tag=$rectangleSegmentA002)
|>angledLine(angle=segAng(rectangleSegmentA002)-90deg,length=105.26)
|>angledLine(angle=segAng(rectangleSegmentA002),length=-segLen(rectangleSegmentA002))
|>line(endAbsolute=[profileStartX(%),profileStartY(%)])
|>close()`,
@ -341,7 +341,7 @@ test.describe('Point-and-click tests', () => {
clickCoords: { x: 690, y: 250 },
cameraPos: { x: 16020, y: -2000, z: 10500 },
cameraTarget: { x: -150, y: -4500, z: -80 },
beforeChamferSnippet: `angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 217.26, tag = $seg01)chamfer(
beforeChamferSnippet: `angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 217.26, tag = $seg01)chamfer(
length = 30,
tags = [
seg01,
@ -354,8 +354,8 @@ test.describe('Point-and-click tests', () => {
'sketch003 = startSketchOn(extrude001, face = seg04)',
afterRectangle1stClickSnippet:
'startProfile(sketch003, at = [-209.64, 255.28])',
afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.56,tag=$rectangleSegmentA003)
|>angledLine(angle=segAng(rectangleSegmentA003)-90,length=106.84)
afterRectangle2ndClickSnippet: `angledLine(angle=0deg,length=11.56,tag=$rectangleSegmentA003)
|>angledLine(angle=segAng(rectangleSegmentA003)-90deg,length=106.84)
|>angledLine(angle=segAng(rectangleSegmentA003),length=-segLen(rectangleSegmentA003))
|>line(endAbsolute=[profileStartX(%),profileStartY(%)])
|>close()`,
@ -365,7 +365,7 @@ test.describe('Point-and-click tests', () => {
clickCoords: { x: 677, y: 87 },
cameraPos: { x: -6200, y: 1500, z: 6200 },
cameraTarget: { x: 8300, y: 1100, z: 4800 },
beforeChamferSnippet: `angledLine(angle = 0, length = 268.43, tag = $rectangleSegmentA001)chamfer(
beforeChamferSnippet: `angledLine(angle = 0deg, length = 268.43, tag = $rectangleSegmentA001)chamfer(
length = 30,
tags = [
getNextAdjacentEdge(yo),
@ -376,8 +376,8 @@ test.describe('Point-and-click tests', () => {
'sketch004 = startSketchOn(extrude001, face = seg05)',
afterRectangle1stClickSnippet:
'startProfile(sketch004, at = [82.57, 322.96])',
afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.16,tag=$rectangleSegmentA004)
|>angledLine(angle=segAng(rectangleSegmentA004)-90,length=103.07)
afterRectangle2ndClickSnippet: `angledLine(angle=0deg,length=11.16,tag=$rectangleSegmentA004)
|>angledLine(angle=segAng(rectangleSegmentA004)-90deg,length=103.07)
|>angledLine(angle=segAng(rectangleSegmentA004),length=-segLen(rectangleSegmentA004))
|>line(endAbsolute=[profileStartX(%),profileStartY(%)])
|>close()`,
@ -394,8 +394,8 @@ test.describe('Point-and-click tests', () => {
'sketch005 = startSketchOn(extrude001, face = seg06)',
afterRectangle1stClickSnippet:
'startProfile(sketch005, at = [-23.43, 19.69])',
afterRectangle2ndClickSnippet: `angledLine(angle=0,length=9.1,tag=$rectangleSegmentA005)
|>angledLine(angle=segAng(rectangleSegmentA005)-90,length=84.07)
afterRectangle2ndClickSnippet: `angledLine(angle=0deg,length=9.1,tag=$rectangleSegmentA005)
|>angledLine(angle=segAng(rectangleSegmentA005)-90deg,length=84.07)
|>angledLine(angle=segAng(rectangleSegmentA005),length=-segLen(rectangleSegmentA005))
|>line(endAbsolute=[profileStartX(%),profileStartY(%)])
|>close()`,
@ -407,8 +407,8 @@ test.describe('Point-and-click tests', () => {
sketch001 = startSketchOn(XZ)
|> startProfile(at = [75.8, 317.2]) // [$startCapTag, $EndCapTag]
|> angledLine(angle = 0, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 217.26, tag = $seg01)
|> angledLine(angle = 0deg, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 217.26, tag = $seg01)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $yo)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|> close()
@ -419,29 +419,29 @@ extrude001 = extrude(sketch001, length = 100)
|> chamfer(length = 30, tags = [getNextAdjacentEdge(yo)], tag = $seg06)
sketch002 = startSketchOn(extrude001, face = seg03)
profile001 = startProfile(sketch002, at = [205.96, 254.59])
|> angledLine(angle = 0, length = 11.39, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 105.26)
|> angledLine(angle = 0deg, length = 11.39, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90deg, length = 105.26)
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
sketch003 = startSketchOn(extrude001, face = seg04)
profile002 = startProfile(sketch003, at = [-209.64, 255.28])
|> angledLine(angle = 0, length = 11.56, tag = $rectangleSegmentA003)
|> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = 106.84)
|> angledLine(angle = 0deg, length = 11.56, tag = $rectangleSegmentA003)
|> angledLine(angle = segAng(rectangleSegmentA003) - 90deg, length = 106.84)
|> angledLine(angle = segAng(rectangleSegmentA003), length = -segLen(rectangleSegmentA003))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
sketch004 = startSketchOn(extrude001, face = seg05)
profile003 = startProfile(sketch004, at = [82.57, 322.96])
|> angledLine(angle = 0, length = 11.16, tag = $rectangleSegmentA004)
|> angledLine(angle = segAng(rectangleSegmentA004) - 90, length = 103.07)
|> angledLine(angle = 0deg, length = 11.16, tag = $rectangleSegmentA004)
|> angledLine(angle = segAng(rectangleSegmentA004) - 90deg, length = 103.07)
|> angledLine(angle = segAng(rectangleSegmentA004), length = -segLen(rectangleSegmentA004))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
sketch005 = startSketchOn(extrude001, face = seg06)
profile004 = startProfile(sketch005, at = [-23.43, 19.69])
|> angledLine(angle = 0, length = 9.1, tag = $rectangleSegmentA005)
|> angledLine(angle = segAng(rectangleSegmentA005) - 90, length = 84.07)
|> angledLine(angle = 0deg, length = 9.1, tag = $rectangleSegmentA005)
|> angledLine(angle = segAng(rectangleSegmentA005) - 90deg, length = 84.07)
|> angledLine(angle = segAng(rectangleSegmentA005), length = -segLen(rectangleSegmentA005))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -482,7 +482,7 @@ profile004 = startProfile(sketch005, at = [-23.43, 19.69])
clickCoords: { x: 570, y: 220 },
cameraPos: { x: 16020, y: -2000, z: 10500 },
cameraTarget: { x: -150, y: -4500, z: -80 },
beforeChamferSnippet: `angledLine(angle=segAng(rectangleSegmentA001)-90,length=217.26,tag=$seg01)
beforeChamferSnippet: `angledLine(angle=segAng(rectangleSegmentA001)-90deg,length=217.26,tag=$seg01)
chamfer(extrude001,length=30,tags=[
seg01,
getNextAdjacentEdge(yo),
@ -494,8 +494,8 @@ profile004 = startProfile(sketch005, at = [-23.43, 19.69])
'sketch002 = startSketchOn(extrude001, face = seg03)',
afterRectangle1stClickSnippet:
'startProfile(sketch002, at = [205.96, 254.59])',
afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.39,tag=$rectangleSegmentA002)
|>angledLine(angle=segAng(rectangleSegmentA002)-90,length=105.26)
afterRectangle2ndClickSnippet: `angledLine(angle=0deg,length=11.39,tag=$rectangleSegmentA002)
|>angledLine(angle=segAng(rectangleSegmentA002)-90deg,length=105.26)
|>angledLine(angle=segAng(rectangleSegmentA002),length=-segLen(rectangleSegmentA002))
|>line(endAbsolute=[profileStartX(%),profileStartY(%)])
|>close()`,
@ -504,8 +504,8 @@ profile004 = startProfile(sketch005, at = [-23.43, 19.69])
`@settings(defaultLengthUnit = in)
sketch001 = startSketchOn(XZ)
|> startProfile(at = [75.8, 317.2])
|> angledLine(angle = 0, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 217.26, tag = $seg01)
|> angledLine(angle = 0deg, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 217.26, tag = $seg01)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $yo)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|> close()
@ -526,8 +526,8 @@ chamf = chamfer(
)
sketch002 = startSketchOn(extrude001, face = seg03)
profile001 = startProfile(sketch002, at = [205.96, 254.59])
|> angledLine(angle = 0, length = 11.39, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 105.26)
|> angledLine(angle = 0deg, length = 11.39, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90deg, length = 105.26)
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -1153,7 +1153,7 @@ openSketch = startSketchOn(XY)
}) => {
// One dumb hardcoded screen pixel value
const testPoint = { x: 620, y: 257 }
const expectedOutput = `helix001 = helix( axis = X, radius = 5, length = 5, revolutions = 1, angleStart = 270, ccw = false,)`
const expectedOutput = `helix001 = helix( axis = X, radius = 5, length = 5, revolutions = 1, angleStart = 270deg, ccw = false,)`
const expectedLine = `axis=X,`
await homePage.goToModelingScene()
@ -1183,7 +1183,7 @@ openSketch = startSketchOn(XY)
stage: 'arguments',
currentArgKey: 'angleStart',
highlightedHeaderArg: 'angleStart',
currentArgValue: '360',
currentArgValue: '360deg',
headerArguments: {
Mode: 'Axis',
Axis: 'X',
@ -1195,7 +1195,7 @@ openSketch = startSketchOn(XY)
},
commandName: 'Helix',
})
await cmdBar.currentArgumentInput.locator('.cm-content').fill('270')
await cmdBar.currentArgumentInput.locator('.cm-content').fill('270deg')
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
@ -1471,9 +1471,9 @@ extrude001 = extrude(profile001, length = 100)
// One dumb hardcoded screen pixel value
const testPoint = { x: 620, y: 257 }
const [clickOnWall] = scene.makeMouseHelpers(testPoint.x, testPoint.y)
const expectedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360, ccw = false,)`
const expectedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360deg, ccw = false,)`
const expectedLine = `cylinder = extrude001,`
const expectedEditedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360, ccw = true,)`
const expectedEditedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360deg, ccw = true,)`
await test.step(`Go through the command bar flow`, async () => {
await toolbar.helixButton.click()
@ -1776,8 +1776,8 @@ profile002 = startProfile(sketch002, at = [0, 0])
initialCode: `@settings(defaultLengthUnit = in)
sketch001 = startSketchOn(YZ)
profile001 = startProfile(sketch001, at = [-400, -400])
|> angledLine(angle = 0, length = 800, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = 800)
|> angledLine(angle = 0deg, length = 800, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) + 90deg, length = 800)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -1950,7 +1950,7 @@ profile002 = startProfile(sketch002, at = [0, 0])
radius = 1,
length = 10,
revolutions = 10,
angleStart = 0,
angleStart = 0deg,
ccw = false,
)
sketch001 = startSketchOn(XZ)
@ -3660,8 +3660,8 @@ profile001 = startProfile(sketch001, at = [-20, 20])
const initialCode = `
sketch001 = startSketchOn(XZ)
|> startProfile(at = [-100.0, 100.0])
|> angledLine(angle = 0, length = 200.0, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 200, tag = $rectangleSegmentB001)
|> angledLine(angle = 0deg, length = 200.0, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 200, tag = $rectangleSegmentB001)
|> angledLine(
angle=segAng(rectangleSegmentA001),
length=-segLen(rectangleSegmentA001),
@ -3672,9 +3672,9 @@ tag=$rectangleSegmentC001,
extrude001 = extrude(sketch001, length = 200)
sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
|> startProfile(at = [-66.77, 84.81])
|> angledLine(angle = 180, length = 27.08, tag = $rectangleSegmentA002)
|> angledLine(angle = 180deg, length = 27.08, tag = $rectangleSegmentA002)
|> angledLine(
angle=segAng(rectangleSegmentA002) - 90,
angle=segAng(rectangleSegmentA002) - 90deg,
length=27.8,
tag=$rectangleSegmentB002,
)
@ -3706,11 +3706,10 @@ tag=$rectangleSegmentC002,
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = X)`
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360deg, axis = X)`
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
// Edit flow
const newAngle = '90'
await toolbar.openPane('feature-tree')
const operationButton = await toolbar.getFeatureTreeOperation(
'Revolve',
@ -3720,26 +3719,26 @@ tag=$rectangleSegmentC002,
await cmdBar.expectState({
commandName: 'Revolve',
currentArgKey: 'angle',
currentArgValue: '360',
currentArgValue: '360deg',
headerArguments: {
Angle: '360',
},
highlightedHeaderArg: 'angle',
stage: 'arguments',
})
await page.keyboard.insertText(newAngle)
await page.keyboard.insertText('90deg')
await cmdBar.progressCmdBar()
await cmdBar.expectState({
stage: 'review',
headerArguments: {
Angle: newAngle,
Angle: '90',
},
commandName: 'Revolve',
})
await cmdBar.progressCmdBar()
await toolbar.closePane('feature-tree')
await editor.expectEditor.toContain(
newCodeToFind.replace('angle = 360', 'angle = ' + newAngle)
newCodeToFind.replace('angle = 360deg', 'angle = 90deg')
)
})
test('revolve surface around edge from an extruded solid2d', async ({
@ -3753,8 +3752,8 @@ tag=$rectangleSegmentC002,
}) => {
const initialCode = `sketch001 = startSketchOn(XZ)
|> startProfile(at = [-102.57, 101.72])
|> angledLine(angle = 0, length = 202.6, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 202.6, tag = $rectangleSegmentB001)
|> angledLine(angle = 0deg, length = 202.6, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 202.6, tag = $rectangleSegmentB001)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -3779,17 +3778,17 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
await toolbar.revolveButton.click()
await cmdBar.progressCmdBar()
await page.getByText('Edge', { exact: true }).click()
const lineCodeToSelection = `angledLine(angle = 0, length = 202.6, tag = $rectangleSegmentA001)`
const lineCodeToSelection = `angledLine(angle = 0deg, length = 202.6, tag = $rectangleSegmentA001)`
await page.getByText(lineCodeToSelection).click()
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = rectangleSegmentA001)`
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360deg, axis = rectangleSegmentA001)`
await editor.expectEditor.toContain(newCodeToFind)
// Edit flow
const newAngle = '180'
const newAngle = '180deg'
await toolbar.openPane('feature-tree')
const operationButton = await toolbar.getFeatureTreeOperation(
'Revolve',
@ -3799,9 +3798,9 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
await cmdBar.expectState({
commandName: 'Revolve',
currentArgKey: 'angle',
currentArgValue: '360',
currentArgValue: '360deg',
headerArguments: {
Angle: '360',
Angle: '360deg',
},
highlightedHeaderArg: 'angle',
stage: 'arguments',
@ -3823,7 +3822,7 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
await toolbar.closePane('feature-tree')
await editor.expectEditor.toContain('angle001 = ' + newAngle)
await editor.expectEditor.toContain(
newCodeToFind.replace('angle = 360', 'angle = angle001')
newCodeToFind.replace('angle = 360deg', 'angle = angle001')
)
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
})
@ -3842,8 +3841,8 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
|> xLine(length = 2.6)
sketch001 = startSketchOn(-XY)
|> startProfile(at = [-0.48, 1.25])
|> angledLine(angle = 0, length = 2.38, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 2.4, tag = $rectangleSegmentB001)
|> angledLine(angle = 0deg, length = 2.38, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 2.4, tag = $rectangleSegmentB001)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -3880,11 +3879,10 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve(sketch003, angle = 360, axis = seg01)`
const newCodeToFind = `revolve001 = revolve(sketch003, angle = 360deg, axis = seg01)`
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
// Edit flow
const newAngle = '270'
await toolbar.openPane('feature-tree')
const operationButton = await toolbar.getFeatureTreeOperation(
'Revolve',
@ -3894,26 +3892,26 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001)
await cmdBar.expectState({
commandName: 'Revolve',
currentArgKey: 'angle',
currentArgValue: '360',
currentArgValue: '360deg',
headerArguments: {
Angle: '360',
},
highlightedHeaderArg: 'angle',
stage: 'arguments',
})
await page.keyboard.insertText(newAngle)
await page.keyboard.insertText('270deg')
await cmdBar.progressCmdBar()
await cmdBar.expectState({
stage: 'review',
headerArguments: {
Angle: newAngle,
Angle: '270',
},
commandName: 'Revolve',
})
await cmdBar.progressCmdBar()
await toolbar.closePane('feature-tree')
await editor.expectEditor.toContain(
newCodeToFind.replace('angle = 360', 'angle = ' + newAngle)
newCodeToFind.replace('angle = 360deg', 'angle = 270deg')
)
})
})
@ -4856,7 +4854,7 @@ path001 = startProfile(sketch001, at = [0, 0])
await cmdBar.expectState({
stage: 'arguments',
currentArgKey: 'angle',
currentArgValue: '360',
currentArgValue: '360deg',
headerArguments: {
Profiles: '2 profiles',
AxisOrEdge: 'Edge',
@ -4866,7 +4864,7 @@ path001 = startProfile(sketch001, at = [0, 0])
highlightedHeaderArg: 'angle',
commandName: 'Revolve',
})
await page.keyboard.insertText('180')
await page.keyboard.insertText('180deg')
await cmdBar.progressCmdBar()
await cmdBar.expectState({
stage: 'review',
@ -4885,7 +4883,7 @@ path001 = startProfile(sketch001, at = [0, 0])
shouldNormalise: true,
})
await editor.expectEditor.toContain(
`revolve001 = revolve([profile001, profile002], angle=180, axis=seg01)`,
`revolve001 = revolve([profile001, profile002], angle=180deg, axis=seg01)`,
{ shouldNormalise: true }
)
})
@ -4897,7 +4895,7 @@ path001 = startProfile(sketch001, at = [0, 0])
await page.getByTestId('context-menu-delete').click()
await scene.settled(cmdBar)
await editor.expectEditor.not.toContain(
`revolve001 = revolve([profile001, profile002], axis = XY, angle = 180)`,
`revolve001 = revolve([profile001, profile002], axis = XY, angle = 180deg)`,
{ shouldNormalise: true }
)
})

View File

@ -2100,8 +2100,8 @@ profile003 = startProfile(sketch001, at = [206.63, -56.73])
)
await crnRect1point2()
await editor.expectEditor.toContain(
`|> angledLine(angle = 0, length = 2.37, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 7.8)
`|> angledLine(angle = 0deg, length = 2.37, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 7.8)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()`.replaceAll('\n', '')
@ -2115,8 +2115,8 @@ profile003 = startProfile(sketch001, at = [206.63, -56.73])
await crnRect2point2()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`|> angledLine(angle = 0, length = 5.49, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 4.14)
`|> angledLine(angle = 0deg, length = 5.49, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90deg, length = 4.14)
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()`.replaceAll('\n', '')
@ -2134,8 +2134,8 @@ profile003 = startProfile(sketch001, at = [206.63, -56.73])
await cntrRect1point2()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`|> angledLine(angle = 0, length = 7.06, tag = $rectangleSegmentA003)
|> angledLine(angle = segAng(rectangleSegmentA003) + 90, length = 4.34)
`|> angledLine(angle = 0deg, length = 7.06, tag = $rectangleSegmentA003)
|> angledLine(angle = segAng(rectangleSegmentA003) + 90deg, length = 4.34)
|> angledLine(angle = segAng(rectangleSegmentA003), length = -segLen(rectangleSegmentA003))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()`.replaceAll('\n', '')
@ -2150,8 +2150,8 @@ profile003 = startProfile(sketch001, at = [206.63, -56.73])
await cntrRect2point2()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`|> angledLine(angle = 0, length = 3.12, tag = $rectangleSegmentA004)
|> angledLine(angle = segAng(rectangleSegmentA004) + 90, length = 6.24)
`|> angledLine(angle = 0deg, length = 3.12, tag = $rectangleSegmentA004)
|> angledLine(angle = segAng(rectangleSegmentA004) + 90deg, length = 6.24)
|> angledLine(angle = segAng(rectangleSegmentA004), length = -segLen(rectangleSegmentA004))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()`.replaceAll('\n', '')
@ -2300,8 +2300,8 @@ profile001 = startProfile(sketch001, at = [6.24, 4.54])
|> line(end = [8.61, 0.74])
|> line(end = [10.99, -5.22])
profile002 = startProfile(sketch001, at = [11.19, 5.02])
|> angledLine(angle = 0, length = 10.78, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 4.14)
|> angledLine(angle = 0deg, length = 10.78, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 4.14)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -2373,7 +2373,7 @@ profile004 = circleThreePoint(sketch001, p1 = [13.44, -6.8], p2 = [13.39, -2.07]
await page.mouse.up()
await page.waitForTimeout(200)
await editor.expectEditor.toContain(
`angledLine(angle = -7, length = 10.27, tag = $rectangleSegmentA001)`
`angledLine(angle = -7deg, length = 10.27, tag = $rectangleSegmentA001)`
)
})
@ -2415,8 +2415,8 @@ profile004 = circleThreePoint(sketch001, p1 = [13.44, -6.8], p2 = [13.39, -2.07]
await page.waitForTimeout(100)
await rectEnd()
await editor.expectEditor.toContain(
`|> angledLine(angle = 180, length = 1.97, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) + 90, length = 3.89)
`|> angledLine(angle = 180deg, length = 1.97, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) + 90deg, length = 3.89)
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()`.replaceAll('\n', '')
@ -2441,8 +2441,8 @@ profile001 = startProfile(sketch001, at = [6.24, 4.54])
|> line(end = [8.61, 0.74])
|> line(end = [10.99, -5.22])
profile002 = startProfile(sketch001, at = [11.19, 5.02])
|> angledLine(angle = 0, length = 10.78, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 4.14)
|> angledLine(angle = 0deg, length = 10.78, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 4.14)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -2771,8 +2771,8 @@ profile002 = startProfile(sketch002, at = [0.75, 13.46])
|> line(end = [4.52, 3.79])
|> line(end = [5.98, -2.81])
profile003 = startProfile(sketch002, at = [3.19, 13.3])
|> angledLine(angle = 0, length = 6.64, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 2.81)
|> angledLine(angle = 0deg, length = 6.64, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 2.81)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -2789,7 +2789,7 @@ profile006 = startProfile(sketch002, at = [9.65, 3.82])
|> close()
revolve001 = revolve(
profile004,
angle = 45,
angle = 45deg,
axis = getNextAdjacentEdge(seg01)
)
extrude002 = extrude(profile006, length = 4)
@ -2813,8 +2813,8 @@ profile010 = circle(
radius = 2.67
)
profile011 = startProfile(sketch003, at = [5.07, -6.39])
|> angledLine(angle = 0, length = 4.54, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 4.17)
|> angledLine(angle = 0deg, length = 4.54, tag = $rectangleSegmentA002)
|> angledLine(angle = segAng(rectangleSegmentA002) - 90deg, length = 4.17)
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002))
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
@ -2966,7 +2966,7 @@ loft([profile001, profile002])
)
await rect1Crn2()
await editor.expectEditor.toContain(
`angledLine(angle = 0, length = 113.01, tag = $rectangleSegmentA001)`
`angledLine(angle = 0deg, length = 113.01, tag = $rectangleSegmentA001)`
)
})
test('Can enter sketch loft edges offsetPlane and continue sketch', async ({
@ -3035,7 +3035,7 @@ loft([profile001, profile002])
)
await rect1Crn2()
await editor.expectEditor.toContain(
`angledLine(angle = 0, length = 106.42], tag = $rectangleSegmentA001)`
`angledLine(angle = 0deg, length = 106.42], tag = $rectangleSegmentA001)`
)
await page.waitForTimeout(100)
})
@ -3257,8 +3257,8 @@ test.describe('manual edits during sketch mode', () => {
extrude001 = extrude(profile001, length = 500)
sketch002 = startSketchOn(extrude001, face = seg01)
profile002 = startProfile(sketch002, at = [83.39, 329.15])
|> angledLine(angle = 0, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28)
|> angledLine(angle = 0deg, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28deg)
|> angledLine(
angle = -151,
length = 116.27,
@ -3296,7 +3296,9 @@ test.describe('manual edits during sketch mode', () => {
await expect
.poll(
async () => {
await editor.expectEditor.toContain('length = 156.54, angle = -28')
await editor.expectEditor.toContain(
'length = 156.54, angle = -28deg'
)
await page.mouse.move(handle1Location.x, handle1Location.y)
await page.mouse.down()
await page.mouse.move(
@ -3307,7 +3309,9 @@ test.describe('manual edits during sketch mode', () => {
}
)
await page.mouse.up()
await editor.expectEditor.toContain('length = 231.59, angle = -34')
await editor.expectEditor.toContain(
'length = 231.59, angle = -34deg'
)
return true
},
{ timeout: 10_000 }
@ -3325,7 +3329,7 @@ test.describe('manual edits during sketch mode', () => {
const handle2Location = { x: 872, y: 273 }
await test.step('Edit sketch again', async () => {
await editor.expectEditor.toContain('length = 231.59, angle = -34')
await editor.expectEditor.toContain('length = 231.59, angle = -34deg')
await page.waitForTimeout(500)
await expect
.poll(
@ -3336,7 +3340,9 @@ test.describe('manual edits during sketch mode', () => {
steps: 5,
})
await page.mouse.up()
await editor.expectEditor.toContain('length = 167.36, angle = -14')
await editor.expectEditor.toContain(
'length = 167.36, angle = -14deg'
)
return true
},
{ timeout: 10_000 }
@ -3361,14 +3367,18 @@ test.describe('manual edits during sketch mode', () => {
await expect
.poll(
async () => {
await editor.expectEditor.toContain('length = 167.36, angle = -14')
await editor.expectEditor.toContain(
'length = 167.36, angle = -14deg'
)
await page.mouse.move(handle3Location.x, handle3Location.y)
await page.mouse.down()
await page.mouse.move(handle3Location.x, handle3Location.y + 110, {
steps: 5,
})
await page.mouse.up()
await editor.expectEditor.toContain('length = 219.2, angle = -56')
await editor.expectEditor.toContain(
'length = 219.2, angle = -56deg'
)
return true
},
{ timeout: 10_000 }
@ -3393,9 +3403,9 @@ profile001 = startProfile(sketch001, at = [106.68, 89.77])
extrude001 = extrude(profile001, length = 500)
sketch002 = startSketchOn(extrude001, face = seg01)
profile002 = startProfile(sketch002, at = [83.39, 329.15])
|> angledLine(angle = 0, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 219.2, angle = -56)
|> angledLine(angle = -151, length = 116.27)
|> angledLine(angle = 0deg, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 219.2, angle = -56deg)
|> angledLine(angle = -151deg, length = 116.27)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
profile003 = startProfile(sketch002, at = [-201.08, 254.17])
@ -3432,10 +3442,10 @@ profile003 = startProfile(sketch002, at = [-201.08, 254.17])
extrude001 = extrude(profile001, length = 500)
sketch002 = startSketchOn(extrude001, face = seg01)
profile002 = startProfile(sketch002, at = [83.39, 329.15])
|> angledLine(angle = 0, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28)
|> angledLine(angle = 0deg, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28deg)
|> angledLine(
angle = -151,
angle = -151deg,
length = 116.27,
)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
@ -3496,10 +3506,10 @@ profile003 = startProfile(sketch002, at = [-201.08, 254.17])
extrude001 = extrude(profile001, length = 500)
sketch002 = startSketchOn(extrude001, face = seg01)
profile002 = startProfile(sketch002, at = [83.39, 329.15])
|> angledLine(angle = 0, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28)
|> angledLine(angle = 0deg, length = 119.61, tag = $rectangleSegmentA001)
|> angledLine(length = 156.54, angle = -28deg)
|> angledLine(
angle = -151,
angle = -151deg,
length = 116.27,
)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])

View File

@ -845,14 +845,14 @@ test.describe('code color goober', { tag: '@snapshot' }, () => {
sweepPath = startSketchOn(XZ)
|> startProfile(at = [0.05, 0.05])
|> line(end = [0, 7])
|> tangentialArc(angle = 90, radius = 5)
|> tangentialArc(angle = 90deg, radius = 5)
|> line(end = [-3, 0])
|> tangentialArc(angle = -90, radius = 5)
|> tangentialArc(angle = -90deg, radius = 5)
|> line(end = [0, 7])
sweepSketch = startSketchOn(XY)
|> startProfile(at = [2, 0])
|> arc(angleStart = 0, angleEnd = 360, radius = 2)
|> arc(angleStart = 0, angleEnd = 360deg, radius = 2)
|> sweep(path = sweepPath)
|> appearance(
color = "#bb00ff",
@ -889,14 +889,14 @@ sweepSketch = startSketchOn(XY)
sweepPath = startSketchOn(XZ)
|> startProfile(at = [0.05, 0.05])
|> line(end = [0, 7])
|> tangentialArc(angle = 90, radius = 5)
|> tangentialArc(angle = 90deg, radius = 5)
|> line(end = [-3, 0])
|> tangentialArc(angle = -90, radius = 5)
|> tangentialArc(angle = -90deg, radius = 5)
|> line(end = [0, 7])
sweepSketch = startSketchOn(XY)
|> startProfile(at = [2, 0])
|> arc(angleStart = 0, angleEnd = 360, radius = 2)
|> arc(angleStart = 0deg, angleEnd = 360deg, radius = 2)
|> sweep(path = sweepPath)
|> appearance(
color = '#bb00ff',
@ -934,14 +934,14 @@ sweepSketch = startSketchOn(XY)
sweepPath = startSketchOn(XZ)
|> startProfile(at = [0.05, 0.05])
|> line(end = [0, 7])
|> tangentialArc(angle = 90, radius = 5)
|> tangentialArc(angle = 90deg, radius = 5)
|> line(end = [-3, 0])
|> tangentialArc(angle = -90, radius = 5)
|> tangentialArc(angle = -90deg, radius = 5)
|> line(end = [0, 7])
sweepSketch = startSketchOn(XY)
|> startProfile(at = [2, 0])
|> arc(angleStart = 0, angleEnd = 360, radius = 2)
|> arc(angleStart = 0deg, angleEnd = 360deg, radius = 2)
|> sweep(path = sweepPath)
|> appearance(
color = "#bb00ff",

View File

@ -57,7 +57,7 @@ test.describe('Testing constraints', () => {
.click()
await expect(page.locator('.cm-content')).toHaveText(
`length001 = 20sketch001 = startSketchOn(XY) |> startProfile(at = [-10, -10]) |> line(end = [20, 0]) |> angledLine(angle = 90, length = length001) |> xLine(length = -20)`
`length001 = 20sketch001 = startSketchOn(XY) |> startProfile(at = [-10, -10]) |> line(end = [20, 0]) |> angledLine(angle = 90deg, length = length001) |> xLine(length = -20)`
)
// Make sure we didn't pop out of sketch mode.
@ -208,7 +208,9 @@ test.describe('Testing constraints', () => {
.click()
// Wait for the codemod to take effect
await expect(page.locator('.cm-content')).toContainText(`angle = -57,`)
await expect(page.locator('.cm-content')).toContainText(
`angle = -57deg,`
)
await expect(page.locator('.cm-content')).toContainText(
`offset = ${offset},`
)
@ -219,7 +221,7 @@ test.describe('Testing constraints', () => {
`|> line(end = [74.36, 130.4], tag = $seg01)`
)
await expect(activeLinesContent[1]).toHaveText(
` |> angledLineThatIntersects(angle = -57, offset = ${offset}, intersectTag = seg01)`
` |> angledLineThatIntersects(angle = -57deg, offset = ${offset}, intersectTag = seg01)`
)
// checking the count of the overlays is a good proxy check that the client sketch scene is in a good state
@ -470,7 +472,7 @@ test.describe('Testing constraints', () => {
testName: 'No variable',
addVariable: false,
axisSelect: false,
value: 'segAng(seg01) + 22.69',
value: 'segAng(seg01) + 22.69deg',
},
{
testName: 'Add variable, selecting axis',
@ -482,7 +484,7 @@ test.describe('Testing constraints', () => {
testName: 'No variable, selecting axis',
addVariable: false,
axisSelect: true,
value: 'turns::QUARTER_TURN - 7',
value: 'turns::QUARTER_TURN - 7deg',
},
] as const
for (const { testName, addVariable, value, axisSelect } of cases) {
@ -585,7 +587,7 @@ test.describe('Testing constraints', () => {
testName: 'Angle - No variable',
addVariable: false,
constraint: 'angle',
value: '83, 78.33',
value: '83deg, 78.33',
},
] as const
for (const { testName, addVariable, value, constraint } of cases) {
@ -657,13 +659,13 @@ test.describe('Testing constraints', () => {
testName: 'Length - Add variable',
addVariable: true,
constraint: 'length',
value: '83, length001',
value: '83deg, length001',
},
{
testName: 'Length - No variable',
addVariable: false,
constraint: 'length',
value: '83, 78.33',
value: '83deg, 78.33',
},
] as const
for (const { testName, addVariable, value, constraint } of cases) {
@ -852,7 +854,7 @@ part002 = startSketchOn(XZ)
test.describe('Two segment - no modal constraints', () => {
const cases = [
{
codeAfter: `|> angledLine(angle = 83, length = segLen(seg01))`,
codeAfter: `|> angledLine(angle = 83deg, length = segLen(seg01))`,
constraintName: 'Equal Length',
},
{
@ -1174,7 +1176,7 @@ test.describe('Electron constraint tests', () => {
await cmdBar.progressCmdBar()
await editor.expectEditor.toContain('length001 = 15.3')
await editor.expectEditor.toContain(
'|> angledLine(angle = 9, length = length001)'
'|> angledLine(angle = 9deg, length = length001)'
)
})

View File

@ -1,8 +1,8 @@
@settings(defaultLengthUnit = in)
sketch001 = startSketchOn(XZ)
|> startProfile(at = [75.8, 317.2])
|> angledLine(angle = 0, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 217.26, tag = $seg01)
|> angledLine(angle = 0deg, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 217.26, tag = $seg01)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $yo)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|> close()

View File

@ -1,8 +1,8 @@
@settings(defaultLengthUnit = in)
sketch001 = startSketchOn(XZ)
|> startProfile(at = [75.8, 317.2]) // [$startCapTag, $EndCapTag]
|> angledLine(angle = 0, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 217.26, tag = $seg01)
|> angledLine(angle = 0deg, length = 268.43, tag = $rectangleSegmentA001)
|> angledLine(angle = segAng(rectangleSegmentA001) - 90deg, length = 217.26, tag = $seg01)
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $yo)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|> close()

View File

@ -12,7 +12,7 @@ use crate::{
};
/// Annotations which should cause re-execution if they change.
pub(super) const SIGNIFICANT_ATTRS: [&str; 2] = [SETTINGS, NO_PRELUDE];
pub(super) const SIGNIFICANT_ATTRS: [&str; 3] = [SETTINGS, NO_PRELUDE, WARNINGS];
pub(crate) const SETTINGS: &str = "settings";
pub(crate) const SETTINGS_UNIT_LENGTH: &str = "defaultLengthUnit";
@ -162,7 +162,7 @@ pub(super) fn many_of(
vec![source_range],
))
})
.map(|v| *v)
.copied()
})
.collect::<Result<Vec<&str>, KclError>>()
}

View File

@ -1780,6 +1780,7 @@ impl Node<PipeExpression> {
#[cfg(test)]
mod test {
use std::sync::Arc;
use tokio::io::AsyncWriteExt;
use super::*;

View File

@ -604,8 +604,9 @@ impl ExecutorContext {
settings: &self.settings,
};
let cache_result = cache::get_changed_program(old, new).await;
// Get the program that actually changed from the old and new information.
let (clear_scene, program, import_check_info) = match cache::get_changed_program(old, new).await {
let (clear_scene, program, import_check_info) = match cache_result {
CacheResult::ReExecute {
clear_scene,
reapply_settings,

View File

@ -760,7 +760,7 @@ impl NumericType {
}
}
fn coerce(&self, val: &KclValue) -> Result<KclValue, CoercionError> {
fn coerce(&self, val: &KclValue, exec_state: &mut ExecState) -> Result<KclValue, CoercionError> {
let KclValue::Number { value, ty, meta } = val else {
return Err(val.into());
};
@ -832,6 +832,14 @@ impl NumericType {
}
(Default { angle: a1, .. }, Known(UnitType::Angle(a2))) => {
let mut source_ranges = Into::<Vec<SourceRange>>::into(val);
// A single source range means it's not via a function or something.
if source_ranges.len() == 1 {
exec_state.warn(
CompilationError::err(source_ranges.pop().unwrap(), "Prefer to use explicit units for angles"),
annotations::WARN_ANGLE_UNITS,
);
}
let (value, ty) = a1.adjust_to(*value, *a2);
Ok(KclValue::Number {
value,
@ -1156,7 +1164,7 @@ impl KclValue {
PrimitiveType::Any => Ok(self.clone()),
PrimitiveType::Number(ty) => {
if convert_units {
return ty.coerce(self);
return ty.coerce(self, exec_state);
}
// Instead of converting units, reinterpret the number as having
@ -1172,10 +1180,10 @@ impl KclValue {
value: *n,
meta: meta.clone(),
};
return ty.coerce(&value);
return ty.coerce(&value, exec_state);
}
}
ty.coerce(self)
ty.coerce(self, exec_state)
}
PrimitiveType::String => match self {
KclValue::String { .. } => Ok(self.clone()),

View File

@ -105,7 +105,12 @@ async fn inner_extrude(
(Some(angle), angle_step, center) => {
let center = center.clone().map(point_to_mm).map(Point2d::from).unwrap_or_default();
let total_rotation_angle = Angle::from_degrees(angle.to_degrees(exec_state, args.source_range));
let angle_step_size = Angle::from_degrees(angle_step.clone().map(|a| a.to_degrees(exec_state, args.source_range)).unwrap_or(15.0));
let angle_step_size = Angle::from_degrees(
angle_step
.clone()
.map(|a| a.to_degrees(exec_state, args.source_range))
.unwrap_or(15.0),
);
ModelingCmd::from(mcmd::TwistExtrude {
target: sketch.id.into(),
distance: LengthUnit(length.to_mm()),

View File

@ -31,7 +31,6 @@ import {
createCallExpressionStdLibKw,
createLabeledArg,
createLiteral,
createLiteralMaybeSuffix,
createLocalName,
createPipeExpression,
createTagDeclarator,
@ -4227,13 +4226,8 @@ const tangentialArcHelpers = {
callExpression,
createLiteral(roundOff(radius, 2))
)
const angleValue = createLiteralMaybeSuffix({
value: roundOff(angle, 2),
suffix: 'Deg',
})
if (!err(angleValue)) {
mutateKwArg(ARG_ANGLE, callExpression, angleValue)
}
const angleValue = createLiteral(roundOff(angle, 2), 'Deg')
mutateKwArg(ARG_ANGLE, callExpression, angleValue)
} else {
console.debug('Invalid center calculated for tangential arc')
}

View File

@ -376,45 +376,53 @@ p3 = [342.51, 216.38],
namedConstantConstraint: [
{
name: 'should constrain angledLine, angle value',
...makeStraightSegmentSnippet('angledLine(angle = 45, length = 100)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, length = 100)'
),
constraintIndex: 0,
expectedResult: 'angledLine(angle = test_variable, length = 100)',
},
{
name: 'should constrain angledLine, length value',
...makeStraightSegmentSnippet('angledLine(angle = 45, length = 100)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, length = 100)'
),
constraintIndex: 1,
expectedResult: 'angledLine(angle = 45, length = test_variable)',
expectedResult: 'angledLine(angle = 45deg, length = test_variable)',
},
{
name: 'should constrain angledLine, endAbsoluteY value',
...makeStraightSegmentSnippet(
'angledLine(angle = 45, endAbsoluteY = 5)'
'angledLine(angle = 45deg, endAbsoluteY = 5)'
),
constraintIndex: 1,
expectedResult:
'angledLine(angle = 45, endAbsoluteY = test_variable)',
'angledLine(angle = 45deg, endAbsoluteY = test_variable)',
},
{
name: 'should constrain angledLine, endAbsoluteX value',
...makeStraightSegmentSnippet(
'angledLine(angle = 45, endAbsoluteX = 5)'
'angledLine(angle = 45deg, endAbsoluteX = 5)'
),
constraintIndex: 1,
expectedResult:
'angledLine(angle = 45, endAbsoluteX = test_variable)',
'angledLine(angle = 45deg, endAbsoluteX = test_variable)',
},
{
name: 'should constrain angledLine, lengthY value',
...makeStraightSegmentSnippet('angledLine(angle = 45, lengthY = 5)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, lengthY = 5)'
),
constraintIndex: 1,
expectedResult: 'angledLine(angle = 45, lengthY = test_variable)',
expectedResult: 'angledLine(angle = 45deg, lengthY = test_variable)',
},
{
name: 'should constrain angledLine, lengthX value',
...makeStraightSegmentSnippet('angledLine(angle = 45, lengthX = 5)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, lengthX = 5)'
),
constraintIndex: 1,
expectedResult: 'angledLine(angle = 45, lengthX = test_variable)',
expectedResult: 'angledLine(angle = 45deg, lengthX = test_variable)',
},
],
removeAllConstraintsCases: [
@ -466,7 +474,7 @@ p3 = [342.51, 216.38],
'angledLine(angle = testVar1, length = testVar2)'
),
constraintIndex: 0,
expectedResult: 'angledLine(angle = 55, length = testVar2)',
expectedResult: 'angledLine(angle = 55deg, length = testVar2)',
},
{
name: 'should un-constrain angledLine, length value',
@ -512,27 +520,33 @@ p3 = [342.51, 216.38],
deleteSegment: [
{
name: 'should delete angledLine, angle length',
...makeStraightSegmentSnippet('angledLine(angle = 45, length = 100)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, length = 100)'
),
},
{
name: 'should delete angledLine, endAbsoluteY',
...makeStraightSegmentSnippet(
'angledLine(angle = 45, endAbsoluteY = 5)'
'angledLine(angle = 45deg, endAbsoluteY = 5)'
),
},
{
name: 'should delete angledLine, endAbsoluteX',
...makeStraightSegmentSnippet(
'angledLine(angle = 45, endAbsoluteX = 5)'
'angledLine(angle = 45deg, endAbsoluteX = 5)'
),
},
{
name: 'should delete angledLine, lengthY',
...makeStraightSegmentSnippet('angledLine(angle = 45, lengthY = 5)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, lengthY = 5)'
),
},
{
name: 'should delete angledLine, lengthX',
...makeStraightSegmentSnippet('angledLine(angle = 45, lengthX = 5)'),
...makeStraightSegmentSnippet(
'angledLine(angle = 45deg, lengthX = 5)'
),
},
],
},