Compare commits

...

1 Commits

Author SHA1 Message Date
081cf5f17c Migrate more functions to use kwargs 2025-04-28 13:46:26 -05:00
3 changed files with 31 additions and 15 deletions

View File

@ -16,3 +16,5 @@ export const ARG_END_ABSOLUTE_Y = 'endAbsoluteY'
export const ARG_INTERSECT_TAG = 'intersectTag'
export const ARG_INTERIOR_ABSOLUTE = 'interiorAbsolute'
export const ARG_AT = 'at'
export const ARG_LEG = 'leg'
export const ARG_HYPOTENUSE = 'hypotenuse'

View File

@ -318,8 +318,8 @@ part001 = startSketchOn(XY)
|> angledLine(angle = myVar, length = segLen(seg01)) // ln-use segLen for second arg
|> angledLine(angle = 45, length = segLen(seg01)) // ln-segLen again
|> angledLine(angle = 54, length = segLen(seg01)) // ln-should be transformed to angledLine
|> angledLine(angle = legAngX(segLen(seg01), myVar), lengthX = min([segLen(seg01), myVar])) // ln-should use legAngX to calculate angle
|> angledLine(angle = 180 + legAngX(segLen(seg01), myVar), lengthX = min([segLen(seg01), myVar])) // ln-same as above but should have + 180 to match original quadrant
|> angledLine(angle = legAngX(hypotenuse = segLen(seg01), leg = myVar), lengthX = min([segLen(seg01), myVar])) // ln-should use legAngX to calculate angle
|> angledLine(angle = 180 + legAngX(hypotenuse = segLen(seg01), leg = myVar), lengthX = min([segLen(seg01), myVar])) // ln-same as above but should have + 180 to match original quadrant
|> line(end = [
legLen(hypotenuse = segLen(seg01), leg = myVar),
min([segLen(seg01), myVar])
@ -330,8 +330,8 @@ part001 = startSketchOn(XY)
]) // ln-negative legLen yRelative
|> angledLine(angle = 58, length = segLen(seg01)) // ln-angledLineOfYLength-free should become angledLine
|> angledLine(angle = myAng, length = segLen(seg01)) // ln-angledLineOfYLength-angle should become angledLine
|> angledLine(angle = legAngY(segLen(seg01), myVar), lengthX = min([segLen(seg01), myVar])) // ln-angledLineOfYLength-yRelative use legAngY
|> angledLine(angle = 270 + legAngY(segLen(seg01), myVar), lengthX = min([segLen(seg01), myVar])) // ln-angledLineOfYLength-yRelative with angle > 90 use binExp
|> angledLine(angle = legAngY(hypotenuse = segLen(seg01), leg = myVar), lengthX = min([segLen(seg01), myVar])) // ln-angledLineOfYLength-yRelative use legAngY
|> angledLine(angle = 270 + legAngY(hypotenuse = segLen(seg01), leg = myVar), lengthX = min([segLen(seg01), myVar])) // ln-angledLineOfYLength-yRelative with angle > 90 use binExp
|> xLine(length = segLen(seg01)) // ln-xLine-free should sub in segLen
|> yLine(length = segLen(seg01)) // ln-yLine-free should sub in segLen
|> xLine(length = segLen(seg01)) // ln-xLineTo-free should convert to xLine

View File

@ -6,6 +6,8 @@ import {
ARG_END,
ARG_END_ABSOLUTE,
ARG_END_ABSOLUTE_X,
ARG_LEG,
ARG_HYPOTENUSE,
ARG_END_ABSOLUTE_Y,
ARG_INTERSECT_TAG,
ARG_LENGTH,
@ -473,9 +475,9 @@ const getMinAndSegAngVals = (
createArrayExpression([createSegLen(referenceSegName), varVal]),
[]
)
const legAngle = createCallExpression(fnName, [
createSegLen(referenceSegName),
varVal,
const legAngle = createCallExpressionStdLibKw(fnName, null, [
createLabeledArg(ARG_HYPOTENUSE, createSegLen(referenceSegName)),
createLabeledArg(ARG_LEG, varVal),
])
return [minVal, legAngle]
}
@ -2177,26 +2179,38 @@ export function transformAstSketchLines({
}
function createSegLen(referenceSegName: string): BinaryPart {
return createCallExpression('segLen', [createLocalName(referenceSegName)])
return createCallExpressionStdLibKw(
'segLen',
createLocalName(referenceSegName),
[]
)
}
function createSegAngle(referenceSegName: string): BinaryPart {
return createCallExpression('segAng', [createLocalName(referenceSegName)])
return createCallExpressionStdLibKw(
'segAng',
createLocalName(referenceSegName),
[]
)
}
function createSegEnd(
referenceSegName: string,
isX: boolean
): Node<CallExpression> {
return createCallExpression(isX ? 'segEndX' : 'segEndY', [
): Node<CallExpressionKw> {
return createCallExpressionStdLibKw(
isX ? 'segEndX' : 'segEndY',
createLocalName(referenceSegName),
])
[]
)
}
function createLastSeg(isX: boolean): Node<CallExpression> {
return createCallExpression(isX ? 'lastSegX' : 'lastSegY', [
function createLastSeg(isX: boolean): Node<CallExpressionKw> {
return createCallExpressionStdLibKw(
isX ? 'lastSegX' : 'lastSegY',
createPipeSubstitution(),
])
[]
)
}
export type ConstraintLevel = 'free' | 'partial' | 'full'