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_INTERSECT_TAG = 'intersectTag'
export const ARG_INTERIOR_ABSOLUTE = 'interiorAbsolute' export const ARG_INTERIOR_ABSOLUTE = 'interiorAbsolute'
export const ARG_AT = 'at' 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 = myVar, length = segLen(seg01)) // ln-use segLen for second arg
|> angledLine(angle = 45, length = segLen(seg01)) // ln-segLen again |> angledLine(angle = 45, length = segLen(seg01)) // ln-segLen again
|> angledLine(angle = 54, length = segLen(seg01)) // ln-should be transformed to angledLine |> 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 = legAngX(hypotenuse = segLen(seg01), leg = 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 = 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 = [ |> line(end = [
legLen(hypotenuse = segLen(seg01), leg = myVar), legLen(hypotenuse = segLen(seg01), leg = myVar),
min([segLen(seg01), myVar]) min([segLen(seg01), myVar])
@ -330,8 +330,8 @@ part001 = startSketchOn(XY)
]) // ln-negative legLen yRelative ]) // ln-negative legLen yRelative
|> angledLine(angle = 58, length = segLen(seg01)) // ln-angledLineOfYLength-free should become angledLine |> 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 = 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 = legAngY(hypotenuse = segLen(seg01), leg = 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 = 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 |> xLine(length = segLen(seg01)) // ln-xLine-free should sub in segLen
|> yLine(length = segLen(seg01)) // ln-yLine-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 |> xLine(length = segLen(seg01)) // ln-xLineTo-free should convert to xLine

View File

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