Merge branch 'main' into pierremtb/issue5301-Expose-the-sectional-argument-in-the-Sweep-command-flow

This commit is contained in:
Pierre Jacquier
2025-03-20 07:39:59 -04:00
381 changed files with 120272 additions and 21322 deletions

View File

@ -100,9 +100,14 @@ jobs:
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
cd rust pushd rust
just overwrite-sim-test kcl_samples just overwrite-sim-test kcl_samples
git add kcl-lib/tests popd
git add \
rust/kcl-lib/tests \
public/kcl-samples/manifest.json \
public/kcl-samples/README.md \
public/kcl-samples/screenshots
git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]" git config --local user.name "github-actions[bot]"
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git

View File

@ -184,7 +184,6 @@ example = extrude(exampleSketch, length = 1)
```js ```js
// Color the result of a sweep. // Color the result of a sweep.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)

50
docs/kcl/intersect.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -52,7 +52,6 @@ fn sum(arr):
sumSoFar = add(sumSoFar, i) sumSoFar = add(sumSoFar, i)
return sumSoFar */ return sumSoFar */
// We use `assertEqual` to check that our `sum` function gives the // We use `assertEqual` to check that our `sum` function gives the
// expected result. It's good to check your work! // expected result. It's good to check your work!
assertEqual(sum([1, 2, 3]), 6, 0.00001, "1 + 2 + 3 summed is 6") assertEqual(sum([1, 2, 3]), 6, 0.00001, "1 + 2 + 3 summed is 6")
@ -114,7 +113,6 @@ fn decagon(radius):
fullDecagon = partialDecagon // it's now full fullDecagon = partialDecagon // it's now full
return fullDecagon */ return fullDecagon */
// Use the `decagon` function declared above, to sketch a decagon with radius 5. // Use the `decagon` function declared above, to sketch a decagon with radius 5.
decagon(5.0) decagon(5.0)
|> close() |> close()

View File

@ -57,7 +57,6 @@ rotate(
```js ```js
// Rotate a pipe with roll, pitch, and yaw. // Rotate a pipe with roll, pitch, and yaw.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
@ -83,7 +82,6 @@ sweepSketch = startSketchOn('XY')
```js ```js
// Rotate a pipe about an axis with an angle. // Rotate a pipe about an axis with an angle.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)

View File

@ -37,7 +37,6 @@ scale(
```js ```js
// Scale a pipe. // Scale a pipe.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)

File diff suppressed because it is too large Load Diff

56
docs/kcl/subtract.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -43,7 +43,6 @@ sweep(
```js ```js
// Create a pipe using a sweep. // Create a pipe using a sweep.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)
@ -68,7 +67,6 @@ sweepSketch = startSketchOn('XY')
```js ```js
// Create a spring by sweeping around a helix path. // Create a spring by sweeping around a helix path.
// Create a helix around the Z axis. // Create a helix around the Z axis.
helixPath = helix( helixPath = helix(
angleStart = 0, angleStart = 0,

View File

@ -35,7 +35,6 @@ translate(
```js ```js
// Move a pipe. // Move a pipe.
// Create a path for the sweep. // Create a path for the sweep.
sweepPath = startSketchOn('XZ') sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %) |> startProfileAt([0.05, 0.05], %)

50
docs/kcl/union.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -29,5 +29,5 @@
} }
} }
], ],
"kcl_version": "0.2.51" "kcl_version": "0.2.52"
} }

View File

@ -69,6 +69,8 @@ When you submit a PR to add or modify KCL samples, images and STEP files will be
[![hex-nut](screenshots/hex-nut.png)](hex-nut/main.kcl) [![hex-nut](screenshots/hex-nut.png)](hex-nut/main.kcl)
#### [i-beam](i-beam/main.kcl) ([screenshot](screenshots/i-beam.png)) #### [i-beam](i-beam/main.kcl) ([screenshot](screenshots/i-beam.png))
[![i-beam](screenshots/i-beam.png)](i-beam/main.kcl) [![i-beam](screenshots/i-beam.png)](i-beam/main.kcl)
#### [keyboard](keyboard/main.kcl) ([screenshot](screenshots/keyboard.png))
[![keyboard](screenshots/keyboard.png)](keyboard/main.kcl)
#### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png)) #### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png))
[![kitt](screenshots/kitt.png)](kitt/main.kcl) [![kitt](screenshots/kitt.png)](kitt/main.kcl)
#### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png)) #### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png))

View File

@ -0,0 +1,233 @@
// Zoo Keyboard
// A custom keyboard with Zoo brand lettering
// Set Units
@settings(defaultLengthUnit = in)
// Define constants
baseColor = "#0f0f0f"
highlightColor1 = "#b0b0b0"
highlightColor2 = "#23af93"
keyHeight = 0.8
keyDepth = 0.1
spacing = 0.1
row1 = spacing * 3
row2 = row1 + keyHeight + spacing
row3 = row2 + keyHeight + spacing
row4 = row3 + keyHeight + spacing
row5 = row4 + keyHeight + spacing
row6 = row5 + keyHeight + spacing
// Sketch the side profile of the keyboard base and extrude to total width
sketch001 = startSketchOn('YZ')
|> startProfileAt([0, 0], %)
|> line(end = [-0.14, 0.68], tag = $seg01)
|> angledLine([7, row6 + 3 * spacing + keyHeight], %, $seg02)
|> line(endAbsolute = [5.13, 0], tag = $seg03)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg04)
|> close()
|> extrude(length = 13.6)
|> appearance(color = baseColor)
|> fillet(
radius = .6,
tags = [
getOppositeEdge(seg01),
getOppositeEdge(seg03),
seg01,
seg03
],
)
// Create a short cylindrical foot at each corner of the keyboard
sketch003 = startSketchOn(sketch001, seg04)
profile001 = circle(sketch003, center = [0.75, 0.75], radius = 0.4)
profile003 = circle(sketch003, center = [4.4, 0.75], radius = 0.4)
profile004 = circle(sketch003, center = [0.73, 13.6 - .75], radius = 0.4)
profile005 = circle(sketch003, center = [4.4, 13.6 - .75], radius = 0.4)
extrude(
[
profile001,
profile003,
profile004,
profile005
],
length = .15,
)
// Define the plane to sketch keyboard keys on
plane001 = {
plane = {
origin = [0.0, 0.0, 0.7],
xAxis = [1.0, 0.0, 0.0],
yAxis = [0.0, 1.0, sin(toRadians(7))],
zAxis = [0.0, 0.0, 1.0]
}
}
// Create a function to build a key. Parameterize for position, width, height, number of instances, and appearance color.
fn keyFn(originStart, keyWidth, keyHeight, repeats, color) {
sketch002 = startSketchOn(plane001)
profile002 = startProfileAt([originStart[0], originStart[1]], sketch002)
|> arc({
angleStart = 180,
angleEnd = 270,
radius = 0.1
}, %)
|> angledLine([0, keyWidth - .2], %, $rectangleSegmentA001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|> angledLine([
segAng(rectangleSegmentA001) + 90,
keyHeight - .2
], %, $rectangleSegmentB001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|> angledLine([
segAng(rectangleSegmentA001),
-segLen(rectangleSegmentA001)
], %, $rectangleSegmentC001)
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|> close()
|> extrude(length = keyDepth)
|> appearance(color = color)
// Repeat key when desired. This will default to zero
|> patternLinear3d(
%,
instances = repeats + 1,
distance = keyWidth + spacing,
axis = [1, 0, 0],
)
return sketch001
}
// Build the first row of keys
keyFn([0.3, row1], 1.1, keyHeight, 0, highlightColor2)
keyFn([1.5, row1], 0.8, keyHeight, 2, highlightColor1)
keyFn([spacing * 7 + 3.5, row1], 5.2, keyHeight, 0, highlightColor2)
keyFn([spacing * 8 + 8.7, row1], 0.8, keyHeight, 0, highlightColor1)
keyFn([spacing * 8 + 9.6, row1], 0.8, keyHeight, 0, highlightColor1)
keyFn([spacing * 10 + 10.3, row1], 1.1, keyHeight, 0, highlightColor1)
keyFn([spacing * 12 + 10.3 + 1, row1], 0.8, keyHeight, 0, highlightColor2)
// Build the second row of keys
keyFn([spacing * 3, row2], 1.7, keyHeight, 0, highlightColor2)
keyFn([spacing * 4 + 1.7, row2], 0.8, keyHeight, 9, highlightColor1)
keyFn([spacing * 14 + 1.7 + 0.8 * 10, row2], 2.2, keyHeight, 0, highlightColor2)
// Build the third row of keys
keyFn([spacing * 3, row3], 1.1 + .1, keyHeight, 0, highlightColor1)
keyFn([spacing * 4 + 1.1 + .1, row3], 0.8, keyHeight, 10, highlightColor1)
keyFn([spacing * 3 + 11.1 + .1, row3], 1.4 + .4, keyHeight, 0, highlightColor2)
// Build the fourth row of keys
keyFn([spacing * 3, row4], 0.9, keyHeight, 0, highlightColor1)
keyFn([spacing * 4 + 0.9, row4], 0.8, keyHeight, 11, highlightColor1)
keyFn([spacing * 3 + 11.8, row4], 1.2, keyHeight, 0, highlightColor1)
// Build the fifth row of keys
keyFn([spacing * 3, row5], 0.8, keyHeight, 12, highlightColor1)
keyFn([spacing * 3 + 11.7, row5], 1.3, keyHeight, 0, highlightColor2)
// Build the sixth row of keys
keyFn([spacing * 3, row6], 1.1, keyHeight * .6, 0, highlightColor2)
keyFn([spacing * 4 + 1.1, row6], 0.8, keyHeight * .6, 11, highlightColor1)
keyFn([spacing * 3 + 12, row6], 1, keyHeight * .6, 0, highlightColor2)
// Create a plane to sketch ZOO brand letters on
plane002 = {
plane = {
origin = [0.0, 0.0, .81],
xAxis = [1.0, 0.0, 0.0],
yAxis = [0.0, 1.0, sin(toRadians(7))],
zAxis = [0.0, 0.0, 1.0]
}
}
// Define a function to draw the ZOO 'Z'
fn z(origin, scale, depth) {
z = startSketchOn(plane002)
|> startProfileAt([
0 + origin[0],
0.15 * scale + origin[1]
], %)
|> yLine(length = -0.15 * scale)
|> xLine(length = 0.15 * scale)
|> angledLineToX({
angle = 47.15,
to = 0.3 * scale + origin[0]
}, %, $seg1)
|> yLine(endAbsolute = 0 + origin[1], tag = $seg3)
|> xLine(length = 0.63 * scale)
|> yLine(length = 0.225 * scale)
|> xLine(length = -0.57 * scale)
|> angledLineToX({
angle = 47.15,
to = 0.93 * scale + origin[0]
}, %)
|> yLine(length = 0.15 * scale)
|> xLine(length = -0.15 * scale)
|> angledLine({
angle = 47.15,
length = -segLen(seg1)
}, %, $seg2)
|> yLine(length = segLen(seg3))
|> xLine(endAbsolute = 0 + origin[0])
|> yLine(length = -0.225 * scale)
|> angledLineThatIntersects({
angle = 0,
intersectTag = seg2,
offset = 0
}, %)
|> close()
|> extrude(length = -depth)
|> appearance(color = baseColor)
return z
}
// Define a function to draw the ZOO 'O'
fn o(origin, scale, depth) {
oSketch001 = startSketchOn(plane002)
|> startProfileAt([
.788 * scale + origin[0],
.921 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6,
angleEnd = 47.15 - 6 + 180,
radius = .525 * scale
}, %)
|> angledLine({ angle = 47.15, length = .24 * scale }, %)
|> arc({
angleStart = 47.15 - 11 + 180,
angleEnd = 47.15 + 11,
radius = .288 * scale
}, %)
|> close()
|> extrude(length = -depth)
|> appearance(color = baseColor)
o = startSketchOn(plane002)
|> startProfileAt([
.16 * scale + origin[0],
.079 * scale + origin[1]
], %)
|> arc({
angleStart = 47.15 + 6 - 180,
angleEnd = 47.15 - 6,
radius = .525 * scale
}, %)
|> angledLine({ angle = 47.15, length = -.24 * scale }, %)
|> arc({
angleStart = 47.15 - 11,
angleEnd = 47.15 + 11 - 180,
radius = .288 * scale
}, %)
|> close()
|> extrude(length = -depth)
|> appearance(color = baseColor)
return o
}
// Place the Z logo on the Z key. Place the O logo on the O and P keys
z([2.3, 1.3], .4, 0.03)
o([8.71, row4 + .08], 0.4, 0.03)
o([8.71 + 0.9, row4 + .08], 0.4, 0.03)

View File

@ -160,6 +160,13 @@
"title": "I-beam", "title": "I-beam",
"description": "A structural metal beam with an I shaped cross section. Often used in construction" "description": "A structural metal beam with an I shaped cross section. Often used in construction"
}, },
{
"file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "keyboard/main.kcl",
"multipleFiles": false,
"title": "Zoo Keyboard",
"description": "A custom keyboard with Zoo brand lettering"
},
{ {
"file": "main.kcl", "file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "kitt/main.kcl", "pathFromProjectDirectoryToFirstFile": "kitt/main.kcl",
@ -198,7 +205,7 @@
{ {
"file": "main.kcl", "file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "pipe-flange-assembly/main.kcl", "pathFromProjectDirectoryToFirstFile": "pipe-flange-assembly/main.kcl",
"multipleFiles": false, "multipleFiles": true,
"title": "Pipe and Flange Assembly", "title": "Pipe and Flange Assembly",
"description": "A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint." "description": "A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint."
}, },

View File

@ -0,0 +1,25 @@
// 1120t74 Pipe
// import constants
import pipeInnerDiameter, pipeOuterDiameter, pipeLength from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to make the pipe
export fn pipe() {
// create the pipe base
pipeBase = startSketchOn('XZ')
|> circle(%, center = [0, 0], radius = pipeOuterDiameter / 2)
|> extrude(%, length = pipeLength)
// extrude a hole through the length of the pipe
pipe = startSketchOn(pipeBase, 'end')
|> circle(center = [0, 0], radius = pipeInnerDiameter / 2)
|> extrude(%, length = -pipeLength)
|> appearance(color = "#a24ed0")
return pipe
}
// https://www.mcmaster.com/1120T74/

View File

@ -0,0 +1,46 @@
// 68095k348 flange
// import constants
import pipeDiameter, mountingHoleDiameter, mountingHolePlacementDiameter, flangeDiameter, flangeTotalThickness, flangeBackHeight, flangeFrontHeight, flangeBaseThickness, flangeBackDiameter, flangeFrontDiameter from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to create the flange
export fn flange() {
// sketch the mounting hole pattern
mountingHoles = startSketchOn("XY")
|> circle(%, center = [0, mountingHolePlacementDiameter / 2], radius = mountingHoleDiameter / 2)
|> patternCircular2d(
%,
instances = 4,
center = [0, 0],
arcDegrees = 360,
rotateDuplicates = false,
)
// create the flange base
flangeBase = startSketchOn("XY")
|> circle(%, center = [0, 0], radius = flangeDiameter / 2)
|> hole(mountingHoles, %)
|> extrude(%, length = flangeBaseThickness)
// create both the raised portions on the front and back of the flange base
flangeBack = startSketchOn(flangeBase, 'start')
|> circle(%, center = [0, 0], radius = flangeBackDiameter / 2)
|> extrude(%, length = flangeBackHeight)
flangeFront = startSketchOn(flangeBase, 'end')
|> circle(%, center = [0, 0], radius = flangeFrontDiameter / 2)
|> extrude(%, length = flangeFrontHeight)
// create the circular cut in the center for the pipe
pipeCut = startSketchOn(flangeFront, 'end')
|> circle(%, center = [0, 0], radius = pipeDiameter / 2)
|> extrude(%, length = -flangeTotalThickness)
|> appearance(%, color = "#bab0b0")
return pipeCut
}
// https://www.mcmaster.com/68095K348/

View File

@ -0,0 +1,56 @@
// 91251A404 Socket Head Cap Screw
// import constants
import boltDiameter, boltLength, boltHeadLength, boltHeadDiameter, boltHexDrive, boltHexFlatLength, boltThreadLength from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to make a the bolt
export fn bolt() {
// Create the head of the cap screw
boltHead = startSketchOn('XZ')
|> circle(center = [0, 0], radius = boltHeadDiameter / 2, tag = $topEdge)
|> extrude(length = -boltHeadLength)
|> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)])
// Define the sketch of the hex pattern on the screw head and extrude into the head
hexPatternSketch = startSketchOn(boltHead, 'start')
|> startProfileAt([
boltHexDrive / 2,
boltHexFlatLength / 2
], %)
|> angledLine({
angle = 270,
length = boltHexFlatLength
}, %)
|> angledLine({
angle = 210,
length = boltHexFlatLength
}, %)
|> angledLine({
angle = 150,
length = boltHexFlatLength
}, %)
|> angledLine({
angle = 90,
length = boltHexFlatLength
}, %)
|> angledLine({
angle = 30,
length = boltHexFlatLength
}, %)
|> close()
|> extrude(length = -boltHeadLength * 0.75)
// create the body of the bolt
boltBody = startSketchOn(boltHead, 'end')
|> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge)
|> extrude(length = boltLength)
|> appearance(color = "#4dd043", metalness = 90, roughness = 90)
return boltBody
}
// https://www.mcmaster.com/91251a404/

View File

@ -0,0 +1,26 @@
// 9472K188 Gasket
// import constants
import gasketOutsideDiameter, gasketInnerDiameter, gasketThickness from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to make the gasket
export fn gasket() {
// create the base of the gasket
gasketBase = startSketchOn("XY")
|> circle(%, center = [0, 0], radius = gasketOutsideDiameter / 2)
|> extrude(%, length = gasketThickness)
// extrude a circular hole through the gasket base
gasket = startSketchOn(gasketBase, 'end')
|> circle(%, center = [0, 0], radius = gasketInnerDiameter / 2)
|> extrude(%, length = -gasketThickness)
|> appearance(%, color = "#d0cb3e")
return gasket
}
// https://www.mcmaster.com/9472K616/

View File

@ -0,0 +1,49 @@
// 95479A127 Hex Nut
// import constants
import hexNutDiameter, hexNutFlatToFlat, hexNutThickness, hexNutFlatLength from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to make the hex nut
export fn hexNut() {
// create the base of the hex nut
hexNutBase = startSketchOn('XY')
|> startProfileAt([
hexNutFlatToFlat / 2,
hexNutFlatLength / 2
], %)
|> angledLine({
angle = 270,
length = hexNutFlatLength
}, %)
|> angledLine({
angle = 210,
length = hexNutFlatLength
}, %)
|> angledLine({
angle = 150,
length = hexNutFlatLength
}, %)
|> angledLine({
angle = 90,
length = hexNutFlatLength
}, %)
|> angledLine({
angle = 30,
length = hexNutFlatLength
}, %)
|> close()
|> extrude(length = hexNutThickness)
// create the hole in the center of the hex nut
hexNut = startSketchOn(hexNutBase, 'end')
|> circle(center = [0, 0], radius = hexNutDiameter / 2)
|> extrude(%, length = -hexNutThickness)
|> appearance(%, color = "#4edfd5")
return hexNut
}
// https://www.mcmaster.com/95479A127/

View File

@ -0,0 +1,26 @@
// 98017A257 Washer
// import constants
import washerInnerDia, washerOuterDia, washerThickness from "globals.kcl"
// set units
@settings(defaultLengthUnit = in)
// create a function to make the washer
export fn washer() {
// create the base of the washer
washerBase = startSketchOn('XY')
|> circle(center = [0, 0], radius = washerOuterDia / 2)
|> extrude(length = washerThickness)
// extrude a hole through the washer
washer = startSketchOn(washerBase, 'end')
|> circle(center = [0, 0], radius = washerInnerDia / 2)
|> extrude(%, length = -washerThickness)
|> appearance(%, color = "#ee4f4f")
return washer
}
// https://www.mcmaster.com/98017A257/

View File

@ -0,0 +1,48 @@
// Globals
// set units
@settings(defaultLengthUnit = in)
// flange (68095K348)
export pipeDiameter = 2.440
export mountingHoleDiameter = 0.750
export mountingHolePlacementDiameter = 4.750
export flangeDiameter = 6.0
export flangeTotalThickness = 1.0
export flangeBackHeight = 0.060
export flangeFrontHeight = 0.250
export flangeBaseThickness = flangeTotalThickness - flangeBackHeight - flangeFrontHeight
export flangeBackDiameter = 3.620
export flangeFrontDiameter = 3.060
// washer (98017A257)
export washerInnerDia = 0.640
export washerOuterDia = 1.188
export washerThickness = 0.032
// bolt (91251A404)
export boltDiameter = 0.625
export boltLength = 2.500
export boltHeadLength = boltDiameter
export boltHeadDiameter = 0.938
export boltHexDrive = 1 / 2
export boltHexFlatLength = boltHexDrive / (2 * cos(toRadians(30)))
export boltThreadLength = 1.750
// hex nut (95479A127)
export hexNutDiameter = 5 / 8
export hexNutFlatToFlat = 15 / 16
export hexNutThickness = 35 / 64
export hexNutFlatLength = hexNutFlatToFlat / (2 * cos(toRadians(30)))
// gasket (9472K188)
export gasketOutsideDiameter = 4.125
export gasketInnerDiameter = 2.375
export gasketThickness = 0.031
// pipe (1120T74)
export pipeInnerDiameter = 2.0
export pipeOuterDiameter = 2.375
export pipeLength = 6

View File

@ -1,304 +1,58 @@
// Pipe and Flange Assembly // Pipe and Flange Assembly
// A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint. // A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint.
// set units
// Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in)
// import constants
import * from 'globals.kcl'
// Define constants // import parts
flangeThickness = .125 import flange from '68095k348-flange.kcl'
flangeBaseDia = 2 import gasket from '9472k188-gasket.kcl'
boreHeight = 1 import washer from '98017a257-washer.kcl'
flangePipeDia = 1 import bolt from '91251a404-bolt.kcl'
mountingHoleDia = 0.425 import hexNut from '95479a127-hex-nut.kcl'
screwDia = 0.375 import pipe from '1120t74-pipe.kcl'
tol = 0.010
hexNutScale = 0.90
wallThickness = 0.5
screwLength = 1.125
washerThickness = 0.0625
screwStart = [
0,
flangeThickness + washerThickness,
1.375
]
capRatio = .190 / .313 // Ratio grabbed from another screw
hexRatio = 5 / 32 / .190 // Ratio grabbed from another screw
hexStartingAngle = 210 // first angle of hex pattern (degrees)
hexInteriorAngle = 120 // degrees
hexChangeAngle = 180 - hexInteriorAngle // degrees
// place flanges
flange()
flange()
|> rotate(axis = [0, 1, 0], angle = 180)
|> translate(translate = [0, 0, flangeBackHeight*2 + gasketThickness])
screwPlane = { // place gasket between the flanges
plane = { gasket()
origin = { |> translate(translate = [0, 0, -flangeBackHeight - gasketThickness])
x = screwStart[0],
y = screwStart[1],
z = screwStart[2]
},
xAxis = { x = 1, y = 0, z = 0 },
yAxis = { x = 0, y = 0, z = 1 },
zAxis = { x = 0, y = 1, z = 0 }
}
}
fn capScrew(start, length, dia) { // place eight washers (four front, four back)
headLength = dia // inch washer()
wallToWallLength = hexRatio * dia |> translate(translate = [
headDia = dia / capRatio mountingHolePlacementDiameter/2,
hexWallLength = wallToWallLength / 2 * 1 / cos(toRadians(30)) // inch 0,
flangeBaseThickness
])
|> patternCircular3d(%, instances = 4, axis = [0, 0, 1], center = [0, 0, 0], arcDegrees = 360, rotateDuplicates = false)
|> patternLinear3d(%, instances = 2, distance = -(flangeBaseThickness*2 + flangeBackHeight * 2 + gasketThickness + washerThickness), axis = [0, 0, 1])
// place four bolts
bolt()
|> translate(translate = [
mountingHolePlacementDiameter/2, 0, flangeBaseThickness + washerThickness
])
|> rotate(roll = 90, pitch = 0, yaw = 0)
|> patternCircular3d(%, instances = 4, axis = [0, 0, 1], center = [0, 0, 0], arcDegrees = 360, rotateDuplicates = false)
// Length of Cap Head is always equal to diameter // place four hex nuts
capHeadLength = dia hexNut()
|> translate(translate = [mountingHolePlacementDiameter/2, 0, -(flangeBackHeight * 2 + gasketThickness + flangeBaseThickness + washerThickness + hexNutThickness)])
|> patternCircular3d(%, instances = 4, axis = [0, 0, 1], center = [0, 0, 0], arcDegrees = 360, rotateDuplicates = false)
// Create the head of the cap screw // place both pieces of pipe
screwHeadSketch = startSketchOn(screwPlane) pipe()
|> circle( |> rotate(%, roll = -90, pitch = 0, yaw = 0)
center = [0, 0], |> translate(%, translate = [0, 0, flangeBaseThickness + flangeFrontHeight - 0.5], global = true)
radius = headDia / 2
)
// Extrude the screw head sketch pipe()
screwHead = extrude(screwHeadSketch, length = dia) |> rotate(%, roll = 90, pitch = 0, yaw = 0)
|> translate(%, translate = [0, 0, -(flangeBackHeight * 2 + gasketThickness + flangeBaseThickness + flangeFrontHeight - 0.5)], global = true)
// Define the sketch of the hex pattern on the screw head
hexPatternSketch = startSketchOn(screwHead, 'end')
|> startProfileAt([
-start[0] + wallToWallLength / 2,
start[2]
], %)
|> yLine(length = -hexWallLength / 2)
|> angledLine({
angle = hexStartingAngle,
length = hexWallLength
}, %)
|> angledLine({
angle = hexStartingAngle - hexChangeAngle,
length = hexWallLength
}, %)
|> angledLine({
angle = hexStartingAngle - (2 * hexChangeAngle),
length = hexWallLength
}, %)
|> angledLine({
angle = hexStartingAngle - (3 * hexChangeAngle),
length = hexWallLength
}, %)
|> angledLine({
angle = hexStartingAngle - (4 * hexChangeAngle),
length = hexWallLength
}, %)
|> close()
hexPattern = extrude(hexPatternSketch, length = -headLength * 0.75)
return hexPattern
}
workingPlane = {
plane = {
origin = { x = 0, y = flangeThickness, z = 0 },
xAxis = { x = 0, y = 0, z = 1 },
yAxis = { x = 1, y = 0, z = 0 },
zAxis = { x = 0, y = 1, z = 0 }
}
}
// Washer function
fn washer(plane, start, thk, innerDia, outerDia) {
washerSketch = startSketchOn(plane)
|> circle(
center = [start[0], start[1]],
radius = outerDia / 2
)
|> hole(circle(
center = [start[0], start[1]],
radius = innerDia / 2
), %)
|> extrude(length = thk)
return washerSketch
}
// Hex nut function
fn hexNut(start, thk, innerDia) {
hexNutSketch = startSketchOn({
plane = {
origin = {
x = start[0],
y = -wallThickness - washerThickness,
z = start[2]
},
xAxis = { x = 1, y = 0, z = 0 },
yAxis = { x = 0, y = 0, z = 1 },
zAxis = { x = 0, y = 1, z = 0 }
}
})
|> startProfileAt([0 + innerDia * hexNutScale, 0], %)
|> angledLine({
angle = 240,
length = innerDia * hexNutScale
}, %)
|> angledLine({
angle = 180,
length = innerDia * hexNutScale
}, %)
|> angledLine({
angle = 120,
length = innerDia * hexNutScale
}, %)
|> angledLine({
angle = 60,
length = innerDia * hexNutScale
}, %)
|> angledLine({ angle = 0, length = innerDia * .90 }, %)
|> close()
|> hole(circle(
center = [0, 0],
radius = innerDia / 2
), %)
|> extrude(length = -thk)
return hexNutSketch
}
// Mounting holes pattern
mountingHolePattern = startSketchOn('XZ')
|> circle(
center = [screwStart[0], screwStart[2]],
radius = screwDia / 2 + tol
)
|> patternCircular2d(
arcDegrees = 360,
center = [0, 0],
instances = 7,
rotateDuplicates = true
)
// Sketch and revolve the pipe
pipe = startSketchOn('XY')
|> startProfileAt([flangePipeDia / 2 - tol, 0], %)
|> line(end = [0, -2])
|> angledLine({ angle = -60, length = .5 }, %)
|> line(end = [0, -1])
|> line(end = [-flangeThickness, 0])
|> line(end = [0, 1])
|> angledLine({ angle = -240, length = .5 }, %)
|> line(end = [0, 5])
|> angledLine({ angle = 60, length = .5 }, %)
|> line(end = [0, 1])
|> line(end = [flangeThickness, 0])
|> line(end = [0, -1])
|> angledLine({ angle = 240, length = .5 }, %)
|> close()
|> revolve(axis = 'y')
|> appearance(color = "#7b79d7")
// Sketch and extrude the wall
wall = startSketchOn('XZ')
|> startProfileAt([-4, -4], %)
|> line(end = [0, 8])
|> line(end = [8, 0])
|> line(end = [0, -8])
|> close()
|> hole(mountingHolePattern, %)
|> hole(circle(
center = [0, 0],
radius = flangePipeDia / 2
), %)
|> extrude(length = wallThickness)
|> appearance(color = "#c7aa8f")
// Sketch and revolve the flange
flangeBase = startSketchOn('XZ')
|> circle(
center = [0, 0],
radius = flangeBaseDia
)
|> hole(mountingHolePattern, %)
|> hole(circle(
center = [0, 0],
radius = flangePipeDia / 2
), %)
|> extrude(length = -flangeThickness)
|> appearance(color = "#9b9797")
// Create the washer and pattern around the flange
washer(workingPlane, [screwStart[2], screwStart[0]], 0.0625, screwDia + tol, 0.625)
|> patternCircular3d(
axis = [0, 1, 0],
center = [0, 0, 0],
instances = 7,
arcDegrees = 360,
rotateDuplicates = true
)
|> appearance(color = "#d8da5d")
// Create the cap screw and pattern around the flange
capScrew([
0,
flangeThickness + washerThickness,
1.375
], screwLength, screwDia)
|> patternCircular3d(
axis = [0, 1, 0],
center = [0, 0, 0],
instances = 7,
arcDegrees = 360,
rotateDuplicates = true
)
|> appearance(color = "#4cd411")
screwBodySketch = startSketchOn(screwPlane)
|> circle(
center = [0, 0],
radius = screwDia / 2
)
screwBody = extrude(screwBodySketch, length = -screwLength)
|> patternCircular3d(
axis = [0, 1, 0],
center = [0, 0, 0],
instances = 7,
arcDegrees = 360,
rotateDuplicates = true
)
|> appearance(color = "#4cd411")
// Create a plane for the washers on the back side of the wall
backSideWasherPlane = {
plane = {
origin = {
x = 0,
y = -wallThickness - washerThickness,
z = 0
},
xAxis = { x = 0, y = 0, z = 1 },
yAxis = { x = 1, y = 0, z = 0 },
zAxis = { x = 0, y = 1, z = 0 }
}
}
// Create the washers on the backside of the wall
washer(backSideWasherPlane, [screwStart[2], screwStart[0]], 0.0625, screwDia + tol, 0.625)
|> patternCircular3d(
axis = [0, 1, 0],
center = [0, 0, 0],
instances = 7,
arcDegrees = 360,
rotateDuplicates = true
)
|> appearance(color = "#e8ec09")
// Create the hex nut and pattern around the flange
hexNut([
screwStart[0],
screwStart[1],
screwStart[2]
], .25, screwDia + tol)
|> patternCircular3d(
axis = [0, 1, 0],
center = [0, 0, 0],
instances = 7,
arcDegrees = 360,
rotateDuplicates = true
)
|> appearance(color = "#bc3434")

View File

@ -0,0 +1,269 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP203' ),
'1' );
FILE_NAME ('1120T74_Standard-Wall Steel Unthreaded Pipe Nipple.STEP',
'2021-07-09T13:29:34',
( 'Administrator' ),
( 'Managed by Terraform' ),
'SwSTEP 2.0',
'SolidWorks 2017',
'' );
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
ENDSEC;
DATA;
#1 = EDGE_LOOP ( 'NONE', ( #200, #99 ) ) ;
#2 = CALENDAR_DATE ( 2021, 9, 7 ) ;
#3 = AXIS2_PLACEMENT_3D ( 'NONE', #146, #228, #22 ) ;
#4 = CALENDAR_DATE ( 2021, 9, 7 ) ;
#5 = VECTOR ( 'NONE', #122, 39.37007874015748100 ) ;
#6 = APPROVAL_PERSON_ORGANIZATION ( #191, #189, #47 ) ;
#7 = MANIFOLD_SOLID_BREP ( 'Extrude1', #114 ) ;
#8 = CALENDAR_DATE ( 2021, 9, 7 ) ;
#9 = ORIENTED_EDGE ( 'NONE', *, *, #48, .F. ) ;
#10 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#11 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#12 = AXIS2_PLACEMENT_3D ( 'NONE', #162, #203, #157 ) ;
#13 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#14 = ADVANCED_FACE ( 'NONE', ( #107, #218 ), #177, .T. ) ;
#15 = CIRCLE ( 'NONE', #193, 1.187500000000000000 ) ;
#16 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
#17 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#18 = AXIS2_PLACEMENT_3D ( 'NONE', #10, #245, #31 ) ;
#19 = LINE ( 'NONE', #137, #80 ) ;
#20 = CC_DESIGN_APPROVAL ( #189, ( #105 ) ) ;
#21 = ADVANCED_FACE ( 'NONE', ( #142, #60 ), #74, .F. ) ;
#22 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#23 = ORIENTED_EDGE ( 'NONE', *, *, #185, .T. ) ;
#24 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #241, #211, ( #198 ) ) ;
#25 = APPROVAL_DATE_TIME ( #135, #90 ) ;
#26 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#27 = ORIENTED_EDGE ( 'NONE', *, *, #28, .T. ) ;
#28 = EDGE_CURVE ( 'NONE', #237, #240, #110, .T. ) ;
#29 = EDGE_LOOP ( 'NONE', ( #9, #222 ) ) ;
#30 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#31 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#32 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#33 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#34 = VERTEX_POINT ( 'NONE', #201 ) ;
#35 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#36 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#37 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#38 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#39 = EDGE_CURVE ( 'NONE', #112, #34, #43, .T. ) ;
#40 = EDGE_CURVE ( 'NONE', #72, #121, #187, .T. ) ;
#41 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #165 );
#42 = APPROVAL_DATE_TIME ( #87, #235 ) ;
#43 = CIRCLE ( 'NONE', #156, 1.187500000000000000 ) ;
#44 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#45 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#46 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#47 = APPROVAL_ROLE ( '' ) ;
#48 = EDGE_CURVE ( 'NONE', #202, #71, #15, .T. ) ;
#49 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #173 ) ;
#50 = EDGE_LOOP ( 'NONE', ( #54, #247, #232, #126 ) ) ;
#51 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#52 = APPROVAL_ROLE ( '' ) ;
#53 = CALENDAR_DATE ( 2021, 9, 7 ) ;
#54 = ORIENTED_EDGE ( 'NONE', *, *, #229, .F. ) ;
#55 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#56 = ORIENTED_EDGE ( 'NONE', *, *, #152, .T. ) ;
#57 = FACE_OUTER_BOUND ( 'NONE', #220, .T. ) ;
#58 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#59 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#60 = FACE_BOUND ( 'NONE', #153, .T. ) ;
#61 = AXIS2_PLACEMENT_3D ( 'NONE', #13, #183, #35 ) ;
#62 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#63 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#64 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #115 ) ;
#65 = ORIENTED_EDGE ( 'NONE', *, *, #48, .T. ) ;
#66 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
#67 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#68 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
#69 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #120 ) ;
#70 = ORIENTED_EDGE ( 'NONE', *, *, #88, .T. ) ;
#71 = VERTEX_POINT ( 'NONE', #117 ) ;
#72 = VERTEX_POINT ( 'NONE', #160 ) ;
#73 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#74 = PLANE ( 'NONE', #119 ) ;
#75 = CYLINDRICAL_SURFACE ( 'NONE', #86, 1.033499999999999900 ) ;
#76 = CC_DESIGN_APPROVAL ( #235, ( #198 ) ) ;
#77 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#78 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#79 = AXIS2_PLACEMENT_3D ( 'NONE', #252, #37, #124 ) ;
#80 = VECTOR ( 'NONE', #44, 39.37007874015748100 ) ;
#81 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#82 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#83 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
#84 = ORIENTED_EDGE ( 'NONE', *, *, #215, .T. ) ;
#85 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
#86 = AXIS2_PLACEMENT_3D ( 'NONE', #46, #63, #78 ) ;
#87 = DATE_AND_TIME ( #140, #64 ) ;
#88 = EDGE_CURVE ( 'NONE', #72, #240, #158, .T. ) ;
#89 = VECTOR ( 'NONE', #138, 39.37007874015748100 ) ;
#90 = APPROVAL ( #171, 'UNSPECIFIED' ) ;
#91 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#92 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#93 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#94 = CIRCLE ( 'NONE', #18, 1.187500000000000000 ) ;
#95 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#96 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #105, #154 ) ;
#97 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#98 = AXIS2_PLACEMENT_3D ( 'NONE', #141, #30, #181 ) ;
#99 = ORIENTED_EDGE ( 'NONE', *, *, #229, .T. ) ;
#100 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
#101 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, 3.000000000000000400 ) ) ;
#102 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#103 = CC_DESIGN_SECURITY_CLASSIFICATION ( #198, ( #105 ) ) ;
#104 = CYLINDRICAL_SURFACE ( 'NONE', #3, 1.033499999999999900 ) ;
#105 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #230, .NOT_KNOWN. ) ;
#106 = DATE_TIME_ROLE ( 'creation_date' ) ;
#107 = FACE_OUTER_BOUND ( 'NONE', #1, .T. ) ;
#108 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #207, #67, ( #105 ) ) ;
#109 = LINE ( 'NONE', #101, #155 ) ;
#110 = CIRCLE ( 'NONE', #217, 1.033499999999999900 ) ;
#111 = EDGE_CURVE ( 'NONE', #34, #71, #19, .T. ) ;
#112 = VERTEX_POINT ( 'NONE', #77 ) ;
#113 = AXIS2_PLACEMENT_3D ( 'NONE', #81, #17, #233 ) ;
#114 = CLOSED_SHELL ( 'NONE', ( #248, #148, #14, #21, #167, #170 ) ) ;
#115 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#116 = ORIENTED_EDGE ( 'NONE', *, *, #185, .F. ) ;
#117 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, -3.000000000000000400 ) ) ;
#118 = CYLINDRICAL_SURFACE ( 'NONE', #98, 1.187500000000000000 ) ;
#119 = AXIS2_PLACEMENT_3D ( 'NONE', #92, #246, #62 ) ;
#120 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#121 = VERTEX_POINT ( 'NONE', #179 ) ;
#122 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#123 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#124 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#125 = FACE_OUTER_BOUND ( 'NONE', #163, .T. ) ;
#126 = ORIENTED_EDGE ( 'NONE', *, *, #152, .F. ) ;
#127 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #230 ) ) ;
#128 = CYLINDRICAL_SURFACE ( 'NONE', #150, 1.187500000000000000 ) ;
#129 = ORIENTED_EDGE ( 'NONE', *, *, #28, .F. ) ;
#130 = APPROVAL_PERSON_ORGANIZATION ( #82, #235, #234 ) ;
#131 = CIRCLE ( 'NONE', #161, 1.033499999999999900 ) ;
#132 = CC_DESIGN_APPROVAL ( #90, ( #96 ) ) ;
#133 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #147, #231, ( #230 ) ) ;
#134 = EDGE_CURVE ( 'NONE', #71, #202, #94, .T. ) ;
#135 = DATE_AND_TIME ( #8, #69 ) ;
#136 = ORIENTED_EDGE ( 'NONE', *, *, #88, .F. ) ;
#137 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 3.000000000000000400 ) ) ;
#138 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#139 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#140 = CALENDAR_DATE ( 2021, 9, 7 ) ;
#141 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#142 = FACE_OUTER_BOUND ( 'NONE', #29, .T. ) ;
#143 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#144 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #169 ) ;
#145 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#146 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#147 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#148 = ADVANCED_FACE ( 'NONE', ( #174 ), #118, .T. ) ;
#149 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #55, #143, ( #96 ) ) ;
#150 = AXIS2_PLACEMENT_3D ( 'NONE', #59, #159, #45 ) ;
#151 = ORIENTED_EDGE ( 'NONE', *, *, #199, .T. ) ;
#152 = EDGE_CURVE ( 'NONE', #112, #202, #208, .T. ) ;
#153 = EDGE_LOOP ( 'NONE', ( #151, #27 ) ) ;
#154 = DESIGN_CONTEXT ( 'detailed design', #36, 'design' ) ;
#155 = VECTOR ( 'NONE', #188, 39.37007874015748100 ) ;
#156 = AXIS2_PLACEMENT_3D ( 'NONE', #225, #139, #223 ) ;
#157 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#158 = LINE ( 'NONE', #97, #5 ) ;
#159 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#160 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#161 = AXIS2_PLACEMENT_3D ( 'NONE', #51, #186, #190 ) ;
#162 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#163 = EDGE_LOOP ( 'NONE', ( #176, #23, #70, #129 ) ) ;
#164 =( CONVERSION_BASED_UNIT ( 'INCH', #41 ) LENGTH_UNIT ( ) NAMED_UNIT ( #68 ) );
#165 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
#166 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #36 ) ;
#167 = ADVANCED_FACE ( 'NONE', ( #251 ), #128, .T. ) ;
#168 = CIRCLE ( 'NONE', #61, 1.033499999999999900 ) ;
#169 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#170 = ADVANCED_FACE ( 'NONE', ( #125 ), #75, .F. ) ;
#171 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#172 = AXIS2_PLACEMENT_3D ( 'NONE', #26, #73, #93 ) ;
#173 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#174 = FACE_OUTER_BOUND ( 'NONE', #50, .T. ) ;
#175 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #204 ) ;
#176 = ORIENTED_EDGE ( 'NONE', *, *, #215, .F. ) ;
#177 = PLANE ( 'NONE', #172 ) ;
#178 = ORIENTED_EDGE ( 'NONE', *, *, #40, .T. ) ;
#179 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, 3.000000000000000400 ) ) ;
#180 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #192 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #164, #145, #212 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#181 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#182 = EDGE_LOOP ( 'NONE', ( #227, #116 ) ) ;
#183 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#184 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#185 = EDGE_CURVE ( 'NONE', #121, #72, #168, .T. ) ;
#186 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#187 = CIRCLE ( 'NONE', #12, 1.033499999999999900 ) ;
#188 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#189 = APPROVAL ( #123, 'UNSPECIFIED' ) ;
#190 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#191 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#192 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #164, 'distance_accuracy_value', 'NONE');
#193 = AXIS2_PLACEMENT_3D ( 'NONE', #224, #184, #244 ) ;
#194 = ORIENTED_EDGE ( 'NONE', *, *, #111, .F. ) ;
#195 = EDGE_LOOP ( 'NONE', ( #194, #243, #56, #65 ) ) ;
#196 = APPROVAL_DATE_TIME ( #236, #189 ) ;
#197 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #33, #85, ( #105 ) ) ;
#198 = SECURITY_CLASSIFICATION ( '', '', #66 ) ;
#199 = EDGE_CURVE ( 'NONE', #240, #237, #131, .T. ) ;
#200 = ORIENTED_EDGE ( 'NONE', *, *, #39, .T. ) ;
#201 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 3.000000000000000400 ) ) ;
#202 = VERTEX_POINT ( 'NONE', #32 ) ;
#203 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#204 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#205 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#206 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, -3.000000000000000400 ) ) ;
#207 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
#208 = LINE ( 'NONE', #221, #89 ) ;
#209 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#210 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #38, #16, ( #198 ) ) ;
#211 = DATE_TIME_ROLE ( 'classification_date' ) ;
#212 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#213 = CIRCLE ( 'NONE', #113, 1.187500000000000000 ) ;
#214 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #96 ) ;
#215 = EDGE_CURVE ( 'NONE', #121, #237, #109, .T. ) ;
#216 = DATE_AND_TIME ( #53, #175 ) ;
#217 = AXIS2_PLACEMENT_3D ( 'NONE', #102, #11, #95 ) ;
#218 = FACE_BOUND ( 'NONE', #182, .T. ) ;
#219 = APPROVAL_PERSON_ORGANIZATION ( #58, #90, #52 ) ;
#220 = EDGE_LOOP ( 'NONE', ( #178, #84, #242, #136 ) ) ;
#221 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#222 = ORIENTED_EDGE ( 'NONE', *, *, #134, .F. ) ;
#223 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#224 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
#225 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
#226 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #91 ) ;
#227 = ORIENTED_EDGE ( 'NONE', *, *, #40, .F. ) ;
#228 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#229 = EDGE_CURVE ( 'NONE', #34, #112, #213, .T. ) ;
#230 = PRODUCT ( '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', '', ( #249 ) ) ;
#231 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
#232 = ORIENTED_EDGE ( 'NONE', *, *, #134, .T. ) ;
#233 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#234 = APPROVAL_ROLE ( '' ) ;
#235 = APPROVAL ( #209, 'UNSPECIFIED' ) ;
#236 = DATE_AND_TIME ( #2, #226 ) ;
#237 = VERTEX_POINT ( 'NONE', #206 ) ;
#238 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #216, #106, ( #96 ) ) ;
#239 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', ( #7, #79 ), #180 ) ;
#240 = VERTEX_POINT ( 'NONE', #205 ) ;
#241 = DATE_AND_TIME ( #4, #49 ) ;
#242 = ORIENTED_EDGE ( 'NONE', *, *, #199, .F. ) ;
#243 = ORIENTED_EDGE ( 'NONE', *, *, #39, .F. ) ;
#244 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#245 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#246 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#247 = ORIENTED_EDGE ( 'NONE', *, *, #111, .T. ) ;
#248 = ADVANCED_FACE ( 'NONE', ( #57 ), #104, .F. ) ;
#249 = MECHANICAL_CONTEXT ( 'NONE', #169, 'mechanical' ) ;
#250 = SHAPE_DEFINITION_REPRESENTATION ( #214, #239 ) ;
#251 = FACE_OUTER_BOUND ( 'NONE', #195, .T. ) ;
#252 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
ENDSEC;
END-ISO-10303-21;

View File

@ -0,0 +1,935 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP203' ),
'1' );
FILE_NAME ('68095K348_Low-Pressure Steel Unthreaded Pipe Flange.STEP',
'2023-02-07T16:53:08',
( 'Administrator' ),
( 'Managed by Terraform' ),
'SwSTEP 2.0',
'SolidWorks 2017',
'' );
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
ENDSEC;
DATA;
#1 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#2 = PLANE ( 'NONE', #478 ) ;
#3 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#4 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
#5 = ADVANCED_FACE ( 'NONE', ( #454 ), #796, .F. ) ;
#6 = EDGE_LOOP ( 'NONE', ( #731, #231, #839, #562 ) ) ;
#7 = EDGE_LOOP ( 'NONE', ( #351, #304, #227, #362 ) ) ;
#8 = FACE_OUTER_BOUND ( 'NONE', #275, .T. ) ;
#9 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#10 = EDGE_CURVE ( 'NONE', #561, #199, #238, .T. ) ;
#11 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#12 = ORIENTED_EDGE ( 'NONE', *, *, #105, .F. ) ;
#13 = ORIENTED_EDGE ( 'NONE', *, *, #197, .F. ) ;
#14 = CIRCLE ( 'NONE', #559, 0.05999999999999990800 ) ;
#15 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#16 = DATE_AND_TIME ( #483, #678 ) ;
#17 = CIRCLE ( 'NONE', #51, 3.000000000000000400 ) ;
#18 = AXIS2_PLACEMENT_3D ( 'NONE', #250, #616, #825 ) ;
#19 = EDGE_CURVE ( 'NONE', #574, #144, #56, .T. ) ;
#20 = AXIS2_PLACEMENT_3D ( 'NONE', #1, #845, #205 ) ;
#21 = ORIENTED_EDGE ( 'NONE', *, *, #764, .F. ) ;
#22 = CARTESIAN_POINT ( 'NONE', ( 1.583083515873356900, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
#23 = ORIENTED_EDGE ( 'NONE', *, *, #682, .T. ) ;
#24 = FACE_OUTER_BOUND ( 'NONE', #7, .T. ) ;
#25 = EDGE_CURVE ( 'NONE', #691, #614, #607, .T. ) ;
#26 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#27 = VERTEX_POINT ( 'NONE', #760 ) ;
#28 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#29 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#30 = AXIS2_PLACEMENT_3D ( 'NONE', #797, #584, #660 ) ;
#31 = VERTEX_POINT ( 'NONE', #809 ) ;
#32 = EDGE_LOOP ( 'NONE', ( #13, #696, #367, #300 ) ) ;
#33 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#34 = VECTOR ( 'NONE', #158, 39.37007874015748100 ) ;
#35 = VECTOR ( 'NONE', #541, 39.37007874015748100 ) ;
#36 = EDGE_CURVE ( 'NONE', #768, #849, #78, .T. ) ;
#37 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.6250000000000003300 ) ) ;
#38 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, 0.3150000000000000600 ) ) ;
#39 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#40 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#41 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#42 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#43 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
#44 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#45 = ORIENTED_EDGE ( 'NONE', *, *, #898, .T. ) ;
#46 = ORIENTED_EDGE ( 'NONE', *, *, #558, .T. ) ;
#47 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#48 = VECTOR ( 'NONE', #826, 39.37007874015748100 ) ;
#49 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#50 = ORIENTED_EDGE ( 'NONE', *, *, #223, .T. ) ;
#51 = AXIS2_PLACEMENT_3D ( 'NONE', #42, #404, #40 ) ;
#52 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#53 = ORIENTED_EDGE ( 'NONE', *, *, #605, .T. ) ;
#54 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 3.637200993467639100E-016, -0.3750000000000001700 ) ) ;
#55 = EDGE_CURVE ( 'NONE', #199, #777, #245, .T. ) ;
#56 = CIRCLE ( 'NONE', #431, 1.505773112999396800 ) ;
#57 = ORIENTED_EDGE ( 'NONE', *, *, #487, .T. ) ;
#58 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#59 = VECTOR ( 'NONE', #97, 39.37007874015748100 ) ;
#60 = APPROVAL_DATE_TIME ( #310, #139 ) ;
#61 = TOROIDAL_SURFACE ( 'NONE', #253, 2.940000000000000400, 0.05999999999999999800 ) ;
#62 = ORIENTED_EDGE ( 'NONE', *, *, #537, .T. ) ;
#63 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#64 = AXIS2_PLACEMENT_3D ( 'NONE', #549, #184, #557 ) ;
#65 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #279 ) ;
#66 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #569 ) ;
#67 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#68 = EDGE_CURVE ( 'NONE', #786, #90, #518, .T. ) ;
#69 = VERTEX_POINT ( 'NONE', #672 ) ;
#70 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#71 = ORIENTED_EDGE ( 'NONE', *, *, #682, .F. ) ;
#72 = CC_DESIGN_SECURITY_CLASSIFICATION ( #899, ( #508 ) ) ;
#73 = FACE_OUTER_BOUND ( 'NONE', #379, .T. ) ;
#74 = ORIENTED_EDGE ( 'NONE', *, *, #260, .T. ) ;
#75 = DIRECTION ( 'NONE', ( 0.1218693434051478800, 0.0000000000000000000, 0.9925461516413219800 ) ) ;
#76 = EDGE_CURVE ( 'NONE', #398, #578, #896, .T. ) ;
#77 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, -0.6250000000000003300 ) ) ;
#78 = CIRCLE ( 'NONE', #774, 0.3749999999999999400 ) ;
#79 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, -0.3750000000000001700 ) ) ;
#80 = ORIENTED_EDGE ( 'NONE', *, *, #700, .F. ) ;
#81 = AXIS2_PLACEMENT_3D ( 'NONE', #396, #256, #900 ) ;
#82 = FACE_OUTER_BOUND ( 'NONE', #192, .T. ) ;
#83 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#84 = FACE_OUTER_BOUND ( 'NONE', #251, .T. ) ;
#85 = ADVANCED_FACE ( 'NONE', ( #679 ), #221, .F. ) ;
#86 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
#87 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
#88 = EDGE_CURVE ( 'NONE', #407, #263, #917, .T. ) ;
#89 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
#90 = VERTEX_POINT ( 'NONE', #464 ) ;
#91 = VERTEX_POINT ( 'NONE', #765 ) ;
#92 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#93 = LINE ( 'NONE', #220, #543 ) ;
#94 = AXIS2_PLACEMENT_3D ( 'NONE', #70, #882, #335 ) ;
#95 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, -0.6250000000000000000 ) ) ;
#96 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#97 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#98 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#99 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, -0.3750000000000001700 ) ) ;
#100 = AXIS2_PLACEMENT_3D ( 'NONE', #662, #875, #597 ) ;
#101 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#102 = ORIENTED_EDGE ( 'NONE', *, *, #823, .T. ) ;
#103 = ORIENTED_EDGE ( 'NONE', *, *, #105, .T. ) ;
#104 = TOROIDAL_SURFACE ( 'NONE', #162, 1.583083515873356900, 0.05999999999999999800 ) ;
#105 = EDGE_CURVE ( 'NONE', #31, #506, #17, .T. ) ;
#106 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#107 = CIRCLE ( 'NONE', #425, 0.05999999999999997700 ) ;
#108 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, -0.3750000000000001700 ) ) ;
#109 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
#110 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
#111 = AXIS2_PLACEMENT_3D ( 'NONE', #273, #783, #631 ) ;
#112 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#113 = ORIENTED_EDGE ( 'NONE', *, *, #749, .T. ) ;
#114 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#115 = ORIENTED_EDGE ( 'NONE', *, *, #516, .F. ) ;
#116 = DATE_AND_TIME ( #883, #295 ) ;
#117 = FACE_BOUND ( 'NONE', #210, .T. ) ;
#118 = EDGE_CURVE ( 'NONE', #768, #91, #172, .T. ) ;
#119 = ORIENTED_EDGE ( 'NONE', *, *, #338, .F. ) ;
#120 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#121 = AXIS2_PLACEMENT_3D ( 'NONE', #773, #633, #264 ) ;
#122 = EDGE_LOOP ( 'NONE', ( #538, #46, #315, #481 ) ) ;
#123 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#124 = EDGE_CURVE ( 'NONE', #427, #674, #266, .T. ) ;
#125 = EDGE_LOOP ( 'NONE', ( #442, #525, #634, #134 ) ) ;
#126 = EDGE_LOOP ( 'NONE', ( #102, #816 ) ) ;
#127 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147359900E-016, 0.0000000000000000000 ) ) ;
#128 = CIRCLE ( 'NONE', #261, 0.3749999999999999400 ) ;
#129 = LINE ( 'NONE', #503, #638 ) ;
#130 = ORIENTED_EDGE ( 'NONE', *, *, #664, .F. ) ;
#131 = AXIS2_PLACEMENT_3D ( 'NONE', #880, #174, #762 ) ;
#132 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#133 = EDGE_CURVE ( 'NONE', #506, #31, #343, .T. ) ;
#134 = ORIENTED_EDGE ( 'NONE', *, *, #605, .F. ) ;
#135 = ORIENTED_EDGE ( 'NONE', *, *, #19, .T. ) ;
#136 = LINE ( 'NONE', #843, #148 ) ;
#137 = FACE_OUTER_BOUND ( 'NONE', #738, .T. ) ;
#138 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#139 = APPROVAL ( #350, 'UNSPECIFIED' ) ;
#140 = APPROVAL_ROLE ( '' ) ;
#141 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#142 = AXIS2_PLACEMENT_3D ( 'NONE', #222, #868, #746 ) ;
#143 = ORIENTED_EDGE ( 'NONE', *, *, #305, .T. ) ;
#144 = VERTEX_POINT ( 'NONE', #393 ) ;
#145 = CYLINDRICAL_SURFACE ( 'NONE', #601, 1.220000000000000000 ) ;
#146 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#147 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#148 = VECTOR ( 'NONE', #594, 39.37007874015748100 ) ;
#149 = CIRCLE ( 'NONE', #142, 0.05999999999999990800 ) ;
#150 = EDGE_CURVE ( 'NONE', #437, #27, #567, .T. ) ;
#151 = ADVANCED_FACE ( 'NONE', ( #736 ), #61, .T. ) ;
#152 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#153 = ORIENTED_EDGE ( 'NONE', *, *, #68, .T. ) ;
#154 = AXIS2_PLACEMENT_3D ( 'NONE', #37, #461, #324 ) ;
#155 = ORIENTED_EDGE ( 'NONE', *, *, #36, .F. ) ;
#156 = CIRCLE ( 'NONE', #492, 3.000000000000000400 ) ;
#157 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#158 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#159 = ADVANCED_FACE ( 'NONE', ( #668 ), #276, .F. ) ;
#160 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#161 = EDGE_CURVE ( 'NONE', #578, #398, #761, .T. ) ;
#162 = AXIS2_PLACEMENT_3D ( 'NONE', #547, #734, #289 ) ;
#163 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
#164 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
#165 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
#166 = EDGE_LOOP ( 'NONE', ( #645, #168 ) ) ;
#167 = EDGE_CURVE ( 'NONE', #262, #772, #851, .T. ) ;
#168 = ORIENTED_EDGE ( 'NONE', *, *, #779, .T. ) ;
#169 = FACE_BOUND ( 'NONE', #126, .T. ) ;
#170 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#171 = SHAPE_DEFINITION_REPRESENTATION ( #445, #236 ) ;
#172 = LINE ( 'NONE', #694, #35 ) ;
#173 = AXIS2_PLACEMENT_3D ( 'NONE', #895, #886, #539 ) ;
#174 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#175 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#176 = ORIENTED_EDGE ( 'NONE', *, *, #450, .T. ) ;
#177 = CONICAL_SURFACE ( 'NONE', #364, 1.499303859774273800, 0.1221730476396034700 ) ;
#178 = EDGE_CURVE ( 'NONE', #614, #574, #460, .T. ) ;
#179 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#180 = FACE_OUTER_BOUND ( 'NONE', #586, .T. ) ;
#181 = EDGE_LOOP ( 'NONE', ( #377, #252, #787, #115 ) ) ;
#182 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#183 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#184 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#185 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#186 = EDGE_LOOP ( 'NONE', ( #359, #595, #365, #353 ) ) ;
#187 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#188 = EDGE_LOOP ( 'NONE', ( #176, #771 ) ) ;
#189 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#190 = FACE_BOUND ( 'NONE', #685, .T. ) ;
#191 = AXIS2_PLACEMENT_3D ( 'NONE', #189, #194, #891 ) ;
#192 = EDGE_LOOP ( 'NONE', ( #292, #573, #626, #417 ) ) ;
#193 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#194 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#195 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#196 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#197 = EDGE_CURVE ( 'NONE', #485, #540, #780, .T. ) ;
#198 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#199 = VERTEX_POINT ( 'NONE', #474 ) ;
#200 = ORIENTED_EDGE ( 'NONE', *, *, #55, .F. ) ;
#201 = CIRCLE ( 'NONE', #397, 1.583083515873356900 ) ;
#202 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#203 = CIRCLE ( 'NONE', #726, 1.870000000000000100 ) ;
#204 = AXIS2_PLACEMENT_3D ( 'NONE', #466, #41, #888 ) ;
#205 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#206 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
#207 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#208 = EDGE_CURVE ( 'NONE', #376, #777, #156, .T. ) ;
#209 = VERTEX_POINT ( 'NONE', #401 ) ;
#210 = EDGE_LOOP ( 'NONE', ( #847, #53 ) ) ;
#211 = CIRCLE ( 'NONE', #173, 0.3749999999999999400 ) ;
#212 = EDGE_CURVE ( 'NONE', #540, #554, #327, .T. ) ;
#213 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#214 = ORIENTED_EDGE ( 'NONE', *, *, #208, .F. ) ;
#215 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#216 = AXIS2_PLACEMENT_3D ( 'NONE', #456, #29, #813 ) ;
#217 = ORIENTED_EDGE ( 'NONE', *, *, #850, .T. ) ;
#218 = EDGE_LOOP ( 'NONE', ( #712, #135, #306, #698 ) ) ;
#219 = FACE_BOUND ( 'NONE', #544, .T. ) ;
#220 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, 0.3750000000000000600 ) ) ;
#221 = CYLINDRICAL_SURFACE ( 'NONE', #676, 0.3749999999999999400 ) ;
#222 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 3.600461589493218800E-016, -0.3150000000000002800 ) ) ;
#223 = EDGE_CURVE ( 'NONE', #674, #427, #531, .T. ) ;
#224 = ADVANCED_FACE ( 'NONE', ( #84, #842 ), #2, .F. ) ;
#225 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#226 = EDGE_LOOP ( 'NONE', ( #513, #534 ) ) ;
#227 = ORIENTED_EDGE ( 'NONE', *, *, #167, .F. ) ;
#228 = CIRCLE ( 'NONE', #204, 0.3749999999999999400 ) ;
#229 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#230 = CARTESIAN_POINT ( 'NONE', ( -1.583083515873356900, 1.938718160497244600E-016, -0.3750000000000001700 ) ) ;
#231 = ORIENTED_EDGE ( 'NONE', *, *, #794, .F. ) ;
#232 = CARTESIAN_POINT ( 'NONE', ( 1.870000000000000100, 2.290089514405550600E-016, 0.3750000000000000600 ) ) ;
#233 = AXIS2_PLACEMENT_3D ( 'NONE', #766, #52, #329 ) ;
#234 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
#235 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#236 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', ( #866, #20 ), #904 ) ;
#237 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#238 = CIRCLE ( 'NONE', #383, 2.940000000000000400 ) ;
#239 = EDGE_CURVE ( 'NONE', #348, #767, #872, .T. ) ;
#240 = EDGE_LOOP ( 'NONE', ( #818, #74 ) ) ;
#241 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#242 = LINE ( 'NONE', #604, #59 ) ;
#243 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#244 = VECTOR ( 'NONE', #96, 39.37007874015748100 ) ;
#245 = CIRCLE ( 'NONE', #890, 0.06000000000000001200 ) ;
#246 = ORIENTED_EDGE ( 'NONE', *, *, #717, .F. ) ;
#247 = CARTESIAN_POINT ( 'NONE', ( 1.446220343900916900, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
#248 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#249 = AXIS2_PLACEMENT_3D ( 'NONE', #89, #366, #865 ) ;
#250 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#251 = EDGE_LOOP ( 'NONE', ( #806, #455 ) ) ;
#252 = ORIENTED_EDGE ( 'NONE', *, *, #178, .T. ) ;
#253 = AXIS2_PLACEMENT_3D ( 'NONE', #331, #44, #684 ) ;
#254 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#255 = FACE_OUTER_BOUND ( 'NONE', #125, .T. ) ;
#256 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#257 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #509, #346, ( #473 ) ) ;
#258 = CARTESIAN_POINT ( 'NONE', ( -1.499303859774273800, 1.836117672821836400E-016, -0.6250000000000003300 ) ) ;
#259 = EDGE_LOOP ( 'NONE', ( #666, #130, #153, #71 ) ) ;
#260 = EDGE_CURVE ( 'NONE', #743, #348, #370, .T. ) ;
#261 = AXIS2_PLACEMENT_3D ( 'NONE', #612, #175, #532 ) ;
#262 = VERTEX_POINT ( 'NONE', #472 ) ;
#263 = VERTEX_POINT ( 'NONE', #490 ) ;
#264 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#265 = FACE_OUTER_BOUND ( 'NONE', #6, .T. ) ;
#266 = CIRCLE ( 'NONE', #334, 2.940000000000000400 ) ;
#267 = AXIS2_PLACEMENT_3D ( 'NONE', #480, #546, #254 ) ;
#268 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#269 = ADVANCED_FACE ( 'NONE', ( #180 ), #412, .T. ) ;
#270 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#271 = EDGE_CURVE ( 'NONE', #91, #856, #471, .T. ) ;
#272 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
#273 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
#274 = ORIENTED_EDGE ( 'NONE', *, *, #823, .F. ) ;
#275 = EDGE_LOOP ( 'NONE', ( #323, #143, #689, #655 ) ) ;
#276 = TOROIDAL_SURFACE ( 'NONE', #318, 1.870000000000000100, 0.05999999999999999800 ) ;
#277 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, -0.3750000000000001700 ) ) ;
#278 = AXIS2_PLACEMENT_3D ( 'NONE', #147, #213, #858 ) ;
#279 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#280 = AXIS2_PLACEMENT_3D ( 'NONE', #406, #572, #579 ) ;
#281 = ORIENTED_EDGE ( 'NONE', *, *, #516, .T. ) ;
#282 = ORIENTED_EDGE ( 'NONE', *, *, #414, .F. ) ;
#283 = ADVANCED_FACE ( 'NONE', ( #821 ), #391, .F. ) ;
#284 = CIRCLE ( 'NONE', #357, 0.3749999999999999400 ) ;
#285 = APPROVAL_DATE_TIME ( #116, #654 ) ;
#286 = TOROIDAL_SURFACE ( 'NONE', #381, 1.583083515873356900, 0.05999999999999999800 ) ;
#287 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#288 = EDGE_CURVE ( 'NONE', #209, #757, #860, .T. ) ;
#289 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#290 = AXIS2_PLACEMENT_3D ( 'NONE', #416, #706, #707 ) ;
#291 = ADVANCED_FACE ( 'NONE', ( #337 ), #611, .F. ) ;
#292 = ORIENTED_EDGE ( 'NONE', *, *, #867, .F. ) ;
#293 = EDGE_LOOP ( 'NONE', ( #807, #441 ) ) ;
#294 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#295 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #637 ) ;
#296 = CYLINDRICAL_SURFACE ( 'NONE', #100, 3.000000000000000400 ) ;
#297 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#298 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, 0.3150000000000000600 ) ) ;
#299 = AXIS2_PLACEMENT_3D ( 'NONE', #185, #67, #132 ) ;
#300 = ORIENTED_EDGE ( 'NONE', *, *, #212, .F. ) ;
#301 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #517, #785, ( #508 ) ) ;
#302 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#303 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#304 = ORIENTED_EDGE ( 'NONE', *, *, #764, .T. ) ;
#305 = EDGE_CURVE ( 'NONE', #398, #263, #93, .T. ) ;
#306 = ORIENTED_EDGE ( 'NONE', *, *, #322, .T. ) ;
#307 = AXIS2_PLACEMENT_3D ( 'NONE', #352, #486, #58 ) ;
#308 = ORIENTED_EDGE ( 'NONE', *, *, #664, .T. ) ;
#309 = LINE ( 'NONE', #727, #915 ) ;
#310 = DATE_AND_TIME ( #841, #389 ) ;
#311 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#312 = DESIGN_CONTEXT ( 'detailed design', #569, 'design' ) ;
#313 = TOROIDAL_SURFACE ( 'NONE', #661, 1.446220343900916900, 0.05999999999999999800 ) ;
#314 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#315 = ORIENTED_EDGE ( 'NONE', *, *, #271, .F. ) ;
#316 = EDGE_LOOP ( 'NONE', ( #113, #468 ) ) ;
#317 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#318 = AXIS2_PLACEMENT_3D ( 'NONE', #624, #182, #477 ) ;
#319 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#320 = EDGE_LOOP ( 'NONE', ( #339, #217, #491, #408 ) ) ;
#321 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#322 = EDGE_CURVE ( 'NONE', #144, #90, #129, .T. ) ;
#323 = ORIENTED_EDGE ( 'NONE', *, *, #76, .F. ) ;
#324 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#325 = EDGE_LOOP ( 'NONE', ( #527, #914 ) ) ;
#326 = DATE_AND_TIME ( #566, #529 ) ;
#327 = CIRCLE ( 'NONE', #290, 0.05999999999999997700 ) ;
#328 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
#329 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#330 = CARTESIAN_POINT ( 'NONE', ( 1.446220343900916900, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
#331 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#332 = VERTEX_POINT ( 'NONE', #79 ) ;
#333 = EDGE_LOOP ( 'NONE', ( #21, #274, #621, #596 ) ) ;
#334 = AXIS2_PLACEMENT_3D ( 'NONE', #628, #112, #897 ) ;
#335 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#336 = LINE ( 'NONE', #77, #34 ) ;
#337 = FACE_OUTER_BOUND ( 'NONE', #186, .T. ) ;
#338 = EDGE_CURVE ( 'NONE', #856, #91, #714, .T. ) ;
#339 = ORIENTED_EDGE ( 'NONE', *, *, #260, .F. ) ;
#340 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#341 = ORIENTED_EDGE ( 'NONE', *, *, #133, .F. ) ;
#342 = LINE ( 'NONE', #235, #244 ) ;
#343 = CIRCLE ( 'NONE', #18, 3.000000000000000400 ) ;
#344 = AXIS2_PLACEMENT_3D ( 'NONE', #399, #909, #127 ) ;
#345 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#346 = DATE_TIME_ROLE ( 'creation_date' ) ;
#347 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#348 = VERTEX_POINT ( 'NONE', #86 ) ;
#349 = AXIS2_PLACEMENT_3D ( 'NONE', #22, #522, #600 ) ;
#350 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#351 = ORIENTED_EDGE ( 'NONE', *, *, #150, .F. ) ;
#352 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
#353 = ORIENTED_EDGE ( 'NONE', *, *, #88, .T. ) ;
#354 = FACE_BOUND ( 'NONE', #226, .T. ) ;
#355 = EDGE_CURVE ( 'NONE', #348, #743, #433, .T. ) ;
#356 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #709 );
#357 = AXIS2_PLACEMENT_3D ( 'NONE', #392, #241, #317 ) ;
#358 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#359 = ORIENTED_EDGE ( 'NONE', *, *, #305, .F. ) ;
#360 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 3.000000000000000400, 0.3150000000000000600 ) ) ;
#361 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#362 = ORIENTED_EDGE ( 'NONE', *, *, #652, .F. ) ;
#363 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
#364 = AXIS2_PLACEMENT_3D ( 'NONE', #43, #193, #835 ) ;
#365 = ORIENTED_EDGE ( 'NONE', *, *, #570, .T. ) ;
#366 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#367 = ORIENTED_EDGE ( 'NONE', *, *, #805, .F. ) ;
#368 = TOROIDAL_SURFACE ( 'NONE', #216, 2.940000000000000400, 0.05999999999999999800 ) ;
#369 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#370 = CIRCLE ( 'NONE', #111, 0.3749999999999999400 ) ;
#371 = CARTESIAN_POINT ( 'NONE', ( 1.583083515873356900, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#372 = EDGE_CURVE ( 'NONE', #777, #376, #801, .T. ) ;
#373 = ORIENTED_EDGE ( 'NONE', *, *, #161, .T. ) ;
#374 = PLANE ( 'NONE', #815 ) ;
#375 = ADVANCED_FACE ( 'NONE', ( #589 ), #484, .F. ) ;
#376 = VERTEX_POINT ( 'NONE', #444 ) ;
#377 = ORIENTED_EDGE ( 'NONE', *, *, #901, .F. ) ;
#378 = CIRCLE ( 'NONE', #803, 1.220000000000000000 ) ;
#379 = EDGE_LOOP ( 'NONE', ( #421, #57, #12, #828 ) ) ;
#380 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#381 = AXIS2_PLACEMENT_3D ( 'NONE', #87, #877, #593 ) ;
#382 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#383 = AXIS2_PLACEMENT_3D ( 'NONE', #817, #319, #887 ) ;
#384 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#385 = ORIENTED_EDGE ( 'NONE', *, *, #715, .T. ) ;
#386 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#387 = EDGE_LOOP ( 'NONE', ( #373, #711 ) ) ;
#388 = FACE_BOUND ( 'NONE', #325, .T. ) ;
#389 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #735 ) ;
#390 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
#391 = CYLINDRICAL_SURFACE ( 'NONE', #280, 0.3749999999999999400 ) ;
#392 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.3750000000000001700 ) ) ;
#393 = CARTESIAN_POINT ( 'NONE', ( 1.505773112999396800, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
#394 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 3.637200993467639100E-016, 0.3150000000000000600 ) ) ;
#395 = AXIS2_PLACEMENT_3D ( 'NONE', #345, #268, #207 ) ;
#396 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, 0.3150000000000000600 ) ) ;
#397 = AXIS2_PLACEMENT_3D ( 'NONE', #114, #463, #384 ) ;
#398 = VERTEX_POINT ( 'NONE', #95 ) ;
#399 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 3.600461589493218800E-016, 0.2550000000000000600 ) ) ;
#400 = ORIENTED_EDGE ( 'NONE', *, *, #913, .F. ) ;
#401 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, 0.3150000000000000600 ) ) ;
#402 = CIRCLE ( 'NONE', #278, 2.940000000000000400 ) ;
#403 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#404 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#405 = EDGE_CURVE ( 'NONE', #427, #31, #831, .T. ) ;
#406 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
#407 = VERTEX_POINT ( 'NONE', #669 ) ;
#408 = ORIENTED_EDGE ( 'NONE', *, *, #239, .F. ) ;
#409 = ADVANCED_FACE ( 'NONE', ( #137 ), #296, .T. ) ;
#410 = AXIS2_PLACEMENT_3D ( 'NONE', #195, #403, #47 ) ;
#411 = CIRCLE ( 'NONE', #533, 1.810000000000000100 ) ;
#412 = CONICAL_SURFACE ( 'NONE', #613, 1.499303859774273800, 0.1221730476396034700 ) ;
#413 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
#414 = EDGE_CURVE ( 'NONE', #90, #69, #688, .T. ) ;
#415 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
#416 = CARTESIAN_POINT ( 'NONE', ( -1.870000000000000100, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#417 = ORIENTED_EDGE ( 'NONE', *, *, #208, .T. ) ;
#418 = VERTEX_POINT ( 'NONE', #524 ) ;
#419 = CYLINDRICAL_SURFACE ( 'NONE', #592, 0.3749999999999999400 ) ;
#420 = ADVANCED_FACE ( 'NONE', ( #908, #495 ), #374, .F. ) ;
#421 = ORIENTED_EDGE ( 'NONE', *, *, #223, .F. ) ;
#422 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#423 =( CONVERSION_BASED_UNIT ( 'INCH', #356 ) LENGTH_UNIT ( ) NAMED_UNIT ( #581 ) );
#424 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
#425 = AXIS2_PLACEMENT_3D ( 'NONE', #247, #110, #615 ) ;
#426 = ADVANCED_FACE ( 'NONE', ( #724 ), #702, .T. ) ;
#427 = VERTEX_POINT ( 'NONE', #152 ) ;
#428 = ORIENTED_EDGE ( 'NONE', *, *, #794, .T. ) ;
#429 = LINE ( 'NONE', #258, #555 ) ;
#430 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#431 = AXIS2_PLACEMENT_3D ( 'NONE', #751, #671, #98 ) ;
#432 = CALENDAR_DATE ( 2023, 7, 2 ) ;
#433 = CIRCLE ( 'NONE', #550, 0.3749999999999999400 ) ;
#434 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
#435 = ADVANCED_FACE ( 'NONE', ( #747 ), #286, .F. ) ;
#436 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.6250000000000003300 ) ) ;
#437 = VERTEX_POINT ( 'NONE', #99 ) ;
#438 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, 0.2550000000000000600 ) ) ;
#439 = AXIS2_PLACEMENT_3D ( 'NONE', #430, #854, #852 ) ;
#440 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#441 = ORIENTED_EDGE ( 'NONE', *, *, #520, .T. ) ;
#442 = ORIENTED_EDGE ( 'NONE', *, *, #850, .F. ) ;
#443 = CYLINDRICAL_SURFACE ( 'NONE', #94, 3.000000000000000400 ) ;
#444 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#445 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #473 ) ;
#446 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#447 = AXIS2_PLACEMENT_3D ( 'NONE', #832, #916, #781 ) ;
#448 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.810000000000000100, 0.3750000000000000600 ) ) ;
#449 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#450 = EDGE_CURVE ( 'NONE', #540, #485, #203, .T. ) ;
#451 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#452 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#453 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #106, #4, ( #548 ) ) ;
#454 = FACE_OUTER_BOUND ( 'NONE', #122, .T. ) ;
#455 = ORIENTED_EDGE ( 'NONE', *, *, #901, .T. ) ;
#456 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#457 = LINE ( 'NONE', #703, #646 ) ;
#458 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#459 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#460 = CIRCLE ( 'NONE', #499, 0.05999999999999990800 ) ;
#461 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#462 = AXIS2_PLACEMENT_3D ( 'NONE', #651, #11, #146 ) ;
#463 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#464 = CARTESIAN_POINT ( 'NONE', ( 1.523530746774877300, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
#465 = EDGE_CURVE ( 'NONE', #767, #418, #510, .T. ) ;
#466 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
#467 = ORIENTED_EDGE ( 'NONE', *, *, #450, .F. ) ;
#468 = ORIENTED_EDGE ( 'NONE', *, *, #10, .T. ) ;
#469 = APPROVAL_DATE_TIME ( #326, #650 ) ;
#470 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#471 = CIRCLE ( 'NONE', #693, 0.3749999999999999400 ) ;
#472 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, 0.3150000000000000600 ) ) ;
#473 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #508, #312 ) ;
#474 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#475 = EDGE_LOOP ( 'NONE', ( #608, #155, #793, #119 ) ) ;
#476 = ORIENTED_EDGE ( 'NONE', *, *, #838, .T. ) ;
#477 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#478 = AXIS2_PLACEMENT_3D ( 'NONE', #710, #270, #198 ) ;
#479 = ORIENTED_EDGE ( 'NONE', *, *, #124, .T. ) ;
#480 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
#481 = ORIENTED_EDGE ( 'NONE', *, *, #118, .F. ) ;
#482 = LINE ( 'NONE', #903, #732 ) ;
#483 = CALENDAR_DATE ( 2023, 7, 2 ) ;
#484 = CYLINDRICAL_SURFACE ( 'NONE', #648, 0.3749999999999999400 ) ;
#485 = VERTEX_POINT ( 'NONE', #602 ) ;
#486 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#487 = EDGE_CURVE ( 'NONE', #674, #506, #149, .T. ) ;
#488 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#489 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
#490 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, 0.3750000000000000600 ) ) ;
#491 = ORIENTED_EDGE ( 'NONE', *, *, #465, .F. ) ;
#492 = AXIS2_PLACEMENT_3D ( 'NONE', #564, #340, #846 ) ;
#493 = ORIENTED_EDGE ( 'NONE', *, *, #487, .F. ) ;
#494 = APPROVAL_PERSON_ORGANIZATION ( #723, #650, #788 ) ;
#495 = FACE_OUTER_BOUND ( 'NONE', #293, .T. ) ;
#496 = DATE_TIME_ROLE ( 'classification_date' ) ;
#497 = CARTESIAN_POINT ( 'NONE', ( -1.583083515873356900, 1.938718160497244600E-016, -0.4350000000000001600 ) ) ;
#498 = ORIENTED_EDGE ( 'NONE', *, *, #700, .T. ) ;
#499 = AXIS2_PLACEMENT_3D ( 'NONE', #690, #833, #551 ) ;
#500 = AXIS2_PLACEMENT_3D ( 'NONE', #298, #303, #449 ) ;
#501 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
#502 = ORIENTED_EDGE ( 'NONE', *, *, #505, .F. ) ;
#503 = CARTESIAN_POINT ( 'NONE', ( 1.499303859774273800, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
#504 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, 0.3150000000000000600 ) ) ;
#505 = EDGE_CURVE ( 'NONE', #485, #665, #556, .T. ) ;
#506 = VERTEX_POINT ( 'NONE', #802 ) ;
#507 = CIRCLE ( 'NONE', #267, 1.505773112999396800 ) ;
#508 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #548, .NOT_KNOWN. ) ;
#509 = DATE_AND_TIME ( #432, #701 ) ;
#510 = CIRCLE ( 'NONE', #249, 0.3749999999999999400 ) ;
#511 = AXIS2_PLACEMENT_3D ( 'NONE', #836, #187, #120 ) ;
#512 = ADVANCED_FACE ( 'NONE', ( #658 ), #313, .T. ) ;
#513 = ORIENTED_EDGE ( 'NONE', *, *, #36, .T. ) ;
#514 = EDGE_LOOP ( 'NONE', ( #705, #498, #879, #200 ) ) ;
#515 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#516 = EDGE_CURVE ( 'NONE', #691, #144, #107, .T. ) ;
#517 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#518 = CIRCLE ( 'NONE', #349, 0.05999999999999997700 ) ;
#519 = DIRECTION ( 'NONE', ( -0.1218693434051478800, 1.492469013153039400E-017, 0.9925461516413219800 ) ) ;
#520 = EDGE_CURVE ( 'NONE', #665, #554, #411, .T. ) ;
#521 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
#522 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
#523 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #16, #496, ( #899 ) ) ;
#524 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, 0.3150000000000000600 ) ) ;
#525 = ORIENTED_EDGE ( 'NONE', *, *, #355, .F. ) ;
#526 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
#527 = ORIENTED_EDGE ( 'NONE', *, *, #271, .T. ) ;
#528 = CIRCLE ( 'NONE', #410, 1.583083515873356900 ) ;
#529 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #542 ) ;
#530 = CARTESIAN_POINT ( 'NONE', ( -1.810000000000000100, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#531 = CIRCLE ( 'NONE', #395, 2.940000000000000400 ) ;
#532 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#533 = AXIS2_PLACEMENT_3D ( 'NONE', #321, #535, #754 ) ;
#534 = ORIENTED_EDGE ( 'NONE', *, *, #585, .T. ) ;
#535 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#536 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, -0.3750000000000001700 ) ) ;
#537 = EDGE_CURVE ( 'NONE', #830, #332, #789, .T. ) ;
#538 = ORIENTED_EDGE ( 'NONE', *, *, #585, .F. ) ;
#539 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#540 = VERTEX_POINT ( 'NONE', #729 ) ;
#541 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#542 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#543 = VECTOR ( 'NONE', #215, 39.37007874015748100 ) ;
#544 = EDGE_LOOP ( 'NONE', ( #45, #869 ) ) ;
#545 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#546 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#547 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
#548 = PRODUCT ( '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', '', ( #571 ) ) ;
#549 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.3750000000000001700 ) ) ;
#550 = AXIS2_PLACEMENT_3D ( 'NONE', #163, #670, #92 ) ;
#551 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
#552 = EDGE_LOOP ( 'NONE', ( #902, #910, #281, #798 ) ) ;
#553 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #459, #782, ( #473 ) ) ;
#554 = VERTEX_POINT ( 'NONE', #530 ) ;
#555 = VECTOR ( 'NONE', #519, 39.37007874015748100 ) ;
#556 = CIRCLE ( 'NONE', #912, 0.05999999999999990800 ) ;
#557 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#558 = EDGE_CURVE ( 'NONE', #849, #856, #778, .T. ) ;
#559 = AXIS2_PLACEMENT_3D ( 'NONE', #497, #3, #424 ) ;
#560 = AXIS2_PLACEMENT_3D ( 'NONE', #328, #697, #623 ) ;
#561 = VERTEX_POINT ( 'NONE', #394 ) ;
#562 = ORIENTED_EDGE ( 'NONE', *, *, #288, .F. ) ;
#563 = ADVANCED_FACE ( 'NONE', ( #73 ), #575, .T. ) ;
#564 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#565 = CYLINDRICAL_SURFACE ( 'NONE', #154, 0.3749999999999999400 ) ;
#566 = CALENDAR_DATE ( 2023, 7, 2 ) ;
#567 = CIRCLE ( 'NONE', #64, 0.3749999999999999400 ) ;
#568 = ORIENTED_EDGE ( 'NONE', *, *, #124, .F. ) ;
#569 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#570 = EDGE_CURVE ( 'NONE', #578, #407, #840, .T. ) ;
#571 = MECHANICAL_CONTEXT ( 'NONE', #279, 'mechanical' ) ;
#572 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#573 = ORIENTED_EDGE ( 'NONE', *, *, #133, .T. ) ;
#574 = VERTEX_POINT ( 'NONE', #750 ) ;
#575 = TOROIDAL_SURFACE ( 'NONE', #758, 2.940000000000000400, 0.05999999999999999800 ) ;
#576 = PLANE ( 'NONE', #643 ) ;
#577 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
#578 = VERTEX_POINT ( 'NONE', #889 ) ;
#579 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#580 = AXIS2_PLACEMENT_3D ( 'NONE', #739, #741, #294 ) ;
#581 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
#582 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, 0.3150000000000000600 ) ) ;
#583 = ORIENTED_EDGE ( 'NONE', *, *, #717, .T. ) ;
#584 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#585 = EDGE_CURVE ( 'NONE', #849, #768, #211, .T. ) ;
#586 = EDGE_LOOP ( 'NONE', ( #673, #476, #23, #625 ) ) ;
#587 = ADVANCED_FACE ( 'NONE', ( #265 ), #565, .F. ) ;
#588 = FACE_OUTER_BOUND ( 'NONE', #316, .T. ) ;
#589 = FACE_OUTER_BOUND ( 'NONE', #878, .T. ) ;
#590 = ADVANCED_FACE ( 'NONE', ( #609 ), #368, .T. ) ;
#591 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#592 = AXIS2_PLACEMENT_3D ( 'NONE', #363, #716, #791 ) ;
#593 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#594 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#595 = ORIENTED_EDGE ( 'NONE', *, *, #161, .F. ) ;
#596 = ORIENTED_EDGE ( 'NONE', *, *, #779, .F. ) ;
#597 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#598 = AXIS2_PLACEMENT_3D ( 'NONE', #577, #141, #361 ) ;
#599 = VECTOR ( 'NONE', #451, 39.37007874015748100 ) ;
#600 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#601 = AXIS2_PLACEMENT_3D ( 'NONE', #675, #314, #827 ) ;
#602 = CARTESIAN_POINT ( 'NONE', ( 1.870000000000000100, 2.290089514405550600E-016, 0.3150000000000000600 ) ) ;
#603 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#604 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, -0.6250000000000003300 ) ) ;
#605 = EDGE_CURVE ( 'NONE', #418, #767, #228, .T. ) ;
#606 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #687, #415, ( #899 ) ) ;
#607 = CIRCLE ( 'NONE', #834, 1.446220343900916900 ) ;
#608 = ORIENTED_EDGE ( 'NONE', *, *, #558, .F. ) ;
#609 = FACE_OUTER_BOUND ( 'NONE', #792, .T. ) ;
#610 = FACE_OUTER_BOUND ( 'NONE', #753, .T. ) ;
#611 = CYLINDRICAL_SURFACE ( 'NONE', #439, 1.220000000000000000 ) ;
#612 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, 0.3150000000000000600 ) ) ;
#613 = AXIS2_PLACEMENT_3D ( 'NONE', #489, #918, #911 ) ;
#614 = VERTEX_POINT ( 'NONE', #680 ) ;
#615 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#616 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#617 = ORIENTED_EDGE ( 'NONE', *, *, #885, .F. ) ;
#618 = EDGE_CURVE ( 'NONE', #263, #407, #378, .T. ) ;
#619 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#620 = ORIENTED_EDGE ( 'NONE', *, *, #749, .F. ) ;
#621 = ORIENTED_EDGE ( 'NONE', *, *, #652, .T. ) ;
#622 = CYLINDRICAL_SURFACE ( 'NONE', #844, 0.3749999999999999400 ) ;
#623 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#624 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#625 = ORIENTED_EDGE ( 'NONE', *, *, #322, .F. ) ;
#626 = ORIENTED_EDGE ( 'NONE', *, *, #885, .T. ) ;
#627 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.6250000000000003300 ) ) ;
#628 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
#629 = AXIS2_PLACEMENT_3D ( 'NONE', #873, #225, #740 ) ;
#630 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#631 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#632 = FACE_BOUND ( 'NONE', #166, .T. ) ;
#633 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#634 = ORIENTED_EDGE ( 'NONE', *, *, #239, .T. ) ;
#635 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#636 = FACE_BOUND ( 'NONE', #871, .T. ) ;
#637 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#638 = VECTOR ( 'NONE', #75, 39.37007874015748100 ) ;
#639 = EDGE_CURVE ( 'NONE', #144, #574, #507, .T. ) ;
#640 = ADVANCED_FACE ( 'NONE', ( #759 ), #881, .F. ) ;
#641 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #423, 'distance_accuracy_value', 'NONE');
#642 = ADVANCED_FACE ( 'NONE', ( #24 ), #622, .F. ) ;
#643 = AXIS2_PLACEMENT_3D ( 'NONE', #360, #287, #440 ) ;
#644 = EDGE_LOOP ( 'NONE', ( #653, #837 ) ) ;
#645 = ORIENTED_EDGE ( 'NONE', *, *, #167, .T. ) ;
#646 = VECTOR ( 'NONE', #123, 39.37007874015748100 ) ;
#647 = APPROVAL_ROLE ( '' ) ;
#648 = AXIS2_PLACEMENT_3D ( 'NONE', #436, #297, #733 ) ;
#649 = ADVANCED_FACE ( 'NONE', ( #677 ), #177, .T. ) ;
#650 = APPROVAL ( #853, 'UNSPECIFIED' ) ;
#651 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, 0.3150000000000000600 ) ) ;
#652 = EDGE_CURVE ( 'NONE', #27, #262, #457, .T. ) ;
#653 = ORIENTED_EDGE ( 'NONE', *, *, #88, .F. ) ;
#654 = APPROVAL ( #138, 'UNSPECIFIED' ) ;
#655 = ORIENTED_EDGE ( 'NONE', *, *, #570, .F. ) ;
#656 = FACE_OUTER_BOUND ( 'NONE', #686, .T. ) ;
#657 = APPROVAL_PERSON_ORGANIZATION ( #369, #139, #140 ) ;
#658 = FACE_OUTER_BOUND ( 'NONE', #181, .T. ) ;
#659 = ORIENTED_EDGE ( 'NONE', *, *, #867, .T. ) ;
#660 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#661 = AXIS2_PLACEMENT_3D ( 'NONE', #434, #33, #248 ) ;
#662 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#663 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
#664 = EDGE_CURVE ( 'NONE', #786, #893, #528, .T. ) ;
#665 = VERTEX_POINT ( 'NONE', #769 ) ;
#666 = ORIENTED_EDGE ( 'NONE', *, *, #730, .F. ) ;
#667 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#668 = FACE_OUTER_BOUND ( 'NONE', #32, .T. ) ;
#669 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#670 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#671 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#672 = CARTESIAN_POINT ( 'NONE', ( -1.523530746774877300, 1.865787052440430200E-016, -0.4276878393956912200 ) ) ;
#673 = ORIENTED_EDGE ( 'NONE', *, *, #639, .T. ) ;
#674 = VERTEX_POINT ( 'NONE', #54 ) ;
#675 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
#676 = AXIS2_PLACEMENT_3D ( 'NONE', #755, #386, #170 ) ;
#677 = FACE_OUTER_BOUND ( 'NONE', #218, .T. ) ;
#678 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #859 ) ;
#679 = FACE_OUTER_BOUND ( 'NONE', #320, .T. ) ;
#680 = CARTESIAN_POINT ( 'NONE', ( -1.446220343900916900, 1.807574669048449600E-016, -0.6250000000000001100 ) ) ;
#681 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#682 = EDGE_CURVE ( 'NONE', #69, #90, #699, .T. ) ;
#683 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#684 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#685 = EDGE_LOOP ( 'NONE', ( #308, #583 ) ) ;
#686 = EDGE_LOOP ( 'NONE', ( #479, #50 ) ) ;
#687 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#688 = CIRCLE ( 'NONE', #790, 1.523530746774877300 ) ;
#689 = ORIENTED_EDGE ( 'NONE', *, *, #618, .T. ) ;
#690 = CARTESIAN_POINT ( 'NONE', ( -1.446220343900916900, 1.771109115020042200E-016, -0.5650000000000001700 ) ) ;
#691 = VERTEX_POINT ( 'NONE', #330 ) ;
#692 = ORIENTED_EDGE ( 'NONE', *, *, #537, .F. ) ;
#693 = AXIS2_PLACEMENT_3D ( 'NONE', #863, #358, #347 ) ;
#694 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
#695 = AXIS2_PLACEMENT_3D ( 'NONE', #39, #814, #763 ) ;
#696 = ORIENTED_EDGE ( 'NONE', *, *, #505, .T. ) ;
#697 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#698 = ORIENTED_EDGE ( 'NONE', *, *, #414, .T. ) ;
#699 = CIRCLE ( 'NONE', #560, 1.523530746774877300 ) ;
#700 = EDGE_CURVE ( 'NONE', #561, #376, #808, .T. ) ;
#701 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #667 ) ;
#702 = TOROIDAL_SURFACE ( 'NONE', #629, 2.940000000000000400, 0.05999999999999999800 ) ;
#703 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, -0.6250000000000003300 ) ) ;
#704 = AXIS2_PLACEMENT_3D ( 'NONE', #422, #876, #446 ) ;
#705 = ORIENTED_EDGE ( 'NONE', *, *, #10, .F. ) ;
#706 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
#707 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#708 = AXIS2_PLACEMENT_3D ( 'NONE', #109, #683, #681 ) ;
#709 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
#710 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.499303859774273800, -0.6250000000000001100 ) ) ;
#711 = ORIENTED_EDGE ( 'NONE', *, *, #76, .T. ) ;
#712 = ORIENTED_EDGE ( 'NONE', *, *, #838, .F. ) ;
#713 = CIRCLE ( 'NONE', #307, 1.446220343900916900 ) ;
#714 = CIRCLE ( 'NONE', #30, 0.3749999999999999400 ) ;
#715 = EDGE_CURVE ( 'NONE', #830, #209, #482, .T. ) ;
#716 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#717 = EDGE_CURVE ( 'NONE', #893, #786, #201, .T. ) ;
#718 = ADVANCED_FACE ( 'NONE', ( #82 ), #443, .T. ) ;
#719 = CC_DESIGN_APPROVAL ( #650, ( #899 ) ) ;
#720 = ORIENTED_EDGE ( 'NONE', *, *, #68, .F. ) ;
#721 = ORIENTED_EDGE ( 'NONE', *, *, #730, .T. ) ;
#722 = FACE_OUTER_BOUND ( 'NONE', #776, .T. ) ;
#723 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
#724 = FACE_OUTER_BOUND ( 'NONE', #744, .T. ) ;
#725 = ADVANCED_FACE ( 'NONE', ( #857 ), #819, .T. ) ;
#726 = AXIS2_PLACEMENT_3D ( 'NONE', #591, #160, #157 ) ;
#727 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, 0.3750000000000000600 ) ) ;
#728 = ADVANCED_FACE ( 'NONE', ( #255 ), #419, .F. ) ;
#729 = CARTESIAN_POINT ( 'NONE', ( -1.870000000000000100, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#730 = EDGE_CURVE ( 'NONE', #893, #69, #14, .T. ) ;
#731 = ORIENTED_EDGE ( 'NONE', *, *, #715, .F. ) ;
#732 = VECTOR ( 'NONE', #635, 39.37007874015748100 ) ;
#733 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#734 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#735 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#736 = FACE_OUTER_BOUND ( 'NONE', #514, .T. ) ;
#737 = ORIENTED_EDGE ( 'NONE', *, *, #55, .T. ) ;
#738 = EDGE_LOOP ( 'NONE', ( #103, #659, #862, #617 ) ) ;
#739 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#740 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#741 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
#742 = AXIS2_PLACEMENT_3D ( 'NONE', #234, #49, #545 ) ;
#743 = VERTEX_POINT ( 'NONE', #277 ) ;
#744 = EDGE_LOOP ( 'NONE', ( #493, #568, #905, #341 ) ) ;
#745 = CIRCLE ( 'NONE', #447, 0.3749999999999999400 ) ;
#746 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147359900E-016, 0.0000000000000000000 ) ) ;
#747 = FACE_OUTER_BOUND ( 'NONE', #259, .T. ) ;
#748 = PLANE ( 'NONE', #121 ) ;
#749 = EDGE_CURVE ( 'NONE', #199, #561, #402, .T. ) ;
#750 = CARTESIAN_POINT ( 'NONE', ( -1.505773112999396800, 1.854913637758643400E-016, -0.5723121606043081200 ) ) ;
#751 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
#752 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #548 ) ) ;
#753 = EDGE_LOOP ( 'NONE', ( #502, #467, #892, #756 ) ) ;
#754 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#755 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
#756 = ORIENTED_EDGE ( 'NONE', *, *, #520, .F. ) ;
#757 = VERTEX_POINT ( 'NONE', #504 ) ;
#758 = AXIS2_PLACEMENT_3D ( 'NONE', #382, #380, #28 ) ;
#759 = FACE_OUTER_BOUND ( 'NONE', #333, .T. ) ;
#760 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, -0.3750000000000001700 ) ) ;
#761 = CIRCLE ( 'NONE', #233, 1.220000000000000000 ) ;
#762 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#763 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#764 = EDGE_CURVE ( 'NONE', #437, #772, #336, .T. ) ;
#765 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
#766 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
#767 = VERTEX_POINT ( 'NONE', #501 ) ;
#768 = VERTEX_POINT ( 'NONE', #663 ) ;
#769 = CARTESIAN_POINT ( 'NONE', ( 1.810000000000000100, 2.253350110431129800E-016, 0.3750000000000000600 ) ) ;
#770 = CIRCLE ( 'NONE', #695, 1.810000000000000100 ) ;
#771 = ORIENTED_EDGE ( 'NONE', *, *, #197, .T. ) ;
#772 = VERTEX_POINT ( 'NONE', #582 ) ;
#773 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.530000000000000000, -0.3750000000000001700 ) ) ;
#774 = AXIS2_PLACEMENT_3D ( 'NONE', #526, #101, #243 ) ;
#775 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#776 = EDGE_LOOP ( 'NONE', ( #246, #721, #282, #720 ) ) ;
#777 = VERTEX_POINT ( 'NONE', #438 ) ;
#778 = LINE ( 'NONE', #824, #599 ) ;
#779 = EDGE_CURVE ( 'NONE', #772, #262, #128, .T. ) ;
#780 = CIRCLE ( 'NONE', #299, 1.870000000000000100 ) ;
#781 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#782 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#783 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#784 = CC_DESIGN_APPROVAL ( #139, ( #508 ) ) ;
#785 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#786 = VERTEX_POINT ( 'NONE', #371 ) ;
#787 = ORIENTED_EDGE ( 'NONE', *, *, #639, .F. ) ;
#788 = APPROVAL_ROLE ( '' ) ;
#789 = CIRCLE ( 'NONE', #131, 0.3749999999999999400 ) ;
#790 = AXIS2_PLACEMENT_3D ( 'NONE', #521, #229, #515 ) ;
#791 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#792 = EDGE_LOOP ( 'NONE', ( #80, #620, #737, #214 ) ) ;
#793 = ORIENTED_EDGE ( 'NONE', *, *, #118, .T. ) ;
#794 = EDGE_CURVE ( 'NONE', #332, #830, #284, .T. ) ;
#795 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #202, #272, ( #508 ) ) ;
#796 = CYLINDRICAL_SURFACE ( 'NONE', #708, 0.3749999999999999400 ) ;
#797 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
#798 = ORIENTED_EDGE ( 'NONE', *, *, #19, .F. ) ;
#799 = FACE_BOUND ( 'NONE', #188, .T. ) ;
#800 = TOROIDAL_SURFACE ( 'NONE', #704, 1.870000000000000100, 0.05999999999999999800 ) ;
#801 = CIRCLE ( 'NONE', #861, 3.000000000000000400 ) ;
#802 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, -0.3150000000000002800 ) ) ;
#803 = AXIS2_PLACEMENT_3D ( 'NONE', #619, #183, #470 ) ;
#804 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
#805 = EDGE_CURVE ( 'NONE', #554, #665, #770, .T. ) ;
#806 = ORIENTED_EDGE ( 'NONE', *, *, #25, .T. ) ;
#807 = ORIENTED_EDGE ( 'NONE', *, *, #805, .T. ) ;
#808 = CIRCLE ( 'NONE', #344, 0.05999999999999990800 ) ;
#809 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#810 = ADVANCED_FACE ( 'NONE', ( #8 ), #145, .F. ) ;
#811 = CLOSED_SHELL ( 'NONE', ( #159, #151, #563, #864, #512, #375, #5, #642, #85, #269, #810, #409, #718, #870, #420, #291, #224, #649, #848, #728, #640, #283, #587, #725, #435, #426, #590, #874 ) ) ;
#812 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#813 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#814 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#815 = AXIS2_PLACEMENT_3D ( 'NONE', #448, #26, #15 ) ;
#816 = ORIENTED_EDGE ( 'NONE', *, *, #150, .T. ) ;
#817 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
#818 = ORIENTED_EDGE ( 'NONE', *, *, #355, .T. ) ;
#819 = TOROIDAL_SURFACE ( 'NONE', #598, 1.446220343900916900, 0.05999999999999999800 ) ;
#820 = CIRCLE ( 'NONE', #500, 0.3749999999999999400 ) ;
#821 = FACE_OUTER_BOUND ( 'NONE', #475, .T. ) ;
#822 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
#823 = EDGE_CURVE ( 'NONE', #27, #437, #745, .T. ) ;
#824 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, -0.6250000000000003300 ) ) ;
#825 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#826 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#827 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#828 = ORIENTED_EDGE ( 'NONE', *, *, #405, .F. ) ;
#829 = CC_DESIGN_APPROVAL ( #654, ( #473 ) ) ;
#830 = VERTEX_POINT ( 'NONE', #536 ) ;
#831 = CIRCLE ( 'NONE', #580, 0.05999999999999997700 ) ;
#832 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.3750000000000001700 ) ) ;
#833 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#834 = AXIS2_PLACEMENT_3D ( 'NONE', #165, #237, #458 ) ;
#835 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#836 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.6250000000000003300 ) ) ;
#837 = ORIENTED_EDGE ( 'NONE', *, *, #618, .F. ) ;
#838 = EDGE_CURVE ( 'NONE', #574, #69, #429, .T. ) ;
#839 = ORIENTED_EDGE ( 'NONE', *, *, #913, .T. ) ;
#840 = LINE ( 'NONE', #311, #48 ) ;
#841 = CALENDAR_DATE ( 2023, 7, 2 ) ;
#842 = FACE_BOUND ( 'NONE', #387, .T. ) ;
#843 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, -0.6250000000000003300 ) ) ;
#844 = AXIS2_PLACEMENT_3D ( 'NONE', #627, #630, #775 ) ;
#845 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#846 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#847 = ORIENTED_EDGE ( 'NONE', *, *, #465, .T. ) ;
#848 = ADVANCED_FACE ( 'NONE', ( #190, #656, #636, #354, #169, #906 ), #748, .F. ) ;
#849 = VERTEX_POINT ( 'NONE', #108 ) ;
#850 = EDGE_CURVE ( 'NONE', #743, #418, #242, .T. ) ;
#851 = CIRCLE ( 'NONE', #81, 0.3749999999999999400 ) ;
#852 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#853 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#854 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#855 = ORIENTED_EDGE ( 'NONE', *, *, #898, .F. ) ;
#856 = VERTEX_POINT ( 'NONE', #38 ) ;
#857 = FACE_OUTER_BOUND ( 'NONE', #552, .T. ) ;
#858 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#859 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#860 = CIRCLE ( 'NONE', #462, 0.3749999999999999400 ) ;
#861 = AXIS2_PLACEMENT_3D ( 'NONE', #804, #302, #812 ) ;
#862 = ORIENTED_EDGE ( 'NONE', *, *, #372, .T. ) ;
#863 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
#864 = ADVANCED_FACE ( 'NONE', ( #722 ), #104, .F. ) ;
#865 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#866 = MANIFOLD_SOLID_BREP ( 'Fillet1', #811 ) ;
#867 = EDGE_CURVE ( 'NONE', #506, #777, #309, .T. ) ;
#868 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#869 = ORIENTED_EDGE ( 'NONE', *, *, #288, .T. ) ;
#870 = ADVANCED_FACE ( 'NONE', ( #588, #799, #219, #388, #632, #117 ), #576, .F. ) ;
#871 = EDGE_LOOP ( 'NONE', ( #428, #62 ) ) ;
#872 = LINE ( 'NONE', #413, #884 ) ;
#873 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
#874 = ADVANCED_FACE ( 'NONE', ( #610 ), #800, .F. ) ;
#875 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#876 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#877 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#878 = EDGE_LOOP ( 'NONE', ( #692, #385, #855, #400 ) ) ;
#879 = ORIENTED_EDGE ( 'NONE', *, *, #372, .F. ) ;
#880 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.3750000000000001700 ) ) ;
#881 = CYLINDRICAL_SURFACE ( 'NONE', #511, 0.3749999999999999400 ) ;
#882 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#883 = CALENDAR_DATE ( 2023, 7, 2 ) ;
#884 = VECTOR ( 'NONE', #196, 39.37007874015748100 ) ;
#885 = EDGE_CURVE ( 'NONE', #31, #376, #342, .T. ) ;
#886 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#887 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#888 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#889 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
#890 = AXIS2_PLACEMENT_3D ( 'NONE', #452, #822, #603 ) ;
#891 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#892 = ORIENTED_EDGE ( 'NONE', *, *, #212, .T. ) ;
#893 = VERTEX_POINT ( 'NONE', #230 ) ;
#894 = APPROVAL_PERSON_ORGANIZATION ( #83, #654, #647 ) ;
#895 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
#896 = CIRCLE ( 'NONE', #742, 1.220000000000000000 ) ;
#897 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#898 = EDGE_CURVE ( 'NONE', #757, #209, #820, .T. ) ;
#899 = SECURITY_CLASSIFICATION ( '', '', #206 ) ;
#900 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#901 = EDGE_CURVE ( 'NONE', #614, #691, #713, .T. ) ;
#902 = ORIENTED_EDGE ( 'NONE', *, *, #178, .F. ) ;
#903 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, -0.6250000000000003300 ) ) ;
#904 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #641 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #423, #63, #488 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#905 = ORIENTED_EDGE ( 'NONE', *, *, #405, .T. ) ;
#906 = FACE_BOUND ( 'NONE', #240, .T. ) ;
#907 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
#908 = FACE_BOUND ( 'NONE', #644, .T. ) ;
#909 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#910 = ORIENTED_EDGE ( 'NONE', *, *, #25, .F. ) ;
#911 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#912 = AXIS2_PLACEMENT_3D ( 'NONE', #232, #179, #390 ) ;
#913 = EDGE_CURVE ( 'NONE', #332, #757, #136, .T. ) ;
#914 = ORIENTED_EDGE ( 'NONE', *, *, #338, .T. ) ;
#915 = VECTOR ( 'NONE', #9, 39.37007874015748100 ) ;
#916 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
#917 = CIRCLE ( 'NONE', #191, 1.220000000000000000 ) ;
#918 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
ENDSEC;
END-ISO-10303-21;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,269 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP203' ),
'1' );
FILE_NAME ('9472K188_Oil-Resistant Aramid-Buna-N Gasket.STEP',
'2022-11-17T21:46:33',
( 'Administrator' ),
( 'Managed by Terraform' ),
'SwSTEP 2.0',
'SolidWorks 2017',
'' );
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
ENDSEC;
DATA;
#1 = EDGE_CURVE ( 'NONE', #251, #149, #124, .T. ) ;
#2 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#3 = SECURITY_CLASSIFICATION ( '', '', #150 ) ;
#4 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#5 = AXIS2_PLACEMENT_3D ( 'NONE', #243, #143, #82 ) ;
#6 = DATE_AND_TIME ( #211, #125 ) ;
#7 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#8 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #87 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #64, #168, #7 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#9 = EDGE_LOOP ( 'NONE', ( #55, #200 ) ) ;
#10 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#11 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#12 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#13 = CALENDAR_DATE ( 2022, 17, 11 ) ;
#14 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #172 ) ;
#15 = CIRCLE ( 'NONE', #186, 1.187500000000000000 ) ;
#16 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
#17 = EDGE_CURVE ( 'NONE', #149, #114, #236, .T. ) ;
#18 = ORIENTED_EDGE ( 'NONE', *, *, #178, .T. ) ;
#19 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#20 = AXIS2_PLACEMENT_3D ( 'NONE', #135, #198, #19 ) ;
#21 = CIRCLE ( 'NONE', #91, 2.062500000000000000 ) ;
#22 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #221 ) ;
#23 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#24 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#25 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#26 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, -0.01562500000000000000 ) ) ;
#27 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
#28 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#29 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '9472K188_Oil-Resistant Aramid-Buna-N Gasket', ( #118, #194 ), #8 ) ;
#30 = AXIS2_PLACEMENT_3D ( 'NONE', #235, #39, #216 ) ;
#31 = ADVANCED_FACE ( 'NONE', ( #40 ), #192, .F. ) ;
#32 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #6, #212, ( #3 ) ) ;
#33 = ORIENTED_EDGE ( 'NONE', *, *, #171, .F. ) ;
#34 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#35 = ADVANCED_FACE ( 'NONE', ( #232 ), #132, .T. ) ;
#36 = CIRCLE ( 'NONE', #44, 1.187500000000000000 ) ;
#37 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#38 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#39 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#40 = FACE_OUTER_BOUND ( 'NONE', #54, .T. ) ;
#41 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#42 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #139, .NOT_KNOWN. ) ;
#43 = EDGE_LOOP ( 'NONE', ( #242, #57 ) ) ;
#44 = AXIS2_PLACEMENT_3D ( 'NONE', #131, #134, #38 ) ;
#45 = ORIENTED_EDGE ( 'NONE', *, *, #71, .T. ) ;
#46 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#47 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
#48 = ORIENTED_EDGE ( 'NONE', *, *, #99, .F. ) ;
#49 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#50 = DATE_TIME_ROLE ( 'creation_date' ) ;
#51 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #41, #210, ( #42 ) ) ;
#52 = ORIENTED_EDGE ( 'NONE', *, *, #115, .T. ) ;
#53 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #58, #148, ( #139 ) ) ;
#54 = EDGE_LOOP ( 'NONE', ( #116, #188, #179, #48 ) ) ;
#55 = ORIENTED_EDGE ( 'NONE', *, *, #59, .T. ) ;
#56 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #42, #225 ) ;
#57 = ORIENTED_EDGE ( 'NONE', *, *, #140, .F. ) ;
#58 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#59 = EDGE_CURVE ( 'NONE', #149, #251, #103, .T. ) ;
#60 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#61 = FACE_BOUND ( 'NONE', #80, .T. ) ;
#62 = ORIENTED_EDGE ( 'NONE', *, *, #99, .T. ) ;
#63 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#64 =( CONVERSION_BASED_UNIT ( 'INCH', #155 ) LENGTH_UNIT ( ) NAMED_UNIT ( #16 ) );
#65 = ORIENTED_EDGE ( 'NONE', *, *, #111, .F. ) ;
#66 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#67 = DATE_AND_TIME ( #13, #183 ) ;
#68 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#69 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#70 = APPROVAL_ROLE ( '' ) ;
#71 = EDGE_CURVE ( 'NONE', #251, #176, #249, .T. ) ;
#72 = LINE ( 'NONE', #189, #201 ) ;
#73 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#74 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #67, #50, ( #56 ) ) ;
#75 = ORIENTED_EDGE ( 'NONE', *, *, #17, .T. ) ;
#76 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#77 = EDGE_CURVE ( 'NONE', #160, #213, #36, .T. ) ;
#78 = ADVANCED_FACE ( 'NONE', ( #141 ), #128, .F. ) ;
#79 = FACE_BOUND ( 'NONE', #43, .T. ) ;
#80 = EDGE_LOOP ( 'NONE', ( #52, #62 ) ) ;
#81 = PLANE ( 'NONE', #157 ) ;
#82 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#83 = FACE_OUTER_BOUND ( 'NONE', #9, .T. ) ;
#84 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#85 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #244, #27, ( #42 ) ) ;
#86 = CLOSED_SHELL ( 'NONE', ( #78, #35, #92, #177, #130, #31 ) ) ;
#87 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #64, 'distance_accuracy_value', 'NONE');
#88 = APPROVAL_ROLE ( '' ) ;
#89 = CIRCLE ( 'NONE', #203, 1.187500000000000000 ) ;
#90 = APPROVAL_PERSON_ORGANIZATION ( #76, #153, #88 ) ;
#91 = AXIS2_PLACEMENT_3D ( 'NONE', #165, #208, #205 ) ;
#92 = ADVANCED_FACE ( 'NONE', ( #83, #79 ), #81, .T. ) ;
#93 = ORIENTED_EDGE ( 'NONE', *, *, #71, .F. ) ;
#94 = DATE_AND_TIME ( #145, #120 ) ;
#95 = ORIENTED_EDGE ( 'NONE', *, *, #115, .F. ) ;
#96 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#97 = AXIS2_PLACEMENT_3D ( 'NONE', #12, #63, #162 ) ;
#98 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#99 = EDGE_CURVE ( 'NONE', #163, #107, #89, .T. ) ;
#100 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
#101 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, 0.01562500000000000000 ) ) ;
#102 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 0.01562500000000000000 ) ) ;
#103 = CIRCLE ( 'NONE', #105, 2.062500000000000000 ) ;
#104 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#105 = AXIS2_PLACEMENT_3D ( 'NONE', #147, #73, #152 ) ;
#106 = CYLINDRICAL_SURFACE ( 'NONE', #97, 2.062500000000000000 ) ;
#107 = VERTEX_POINT ( 'NONE', #240 ) ;
#108 = AXIS2_PLACEMENT_3D ( 'NONE', #174, #127, #245 ) ;
#109 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #56 ) ;
#110 = ORIENTED_EDGE ( 'NONE', *, *, #1, .F. ) ;
#111 = EDGE_CURVE ( 'NONE', #114, #176, #21, .T. ) ;
#112 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#113 = FACE_OUTER_BOUND ( 'NONE', #209, .T. ) ;
#114 = VERTEX_POINT ( 'NONE', #23 ) ;
#115 = EDGE_CURVE ( 'NONE', #107, #163, #246, .T. ) ;
#116 = ORIENTED_EDGE ( 'NONE', *, *, #193, .F. ) ;
#117 = CALENDAR_DATE ( 2022, 17, 11 ) ;
#118 = MANIFOLD_SOLID_BREP ( 'Boss-Extrude1', #86 ) ;
#119 = AXIS2_PLACEMENT_3D ( 'NONE', #234, #4, #112 ) ;
#120 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #96 ) ;
#121 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#122 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#123 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#124 = CIRCLE ( 'NONE', #30, 2.062500000000000000 ) ;
#125 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #233 ) ;
#126 = MECHANICAL_CONTEXT ( 'NONE', #46, 'mechanical' ) ;
#127 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#128 = CYLINDRICAL_SURFACE ( 'NONE', #108, 1.187500000000000000 ) ;
#129 = EDGE_LOOP ( 'NONE', ( #182, #202, #95, #33 ) ) ;
#130 = ADVANCED_FACE ( 'NONE', ( #238 ), #106, .T. ) ;
#131 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#132 = CYLINDRICAL_SURFACE ( 'NONE', #20, 2.062500000000000000 ) ;
#133 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#134 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#135 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#136 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #37, #47, ( #3 ) ) ;
#137 = EDGE_LOOP ( 'NONE', ( #110, #45, #18, #227 ) ) ;
#138 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
#139 = PRODUCT ( '9472K188_Oil-Resistant Aramid-Buna-N Gasket', '9472K188_Oil-Resistant Aramid-Buna-N Gasket', '', ( #126 ) ) ;
#140 = EDGE_CURVE ( 'NONE', #213, #160, #15, .T. ) ;
#141 = FACE_OUTER_BOUND ( 'NONE', #129, .T. ) ;
#142 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#143 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#144 = ORIENTED_EDGE ( 'NONE', *, *, #59, .F. ) ;
#145 = CALENDAR_DATE ( 2022, 17, 11 ) ;
#146 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#147 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#148 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
#149 = VERTEX_POINT ( 'NONE', #167 ) ;
#150 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
#151 = APPROVAL_DATE_TIME ( #180, #153 ) ;
#152 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#153 = APPROVAL ( #170, 'UNSPECIFIED' ) ;
#154 = ORIENTED_EDGE ( 'NONE', *, *, #178, .F. ) ;
#155 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #100 );
#156 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#157 = AXIS2_PLACEMENT_3D ( 'NONE', #68, #185, #206 ) ;
#158 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#159 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
#160 = VERTEX_POINT ( 'NONE', #146 ) ;
#161 = SHAPE_DEFINITION_REPRESENTATION ( #109, #29 ) ;
#162 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#163 = VERTEX_POINT ( 'NONE', #226 ) ;
#164 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#165 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#166 = APPROVAL ( #229, 'UNSPECIFIED' ) ;
#167 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#168 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#169 = VECTOR ( 'NONE', #156, 39.37007874015748100 ) ;
#170 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#171 = EDGE_CURVE ( 'NONE', #160, #107, #217, .T. ) ;
#172 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#173 = VECTOR ( 'NONE', #122, 39.37007874015748100 ) ;
#174 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#175 = APPROVAL ( #69, 'UNSPECIFIED' ) ;
#176 = VERTEX_POINT ( 'NONE', #26 ) ;
#177 = ADVANCED_FACE ( 'NONE', ( #113, #61 ), #247, .F. ) ;
#178 = EDGE_CURVE ( 'NONE', #176, #114, #252, .T. ) ;
#179 = ORIENTED_EDGE ( 'NONE', *, *, #171, .T. ) ;
#180 = DATE_AND_TIME ( #228, #22 ) ;
#181 = AXIS2_PLACEMENT_3D ( 'NONE', #25, #187, #11 ) ;
#182 = ORIENTED_EDGE ( 'NONE', *, *, #77, .T. ) ;
#183 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #133 ) ;
#184 = APPROVAL_DATE_TIME ( #94, #175 ) ;
#185 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#186 = AXIS2_PLACEMENT_3D ( 'NONE', #66, #224, #142 ) ;
#187 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#188 = ORIENTED_EDGE ( 'NONE', *, *, #140, .T. ) ;
#189 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 0.01562500000000000000 ) ) ;
#190 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #46 ) ;
#191 = APPROVAL_ROLE ( '' ) ;
#192 = CYLINDRICAL_SURFACE ( 'NONE', #119, 1.187500000000000000 ) ;
#193 = EDGE_CURVE ( 'NONE', #213, #163, #72, .T. ) ;
#194 = AXIS2_PLACEMENT_3D ( 'NONE', #84, #98, #123 ) ;
#195 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #237 ) ;
#196 = VECTOR ( 'NONE', #104, 39.37007874015748100 ) ;
#197 = APPROVAL_DATE_TIME ( #214, #166 ) ;
#198 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#199 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #139 ) ) ;
#200 = ORIENTED_EDGE ( 'NONE', *, *, #1, .T. ) ;
#201 = VECTOR ( 'NONE', #222, 39.37007874015748100 ) ;
#202 = ORIENTED_EDGE ( 'NONE', *, *, #193, .T. ) ;
#203 = AXIS2_PLACEMENT_3D ( 'NONE', #121, #248, #164 ) ;
#204 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, 0.01562500000000000000 ) ) ;
#205 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#206 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#207 = CC_DESIGN_APPROVAL ( #166, ( #56 ) ) ;
#208 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#209 = EDGE_LOOP ( 'NONE', ( #65, #154 ) ) ;
#210 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#211 = CALENDAR_DATE ( 2022, 17, 11 ) ;
#212 = DATE_TIME_ROLE ( 'classification_date' ) ;
#213 = VERTEX_POINT ( 'NONE', #102 ) ;
#214 = DATE_AND_TIME ( #117, #195 ) ;
#215 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #34, #28, ( #56 ) ) ;
#216 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#217 = LINE ( 'NONE', #241, #173 ) ;
#218 = ORIENTED_EDGE ( 'NONE', *, *, #111, .T. ) ;
#219 = CC_DESIGN_SECURITY_CLASSIFICATION ( #3, ( #42 ) ) ;
#220 = EDGE_LOOP ( 'NONE', ( #93, #144, #75, #218 ) ) ;
#221 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#222 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#223 = CC_DESIGN_APPROVAL ( #153, ( #3 ) ) ;
#224 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#225 = DESIGN_CONTEXT ( 'detailed design', #172, 'design' ) ;
#226 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, -0.01562500000000000000 ) ) ;
#227 = ORIENTED_EDGE ( 'NONE', *, *, #17, .F. ) ;
#228 = CALENDAR_DATE ( 2022, 17, 11 ) ;
#229 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#230 = APPROVAL_PERSON_ORGANIZATION ( #2, #175, #191 ) ;
#231 = AXIS2_PLACEMENT_3D ( 'NONE', #10, #24, #60 ) ;
#232 = FACE_OUTER_BOUND ( 'NONE', #137, .T. ) ;
#233 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#234 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#235 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#236 = LINE ( 'NONE', #158, #169 ) ;
#237 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#238 = FACE_OUTER_BOUND ( 'NONE', #220, .T. ) ;
#239 = APPROVAL_PERSON_ORGANIZATION ( #49, #166, #70 ) ;
#240 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#241 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
#242 = ORIENTED_EDGE ( 'NONE', *, *, #77, .F. ) ;
#243 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
#244 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
#245 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#246 = CIRCLE ( 'NONE', #231, 1.187500000000000000 ) ;
#247 = PLANE ( 'NONE', #181 ) ;
#248 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#249 = LINE ( 'NONE', #101, #196 ) ;
#250 = CC_DESIGN_APPROVAL ( #175, ( #42 ) ) ;
#251 = VERTEX_POINT ( 'NONE', #204 ) ;
#252 = CIRCLE ( 'NONE', #5, 2.062500000000000000 ) ;
ENDSEC;
END-ISO-10303-21;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,373 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP203' ),
'1' );
FILE_NAME ('98017A257_18-8 Stainless Steel Mil. Spec. Washer.STEP',
'2023-09-12T13:39:25',
( 'Administrator' ),
( 'Managed by Terraform' ),
'SwSTEP 2.0',
'SolidWorks 2017',
'' );
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
ENDSEC;
DATA;
#1 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, -0.01600000000000001800 ) ) ;
#2 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#3 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
#4 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#5 = FACE_BOUND ( 'NONE', #226, .T. ) ;
#6 = APPROVAL ( #354, 'UNSPECIFIED' ) ;
#7 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #120 ) ;
#8 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#9 = CIRCLE ( 'NONE', #260, 0.3200000000000000100 ) ;
#10 = VERTEX_POINT ( 'NONE', #20 ) ;
#11 = AXIS2_PLACEMENT_3D ( 'NONE', #108, #220, #275 ) ;
#12 = CYLINDRICAL_SURFACE ( 'NONE', #11, 0.3200000000000000100 ) ;
#13 = FACE_OUTER_BOUND ( 'NONE', #312, .T. ) ;
#14 = VERTEX_POINT ( 'NONE', #1 ) ;
#15 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#16 = ORIENTED_EDGE ( 'NONE', *, *, #31, .T. ) ;
#17 = AXIS2_PLACEMENT_3D ( 'NONE', #130, #23, #272 ) ;
#18 = ORIENTED_EDGE ( 'NONE', *, *, #188, .T. ) ;
#19 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#20 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, 0.01280000000000027500 ) ) ;
#21 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#22 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #84 ) ) ;
#23 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, -0.0000000000000000000 ) ) ;
#24 = CALENDAR_DATE ( 2023, 12, 9 ) ;
#25 = FACE_OUTER_BOUND ( 'NONE', #137, .T. ) ;
#26 = AXIS2_PLACEMENT_3D ( 'NONE', #131, #306, #147 ) ;
#27 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#28 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#29 = CIRCLE ( 'NONE', #250, 0.5939999999999999700 ) ;
#30 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#31 = EDGE_CURVE ( 'NONE', #223, #296, #29, .T. ) ;
#32 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#33 = CALENDAR_DATE ( 2023, 12, 9 ) ;
#34 = VERTEX_POINT ( 'NONE', #27 ) ;
#35 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#36 = CALENDAR_DATE ( 2023, 12, 9 ) ;
#37 = ORIENTED_EDGE ( 'NONE', *, *, #230, .F. ) ;
#38 = ORIENTED_EDGE ( 'NONE', *, *, #341, .T. ) ;
#39 = AXIS2_PLACEMENT_3D ( 'NONE', #182, #123, #21 ) ;
#40 = VERTEX_POINT ( 'NONE', #346 ) ;
#41 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #54 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #73, #214, #268 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#42 = ADVANCED_FACE ( 'NONE', ( #5, #25 ), #238, .T. ) ;
#43 = TOROIDAL_SURFACE ( 'NONE', #200, 0.3271554175279990400, 0.009600000000000000900 ) ;
#44 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
#45 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147356200E-016, 0.0000000000000000000 ) ) ;
#46 = EDGE_CURVE ( 'NONE', #223, #271, #286, .T. ) ;
#47 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #169 ) ;
#48 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#49 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #241 ) ;
#50 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#51 = CYLINDRICAL_SURFACE ( 'NONE', #274, 0.5939999999999999700 ) ;
#52 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #90, #126, ( #248 ) ) ;
#53 = ORIENTED_EDGE ( 'NONE', *, *, #349, .F. ) ;
#54 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #73, 'distance_accuracy_value', 'NONE');
#55 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, 0.01599999999999998300 ) ) ;
#56 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#57 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
#58 = ORIENTED_EDGE ( 'NONE', *, *, #93, .F. ) ;
#59 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#60 = DATE_AND_TIME ( #36, #7 ) ;
#61 = EDGE_CURVE ( 'NONE', #34, #14, #235, .T. ) ;
#62 = EDGE_LOOP ( 'NONE', ( #282, #38, #82, #141 ) ) ;
#63 = VERTEX_POINT ( 'NONE', #320 ) ;
#64 = APPROVAL_PERSON_ORGANIZATION ( #281, #114, #75 ) ;
#65 = ORIENTED_EDGE ( 'NONE', *, *, #313, .F. ) ;
#66 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#67 = EDGE_CURVE ( 'NONE', #63, #315, #342, .T. ) ;
#68 = CIRCLE ( 'NONE', #256, 0.3271554175279990400 ) ;
#69 = DATE_TIME_ROLE ( 'creation_date' ) ;
#70 = TOROIDAL_SURFACE ( 'NONE', #138, 0.5868445824720007800, 0.009600000000000000900 ) ;
#71 = CLOSED_SHELL ( 'NONE', ( #155, #292, #326, #295, #42, #247, #101, #179, #344, #97 ) ) ;
#72 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#73 =( CONVERSION_BASED_UNIT ( 'INCH', #333 ) LENGTH_UNIT ( ) NAMED_UNIT ( #262 ) );
#74 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#75 = APPROVAL_ROLE ( '' ) ;
#76 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #186, #285 ) ;
#77 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#78 = CYLINDRICAL_SURFACE ( 'NONE', #26, 0.5939999999999999700 ) ;
#79 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#80 = CIRCLE ( 'NONE', #219, 0.009600000000000000900 ) ;
#81 = APPROVAL ( #294, 'UNSPECIFIED' ) ;
#82 = ORIENTED_EDGE ( 'NONE', *, *, #31, .F. ) ;
#83 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#84 = PRODUCT ( '98017A257_18-8 Stainless Steel Mil. Spec. Washer', '98017A257_18-8 Stainless Steel Mil. Spec. Washer', '', ( #100 ) ) ;
#85 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #15 ) ;
#86 = CIRCLE ( 'NONE', #17, 0.009600000000000014800 ) ;
#87 = SHAPE_DEFINITION_REPRESENTATION ( #206, #345 ) ;
#88 = CIRCLE ( 'NONE', #193, 0.5939999999999999700 ) ;
#89 = EDGE_LOOP ( 'NONE', ( #58, #183, #174, #287 ) ) ;
#90 = DATE_AND_TIME ( #113, #261 ) ;
#91 = APPROVAL_DATE_TIME ( #196, #6 ) ;
#92 = FACE_OUTER_BOUND ( 'NONE', #252, .T. ) ;
#93 = EDGE_CURVE ( 'NONE', #296, #40, #228, .T. ) ;
#94 = CIRCLE ( 'NONE', #172, 0.3271554175279990400 ) ;
#95 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
#96 = ORIENTED_EDGE ( 'NONE', *, *, #154, .F. ) ;
#97 = ADVANCED_FACE ( 'NONE', ( #311 ), #70, .T. ) ;
#98 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#99 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #103, #297, ( #76 ) ) ;
#100 = MECHANICAL_CONTEXT ( 'NONE', #241, 'mechanical' ) ;
#101 = ADVANCED_FACE ( 'NONE', ( #236 ), #51, .T. ) ;
#102 = EDGE_CURVE ( 'NONE', #173, #10, #304, .T. ) ;
#103 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#104 = ORIENTED_EDGE ( 'NONE', *, *, #341, .F. ) ;
#105 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#106 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#107 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#108 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#109 = ORIENTED_EDGE ( 'NONE', *, *, #234, .T. ) ;
#110 = AXIS2_PLACEMENT_3D ( 'NONE', #240, #276, #356 ) ;
#111 = CARTESIAN_POINT ( 'NONE', ( -0.5868445824720007800, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#112 = ORIENTED_EDGE ( 'NONE', *, *, #171, .F. ) ;
#113 = CALENDAR_DATE ( 2023, 12, 9 ) ;
#114 = APPROVAL ( #4, 'UNSPECIFIED' ) ;
#115 = EDGE_CURVE ( 'NONE', #135, #34, #153, .T. ) ;
#116 = VECTOR ( 'NONE', #288, 39.37007874015748100 ) ;
#117 = EDGE_LOOP ( 'NONE', ( #216, #337 ) ) ;
#118 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#119 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#120 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#121 = AXIS2_PLACEMENT_3D ( 'NONE', #267, #124, #218 ) ;
#122 = AXIS2_PLACEMENT_3D ( 'NONE', #300, #217, #72 ) ;
#123 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#124 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#125 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #347 ) ;
#126 = DATE_TIME_ROLE ( 'classification_date' ) ;
#127 = EDGE_LOOP ( 'NONE', ( #104, #317, #157, #96 ) ) ;
#128 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#129 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#130 = CARTESIAN_POINT ( 'NONE', ( -0.3271554175279990400, 4.006498348993799500E-017, 0.006399999999999983000 ) ) ;
#131 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#132 = CC_DESIGN_APPROVAL ( #114, ( #76 ) ) ;
#133 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#134 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
#135 = VERTEX_POINT ( 'NONE', #162 ) ;
#136 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#137 = EDGE_LOOP ( 'NONE', ( #245, #145 ) ) ;
#138 = AXIS2_PLACEMENT_3D ( 'NONE', #178, #352, #310 ) ;
#139 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #314, #69, ( #76 ) ) ;
#140 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#141 = ORIENTED_EDGE ( 'NONE', *, *, #212, .F. ) ;
#142 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#143 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#144 = ORIENTED_EDGE ( 'NONE', *, *, #188, .F. ) ;
#145 = ORIENTED_EDGE ( 'NONE', *, *, #67, .T. ) ;
#146 = APPROVAL_DATE_TIME ( #60, #81 ) ;
#147 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#148 = EDGE_CURVE ( 'NONE', #135, #10, #231, .T. ) ;
#149 = CIRCLE ( 'NONE', #338, 0.3200000000000000100 ) ;
#150 = ORIENTED_EDGE ( 'NONE', *, *, #93, .T. ) ;
#151 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, 0.01599999999999998300 ) ) ;
#152 = APPROVAL_DATE_TIME ( #207, #114 ) ;
#153 = LINE ( 'NONE', #8, #170 ) ;
#154 = EDGE_CURVE ( 'NONE', #296, #223, #191, .T. ) ;
#155 = ADVANCED_FACE ( 'NONE', ( #225 ), #283, .T. ) ;
#156 = AXIS2_PLACEMENT_3D ( 'NONE', #190, #249, #77 ) ;
#157 = ORIENTED_EDGE ( 'NONE', *, *, #212, .T. ) ;
#158 = ORIENTED_EDGE ( 'NONE', *, *, #308, .F. ) ;
#159 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #194, #350, ( #248 ) ) ;
#160 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#161 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#162 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
#163 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
#164 = LINE ( 'NONE', #55, #167 ) ;
#165 = CARTESIAN_POINT ( 'NONE', ( -0.5868445824720007800, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#166 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
#167 = VECTOR ( 'NONE', #105, 39.37007874015748100 ) ;
#168 = ORIENTED_EDGE ( 'NONE', *, *, #115, .F. ) ;
#169 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#170 = VECTOR ( 'NONE', #302, 39.37007874015748100 ) ;
#171 = EDGE_CURVE ( 'NONE', #173, #211, #94, .T. ) ;
#172 = AXIS2_PLACEMENT_3D ( 'NONE', #136, #327, #279 ) ;
#173 = VERTEX_POINT ( 'NONE', #301 ) ;
#174 = ORIENTED_EDGE ( 'NONE', *, *, #46, .T. ) ;
#175 = AXIS2_PLACEMENT_3D ( 'NONE', #143, #59, #229 ) ;
#176 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#177 = EDGE_LOOP ( 'NONE', ( #144, #109, #343, #158 ) ) ;
#178 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#179 = ADVANCED_FACE ( 'NONE', ( #293 ), #12, .F. ) ;
#180 = FACE_OUTER_BOUND ( 'NONE', #202, .T. ) ;
#181 = AXIS2_PLACEMENT_3D ( 'NONE', #50, #222, #246 ) ;
#182 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#183 = ORIENTED_EDGE ( 'NONE', *, *, #154, .T. ) ;
#184 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#185 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
#186 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #84, .NOT_KNOWN. ) ;
#187 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#188 = EDGE_CURVE ( 'NONE', #10, #14, #164, .T. ) ;
#189 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#190 = CARTESIAN_POINT ( 'NONE', ( 0.3271554175279990400, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#191 = CIRCLE ( 'NONE', #284, 0.5939999999999999700 ) ;
#192 = ORIENTED_EDGE ( 'NONE', *, *, #318, .T. ) ;
#193 = AXIS2_PLACEMENT_3D ( 'NONE', #195, #30, #227 ) ;
#194 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#195 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#196 = DATE_AND_TIME ( #269, #47 ) ;
#197 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#198 = ORIENTED_EDGE ( 'NONE', *, *, #313, .T. ) ;
#199 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
#200 = AXIS2_PLACEMENT_3D ( 'NONE', #257, #128, #353 ) ;
#201 = TOROIDAL_SURFACE ( 'NONE', #110, 0.3271554175279990400, 0.009600000000000000900 ) ;
#202 = EDGE_LOOP ( 'NONE', ( #37, #53 ) ) ;
#203 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
#204 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#205 = AXIS2_PLACEMENT_3D ( 'NONE', #118, #233, #66 ) ;
#206 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #76 ) ;
#207 = DATE_AND_TIME ( #24, #85 ) ;
#208 = ORIENTED_EDGE ( 'NONE', *, *, #318, .F. ) ;
#209 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #119, #98, ( #186 ) ) ;
#210 = CIRCLE ( 'NONE', #175, 0.5868445824720007800 ) ;
#211 = VERTEX_POINT ( 'NONE', #291 ) ;
#212 = EDGE_CURVE ( 'NONE', #315, #223, #80, .T. ) ;
#213 = VECTOR ( 'NONE', #270, 39.37007874015748100 ) ;
#214 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#215 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #273, #185, ( #186 ) ) ;
#216 = ORIENTED_EDGE ( 'NONE', *, *, #61, .T. ) ;
#217 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#218 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
#219 = AXIS2_PLACEMENT_3D ( 'NONE', #111, #305, #199 ) ;
#220 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#221 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
#222 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#223 = VERTEX_POINT ( 'NONE', #95 ) ;
#224 = ORIENTED_EDGE ( 'NONE', *, *, #148, .T. ) ;
#225 = FACE_OUTER_BOUND ( 'NONE', #62, .T. ) ;
#226 = EDGE_LOOP ( 'NONE', ( #258, #192 ) ) ;
#227 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#228 = LINE ( 'NONE', #151, #116 ) ;
#229 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#230 = EDGE_CURVE ( 'NONE', #271, #40, #88, .T. ) ;
#231 = CIRCLE ( 'NONE', #265, 0.3200000000000000100 ) ;
#232 = CC_DESIGN_SECURITY_CLASSIFICATION ( #248, ( #186 ) ) ;
#233 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#234 = EDGE_CURVE ( 'NONE', #10, #135, #9, .T. ) ;
#235 = CIRCLE ( 'NONE', #322, 0.3200000000000000100 ) ;
#236 = FACE_OUTER_BOUND ( 'NONE', #89, .T. ) ;
#237 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#238 = PLANE ( 'NONE', #121 ) ;
#239 = AXIS2_PLACEMENT_3D ( 'NONE', #324, #163, #45 ) ;
#240 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#241 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
#242 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#243 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#244 = CC_DESIGN_APPROVAL ( #6, ( #186 ) ) ;
#245 = ORIENTED_EDGE ( 'NONE', *, *, #289, .T. ) ;
#246 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#247 = ADVANCED_FACE ( 'NONE', ( #180, #299 ), #332, .F. ) ;
#248 = SECURITY_CLASSIFICATION ( '', '', #221 ) ;
#249 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
#250 = AXIS2_PLACEMENT_3D ( 'NONE', #44, #74, #355 ) ;
#251 = ORIENTED_EDGE ( 'NONE', *, *, #148, .F. ) ;
#252 = EDGE_LOOP ( 'NONE', ( #16, #150, #340, #263 ) ) ;
#253 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, 0.01280000000000013800 ) ) ;
#254 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
#255 = ORIENTED_EDGE ( 'NONE', *, *, #102, .T. ) ;
#256 = AXIS2_PLACEMENT_3D ( 'NONE', #19, #187, #325 ) ;
#257 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
#258 = ORIENTED_EDGE ( 'NONE', *, *, #171, .T. ) ;
#259 = CC_DESIGN_APPROVAL ( #81, ( #248 ) ) ;
#260 = AXIS2_PLACEMENT_3D ( 'NONE', #254, #56, #142 ) ;
#261 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #335 ) ;
#262 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
#263 = ORIENTED_EDGE ( 'NONE', *, *, #46, .F. ) ;
#264 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#265 = AXIS2_PLACEMENT_3D ( 'NONE', #3, #243, #107 ) ;
#266 = APPROVAL_ROLE ( '' ) ;
#267 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#268 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#269 = CALENDAR_DATE ( 2023, 12, 9 ) ;
#270 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#271 = VERTEX_POINT ( 'NONE', #197 ) ;
#272 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147348300E-016, 0.0000000000000000000 ) ) ;
#273 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#274 = AXIS2_PLACEMENT_3D ( 'NONE', #160, #264, #129 ) ;
#275 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#276 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#277 = FACE_OUTER_BOUND ( 'NONE', #278, .T. ) ;
#278 = EDGE_LOOP ( 'NONE', ( #65, #112, #255, #251 ) ) ;
#279 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#280 = AXIS2_PLACEMENT_3D ( 'NONE', #140, #330, #32 ) ;
#281 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
#282 = ORIENTED_EDGE ( 'NONE', *, *, #67, .F. ) ;
#283 = TOROIDAL_SURFACE ( 'NONE', #303, 0.5868445824720007800, 0.009600000000000000900 ) ;
#284 = AXIS2_PLACEMENT_3D ( 'NONE', #166, #106, #184 ) ;
#285 = DESIGN_CONTEXT ( 'detailed design', #237, 'design' ) ;
#286 = LINE ( 'NONE', #161, #213 ) ;
#287 = ORIENTED_EDGE ( 'NONE', *, *, #230, .T. ) ;
#288 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#289 = EDGE_CURVE ( 'NONE', #315, #63, #210, .T. ) ;
#290 = FACE_OUTER_BOUND ( 'NONE', #348, .T. ) ;
#291 = CARTESIAN_POINT ( 'NONE', ( -0.3271554175279990400, 4.006498348993799500E-017, 0.01599999999999998300 ) ) ;
#292 = ADVANCED_FACE ( 'NONE', ( #13 ), #43, .T. ) ;
#293 = FACE_OUTER_BOUND ( 'NONE', #177, .T. ) ;
#294 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#295 = ADVANCED_FACE ( 'NONE', ( #92 ), #78, .T. ) ;
#296 = VERTEX_POINT ( 'NONE', #253 ) ;
#297 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
#298 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
#299 = FACE_BOUND ( 'NONE', #117, .T. ) ;
#300 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
#301 = CARTESIAN_POINT ( 'NONE', ( 0.3271554175279990400, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
#302 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#303 = AXIS2_PLACEMENT_3D ( 'NONE', #189, #28, #48 ) ;
#304 = CIRCLE ( 'NONE', #156, 0.009600000000000000900 ) ;
#305 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
#306 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#307 = MANIFOLD_SOLID_BREP ( 'Fillet1', #71 ) ;
#308 = EDGE_CURVE ( 'NONE', #14, #34, #149, .T. ) ;
#309 = CYLINDRICAL_SURFACE ( 'NONE', #39, 0.3200000000000000100 ) ;
#310 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#311 = FACE_OUTER_BOUND ( 'NONE', #127, .T. ) ;
#312 = EDGE_LOOP ( 'NONE', ( #208, #198, #329, #316 ) ) ;
#313 = EDGE_CURVE ( 'NONE', #211, #135, #86, .T. ) ;
#314 = DATE_AND_TIME ( #33, #125 ) ;
#315 = VERTEX_POINT ( 'NONE', #165 ) ;
#316 = ORIENTED_EDGE ( 'NONE', *, *, #102, .F. ) ;
#317 = ORIENTED_EDGE ( 'NONE', *, *, #289, .F. ) ;
#318 = EDGE_CURVE ( 'NONE', #211, #173, #68, .T. ) ;
#319 = APPROVAL_ROLE ( '' ) ;
#320 = CARTESIAN_POINT ( 'NONE', ( 0.5868445824720007800, 7.230587691074144000E-017, 0.01599999999999998300 ) ) ;
#321 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #237 ) ;
#322 = AXIS2_PLACEMENT_3D ( 'NONE', #79, #323, #2 ) ;
#323 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#324 = CARTESIAN_POINT ( 'NONE', ( 0.5868445824720007800, 7.186773395213007500E-017, 0.006399999999999983000 ) ) ;
#325 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#326 = ADVANCED_FACE ( 'NONE', ( #290 ), #309, .F. ) ;
#327 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#328 = CIRCLE ( 'NONE', #239, 0.009600000000000014800 ) ;
#329 = ORIENTED_EDGE ( 'NONE', *, *, #234, .F. ) ;
#330 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
#331 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #176, #134, ( #84 ) ) ;
#332 = PLANE ( 'NONE', #280 ) ;
#333 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #298 );
#334 = ORIENTED_EDGE ( 'NONE', *, *, #61, .F. ) ;
#335 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#336 = CIRCLE ( 'NONE', #122, 0.5939999999999999700 ) ;
#337 = ORIENTED_EDGE ( 'NONE', *, *, #308, .T. ) ;
#338 = AXIS2_PLACEMENT_3D ( 'NONE', #204, #133, #83 ) ;
#339 = APPROVAL_PERSON_ORGANIZATION ( #242, #6, #266 ) ;
#340 = ORIENTED_EDGE ( 'NONE', *, *, #349, .T. ) ;
#341 = EDGE_CURVE ( 'NONE', #63, #296, #328, .T. ) ;
#342 = CIRCLE ( 'NONE', #205, 0.5868445824720007800 ) ;
#343 = ORIENTED_EDGE ( 'NONE', *, *, #115, .T. ) ;
#344 = ADVANCED_FACE ( 'NONE', ( #277 ), #201, .T. ) ;
#345 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '98017A257_18-8 Stainless Steel Mil. Spec. Washer', ( #307, #181 ), #41 ) ;
#346 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, -0.01600000000000001800 ) ) ;
#347 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
#348 = EDGE_LOOP ( 'NONE', ( #224, #18, #334, #168 ) ) ;
#349 = EDGE_CURVE ( 'NONE', #40, #271, #336, .T. ) ;
#350 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
#351 = APPROVAL_PERSON_ORGANIZATION ( #35, #81, #319 ) ;
#352 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
#353 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#354 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
#355 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
#356 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
ENDSEC;
END-ISO-10303-21;

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -33,7 +33,7 @@ sketch001 = startSketchOn(antennaPlane)
|> close() |> close()
// Create the antenna top sketch // Create the antenna top sketch
loftPlane = offsetPlane('XY', offset = height / 2 + 3) loftPlane = offsetPlane('XY', offset = height / 2 + 2)
sketch002 = startSketchOn(loftPlane) sketch002 = startSketchOn(loftPlane)
|> startProfileAt([ |> startProfileAt([

20
rust/Cargo.lock generated
View File

@ -1780,7 +1780,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-bumper" name = "kcl-bumper"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@ -1791,7 +1791,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-derive-docs" name = "kcl-derive-docs"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"Inflector", "Inflector",
"anyhow", "anyhow",
@ -1810,7 +1810,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-directory-test-macro" name = "kcl-directory-test-macro"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1819,7 +1819,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-language-server" name = "kcl-language-server"
version = "0.2.51" version = "0.2.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@ -1840,7 +1840,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-language-server-release" name = "kcl-language-server-release"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@ -1860,7 +1860,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-lib" name = "kcl-lib"
version = "0.2.51" version = "0.2.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"approx 0.5.1", "approx 0.5.1",
@ -1928,7 +1928,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-python-bindings" name = "kcl-python-bindings"
version = "0.3.51" version = "0.3.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"kcl-lib", "kcl-lib",
@ -1943,7 +1943,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-test-server" name = "kcl-test-server"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"hyper 0.14.32", "hyper 0.14.32",
@ -1956,7 +1956,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-to-core" name = "kcl-to-core"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
@ -1970,7 +1970,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-wasm-lib" name = "kcl-wasm-lib"
version = "0.1.51" version = "0.1.52"
dependencies = [ dependencies = [
"bson", "bson",
"console_error_panic_hook", "console_error_panic_hook",

View File

@ -1,7 +1,7 @@
[package] [package]
name = "kcl-bumper" name = "kcl-bumper"
version = "0.1.51" version = "0.1.52"
edition = "2021" edition = "2021"
repository = "https://github.com/KittyCAD/modeling-api" repository = "https://github.com/KittyCAD/modeling-api"
rust-version = "1.76" rust-version = "1.76"

View File

@ -1,7 +1,7 @@
[package] [package]
name = "kcl-derive-docs" name = "kcl-derive-docs"
description = "A tool for generating documentation from Rust derive macros" description = "A tool for generating documentation from Rust derive macros"
version = "0.1.51" version = "0.1.52"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
repository = "https://github.com/KittyCAD/modeling-app" repository = "https://github.com/KittyCAD/modeling-app"

View File

@ -1,7 +1,7 @@
[package] [package]
name = "kcl-directory-test-macro" name = "kcl-directory-test-macro"
description = "A tool for generating tests from a directory of kcl files" description = "A tool for generating tests from a directory of kcl files"
version = "0.1.51" version = "0.1.52"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
repository = "https://github.com/KittyCAD/modeling-app" repository = "https://github.com/KittyCAD/modeling-app"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "kcl-language-server-release" name = "kcl-language-server-release"
version = "0.1.51" version = "0.1.52"
edition = "2021" edition = "2021"
authors = ["KittyCAD Inc <kcl@kittycad.io>"] authors = ["KittyCAD Inc <kcl@kittycad.io>"]
publish = false publish = false

View File

@ -2,7 +2,7 @@
name = "kcl-language-server" name = "kcl-language-server"
description = "A language server for KCL." description = "A language server for KCL."
authors = ["KittyCAD Inc <kcl@kittycad.io>"] authors = ["KittyCAD Inc <kcl@kittycad.io>"]
version = "0.2.51" version = "0.2.52"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -1,7 +1,7 @@
[package] [package]
name = "kcl-lib" name = "kcl-lib"
description = "KittyCAD Language implementation and tools" description = "KittyCAD Language implementation and tools"
version = "0.2.51" version = "0.2.52"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
repository = "https://github.com/KittyCAD/modeling-app" repository = "https://github.com/KittyCAD/modeling-app"

View File

@ -8,7 +8,7 @@ use tower_lsp::lsp_types::{
use crate::{ use crate::{
execution::annotations, execution::annotations,
parsing::{ parsing::{
ast::types::{Annotation, Node, NonCodeNode, NonCodeValue, VariableKind}, ast::types::{Annotation, Node, NonCodeNode, VariableKind},
token::NumericSuffix, token::NumericSuffix,
}, },
ModuleId, ModuleId,
@ -36,7 +36,7 @@ impl CollectionVisitor {
.unwrap(); .unwrap();
self.id += 1; self.id += 1;
for (i, n) in parsed.body.iter().enumerate() { for n in &parsed.body {
match n { match n {
crate::parsing::ast::types::BodyItem::ImportStatement(import) if !import.visibility.is_default() => { crate::parsing::ast::types::BodyItem::ImportStatement(import) if !import.visibility.is_default() => {
// Only supports glob imports for now. // Only supports glob imports for now.
@ -63,12 +63,11 @@ impl CollectionVisitor {
VariableKind::Const => DocData::Const(ConstData::from_ast(var, qual_name)), VariableKind::Const => DocData::Const(ConstData::from_ast(var, qual_name)),
}; };
// FIXME this association of metadata with items is pretty flaky. dd.with_meta(&var.outer_attrs);
if i == 0 { for a in &var.outer_attrs {
dd.with_meta(&parsed.non_code_meta.start_nodes, &var.outer_attrs); dd.with_comments(&a.pre_comments);
} else if let Some(meta) = parsed.non_code_meta.non_code_nodes.get(&(i - 1)) {
dd.with_meta(meta, &var.outer_attrs);
} }
dd.with_comments(n.get_comments());
self.result.push(dd); self.result.push(dd);
} }
@ -80,12 +79,11 @@ impl CollectionVisitor {
}; };
let mut dd = DocData::Ty(TyData::from_ast(ty, qual_name)); let mut dd = DocData::Ty(TyData::from_ast(ty, qual_name));
// FIXME this association of metadata with items is pretty flaky. dd.with_meta(&ty.outer_attrs);
if i == 0 { for a in &ty.outer_attrs {
dd.with_meta(&parsed.non_code_meta.start_nodes, &ty.outer_attrs); dd.with_comments(&a.pre_comments);
} else if let Some(meta) = parsed.non_code_meta.non_code_nodes.get(&(i - 1)) {
dd.with_meta(meta, &ty.outer_attrs);
} }
dd.with_comments(n.get_comments());
self.result.push(dd); self.result.push(dd);
} }
@ -172,11 +170,19 @@ impl DocData {
} }
} }
fn with_meta(&mut self, meta: &[Node<NonCodeNode>], attrs: &[Node<Annotation>]) { fn with_meta(&mut self, attrs: &[Node<Annotation>]) {
match self { match self {
DocData::Fn(f) => f.with_meta(meta, attrs), DocData::Fn(f) => f.with_meta(attrs),
DocData::Const(c) => c.with_meta(meta, attrs), DocData::Const(c) => c.with_meta(attrs),
DocData::Ty(t) => t.with_meta(meta, attrs), DocData::Ty(t) => t.with_meta(attrs),
}
}
fn with_comments(&mut self, comments: &[String]) {
match self {
DocData::Fn(f) => f.with_comments(comments),
DocData::Const(c) => c.with_comments(comments),
DocData::Ty(t) => t.with_comments(comments),
} }
} }
@ -640,55 +646,20 @@ trait ApplyMeta {
fn doc_hidden(&mut self, doc_hidden: bool); fn doc_hidden(&mut self, doc_hidden: bool);
fn impl_kind(&mut self, impl_kind: annotations::Impl); fn impl_kind(&mut self, impl_kind: annotations::Impl);
fn with_meta(&mut self, meta: &[Node<NonCodeNode>], attrs: &[Node<Annotation>]) { fn with_comments(&mut self, comments: &[String]) {
for attr in attrs { if comments.iter().all(|s| s.is_empty()) {
if let Annotation { return;
name: None,
properties: Some(props),
..
} = &attr.inner
{
for p in props {
match &*p.key.name {
annotations::IMPL => {
if let Some(s) = p.value.ident_name() {
self.impl_kind(annotations::Impl::from_str(s).unwrap());
}
}
"deprecated" => {
if let Some(b) = p.value.literal_bool() {
self.deprecated(b);
}
}
"doc_hidden" => {
if let Some(b) = p.value.literal_bool() {
self.doc_hidden(b);
}
}
_ => {}
}
}
}
}
let mut comments = Vec::new();
for m in meta {
match &m.value {
NonCodeValue::BlockComment { value, .. } | NonCodeValue::NewLineBlockComment { value, .. } => {
comments.push(value)
}
_ => {}
}
} }
let mut summary = None; let mut summary = None;
let mut description = None; let mut description = None;
let mut example: Option<(String, ExampleProperties)> = None; let mut example: Option<(String, ExampleProperties)> = None;
let mut examples = Vec::new(); let mut examples = Vec::new();
for l in comments.into_iter().filter(|l| l.starts_with('/')).map(|l| { for l in comments.iter().filter(|l| l.starts_with("///")).map(|l| {
if let Some(ll) = l.strip_prefix("/ ") { if let Some(ll) = l.strip_prefix("/// ") {
ll ll
} else { } else {
&l[1..] &l[3..]
} }
}) { }) {
if description.is_none() && summary.is_none() { if description.is_none() && summary.is_none() {
@ -763,6 +734,38 @@ trait ApplyMeta {
examples, examples,
); );
} }
fn with_meta(&mut self, attrs: &[Node<Annotation>]) {
for attr in attrs {
if let Annotation {
name: None,
properties: Some(props),
..
} = &attr.inner
{
for p in props {
match &*p.key.name {
annotations::IMPL => {
if let Some(s) = p.value.ident_name() {
self.impl_kind(annotations::Impl::from_str(s).unwrap());
}
}
"deprecated" => {
if let Some(b) = p.value.literal_bool() {
self.deprecated(b);
}
}
"doc_hidden" => {
if let Some(b) = p.value.literal_bool() {
self.doc_hidden(b);
}
}
_ => {}
}
}
}
}
}
} }
impl ApplyMeta for ConstData { impl ApplyMeta for ConstData {

View File

@ -147,6 +147,11 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
source_range: SourceRange, source_range: SourceRange,
) -> Result<(), crate::errors::KclError>; ) -> Result<(), crate::errors::KclError>;
async fn clear_queues(&self) {
self.batch().write().await.clear();
self.batch_end().write().await.clear();
}
/// Send a modeling command and wait for the response message. /// Send a modeling command and wait for the response message.
async fn inner_send_modeling_cmd( async fn inner_send_modeling_cmd(
&self, &self,
@ -161,6 +166,9 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
id_generator: &mut IdGenerator, id_generator: &mut IdGenerator,
source_range: SourceRange, source_range: SourceRange,
) -> Result<(), crate::errors::KclError> { ) -> Result<(), crate::errors::KclError> {
// Clear any batched commands leftover from previous scenes.
self.clear_queues().await;
self.batch_modeling_cmd( self.batch_modeling_cmd(
uuid::Uuid::new_v4(), uuid::Uuid::new_v4(),
source_range, source_range,

View File

@ -96,7 +96,7 @@ impl ExecutorContext {
module_id: ModuleId, module_id: ModuleId,
path: &ModulePath, path: &ModulePath,
) -> Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError> { ) -> Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError> {
crate::log::log(format!("enter module {path} {}", exec_state.stack())); crate::log::log(format!("enter module {path} {} {exec_kind:?}", exec_state.stack()));
let old_units = exec_state.length_unit(); let old_units = exec_state.length_unit();
let original_execution = self.engine.replace_execution_kind(exec_kind).await; let original_execution = self.engine.replace_execution_kind(exec_kind).await;
@ -1192,6 +1192,7 @@ impl Node<CallExpression> {
format!("`{fn_name}` is deprecated, see the docs for a recommended replacement"), format!("`{fn_name}` is deprecated, see the docs for a recommended replacement"),
)); ));
} }
let op = if func.feature_tree_operation() { let op = if func.feature_tree_operation() {
let op_labeled_args = func let op_labeled_args = func
.args(false) .args(false)

View File

@ -724,27 +724,9 @@ impl ExecutorContext {
.map_err(KclErrorWithOutputs::no_outputs)?; .map_err(KclErrorWithOutputs::no_outputs)?;
let default_planes = self.engine.get_default_planes().read().await.clone(); let default_planes = self.engine.get_default_planes().read().await.clone();
let env_ref = self let result = self
.execute_and_build_graph(&program.ast, exec_state, preserve_mem) .execute_and_build_graph(&program.ast, exec_state, preserve_mem)
.await .await;
.map_err(|e| {
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
.global
.path_to_source_id
.iter()
.map(|(k, v)| ((*v), k.clone()))
.collect();
KclErrorWithOutputs::new(
e,
exec_state.global.operations.clone(),
exec_state.global.artifact_commands.clone(),
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
default_planes,
)
})?;
crate::log::log(format!( crate::log::log(format!(
"Post interpretation KCL memory stats: {:#?}", "Post interpretation KCL memory stats: {:#?}",
@ -752,6 +734,25 @@ impl ExecutorContext {
)); ));
crate::log::log(format!("Engine stats: {:?}", self.engine.stats())); crate::log::log(format!("Engine stats: {:?}", self.engine.stats()));
let env_ref = result.map_err(|e| {
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
.global
.path_to_source_id
.iter()
.map(|(k, v)| ((*v), k.clone()))
.collect();
KclErrorWithOutputs::new(
e,
exec_state.global.operations.clone(),
exec_state.global.artifact_commands.clone(),
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
default_planes,
)
})?;
if !self.is_mock() { if !self.is_mock() {
let mut mem = exec_state.stack().deep_clone(); let mut mem = exec_state.stack().deep_clone();
mem.restore_env(env_ref); mem.restore_env(env_ref);
@ -786,6 +787,10 @@ impl ExecutorContext {
) )
.await; .await;
// If we errored out and early-returned, there might be commands which haven't been executed
// and should be dropped.
self.engine.clear_queues().await;
// Move the artifact commands and responses to simplify cache management // Move the artifact commands and responses to simplify cache management
// and error creation. // and error creation.
exec_state exec_state
@ -1589,6 +1594,18 @@ const bracket = startSketchOn(XY)
parse_execute(ast).await.unwrap(); parse_execute(ast).await.unwrap();
} }
#[tokio::test(flavor = "multi_thread")]
async fn test_bad_arg_count_std() {
let ast = "startSketchOn(XY)
|> startProfileAt([0, 0], %)
|> profileStartX()";
assert!(parse_execute(ast)
.await
.unwrap_err()
.message()
.contains("Expected a sketch argument"));
}
#[tokio::test(flavor = "multi_thread")] #[tokio::test(flavor = "multi_thread")]
async fn test_unary_operator_not_succeeds() { async fn test_unary_operator_not_succeeds() {
let ast = r#" let ast = r#"

View File

@ -1714,7 +1714,6 @@ outsideRevolve = startSketchOn('XZ')
r#"// Ball Bearing r#"// Ball Bearing
// A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The primary purpose of a ball bearing is to reduce rotational friction and support radial and axial loads. // A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The primary purpose of a ball bearing is to reduce rotational friction and support radial and axial loads.
// Define constants like ball diameter, inside diameter, overhange length, and thickness // Define constants like ball diameter, inside diameter, overhange length, and thickness
sphereDia = 0.5 sphereDia = 0.5
insideDia = 1 insideDia = 1

View File

@ -53,6 +53,12 @@ pub struct Node<T> {
pub module_id: ModuleId, pub module_id: ModuleId,
#[serde(default, skip_serializing_if = "Vec::is_empty")] #[serde(default, skip_serializing_if = "Vec::is_empty")]
pub outer_attrs: NodeList<Annotation>, pub outer_attrs: NodeList<Annotation>,
// Some comments are kept here, some are kept in NonCodeMeta, and some are ignored. See how each
// node is parsed to check for certain. In any case, only comments which are strongly associated
// with an item are kept here.
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub pre_comments: Vec<String>,
pub comment_start: usize,
} }
impl<T: JsonSchema> schemars::JsonSchema for Node<T> { impl<T: JsonSchema> schemars::JsonSchema for Node<T> {
@ -85,6 +91,20 @@ impl<T> Node<T> {
end, end,
module_id, module_id,
outer_attrs: Vec::new(), outer_attrs: Vec::new(),
pre_comments: Vec::new(),
comment_start: start,
}
}
pub fn new_node(start: usize, end: usize, module_id: ModuleId, inner: T) -> Self {
Self {
inner,
start,
end,
module_id,
outer_attrs: Vec::new(),
pre_comments: Vec::new(),
comment_start: start,
} }
} }
@ -95,6 +115,8 @@ impl<T> Node<T> {
end: 0, end: 0,
module_id: ModuleId::default(), module_id: ModuleId::default(),
outer_attrs: Vec::new(), outer_attrs: Vec::new(),
pre_comments: Vec::new(),
comment_start: 0,
} }
} }
@ -105,6 +127,8 @@ impl<T> Node<T> {
end, end,
module_id, module_id,
outer_attrs: Vec::new(), outer_attrs: Vec::new(),
pre_comments: Vec::new(),
comment_start: start,
}) })
} }
@ -133,8 +157,15 @@ impl<T> Node<T> {
end: self.end, end: self.end,
module_id: self.module_id, module_id: self.module_id,
outer_attrs: self.outer_attrs, outer_attrs: self.outer_attrs,
pre_comments: self.pre_comments,
comment_start: self.comment_start,
} }
} }
pub fn set_comments(&mut self, comments: Vec<String>, start: usize) {
self.pre_comments = comments;
self.comment_start = start;
}
} }
impl<T> Deref for Node<T> { impl<T> Deref for Node<T> {
@ -373,6 +404,26 @@ impl Program {
if self.non_code_meta.in_comment(pos) { if self.non_code_meta.in_comment(pos) {
return true; return true;
} }
for item in &self.body {
let r = item.comment_range();
eprintln!("item {r:?}");
if pos >= r.0 && pos < r.1 {
return true;
}
if pos < r.0 {
break;
}
}
for n in &self.inner_attrs {
if pos >= n.comment_start && pos < n.start {
return true;
}
if pos < n.comment_start {
break;
}
}
let item = self.get_body_item_for_position(pos); let item = self.get_body_item_for_position(pos);
// Recurse over the item. // Recurse over the item.
@ -660,6 +711,36 @@ impl BodyItem {
BodyItem::ReturnStatement(node) => &mut node.outer_attrs, BodyItem::ReturnStatement(node) => &mut node.outer_attrs,
} }
} }
pub(crate) fn set_comments(&mut self, comments: Vec<String>, start: usize) {
match self {
BodyItem::ImportStatement(node) => node.set_comments(comments, start),
BodyItem::ExpressionStatement(node) => node.set_comments(comments, start),
BodyItem::VariableDeclaration(node) => node.set_comments(comments, start),
BodyItem::TypeDeclaration(node) => node.set_comments(comments, start),
BodyItem::ReturnStatement(node) => node.set_comments(comments, start),
}
}
pub(crate) fn get_comments(&self) -> &[String] {
match self {
BodyItem::ImportStatement(node) => &node.pre_comments,
BodyItem::ExpressionStatement(node) => &node.pre_comments,
BodyItem::VariableDeclaration(node) => &node.pre_comments,
BodyItem::TypeDeclaration(node) => &node.pre_comments,
BodyItem::ReturnStatement(node) => &node.pre_comments,
}
}
pub(crate) fn comment_range(&self) -> (usize, usize) {
match self {
BodyItem::ImportStatement(node) => (node.comment_start, node.start),
BodyItem::ExpressionStatement(node) => (node.comment_start, node.start),
BodyItem::VariableDeclaration(node) => (node.comment_start, node.start),
BodyItem::TypeDeclaration(node) => (node.comment_start, node.start),
BodyItem::ReturnStatement(node) => (node.comment_start, node.start),
}
}
} }
impl From<BodyItem> for SourceRange { impl From<BodyItem> for SourceRange {
@ -1171,6 +1252,23 @@ pub enum CommentStyle {
Block, Block,
} }
impl CommentStyle {
pub fn render_comment(&self, comment: &str) -> String {
match self {
CommentStyle::Line => {
let comment = comment.trim();
let mut result = "//".to_owned();
if !comment.is_empty() && !comment.starts_with('/') {
result.push(' ');
}
result.push_str(comment);
result
}
CommentStyle::Block => format!("/* {comment} */"),
}
}
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)] #[ts(export)]
#[serde(tag = "type", rename_all = "camelCase")] #[serde(tag = "type", rename_all = "camelCase")]
@ -1186,7 +1284,7 @@ pub enum NonCodeValue {
}, },
/// A block comment. /// A block comment.
/// An example of this is the following: /// An example of this is the following:
/// ```python,no_run /// ```no_run
/// /* This is a /// /* This is a
/// block comment */ /// block comment */
/// 1 + 1 /// 1 + 1
@ -3890,7 +3988,6 @@ startSketchOn('XY')"#;
formatted, formatted,
r#"@settings(defaultLengthUnit = mm) r#"@settings(defaultLengthUnit = mm)
startSketchOn('XY') startSketchOn('XY')
"# "#
); );
@ -3925,6 +4022,7 @@ startSketchOn('XY')
assert_eq!( assert_eq!(
formatted, formatted,
r#"@settings(defaultLengthUnit = mm) r#"@settings(defaultLengthUnit = mm)
startSketchOn('XY') startSketchOn('XY')
"# "#
); );

View File

@ -300,16 +300,17 @@ fn annotation(i: &mut TokenSlice) -> PResult<Node<Annotation>> {
terminated(one_of((TokenType::Operator, "=")), opt(whitespace)), terminated(one_of((TokenType::Operator, "=")), opt(whitespace)),
expression, expression,
) )
.map(|(key, value)| Node { .map(|(key, value)| {
start: key.start, Node::new_node(
end: value.end(), key.start,
module_id: key.module_id, value.end(),
inner: ObjectProperty { key.module_id,
key, ObjectProperty {
value, key,
digest: None, value,
}, digest: None,
outer_attrs: Vec::new(), },
)
}), }),
comma_sep, comma_sep,
) )
@ -417,17 +418,16 @@ fn pipe_expression(i: &mut TokenSlice) -> PResult<Node<PipeExpression>> {
non_code_meta.insert(code_count, nc); non_code_meta.insert(code_count, nc);
} }
} }
Ok(Node { Ok(Node::new_node(
start: values.first().unwrap().start(), values.first().unwrap().start(),
end: values.last().unwrap().end().max(max_noncode_end), values.last().unwrap().end().max(max_noncode_end),
module_id: values.first().unwrap().module_id(), values.first().unwrap().module_id(),
inner: PipeExpression { PipeExpression {
body: values, body: values,
non_code_meta, non_code_meta,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ))
})
} }
fn bool_value(i: &mut TokenSlice) -> PResult<BoxNode<Literal>> { fn bool_value(i: &mut TokenSlice) -> PResult<BoxNode<Literal>> {
@ -858,17 +858,16 @@ fn array_end_start(i: &mut TokenSlice) -> PResult<Node<ArrayRangeExpression>> {
fn object_property_same_key_and_val(i: &mut TokenSlice) -> PResult<Node<ObjectProperty>> { fn object_property_same_key_and_val(i: &mut TokenSlice) -> PResult<Node<ObjectProperty>> {
let key = nameable_identifier.context(expected("the property's key (the name or identifier of the property), e.g. in 'height = 4', 'height' is the property key")).parse_next(i)?; let key = nameable_identifier.context(expected("the property's key (the name or identifier of the property), e.g. in 'height = 4', 'height' is the property key")).parse_next(i)?;
ignore_whitespace(i); ignore_whitespace(i);
Ok(Node { Ok(Node::new_node(
start: key.start, key.start,
end: key.end, key.end,
module_id: key.module_id, key.module_id,
inner: ObjectProperty { ObjectProperty {
value: Expr::Identifier(Box::new(key.clone())), value: Expr::Identifier(Box::new(key.clone())),
key, key,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ))
})
} }
fn object_property(i: &mut TokenSlice) -> PResult<Node<ObjectProperty>> { fn object_property(i: &mut TokenSlice) -> PResult<Node<ObjectProperty>> {
@ -899,17 +898,16 @@ fn object_property(i: &mut TokenSlice) -> PResult<Node<ObjectProperty>> {
} }
}; };
let result = Node { let result = Node::new_node(
start: key.start, key.start,
end: expr.end(), expr.end(),
module_id: key.module_id, key.module_id,
inner: ObjectProperty { ObjectProperty {
key, key,
value: expr, value: expr,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), );
};
if sep.token_type == TokenType::Colon { if sep.token_type == TokenType::Colon {
ParseContext::warn( ParseContext::warn(
@ -1552,14 +1550,57 @@ fn function_body(i: &mut TokenSlice) -> PResult<Node<Program>> {
let mut inner_attrs = Vec::new(); let mut inner_attrs = Vec::new();
let mut pending_attrs = Vec::new(); let mut pending_attrs = Vec::new();
let mut non_code_meta = NonCodeMeta::default(); let mut non_code_meta = NonCodeMeta::default();
let mut pending_non_code: Vec<Node<NonCodeNode>> = Vec::new();
let mut end = 0; let mut end = 0;
let mut start = leading_whitespace_start; let mut start = leading_whitespace_start;
macro_rules! handle_pending_non_code {
($node: ident) => {
if !pending_non_code.is_empty() {
let start = pending_non_code[0].start;
let force_disoc = matches!(
&pending_non_code.last().unwrap().inner.value,
NonCodeValue::NewLine
);
let mut comments = Vec::new();
for nc in pending_non_code {
match nc.inner.value {
NonCodeValue::BlockComment { value, style } if !force_disoc => {
comments.push(style.render_comment(&value));
}
NonCodeValue::NewLineBlockComment { value, style } if !force_disoc => {
if comments.is_empty() && nc.start != 0 {
comments.push(String::new());
comments.push(String::new());
}
comments.push(style.render_comment(&value));
}
NonCodeValue::NewLine if !force_disoc && !comments.is_empty() => {
comments.push(String::new());
comments.push(String::new());
}
_ => {
if body.is_empty() {
non_code_meta.start_nodes.push(nc);
} else {
non_code_meta.insert(body.len() - 1, nc);
}
}
}
}
$node.set_comments(comments, start);
pending_non_code = Vec::new();
}
};
}
for thing_in_body in things_within_body { for thing_in_body in things_within_body {
match thing_in_body { match thing_in_body {
WithinFunction::Annotation(attr) => { WithinFunction::Annotation(mut attr) => {
if start.is_none() { if start.is_none() {
start = Some((attr.start, attr.module_id)) start = Some((attr.start, attr.module_id))
} }
handle_pending_non_code!(attr);
if attr.is_inner() { if attr.is_inner() {
inner_attrs.push(attr); inner_attrs.push(attr);
} else { } else {
@ -1575,10 +1616,11 @@ fn function_body(i: &mut TokenSlice) -> PResult<Node<Program>> {
b.set_attrs(pending_attrs); b.set_attrs(pending_attrs);
pending_attrs = Vec::new(); pending_attrs = Vec::new();
} }
handle_pending_non_code!(b);
body.push(b); body.push(b);
if let Some(nc) = maybe_noncode { if let Some(nc) = maybe_noncode {
end = nc.end; end = nc.end;
non_code_meta.insert(body.len() - 1, nc); pending_non_code.push(nc);
} }
} }
WithinFunction::NonCode(nc) => { WithinFunction::NonCode(nc) => {
@ -1586,11 +1628,7 @@ fn function_body(i: &mut TokenSlice) -> PResult<Node<Program>> {
start = Some((nc.start, nc.module_id)); start = Some((nc.start, nc.module_id));
} }
end = nc.end; end = nc.end;
if body.is_empty() { pending_non_code.push(nc);
non_code_meta.start_nodes.push(nc);
} else {
non_code_meta.insert(body.len() - 1, nc);
}
} }
} }
} }
@ -1614,6 +1652,15 @@ fn function_body(i: &mut TokenSlice) -> PResult<Node<Program>> {
.into(), .into(),
)); ));
} }
for nc in pending_non_code {
if body.is_empty() {
non_code_meta.start_nodes.push(nc);
} else {
non_code_meta.insert(body.len() - 1, nc);
}
}
// Safe to unwrap `body.first()` because `body` is `separated1` therefore guaranteed // Safe to unwrap `body.first()` because `body` is `separated1` therefore guaranteed
// to have len >= 1. // to have len >= 1.
let end_ws = opt(whitespace) let end_ws = opt(whitespace)
@ -1922,13 +1969,12 @@ fn return_stmt(i: &mut TokenSlice) -> PResult<Node<ReturnStatement>> {
.parse_next(i)?; .parse_next(i)?;
require_whitespace(i)?; require_whitespace(i)?;
let argument = expression(i)?; let argument = expression(i)?;
Ok(Node { Ok(Node::new_node(
start: ret.start, ret.start,
end: argument.end(), argument.end(),
module_id: ret.module_id, ret.module_id,
inner: ReturnStatement { argument, digest: None }, ReturnStatement { argument, digest: None },
outer_attrs: Vec::new(), ))
})
} }
/// Parse a KCL expression. /// Parse a KCL expression.
@ -2134,28 +2180,27 @@ fn declaration(i: &mut TokenSlice) -> PResult<BoxNode<VariableDeclaration>> {
.map_err(|e| e.cut())?; .map_err(|e| e.cut())?;
let end = val.end(); let end = val.end();
Ok(Box::new(Node { let module_id = id.module_id;
start, Ok(Node::boxed(
end, VariableDeclaration {
module_id: id.module_id, declaration: Node::new_node(
inner: VariableDeclaration { id.start,
declaration: Node {
start: id.start,
end, end,
module_id: id.module_id, module_id,
inner: VariableDeclarator { VariableDeclarator {
id, id,
init: val, init: val,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ),
},
visibility, visibility,
kind, kind,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), start,
})) end,
module_id,
))
} }
fn ty_decl(i: &mut TokenSlice) -> PResult<BoxNode<TypeDeclaration>> { fn ty_decl(i: &mut TokenSlice) -> PResult<BoxNode<TypeDeclaration>> {
@ -2183,18 +2228,18 @@ fn ty_decl(i: &mut TokenSlice) -> PResult<BoxNode<TypeDeclaration>> {
None None
}; };
let result = Box::new(Node { let module_id = name.module_id;
start, let result = Node::boxed(
end, TypeDeclaration {
module_id: name.module_id,
outer_attrs: Vec::new(),
inner: TypeDeclaration {
name, name,
args, args,
visibility, visibility,
digest: None, digest: None,
}, },
}); start,
end,
module_id,
);
ParseContext::warn(CompilationError::err( ParseContext::warn(CompilationError::err(
result.as_source_range(), result.as_source_range(),
@ -2374,17 +2419,16 @@ fn unary_expression(i: &mut TokenSlice) -> PResult<Node<UnaryExpression>> {
.context(expected("a unary expression, e.g. -x or -3")) .context(expected("a unary expression, e.g. -x or -3"))
.parse_next(i)?; .parse_next(i)?;
let argument = operand.parse_next(i)?; let argument = operand.parse_next(i)?;
Ok(Node { Ok(Node::new_node(
start: op_token.start, op_token.start,
end: argument.end(), argument.end(),
module_id: op_token.module_id, op_token.module_id,
inner: UnaryExpression { UnaryExpression {
operator, operator,
argument, argument,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ))
})
} }
/// Consume tokens that make up a binary expression, but don't actually return them. /// Consume tokens that make up a binary expression, but don't actually return them.
@ -2456,16 +2500,15 @@ fn expression_stmt(i: &mut TokenSlice) -> PResult<Node<ExpressionStatement>> {
"an expression (i.e. a value, or an algorithm for calculating one), e.g. 'x + y' or '3' or 'width * 2'", "an expression (i.e. a value, or an algorithm for calculating one), e.g. 'x + y' or '3' or 'width * 2'",
)) ))
.parse_next(i)?; .parse_next(i)?;
Ok(Node { Ok(Node::new_node(
start: val.start(), val.start(),
end: val.end(), val.end(),
module_id: val.module_id(), val.module_id(),
inner: ExpressionStatement { ExpressionStatement {
expression: val, expression: val,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ))
})
} }
/// Parse the given brace symbol. /// Parse the given brace symbol.
@ -2889,17 +2932,16 @@ fn fn_call(i: &mut TokenSlice) -> PResult<Node<CallExpression>> {
} }
let end = preceded(opt(whitespace), close_paren).parse_next(i)?.end; let end = preceded(opt(whitespace), close_paren).parse_next(i)?.end;
Ok(Node { Ok(Node::new_node(
start: fn_name.start, fn_name.start,
end, end,
module_id: fn_name.module_id, fn_name.module_id,
inner: CallExpression { CallExpression {
callee: fn_name, callee: fn_name,
arguments: args, arguments: args,
digest: None, digest: None,
}, },
outer_attrs: Vec::new(), ))
})
} }
fn fn_call_kw(i: &mut TokenSlice) -> PResult<Node<CallExpressionKw>> { fn fn_call_kw(i: &mut TokenSlice) -> PResult<Node<CallExpressionKw>> {
@ -2971,19 +3013,18 @@ fn fn_call_kw(i: &mut TokenSlice) -> PResult<Node<CallExpressionKw>> {
non_code_nodes, non_code_nodes,
..Default::default() ..Default::default()
}; };
Ok(Node { Ok(Node::new_node(
start: fn_name.start, fn_name.start,
end, end,
module_id: fn_name.module_id, fn_name.module_id,
inner: CallExpressionKw { CallExpressionKw {
callee: fn_name, callee: fn_name,
unlabeled: initial_unlabeled_arg, unlabeled: initial_unlabeled_arg,
arguments: args, arguments: args,
digest: None, digest: None,
non_code_meta, non_code_meta,
}, },
outer_attrs: Vec::new(), ))
})
} }
#[cfg(test)] #[cfg(test)]
@ -3094,18 +3135,18 @@ mod tests {
a = 1 a = 1
// comment 1 // comment 1
b = 2 b = 2
// comment 2 /// comment 2
return 1 return 1
}"#; }"#;
let tokens = crate::parsing::token::lex(test_program, ModuleId::default()).unwrap(); let tokens = crate::parsing::token::lex(test_program, ModuleId::default()).unwrap();
let expr = function_decl.map(|t| t.0).parse_next(&mut tokens.as_slice()).unwrap(); let expr = function_decl.map(|t| t.0).parse_next(&mut tokens.as_slice()).unwrap();
assert_eq!(expr.params, vec![]); assert_eq!(expr.params, vec![]);
let comment_start = expr.body.non_code_meta.start_nodes.first().unwrap(); let comment_start = expr.body.body[0].get_comments();
let comment0 = &expr.body.non_code_meta.non_code_nodes.get(&0).unwrap()[0]; let comment0 = expr.body.body[1].get_comments();
let comment1 = &expr.body.non_code_meta.non_code_nodes.get(&1).unwrap()[0]; let comment1 = expr.body.body[2].get_comments();
assert_eq!(comment_start.value(), "comment 0"); assert_eq!(comment_start, vec!["// comment 0".to_owned()]);
assert_eq!(comment0.value(), "comment 1"); assert_eq!(comment0, vec!["// comment 1".to_owned()]);
assert_eq!(comment1.value(), "comment 2"); assert_eq!(comment1, vec!["/// comment 2".to_owned()]);
} }
#[test] #[test]
@ -3186,61 +3227,16 @@ mySk1 = startSketchOn(XY)
let tokens = crate::parsing::token::lex(test_program, module_id).unwrap(); let tokens = crate::parsing::token::lex(test_program, module_id).unwrap();
let expr = function_decl.map(|t| t.0).parse_next(&mut tokens.as_slice()).unwrap(); let expr = function_decl.map(|t| t.0).parse_next(&mut tokens.as_slice()).unwrap();
assert_eq!( assert_eq!(
expr, expr.body.non_code_meta.start_nodes,
Node::new( vec![Node::new(
FunctionExpression { NonCodeNode {
params: Default::default(), value: NonCodeValue::NewLine,
body: Node::new( digest: None
Program {
body: vec![BodyItem::ReturnStatement(Node::new(
ReturnStatement {
argument: Expr::Literal(Box::new(Node::new(
Literal {
value: LiteralValue::Number {
value: 2.0,
suffix: NumericSuffix::None
},
raw: "2".to_owned(),
digest: None,
},
29,
30,
module_id,
))),
digest: None,
},
22,
30,
module_id,
))],
non_code_meta: NonCodeMeta {
non_code_nodes: Default::default(),
start_nodes: vec![Node::new(
NonCodeNode {
value: NonCodeValue::NewLine,
digest: None
},
4,
22,
module_id,
)],
digest: None,
},
inner_attrs: Vec::new(),
shebang: None,
digest: None,
},
4,
44,
module_id,
),
return_type: None,
digest: None,
}, },
0, 4,
44, 22,
module_id, module_id,
) )]
); );
} }
@ -3282,22 +3278,10 @@ mySk1 = startSketchOn(XY)
let module_id = ModuleId::default(); let module_id = ModuleId::default();
let tokens = crate::parsing::token::lex(test_program, module_id).unwrap(); let tokens = crate::parsing::token::lex(test_program, module_id).unwrap();
let Program { non_code_meta, .. } = function_body.parse(tokens.as_slice()).unwrap().inner; let Program {
assert_eq!( body, non_code_meta, ..
vec![Node::new( } = function_body.parse(tokens.as_slice()).unwrap().inner;
NonCodeNode { assert_eq!(body[0].get_comments(), vec!["// this is a comment".to_owned()],);
value: NonCodeValue::BlockComment {
value: "this is a comment".to_owned(),
style: CommentStyle::Line
},
digest: None,
},
0,
20,
module_id,
)],
non_code_meta.start_nodes,
);
assert_eq!( assert_eq!(
Some(&vec![ Some(&vec![
@ -3326,21 +3310,7 @@ mySk1 = startSketchOn(XY)
non_code_meta.non_code_nodes.get(&0), non_code_meta.non_code_nodes.get(&0),
); );
assert_eq!( assert_eq!(body[2].get_comments(), vec!["// this is also a comment".to_owned()],);
Some(&vec![Node::new(
NonCodeNode {
value: NonCodeValue::BlockComment {
value: "this is also a comment".to_owned(),
style: CommentStyle::Line
},
digest: None,
},
94,
120,
module_id,
)]),
non_code_meta.non_code_nodes.get(&1),
);
} }
#[test] #[test]

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -25,8 +26,10 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 4, "start": 4,
"end": 5 "end": 5,
"commentStart": 4
}, },
"start": 0, "start": 0,
"end": 5 "end": 5,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -25,8 +26,10 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 2, "start": 2,
"end": 3 "end": 3,
"commentStart": 2
}, },
"start": 0, "start": 0,
"end": 3 "end": 3,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -25,8 +26,10 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 3, "start": 3,
"end": 4 "end": 4,
"commentStart": 3
}, },
"start": 0, "start": 0,
"end": 4 "end": 4,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -29,7 +30,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 4, "start": 4,
"end": 5 "end": 5,
"commentStart": 4
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -40,11 +42,14 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 8, "start": 8,
"end": 9 "end": 9,
"commentStart": 8
}, },
"start": 4, "start": 4,
"end": 9 "end": 9,
"commentStart": 4
}, },
"start": 0, "start": 0,
"end": 9 "end": 9,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -29,7 +30,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 6, "start": 6,
"end": 7 "end": 7,
"commentStart": 6
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -40,11 +42,14 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 10, "start": 10,
"end": 11 "end": 11,
"commentStart": 10
}, },
"start": 6, "start": 6,
"end": 11 "end": 11,
"commentStart": 6
}, },
"start": 0, "start": 0,
"end": 11 "end": 11,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -18,7 +18,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -33,7 +34,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 6, "start": 6,
"end": 7 "end": 7,
"commentStart": 6
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -44,13 +46,16 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 10, "start": 10,
"end": 11 "end": 11,
"commentStart": 10
}, },
"start": 6, "start": 6,
"end": 11 "end": 11,
"commentStart": 6
}, },
"start": 0, "start": 0,
"end": 11 "end": 11,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -61,8 +66,10 @@ expression: actual
}, },
"raw": "4", "raw": "4",
"start": 16, "start": 16,
"end": 17 "end": 17,
"commentStart": 16
}, },
"start": 0, "start": 0,
"end": 17 "end": 17,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -33,7 +34,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 6, "start": 6,
"end": 7 "end": 7,
"commentStart": 6
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -44,10 +46,12 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 10, "start": 10,
"end": 11 "end": 11,
"commentStart": 10
}, },
"start": 6, "start": 6,
"end": 11 "end": 11,
"commentStart": 6
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -58,11 +62,14 @@ expression: actual
}, },
"raw": "4", "raw": "4",
"start": 16, "start": 16,
"end": 17 "end": 17,
"commentStart": 16
}, },
"start": 6, "start": 6,
"end": 17 "end": 17,
"commentStart": 6
}, },
"start": 0, "start": 0,
"end": 17 "end": 17,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -37,7 +38,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 7, "start": 7,
"end": 8 "end": 8,
"commentStart": 7
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -48,10 +50,12 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 11, "start": 11,
"end": 12 "end": 12,
"commentStart": 11
}, },
"start": 7, "start": 7,
"end": 12 "end": 12,
"commentStart": 7
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -62,10 +66,12 @@ expression: actual
}, },
"raw": "4", "raw": "4",
"start": 17, "start": 17,
"end": 18 "end": 18,
"commentStart": 17
}, },
"start": 7, "start": 7,
"end": 18 "end": 18,
"commentStart": 7
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -76,11 +82,14 @@ expression: actual
}, },
"raw": "5", "raw": "5",
"start": 21, "start": 21,
"end": 22 "end": 22,
"commentStart": 21
}, },
"start": 7, "start": 7,
"end": 22 "end": 22,
"commentStart": 7
}, },
"start": 0, "start": 0,
"end": 22 "end": 22,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "1", "raw": "1",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -29,7 +30,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 8, "start": 8,
"end": 9 "end": 9,
"commentStart": 8
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -40,11 +42,14 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 12, "start": 12,
"end": 13 "end": 13,
"commentStart": 12
}, },
"start": 8, "start": 8,
"end": 13 "end": 13,
"commentStart": 8
}, },
"start": 0, "start": 0,
"end": 13 "end": 13,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -22,27 +22,32 @@ expression: actual
"type": "Identifier", "type": "Identifier",
"name": "distance", "name": "distance",
"start": 0, "start": 0,
"end": 8 "end": 8,
"commentStart": 0
}, },
"right": { "right": {
"type": "Identifier", "type": "Identifier",
"type": "Identifier", "type": "Identifier",
"name": "p", "name": "p",
"start": 11, "start": 11,
"end": 12 "end": 12,
"commentStart": 11
}, },
"start": 0, "start": 0,
"end": 12 "end": 12,
"commentStart": 0
}, },
"right": { "right": {
"type": "Identifier", "type": "Identifier",
"type": "Identifier", "type": "Identifier",
"name": "FOS", "name": "FOS",
"start": 15, "start": 15,
"end": 18 "end": 18,
"commentStart": 15
}, },
"start": 0, "start": 0,
"end": 18 "end": 18,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -53,10 +58,12 @@ expression: actual
}, },
"raw": "6", "raw": "6",
"start": 21, "start": 21,
"end": 22 "end": 22,
"commentStart": 21
}, },
"start": 0, "start": 0,
"end": 22 "end": 22,
"commentStart": 0
}, },
"right": { "right": {
"type": "BinaryExpression", "type": "BinaryExpression",
@ -67,18 +74,22 @@ expression: actual
"type": "Identifier", "type": "Identifier",
"name": "sigmaAllow", "name": "sigmaAllow",
"start": 26, "start": 26,
"end": 36 "end": 36,
"commentStart": 26
}, },
"right": { "right": {
"type": "Identifier", "type": "Identifier",
"type": "Identifier", "type": "Identifier",
"name": "width", "name": "width",
"start": 39, "start": 39,
"end": 44 "end": 44,
"commentStart": 39
}, },
"start": 26, "start": 26,
"end": 44 "end": 44,
"commentStart": 26
}, },
"start": 0, "start": 0,
"end": 44 "end": 44,
"commentStart": 0
} }

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
@ -14,7 +14,8 @@ expression: actual
}, },
"raw": "2", "raw": "2",
"start": 0, "start": 0,
"end": 1 "end": 1,
"commentStart": 0
}, },
"right": { "right": {
"type": "Literal", "type": "Literal",
@ -25,8 +26,10 @@ expression: actual
}, },
"raw": "3", "raw": "3",
"start": 7, "start": 7,
"end": 8 "end": 8,
"commentStart": 7
}, },
"start": 0, "start": 0,
"end": 8 "end": 8,
"commentStart": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 170, "end": 170,
"id": { "id": {
"commentStart": 0,
"end": 9, "end": 9,
"name": "boxSketch", "name": "boxSketch",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 26,
"end": 28, "end": 28,
"name": "XY", "name": "XY",
"start": 26, "start": 26,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 12,
"end": 25, "end": 25,
"name": "startSketchOn", "name": "startSketchOn",
"start": 12, "start": 12,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 12,
"end": 29, "end": 29,
"start": 12, "start": 12,
"type": "CallExpression", "type": "CallExpression",
@ -39,8 +45,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 52,
"elements": [ "elements": [
{ {
"commentStart": 53,
"end": 54, "end": 54,
"raw": "0", "raw": "0",
"start": 53, "start": 53,
@ -52,6 +60,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 56,
"end": 57, "end": 57,
"raw": "0", "raw": "0",
"start": 56, "start": 56,
@ -69,6 +78,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 60,
"end": 61, "end": 61,
"start": 60, "start": 60,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -76,11 +86,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 37,
"end": 51, "end": 51,
"name": "startProfileAt", "name": "startProfileAt",
"start": 37, "start": 37,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 37,
"end": 62, "end": 62,
"start": 37, "start": 37,
"type": "CallExpression", "type": "CallExpression",
@ -89,8 +101,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 75,
"elements": [ "elements": [
{ {
"commentStart": 76,
"end": 77, "end": 77,
"raw": "0", "raw": "0",
"start": 76, "start": 76,
@ -102,6 +116,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 79,
"end": 81, "end": 81,
"raw": "10", "raw": "10",
"start": 79, "start": 79,
@ -119,6 +134,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 84,
"end": 85, "end": 85,
"start": 84, "start": 84,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -126,11 +142,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 70,
"end": 74, "end": 74,
"name": "line", "name": "line",
"start": 70, "start": 70,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 70,
"end": 86, "end": 86,
"start": 70, "start": 70,
"type": "CallExpression", "type": "CallExpression",
@ -139,9 +157,11 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 108,
"elements": [ "elements": [
{ {
"argument": { "argument": {
"commentStart": 110,
"end": 111, "end": 111,
"raw": "5", "raw": "5",
"start": 110, "start": 110,
@ -152,6 +172,7 @@ expression: actual
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 109,
"end": 111, "end": 111,
"operator": "-", "operator": "-",
"start": 109, "start": 109,
@ -159,6 +180,7 @@ expression: actual
"type": "UnaryExpression" "type": "UnaryExpression"
}, },
{ {
"commentStart": 113,
"end": 114, "end": 114,
"raw": "5", "raw": "5",
"start": 113, "start": 113,
@ -176,6 +198,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 117,
"end": 118, "end": 118,
"start": 117, "start": 117,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -183,11 +206,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 94,
"end": 107, "end": 107,
"name": "tangentialArc", "name": "tangentialArc",
"start": 94, "start": 94,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 94,
"end": 119, "end": 119,
"start": 94, "start": 94,
"type": "CallExpression", "type": "CallExpression",
@ -196,8 +221,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 132,
"elements": [ "elements": [
{ {
"commentStart": 133,
"end": 134, "end": 134,
"raw": "5", "raw": "5",
"start": 133, "start": 133,
@ -210,6 +237,7 @@ expression: actual
}, },
{ {
"argument": { "argument": {
"commentStart": 137,
"end": 139, "end": 139,
"raw": "15", "raw": "15",
"start": 137, "start": 137,
@ -220,6 +248,7 @@ expression: actual
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 136,
"end": 139, "end": 139,
"operator": "-", "operator": "-",
"start": 136, "start": 136,
@ -233,6 +262,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 142,
"end": 143, "end": 143,
"start": 142, "start": 142,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -240,11 +270,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 127,
"end": 131, "end": 131,
"name": "line", "name": "line",
"start": 127, "start": 127,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 127,
"end": 144, "end": 144,
"start": 127, "start": 127,
"type": "CallExpression", "type": "CallExpression",
@ -255,12 +287,14 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 160,
"end": 166, "end": 166,
"name": "length", "name": "length",
"start": 160, "start": 160,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 167,
"end": 169, "end": 169,
"raw": "10", "raw": "10",
"start": 167, "start": 167,
@ -274,11 +308,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 152,
"end": 159, "end": 159,
"name": "extrude", "name": "extrude",
"start": 152, "start": 152,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 152,
"end": 170, "end": 170,
"start": 152, "start": 152,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -286,6 +322,7 @@ expression: actual
"unlabeled": null "unlabeled": null
} }
], ],
"commentStart": 12,
"end": 170, "end": 170,
"start": 12, "start": 12,
"type": "PipeExpression", "type": "PipeExpression",
@ -301,6 +338,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 171, "end": 171,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 11, "end": 11,
"id": { "id": {
"commentStart": 0,
"end": 2, "end": 2,
"name": "sg", "name": "sg",
"start": 0, "start": 0,
@ -15,12 +18,14 @@ expression: actual
}, },
"init": { "init": {
"argument": { "argument": {
"commentStart": 6,
"end": 11, "end": 11,
"name": "scale", "name": "scale",
"start": 6, "start": 6,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 5,
"end": 11, "end": 11,
"operator": "-", "operator": "-",
"start": 5, "start": 5,
@ -37,6 +42,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 11, "end": 11,
"start": 0 "start": 0
} }

View File

@ -5,20 +5,24 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 27, "end": 27,
"expression": { "expression": {
"arguments": [ "arguments": [
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 5,
"end": 16, "end": 16,
"name": "endAbsolute", "name": "endAbsolute",
"start": 5, "start": 5,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 19,
"elements": [ "elements": [
{ {
"commentStart": 20,
"end": 21, "end": 21,
"raw": "0", "raw": "0",
"start": 20, "start": 20,
@ -31,6 +35,7 @@ expression: actual
}, },
{ {
"argument": { "argument": {
"commentStart": 24,
"end": 25, "end": 25,
"raw": "1", "raw": "1",
"start": 24, "start": 24,
@ -41,6 +46,7 @@ expression: actual
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 23,
"end": 25, "end": 25,
"operator": "-", "operator": "-",
"start": 23, "start": 23,
@ -56,11 +62,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 0,
"end": 4, "end": 4,
"name": "line", "name": "line",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 0,
"end": 27, "end": 27,
"start": 0, "start": 0,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -72,6 +80,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 27, "end": 27,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 17, "end": 17,
"id": { "id": {
"commentStart": 0,
"end": 7, "end": 7,
"name": "myArray", "name": "myArray",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 10,
"end": 17, "end": 17,
"endElement": { "endElement": {
"commentStart": 14,
"end": 16, "end": 16,
"raw": "10", "raw": "10",
"start": 14, "start": 14,
@ -29,6 +34,7 @@ expression: actual
"endInclusive": true, "endInclusive": true,
"start": 10, "start": 10,
"startElement": { "startElement": {
"commentStart": 11,
"end": 12, "end": 12,
"raw": "0", "raw": "0",
"start": 11, "start": 11,
@ -52,6 +58,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 17, "end": 17,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 5,
"declaration": { "declaration": {
"commentStart": 8,
"end": 57, "end": 57,
"id": { "id": {
"commentStart": 8,
"end": 24, "end": 24,
"name": "firstPrimeNumber", "name": "firstPrimeNumber",
"start": 8, "start": 8,
@ -18,6 +21,7 @@ expression: actual
"body": [ "body": [
{ {
"argument": { "argument": {
"commentStart": 50,
"end": 51, "end": 51,
"raw": "2", "raw": "2",
"start": 50, "start": 50,
@ -28,15 +32,18 @@ expression: actual
"suffix": "None" "suffix": "None"
} }
}, },
"commentStart": 43,
"end": 51, "end": 51,
"start": 43, "start": 43,
"type": "ReturnStatement", "type": "ReturnStatement",
"type": "ReturnStatement" "type": "ReturnStatement"
} }
], ],
"commentStart": 33,
"end": 57, "end": 57,
"start": 33 "start": 33
}, },
"commentStart": 27,
"end": 57, "end": 57,
"params": [], "params": [],
"start": 27, "start": 27,
@ -53,15 +60,18 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
}, },
{ {
"commentStart": 62,
"end": 80, "end": 80,
"expression": { "expression": {
"arguments": [], "arguments": [],
"callee": { "callee": {
"commentStart": 62,
"end": 78, "end": 78,
"name": "firstPrimeNumber", "name": "firstPrimeNumber",
"start": 62, "start": 62,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 62,
"end": 80, "end": 80,
"start": 62, "start": 62,
"type": "CallExpression", "type": "CallExpression",
@ -72,6 +82,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 80, "end": 80,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 3,
"end": 49, "end": 49,
"id": { "id": {
"commentStart": 3,
"end": 8, "end": 8,
"name": "thing", "name": "thing",
"start": 3, "start": 3,
@ -18,6 +21,7 @@ expression: actual
"body": [ "body": [
{ {
"argument": { "argument": {
"commentStart": 39,
"end": 43, "end": 43,
"raw": "true", "raw": "true",
"start": 39, "start": 39,
@ -25,20 +29,24 @@ expression: actual
"type": "Literal", "type": "Literal",
"value": true "value": true
}, },
"commentStart": 32,
"end": 43, "end": 43,
"start": 32, "start": 32,
"type": "ReturnStatement", "type": "ReturnStatement",
"type": "ReturnStatement" "type": "ReturnStatement"
} }
], ],
"commentStart": 22,
"end": 49, "end": 49,
"start": 22 "start": 22
}, },
"commentStart": 11,
"end": 49, "end": 49,
"params": [ "params": [
{ {
"type": "Parameter", "type": "Parameter",
"identifier": { "identifier": {
"commentStart": 12,
"end": 17, "end": 17,
"name": "param", "name": "param",
"start": 12, "start": 12,
@ -60,10 +68,12 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
}, },
{ {
"commentStart": 54,
"end": 66, "end": 66,
"expression": { "expression": {
"arguments": [ "arguments": [
{ {
"commentStart": 60,
"end": 65, "end": 65,
"raw": "false", "raw": "false",
"start": 60, "start": 60,
@ -73,11 +83,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 54,
"end": 59, "end": 59,
"name": "thing", "name": "thing",
"start": 54, "start": 54,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 54,
"end": 66, "end": 66,
"start": 54, "start": 54,
"type": "CallExpression", "type": "CallExpression",
@ -88,6 +100,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 66, "end": 66,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 230, "end": 230,
"id": { "id": {
"commentStart": 0,
"end": 8, "end": 8,
"name": "mySketch", "name": "mySketch",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 25,
"end": 27, "end": 27,
"name": "XY", "name": "XY",
"start": 25, "start": 25,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 11,
"end": 24, "end": 24,
"name": "startSketchOn", "name": "startSketchOn",
"start": 11, "start": 11,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 11,
"end": 28, "end": 28,
"start": 11, "start": 11,
"type": "CallExpression", "type": "CallExpression",
@ -39,8 +45,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 55,
"elements": [ "elements": [
{ {
"commentStart": 56,
"end": 57, "end": 57,
"raw": "0", "raw": "0",
"start": 56, "start": 56,
@ -52,6 +60,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 58,
"end": 59, "end": 59,
"raw": "0", "raw": "0",
"start": 58, "start": 58,
@ -69,6 +78,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 62,
"end": 63, "end": 63,
"start": 62, "start": 62,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -76,11 +86,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 40,
"end": 54, "end": 54,
"name": "startProfileAt", "name": "startProfileAt",
"start": 40, "start": 40,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 40,
"end": 64, "end": 64,
"start": 40, "start": 40,
"type": "CallExpression", "type": "CallExpression",
@ -91,14 +103,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 81,
"end": 92, "end": 92,
"name": "endAbsolute", "name": "endAbsolute",
"start": 81, "start": 81,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 95,
"elements": [ "elements": [
{ {
"commentStart": 96,
"end": 97, "end": 97,
"raw": "0", "raw": "0",
"start": 96, "start": 96,
@ -110,6 +125,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 99,
"end": 100, "end": 100,
"raw": "1", "raw": "1",
"start": 99, "start": 99,
@ -130,12 +146,14 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 103,
"end": 106, "end": 106,
"name": "tag", "name": "tag",
"start": 103, "start": 103,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 109,
"end": 116, "end": 116,
"start": 109, "start": 109,
"type": "TagDeclarator", "type": "TagDeclarator",
@ -145,11 +163,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 76,
"end": 80, "end": 80,
"name": "line", "name": "line",
"start": 76, "start": 76,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 76,
"end": 117, "end": 117,
"start": 76, "start": 76,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -161,14 +181,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 134,
"end": 145, "end": 145,
"name": "endAbsolute", "name": "endAbsolute",
"start": 134, "start": 134,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 148,
"elements": [ "elements": [
{ {
"commentStart": 149,
"end": 150, "end": 150,
"raw": "1", "raw": "1",
"start": 149, "start": 149,
@ -180,6 +203,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 152,
"end": 153, "end": 153,
"raw": "1", "raw": "1",
"start": 152, "start": 152,
@ -199,11 +223,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 129,
"end": 133, "end": 133,
"name": "line", "name": "line",
"start": 129, "start": 129,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 129,
"end": 155, "end": 155,
"start": 129, "start": 129,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -215,14 +241,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 172,
"end": 183, "end": 183,
"name": "endAbsolute", "name": "endAbsolute",
"start": 172, "start": 172,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 186,
"elements": [ "elements": [
{ {
"commentStart": 187,
"end": 188, "end": 188,
"raw": "1", "raw": "1",
"start": 187, "start": 187,
@ -234,6 +263,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 190,
"end": 191, "end": 191,
"raw": "0", "raw": "0",
"start": 190, "start": 190,
@ -254,12 +284,14 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 194,
"end": 197, "end": 197,
"name": "tag", "name": "tag",
"start": 194, "start": 194,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 200,
"end": 210, "end": 210,
"start": 200, "start": 200,
"type": "TagDeclarator", "type": "TagDeclarator",
@ -269,11 +301,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 167,
"end": 171, "end": 171,
"name": "line", "name": "line",
"start": 167, "start": 167,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 167,
"end": 211, "end": 211,
"start": 167, "start": 167,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -283,17 +317,20 @@ expression: actual
{ {
"arguments": [], "arguments": [],
"callee": { "callee": {
"commentStart": 223,
"end": 228, "end": 228,
"name": "close", "name": "close",
"start": 223, "start": 223,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 223,
"end": 230, "end": 230,
"start": 223, "start": 223,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 11,
"end": 230, "end": 230,
"start": 11, "start": 11,
"type": "PipeExpression", "type": "PipeExpression",
@ -309,6 +346,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 230, "end": 230,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 97, "end": 97,
"id": { "id": {
"commentStart": 0,
"end": 8, "end": 8,
"name": "mySketch", "name": "mySketch",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 25,
"end": 27, "end": 27,
"name": "XY", "name": "XY",
"start": 25, "start": 25,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 11,
"end": 24, "end": 24,
"name": "startSketchOn", "name": "startSketchOn",
"start": 11, "start": 11,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 11,
"end": 28, "end": 28,
"start": 11, "start": 11,
"type": "CallExpression", "type": "CallExpression",
@ -39,8 +45,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 47,
"elements": [ "elements": [
{ {
"commentStart": 48,
"end": 49, "end": 49,
"raw": "0", "raw": "0",
"start": 48, "start": 48,
@ -52,6 +60,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 50,
"end": 51, "end": 51,
"raw": "0", "raw": "0",
"start": 50, "start": 50,
@ -69,6 +78,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 54,
"end": 55, "end": 55,
"start": 54, "start": 54,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -76,11 +86,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 32,
"end": 46, "end": 46,
"name": "startProfileAt", "name": "startProfileAt",
"start": 32, "start": 32,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 32,
"end": 56, "end": 56,
"start": 32, "start": 32,
"type": "CallExpression", "type": "CallExpression",
@ -91,14 +103,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 65,
"end": 76, "end": 76,
"name": "endAbsolute", "name": "endAbsolute",
"start": 65, "start": 65,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 79,
"elements": [ "elements": [
{ {
"commentStart": 80,
"end": 81, "end": 81,
"raw": "1", "raw": "1",
"start": 80, "start": 80,
@ -110,6 +125,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 83,
"end": 84, "end": 84,
"raw": "1", "raw": "1",
"start": 83, "start": 83,
@ -129,11 +145,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 60,
"end": 64, "end": 64,
"name": "line", "name": "line",
"start": 60, "start": 60,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 60,
"end": 86, "end": 86,
"start": 60, "start": 60,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -143,17 +161,20 @@ expression: actual
{ {
"arguments": [], "arguments": [],
"callee": { "callee": {
"commentStart": 90,
"end": 95, "end": 95,
"name": "close", "name": "close",
"start": 90, "start": 90,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 90,
"end": 97, "end": 97,
"start": 90, "start": 90,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 11,
"end": 97, "end": 97,
"start": 11, "start": 11,
"type": "PipeExpression", "type": "PipeExpression",
@ -169,6 +190,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 97, "end": 97,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 49, "end": 49,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myBox", "name": "myBox",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 22,
"end": 24, "end": 24,
"name": "XY", "name": "XY",
"start": 22, "start": 22,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 8,
"end": 21, "end": 21,
"name": "startSketchOn", "name": "startSketchOn",
"start": 8, "start": 8,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 8,
"end": 25, "end": 25,
"start": 8, "start": 8,
"type": "CallExpression", "type": "CallExpression",
@ -39,6 +45,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 44,
"end": 45, "end": 45,
"name": "p", "name": "p",
"start": 44, "start": 44,
@ -46,6 +53,7 @@ expression: actual
"type": "Identifier" "type": "Identifier"
}, },
{ {
"commentStart": 47,
"end": 48, "end": 48,
"start": 47, "start": 47,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -53,17 +61,20 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 29,
"end": 43, "end": 43,
"name": "startProfileAt", "name": "startProfileAt",
"start": 29, "start": 29,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 29,
"end": 49, "end": 49,
"start": 29, "start": 29,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 8,
"end": 49, "end": 49,
"start": 8, "start": 8,
"type": "PipeExpression", "type": "PipeExpression",
@ -79,6 +90,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 49, "end": 49,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 23, "end": 23,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myBox", "name": "myBox",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 10,
"end": 11, "end": 11,
"raw": "1", "raw": "1",
"start": 10, "start": 10,
@ -30,11 +34,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 8,
"end": 9, "end": 9,
"name": "f", "name": "f",
"start": 8, "start": 8,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 8,
"end": 12, "end": 12,
"start": 8, "start": 8,
"type": "CallExpression", "type": "CallExpression",
@ -43,6 +49,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 18,
"end": 19, "end": 19,
"raw": "2", "raw": "2",
"start": 18, "start": 18,
@ -54,6 +61,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 21,
"end": 22, "end": 22,
"start": 21, "start": 21,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -61,17 +69,20 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 16,
"end": 17, "end": 17,
"name": "g", "name": "g",
"start": 16, "start": 16,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 16,
"end": 23, "end": 23,
"start": 16, "start": 16,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 8,
"end": 23, "end": 23,
"start": 8, "start": 8,
"type": "PipeExpression", "type": "PipeExpression",
@ -87,6 +98,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 23, "end": 23,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 71, "end": 71,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myBox", "name": "myBox",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 22,
"end": 24, "end": 24,
"name": "XY", "name": "XY",
"start": 22, "start": 22,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 8,
"end": 21, "end": 21,
"name": "startSketchOn", "name": "startSketchOn",
"start": 8, "start": 8,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 8,
"end": 25, "end": 25,
"start": 8, "start": 8,
"type": "CallExpression", "type": "CallExpression",
@ -39,6 +45,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 44,
"end": 45, "end": 45,
"name": "p", "name": "p",
"start": 44, "start": 44,
@ -46,6 +53,7 @@ expression: actual
"type": "Identifier" "type": "Identifier"
}, },
{ {
"commentStart": 47,
"end": 48, "end": 48,
"start": 47, "start": 47,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -53,11 +61,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 29,
"end": 43, "end": 43,
"name": "startProfileAt", "name": "startProfileAt",
"start": 29, "start": 29,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 29,
"end": 49, "end": 49,
"start": 29, "start": 29,
"type": "CallExpression", "type": "CallExpression",
@ -68,14 +78,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 58,
"end": 61, "end": 61,
"name": "end", "name": "end",
"start": 58, "start": 58,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 64,
"elements": [ "elements": [
{ {
"commentStart": 65,
"end": 66, "end": 66,
"raw": "0", "raw": "0",
"start": 65, "start": 65,
@ -87,6 +100,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 68,
"end": 69, "end": 69,
"name": "l", "name": "l",
"start": 68, "start": 68,
@ -102,11 +116,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 53,
"end": 57, "end": 57,
"name": "line", "name": "line",
"start": 53, "start": 53,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 53,
"end": 71, "end": 71,
"start": 53, "start": 53,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -114,6 +130,7 @@ expression: actual
"unlabeled": null "unlabeled": null
} }
], ],
"commentStart": 8,
"end": 71, "end": 71,
"start": 8, "start": 8,
"type": "PipeExpression", "type": "PipeExpression",
@ -129,6 +146,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 71, "end": 71,
"start": 0 "start": 0
} }

View File

@ -5,20 +5,24 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 26, "end": 26,
"expression": { "expression": {
"arguments": [ "arguments": [
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 5,
"end": 16, "end": 16,
"name": "endAbsolute", "name": "endAbsolute",
"start": 5, "start": 5,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 19,
"elements": [ "elements": [
{ {
"commentStart": 20,
"end": 21, "end": 21,
"raw": "0", "raw": "0",
"start": 20, "start": 20,
@ -30,6 +34,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 23,
"end": 24, "end": 24,
"raw": "1", "raw": "1",
"start": 23, "start": 23,
@ -49,11 +54,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 0,
"end": 4, "end": 4,
"name": "line", "name": "line",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 0,
"end": 26, "end": 26,
"start": 0, "start": 0,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -65,6 +72,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 26, "end": 26,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 56, "end": 56,
"id": { "id": {
"commentStart": 0,
"end": 8, "end": 8,
"name": "mySketch", "name": "mySketch",
"start": 0, "start": 0,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 25,
"end": 27, "end": 27,
"name": "XY", "name": "XY",
"start": 25, "start": 25,
@ -26,11 +30,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 11,
"end": 24, "end": 24,
"name": "startSketchOn", "name": "startSketchOn",
"start": 11, "start": 11,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 11,
"end": 28, "end": 28,
"start": 11, "start": 11,
"type": "CallExpression", "type": "CallExpression",
@ -39,8 +45,10 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 47,
"elements": [ "elements": [
{ {
"commentStart": 48,
"end": 49, "end": 49,
"raw": "0", "raw": "0",
"start": 48, "start": 48,
@ -52,6 +60,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 50,
"end": 51, "end": 51,
"raw": "0", "raw": "0",
"start": 50, "start": 50,
@ -69,6 +78,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 54,
"end": 55, "end": 55,
"start": 54, "start": 54,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -76,17 +86,20 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 32,
"end": 46, "end": 46,
"name": "startProfileAt", "name": "startProfileAt",
"start": 32, "start": 32,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 32,
"end": 56, "end": 56,
"start": 32, "start": 32,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 11,
"end": 56, "end": 56,
"start": 11, "start": 11,
"type": "PipeExpression", "type": "PipeExpression",
@ -102,6 +115,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 56, "end": 56,
"start": 0 "start": 0
} }

View File

@ -1,14 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 28, "end": 28,
"expression": { "expression": {
"arguments": [ "arguments": [
{ {
"commentStart": 4,
"end": 5, "end": 5,
"raw": "5", "raw": "5",
"start": 4, "start": 4,
@ -20,6 +22,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 7,
"end": 14, "end": 14,
"raw": "\"hello\"", "raw": "\"hello\"",
"start": 7, "start": 7,
@ -28,6 +31,7 @@ expression: actual
"value": "hello" "value": "hello"
}, },
{ {
"commentStart": 16,
"end": 27, "end": 27,
"name": "aIdentifier", "name": "aIdentifier",
"start": 16, "start": 16,
@ -36,11 +40,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 0,
"end": 3, "end": 3,
"name": "log", "name": "log",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 0,
"end": 28, "end": 28,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
@ -51,6 +57,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 28, "end": 28,
"start": 0 "start": 0
} }

View File

@ -1,14 +1,17 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 7, "end": 7,
"expression": { "expression": {
"commentStart": 0,
"end": 7, "end": 7,
"left": { "left": {
"commentStart": 0,
"end": 1, "end": 1,
"raw": "5", "raw": "5",
"start": 0, "start": 0,
@ -21,6 +24,7 @@ expression: actual
}, },
"operator": "+", "operator": "+",
"right": { "right": {
"commentStart": 4,
"end": 7, "end": 7,
"raw": "\"a\"", "raw": "\"a\"",
"start": 4, "start": 4,
@ -37,6 +41,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 7, "end": 7,
"start": 0 "start": 0
} }

View File

@ -1,16 +1,19 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 15, "end": 15,
"expression": { "expression": {
"arguments": [ "arguments": [
{ {
"commentStart": 5,
"elements": [ "elements": [
{ {
"commentStart": 6,
"end": 7, "end": 7,
"raw": "0", "raw": "0",
"start": 6, "start": 6,
@ -22,6 +25,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 9,
"end": 10, "end": 10,
"name": "l", "name": "l",
"start": 9, "start": 9,
@ -35,6 +39,7 @@ expression: actual
"type": "ArrayExpression" "type": "ArrayExpression"
}, },
{ {
"commentStart": 13,
"end": 14, "end": 14,
"start": 13, "start": 13,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -42,11 +47,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 0,
"end": 4, "end": 4,
"name": "line", "name": "line",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 0,
"end": 15, "end": 15,
"start": 0, "start": 0,
"type": "CallExpression", "type": "CallExpression",
@ -57,6 +64,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 15, "end": 15,
"start": 0 "start": 0
} }

View File

@ -5,9 +5,12 @@ expression: actual
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 6,
"end": 106, "end": 106,
"id": { "id": {
"commentStart": 6,
"end": 14, "end": 14,
"name": "cylinder", "name": "cylinder",
"start": 6, "start": 6,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 31,
"end": 35, "end": 35,
"raw": "'XY'", "raw": "'XY'",
"start": 31, "start": 31,
@ -27,11 +31,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 17,
"end": 30, "end": 30,
"name": "startSketchOn", "name": "startSketchOn",
"start": 17, "start": 17,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 17,
"end": 36, "end": 36,
"start": 17, "start": 17,
"type": "CallExpression", "type": "CallExpression",
@ -42,14 +48,17 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 51,
"end": 57, "end": 57,
"name": "center", "name": "center",
"start": 51, "start": 51,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 59,
"elements": [ "elements": [
{ {
"commentStart": 60,
"end": 61, "end": 61,
"raw": "0", "raw": "0",
"start": 60, "start": 60,
@ -61,6 +70,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 63,
"end": 64, "end": 64,
"raw": "0", "raw": "0",
"start": 63, "start": 63,
@ -81,12 +91,14 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 67,
"end": 73, "end": 73,
"name": "radius", "name": "radius",
"start": 67, "start": 67,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 75,
"end": 77, "end": 77,
"raw": "22", "raw": "22",
"start": 75, "start": 75,
@ -100,11 +112,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 44,
"end": 50, "end": 50,
"name": "circle", "name": "circle",
"start": 44, "start": 44,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 44,
"end": 78, "end": 78,
"start": 44, "start": 44,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -116,12 +130,14 @@ expression: actual
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"commentStart": 94,
"end": 100, "end": 100,
"name": "length", "name": "length",
"start": 94, "start": 94,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"commentStart": 103,
"end": 105, "end": 105,
"raw": "14", "raw": "14",
"start": 103, "start": 103,
@ -135,11 +151,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 86,
"end": 93, "end": 93,
"name": "extrude", "name": "extrude",
"start": 86, "start": 86,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 86,
"end": 106, "end": 106,
"start": 86, "start": 86,
"type": "CallExpressionKw", "type": "CallExpressionKw",
@ -147,6 +165,7 @@ expression: actual
"unlabeled": null "unlabeled": null
} }
], ],
"commentStart": 17,
"end": 106, "end": 106,
"start": 17, "start": 17,
"type": "PipeExpression", "type": "PipeExpression",
@ -162,6 +181,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 107, "end": 107,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 3,
"end": 49, "end": 49,
"id": { "id": {
"commentStart": 3,
"end": 4, "end": 4,
"name": "f", "name": "f",
"start": 3, "start": 3,
@ -20,6 +23,7 @@ expression: actual
"argument": { "argument": {
"arguments": [ "arguments": [
{ {
"commentStart": 36,
"end": 41, "end": 41,
"name": "angle", "name": "angle",
"start": 36, "start": 36,
@ -27,6 +31,7 @@ expression: actual
"type": "Identifier" "type": "Identifier"
}, },
{ {
"commentStart": 43,
"end": 46, "end": 46,
"raw": "360", "raw": "360",
"start": 43, "start": 43,
@ -39,30 +44,36 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 28,
"end": 35, "end": 35,
"name": "default", "name": "default",
"start": 28, "start": 28,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 28,
"end": 47, "end": 47,
"start": 28, "start": 28,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}, },
"commentStart": 21,
"end": 47, "end": 47,
"start": 21, "start": 21,
"type": "ReturnStatement", "type": "ReturnStatement",
"type": "ReturnStatement" "type": "ReturnStatement"
} }
], ],
"commentStart": 19,
"end": 49, "end": 49,
"start": 19 "start": 19
}, },
"commentStart": 7,
"end": 49, "end": 49,
"params": [ "params": [
{ {
"type": "Parameter", "type": "Parameter",
"identifier": { "identifier": {
"commentStart": 8,
"end": 13, "end": 13,
"name": "angle", "name": "angle",
"start": 8, "start": 8,
@ -89,6 +100,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 49, "end": 49,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 91, "end": 91,
"id": { "id": {
"commentStart": 4,
"end": 11, "end": 11,
"name": "numbers", "name": "numbers",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 14,
"elements": [ "elements": [
{ {
"commentStart": 28,
"end": 29, "end": 29,
"raw": "1", "raw": "1",
"start": 28, "start": 28,
@ -27,6 +32,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 79,
"end": 80, "end": 80,
"raw": "3", "raw": "3",
"start": 79, "start": 79,
@ -43,6 +49,7 @@ expression: actual
"nonCodeNodes": { "nonCodeNodes": {
"1": [ "1": [
{ {
"commentStart": 43,
"end": 48, "end": 48,
"start": 43, "start": 43,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -55,6 +62,7 @@ expression: actual
], ],
"2": [ "2": [
{ {
"commentStart": 61,
"end": 66, "end": 66,
"start": 61, "start": 61,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -82,6 +90,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 91, "end": 91,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 91, "end": 91,
"id": { "id": {
"commentStart": 4,
"end": 11, "end": 11,
"name": "numbers", "name": "numbers",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 14,
"elements": [ "elements": [
{ {
"commentStart": 28,
"end": 29, "end": 29,
"raw": "1", "raw": "1",
"start": 28, "start": 28,
@ -27,6 +32,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 43,
"end": 44, "end": 44,
"raw": "2", "raw": "2",
"start": 43, "start": 43,
@ -43,6 +49,7 @@ expression: actual
"nonCodeNodes": { "nonCodeNodes": {
"2": [ "2": [
{ {
"commentStart": 58,
"end": 63, "end": 63,
"start": 58, "start": 58,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -55,6 +62,7 @@ expression: actual
], ],
"3": [ "3": [
{ {
"commentStart": 76,
"end": 81, "end": 81,
"start": 76, "start": 76,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -82,6 +90,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 91, "end": 91,
"start": 0 "start": 0
} }

View File

@ -1,24 +1,29 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 80, "end": 80,
"id": { "id": {
"commentStart": 4,
"end": 9, "end": 9,
"name": "props", "name": "props",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 12,
"end": 80, "end": 80,
"nonCodeMeta": { "nonCodeMeta": {
"nonCodeNodes": { "nonCodeNodes": {
"1": [ "1": [
{ {
"commentStart": 44,
"end": 52, "end": 52,
"start": 44, "start": 44,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -34,8 +39,10 @@ expression: actual
}, },
"properties": [ "properties": [
{ {
"commentStart": 26,
"end": 30, "end": 30,
"key": { "key": {
"commentStart": 26,
"end": 27, "end": 27,
"name": "a", "name": "a",
"start": 26, "start": 26,
@ -44,6 +51,7 @@ expression: actual
"start": 26, "start": 26,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 29,
"end": 30, "end": 30,
"raw": "1", "raw": "1",
"start": 29, "start": 29,
@ -56,8 +64,10 @@ expression: actual
} }
}, },
{ {
"commentStart": 65,
"end": 69, "end": 69,
"key": { "key": {
"commentStart": 65,
"end": 66, "end": 66,
"name": "c", "name": "c",
"start": 65, "start": 65,
@ -66,6 +76,7 @@ expression: actual
"start": 65, "start": 65,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 68,
"end": 69, "end": 69,
"raw": "3", "raw": "3",
"start": 68, "start": 68,
@ -92,6 +103,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 80, "end": 80,
"start": 0 "start": 0
} }

View File

@ -1,24 +1,29 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 79, "end": 79,
"id": { "id": {
"commentStart": 4,
"end": 9, "end": 9,
"name": "props", "name": "props",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 12,
"end": 79, "end": 79,
"nonCodeMeta": { "nonCodeMeta": {
"nonCodeNodes": { "nonCodeNodes": {
"1": [ "1": [
{ {
"commentStart": 44,
"end": 52, "end": 52,
"start": 44, "start": 44,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -34,8 +39,10 @@ expression: actual
}, },
"properties": [ "properties": [
{ {
"commentStart": 26,
"end": 30, "end": 30,
"key": { "key": {
"commentStart": 26,
"end": 27, "end": 27,
"name": "a", "name": "a",
"start": 26, "start": 26,
@ -44,6 +51,7 @@ expression: actual
"start": 26, "start": 26,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 29,
"end": 30, "end": 30,
"raw": "1", "raw": "1",
"start": 29, "start": 29,
@ -56,8 +64,10 @@ expression: actual
} }
}, },
{ {
"commentStart": 65,
"end": 69, "end": 69,
"key": { "key": {
"commentStart": 65,
"end": 66, "end": 66,
"name": "c", "name": "c",
"start": 65, "start": 65,
@ -66,6 +76,7 @@ expression: actual
"start": 65, "start": 65,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 68,
"end": 69, "end": 69,
"raw": "3", "raw": "3",
"start": 68, "start": 68,
@ -92,6 +103,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 79, "end": 79,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 30, "end": 30,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myVar", "name": "myVar",
"start": 0, "start": 0,
@ -16,6 +19,7 @@ expression: actual
"init": { "init": {
"arguments": [ "arguments": [
{ {
"commentStart": 12,
"end": 13, "end": 13,
"raw": "5", "raw": "5",
"start": 12, "start": 12,
@ -30,6 +34,7 @@ expression: actual
"argument": { "argument": {
"arguments": [ "arguments": [
{ {
"commentStart": 24,
"end": 25, "end": 25,
"raw": "5", "raw": "5",
"start": 24, "start": 24,
@ -41,6 +46,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 27,
"end": 28, "end": 28,
"raw": "4", "raw": "4",
"start": 27, "start": 27,
@ -53,16 +59,19 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 17,
"end": 23, "end": 23,
"name": "legLen", "name": "legLen",
"start": 17, "start": 17,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 17,
"end": 29, "end": 29,
"start": 17, "start": 17,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}, },
"commentStart": 16,
"end": 29, "end": 29,
"operator": "-", "operator": "-",
"start": 16, "start": 16,
@ -71,11 +80,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 8,
"end": 11, "end": 11,
"name": "min", "name": "min",
"start": 8, "start": 8,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 8,
"end": 30, "end": 30,
"start": 8, "start": 8,
"type": "CallExpression", "type": "CallExpression",
@ -91,6 +102,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 30, "end": 30,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 1,
"declaration": { "declaration": {
"commentStart": 1,
"end": 126, "end": 126,
"id": { "id": {
"commentStart": 1,
"end": 10, "end": 10,
"name": "sketch001", "name": "sketch001",
"start": 1, "start": 1,
@ -18,6 +21,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 27,
"end": 31, "end": 31,
"raw": "'XY'", "raw": "'XY'",
"start": 27, "start": 27,
@ -27,11 +31,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 13,
"end": 26, "end": 26,
"name": "startSketchOn", "name": "startSketchOn",
"start": 13, "start": 13,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 13,
"end": 32, "end": 32,
"start": 13, "start": 13,
"type": "CallExpression", "type": "CallExpression",
@ -40,6 +46,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 124,
"end": 125, "end": 125,
"start": 124, "start": 124,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -47,22 +54,26 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 109,
"end": 123, "end": 123,
"name": "startProfileAt", "name": "startProfileAt",
"start": 109, "start": 109,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 109,
"end": 126, "end": 126,
"start": 109, "start": 109,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 13,
"end": 126, "end": 126,
"nonCodeMeta": { "nonCodeMeta": {
"nonCodeNodes": { "nonCodeNodes": {
"0": [ "0": [
{ {
"commentStart": 35,
"end": 46, "end": 46,
"start": 35, "start": 35,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -73,6 +84,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 49,
"end": 68, "end": 68,
"start": 49, "start": 49,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -83,6 +95,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 71,
"end": 92, "end": 92,
"start": 71, "start": 71,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -93,6 +106,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 95,
"end": 103, "end": 103,
"start": 95, "start": 95,
"type": "NonCodeNode", "type": "NonCodeNode",
@ -120,6 +134,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 127, "end": 127,
"start": 0 "start": 0
} }

View File

@ -1,23 +1,29 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 1,
"declaration": { "declaration": {
"commentStart": 1,
"end": 25, "end": 25,
"id": { "id": {
"commentStart": 1,
"end": 5, "end": 5,
"name": "my14", "name": "my14",
"start": 1, "start": 1,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 8,
"end": 25, "end": 25,
"left": { "left": {
"commentStart": 8,
"end": 13, "end": 13,
"left": { "left": {
"commentStart": 8,
"end": 9, "end": 9,
"raw": "4", "raw": "4",
"start": 8, "start": 8,
@ -30,6 +36,7 @@ expression: actual
}, },
"operator": "^", "operator": "^",
"right": { "right": {
"commentStart": 12,
"end": 13, "end": 13,
"raw": "2", "raw": "2",
"start": 12, "start": 12,
@ -46,10 +53,13 @@ expression: actual
}, },
"operator": "-", "operator": "-",
"right": { "right": {
"commentStart": 16,
"end": 25, "end": 25,
"left": { "left": {
"commentStart": 16,
"end": 21, "end": 21,
"left": { "left": {
"commentStart": 16,
"end": 17, "end": 17,
"raw": "3", "raw": "3",
"start": 16, "start": 16,
@ -62,6 +72,7 @@ expression: actual
}, },
"operator": "^", "operator": "^",
"right": { "right": {
"commentStart": 20,
"end": 21, "end": 21,
"raw": "2", "raw": "2",
"start": 20, "start": 20,
@ -78,6 +89,7 @@ expression: actual
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"commentStart": 24,
"end": 25, "end": 25,
"raw": "2", "raw": "2",
"start": 24, "start": 24,
@ -106,6 +118,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 26, "end": 26,
"start": 0 "start": 0
} }

View File

@ -1,20 +1,25 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 68, "end": 68,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"cond": { "cond": {
"commentStart": 7,
"end": 11, "end": 11,
"raw": "true", "raw": "true",
"start": 7, "start": 7,
@ -28,8 +33,10 @@ expression: actual
"final_else": { "final_else": {
"body": [ "body": [
{ {
"commentStart": 57,
"end": 58, "end": 58,
"expression": { "expression": {
"commentStart": 57,
"end": 58, "end": 58,
"raw": "4", "raw": "4",
"start": 57, "start": 57,
@ -45,6 +52,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 57,
"end": 67, "end": 67,
"start": 57 "start": 57
}, },
@ -52,8 +60,10 @@ expression: actual
"then_val": { "then_val": {
"body": [ "body": [
{ {
"commentStart": 26,
"end": 27, "end": 27,
"expression": { "expression": {
"commentStart": 26,
"end": 27, "end": 27,
"raw": "3", "raw": "3",
"start": 26, "start": 26,
@ -69,6 +79,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 26,
"end": 36, "end": 36,
"start": 26 "start": 26
}, },
@ -85,6 +96,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 68, "end": 68,
"start": 0 "start": 0
} }

View File

@ -1,20 +1,25 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 115, "end": 115,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"cond": { "cond": {
"commentStart": 7,
"end": 11, "end": 11,
"raw": "true", "raw": "true",
"start": 7, "start": 7,
@ -25,9 +30,11 @@ expression: actual
"digest": null, "digest": null,
"else_ifs": [ "else_ifs": [
{ {
"commentStart": 38,
"cond": { "cond": {
"arguments": [ "arguments": [
{ {
"commentStart": 51,
"end": 57, "end": 57,
"name": "radius", "name": "radius",
"start": 51, "start": 51,
@ -36,11 +43,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 46,
"end": 50, "end": 50,
"name": "func", "name": "func",
"start": 46, "start": 46,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 46,
"end": 58, "end": 58,
"start": 46, "start": 46,
"type": "CallExpression", "type": "CallExpression",
@ -52,8 +61,10 @@ expression: actual
"then_val": { "then_val": {
"body": [ "body": [
{ {
"commentStart": 73,
"end": 74, "end": 74,
"expression": { "expression": {
"commentStart": 73,
"end": 74, "end": 74,
"raw": "4", "raw": "4",
"start": 73, "start": 73,
@ -69,6 +80,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 59,
"end": 83, "end": 83,
"start": 59 "start": 59
}, },
@ -79,8 +91,10 @@ expression: actual
"final_else": { "final_else": {
"body": [ "body": [
{ {
"commentStart": 104,
"end": 105, "end": 105,
"expression": { "expression": {
"commentStart": 104,
"end": 105, "end": 105,
"raw": "5", "raw": "5",
"start": 104, "start": 104,
@ -96,6 +110,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 104,
"end": 114, "end": 114,
"start": 104 "start": 104
}, },
@ -103,8 +118,10 @@ expression: actual
"then_val": { "then_val": {
"body": [ "body": [
{ {
"commentStart": 26,
"end": 27, "end": 27,
"expression": { "expression": {
"commentStart": 26,
"end": 27, "end": 27,
"raw": "3", "raw": "3",
"start": 26, "start": 26,
@ -120,6 +137,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 26,
"end": 36, "end": 36,
"start": 26 "start": 26
}, },
@ -136,6 +154,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 115, "end": 115,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 14, "end": 14,
"id": { "id": {
"commentStart": 4,
"end": 5, "end": 5,
"name": "x", "name": "x",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 8,
"end": 14, "end": 14,
"left": { "left": {
"commentStart": 8,
"end": 9, "end": 9,
"raw": "3", "raw": "3",
"start": 8, "start": 8,
@ -28,6 +33,7 @@ expression: actual
}, },
"operator": "==", "operator": "==",
"right": { "right": {
"commentStart": 13,
"end": 14, "end": 14,
"raw": "3", "raw": "3",
"start": 13, "start": 13,
@ -52,6 +58,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 14, "end": 14,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 14, "end": 14,
"id": { "id": {
"commentStart": 4,
"end": 5, "end": 5,
"name": "x", "name": "x",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 8,
"end": 14, "end": 14,
"left": { "left": {
"commentStart": 8,
"end": 9, "end": 9,
"raw": "3", "raw": "3",
"start": 8, "start": 8,
@ -28,6 +33,7 @@ expression: actual
}, },
"operator": "!=", "operator": "!=",
"right": { "right": {
"commentStart": 13,
"end": 14, "end": 14,
"raw": "3", "raw": "3",
"start": 13, "start": 13,
@ -52,6 +58,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 14, "end": 14,
"start": 0 "start": 0
} }

View File

@ -1,19 +1,23 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 5, "end": 5,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 5, "end": 5,
"raw": "4", "raw": "4",
"start": 4, "start": 4,
@ -34,6 +38,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 5, "end": 5,
"start": 0 "start": 0
} }

View File

@ -1,24 +1,30 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 36, "end": 36,
"id": { "id": {
"commentStart": 0,
"end": 3, "end": 3,
"name": "obj", "name": "obj",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 6,
"end": 36, "end": 36,
"properties": [ "properties": [
{ {
"commentStart": 7,
"end": 24, "end": 24,
"key": { "key": {
"commentStart": 7,
"end": 13, "end": 13,
"name": "center", "name": "center",
"start": 7, "start": 7,
@ -27,8 +33,10 @@ expression: actual
"start": 7, "start": 7,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 16,
"elements": [ "elements": [
{ {
"commentStart": 17,
"end": 19, "end": 19,
"raw": "10", "raw": "10",
"start": 17, "start": 17,
@ -40,6 +48,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 21,
"end": 23, "end": 23,
"raw": "10", "raw": "10",
"start": 21, "start": 21,
@ -58,8 +67,10 @@ expression: actual
} }
}, },
{ {
"commentStart": 26,
"end": 35, "end": 35,
"key": { "key": {
"commentStart": 26,
"end": 32, "end": 32,
"name": "radius", "name": "radius",
"start": 26, "start": 26,
@ -68,6 +79,7 @@ expression: actual
"start": 26, "start": 26,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 34,
"end": 35, "end": 35,
"raw": "5", "raw": "5",
"start": 34, "start": 34,
@ -94,6 +106,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 36, "end": 36,
"start": 0 "start": 0
} }

View File

@ -1,19 +1,23 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 5, "end": 5,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 5, "end": 5,
"raw": "3", "raw": "3",
"start": 4, "start": 4,
@ -34,20 +38,26 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
}, },
{ {
"commentStart": 14,
"declaration": { "declaration": {
"commentStart": 14,
"end": 30, "end": 30,
"id": { "id": {
"commentStart": 14,
"end": 17, "end": 17,
"name": "obj", "name": "obj",
"start": 14, "start": 14,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 20,
"end": 30, "end": 30,
"properties": [ "properties": [
{ {
"commentStart": 22,
"end": 23, "end": 23,
"key": { "key": {
"commentStart": 22,
"end": 23, "end": 23,
"name": "x", "name": "x",
"start": 22, "start": 22,
@ -56,6 +66,7 @@ expression: actual
"start": 22, "start": 22,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 22,
"end": 23, "end": 23,
"name": "x", "name": "x",
"start": 22, "start": 22,
@ -64,8 +75,10 @@ expression: actual
} }
}, },
{ {
"commentStart": 25,
"end": 29, "end": 29,
"key": { "key": {
"commentStart": 25,
"end": 26, "end": 26,
"name": "y", "name": "y",
"start": 25, "start": 25,
@ -74,6 +87,7 @@ expression: actual
"start": 25, "start": 25,
"type": "ObjectProperty", "type": "ObjectProperty",
"value": { "value": {
"commentStart": 28,
"end": 29, "end": 29,
"raw": "4", "raw": "4",
"start": 28, "start": 28,
@ -100,6 +114,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 30, "end": 30,
"start": 0 "start": 0
} }

View File

@ -1,12 +1,14 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 4, "end": 4,
"expression": { "expression": {
"commentStart": 0,
"end": 4, "end": 4,
"raw": "true", "raw": "true",
"start": 0, "start": 0,
@ -19,6 +21,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 4, "end": 4,
"start": 0 "start": 0
} }

View File

@ -1,12 +1,14 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"end": 5, "end": 5,
"expression": { "expression": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "truee", "name": "truee",
"start": 0, "start": 0,
@ -18,6 +20,7 @@ expression: actual
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"commentStart": 0,
"end": 5, "end": 5,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 9, "end": 9,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
@ -15,6 +18,7 @@ expression: actual
}, },
"init": { "init": {
"argument": { "argument": {
"commentStart": 5,
"end": 9, "end": 9,
"raw": "true", "raw": "true",
"start": 5, "start": 5,
@ -22,6 +26,7 @@ expression: actual
"type": "Literal", "type": "Literal",
"value": true "value": true
}, },
"commentStart": 4,
"end": 9, "end": 9,
"operator": "!", "operator": "!",
"start": 4, "start": 4,
@ -38,6 +43,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 9, "end": 9,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 16, "end": 16,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 16, "end": 16,
"left": { "left": {
"commentStart": 4,
"end": 8, "end": 8,
"raw": "true", "raw": "true",
"start": 4, "start": 4,
@ -25,6 +30,7 @@ expression: actual
}, },
"operator": "&", "operator": "&",
"right": { "right": {
"commentStart": 11,
"end": 16, "end": 16,
"raw": "false", "raw": "false",
"start": 11, "start": 11,
@ -46,6 +52,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 16, "end": 16,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 16, "end": 16,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 16, "end": 16,
"left": { "left": {
"commentStart": 4,
"end": 8, "end": 8,
"raw": "true", "raw": "true",
"start": 4, "start": 4,
@ -25,6 +30,7 @@ expression: actual
}, },
"operator": "|", "operator": "|",
"right": { "right": {
"commentStart": 11,
"end": 16, "end": 16,
"raw": "false", "raw": "false",
"start": 11, "start": 11,
@ -46,6 +52,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 16, "end": 16,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 29, "end": 29,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myVar", "name": "myVar",
"start": 0, "start": 0,
@ -19,6 +22,7 @@ expression: actual
"argument": { "argument": {
"arguments": [ "arguments": [
{ {
"commentStart": 20,
"end": 21, "end": 21,
"raw": "5", "raw": "5",
"start": 20, "start": 20,
@ -30,6 +34,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 23,
"end": 24, "end": 24,
"raw": "4", "raw": "4",
"start": 23, "start": 23,
@ -42,16 +47,19 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 13,
"end": 19, "end": 19,
"name": "legLen", "name": "legLen",
"start": 13, "start": 13,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 13,
"end": 25, "end": 25,
"start": 13, "start": 13,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
}, },
"commentStart": 12,
"end": 25, "end": 25,
"operator": "-", "operator": "-",
"start": 12, "start": 12,
@ -59,6 +67,7 @@ expression: actual
"type": "UnaryExpression" "type": "UnaryExpression"
}, },
{ {
"commentStart": 27,
"end": 28, "end": 28,
"raw": "5", "raw": "5",
"start": 27, "start": 27,
@ -71,11 +80,13 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 8,
"end": 11, "end": 11,
"name": "min", "name": "min",
"start": 8, "start": 8,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 8,
"end": 29, "end": 29,
"start": 8, "start": 8,
"type": "CallExpression", "type": "CallExpression",
@ -91,6 +102,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 29, "end": 29,
"start": 0 "start": 0
} }

View File

@ -1,13 +1,16 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 30, "end": 30,
"id": { "id": {
"commentStart": 0,
"end": 5, "end": 5,
"name": "myVar", "name": "myVar",
"start": 0, "start": 0,
@ -16,8 +19,10 @@ expression: actual
"init": { "init": {
"body": [ "body": [
{ {
"commentStart": 8,
"end": 13, "end": 13,
"left": { "left": {
"commentStart": 8,
"end": 9, "end": 9,
"raw": "5", "raw": "5",
"start": 8, "start": 8,
@ -30,6 +35,7 @@ expression: actual
}, },
"operator": "+", "operator": "+",
"right": { "right": {
"commentStart": 12,
"end": 13, "end": 13,
"raw": "6", "raw": "6",
"start": 12, "start": 12,
@ -47,6 +53,7 @@ expression: actual
{ {
"arguments": [ "arguments": [
{ {
"commentStart": 24,
"end": 26, "end": 26,
"raw": "45", "raw": "45",
"start": 24, "start": 24,
@ -58,6 +65,7 @@ expression: actual
} }
}, },
{ {
"commentStart": 28,
"end": 29, "end": 29,
"start": 28, "start": 28,
"type": "PipeSubstitution", "type": "PipeSubstitution",
@ -65,17 +73,20 @@ expression: actual
} }
], ],
"callee": { "callee": {
"commentStart": 17,
"end": 23, "end": 23,
"name": "myFunc", "name": "myFunc",
"start": 17, "start": 17,
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 17,
"end": 30, "end": 30,
"start": 17, "start": 17,
"type": "CallExpression", "type": "CallExpression",
"type": "CallExpression" "type": "CallExpression"
} }
], ],
"commentStart": 8,
"end": 30, "end": 30,
"start": 8, "start": 8,
"type": "PipeExpression", "type": "PipeExpression",
@ -91,6 +102,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 30, "end": 30,
"start": 0 "start": 0
} }

View File

@ -1,28 +1,34 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 21, "end": 21,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 21, "end": 21,
"left": { "left": {
"argument": { "argument": {
"commentStart": 5,
"end": 9, "end": 9,
"name": "leg2", "name": "leg2",
"start": 5, "start": 5,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
"commentStart": 4,
"end": 9, "end": 9,
"operator": "-", "operator": "-",
"start": 4, "start": 4,
@ -31,6 +37,7 @@ expression: actual
}, },
"operator": "+", "operator": "+",
"right": { "right": {
"commentStart": 12,
"end": 21, "end": 21,
"name": "thickness", "name": "thickness",
"start": 12, "start": 12,
@ -51,6 +58,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 21, "end": 21,
"start": 0 "start": 0
} }

View File

@ -1,21 +1,26 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 4,
"end": 18, "end": 18,
"id": { "id": {
"commentStart": 4,
"end": 5, "end": 5,
"name": "x", "name": "x",
"start": 4, "start": 4,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 8,
"end": 18, "end": 18,
"left": { "left": {
"commentStart": 8,
"end": 9, "end": 9,
"raw": "1", "raw": "1",
"start": 8, "start": 8,
@ -28,8 +33,10 @@ expression: actual
}, },
"operator": "*", "operator": "*",
"right": { "right": {
"commentStart": 13,
"end": 18, "end": 18,
"left": { "left": {
"commentStart": 13,
"end": 14, "end": 14,
"raw": "3", "raw": "3",
"start": 13, "start": 13,
@ -42,6 +49,7 @@ expression: actual
}, },
"operator": "-", "operator": "-",
"right": { "right": {
"commentStart": 17,
"end": 18, "end": 18,
"raw": "4", "raw": "4",
"start": 17, "start": 17,
@ -70,6 +78,7 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 18, "end": 18,
"start": 0 "start": 0
} }

View File

@ -1,19 +1,23 @@
--- ---
source: kcl/src/parsing/parser.rs source: kcl-lib/src/parsing/parser.rs
expression: actual expression: actual
--- ---
{ {
"body": [ "body": [
{ {
"commentStart": 0,
"declaration": { "declaration": {
"commentStart": 0,
"end": 5, "end": 5,
"id": { "id": {
"commentStart": 0,
"end": 1, "end": 1,
"name": "x", "name": "x",
"start": 0, "start": 0,
"type": "Identifier" "type": "Identifier"
}, },
"init": { "init": {
"commentStart": 4,
"end": 5, "end": 5,
"raw": "1", "raw": "1",
"start": 4, "start": 4,
@ -34,11 +38,13 @@ expression: actual
"type": "VariableDeclaration" "type": "VariableDeclaration"
} }
], ],
"commentStart": 0,
"end": 34, "end": 34,
"nonCodeMeta": { "nonCodeMeta": {
"nonCodeNodes": { "nonCodeNodes": {
"0": [ "0": [
{ {
"commentStart": 5,
"end": 34, "end": 34,
"start": 5, "start": 5,
"type": "NonCodeNode", "type": "NonCodeNode",

Some files were not shown because too many files have changed in this diff Show More