Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
2804ddd
add angle(lines=[..]) support using PointsAtAngle
andrewvarga May 20, 2026
6d47a76
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga May 29, 2026
743349d
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 1, 2026
d670e33
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 2, 2026
028127a
wip rays, sector
andrewvarga Jun 3, 2026
611fe9a
fmt
andrewvarga Jun 3, 2026
56556cf
use 4 sectors and an optional reflex instead of rays
andrewvarga Jun 3, 2026
fe906e6
render overdrawn arc if labelposition doesnt lie on rendered arc
andrewvarga Jun 3, 2026
06c9a1b
fmt
andrewvarga Jun 3, 2026
919ab58
allow dragging angle label position
andrewvarga Jun 3, 2026
5d42c86
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 3, 2026
5a27f3f
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 4, 2026
08e8df4
make dimension tool equipable to add angles
andrewvarga Jun 4, 2026
9f67641
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 4, 2026
5afc61f
make dimension tool active during equipping
andrewvarga Jun 4, 2026
ad21d1f
WIP: 11766 Use existing line endpoints for PointsAtAngle lowering (#1…
andrewvarga Jun 9, 2026
bd35f51
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 10, 2026
18ed9ff
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 10, 2026
1864067
clippy
andrewvarga Jun 11, 2026
da2c742
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 11, 2026
3776850
when equipping dimension tool with line selection, go into sector sel…
andrewvarga Jun 11, 2026
b1b0b2b
show toolbar popup when activating dimension tool with pre-existing l…
andrewvarga Jun 11, 2026
be0749d
update hover during angle constraint placement
andrewvarga Jun 11, 2026
7d7922a
hover/drag updates: drag keeps hovered rendering, angle constraint pl…
andrewvarga Jun 11, 2026
348d372
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 11, 2026
3850509
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 12, 2026
2d199d9
handle async fn calling edge cases
andrewvarga Jun 12, 2026
6aaaf62
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 12, 2026
62aa8f6
add edit_angle_constraint to avoid recreating constraint for draft pr…
andrewvarga Jun 13, 2026
6bbe9db
lint
andrewvarga Jun 13, 2026
2d6ebfc
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 13, 2026
f50ee3c
lint
andrewvarga Jun 14, 2026
abee6c0
rename angle reflex -> inverse, reflex is not accurate at all times a…
andrewvarga Jun 14, 2026
16440e6
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 14, 2026
846ef52
refactor dimensionTool onClick to be more readable
andrewvarga Jun 15, 2026
85a589c
call editAngleConstraint now instead of delete + add in commitDraftAn…
andrewvarga Jun 15, 2026
6a714c0
add support for right hand side 'angle' constraints in EditDistanceLa…
andrewvarga Jun 15, 2026
4911221
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 15, 2026
b0e1c01
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 16, 2026
5487d61
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 17, 2026
8021070
add dedicated toolbarToast for toasts appearing under the toolbar
andrewvarga Jun 17, 2026
22b2914
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 17, 2026
acf949e
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 18, 2026
c79b573
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 20, 2026
8dfd1c7
use new angleDimension() fn name for new angle constraint instead of …
andrewvarga Jun 21, 2026
b3b8b7e
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 23, 2026
853789f
move labelPosition when moving lines
andrewvarga Jun 23, 2026
68a1e48
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 23, 2026
449357d
move math helpers to utils
andrewvarga Jun 23, 2026
df9ff39
clean up math utils functions
andrewvarga Jun 23, 2026
8c0fe6b
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 24, 2026
22d7e60
better branching to avoid impossible error case
andrewvarga Jun 24, 2026
c47f151
math fn updates
andrewvarga Jun 24, 2026
e657848
simplify distance fn
andrewvarga Jun 24, 2026
4b22a85
math refactors
andrewvarga Jun 24, 2026
05e5b0f
inline reverseDirection
andrewvarga Jun 24, 2026
54a436d
remove duplicated line intersection fn
andrewvarga Jun 24, 2026
ed54463
remove nonsensical one liner
andrewvarga Jun 24, 2026
032ebf0
move getAngleDiff to utils2d next to getCCwSweep
andrewvarga Jun 24, 2026
e625846
remove duplicate fn
andrewvarga Jun 24, 2026
c8976f7
revert unintended xstate layout change
andrewvarga Jun 24, 2026
8c55ba1
simplify: remove wedge concept, convert directly to sector from mouse…
andrewvarga Jun 25, 2026
d84cb75
fmt
andrewvarga Jun 25, 2026
89e0867
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 25, 2026
3dc9910
simplify dimensiontool
andrewvarga Jun 25, 2026
8ff6402
fmt
andrewvarga Jun 25, 2026
344c354
more simplifications
andrewvarga Jun 25, 2026
b0795e8
rename
andrewvarga Jun 25, 2026
21b3717
fmt
andrewvarga Jun 25, 2026
a9796da
simplify more
andrewvarga Jun 25, 2026
8b9e280
move getAngleSectorRays close to getBaseAngleSector
andrewvarga Jun 25, 2026
acf7ea7
use bool instead of string for ray dir
andrewvarga Jun 25, 2026
26f0fb9
fmt
andrewvarga Jun 25, 2026
14a02ea
remove duplicated types
andrewvarga Jun 25, 2026
53b1cbc
inline functions
andrewvarga Jun 25, 2026
4678215
clarify mouse move listener in dimenstionTool
andrewvarga Jun 25, 2026
9ebd2e5
selectedClickPoints refactor
andrewvarga Jun 25, 2026
432e0eb
rename selectionClickPoints to selectionCoordinates
andrewvarga Jun 25, 2026
871b3f5
use utils2d function
andrewvarga Jun 25, 2026
e92ab58
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 25, 2026
12e2b76
lint
andrewvarga Jun 25, 2026
a93df6e
revert optional unlabeled arg for angle
andrewvarga Jun 25, 2026
efa4af9
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 26, 2026
94b0b12
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 30, 2026
4569975
remove dead code
andrewvarga Jun 30, 2026
fbe52ee
deprecate angle constraint
andrewvarga Jun 30, 2026
6504732
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jun 30, 2026
9ac6476
missing angleRadius test
andrewvarga Jun 30, 2026
2076f4e
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 1, 2026
e998bc4
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 1, 2026
b20f5b3
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 2, 2026
63e6a6d
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 4, 2026
c10a6d2
generate kcl docs
andrewvarga Jul 4, 2026
7d1f615
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 4, 2026
bb30969
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 7, 2026
4cefe63
update kcl-samples with angleDimension (1 left)
andrewvarga Jul 7, 2026
287dac5
update robot-arm sample to angleDimension
andrewvarga Jul 7, 2026
5a187b9
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 7, 2026
503929a
angleDimension autocomplete
andrewvarga Jul 7, 2026
366494d
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 8, 2026
7d34b24
fmt
andrewvarga Jul 8, 2026
6865796
sector autocomplete should be 1
andrewvarga Jul 8, 2026
cc92e67
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 12, 2026
d50a159
Z007 angle lint
andrewvarga Jul 12, 2026
d0bbe03
Merge branch 'main' into andrewvarga/11766/points-at-angle-Z007lint
andrewvarga Jul 12, 2026
1324bf4
better sector chosen for angleDimension when converting legacy angle()
andrewvarga Jul 12, 2026
67fe322
labelPosition shouldnt have been used for z007
andrewvarga Jul 12, 2026
d521f37
clarifications
andrewvarga Jul 12, 2026
74acd0a
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 14, 2026
bdb8721
fix angleDimension docs example code - region was not valid
andrewvarga Jul 14, 2026
1b14b2f
revert distance implementation to avoid numerical changes in snap tests
andrewvarga Jul 14, 2026
7d7cd69
regenerate snaps
andrewvarga Jul 14, 2026
36f40c8
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 14, 2026
f579295
update doc page
andrewvarga Jul 14, 2026
d382e6c
update angleDimension image and glb
andrewvarga Jul 14, 2026
d0a91ca
fix CI issue
andrewvarga Jul 14, 2026
0e703b6
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 14, 2026
13792e8
fix CI
andrewvarga Jul 14, 2026
911e17c
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 14, 2026
7274733
Merge remote-tracking branch 'origin' into andrewvarga/11766/points-a…
Irev-Dev Jul 15, 2026
393a5f3
Refresh sketch solve lint diagnostics after synced outcomes
Irev-Dev Jul 15, 2026
ba01375
Merge branch 'main' into andrewvarga/11766/points-at-angle
andrewvarga Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions docs/kcl-std/functions/std-solver-angle.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,25 @@ excerpt: "Constrain lines to meet at a given angle."
layout: manual
---

**WARNING:** This function is deprecated as of KCL 2.0.

Constrain lines to meet at a given angle.

```kcl
solver::angle(@input: [Segment; 2])
solver::angle(
@input: [Segment; 2],
labelPosition?: Point2d,
)
```


Deprecated as of KCL 2.0. Use `angleDimension` for new angle constraints.

### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `input` | [[`Segment`](/docs/kcl-std/types/std-types-Segment); 2] | The two line segments whose relative angle should match the value set with `==`. | Yes |
| `labelPosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The desired position of the constraint label. | No |


### Examples
Expand Down
62 changes: 62 additions & 0 deletions docs/kcl-std/functions/std-solver-angleDimension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: "solver::angleDimension"
subtitle: "Function in std::solver"
excerpt: "Constrain a specific angle dimension sector between two lines."
layout: manual
---

Constrain a specific angle dimension sector between two lines.

```kcl
solver::angleDimension(
lines: [Segment; 2],
sector: number(_),
inverse?: bool,
labelPosition?: Point2d,
)
```



### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `lines` | [[`Segment`](/docs/kcl-std/types/std-types-Segment); 2] | The two line segments whose selected angle sector should match the value set with `==`. | Yes |
| `sector` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Which of the four angle sectors to constrain, numbered around the line intersection. | Yes |
| `inverse` | [`bool`](/docs/kcl-std/types/std-types-bool) | Whether to constrain the inverse of the selected sector. | No |
| `labelPosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The desired position of the constraint label. | No |


### Examples

```kcl
profile = sketch(on = XY) {
line1 = line(start = [var 0mm, var 0mm], end = [var 4mm, var 0mm])
line2 = line(start = [var 0mm, var 0mm], end = [var 2mm, var 3.464mm])
line3 = line(start = [var 2mm, var 3.464mm], end = [var 4mm, var 0mm])
coincident([line1.start, line2.start])
coincident([line2.end, line3.start])
coincident([line3.end, line1.end])
angleDimension(lines = [line1, line2], sector = 1) == 60deg
}

solid = extrude(region(point = [2mm, 1mm], sketch = profile), length = 2)

```


<model-viewer
class="kcl-example"
alt="Example showing a rendered KCL program that uses the solver::angleDimension function"
src="/kcl-test-outputs/models/serial_test_example_fn_std-solver-angleDimension0_output.gltf"
ar
environment-image="/moon_1k.hdr"
poster="/kcl-test-outputs/serial_test_example_fn_std-solver-angleDimension0.png"
shadow-intensity="1"
camera-controls
touch-action="pan-y"
>
</model-viewer>


1 change: 1 addition & 0 deletions docs/kcl-std/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ layout: manual
* [`union`](/docs/kcl-std/functions/std-solid-union)
* [**std::solver**](/docs/kcl-std/modules/std-solver)
* [`solver::angle`](/docs/kcl-std/functions/std-solver-angle)
* [`solver::angleDimension`](/docs/kcl-std/functions/std-solver-angleDimension)
* [`solver::arc`](/docs/kcl-std/functions/std-solver-arc)
* [`solver::circle`](/docs/kcl-std/functions/std-solver-circle)
* [`solver::coincident`](/docs/kcl-std/functions/std-solver-coincident)
Expand Down
1 change: 1 addition & 0 deletions docs/kcl-std/modules/std-solver.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ functions, because those are what actually constrain the solved result.

* [`solver::ORIGIN`](/docs/kcl-std/consts/std-solver-ORIGIN)
* [`solver::angle`](/docs/kcl-std/functions/std-solver-angle)
* [`solver::angleDimension`](/docs/kcl-std/functions/std-solver-angleDimension)
* [`solver::arc`](/docs/kcl-std/functions/std-solver-arc)
* [`solver::circle`](/docs/kcl-std/functions/std-solver-circle)
* [`solver::coincident`](/docs/kcl-std/functions/std-solver-coincident)
Expand Down
11 changes: 7 additions & 4 deletions public/kcl-samples/angle-gauge/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,13 @@ gaugeProfileSketch = sketch(on = XY) {
horizontal(cutoutTopEdge)
horizontal(cutoutAngleReferenceEdge)
vertical(cutoutLeftVerticalEdge)
angle([
cutoutAngleReferenceEdge,
cutoutAngledEdge
]) == cutoutAngle
angleDimension(
lines = [
cutoutAngleReferenceEdge,
cutoutAngledEdge
],
sector = 1,
) == cutoutAngle

horizontalDistance([cutoutTopEdge.start, cutoutTopEdge.end]) == cutoutDepth
verticalDistance([
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/artificial-heart/housing.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ sketch007 = sketch(on = XY) {
line2 = line(start = [var 0.48in, var 0.75in], end = [var 0.53in, var 1.23in], construction = true)
coincident([line2.start, arc1.center])
coincident([line2.end, arc2.start])
angle([line2, line1]) == 6
angleDimension(lines = [line2, line1], sector = 1, labelPosition = [0.28in, 1.38in]) == 6
}

// Model the profile of the rear inlet bung, then sweep
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/artificial-heart/impeller.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ sketch003 = sketch(on = offsetPlane(XZ, offset = 0.4)) {
coincident([arc3.center, arc1.center])
tangent([arc1, arc2])
tangent([arc3, arc4])
angle([line2, line3]) == 85
angleDimension(lines = [line2, line3], labelPosition = [0.12in, 0.16in], sector = 3) == 85
distance([line2.start, line2.end]) == 1.4
coincident([line2.start, arc4.center])
}
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/artificial-heart/plumbing.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ sketch002 = sketch(on = XZ) {
coincident([line3.start, line1.start])
horizontal([line3.end, ORIGIN])
horizontal(line3)
angle([line1, line3]) == 45
angleDimension(lines = [line1, line3], sector = 1) == 45
distance([line1.start, line1.end]) == 1.65in
radius(arc1) == 3.2 / 2
circle1 = circle(start = [var 1.18in, var 0.93in], center = [var 0in, var 0in], construction = true)
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/artificial-heart/stator.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ sketch002 = sketch(on = XZ) {
symmetric([line2, line1], axis = line3)
symmetric([arc2, arc1], axis = line3)
tangent([arc3, arc1])
angle([line1, line2]) == 180 - 30
angleDimension(lines = [line1, line2], sector = 2, labelPosition = [0in, 1.16in]) == 30
tangent([arc5, arc6])
verticalDistance([line3.start, arc2.center]) == 1
horizontalDistance([arc1.center, arc2.center]) == .1
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/axial-fan/fan-housing.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ sketch003 = sketch(on = XY) {
coincident([line6.end, line4.start])
equalLength([line5, line6])
verticalDistance([line5.start, line5.end]) == 6
angle([line3, line2]) == 60
angleDimension(lines = [line3, line2], sector = 4, labelPosition = [7.16mm, 24.34mm]) == 120deg
horizontalDistance([line1.start, arc4.center]) == 0.02mm
coincident([arc4.center, line4])
}
Expand Down
4 changes: 2 additions & 2 deletions public/kcl-samples/cycloidal-gear/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ outerProfile = sketch(on = XY) {

vertical(c2ToC1)
vertical(c1ToC6)
angle([baseline, c2ToC3]) == 150deg
angle([baseline, c4ToC5]) == 30deg
angleDimension(lines = [baseline, c2ToC3], sector = 3, labelPosition = [-1.23in, -0.83in]) == 150deg
angleDimension(lines = [baseline, c4ToC5], sector = 1, labelPosition = [-0.22in, 0.19in]) == 30deg
parallel([c2ToC3, c3ToC4])
parallel([c4ToC5, c5ToC6])

Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/field-monitor-stand/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ bodyProfile = sketch(on = YZ) {
distance([line2.start, line2.end]) == plateLength
distance([line3.start, line3.end]) == width
distance([line6.start, line6.end]) == width
angle([line1, line2]) == plateAngle
angleDimension(lines = [line1, line2], sector = 1, labelPosition = [3.15mm, 3.38mm]) == plateAngle
}

bodyRegion = region(segments = [bodyProfile.line1, bodyProfile.line2])
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/m4-insert/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ insertProfileSketch = sketch(on = XY) {
horizontalDistance([midWall.start, centerGuide.end]) == insertGuideDiameter
horizontalDistance([bottomBridge.end, centerGuide.end]) == insertLowerBandDiameter / 2
verticalDistance([innerWall.end, innerWall.start]) == insertOverallHeight
angle([midWall, taperFlank]) == taperAngle
angleDimension(lines = [midWall, taperFlank], sector = 1, labelPosition = [-2.83mm, -6.02mm]) == taperAngle
}

insertProfileRegion = region(point = [-3.1475mm, -1.14mm], sketch = insertProfileSketch)
Expand Down
16 changes: 8 additions & 8 deletions public/kcl-samples/multi-axis-robot/robot-arm-base.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ sketch004 = sketch(on = XY) {
horizontal([line14.end, ORIGIN])
horizontal(line14)
horizontal(line13)
angle([line13, line5]) == 34
angleDimension(lines = [line13, line5], sector = 1) == 34
line15 = line(start = [var 0in, var 0in], end = [var 0in, var 4.46in], construction = true)
coincident([line15.start, line5.start])
vertical([line15.end, ORIGIN])
Expand All @@ -58,13 +58,13 @@ sketch004 = sketch(on = XY) {
vertical([line16.end, ORIGIN])
vertical(line16)
vertical(line15)
angle([line6, line15]) == 34
angle([line15, line7]) == 34
angle([line8, line14]) == 34
angle([line14, line9]) == 34
angle([line10, line16]) == 34
angle([line16, line11]) == 34
angle([line12, line13]) == 34
angleDimension(lines = [line6, line15], sector = 1) == 34
angleDimension(lines = [line15, line7], sector = 1) == 34
angleDimension(lines = [line8, line14], sector = 1) == 34
angleDimension(lines = [line14, line9], sector = 1) == 34
angleDimension(lines = [line10, line16], sector = 1) == 34
angleDimension(lines = [line16, line11], sector = 1) == 34
angleDimension(lines = [line12, line13], sector = 1) == 34
distance([line12.start, line12.end]) == 5.35
circle1 = circle(start = [var 4.54in, var 2.61in], center = [var 4.43in, var 2.99in])
coincident([circle1.center, line5.end])
Expand Down
2 changes: 1 addition & 1 deletion public/kcl-samples/wheel-hub/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ trimProfile = sketch(on = XY) {
startOffsetGuide.end
]) == rotorBore / 2
distance([line1.start, line1.end]) == lugSpacing / 3
angle([startOffsetGuide, line1]) == 10deg
angleDimension(lines = [startOffsetGuide, line1], sector = 1, labelPosition = [2.17in, -0.69in]) == 10deg
distance([line2.start, line2.end]) == hubSpacing * 1.5
}

Expand Down
4 changes: 2 additions & 2 deletions public/kcl-samples/zoo-logo/main.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ logoSketch = sketch(on = XY) {
parallel([o1Guide01, o1Guide02])
equalLength([o1Guide01, o1Guide02])

angle([frameBottom, o1Line01]) == 47deg
angleDimension(lines = [frameBottom, o1Line01], sector = 1, labelPosition = [1.06in, 0.06in]) == 47deg
horizontalDistance([frameLeft.end, o1GuideArc04.center]) == logoHeight * 1.448
verticalDistance([frameLeft.end, o1GuideArc04.center]) == logoHeight * 0.5
radius(o1Arc03) == logoHeight * 0.5
Expand Down Expand Up @@ -269,7 +269,7 @@ logoSketch = sketch(on = XY) {
horizontalDistance([o2Arc04.center, frameRight.start]) == logoHeight * 0.5
verticalDistance([frameRight.start, o2Arc04.center]) == logoHeight * 0.5
distance([o2GuideArc04.end, o2GuideArc04.start]) == logoHeight * 0.1
angle([frameBottom, o2Line03]) == 47deg
angleDimension(lines = [frameBottom, o2Line03], sector = 1, labelPosition = [2.2in, 0.04in]) == 47deg
radius(o2Arc02) == logoHeight * 0.5
radius(o2Arc03) == logoHeight * 0.27

Expand Down
1 change: 1 addition & 0 deletions rust/kcl-derive-docs/src/example_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ pub const TEST_NAMES: &[&str] = &[
"std-solver-parallel-0",
"std-solver-perpendicular-0",
"std-solver-angle-0",
"std-solver-angleDimension-0",
"std-solver-symmetric-0",
"std-solver-tangent-0",
"std-solver-horizontal-0",
Expand Down
8 changes: 7 additions & 1 deletion rust/kcl-lib/src/docs/kcl_doc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,12 @@ impl FnData {
}

pub(super) fn to_autocomplete_snippet(&self) -> String {
if self.name == "loft" {
if self.name == "angleDimension" {
return format!(
"{}(lines = [${{1:line1}}, ${{2:line2}}], sector = ${{3:1}})",
self.preferred_name
);
} else if self.name == "loft" {
return "loft([${0:sketch000}, ${1:sketch001}])".to_owned();
} else if self.name == "union" {
return "union([${0:extrude001}, ${1:extrude002}])".to_owned();
Expand Down Expand Up @@ -1003,6 +1008,7 @@ impl ArgData {
"angleEnd" => "180deg",
"angle" => "180deg",
"arcDegrees" => "360deg",
"sector" => "1",
_ => "10",
};
Some((index, format!(r#"{label}${{{index}:{value}}}"#)))
Expand Down
1 change: 1 addition & 0 deletions rust/kcl-lib/src/execution/cache.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ impl GlobalState {
filenames: self.exec_state.filenames(),
operations: self.exec_state.operations_by_module(),
artifact_graph: self.exec_state.artifacts.graph,
refactor_metadata: self.exec_state.root_module_artifacts.refactor_metadata,
scene_objects: self.exec_state.root_module_artifacts.scene_objects,
source_range_to_object: self.exec_state.root_module_artifacts.source_range_to_object,
var_solutions: self.exec_state.root_module_artifacts.var_solutions,
Expand Down
Loading
Loading