Update point-and-click sketch close code generation to use explicit lines (#2489)

* Modify sketch profile completion to use `profileStart` utilties

* Fix up playwright tests

* Rerun CI
This commit is contained in:
Frank Noirot
2024-05-23 00:53:15 -04:00
committed by GitHub
parent 0a7f1a41fc
commit 25f18845c7
3 changed files with 67 additions and 8 deletions

View File

@ -69,6 +69,7 @@ import {
tangentialArcToSegment,
} from './segments'
import {
addCallExpressionsToPipe,
addCloseToPipe,
addNewSketchLn,
changeSketchArguments,
@ -536,10 +537,34 @@ export class SceneEntities {
let modifiedAst
if (profileStart) {
modifiedAst = addCloseToPipe({
const lastSegment = sketchGroup.value.slice(-1)[0]
modifiedAst = addCallExpressionsToPipe({
node: kclManager.ast,
programMemory: kclManager.programMemory,
pathToNode: sketchPathToNode,
expressions: [
createCallExpressionStdLib(
lastSegment.type === 'TangentialArcTo'
? 'tangentialArcTo'
: 'lineTo',
[
createArrayExpression([
createCallExpressionStdLib('profileStartX', [
createPipeSubstitution(),
]),
createCallExpressionStdLib('profileStartY', [
createPipeSubstitution(),
]),
]),
createPipeSubstitution(),
]
),
],
})
modifiedAst = addCloseToPipe({
node: modifiedAst,
programMemory: kclManager.programMemory,
pathToNode: sketchPathToNode,
})
} else if (intersection2d) {
const lastSegment = sketchGroup.value.slice(-1)[0]
@ -560,13 +585,17 @@ export class SceneEntities {
}
await kclManager.executeAstMock(modifiedAst)
this.setUpDraftSegment(
sketchPathToNode,
forward,
up,
origin,
segmentName
)
if (profileStart) {
sceneInfra.modelingSend({ type: 'CancelSketch' })
} else {
this.setUpDraftSegment(
sketchPathToNode,
forward,
up,
origin,
segmentName
)
}
},
onMove: (args) => {
this.onDragSegment({