* Add clock

* update minute hand params

* Update kcl-samples simulation test output

* Update kcl-samples simulation test output

* Update kcl-samples simulation test output

* Update kcl-samples simulation test output

* add better parameterization

* Update kcl-samples simulation test output

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Josh Gomez
2025-05-27 16:08:15 -07:00
committed by GitHub
parent 067e193780
commit 889c72ec60
18 changed files with 44333 additions and 837 deletions

View File

@ -39,6 +39,8 @@ When you submit a PR to add or modify KCL samples, images will be generated and
[![brake-rotor](screenshots/brake-rotor.png)](brake-rotor/main.kcl)
#### [car-wheel-assembly](car-wheel-assembly/main.kcl) ([screenshot](screenshots/car-wheel-assembly.png))
[![car-wheel-assembly](screenshots/car-wheel-assembly.png)](car-wheel-assembly/main.kcl)
#### [clock](clock/main.kcl) ([screenshot](screenshots/clock.png))
[![clock](screenshots/clock.png)](clock/main.kcl)
#### [cold-plate](cold-plate/main.kcl) ([screenshot](screenshots/cold-plate.png))
[![cold-plate](screenshots/cold-plate.png)](cold-plate/main.kcl)
#### [color-cube](color-cube/main.kcl) ([screenshot](screenshots/color-cube.png))

View File

@ -0,0 +1,441 @@
// Clock
// A clock with roman numerals
// Define parameters
clockDiameter = 500
clockThickness = 50
minuteHandLength = 100
nubDiameter = 30
numHeight = 10
minuteHandWidth = 25
hourHandWidth = 25
hourHandLargeDiameter = 230
minuteHandLargeDiameter = 310
filletRadius = 5
ridgeThickness = 10
numberThickness = 10
// Calculated parameters
ridgeDiameter = clockDiameter - 50
hourHandArmLength = clockDiameter / 2 * .25
minuteHandArmLength = clockDiameter / 2 * .40
// Add assert for clockDiameter
assert(clockDiameter, isGreaterThan = 450, error = "clock diameter needs to be greater than 400")
// What time is it?
hour = 9
minute = 29
// Calculate hand angles
hourHandAngle = 90 - (hour * 30)
minuteHandAngle = 90 - (minute * 6)
// Create the clock body
clockBodySketch = startSketchOn(XY)
profile001 = circle(
clockBodySketch,
center = [0, 0],
diameter = clockDiameter,
tag = $seg02,
)
clockBody = extrude(profile001, length = clockThickness, tagStart = $capStart001)
|> fillet(
radius = filletRadius,
tags = [
getCommonEdge(faces = [seg02, capStart001])
],
)
// Create the ridge on the top face of the body
clockRidgeSketch = startSketchOn(clockBody, face = END)
profile002 = circle(
clockRidgeSketch,
center = [0, 0],
diameter = clockDiameter,
tag = $seg01,
)
profile003 = circle(clockRidgeSketch, center = [0, 0], diameter = ridgeDiameter)
subtract2d(profile002, tool = profile003)
clockRidge = extrude(profile002, length = ridgeThickness, tagEnd = $capEnd001)
|> fillet(
radius = filletRadius,
tags = [
getCommonEdge(faces = [seg01, capEnd001])
],
)
|> appearance(%, color = "#ab4321")
// Create an object that has all of the x and y starting positions of every number
numberObject = {
// one = { i = [90, 160] },
one = {
i = [
clockDiameter / 2 * 3 / 4 * cos(60),
clockDiameter / 2 * 3 / 4 * sin(60)
]
},
two = {
i = [
clockDiameter / 2 * 3 / 4 * cos(30) - 10,
clockDiameter / 2 * 3 / 4 * sin(30)
],
i2 = [
clockDiameter / 2 * 3 / 4 * cos(30) + 5,
clockDiameter / 2 * 3 / 4 * sin(30)
]
},
three = {
i = [
clockDiameter / 2 * 3 / 4 * cos(0) - 15,
clockDiameter / 2 * 3 / 4 * sin(0)
],
i2 = [
clockDiameter / 2 * 3 / 4 * cos(0),
clockDiameter / 2 * 3 / 4 * sin(0)
],
i3 = [
clockDiameter / 2 * 3 / 4 * cos(0) + 15,
clockDiameter / 2 * 3 / 4 * sin(0)
]
},
four = {
i = [
clockDiameter / 2 * 3 / 4 * cos(-30) - 10,
clockDiameter / 2 * 3 / 4 * sin(-30)
],
v = [
clockDiameter / 2 * 3 / 4 * cos(-30) + 13,
clockDiameter / 2 * 3 / 4 * sin(-30)
]
},
five = {
v = [
clockDiameter / 2 * 3 / 4 * cos(-60),
clockDiameter / 2 * 3 / 4 * sin(-60)
]
},
six = {
v = [
clockDiameter / 2 * 3 / 4 * cos(-90) - 10,
clockDiameter / 2 * 3 / 4 * sin(-90)
],
i = [
clockDiameter / 2 * 3 / 4 * cos(-90) + 12,
clockDiameter / 2 * 3 / 4 * sin(-90)
]
},
seven = {
v = [
clockDiameter / 2 * 3 / 4 * cos(-120) - 15,
clockDiameter / 2 * 3 / 4 * sin(-120)
],
i = [
clockDiameter / 2 * 3 / 4 * cos(-120) + 5,
clockDiameter / 2 * 3 / 4 * sin(-120)
],
i2 = [
clockDiameter / 2 * 3 / 4 * cos(-120) + 20,
clockDiameter / 2 * 3 / 4 * sin(-120)
]
},
eight = {
v = [
clockDiameter / 2 * 3 / 4 * cos(-150) - 10,
clockDiameter / 2 * 3 / 4 * sin(-150)
],
i = [
clockDiameter / 2 * 3 / 4 * cos(-150) + 10,
clockDiameter / 2 * 3 / 4 * sin(-150)
],
i2 = [
clockDiameter / 2 * 3 / 4 * cos(-150) + 25,
clockDiameter / 2 * 3 / 4 * sin(-150)
],
i3 = [
clockDiameter / 2 * 3 / 4 * cos(-150) + 40,
clockDiameter / 2 * 3 / 4 * sin(-150)
]
},
nine = {
i = [
clockDiameter / 2 * 3 / 4 * cos(180) - 15,
clockDiameter / 2 * 3 / 4 * sin(180)
],
x = [
clockDiameter / 2 * 3 / 4 * cos(180) + 15,
clockDiameter / 2 * 3 / 4 * sin(180)
]
},
ten = {
x = [
clockDiameter / 2 * 3 / 4 * cos(150) + 5,
clockDiameter / 2 * 3 / 4 * sin(150)
]
},
eleven = {
x = [
clockDiameter / 2 * 3 / 4 * cos(120),
clockDiameter / 2 * 3 / 4 * sin(120)
],
i = [
clockDiameter / 2 * 3 / 4 * cos(120) + 10,
clockDiameter / 2 * 3 / 4 * sin(120)
]
},
twelve = {
x = [
clockDiameter / 2 * 3 / 4 * cos(90) - 10,
clockDiameter / 2 * 3 / 4 * sin(90)
],
i = [
clockDiameter / 2 * 3 / 4 * cos(90) + 5,
clockDiameter / 2 * 3 / 4 * sin(90)
],
i2 = [
clockDiameter / 2 * 3 / 4 * cos(90) + 20,
clockDiameter / 2 * 3 / 4 * sin(90)
]
}
}
// Function for the letter I
fn letterI(startX, startY) {
iWidth = 8
iLength = 40
return startSketchOn(offsetPlane(XY, offset = 50))
|> startProfile(
%,
at = [
startX - (iWidth / 2),
startY + iLength / 2
],
)
|> xLine(%, length = iWidth)
|> yLine(%, length = -iLength)
|> xLine(%, length = -iWidth)
|> close(%)
|> extrude(%, length = numberThickness)
|> appearance(%, color = "#140f0f")
}
// Function for the letter X
fn letterX(startX, startY) {
xWidth = 40
xLength = 40
return startSketchOn(offsetPlane(XY, offset = 50))
|> startProfile(
%,
at = [
startX - (xWidth / 2),
startY + xLength / 2
],
)
|> xLine(%, length = xWidth / 6)
|> angledLine(%, angle = -70, lengthY = xLength * 1 / 3)
|> angledLine(%, angle = 70, lengthY = xLength * 1 / 3)
|> xLine(%, length = xWidth / 6)
|> angledLine(%, angle = 70 + 180, lengthY = xLength * 1 / 2)
|> angledLine(%, angle = -70, lengthY = xLength * 1 / 2)
|> xLine(%, length = -xWidth / 6)
|> angledLine(%, angle = -70 - 180, lengthY = xLength * 1 / 3)
|> angledLine(%, angle = 70 + 180, lengthY = xLength * 1 / 3)
|> xLine(%, length = -xWidth / 6)
|> angledLine(%, angle = 70, lengthY = xLength * 1 / 2)
|> close(%)
|> extrude(%, length = numberThickness)
|> appearance(%, color = "#140f0f")
}
// Function for the letter V
fn letterV(startX, startY) {
vWidth = 25
vLength = 40
return startSketchOn(offsetPlane(XY, offset = 50))
|> startProfile(
%,
at = [
startX - (vWidth / 2),
startY + vLength / 2
],
)
|> xLine(%, length = vWidth * 1 / 3)
|> line(%, end = [vWidth / 6, -vLength / 2])
|> line(%, end = [vWidth / 6, vLength / 2])
|> xLine(%, length = vWidth * 1 / 3)
|> line(%, end = [-vWidth * 1 / 2, -vLength])
|> close(%)
|> extrude(%, length = numberThickness)
|> appearance(%, color = "#140f0f")
}
// Create the numbers on the face of the clock
// 1 //
letterI(startX = numberObject.one.i[0], startY = numberObject.one.i[1])
// 2 //
letterI(startX = numberObject.two.i[0], startY = numberObject.two.i[1])
letterI(startX = numberObject.two.i2[0], startY = numberObject.two.i2[1])
// 3 //
letterI(startX = numberObject.three.i[0], startY = numberObject.three.i[1])
letterI(startX = numberObject.three.i2[0], startY = numberObject.three.i2[1])
letterI(startX = numberObject.three.i3[0], startY = numberObject.three.i3[1])
// 4 //
letterI(startX = numberObject.four.i[0], startY = numberObject.four.i[1])
letterV(startX = numberObject.four.v[0], startY = numberObject.four.v[1])
// 5 //
letterV(startX = numberObject.five.v[0], startY = numberObject.five.v[1])
// 6 //
letterV(startX = numberObject.six.v[0], startY = numberObject.six.v[1])
letterI(startX = numberObject.six.i[0], startY = numberObject.six.i[1])
// 7 //
letterV(startX = numberObject.seven.v[0], startY = numberObject.seven.v[1])
letterI(startX = numberObject.seven.i[0], startY = numberObject.seven.i[1])
letterI(startX = numberObject.seven.i2[0], startY = numberObject.seven.i2[1])
// 8 //
letterV(startX = numberObject.eight.v[0], startY = numberObject.eight.v[1])
letterI(startX = numberObject.eight.i[0], startY = numberObject.eight.i[1])
letterI(startX = numberObject.eight.i2[0], startY = numberObject.eight.i2[1])
letterI(startX = numberObject.eight.i3[0], startY = numberObject.eight.i3[1])
// 9 //
letterI(startX = numberObject.nine.i[0], startY = numberObject.nine.i[1])
letterX(startX = numberObject.nine.x[0], startY = numberObject.nine.x[1])
// 10 //
letterX(startX = numberObject.ten.x[0], startY = numberObject.ten.x[1])
// 11 //
letterX(startX = numberObject.eleven.x[0], startY = numberObject.eleven.x[1])
letterI(startX = numberObject.eleven.i[0], startY = numberObject.eleven.i[1])
// 12 //
letterX(startX = numberObject.twelve.x[0], startY = numberObject.twelve.x[1])
letterI(startX = numberObject.twelve.i[0], startY = numberObject.twelve.i[1])
letterI(startX = numberObject.twelve.i2[0], startY = numberObject.twelve.i2[1])
// Create nub for the minute and hour hands
startSketchOn(clockBody, face = END)
|> circle(center = [0, 0], diameter = nubDiameter)
|> extrude(%, length = numHeight)
// Create the hour hand
sketch005 = startSketchOn(offsetPlane(XY, offset = 55))
profile007 = startProfile(
sketch005,
at = [
nubDiameter / 2 * 1.375 * cos(hourHandAngle + 20),
nubDiameter / 2 * 1.375 * sin(hourHandAngle + 20)
],
)
|> arc(
%,
interiorAbsolute = [
nubDiameter / 2 * 1.375 * cos(hourHandAngle + 180),
nubDiameter / 2 * 1.375 * sin(hourHandAngle + 180)
],
endAbsolute = [
nubDiameter / 2 * 1.375 * cos(hourHandAngle + 340),
nubDiameter / 2 * 1.375 * sin(hourHandAngle + 340)
],
)
|> angledLine(%, angle = hourHandAngle, length = hourHandArmLength)
|> angledLine(
%,
angle = hourHandAngle - 90,
length = hourHandWidth / 2,
tag = $seg004,
)
|> line(
%,
endAbsolute = [
hourHandLargeDiameter / 2 * cos(hourHandAngle),
hourHandLargeDiameter / 2 * sin(hourHandAngle)
],
tag = $seg002,
)
|> angledLine(%, angle = segAng(seg002) + 120, length = segLen(seg002))
// |> angledLineThatIntersects(%, angle = segAng(seg002) + hourHandAngle - 90, intersectTag = seg004)
|> angledLine(%, angle = hourHandAngle - 90, length = segLen(seg004))
|> line(%, endAbsolute = [profileStartX(%), profileStartY(%)])
|> close(%)
profile008 = circle(sketch005, center = [0, 0], diameter = nubDiameter)
subtract2d(profile007, tool = profile008)
|> extrude(%, length = 5)
|> appearance(%, color = "#404040")
// create the minute hand
sketch006 = startSketchOn(offsetPlane(XY, offset = 50))
profile009 = startProfile(
sketch006,
at = [
nubDiameter / 2 * 1.375 * cos(minuteHandAngle + 20),
nubDiameter / 2 * 1.375 * sin(minuteHandAngle + 20)
],
)
|> arc(
%,
interiorAbsolute = [
nubDiameter / 2 * 1.375 * cos(minuteHandAngle + 180),
nubDiameter / 2 * 1.375 * sin(minuteHandAngle + 180)
],
endAbsolute = [
nubDiameter / 2 * 1.375 * cos(minuteHandAngle + 340),
nubDiameter / 2 * 1.375 * sin(minuteHandAngle + 340)
],
)
|> angledLine(%, angle = minuteHandAngle, length = minuteHandArmLength)
|> angledLine(
%,
angle = minuteHandAngle - 90,
length = minuteHandWidth / 2,
tag = $seg003,
)
|> line(
%,
endAbsolute = [
minuteHandLargeDiameter / 2 * cos(minuteHandAngle),
minuteHandLargeDiameter / 2 * sin(minuteHandAngle)
],
tag = $seg005,
)
|> angledLine(%, angle = segAng(seg005) + 120, length = segLen(seg005))
|> angledLine(%, angle = minuteHandAngle - 90, length = segLen(seg003))
|> line(%, endAbsolute = [profileStartX(%), profileStartY(%)])
|> close(%)
profile010 = circle(sketch006, center = [0, 0], diameter = 30)
subtract2d(profile009, tool = profile010)
|> extrude(%, length = 5)
|> appearance(%, color = "#404040")
// Define parameters of the screw slot for hanging the clock
screwHeadDiameter = 9.53
screwTolerance = .5
slotWidth = (screwHeadDiameter + screwTolerance) / 2
slotLength = 40
// Create the screw slot
sketch003 = startSketchOn(clockBody, face = START)
profile004 = startProfile(sketch003, at = [-slotWidth / 2, 200])
|> yLine(length = -slotLength)
|> arc(
%,
radius = screwHeadDiameter / 2 + screwTolerance,
angleStart = 120,
angleEnd = 420,
)
|> yLine(%, length = slotLength)
|> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> extrude(%, length = -20)
// todo: create cavity for the screw to slide into (need csg update)

View File

@ -90,6 +90,16 @@
"parameters.kcl"
]
},
{
"file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "clock/main.kcl",
"multipleFiles": false,
"title": "Clock",
"description": "A clock with roman numerals",
"files": [
"main.kcl"
]
},
{
"file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "cold-plate/main.kcl",

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -652,19 +652,19 @@ flowchart LR
84 --- 144
84 --- 237
86 --- 168
86 x--> 188
86 x--> 189
86 --- 212
86 --- 256
88 --- 169
88 x--> 188
88 x--> 189
88 --- 213
88 --- 257
90 --- 167
90 x--> 188
90 x--> 189
90 --- 214
90 --- 258
92 --- 170
92 x--> 188
92 x--> 189
92 --- 215
92 --- 259
119 --- 133
@ -946,10 +946,10 @@ flowchart LR
218 <--x 186
219 <--x 186
194 <--x 187
212 <--x 189
213 <--x 189
214 <--x 189
215 <--x 189
212 <--x 188
213 <--x 188
214 <--x 188
215 <--x 188
220 <--x 268
223 <--x 267
```

View File

@ -87,24 +87,24 @@ flowchart LR
27 --- 4
8 --- 20
8 x--> 25
8 --- 33
8 --- 39
8 --- 29
8 --- 35
9 --- 21
9 x--> 25
9 --- 31
9 --- 37
9 --- 33
9 --- 39
10 --- 22
10 x--> 25
10 --- 32
10 --- 38
10 --- 30
10 --- 36
11 --- 23
11 x--> 25
11 --- 30
11 --- 36
11 --- 31
11 --- 37
12 --- 24
12 x--> 25
12 --- 29
12 --- 35
12 --- 32
12 --- 38
14 --- 19
14 x--> 27
14 --- 28
@ -132,21 +132,21 @@ flowchart LR
18 --- 34
19 --- 28
19 --- 34
20 --- 33
35 <--x 20
20 --- 39
21 --- 31
21 --- 37
38 <--x 21
22 --- 32
22 --- 38
39 <--x 22
23 --- 30
23 --- 36
37 <--x 23
24 --- 29
24 --- 35
36 <--x 24
20 --- 29
20 --- 35
36 <--x 20
21 --- 33
35 <--x 21
21 --- 39
22 --- 30
22 --- 36
37 <--x 22
23 --- 31
23 --- 37
38 <--x 23
24 --- 32
24 --- 38
39 <--x 24
28 <--x 26
29 <--x 27
30 <--x 27

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Artifact graph flowchart clock.kcl
extension: md
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -366,114 +366,114 @@ flowchart LR
11 ---- 74
26 --- 75
26 x--> 108
26 --- 131
26 --- 163
26 --- 138
26 --- 170
27 --- 76
27 x--> 108
27 --- 132
27 --- 164
27 --- 124
27 --- 156
28 --- 77
28 x--> 108
28 --- 116
28 --- 148
28 --- 137
28 --- 169
29 --- 78
29 x--> 108
29 --- 134
29 --- 166
29 --- 133
29 --- 165
30 --- 79
30 x--> 108
30 --- 120
30 --- 152
30 --- 116
30 --- 148
31 --- 80
31 x--> 108
31 --- 136
31 --- 168
31 --- 115
31 --- 147
32 --- 81
32 x--> 108
32 --- 123
32 --- 155
32 --- 118
32 --- 150
33 --- 82
33 x--> 108
33 --- 129
33 --- 161
33 --- 134
33 --- 166
34 --- 83
34 x--> 108
34 --- 114
34 --- 146
34 --- 129
34 --- 161
35 --- 84
35 x--> 108
35 --- 117
35 --- 149
35 --- 127
35 --- 159
36 --- 85
36 x--> 108
36 --- 115
36 --- 147
36 --- 132
36 --- 164
37 --- 86
37 x--> 108
37 --- 126
37 --- 158
37 --- 122
37 --- 154
38 --- 87
38 x--> 108
38 --- 130
38 --- 162
38 --- 123
38 --- 155
39 --- 88
39 x--> 108
39 --- 122
39 --- 154
39 --- 131
39 --- 163
40 --- 89
40 x--> 108
40 --- 127
40 --- 159
40 --- 119
40 --- 151
41 --- 90
41 x--> 108
41 --- 125
41 --- 157
41 --- 130
41 --- 162
42 --- 91
42 x--> 108
42 --- 135
42 --- 167
42 --- 114
42 --- 146
43 --- 92
43 x--> 108
43 --- 119
43 --- 151
43 --- 125
43 --- 157
44 --- 93
44 x--> 108
44 --- 118
44 --- 150
44 --- 121
44 --- 153
45 --- 94
45 x--> 108
45 --- 121
45 --- 153
45 --- 135
45 --- 167
46 --- 95
46 x--> 108
46 --- 138
46 --- 170
46 --- 120
46 --- 152
47 --- 96
47 x--> 108
47 --- 128
47 --- 160
47 --- 126
47 --- 158
48 --- 97
48 x--> 108
48 --- 133
48 --- 165
48 --- 117
48 --- 149
49 --- 98
49 x--> 108
49 --- 137
49 --- 169
49 --- 113
49 --- 145
50 --- 99
50 x--> 108
50 --- 139
50 --- 171
50 --- 136
50 --- 168
51 --- 100
51 x--> 108
51 --- 124
51 --- 156
51 --- 128
51 --- 160
52 --- 101
52 x--> 108
52 --- 113
52 --- 145
52 --- 139
52 --- 171
61 --- 102
61 x--> 110
61 x--> 109
61 --- 140
61 --- 172
63 --- 103
@ -594,87 +594,87 @@ flowchart LR
74 --- 174
74 --- 175
74 --- 176
75 --- 131
75 --- 163
164 <--x 75
76 --- 132
76 --- 164
165 <--x 76
77 --- 116
77 --- 148
149 <--x 77
78 --- 134
78 --- 166
167 <--x 78
79 --- 120
79 --- 152
153 <--x 79
80 --- 136
80 --- 168
169 <--x 80
81 --- 123
81 --- 155
156 <--x 81
82 --- 129
82 --- 161
162 <--x 82
83 --- 114
83 --- 146
147 <--x 83
84 --- 117
84 --- 149
150 <--x 84
85 --- 115
85 --- 147
148 <--x 85
86 --- 126
86 --- 158
159 <--x 86
87 --- 130
87 --- 162
163 <--x 87
88 --- 122
88 --- 154
155 <--x 88
89 --- 127
89 --- 159
160 <--x 89
90 --- 125
90 --- 157
158 <--x 90
91 --- 135
91 --- 167
168 <--x 91
92 --- 119
92 --- 151
152 <--x 92
93 --- 118
93 --- 150
151 <--x 93
94 --- 121
94 --- 153
154 <--x 94
95 --- 138
95 --- 170
171 <--x 95
96 --- 128
96 --- 160
161 <--x 96
97 --- 133
97 --- 165
166 <--x 97
98 --- 137
98 --- 169
170 <--x 98
99 --- 139
145 <--x 99
99 --- 171
100 --- 124
100 --- 156
157 <--x 100
101 --- 113
101 --- 145
146 <--x 101
75 --- 138
75 --- 170
171 <--x 75
76 --- 124
76 --- 156
157 <--x 76
77 --- 137
77 --- 169
170 <--x 77
78 --- 133
78 --- 165
166 <--x 78
79 --- 116
79 --- 148
149 <--x 79
80 --- 115
80 --- 147
148 <--x 80
81 --- 118
81 --- 150
151 <--x 81
82 --- 134
82 --- 166
167 <--x 82
83 --- 129
83 --- 161
162 <--x 83
84 --- 127
84 --- 159
160 <--x 84
85 --- 132
85 --- 164
165 <--x 85
86 --- 122
86 --- 154
155 <--x 86
87 --- 123
87 --- 155
156 <--x 87
88 --- 131
88 --- 163
164 <--x 88
89 --- 119
89 --- 151
152 <--x 89
90 --- 130
90 --- 162
163 <--x 90
91 --- 114
91 --- 146
147 <--x 91
92 --- 125
92 --- 157
158 <--x 92
93 --- 121
93 --- 153
154 <--x 93
94 --- 135
94 --- 167
168 <--x 94
95 --- 120
95 --- 152
153 <--x 95
96 --- 126
96 --- 158
159 <--x 96
97 --- 117
97 --- 149
150 <--x 97
98 --- 113
98 --- 145
146 <--x 98
99 --- 136
99 --- 168
169 <--x 99
100 --- 128
100 --- 160
161 <--x 100
101 --- 139
145 <--x 101
101 --- 171
102 --- 140
102 --- 172
103 --- 144
@ -689,7 +689,7 @@ flowchart LR
106 --- 141
106 --- 173
174 <--x 106
140 <--x 109
140 <--x 110
141 <--x 111
142 <--x 111
143 <--x 111

View File

@ -582,48 +582,48 @@ flowchart LR
46 --- 226
72 --- 112
72 x--> 151
72 --- 164
72 --- 198
72 --- 169
72 --- 203
73 --- 113
73 x--> 151
73 --- 168
73 --- 202
73 --- 166
73 --- 200
74 --- 114
74 x--> 151
74 --- 161
74 --- 195
74 --- 160
74 --- 194
75 --- 115
75 x--> 151
75 --- 163
75 --- 197
75 --- 168
75 --- 202
76 --- 116
76 x--> 151
76 --- 170
76 --- 204
77 --- 117
77 x--> 151
77 --- 167
77 --- 201
77 --- 162
77 --- 196
78 --- 118
78 x--> 151
78 --- 162
78 --- 196
78 --- 161
78 --- 195
79 --- 119
79 x--> 151
79 --- 160
79 --- 194
79 --- 165
79 --- 199
80 --- 120
80 x--> 151
80 --- 169
80 --- 203
80 --- 163
80 --- 197
81 --- 121
81 x--> 151
81 --- 166
81 --- 200
81 --- 167
81 --- 201
82 --- 122
82 x--> 151
82 --- 165
82 --- 199
82 --- 164
82 --- 198
84 --- 123
84 x--> 145
84 --- 171
@ -756,39 +756,39 @@ flowchart LR
109 --- 107
111 --- 159
111 --- 193
112 --- 164
112 --- 198
199 <--x 112
113 --- 168
113 --- 202
203 <--x 113
114 --- 161
114 --- 195
196 <--x 114
115 --- 163
115 --- 197
198 <--x 115
112 --- 169
112 --- 203
204 <--x 112
113 --- 166
113 --- 200
201 <--x 113
114 --- 160
114 --- 194
195 <--x 114
115 --- 168
115 --- 202
203 <--x 115
116 --- 170
194 <--x 116
116 --- 204
117 --- 167
117 --- 201
202 <--x 117
118 --- 162
118 --- 196
197 <--x 118
119 --- 160
119 --- 194
195 <--x 119
120 --- 169
120 --- 203
204 <--x 120
121 --- 166
121 --- 200
201 <--x 121
122 --- 165
122 --- 199
200 <--x 122
117 --- 162
117 --- 196
197 <--x 117
118 --- 161
118 --- 195
196 <--x 118
119 --- 165
119 --- 199
200 <--x 119
120 --- 163
120 --- 197
198 <--x 120
121 --- 167
121 --- 201
202 <--x 121
122 --- 164
122 --- 198
199 <--x 122
123 --- 171
123 --- 205
124 --- 186

View File

@ -177,72 +177,72 @@ flowchart LR
2 ---- 34
17 --- 35
17 x--> 52
17 --- 58
17 --- 75
17 --- 61
17 --- 78
18 --- 36
18 x--> 52
18 --- 63
18 --- 80
18 --- 55
18 --- 72
19 --- 37
19 x--> 52
19 --- 67
19 --- 84
19 --- 64
19 --- 81
20 --- 38
20 x--> 52
20 --- 65
20 --- 82
20 --- 63
20 --- 80
21 --- 39
21 x--> 52
21 --- 62
21 --- 79
21 --- 58
21 --- 75
22 --- 40
22 x--> 52
22 --- 70
22 --- 87
22 --- 66
22 --- 83
23 --- 41
23 x--> 52
23 --- 59
23 --- 76
23 --- 56
23 --- 73
24 --- 42
24 x--> 52
24 --- 60
24 --- 77
24 --- 68
24 --- 85
25 --- 43
25 x--> 52
25 --- 69
25 --- 86
25 --- 67
25 --- 84
26 --- 44
26 x--> 52
26 --- 55
26 --- 72
26 --- 54
26 --- 71
27 --- 45
27 x--> 52
27 --- 68
27 --- 85
27 --- 69
27 --- 86
28 --- 46
28 x--> 52
28 --- 56
28 --- 73
28 --- 60
28 --- 77
29 --- 47
29 x--> 52
29 --- 57
29 --- 74
30 --- 48
30 x--> 52
30 --- 54
30 --- 71
30 --- 65
30 --- 82
31 --- 49
31 x--> 52
31 --- 64
31 --- 81
31 --- 62
31 --- 79
32 --- 50
32 x--> 52
32 --- 61
32 --- 78
32 --- 70
32 --- 87
33 --- 51
33 x--> 52
33 --- 66
33 --- 83
33 --- 59
33 --- 76
34 --- 35
34 --- 36
34 --- 37
@ -296,57 +296,57 @@ flowchart LR
34 --- 85
34 --- 86
34 --- 87
35 --- 58
74 <--x 35
35 --- 75
36 --- 63
79 <--x 36
36 --- 80
37 --- 67
83 <--x 37
37 --- 84
38 --- 65
81 <--x 38
38 --- 82
39 --- 62
78 <--x 39
39 --- 79
40 --- 70
86 <--x 40
40 --- 87
41 --- 59
75 <--x 41
41 --- 76
42 --- 60
76 <--x 42
42 --- 77
43 --- 69
85 <--x 43
43 --- 86
44 --- 55
71 <--x 44
44 --- 72
45 --- 68
84 <--x 45
45 --- 85
46 --- 56
72 <--x 46
46 --- 73
35 --- 61
77 <--x 35
35 --- 78
36 --- 55
71 <--x 36
36 --- 72
37 --- 64
80 <--x 37
37 --- 81
38 --- 63
79 <--x 38
38 --- 80
39 --- 58
74 <--x 39
39 --- 75
40 --- 66
82 <--x 40
40 --- 83
41 --- 56
72 <--x 41
41 --- 73
42 --- 68
84 <--x 42
42 --- 85
43 --- 67
83 <--x 43
43 --- 84
44 --- 54
44 --- 71
87 <--x 44
45 --- 69
85 <--x 45
45 --- 86
46 --- 60
76 <--x 46
46 --- 77
47 --- 57
73 <--x 47
47 --- 74
48 --- 54
48 --- 71
87 <--x 48
49 --- 64
80 <--x 49
49 --- 81
50 --- 61
77 <--x 50
50 --- 78
51 --- 66
82 <--x 51
51 --- 83
48 --- 65
81 <--x 48
48 --- 82
49 --- 62
78 <--x 49
49 --- 79
50 --- 70
86 <--x 50
50 --- 87
51 --- 59
75 <--x 51
51 --- 76
54 <--x 53
55 <--x 53
56 <--x 53

View File

@ -112,8 +112,8 @@ flowchart LR
8 --- 20
8 ---- 25
12 <--x 32
12 <--x 33
12 --- 34
12 --- 33
12 <--x 34
13 --- 31
13 x--> 35
13 --- 39