Compare commits
31 Commits
revert-580
...
v0.49.0
Author | SHA1 | Date | |
---|---|---|---|
83ca08b26c | |||
ce98218bf0 | |||
2d43399703 | |||
461a2c3ab2 | |||
79be72c5f0 | |||
9ddb4e629f | |||
25e8e7081b | |||
c5164cbee3 | |||
809b333248 | |||
a933646667 | |||
98a68f5cd9 | |||
33dc254e43 | |||
b54295f2f7 | |||
a7e09a89ef | |||
4b6166dc4f | |||
e7d00f148b | |||
d19a7df7e8 | |||
45fae52afc | |||
270f173aad | |||
ddcff1ba63 | |||
cb1b08d6b6 | |||
533fa749b2 | |||
af492d2cb6 | |||
26fba71abf | |||
859bfc7b28 | |||
3b1d1307c4 | |||
f5a2c84ce2 | |||
cccb71fd30 | |||
44be072d04 | |||
86beb6ebf1 | |||
6d72104faa |
@ -22,6 +22,13 @@
|
|||||||
"rules": {
|
"rules": {
|
||||||
"@typescript-eslint/no-floating-promises": "error",
|
"@typescript-eslint/no-floating-promises": "error",
|
||||||
"@typescript-eslint/no-misused-promises": "error",
|
"@typescript-eslint/no-misused-promises": "error",
|
||||||
|
"@typescript-eslint/no-unused-vars": ["error", {
|
||||||
|
"varsIgnorePattern": "^_",
|
||||||
|
"argsIgnorePattern": "^_",
|
||||||
|
"ignoreRestSiblings": true,
|
||||||
|
"vars": "all",
|
||||||
|
"args": "none"
|
||||||
|
}],
|
||||||
"jsx-a11y/click-events-have-key-events": "off",
|
"jsx-a11y/click-events-have-key-events": "off",
|
||||||
"jsx-a11y/no-autofocus": "off",
|
"jsx-a11y/no-autofocus": "off",
|
||||||
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
||||||
|
33
.github/dependabot.yml
vendored
@ -230,39 +230,6 @@ updates:
|
|||||||
update-types:
|
update-types:
|
||||||
- minor
|
- minor
|
||||||
- patch
|
- patch
|
||||||
- package-ecosystem: pip
|
|
||||||
directory: /public/kcl-samples
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
day: monday
|
|
||||||
time: '03:00'
|
|
||||||
timezone: America/Los_Angeles
|
|
||||||
open-pull-requests-limit: 5
|
|
||||||
reviewers:
|
|
||||||
- adamchalmers
|
|
||||||
- franknoirot
|
|
||||||
- irev-dev
|
|
||||||
- jessfraz
|
|
||||||
groups:
|
|
||||||
security:
|
|
||||||
applies-to: security-updates
|
|
||||||
update-types:
|
|
||||||
- major
|
|
||||||
- minor
|
|
||||||
- patch
|
|
||||||
patch:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- patch
|
|
||||||
major:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- major
|
|
||||||
minor:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- minor
|
|
||||||
- patch
|
|
||||||
- package-ecosystem: pip
|
- package-ecosystem: pip
|
||||||
directory: /rust/kcl-python-bindings
|
directory: /rust/kcl-python-bindings
|
||||||
schedule:
|
schedule:
|
||||||
|
9
.github/workflows/cargo-test.yml
vendored
@ -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
|
||||||
|
2
.github/workflows/e2e-tests.yml
vendored
@ -325,6 +325,7 @@ jobs:
|
|||||||
run: yarn
|
run: yarn
|
||||||
|
|
||||||
- name: Cache Playwright Browsers
|
- name: Cache Playwright Browsers
|
||||||
|
if: needs.conditions.outputs.should-run == 'true'
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
@ -332,6 +333,7 @@ jobs:
|
|||||||
key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }}
|
key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }}
|
||||||
|
|
||||||
- name: Install Playwright Browsers
|
- name: Install Playwright Browsers
|
||||||
|
if: needs.conditions.outputs.should-run == 'true'
|
||||||
run: yarn playwright install --with-deps
|
run: yarn playwright install --with-deps
|
||||||
|
|
||||||
- name: Build web
|
- name: Build web
|
||||||
|
2
Makefile
@ -4,7 +4,7 @@ KCL_WASM_LIB_FILES := $(wildcard rust/**/*.rs)
|
|||||||
TS_SRC := $(wildcard src/**/*.tsx) $(wildcard src/**/*.ts)
|
TS_SRC := $(wildcard src/**/*.tsx) $(wildcard src/**/*.ts)
|
||||||
XSTATE_TYPEGENS := $(wildcard src/machines/*.typegen.ts)
|
XSTATE_TYPEGENS := $(wildcard src/machines/*.typegen.ts)
|
||||||
|
|
||||||
dev: node_modules public/wasm_lib_bg.wasm $(XSTATE_TYPEGENS)
|
dev: node_modules public/kcl_wasm_lib_bg.wasm $(XSTATE_TYPEGENS)
|
||||||
yarn start
|
yarn start
|
||||||
|
|
||||||
# I'm sorry this is so specific to my setup you may as well ignore this.
|
# I'm sorry this is so specific to my setup you may as well ignore this.
|
||||||
|
10
README.md
@ -105,7 +105,7 @@ Finally, to run the web app only, run:
|
|||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
If you're not a Zoo employee you won't be able to access the dev environment, you should copy everything from `.env.production` to `.env.development` to make it point to production instead, then when you navigate to `localhost:3000` the easiest way to sign in is to paste `localStorage.setItem('TOKEN_PERSIST_KEY', "your-token-from-https://zoo.dev/account/api-tokens")` replacing the with a real token from https://zoo.dev/account/api-tokens of course, then navigate to localhost:3000 again. Note that navigating to `localhost:3000/signin` removes your token so you will need to set the token again.
|
If you're not a Zoo employee you won't be able to access the dev environment, you should copy everything from `.env.production` to `.env.development.local` to make it point to production instead, then when you navigate to `localhost:3000` the easiest way to sign in is to paste `localStorage.setItem('TOKEN_PERSIST_KEY', "your-token-from-https://zoo.dev/account/api-tokens")` replacing the with a real token from https://zoo.dev/account/api-tokens of course, then navigate to `localhost:3000` again. Note that navigating to `localhost:3000/signin` removes your token so you will need to set the token again.
|
||||||
|
|
||||||
### Development environment variables
|
### Development environment variables
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ Third-Party Cookies".
|
|||||||
|
|
||||||
## Desktop
|
## Desktop
|
||||||
|
|
||||||
To spin up the desktop app, `yarn install` and `yarn build:wasm` need to have been done before hand then
|
To spin up the desktop app, `yarn install` and `yarn build:wasm` need to have been done before hand then:
|
||||||
|
|
||||||
```
|
```
|
||||||
yarn tron:start
|
yarn tron:start
|
||||||
@ -130,13 +130,13 @@ yarn tron:start
|
|||||||
|
|
||||||
This will start the application and hot-reload on changes.
|
This will start the application and hot-reload on changes.
|
||||||
|
|
||||||
Devtools can be opened with the usual Cmd-Opt-I (Mac) or Ctrl-Shift-I (Linux and Windows).
|
Devtools can be opened with the usual Command-Option-I (macOS) or Ctrl-Shift-I (Linux and Windows).
|
||||||
|
|
||||||
To package the app for your platform with electron-builder, run `yarn tronb:package:dev` (or `yarn tronb:package:prod` to point to the .env.production variables)
|
To package the app for your platform with electron-builder, run `yarn tronb:package:dev` (or `yarn tronb:package:prod` to point to the .env.production variables).
|
||||||
|
|
||||||
## Checking out commits / Bisecting
|
## Checking out commits / Bisecting
|
||||||
|
|
||||||
Which commands from setup are one off vs need to be run every time?
|
Which commands from setup are one off vs. need to be run every time?
|
||||||
|
|
||||||
The following will need to be run when checking out a new commit and guarantees the build is not stale:
|
The following will need to be run when checking out a new commit and guarantees the build is not stale:
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ example = extrude(exampleSketch, length = 5)
|
|||||||
// Add color to a revolved solid.
|
// Add color to a revolved solid.
|
||||||
sketch001 = startSketchOn('XY')
|
sketch001 = startSketchOn('XY')
|
||||||
|> circle(center = [15, 0], radius = 5)
|
|> circle(center = [15, 0], radius = 5)
|
||||||
|> revolve({ angle = 360, axis = 'y' }, %)
|
|> revolve(angle = 360, axis = 'y')
|
||||||
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -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], %)
|
||||||
|
@ -12,6 +12,8 @@ You can provide more than one sketch to extrude, and they will all be extruded i
|
|||||||
extrude(
|
extrude(
|
||||||
sketches: [Sketch],
|
sketches: [Sketch],
|
||||||
length: number,
|
length: number,
|
||||||
|
tagStart?: TagDeclarator,
|
||||||
|
tagEnd?: TagDeclarator,
|
||||||
): [Solid]
|
): [Solid]
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -22,6 +24,8 @@ extrude(
|
|||||||
|----------|------|-------------|----------|
|
|----------|------|-------------|----------|
|
||||||
| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch or sketches should be extruded | Yes |
|
| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch or sketches should be extruded | Yes |
|
||||||
| `length` | [`number`](/docs/kcl/types/number) | How far to extrude the given sketches | Yes |
|
| `length` | [`number`](/docs/kcl/types/number) | How far to extrude the given sketches | Yes |
|
||||||
|
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No |
|
||||||
|
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No |
|
||||||
|
|
||||||
### Returns
|
### Returns
|
||||||
|
|
||||||
|
54
docs/kcl/getCommonEdge.md
Normal file
@ -65,6 +65,7 @@ layout: manual
|
|||||||
* [`fillet`](kcl/fillet)
|
* [`fillet`](kcl/fillet)
|
||||||
* [`floor`](kcl/floor)
|
* [`floor`](kcl/floor)
|
||||||
* [`ft`](kcl/ft)
|
* [`ft`](kcl/ft)
|
||||||
|
* [`getCommonEdge`](kcl/getCommonEdge)
|
||||||
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
||||||
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
||||||
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
||||||
|
50
docs/kcl/intersect.md
Normal file
@ -15,6 +15,8 @@ loft(
|
|||||||
bezApproximateRational: bool,
|
bezApproximateRational: bool,
|
||||||
baseCurveIndex?: integer,
|
baseCurveIndex?: integer,
|
||||||
tolerance?: number,
|
tolerance?: number,
|
||||||
|
tagStart?: TagDeclarator,
|
||||||
|
tagEnd?: TagDeclarator,
|
||||||
): Solid
|
): Solid
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -28,6 +30,8 @@ loft(
|
|||||||
| `bezApproximateRational` | [`bool`](/docs/kcl/types/bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes |
|
| `bezApproximateRational` | [`bool`](/docs/kcl/types/bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes |
|
||||||
| `baseCurveIndex` | `integer` | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No |
|
| `baseCurveIndex` | `integer` | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No |
|
||||||
| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for the loft operation. | No |
|
| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for the loft operation. | No |
|
||||||
|
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the loft, i.e. the original sketch | No |
|
||||||
|
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the loft, i.e. the last sketch | No |
|
||||||
|
|
||||||
### Returns
|
### Returns
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: "scale"
|
title: "scale"
|
||||||
excerpt: "Scale a solid."
|
excerpt: "Scale a solid or a sketch."
|
||||||
layout: manual
|
layout: manual
|
||||||
---
|
---
|
||||||
|
|
||||||
Scale a solid.
|
Scale a solid or a sketch.
|
||||||
|
|
||||||
By default the transform is applied in local sketch axis, therefore the origin will not move.
|
By default the transform is applied in local sketch axis, therefore the origin will not move.
|
||||||
|
|
||||||
@ -12,10 +12,10 @@ If you want to apply the transform in global space, set `global` to `true`. The
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
scale(
|
scale(
|
||||||
solids: SolidOrImportedGeometry,
|
objects: SolidOrSketchOrImportedGeometry,
|
||||||
scale: [number],
|
scale: [number],
|
||||||
global?: bool,
|
global?: bool,
|
||||||
): SolidOrImportedGeometry
|
): SolidOrSketchOrImportedGeometry
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -23,13 +23,13 @@ scale(
|
|||||||
|
|
||||||
| Name | Type | Description | Required |
|
| Name | Type | Description | Required |
|
||||||
|----------|------|-------------|----------|
|
|----------|------|-------------|----------|
|
||||||
| `solids` | [`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) | The solid or set of solids to scale. | Yes |
|
| `objects` | [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) | The solid, sketch, or set of solids or sketches to scale. | Yes |
|
||||||
| `scale` | [`[number]`](/docs/kcl/types/number) | The scale factor for the x, y, and z axes. | Yes |
|
| `scale` | [`[number]`](/docs/kcl/types/number) | The scale factor for the x, y, and z axes. | Yes |
|
||||||
| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No |
|
| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No |
|
||||||
|
|
||||||
### Returns
|
### Returns
|
||||||
|
|
||||||
[`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) - Data for a solid or an imported geometry.
|
[`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) - Data for a solid or an imported geometry.
|
||||||
|
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
@ -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], %)
|
||||||
|
29944
docs/kcl/std.json
56
docs/kcl/subtract.md
Normal file
@ -16,6 +16,8 @@ sweep(
|
|||||||
path: SweepPath,
|
path: SweepPath,
|
||||||
sectional?: bool,
|
sectional?: bool,
|
||||||
tolerance?: number,
|
tolerance?: number,
|
||||||
|
tagStart?: TagDeclarator,
|
||||||
|
tagEnd?: TagDeclarator,
|
||||||
): [Solid]
|
): [Solid]
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -28,6 +30,8 @@ sweep(
|
|||||||
| `path` | [`SweepPath`](/docs/kcl/types/SweepPath) | The path to sweep the sketch along | Yes |
|
| `path` | [`SweepPath`](/docs/kcl/types/SweepPath) | The path to sweep the sketch along | Yes |
|
||||||
| `sectional` | [`bool`](/docs/kcl/types/bool) | If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No |
|
| `sectional` | [`bool`](/docs/kcl/types/bool) | If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No |
|
||||||
| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for this operation | No |
|
| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for this operation | No |
|
||||||
|
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the sweep, i.e. the original sketch | No |
|
||||||
|
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the sweep | No |
|
||||||
|
|
||||||
### Returns
|
### Returns
|
||||||
|
|
||||||
@ -39,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], %)
|
||||||
@ -64,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,
|
||||||
|
66
docs/kcl/types/SolidOrSketchOrImportedGeometry.md
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
title: "SolidOrSketchOrImportedGeometry"
|
||||||
|
excerpt: "Data for a solid or an imported geometry."
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
Data for a solid or an imported geometry.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**This schema accepts exactly one of the following:**
|
||||||
|
|
||||||
|
Data for an imported geometry.
|
||||||
|
|
||||||
|
**Type:** `object`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
| Property | Type | Description | Required |
|
||||||
|
|----------|------|-------------|----------|
|
||||||
|
| `type` |enum: `importedGeometry`| | No |
|
||||||
|
| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No |
|
||||||
|
| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No |
|
||||||
|
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
**Type:** `[object, array]`
|
||||||
|
|
||||||
|
`[` [`Solid`](/docs/kcl/types/Solid) `]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
| Property | Type | Description | Required |
|
||||||
|
|----------|------|-------------|----------|
|
||||||
|
| `type` |enum: `solidSet`| | No |
|
||||||
|
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
**Type:** `[object, array]`
|
||||||
|
|
||||||
|
`[` [`Sketch`](/docs/kcl/types/Sketch) `]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
| Property | Type | Description | Required |
|
||||||
|
|----------|------|-------------|----------|
|
||||||
|
| `type` |enum: `sketchSet`| | No |
|
||||||
|
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
50
docs/kcl/union.md
Normal file
@ -2,7 +2,7 @@ import { test, expect } from './zoo-test'
|
|||||||
import * as fsp from 'fs/promises'
|
import * as fsp from 'fs/promises'
|
||||||
import { executorInputPath, getUtils } from './test-utils'
|
import { executorInputPath, getUtils } from './test-utils'
|
||||||
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
|
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
|
||||||
import path from 'path'
|
import path, { join } from 'path'
|
||||||
|
|
||||||
test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
|
test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
|
||||||
test('Extrude from command bar selects extrude line after', async ({
|
test('Extrude from command bar selects extrude line after', async ({
|
||||||
@ -487,4 +487,53 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
|
|||||||
await toolbar.expectFileTreeState(['main.kcl', 'test.kcl'])
|
await toolbar.expectFileTreeState(['main.kcl', 'test.kcl'])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test(`Can add a named parameter or constant`, async ({
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
context,
|
||||||
|
cmdBar,
|
||||||
|
scene,
|
||||||
|
editor,
|
||||||
|
}) => {
|
||||||
|
const projectName = 'test'
|
||||||
|
const beforeKclCode = `a = 5
|
||||||
|
b = a * a
|
||||||
|
c = 3 + a`
|
||||||
|
await context.folderSetupFn(async (dir) => {
|
||||||
|
const testProject = join(dir, projectName)
|
||||||
|
await fsp.mkdir(testProject, { recursive: true })
|
||||||
|
await fsp.writeFile(join(testProject, 'main.kcl'), beforeKclCode, 'utf-8')
|
||||||
|
})
|
||||||
|
await homePage.openProject(projectName)
|
||||||
|
// TODO: you probably shouldn't need an engine connection to add a parameter,
|
||||||
|
// but you do because all modeling commands have that requirement
|
||||||
|
await scene.settled(cmdBar)
|
||||||
|
|
||||||
|
await test.step(`Go through the command palette flow`, async () => {
|
||||||
|
await cmdBar.cmdBarOpenBtn.click()
|
||||||
|
await cmdBar.chooseCommand('create parameter')
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'arguments',
|
||||||
|
commandName: 'Create parameter',
|
||||||
|
currentArgKey: 'value',
|
||||||
|
currentArgValue: '5',
|
||||||
|
headerArguments: {
|
||||||
|
Value: '',
|
||||||
|
},
|
||||||
|
highlightedHeaderArg: 'value',
|
||||||
|
})
|
||||||
|
await cmdBar.argumentInput.locator('[contenteditable]').fill(`b - 5`)
|
||||||
|
// TODO: we have no loading indicator for the KCL argument input calculation
|
||||||
|
await page.waitForTimeout(100)
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'commandBarClosed',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
await editor.expectEditor.toContain(
|
||||||
|
`a = 5b = a * amyParameter001 = b - 5c = 3 + a`
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
@ -100,7 +100,8 @@ test(
|
|||||||
try {
|
try {
|
||||||
const outputGltf = await fsp.readFile(firstFileFullPath)
|
const outputGltf = await fsp.readFile(firstFileFullPath)
|
||||||
return outputGltf.byteLength
|
return outputGltf.byteLength
|
||||||
} catch (e) {
|
} catch (error: unknown) {
|
||||||
|
void error
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -179,7 +180,8 @@ test(
|
|||||||
try {
|
try {
|
||||||
const outputGltf = await fsp.readFile(secondFileFullPath)
|
const outputGltf = await fsp.readFile(secondFileFullPath)
|
||||||
return outputGltf.byteLength
|
return outputGltf.byteLength
|
||||||
} catch (e) {
|
} catch (error: unknown) {
|
||||||
|
void error
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -726,10 +726,10 @@ test.describe('Editor tests', { tag: ['@skipWin'] }, () => {
|
|||||||
|> line(end = [2, 0])
|
|> line(end = [2, 0])
|
||||||
|> line(end = [0, -10])
|
|> line(end = [0, -10])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({
|
|> revolve(
|
||||||
axis: revolveAxis,
|
axis = revolveAxis,
|
||||||
angle: 90
|
angle = 90
|
||||||
}, %)
|
)
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -21,7 +21,7 @@ sketch001 = startSketchOn('XZ')
|
|||||||
|> angledLine([-45, length001], %)
|
|> angledLine([-45, length001], %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
revolve001 = revolve({ axis = "X" }, sketch001)
|
revolve001 = revolve(sketch001, axis = "X")
|
||||||
triangle()
|
triangle()
|
||||||
|> extrude(length = 30)
|
|> extrude(length = 30)
|
||||||
plane001 = offsetPlane('XY', offset = 10)
|
plane001 = offsetPlane('XY', offset = 10)
|
||||||
@ -126,7 +126,7 @@ test.describe('Feature Tree pane', () => {
|
|||||||
await testViewSource({
|
await testViewSource({
|
||||||
operationName: 'Revolve',
|
operationName: 'Revolve',
|
||||||
operationIndex: 0,
|
operationIndex: 0,
|
||||||
expectedActiveLine: 'revolve001 = revolve({ axis = "X" }, sketch001)',
|
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = "X")',
|
||||||
})
|
})
|
||||||
await testViewSource({
|
await testViewSource({
|
||||||
operationName: 'Triangle',
|
operationName: 'Triangle',
|
||||||
@ -231,10 +231,10 @@ test.describe('Feature Tree pane', () => {
|
|||||||
|> circle(center = [0, 0], radius = 5)
|
|> circle(center = [0, 0], radius = 5)
|
||||||
renamedExtrude = extrude(sketch001, length = ${initialInput})`
|
renamedExtrude = extrude(sketch001, length = ${initialInput})`
|
||||||
const newConstantName = 'distance001'
|
const newConstantName = 'distance001'
|
||||||
const expectedCode = `sketch001 = startSketchOn('XZ')
|
const expectedCode = `${newConstantName} = 23
|
||||||
|
sketch001 = startSketchOn('XZ')
|
||||||
|> circle(center = [0, 0], radius = 5)
|
|> circle(center = [0, 0], radius = 5)
|
||||||
${newConstantName} = 23
|
renamedExtrude = extrude(sketch001, length = ${newConstantName})`
|
||||||
renamedExtrude = extrude(sketch001, length = ${newConstantName})`
|
|
||||||
|
|
||||||
await context.folderSetupFn(async (dir) => {
|
await context.folderSetupFn(async (dir) => {
|
||||||
const testDir = join(dir, 'test-sample')
|
const testDir = join(dir, 'test-sample')
|
||||||
|
@ -1197,7 +1197,7 @@ test.describe('Undo and redo do not keep history when navigating between files',
|
|||||||
`cloned file has an incremented name and same contents`,
|
`cloned file has an incremented name and same contents`,
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ page, context, homePage }, testInfo) => {
|
async ({ page, context, homePage }, testInfo) => {
|
||||||
const { panesOpen, createNewFile, cloneFile } = await getUtils(page, test)
|
const { panesOpen, cloneFile } = await getUtils(page, test)
|
||||||
|
|
||||||
const { dir } = await context.folderSetupFn(async (dir) => {
|
const { dir } = await context.folderSetupFn(async (dir) => {
|
||||||
const finalDir = join(dir, 'testDefault')
|
const finalDir = join(dir, 'testDefault')
|
||||||
|
@ -152,9 +152,15 @@ export class EditorFixture {
|
|||||||
}
|
}
|
||||||
replaceCode = async (findCode: string, replaceCode: string) => {
|
replaceCode = async (findCode: string, replaceCode: string) => {
|
||||||
const lines = await this.page.locator('.cm-line').all()
|
const lines = await this.page.locator('.cm-line').all()
|
||||||
|
|
||||||
let code = (await Promise.all(lines.map((c) => c.textContent()))).join('\n')
|
let code = (await Promise.all(lines.map((c) => c.textContent()))).join('\n')
|
||||||
if (!lines) return
|
if (!findCode) {
|
||||||
code = code.replace(findCode, replaceCode)
|
// nuke everything
|
||||||
|
code = replaceCode
|
||||||
|
} else {
|
||||||
|
if (!lines) return
|
||||||
|
code = code.replace(findCode, replaceCode)
|
||||||
|
}
|
||||||
await this.codeContent.fill(code)
|
await this.codeContent.fill(code)
|
||||||
}
|
}
|
||||||
checkIfPaneIsOpen() {
|
checkIfPaneIsOpen() {
|
||||||
|
@ -3,25 +3,15 @@
|
|||||||
import type {
|
import type {
|
||||||
BrowserContext,
|
BrowserContext,
|
||||||
ElectronApplication,
|
ElectronApplication,
|
||||||
Fixtures as PlaywrightFixtures,
|
|
||||||
TestInfo,
|
TestInfo,
|
||||||
Page,
|
Page,
|
||||||
} from '@playwright/test'
|
} from '@playwright/test'
|
||||||
|
|
||||||
import {
|
import { _electron as electron } from '@playwright/test'
|
||||||
_electron as electron,
|
|
||||||
PlaywrightTestArgs,
|
|
||||||
PlaywrightWorkerArgs,
|
|
||||||
} from '@playwright/test'
|
|
||||||
|
|
||||||
import * as TOML from '@iarna/toml'
|
import * as TOML from '@iarna/toml'
|
||||||
import {
|
import { TEST_SETTINGS } from '../storageStates'
|
||||||
TEST_SETTINGS_KEY,
|
import { SETTINGS_FILE_NAME } from 'lib/constants'
|
||||||
TEST_SETTINGS_CORRUPTED,
|
|
||||||
TEST_SETTINGS,
|
|
||||||
TEST_SETTINGS_DEFAULT_THEME,
|
|
||||||
} from '../storageStates'
|
|
||||||
import { SETTINGS_FILE_NAME, PROJECT_SETTINGS_FILE_NAME } from 'lib/constants'
|
|
||||||
import { getUtils, setup } from '../test-utils'
|
import { getUtils, setup } from '../test-utils'
|
||||||
import fsp from 'fs/promises'
|
import fsp from 'fs/promises'
|
||||||
import fs from 'node:fs'
|
import fs from 'node:fs'
|
||||||
@ -31,7 +21,6 @@ import { EditorFixture } from './editorFixture'
|
|||||||
import { ToolbarFixture } from './toolbarFixture'
|
import { ToolbarFixture } from './toolbarFixture'
|
||||||
import { SceneFixture } from './sceneFixture'
|
import { SceneFixture } from './sceneFixture'
|
||||||
import { HomePageFixture } from './homePageFixture'
|
import { HomePageFixture } from './homePageFixture'
|
||||||
import { unsafeTypedKeys } from 'lib/utils'
|
|
||||||
import { DeepPartial } from 'lib/types'
|
import { DeepPartial } from 'lib/types'
|
||||||
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
||||||
|
|
||||||
@ -278,13 +267,14 @@ export class ElectronZoo {
|
|||||||
if (fs.existsSync(this.projectDirName)) {
|
if (fs.existsSync(this.projectDirName)) {
|
||||||
await fsp.rm(this.projectDirName, { recursive: true })
|
await fsp.rm(this.projectDirName, { recursive: true })
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (_e) {
|
||||||
console.error(e)
|
console.error(_e)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fsp.mkdir(this.projectDirName)
|
await fsp.mkdir(this.projectDirName)
|
||||||
} catch (e) {
|
} catch (error: unknown) {
|
||||||
|
void error
|
||||||
// Not a problem if it already exists.
|
// Not a problem if it already exists.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -850,159 +850,157 @@ openSketch = startSketchOn('XY')
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test(`Shift-click to select and deselect sketch segments`, async ({
|
test.fixme(
|
||||||
page,
|
`Shift-click to select and deselect sketch segments`,
|
||||||
homePage,
|
async ({ page, homePage, scene, editor }) => {
|
||||||
scene,
|
// Locators
|
||||||
editor,
|
const firstPointLocation = { x: 200, y: 100 }
|
||||||
}) => {
|
const secondPointLocation = { x: 800, y: 100 }
|
||||||
// Locators
|
const thirdPointLocation = { x: 800, y: 400 }
|
||||||
const firstPointLocation = { x: 200, y: 100 }
|
const fristSegmentLocation = { x: 750, y: 100 }
|
||||||
const secondPointLocation = { x: 800, y: 100 }
|
const secondSegmentLocation = { x: 800, y: 150 }
|
||||||
const thirdPointLocation = { x: 800, y: 400 }
|
const planeLocation = { x: 700, y: 200 }
|
||||||
const fristSegmentLocation = { x: 750, y: 100 }
|
|
||||||
const secondSegmentLocation = { x: 800, y: 150 }
|
|
||||||
const planeLocation = { x: 700, y: 200 }
|
|
||||||
|
|
||||||
// Click helpers
|
// Click helpers
|
||||||
const [clickFirstPoint] = scene.makeMouseHelpers(
|
const [clickFirstPoint] = scene.makeMouseHelpers(
|
||||||
firstPointLocation.x,
|
firstPointLocation.x,
|
||||||
firstPointLocation.y
|
firstPointLocation.y
|
||||||
)
|
)
|
||||||
const [clickSecondPoint] = scene.makeMouseHelpers(
|
const [clickSecondPoint] = scene.makeMouseHelpers(
|
||||||
secondPointLocation.x,
|
secondPointLocation.x,
|
||||||
secondPointLocation.y
|
secondPointLocation.y
|
||||||
)
|
)
|
||||||
const [clickThirdPoint] = scene.makeMouseHelpers(
|
const [clickThirdPoint] = scene.makeMouseHelpers(
|
||||||
thirdPointLocation.x,
|
thirdPointLocation.x,
|
||||||
thirdPointLocation.y
|
thirdPointLocation.y
|
||||||
)
|
)
|
||||||
const [clickFirstSegment] = scene.makeMouseHelpers(
|
const [clickFirstSegment] = scene.makeMouseHelpers(
|
||||||
fristSegmentLocation.x,
|
fristSegmentLocation.x,
|
||||||
fristSegmentLocation.y
|
fristSegmentLocation.y
|
||||||
)
|
)
|
||||||
const [clickSecondSegment] = scene.makeMouseHelpers(
|
const [clickSecondSegment] = scene.makeMouseHelpers(
|
||||||
secondSegmentLocation.x,
|
secondSegmentLocation.x,
|
||||||
secondSegmentLocation.y
|
secondSegmentLocation.y
|
||||||
)
|
)
|
||||||
const [clickPlane] = scene.makeMouseHelpers(
|
const [clickPlane] = scene.makeMouseHelpers(
|
||||||
planeLocation.x,
|
planeLocation.x,
|
||||||
planeLocation.y
|
planeLocation.y
|
||||||
)
|
|
||||||
|
|
||||||
// Colors
|
|
||||||
const edgeColorWhite: [number, number, number] = [220, 220, 220]
|
|
||||||
const edgeColorBlue: [number, number, number] = [20, 20, 200]
|
|
||||||
const backgroundColor: [number, number, number] = [30, 30, 30]
|
|
||||||
const tolerance = 40
|
|
||||||
const timeout = 150
|
|
||||||
|
|
||||||
// Setup
|
|
||||||
await test.step(`Initial test setup`, async () => {
|
|
||||||
await page.setBodyDimensions({ width: 1000, height: 500 })
|
|
||||||
await homePage.goToModelingScene()
|
|
||||||
|
|
||||||
// Wait for the scene and stream to load
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
backgroundColor,
|
|
||||||
secondPointLocation,
|
|
||||||
tolerance
|
|
||||||
)
|
)
|
||||||
})
|
|
||||||
|
|
||||||
await test.step('Select and deselect a single sketch segment', async () => {
|
// Colors
|
||||||
await test.step('Get into sketch mode', async () => {
|
const edgeColorWhite: [number, number, number] = [220, 220, 220]
|
||||||
await editor.closePane()
|
const edgeColorBlue: [number, number, number] = [20, 20, 200]
|
||||||
await page.waitForTimeout(timeout)
|
const backgroundColor: [number, number, number] = [30, 30, 30]
|
||||||
await page.getByRole('button', { name: 'Start Sketch' }).click()
|
const tolerance = 40
|
||||||
await page.waitForTimeout(timeout)
|
const timeout = 150
|
||||||
await clickPlane()
|
|
||||||
await page.waitForTimeout(1000)
|
// Setup
|
||||||
})
|
await test.step(`Initial test setup`, async () => {
|
||||||
await test.step('Draw sketch', async () => {
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
await clickFirstPoint()
|
await homePage.goToModelingScene()
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await clickSecondPoint()
|
// Wait for the scene and stream to load
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await clickThirdPoint()
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
})
|
|
||||||
await test.step('Deselect line tool', async () => {
|
|
||||||
const btnLine = page.getByTestId('line')
|
|
||||||
const btnLineAriaPressed = await btnLine.getAttribute('aria-pressed')
|
|
||||||
if (btnLineAriaPressed === 'true') {
|
|
||||||
await btnLine.click()
|
|
||||||
}
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
})
|
|
||||||
await test.step('Select the first segment', async () => {
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await clickFirstSegment()
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await scene.expectPixelColor(
|
await scene.expectPixelColor(
|
||||||
edgeColorBlue,
|
backgroundColor,
|
||||||
fristSegmentLocation,
|
secondPointLocation,
|
||||||
tolerance
|
|
||||||
)
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
edgeColorWhite,
|
|
||||||
secondSegmentLocation,
|
|
||||||
tolerance
|
tolerance
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
await test.step('Select the second segment (Shift-click)', async () => {
|
|
||||||
await page.keyboard.down('Shift')
|
await test.step('Select and deselect a single sketch segment', async () => {
|
||||||
await page.waitForTimeout(timeout)
|
await test.step('Get into sketch mode', async () => {
|
||||||
await clickSecondSegment()
|
await editor.closePane()
|
||||||
await page.waitForTimeout(timeout)
|
await page.waitForTimeout(timeout)
|
||||||
await page.keyboard.up('Shift')
|
await page.getByRole('button', { name: 'Start Sketch' }).click()
|
||||||
await scene.expectPixelColor(
|
await page.waitForTimeout(timeout)
|
||||||
edgeColorBlue,
|
await clickPlane()
|
||||||
fristSegmentLocation,
|
await page.waitForTimeout(1000)
|
||||||
tolerance
|
})
|
||||||
)
|
await test.step('Draw sketch', async () => {
|
||||||
await scene.expectPixelColor(
|
await clickFirstPoint()
|
||||||
edgeColorBlue,
|
await page.waitForTimeout(timeout)
|
||||||
secondSegmentLocation,
|
await clickSecondPoint()
|
||||||
tolerance
|
await page.waitForTimeout(timeout)
|
||||||
)
|
await clickThirdPoint()
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
})
|
||||||
|
await test.step('Deselect line tool', async () => {
|
||||||
|
const btnLine = page.getByTestId('line')
|
||||||
|
const btnLineAriaPressed = await btnLine.getAttribute('aria-pressed')
|
||||||
|
if (btnLineAriaPressed === 'true') {
|
||||||
|
await btnLine.click()
|
||||||
|
}
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
})
|
||||||
|
await test.step('Select the first segment', async () => {
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await clickFirstSegment()
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorBlue,
|
||||||
|
fristSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorWhite,
|
||||||
|
secondSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
})
|
||||||
|
await test.step('Select the second segment (Shift-click)', async () => {
|
||||||
|
await page.keyboard.down('Shift')
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await clickSecondSegment()
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await page.keyboard.up('Shift')
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorBlue,
|
||||||
|
fristSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorBlue,
|
||||||
|
secondSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
})
|
||||||
|
await test.step('Deselect the first segment', async () => {
|
||||||
|
await page.keyboard.down('Shift')
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await clickFirstSegment()
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await page.keyboard.up('Shift')
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorWhite,
|
||||||
|
fristSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorBlue,
|
||||||
|
secondSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
})
|
||||||
|
await test.step('Deselect the second segment', async () => {
|
||||||
|
await page.keyboard.down('Shift')
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await clickSecondSegment()
|
||||||
|
await page.waitForTimeout(timeout)
|
||||||
|
await page.keyboard.up('Shift')
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorWhite,
|
||||||
|
fristSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorWhite,
|
||||||
|
secondSegmentLocation,
|
||||||
|
tolerance
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
await test.step('Deselect the first segment', async () => {
|
}
|
||||||
await page.keyboard.down('Shift')
|
)
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await clickFirstSegment()
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await page.keyboard.up('Shift')
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
edgeColorWhite,
|
|
||||||
fristSegmentLocation,
|
|
||||||
tolerance
|
|
||||||
)
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
edgeColorBlue,
|
|
||||||
secondSegmentLocation,
|
|
||||||
tolerance
|
|
||||||
)
|
|
||||||
})
|
|
||||||
await test.step('Deselect the second segment', async () => {
|
|
||||||
await page.keyboard.down('Shift')
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await clickSecondSegment()
|
|
||||||
await page.waitForTimeout(timeout)
|
|
||||||
await page.keyboard.up('Shift')
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
edgeColorWhite,
|
|
||||||
fristSegmentLocation,
|
|
||||||
tolerance
|
|
||||||
)
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
edgeColorWhite,
|
|
||||||
secondSegmentLocation,
|
|
||||||
tolerance
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
test(`Offset plane point-and-click`, async ({
|
test(`Offset plane point-and-click`, async ({
|
||||||
context,
|
context,
|
||||||
@ -1880,6 +1878,119 @@ fillet04 = fillet(extrude001, radius = 5, tags = [getOppositeEdge(seg02)])
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test(`Fillet with large radius should update code even if engine fails`, async ({
|
||||||
|
context,
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
scene,
|
||||||
|
editor,
|
||||||
|
toolbar,
|
||||||
|
cmdBar,
|
||||||
|
}) => {
|
||||||
|
// Create a cube with small edges that will cause some fillets to fail
|
||||||
|
const initialCode = `sketch001 = startSketchOn('XY')
|
||||||
|
profile001 = startProfileAt([0, 0], sketch001)
|
||||||
|
|> yLine(length = -1)
|
||||||
|
|> xLine(length = -10)
|
||||||
|
|> yLine(length = 10)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
extrude001 = extrude(profile001, length = 5)
|
||||||
|
`
|
||||||
|
const taggedSegment = `yLine(length = -1, tag = $seg01)`
|
||||||
|
const filletExpression = `fillet(radius = 1000, tags = [getNextAdjacentEdge(seg01)])`
|
||||||
|
|
||||||
|
// Locators
|
||||||
|
const edgeLocation = { x: 659, y: 313 }
|
||||||
|
const bodyLocation = { x: 594, y: 313 }
|
||||||
|
|
||||||
|
// Colors
|
||||||
|
const edgeColorWhite: [number, number, number] = [248, 248, 248]
|
||||||
|
const edgeColorYellow: [number, number, number] = [251, 251, 120] // Mac:B=251,251,90 Ubuntu:240,241,180, Windows:240,241,180
|
||||||
|
const backgroundColor: [number, number, number] = [30, 30, 30]
|
||||||
|
const bodyColor: [number, number, number] = [155, 155, 155]
|
||||||
|
const lowTolerance = 20
|
||||||
|
const highTolerance = 70
|
||||||
|
|
||||||
|
// Setup
|
||||||
|
await test.step(`Initial test setup`, async () => {
|
||||||
|
await context.addInitScript((initialCode) => {
|
||||||
|
localStorage.setItem('persistCode', initialCode)
|
||||||
|
}, initialCode)
|
||||||
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
|
await homePage.goToModelingScene()
|
||||||
|
|
||||||
|
// verify modeling scene is loaded
|
||||||
|
await scene.expectPixelColor(backgroundColor, edgeLocation, lowTolerance)
|
||||||
|
|
||||||
|
// wait for stream to load
|
||||||
|
await scene.expectPixelColor(bodyColor, bodyLocation, highTolerance)
|
||||||
|
})
|
||||||
|
|
||||||
|
// Test
|
||||||
|
await test.step('Select edges and apply oversized fillet', async () => {
|
||||||
|
await test.step(`Select the edge`, async () => {
|
||||||
|
await scene.expectPixelColor(edgeColorWhite, edgeLocation, lowTolerance)
|
||||||
|
const [clickOnTheEdge] = scene.makeMouseHelpers(
|
||||||
|
edgeLocation.x,
|
||||||
|
edgeLocation.y
|
||||||
|
)
|
||||||
|
await clickOnTheEdge()
|
||||||
|
await scene.expectPixelColor(
|
||||||
|
edgeColorYellow,
|
||||||
|
edgeLocation,
|
||||||
|
highTolerance // Ubuntu color mismatch can require high tolerance
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step(`Apply fillet`, async () => {
|
||||||
|
await page.waitForTimeout(100)
|
||||||
|
await toolbar.filletButton.click()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
commandName: 'Fillet',
|
||||||
|
highlightedHeaderArg: 'selection',
|
||||||
|
currentArgKey: 'selection',
|
||||||
|
currentArgValue: '',
|
||||||
|
headerArguments: {
|
||||||
|
Selection: '',
|
||||||
|
Radius: '',
|
||||||
|
},
|
||||||
|
stage: 'arguments',
|
||||||
|
})
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
commandName: 'Fillet',
|
||||||
|
highlightedHeaderArg: 'radius',
|
||||||
|
currentArgKey: 'radius',
|
||||||
|
currentArgValue: '5',
|
||||||
|
headerArguments: {
|
||||||
|
Selection: '1 sweepEdge',
|
||||||
|
Radius: '',
|
||||||
|
},
|
||||||
|
stage: 'arguments',
|
||||||
|
})
|
||||||
|
// Set a large radius (1000)
|
||||||
|
await cmdBar.currentArgumentInput.locator('.cm-content').fill('1000')
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
commandName: 'Fillet',
|
||||||
|
headerArguments: {
|
||||||
|
Selection: '1 sweepEdge',
|
||||||
|
Radius: '1000',
|
||||||
|
},
|
||||||
|
stage: 'review',
|
||||||
|
})
|
||||||
|
// Apply fillet with large radius
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('Verify code is updated regardless of execution errors', async () => {
|
||||||
|
await editor.expectEditor.toContain(taggedSegment)
|
||||||
|
await editor.expectEditor.toContain(filletExpression)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
test(`Chamfer point-and-click`, async ({
|
test(`Chamfer point-and-click`, async ({
|
||||||
context,
|
context,
|
||||||
page,
|
page,
|
||||||
@ -1906,7 +2017,6 @@ extrude001 = extrude(sketch001, length = -12)
|
|||||||
// Locators
|
// Locators
|
||||||
const firstEdgeLocation = { x: 600, y: 193 }
|
const firstEdgeLocation = { x: 600, y: 193 }
|
||||||
const secondEdgeLocation = { x: 600, y: 383 }
|
const secondEdgeLocation = { x: 600, y: 383 }
|
||||||
const bodyLocation = { x: 630, y: 290 }
|
|
||||||
const [clickOnFirstEdge] = scene.makeMouseHelpers(
|
const [clickOnFirstEdge] = scene.makeMouseHelpers(
|
||||||
firstEdgeLocation.x,
|
firstEdgeLocation.x,
|
||||||
firstEdgeLocation.y
|
firstEdgeLocation.y
|
||||||
@ -1919,7 +2029,6 @@ extrude001 = extrude(sketch001, length = -12)
|
|||||||
// Colors
|
// Colors
|
||||||
const edgeColorWhite: [number, number, number] = [248, 248, 248]
|
const edgeColorWhite: [number, number, number] = [248, 248, 248]
|
||||||
const edgeColorYellow: [number, number, number] = [251, 251, 40] // Mac:B=67 Ubuntu:B=12
|
const edgeColorYellow: [number, number, number] = [251, 251, 40] // Mac:B=67 Ubuntu:B=12
|
||||||
const bodyColor: [number, number, number] = [155, 155, 155]
|
|
||||||
const chamferColor: [number, number, number] = [168, 168, 168]
|
const chamferColor: [number, number, number] = [168, 168, 168]
|
||||||
const backgroundColor: [number, number, number] = [30, 30, 30]
|
const backgroundColor: [number, number, number] = [30, 30, 30]
|
||||||
const lowTolerance = 20
|
const lowTolerance = 20
|
||||||
@ -2812,7 +2921,7 @@ segAng(rectangleSegmentA002),
|
|||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
|
|
||||||
const newCodeToFind = `revolve001 = revolve({ angle = 360, axis = 'X' }, sketch002)`
|
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = 'X')`
|
||||||
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
||||||
})
|
})
|
||||||
test('revolve surface around edge from an extruded solid2d', async ({
|
test('revolve surface around edge from an extruded solid2d', async ({
|
||||||
@ -2862,7 +2971,7 @@ radius = 8.69
|
|||||||
await page.getByText(lineCodeToSelection).click()
|
await page.getByText(lineCodeToSelection).click()
|
||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
|
|
||||||
const newCodeToFind = `revolve001 = revolve({angle = 360, axis = getOppositeEdge(rectangleSegmentA001)}, sketch002) `
|
const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = getOppositeEdge(rectangleSegmentA001)) `
|
||||||
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
||||||
})
|
})
|
||||||
test('revolve sketch circle around line segment from startProfileAt sketch', async ({
|
test('revolve sketch circle around line segment from startProfileAt sketch', async ({
|
||||||
@ -2913,7 +3022,7 @@ radius = 8.69
|
|||||||
await page.getByText(lineCodeToSelection).click()
|
await page.getByText(lineCodeToSelection).click()
|
||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
|
|
||||||
const newCodeToFind = `revolve001 = revolve({ angle = 360, axis = seg01 }, sketch003)`
|
const newCodeToFind = `revolve001 = revolve(sketch003, angle = 360, axis = seg01)`
|
||||||
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -539,7 +539,8 @@ test.describe('Can export from electron app', () => {
|
|||||||
try {
|
try {
|
||||||
const outputGltf = await fsp.readFile(filepath)
|
const outputGltf = await fsp.readFile(filepath)
|
||||||
return outputGltf.byteLength
|
return outputGltf.byteLength
|
||||||
} catch (e) {
|
} catch (error: unknown) {
|
||||||
|
void error
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -196,64 +196,60 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test(`manual code selection rename`, async ({
|
test.fixme(
|
||||||
context,
|
`manual code selection rename`,
|
||||||
homePage,
|
async ({ context, homePage, cmdBar, editor, page, scene }) => {
|
||||||
cmdBar,
|
const body1CapCoords = { x: 571, y: 311 }
|
||||||
editor,
|
|
||||||
page,
|
|
||||||
scene,
|
|
||||||
}) => {
|
|
||||||
const body1CapCoords = { x: 571, y: 311 }
|
|
||||||
|
|
||||||
await context.addInitScript((file) => {
|
await context.addInitScript((file) => {
|
||||||
localStorage.setItem('persistCode', file)
|
localStorage.setItem('persistCode', file)
|
||||||
}, file)
|
}, file)
|
||||||
await homePage.goToModelingScene()
|
await homePage.goToModelingScene()
|
||||||
await scene.waitForExecutionDone()
|
await scene.waitForExecutionDone()
|
||||||
|
|
||||||
const submittingToast = page.getByText('Submitting to Text-to-CAD API...')
|
const submittingToast = page.getByText('Submitting to Text-to-CAD API...')
|
||||||
const successToast = page.getByText('Prompt to edit successful')
|
const successToast = page.getByText('Prompt to edit successful')
|
||||||
const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' })
|
const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' })
|
||||||
|
|
||||||
await test.step('wait for scene to load and select code in editor', async () => {
|
await test.step('wait for scene to load and select code in editor', async () => {
|
||||||
// Find and select the text "sketch002" in the editor
|
// Find and select the text "sketch002" in the editor
|
||||||
await editor.selectText('sketch002')
|
await editor.selectText('sketch002')
|
||||||
|
|
||||||
// Verify the selection was made
|
// Verify the selection was made
|
||||||
await editor.expectState({
|
await editor.expectState({
|
||||||
highlightedCode: '',
|
highlightedCode: '',
|
||||||
activeLines: ["sketch002 = startSketchOn('XZ')"],
|
activeLines: ["sketch002 = startSketchOn('XZ')"],
|
||||||
diagnostics: [],
|
diagnostics: [],
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
await test.step('fire off edit prompt', async () => {
|
await test.step('fire off edit prompt', async () => {
|
||||||
await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15)
|
await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15)
|
||||||
await cmdBar.openCmdBar('promptToEdit')
|
await cmdBar.openCmdBar('promptToEdit')
|
||||||
await page
|
await page
|
||||||
.getByTestId('cmd-bar-arg-value')
|
.getByTestId('cmd-bar-arg-value')
|
||||||
.fill('Please rename to mySketch001')
|
.fill('Please rename to mySketch001')
|
||||||
await page.waitForTimeout(100)
|
await page.waitForTimeout(100)
|
||||||
await cmdBar.progressCmdBar()
|
await cmdBar.progressCmdBar()
|
||||||
await expect(submittingToast).toBeVisible()
|
await expect(submittingToast).toBeVisible()
|
||||||
await expect(submittingToast).not.toBeVisible({
|
await expect(submittingToast).not.toBeVisible({
|
||||||
timeout: 2 * 60_000,
|
timeout: 2 * 60_000,
|
||||||
|
})
|
||||||
|
await expect(successToast).toBeVisible()
|
||||||
})
|
})
|
||||||
await expect(successToast).toBeVisible()
|
|
||||||
})
|
|
||||||
|
|
||||||
await test.step('verify rename change and accept it', async () => {
|
await test.step('verify rename change and accept it', async () => {
|
||||||
await editor.expectEditor.toContain('mySketch001 = startSketchOn')
|
await editor.expectEditor.toContain('mySketch001 = startSketchOn')
|
||||||
await editor.expectEditor.not.toContain('sketch002 = startSketchOn')
|
await editor.expectEditor.not.toContain('sketch002 = startSketchOn')
|
||||||
await editor.expectEditor.toContain(
|
await editor.expectEditor.toContain(
|
||||||
'extrude002 = extrude(mySketch001, length = 50)'
|
'extrude002 = extrude(mySketch001, length = 50)'
|
||||||
)
|
)
|
||||||
|
|
||||||
await acceptBtn.click()
|
await acceptBtn.click()
|
||||||
await expect(successToast).not.toBeVisible()
|
await expect(successToast).not.toBeVisible()
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
)
|
||||||
|
|
||||||
test('multiple body selections', async ({
|
test('multiple body selections', async ({
|
||||||
context,
|
context,
|
||||||
|
@ -405,8 +405,9 @@ extrude001 = extrude(sketch001, length = 50)
|
|||||||
await expect(successToastMessage).toBeVisible()
|
await expect(successToastMessage).toBeVisible()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
// We updated this test such that you can have multiple exports going at once.
|
||||||
test(
|
test(
|
||||||
'ensure you can not export while an export is already going',
|
'ensure you CAN export while an export is already going',
|
||||||
{ tag: ['@skipLinux', '@skipWin'] },
|
{ tag: ['@skipLinux', '@skipWin'] },
|
||||||
async ({ page, homePage }) => {
|
async ({ page, homePage }) => {
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -441,22 +442,13 @@ extrude001 = extrude(sketch001, length = 50)
|
|||||||
const alreadyExportingToastMessage = page.getByText(`Already exporting`)
|
const alreadyExportingToastMessage = page.getByText(`Already exporting`)
|
||||||
const successToastMessage = page.getByText(`Exported successfully`)
|
const successToastMessage = page.getByText(`Exported successfully`)
|
||||||
|
|
||||||
await test.step('Blocked second export', async () => {
|
await test.step('second export', async () => {
|
||||||
await clickExportButton(page)
|
await clickExportButton(page)
|
||||||
|
|
||||||
await expect(exportingToastMessage).toBeVisible()
|
await expect(exportingToastMessage).toBeVisible()
|
||||||
|
|
||||||
await clickExportButton(page)
|
await clickExportButton(page)
|
||||||
|
|
||||||
await test.step('The second export is blocked', async () => {
|
|
||||||
// Find the toast.
|
|
||||||
// Look out for the toast message
|
|
||||||
await Promise.all([
|
|
||||||
expect(exportingToastMessage.first()).toBeVisible(),
|
|
||||||
expect(alreadyExportingToastMessage).toBeVisible(),
|
|
||||||
])
|
|
||||||
})
|
|
||||||
|
|
||||||
await test.step('The first export still succeeds', async () => {
|
await test.step('The first export still succeeds', async () => {
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }),
|
expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }),
|
||||||
@ -486,12 +478,12 @@ extrude001 = extrude(sketch001, length = 50)
|
|||||||
expect(alreadyExportingToastMessage).not.toBeVisible(),
|
expect(alreadyExportingToastMessage).not.toBeVisible(),
|
||||||
])
|
])
|
||||||
|
|
||||||
await expect(successToastMessage).toBeVisible()
|
await expect(successToastMessage).toHaveCount(2)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test.fixme(
|
||||||
`Network health indicator only appears in modeling view`,
|
`Network health indicator only appears in modeling view`,
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
@ -14,7 +14,8 @@ try {
|
|||||||
// prefer env vars over secrets file
|
// prefer env vars over secrets file
|
||||||
secrets[key] = process.env[key] || (value as any).replaceAll('"', '')
|
secrets[key] = process.env[key] || (value as any).replaceAll('"', '')
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (error: unknown) {
|
||||||
|
void error
|
||||||
// probably running in CI
|
// probably running in CI
|
||||||
console.warn(
|
console.warn(
|
||||||
`Error reading ${secretsPath}; environment variables will be used`
|
`Error reading ${secretsPath}; environment variables will be used`
|
||||||
|
@ -187,7 +187,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
page.getByRole('button', { name: 'Start Sketch' })
|
page.getByRole('button', { name: 'Start Sketch' })
|
||||||
).toBeVisible()
|
).toBeVisible()
|
||||||
})
|
})
|
||||||
test.describe('Can edit segments by dragging their handles', () => {
|
test.fixme('Can edit segments by dragging their handles', () => {
|
||||||
const doEditSegmentsByDraggingHandle = async (
|
const doEditSegmentsByDraggingHandle = async (
|
||||||
page: Page,
|
page: Page,
|
||||||
homePage: HomePageFixture,
|
homePage: HomePageFixture,
|
||||||
@ -666,7 +666,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
|> line(end = [12.73, -0.09])
|
|> line(end = [12.73, -0.09])
|
||||||
|> tangentialArcTo([24.95, -5.38], %)
|
|> tangentialArcTo([24.95, -5.38], %)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = "X",}, %)`
|
|> revolve(axis = "X")`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -753,7 +753,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
|> tangentialArcTo([24.95, -5.38], %)
|
|> tangentialArcTo([24.95, -5.38], %)
|
||||||
|> line(end = [1.97, 2.06])
|
|> line(end = [1.97, 2.06])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = "X" }, %)`)
|
|> revolve(axis = "X")`)
|
||||||
})
|
})
|
||||||
test('Can add multiple sketches', async ({ page, homePage }) => {
|
test('Can add multiple sketches', async ({ page, homePage }) => {
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -1200,7 +1200,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
|||||||
|> xLine(endAbsolute = 0 + .001)
|
|> xLine(endAbsolute = 0 + .001)
|
||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = "Y" }, %)
|
|> revolve(axis = "Y")
|
||||||
|
|
||||||
return lugSketch
|
return lugSketch
|
||||||
}
|
}
|
||||||
@ -1454,7 +1454,7 @@ test.describe(`Sketching with offset planes`, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test.describe('multi-profile sketching', () => {
|
test.describe('multi-profile sketching', () => {
|
||||||
test(
|
test.fixme(
|
||||||
`test it removes half-finished expressions when changing tools in sketch mode`,
|
`test it removes half-finished expressions when changing tools in sketch mode`,
|
||||||
{ tag: ['@skipWin'] },
|
{ tag: ['@skipWin'] },
|
||||||
async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => {
|
async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => {
|
||||||
@ -1662,6 +1662,96 @@ profile003 = startProfileAt([206.63, -56.73], sketch001)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
test('can enter sketch mode for sketch with no profiles', async ({
|
||||||
|
scene,
|
||||||
|
toolbar,
|
||||||
|
editor,
|
||||||
|
cmdBar,
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
}) => {
|
||||||
|
await page.addInitScript(async () => {
|
||||||
|
localStorage.setItem(
|
||||||
|
'persistCode',
|
||||||
|
`sketch001 = startSketchOn('XY')
|
||||||
|
`
|
||||||
|
)
|
||||||
|
})
|
||||||
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
|
await homePage.goToModelingScene()
|
||||||
|
await scene.connectionEstablished()
|
||||||
|
await scene.settled(cmdBar)
|
||||||
|
await expect(
|
||||||
|
page.getByRole('button', { name: 'Start Sketch' })
|
||||||
|
).not.toBeDisabled()
|
||||||
|
|
||||||
|
// open feature tree and double click the first sketch
|
||||||
|
await (await toolbar.getFeatureTreeOperation('Sketch', 0)).dblclick()
|
||||||
|
await page.waitForTimeout(600)
|
||||||
|
|
||||||
|
// click in the scene twice to add a segment
|
||||||
|
const [startProfile1] = scene.makeMouseHelpers(658, 140)
|
||||||
|
const [segment1Clk] = scene.makeMouseHelpers(701, 200)
|
||||||
|
|
||||||
|
// wait for line to be aria pressed
|
||||||
|
await expect
|
||||||
|
.poll(async () => toolbar.lineBtn.getAttribute('aria-pressed'))
|
||||||
|
.toBe('true')
|
||||||
|
|
||||||
|
await startProfile1()
|
||||||
|
await editor.expectEditor.toContain(`profile001 = startProfileAt`)
|
||||||
|
await segment1Clk()
|
||||||
|
await editor.expectEditor.toContain(`|> line(end`)
|
||||||
|
})
|
||||||
|
test('can delete all profiles in sketch mode and user can still equip a tool and draw something', async ({
|
||||||
|
scene,
|
||||||
|
toolbar,
|
||||||
|
editor,
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
}) => {
|
||||||
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
|
await homePage.goToModelingScene()
|
||||||
|
await scene.connectionEstablished()
|
||||||
|
await expect(
|
||||||
|
page.getByRole('button', { name: 'Start Sketch' })
|
||||||
|
).not.toBeDisabled()
|
||||||
|
|
||||||
|
const [selectXZPlane] = scene.makeMouseHelpers(650, 150)
|
||||||
|
|
||||||
|
await toolbar.startSketchPlaneSelection()
|
||||||
|
await selectXZPlane()
|
||||||
|
// timeout wait for engine animation is unavoidable
|
||||||
|
await page.waitForTimeout(600)
|
||||||
|
await editor.expectEditor.toContain(`sketch001 = startSketchOn('XZ')`)
|
||||||
|
|
||||||
|
const [startProfile1] = scene.makeMouseHelpers(568, 70)
|
||||||
|
const [segment1Clk] = scene.makeMouseHelpers(701, 78)
|
||||||
|
const [segment2Clk] = scene.makeMouseHelpers(745, 189)
|
||||||
|
|
||||||
|
await test.step('add two segments', async () => {
|
||||||
|
await startProfile1()
|
||||||
|
await editor.expectEditor.toContain(
|
||||||
|
`profile001 = startProfileAt([4.61, 12.21], sketch001)`
|
||||||
|
)
|
||||||
|
await segment1Clk()
|
||||||
|
await editor.expectEditor.toContain(`|> line(end`)
|
||||||
|
await segment2Clk()
|
||||||
|
await editor.expectEditor.toContain(`|> line(end = [2.98, -7.52])`)
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('delete all profiles', async () => {
|
||||||
|
await editor.replaceCode('', "sketch001 = startSketchOn('XZ')\n")
|
||||||
|
await page.waitForTimeout(600) // wait for deferred execution
|
||||||
|
})
|
||||||
|
|
||||||
|
await test.step('equip circle and draw it', async () => {
|
||||||
|
await toolbar.circleBtn.click()
|
||||||
|
await page.mouse.click(700, 200)
|
||||||
|
await page.mouse.click(750, 200)
|
||||||
|
await editor.expectEditor.toContain('circle(sketch001, center = [')
|
||||||
|
})
|
||||||
|
})
|
||||||
test('Can add multiple profiles to a sketch (all tool types)', async ({
|
test('Can add multiple profiles to a sketch (all tool types)', async ({
|
||||||
scene,
|
scene,
|
||||||
toolbar,
|
toolbar,
|
||||||
@ -2570,10 +2660,11 @@ profile006 = startProfileAt([9.65, 3.82], sketch002)
|
|||||||
|> line(end = [2.13, -5.57])
|
|> line(end = [2.13, -5.57])
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
revolve001 = revolve({
|
revolve001 = revolve(
|
||||||
|
profile004,
|
||||||
angle = 45,
|
angle = 45,
|
||||||
axis = getNextAdjacentEdge(seg01)
|
axis = getNextAdjacentEdge(seg01)
|
||||||
}, profile004)
|
)
|
||||||
extrude002 = extrude(profile006, length = 4)
|
extrude002 = extrude(profile006, length = 4)
|
||||||
sketch003 = startSketchOn('-XZ')
|
sketch003 = startSketchOn('-XZ')
|
||||||
profile007 = startProfileAt([4.8, 7.55], sketch003)
|
profile007 = startProfileAt([4.8, 7.55], sketch003)
|
||||||
@ -2608,7 +2699,7 @@ profile011 = startProfileAt([5.07, -6.39], sketch003)
|
|||||||
|> close()
|
|> close()
|
||||||
extrude003 = extrude(profile011, length = 2.5)
|
extrude003 = extrude(profile011, length = 2.5)
|
||||||
// TODO this breaks the test,
|
// TODO this breaks the test,
|
||||||
// revolve002 = revolve({ angle = 45, axis = seg02 }, profile008)
|
// revolve002 = revolve(profile008, angle = 45, axis = seg02)
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@ -2626,11 +2717,6 @@ extrude003 = extrude(profile011, length = 2.5)
|
|||||||
{ x: 834, y: -680, z: 534 },
|
{ x: 834, y: -680, z: 534 },
|
||||||
{ x: -54, y: -476, z: 148 }
|
{ x: -54, y: -476, z: 148 }
|
||||||
)
|
)
|
||||||
const camPositionForSelectingSketchOnCapProfiles = () =>
|
|
||||||
scene.moveCameraTo(
|
|
||||||
{ x: 404, y: 690, z: 38 },
|
|
||||||
{ x: 16, y: -140, z: -10 }
|
|
||||||
)
|
|
||||||
const wallSelectionOptions = [
|
const wallSelectionOptions = [
|
||||||
{
|
{
|
||||||
title: 'select wall segment',
|
title: 'select wall segment',
|
||||||
@ -2653,29 +2739,6 @@ extrude003 = extrude(profile011, length = 2.5)
|
|||||||
selectClick: scene.makeMouseHelpers(836, 103)[0],
|
selectClick: scene.makeMouseHelpers(836, 103)[0],
|
||||||
},
|
},
|
||||||
] as const
|
] as const
|
||||||
const capSelectionOptions = [
|
|
||||||
{
|
|
||||||
title: 'select cap segment',
|
|
||||||
selectClick: scene.makeMouseHelpers(688, 91)[0],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'select cap solid 2d',
|
|
||||||
selectClick: scene.makeMouseHelpers(733, 204)[0],
|
|
||||||
},
|
|
||||||
// TODO keeps failing
|
|
||||||
// {
|
|
||||||
// title: 'select cap circle',
|
|
||||||
// selectClick: scene.makeMouseHelpers(679, 290)[0],
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
title: 'select cap extrude wall',
|
|
||||||
selectClick: scene.makeMouseHelpers(649, 402)[0],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'select cap extrude cap',
|
|
||||||
selectClick: scene.makeMouseHelpers(693, 408)[0],
|
|
||||||
},
|
|
||||||
] as const
|
|
||||||
|
|
||||||
const verifyWallProfilesAreDrawn = async () =>
|
const verifyWallProfilesAreDrawn = async () =>
|
||||||
test.step('verify wall profiles are drawn', async () => {
|
test.step('verify wall profiles are drawn', async () => {
|
||||||
@ -2697,44 +2760,6 @@ extrude003 = extrude(profile011, length = 2.5)
|
|||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
const verifyCapProfilesAreDrawn = async () =>
|
|
||||||
test.step('verify cap profiles are drawn', async () => {
|
|
||||||
// open polygon
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
TEST_COLORS.WHITE,
|
|
||||||
// TEST_COLORS.BLUE, // When entering via the circle, it's selected and therefore blue
|
|
||||||
{ x: 620, y: 58 },
|
|
||||||
15
|
|
||||||
)
|
|
||||||
// revolved profile
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
TEST_COLORS.WHITE,
|
|
||||||
{ x: 641, y: 110 },
|
|
||||||
15
|
|
||||||
)
|
|
||||||
// closed polygon
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
TEST_COLORS.WHITE,
|
|
||||||
{ x: 632, y: 200 },
|
|
||||||
15
|
|
||||||
)
|
|
||||||
// extruded profile
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
TEST_COLORS.WHITE,
|
|
||||||
{ x: 628, y: 410 },
|
|
||||||
15
|
|
||||||
)
|
|
||||||
// circle
|
|
||||||
await scene.expectPixelColor(
|
|
||||||
[
|
|
||||||
TEST_COLORS.WHITE,
|
|
||||||
TEST_COLORS.BLUE, // When entering via the circle, it's selected and therefore blue
|
|
||||||
],
|
|
||||||
{ x: 681, y: 303 },
|
|
||||||
15
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
await test.step('select wall profiles', async () => {
|
await test.step('select wall profiles', async () => {
|
||||||
for (const { title, selectClick } of wallSelectionOptions) {
|
for (const { title, selectClick } of wallSelectionOptions) {
|
||||||
await test.step(title, async () => {
|
await test.step(title, async () => {
|
||||||
|
@ -7,12 +7,7 @@ import { spawn } from 'child_process'
|
|||||||
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
|
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
|
||||||
import JSZip from 'jszip'
|
import JSZip from 'jszip'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
import {
|
import { TEST_SETTINGS, TEST_SETTINGS_KEY } from './storageStates'
|
||||||
IS_PLAYWRIGHT_KEY,
|
|
||||||
TEST_SETTINGS,
|
|
||||||
TEST_SETTINGS_KEY,
|
|
||||||
} from './storageStates'
|
|
||||||
import * as TOML from '@iarna/toml'
|
|
||||||
import { SceneFixture } from './fixtures/sceneFixture'
|
import { SceneFixture } from './fixtures/sceneFixture'
|
||||||
import { CmdBarFixture } from './fixtures/cmdBarFixture'
|
import { CmdBarFixture } from './fixtures/cmdBarFixture'
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
@ -29,5 +29,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"kcl_version": "0.2.50"
|
"kcl_version": "0.2.52"
|
||||||
}
|
}
|
@ -1,4 +1,3 @@
|
|||||||
import { MouseControlType } from '@rust/kcl-lib/bindings/MouseControlType'
|
|
||||||
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
||||||
import { SaveSettingsPayload } from 'lib/settings/settingsTypes'
|
import { SaveSettingsPayload } from 'lib/settings/settingsTypes'
|
||||||
import { Themes } from 'lib/theme'
|
import { Themes } from 'lib/theme'
|
||||||
@ -143,10 +142,10 @@ sketch001 = startSketchOn(box, revolveAxis)
|
|||||||
|> line(end = [2, 0])
|
|> line(end = [2, 0])
|
||||||
|> line(end = [0, -10])
|
|> line(end = [0, -10])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({
|
|> revolve(
|
||||||
axis: revolveAxis,
|
axis = revolveAxis,
|
||||||
angle: 90
|
angle = 90
|
||||||
}, %)
|
)
|
||||||
|
|
||||||
sketch001 = startSketchOn('XZ')
|
sketch001 = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.0, 0.0], %)
|
|> startProfileAt([0.0, 0.0], %)
|
||||||
|
@ -3,7 +3,7 @@ import { commonPoints, getUtils } from './test-utils'
|
|||||||
import { EngineCommand } from 'lang/std/artifactGraph'
|
import { EngineCommand } from 'lang/std/artifactGraph'
|
||||||
import { uuidv4 } from 'lib/utils'
|
import { uuidv4 } from 'lib/utils'
|
||||||
|
|
||||||
test.describe('Test network and connection issues', () => {
|
test.fixme('Test network and connection issues', () => {
|
||||||
test(
|
test(
|
||||||
'simulate network down and network little widget',
|
'simulate network down and network little widget',
|
||||||
{ tag: '@skipLocalEngine' },
|
{ tag: '@skipLocalEngine' },
|
||||||
|
@ -2,15 +2,12 @@ import {
|
|||||||
expect,
|
expect,
|
||||||
BrowserContext,
|
BrowserContext,
|
||||||
TestInfo,
|
TestInfo,
|
||||||
_electron as electron,
|
|
||||||
ElectronApplication,
|
|
||||||
Locator,
|
Locator,
|
||||||
Page,
|
Page,
|
||||||
} from '@playwright/test'
|
} from '@playwright/test'
|
||||||
import { test } from './zoo-test'
|
import { test } from './zoo-test'
|
||||||
import { EngineCommand } from 'lang/std/artifactGraph'
|
import { EngineCommand } from 'lang/std/artifactGraph'
|
||||||
import fsp from 'fs/promises'
|
import fsp from 'fs/promises'
|
||||||
import fsSync from 'fs'
|
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
import pixelMatch from 'pixelmatch'
|
import pixelMatch from 'pixelmatch'
|
||||||
import { PNG } from 'pngjs'
|
import { PNG } from 'pngjs'
|
||||||
@ -24,14 +21,11 @@ import {
|
|||||||
IS_PLAYWRIGHT_KEY,
|
IS_PLAYWRIGHT_KEY,
|
||||||
} from './storageStates'
|
} from './storageStates'
|
||||||
import * as TOML from '@iarna/toml'
|
import * as TOML from '@iarna/toml'
|
||||||
import { SaveSettingsPayload } from 'lib/settings/settingsTypes'
|
|
||||||
import { SETTINGS_FILE_NAME } from 'lib/constants'
|
|
||||||
import { isErrorWhitelisted } from './lib/console-error-whitelist'
|
import { isErrorWhitelisted } from './lib/console-error-whitelist'
|
||||||
import { isArray } from 'lib/utils'
|
import { isArray } from 'lib/utils'
|
||||||
import { reportRejection } from 'lib/trap'
|
import { reportRejection } from 'lib/trap'
|
||||||
import { DeepPartial } from 'lib/types'
|
import { DeepPartial } from 'lib/types'
|
||||||
import { Configuration } from 'lang/wasm'
|
import { Configuration } from 'lang/wasm'
|
||||||
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
|
||||||
|
|
||||||
const toNormalizedCode = (text: string) => {
|
const toNormalizedCode = (text: string) => {
|
||||||
return text.replace(/\s+/g, '')
|
return text.replace(/\s+/g, '')
|
||||||
@ -928,10 +922,6 @@ export async function setup(
|
|||||||
// await page.reload()
|
// await page.reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
let electronApp: ElectronApplication | undefined = undefined
|
|
||||||
let context: BrowserContext | undefined = undefined
|
|
||||||
let page: Page | undefined = undefined
|
|
||||||
|
|
||||||
function failOnConsoleErrors(page: Page, testInfo?: TestInfo) {
|
function failOnConsoleErrors(page: Page, testInfo?: TestInfo) {
|
||||||
// enabled for chrome for now
|
// enabled for chrome for now
|
||||||
if (page.context().browser()?.browserType().name() === 'chromium') {
|
if (page.context().browser()?.browserType().name() === 'chromium') {
|
||||||
|
@ -4,7 +4,6 @@ import { bracket } from 'lib/exampleKcl'
|
|||||||
import * as fsp from 'fs/promises'
|
import * as fsp from 'fs/promises'
|
||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
import { FILE_EXT } from 'lib/constants'
|
import { FILE_EXT } from 'lib/constants'
|
||||||
import { UnitLength_type } from '@kittycad/lib/dist/types/src/models'
|
|
||||||
|
|
||||||
test.describe('Testing in-app sample loading', () => {
|
test.describe('Testing in-app sample loading', () => {
|
||||||
/**
|
/**
|
||||||
@ -49,8 +48,6 @@ test.describe('Testing in-app sample loading', () => {
|
|||||||
})
|
})
|
||||||
const warningText = page.getByText('Overwrite current file and units?')
|
const warningText = page.getByText('Overwrite current file and units?')
|
||||||
const confirmButton = page.getByRole('button', { name: 'Submit command' })
|
const confirmButton = page.getByRole('button', { name: 'Submit command' })
|
||||||
const unitsToast = (unit: UnitLength_type) =>
|
|
||||||
page.getByText(`Set default unit to "${unit}" for this project`)
|
|
||||||
|
|
||||||
await test.step(`Precondition: check the initial code`, async () => {
|
await test.step(`Precondition: check the initial code`, async () => {
|
||||||
await u.openKclCodePanel()
|
await u.openKclCodePanel()
|
||||||
@ -125,8 +122,6 @@ test.describe('Testing in-app sample loading', () => {
|
|||||||
page.getByRole('listitem').filter({
|
page.getByRole('listitem').filter({
|
||||||
has: page.getByRole('button', { name }),
|
has: page.getByRole('button', { name }),
|
||||||
})
|
})
|
||||||
const unitsToast = (unit: UnitLength_type) =>
|
|
||||||
page.getByText(`Set default unit to "${unit}" for this project`)
|
|
||||||
|
|
||||||
await test.step(`Test setup`, async () => {
|
await test.step(`Test setup`, async () => {
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
|
@ -1386,7 +1386,8 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
|
|||||||
page.getByRole('button', { name: 'Edit Sketch' })
|
page.getByRole('button', { name: 'Edit Sketch' })
|
||||||
).toBeVisible()
|
).toBeVisible()
|
||||||
return true
|
return true
|
||||||
} catch (_) {
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
} catch (_e) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -323,7 +323,7 @@ part009 = startSketchOn('XY')
|
|||||||
|> line(end = [0, pipeLength])
|
|> line(end = [0, pipeLength])
|
||||||
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|
||||||
|> close()
|
|> close()
|
||||||
rev = revolve({ axis = 'y' }, part009)
|
rev = revolve(part009, axis = 'y')
|
||||||
sketch006 = startSketchOn('XY')
|
sketch006 = startSketchOn('XY')
|
||||||
profile001 = circle(
|
profile001 = circle(
|
||||||
sketch006,
|
sketch006,
|
||||||
@ -353,6 +353,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await page.setBodyDimensions({ width: 1000, height: 500 })
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
|
|
||||||
await homePage.goToModelingScene()
|
await homePage.goToModelingScene()
|
||||||
|
await scene.connectionEstablished()
|
||||||
await scene.settled(cmdBar)
|
await scene.settled(cmdBar)
|
||||||
|
|
||||||
const camPosition1 = async () => {
|
const camPosition1 = async () => {
|
||||||
@ -364,7 +365,6 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await camPosition1()
|
await camPosition1()
|
||||||
|
|
||||||
const revolve = { x: 635, y: 253 }
|
const revolve = { x: 635, y: 253 }
|
||||||
const parentExtrude = { x: 915, y: 133 }
|
|
||||||
const solid2d = { x: 770, y: 167 }
|
const solid2d = { x: 770, y: 167 }
|
||||||
const individualProfile = { x: 694, y: 432 }
|
const individualProfile = { x: 694, y: 432 }
|
||||||
|
|
||||||
@ -380,7 +380,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await page.waitForTimeout(200)
|
await page.waitForTimeout(200)
|
||||||
|
|
||||||
await expect(u.codeLocator).not.toContainText(
|
await expect(u.codeLocator).not.toContainText(
|
||||||
`rev = revolve({ axis: 'y' }, part009)`
|
`rev = revolve(part009, axis: 'y')`
|
||||||
)
|
)
|
||||||
|
|
||||||
// FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude
|
// FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude
|
||||||
@ -452,19 +452,15 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await page.waitForTimeout(200)
|
await page.waitForTimeout(200)
|
||||||
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
|
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
|
||||||
})
|
})
|
||||||
test('parent Solid should be select and deletable and uses custom planes to position children', async ({
|
test.fixme(
|
||||||
page,
|
'parent Solid should be select and deletable and uses custom planes to position children',
|
||||||
homePage,
|
async ({ page, homePage, scene, cmdBar, editor }) => {
|
||||||
scene,
|
test.setTimeout(90_000)
|
||||||
cmdBar,
|
const u = await getUtils(page)
|
||||||
editor,
|
await page.addInitScript(async () => {
|
||||||
}) => {
|
localStorage.setItem(
|
||||||
test.setTimeout(90_000)
|
'persistCode',
|
||||||
const u = await getUtils(page)
|
`part001 = startSketchOn('XY')
|
||||||
await page.addInitScript(async () => {
|
|
||||||
localStorage.setItem(
|
|
||||||
'persistCode',
|
|
||||||
`part001 = startSketchOn('XY')
|
|
||||||
yo = startProfileAt([4.83, 12.56], part001)
|
yo = startProfileAt([4.83, 12.56], part001)
|
||||||
|> line(end = [15.1, 2.48])
|
|> line(end = [15.1, 2.48])
|
||||||
|> line(end = [3.15, -9.85], tag = $seg01)
|
|> line(end = [3.15, -9.85], tag = $seg01)
|
||||||
@ -495,34 +491,35 @@ profile001 = startProfileAt([7.49, 9.96], sketch001)
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
`
|
`
|
||||||
|
)
|
||||||
|
}, KCL_DEFAULT_LENGTH)
|
||||||
|
await page.setBodyDimensions({ width: 1000, height: 500 })
|
||||||
|
|
||||||
|
await homePage.goToModelingScene()
|
||||||
|
await scene.settled(cmdBar)
|
||||||
|
|
||||||
|
const extrudeWall = { x: 575, y: 238 }
|
||||||
|
|
||||||
|
// DELETE with selection on face of parent
|
||||||
|
await page.mouse.click(extrudeWall.x, extrudeWall.y)
|
||||||
|
await page.waitForTimeout(100)
|
||||||
|
await expect(page.locator('.cm-activeLine')).toHaveText(
|
||||||
|
'|> line(end = [-15.17, -4.1])'
|
||||||
)
|
)
|
||||||
}, KCL_DEFAULT_LENGTH)
|
await u.openAndClearDebugPanel()
|
||||||
await page.setBodyDimensions({ width: 1000, height: 500 })
|
await page.keyboard.press('Delete')
|
||||||
|
await u.expectCmdLog('[data-message-type="execution-done"]', 10_000)
|
||||||
|
await page.waitForTimeout(200)
|
||||||
|
|
||||||
await homePage.goToModelingScene()
|
await editor.expectEditor.not.toContain(`yoo = extrude(yo, length = 4)`, {
|
||||||
await scene.settled(cmdBar)
|
shouldNormalise: true,
|
||||||
|
})
|
||||||
const extrudeWall = { x: 575, y: 238 }
|
await editor.expectEditor.toContain(`startSketchOn({plane={origin`, {
|
||||||
|
shouldNormalise: true,
|
||||||
// DELETE with selection on face of parent
|
})
|
||||||
await page.mouse.click(extrudeWall.x, extrudeWall.y)
|
await editor.snapshot()
|
||||||
await page.waitForTimeout(100)
|
}
|
||||||
await expect(page.locator('.cm-activeLine')).toHaveText(
|
)
|
||||||
'|> line(end = [-15.17, -4.1])'
|
|
||||||
)
|
|
||||||
await u.openAndClearDebugPanel()
|
|
||||||
await page.keyboard.press('Delete')
|
|
||||||
await u.expectCmdLog('[data-message-type="execution-done"]', 10_000)
|
|
||||||
await page.waitForTimeout(200)
|
|
||||||
|
|
||||||
await editor.expectEditor.not.toContain(`yoo = extrude(yo, length = 4)`, {
|
|
||||||
shouldNormalise: true,
|
|
||||||
})
|
|
||||||
await editor.expectEditor.toContain(`startSketchOn({plane={origin`, {
|
|
||||||
shouldNormalise: true,
|
|
||||||
})
|
|
||||||
await editor.snapshot()
|
|
||||||
})
|
|
||||||
test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({
|
test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({
|
||||||
page,
|
page,
|
||||||
homePage,
|
homePage,
|
||||||
|
@ -7,7 +7,7 @@ import {
|
|||||||
createProject,
|
createProject,
|
||||||
tomlToSettings,
|
tomlToSettings,
|
||||||
} from './test-utils'
|
} from './test-utils'
|
||||||
import { SaveSettingsPayload, SettingsLevel } from 'lib/settings/settingsTypes'
|
import { SettingsLevel } from 'lib/settings/settingsTypes'
|
||||||
import { SETTINGS_FILE_NAME, PROJECT_SETTINGS_FILE_NAME } from 'lib/constants'
|
import { SETTINGS_FILE_NAME, PROJECT_SETTINGS_FILE_NAME } from 'lib/constants'
|
||||||
import {
|
import {
|
||||||
TEST_SETTINGS_KEY,
|
TEST_SETTINGS_KEY,
|
||||||
@ -15,7 +15,6 @@ import {
|
|||||||
TEST_SETTINGS,
|
TEST_SETTINGS,
|
||||||
TEST_SETTINGS_DEFAULT_THEME,
|
TEST_SETTINGS_DEFAULT_THEME,
|
||||||
} from './storageStates'
|
} from './storageStates'
|
||||||
import * as TOML from '@iarna/toml'
|
|
||||||
import { DeepPartial } from 'lib/types'
|
import { DeepPartial } from 'lib/types'
|
||||||
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
||||||
|
|
||||||
@ -978,72 +977,63 @@ fn cube`
|
|||||||
/**
|
/**
|
||||||
* This test assumes that the default value of the "highlight edges" setting is "on".
|
* This test assumes that the default value of the "highlight edges" setting is "on".
|
||||||
*/
|
*/
|
||||||
test(`Toggle stream settings multiple times`, async ({
|
test.fixme(
|
||||||
page,
|
`Toggle stream settings multiple times`,
|
||||||
scene,
|
async ({ page, scene, homePage, context, toolbar, cmdBar }, testInfo) => {
|
||||||
homePage,
|
await context.folderSetupFn(async (dir) => {
|
||||||
context,
|
const projectDir = join(dir, 'project-000')
|
||||||
toolbar,
|
await fsp.mkdir(projectDir, { recursive: true })
|
||||||
cmdBar,
|
await fsp.copyFile(
|
||||||
}, testInfo) => {
|
executorInputPath('cube.kcl'),
|
||||||
await context.folderSetupFn(async (dir) => {
|
join(projectDir, 'main.kcl')
|
||||||
const projectDir = join(dir, 'project-000')
|
)
|
||||||
await fsp.mkdir(projectDir, { recursive: true })
|
})
|
||||||
await fsp.copyFile(
|
|
||||||
executorInputPath('cube.kcl'),
|
await test.step(`First snapshot`, async () => {
|
||||||
join(projectDir, 'main.kcl')
|
await homePage.openProject('project-000')
|
||||||
|
await toolbar.closePane('code')
|
||||||
|
await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 })
|
||||||
|
await scene.clickNoWhere()
|
||||||
|
})
|
||||||
|
|
||||||
|
const toast = (value: boolean) =>
|
||||||
|
page.getByText(
|
||||||
|
`Set highlight edges to "${String(value)}" as a user default`
|
||||||
|
)
|
||||||
|
|
||||||
|
await test.step(`Toggle highlightEdges off`, async () => {
|
||||||
|
await cmdBar.openCmdBar()
|
||||||
|
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
|
||||||
|
await cmdBar.selectOption({ name: 'off' }).click()
|
||||||
|
const falseToast = toast(false)
|
||||||
|
await expect(falseToast).toBeVisible()
|
||||||
|
await falseToast.waitFor({ state: 'detached' })
|
||||||
|
})
|
||||||
|
|
||||||
|
await expect(scene.streamWrapper).not.toHaveScreenshot(
|
||||||
|
'toggle-settings-initial.png',
|
||||||
|
{
|
||||||
|
maxDiffPixels: 15,
|
||||||
|
mask: [page.getByTestId('model-state-indicator')],
|
||||||
|
}
|
||||||
)
|
)
|
||||||
})
|
|
||||||
|
|
||||||
await test.step(`First snapshot`, async () => {
|
await test.step(`Toggle highlightEdges on`, async () => {
|
||||||
await homePage.openProject('project-000')
|
await cmdBar.openCmdBar()
|
||||||
await toolbar.closePane('code')
|
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
|
||||||
await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 })
|
await cmdBar.selectOption({ name: 'on' }).click()
|
||||||
await scene.clickNoWhere()
|
const trueToast = toast(true)
|
||||||
})
|
await expect(trueToast).toBeVisible()
|
||||||
|
await trueToast.waitFor({ state: 'detached' })
|
||||||
|
})
|
||||||
|
|
||||||
const toast = (value: boolean) =>
|
await expect(scene.streamWrapper).toHaveScreenshot(
|
||||||
page.getByText(
|
'toggle-settings-initial.png',
|
||||||
`Set highlight edges to "${String(value)}" as a user default`
|
{
|
||||||
|
maxDiffPixels: 15,
|
||||||
|
mask: [page.getByTestId('model-state-indicator')],
|
||||||
|
}
|
||||||
)
|
)
|
||||||
const initialPath = testInfo.snapshotPath('toggle-settings-initial.png')
|
}
|
||||||
const initialScreenshot = await scene.streamWrapper.screenshot({
|
)
|
||||||
path: initialPath,
|
|
||||||
mask: [page.getByTestId('model-state-indicator')],
|
|
||||||
})
|
|
||||||
|
|
||||||
await test.step(`Toggle highlightEdges off`, async () => {
|
|
||||||
await cmdBar.openCmdBar()
|
|
||||||
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
|
|
||||||
await cmdBar.selectOption({ name: 'off' }).click()
|
|
||||||
const falseToast = toast(false)
|
|
||||||
await expect(falseToast).toBeVisible()
|
|
||||||
await falseToast.waitFor({ state: 'detached' })
|
|
||||||
})
|
|
||||||
|
|
||||||
await expect(scene.streamWrapper).not.toHaveScreenshot(
|
|
||||||
'toggle-settings-initial.png',
|
|
||||||
{
|
|
||||||
maxDiffPixels: 15,
|
|
||||||
mask: [page.getByTestId('model-state-indicator')],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
await test.step(`Toggle highlightEdges on`, async () => {
|
|
||||||
await cmdBar.openCmdBar()
|
|
||||||
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
|
|
||||||
await cmdBar.selectOption({ name: 'on' }).click()
|
|
||||||
const trueToast = toast(true)
|
|
||||||
await expect(trueToast).toBeVisible()
|
|
||||||
await trueToast.waitFor({ state: 'detached' })
|
|
||||||
})
|
|
||||||
|
|
||||||
await expect(scene.streamWrapper).toHaveScreenshot(
|
|
||||||
'toggle-settings-initial.png',
|
|
||||||
{
|
|
||||||
maxDiffPixels: 15,
|
|
||||||
mask: [page.getByTestId('model-state-indicator')],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
@ -619,7 +619,7 @@ async function sendPromptFromCommandBar(page: Page, promptStr: string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
test(
|
test.fixme(
|
||||||
'Text-to-CAD functionality',
|
'Text-to-CAD functionality',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable react-hooks/rules-of-hooks */
|
/* eslint-disable react-hooks/rules-of-hooks */
|
||||||
|
|
||||||
import { test as playwrightTestFn, ElectronApplication } from '@playwright/test'
|
import { test as playwrightTestFn } from '@playwright/test'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
fixturesBasedOnProcessEnvPlatform,
|
fixturesBasedOnProcessEnvPlatform,
|
||||||
@ -8,8 +8,6 @@ import {
|
|||||||
ElectronZoo,
|
ElectronZoo,
|
||||||
} from './fixtures/fixtureSetup'
|
} from './fixtures/fixtureSetup'
|
||||||
|
|
||||||
import { Settings } from '@rust/kcl-lib/bindings/Settings'
|
|
||||||
import { DeepPartial } from 'lib/types'
|
|
||||||
export { expect } from '@playwright/test'
|
export { expect } from '@playwright/test'
|
||||||
|
|
||||||
declare module '@playwright/test' {
|
declare module '@playwright/test' {
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
"@xstate/inspect": "^0.8.0",
|
"@xstate/inspect": "^0.8.0",
|
||||||
"@xstate/react": "^4.1.1",
|
"@xstate/react": "^4.1.1",
|
||||||
"bonjour-service": "^1.3.0",
|
"bonjour-service": "^1.3.0",
|
||||||
|
"bson": "^6.10.3",
|
||||||
"chokidar": "^4.0.1",
|
"chokidar": "^4.0.1",
|
||||||
"codemirror": "^6.0.1",
|
"codemirror": "^6.0.1",
|
||||||
"decamelize": "^6.0.0",
|
"decamelize": "^6.0.0",
|
||||||
@ -71,7 +72,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"install:rust": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none && source \"$HOME/.cargo/env\" && (cd rust && (rustup show active-toolchain || rustup toolchain install))",
|
"install:rust": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none && source \"$HOME/.cargo/env\" && (cd rust && (rustup show active-toolchain || rustup toolchain install))",
|
||||||
"install:rust:windows": "winget install Microsoft.VisualStudio.2022.Community --silent --override \"--wait --quiet --add ProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended\" && winget install Rustlang.Rustup",
|
"install:rust:windows": "winget install Microsoft.VisualStudio.2022.Community --silent --override \"--wait --quiet --add ProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended\" && winget install Rustlang.Rustup",
|
||||||
"install:wasm-pack:sh": ". $HOME/.cargo/env && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -y",
|
"install:wasm-pack:sh": ". $HOME/.cargo/env && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -f",
|
||||||
"install:wasm-pack:cargo": "cargo install wasm-pack",
|
"install:wasm-pack:cargo": "cargo install wasm-pack",
|
||||||
"install:tools:windows": "winget install jqlang.jq MikeFarah.yq GitHub.cli",
|
"install:tools:windows": "winget install jqlang.jq MikeFarah.yq GitHub.cli",
|
||||||
"start": "vite --port=3000 --host=0.0.0.0",
|
"start": "vite --port=3000 --host=0.0.0.0",
|
||||||
@ -87,12 +88,13 @@
|
|||||||
"simpleserver:ci": "yarn pretest && http-server ./public --cors -p 3000 &",
|
"simpleserver:ci": "yarn pretest && http-server ./public --cors -p 3000 &",
|
||||||
"simpleserver:bg": "yarn pretest && http-server ./public --cors -p 3000 &",
|
"simpleserver:bg": "yarn pretest && http-server ./public --cors -p 3000 &",
|
||||||
"simpleserver:stop": "kill-port 3000",
|
"simpleserver:stop": "kill-port 3000",
|
||||||
"fmt": "prettier --write ./src *.ts *.json *.js ./e2e ./packages ./rust/kcl-language-server",
|
"fmt": "prettier --write ./src *.ts *.json *.js ./e2e ./packages ./rust/kcl-language-server ./rust/kcl-lib/bindings ./rust/kcl-wasm-lib/pkg",
|
||||||
|
"fmt:generated": "prettier --write *.ts *.json *.js ./rust/kcl-lib/bindings ./rust/kcl-wasm-lib/pkg",
|
||||||
"fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages ./rust/kcl-language-server",
|
"fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages ./rust/kcl-language-server",
|
||||||
"fetch:wasm": "./scripts/get-latest-wasm-bundle.sh",
|
"fetch:wasm": "./scripts/get-latest-wasm-bundle.sh",
|
||||||
"fetch:wasm:windows": "./scripts/get-latest-wasm-bundle.ps1",
|
"fetch:wasm:windows": "./scripts/get-latest-wasm-bundle.ps1",
|
||||||
"fetch:samples": "rm -rf public/kcl-samples* && curl -L -o public/kcl-samples.zip https://github.com/KittyCAD/kcl-samples/archive/refs/heads/achalmers/kw-args-xylineto.zip && unzip -o public/kcl-samples.zip -d public && mv public/kcl-samples-* public/kcl-samples",
|
"fetch:samples": "rm -rf public/kcl-samples* && curl -L -o public/kcl-samples.zip https://github.com/KittyCAD/kcl-samples/archive/refs/heads/achalmers/kw-args-xylineto.zip && unzip -o public/kcl-samples.zip -d public && mv public/kcl-samples-* public/kcl-samples",
|
||||||
"build:wasm-dev": "yarn wasm-prep && (cd rust && wasm-pack build kcl-wasm-lib --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt",
|
"build:wasm-dev": "yarn wasm-prep && (cd rust && wasm-pack build kcl-wasm-lib --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt:generated",
|
||||||
"build:wasm": "./scripts/build-wasm.sh",
|
"build:wasm": "./scripts/build-wasm.sh",
|
||||||
"build:wasm:windows": "./scripts/build-wasm.ps1",
|
"build:wasm:windows": "./scripts/build-wasm.ps1",
|
||||||
"remove-importmeta": "sed -i 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\"; sed -i '' 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\" || echo \"sed for both mac and linux\"",
|
"remove-importmeta": "sed -i 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\"; sed -i '' 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\" || echo \"sed for both mac and linux\"",
|
||||||
@ -212,6 +214,7 @@
|
|||||||
"typescript-eslint": "^8.26.1",
|
"typescript-eslint": "^8.26.1",
|
||||||
"vite": "^5.4.12",
|
"vite": "^5.4.12",
|
||||||
"vite-plugin-package-version": "^1.1.0",
|
"vite-plugin-package-version": "^1.1.0",
|
||||||
|
"vite-plugin-top-level-await": "^1.5.0",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^4.3.2",
|
||||||
"vitest": "^1.6.1",
|
"vitest": "^1.6.1",
|
||||||
"vitest-webgl-canvas-mock": "^1.1.0",
|
"vitest-webgl-canvas-mock": "^1.1.0",
|
||||||
|
@ -23,78 +23,80 @@ KCL samples conform to a set of style guidelines to ensure consistency and reada
|
|||||||
When you submit a PR to add or modify KCL samples, images and STEP files will be generated and added to the repository automatically.
|
When you submit a PR to add or modify KCL samples, images and STEP files will be generated and added to the repository automatically.
|
||||||
|
|
||||||
---
|
---
|
||||||
#### [80-20-rail](80-20-rail/main.kcl) ([step](step/80-20-rail.step)) ([screenshot](screenshots/80-20-rail.png))
|
#### [80-20-rail](80-20-rail/main.kcl) ([screenshot](screenshots/80-20-rail.png))
|
||||||
[](80-20-rail/main.kcl)
|
[](80-20-rail/main.kcl)
|
||||||
#### [a-parametric-bearing-pillow-block](a-parametric-bearing-pillow-block/main.kcl) ([step](step/a-parametric-bearing-pillow-block.step)) ([screenshot](screenshots/a-parametric-bearing-pillow-block.png))
|
#### [a-parametric-bearing-pillow-block](a-parametric-bearing-pillow-block/main.kcl) ([screenshot](screenshots/a-parametric-bearing-pillow-block.png))
|
||||||
[](a-parametric-bearing-pillow-block/main.kcl)
|
[](a-parametric-bearing-pillow-block/main.kcl)
|
||||||
#### [ball-bearing](ball-bearing/main.kcl) ([step](step/ball-bearing.step)) ([screenshot](screenshots/ball-bearing.png))
|
#### [ball-bearing](ball-bearing/main.kcl) ([screenshot](screenshots/ball-bearing.png))
|
||||||
[](ball-bearing/main.kcl)
|
[](ball-bearing/main.kcl)
|
||||||
#### [bench](bench/main.kcl) ([step](step/bench.step)) ([screenshot](screenshots/bench.png))
|
#### [bench](bench/main.kcl) ([screenshot](screenshots/bench.png))
|
||||||
[](bench/main.kcl)
|
[](bench/main.kcl)
|
||||||
#### [bracket](bracket/main.kcl) ([step](step/bracket.step)) ([screenshot](screenshots/bracket.png))
|
#### [bracket](bracket/main.kcl) ([screenshot](screenshots/bracket.png))
|
||||||
[](bracket/main.kcl)
|
[](bracket/main.kcl)
|
||||||
#### [car-wheel-assembly](car-wheel-assembly/main.kcl) ([step](step/car-wheel-assembly.step)) ([screenshot](screenshots/car-wheel-assembly.png))
|
#### [car-wheel-assembly](car-wheel-assembly/main.kcl) ([screenshot](screenshots/car-wheel-assembly.png))
|
||||||
[](car-wheel-assembly/main.kcl)
|
[](car-wheel-assembly/main.kcl)
|
||||||
#### [color-cube](color-cube/main.kcl) ([step](step/color-cube.step)) ([screenshot](screenshots/color-cube.png))
|
#### [color-cube](color-cube/main.kcl) ([screenshot](screenshots/color-cube.png))
|
||||||
[](color-cube/main.kcl)
|
[](color-cube/main.kcl)
|
||||||
#### [cycloidal-gear](cycloidal-gear/main.kcl) ([step](step/cycloidal-gear.step)) ([screenshot](screenshots/cycloidal-gear.png))
|
#### [cycloidal-gear](cycloidal-gear/main.kcl) ([screenshot](screenshots/cycloidal-gear.png))
|
||||||
[](cycloidal-gear/main.kcl)
|
[](cycloidal-gear/main.kcl)
|
||||||
#### [dodecahedron](dodecahedron/main.kcl) ([step](step/dodecahedron.step)) ([screenshot](screenshots/dodecahedron.png))
|
#### [dodecahedron](dodecahedron/main.kcl) ([screenshot](screenshots/dodecahedron.png))
|
||||||
[](dodecahedron/main.kcl)
|
[](dodecahedron/main.kcl)
|
||||||
#### [enclosure](enclosure/main.kcl) ([step](step/enclosure.step)) ([screenshot](screenshots/enclosure.png))
|
#### [enclosure](enclosure/main.kcl) ([screenshot](screenshots/enclosure.png))
|
||||||
[](enclosure/main.kcl)
|
[](enclosure/main.kcl)
|
||||||
#### [exhaust-manifold](exhaust-manifold/main.kcl) ([step](step/exhaust-manifold.step)) ([screenshot](screenshots/exhaust-manifold.png))
|
#### [exhaust-manifold](exhaust-manifold/main.kcl) ([screenshot](screenshots/exhaust-manifold.png))
|
||||||
[](exhaust-manifold/main.kcl)
|
[](exhaust-manifold/main.kcl)
|
||||||
#### [flange](flange/main.kcl) ([step](step/flange.step)) ([screenshot](screenshots/flange.png))
|
#### [flange](flange/main.kcl) ([screenshot](screenshots/flange.png))
|
||||||
[](flange/main.kcl)
|
[](flange/main.kcl)
|
||||||
#### [focusrite-scarlett-mounting-bracket](focusrite-scarlett-mounting-bracket/main.kcl) ([step](step/focusrite-scarlett-mounting-bracket.step)) ([screenshot](screenshots/focusrite-scarlett-mounting-bracket.png))
|
#### [focusrite-scarlett-mounting-bracket](focusrite-scarlett-mounting-bracket/main.kcl) ([screenshot](screenshots/focusrite-scarlett-mounting-bracket.png))
|
||||||
[](focusrite-scarlett-mounting-bracket/main.kcl)
|
[](focusrite-scarlett-mounting-bracket/main.kcl)
|
||||||
#### [food-service-spatula](food-service-spatula/main.kcl) ([step](step/food-service-spatula.step)) ([screenshot](screenshots/food-service-spatula.png))
|
#### [food-service-spatula](food-service-spatula/main.kcl) ([screenshot](screenshots/food-service-spatula.png))
|
||||||
[](food-service-spatula/main.kcl)
|
[](food-service-spatula/main.kcl)
|
||||||
#### [french-press](french-press/main.kcl) ([step](step/french-press.step)) ([screenshot](screenshots/french-press.png))
|
#### [french-press](french-press/main.kcl) ([screenshot](screenshots/french-press.png))
|
||||||
[](french-press/main.kcl)
|
[](french-press/main.kcl)
|
||||||
#### [gear](gear/main.kcl) ([step](step/gear.step)) ([screenshot](screenshots/gear.png))
|
#### [gear](gear/main.kcl) ([screenshot](screenshots/gear.png))
|
||||||
[](gear/main.kcl)
|
[](gear/main.kcl)
|
||||||
#### [gear-rack](gear-rack/main.kcl) ([step](step/gear-rack.step)) ([screenshot](screenshots/gear-rack.png))
|
#### [gear-rack](gear-rack/main.kcl) ([screenshot](screenshots/gear-rack.png))
|
||||||
[](gear-rack/main.kcl)
|
[](gear-rack/main.kcl)
|
||||||
#### [gridfinity-baseplate](gridfinity-baseplate/main.kcl) ([step](step/gridfinity-baseplate.step)) ([screenshot](screenshots/gridfinity-baseplate.png))
|
#### [gridfinity-baseplate](gridfinity-baseplate/main.kcl) ([screenshot](screenshots/gridfinity-baseplate.png))
|
||||||
[](gridfinity-baseplate/main.kcl)
|
[](gridfinity-baseplate/main.kcl)
|
||||||
#### [gridfinity-baseplate-magnets](gridfinity-baseplate-magnets/main.kcl) ([step](step/gridfinity-baseplate-magnets.step)) ([screenshot](screenshots/gridfinity-baseplate-magnets.png))
|
#### [gridfinity-baseplate-magnets](gridfinity-baseplate-magnets/main.kcl) ([screenshot](screenshots/gridfinity-baseplate-magnets.png))
|
||||||
[](gridfinity-baseplate-magnets/main.kcl)
|
[](gridfinity-baseplate-magnets/main.kcl)
|
||||||
#### [gridfinity-bins](gridfinity-bins/main.kcl) ([step](step/gridfinity-bins.step)) ([screenshot](screenshots/gridfinity-bins.png))
|
#### [gridfinity-bins](gridfinity-bins/main.kcl) ([screenshot](screenshots/gridfinity-bins.png))
|
||||||
[](gridfinity-bins/main.kcl)
|
[](gridfinity-bins/main.kcl)
|
||||||
#### [gridfinity-bins-stacking-lip](gridfinity-bins-stacking-lip/main.kcl) ([step](step/gridfinity-bins-stacking-lip.step)) ([screenshot](screenshots/gridfinity-bins-stacking-lip.png))
|
#### [gridfinity-bins-stacking-lip](gridfinity-bins-stacking-lip/main.kcl) ([screenshot](screenshots/gridfinity-bins-stacking-lip.png))
|
||||||
[](gridfinity-bins-stacking-lip/main.kcl)
|
[](gridfinity-bins-stacking-lip/main.kcl)
|
||||||
#### [hex-nut](hex-nut/main.kcl) ([step](step/hex-nut.step)) ([screenshot](screenshots/hex-nut.png))
|
#### [hex-nut](hex-nut/main.kcl) ([screenshot](screenshots/hex-nut.png))
|
||||||
[](hex-nut/main.kcl)
|
[](hex-nut/main.kcl)
|
||||||
#### [i-beam](i-beam/main.kcl) ([step](step/i-beam.step)) ([screenshot](screenshots/i-beam.png))
|
#### [i-beam](i-beam/main.kcl) ([screenshot](screenshots/i-beam.png))
|
||||||
[](i-beam/main.kcl)
|
[](i-beam/main.kcl)
|
||||||
#### [kitt](kitt/main.kcl) ([step](step/kitt.step)) ([screenshot](screenshots/kitt.png))
|
#### [keyboard](keyboard/main.kcl) ([screenshot](screenshots/keyboard.png))
|
||||||
|
[](keyboard/main.kcl)
|
||||||
|
#### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png))
|
||||||
[](kitt/main.kcl)
|
[](kitt/main.kcl)
|
||||||
#### [lego](lego/main.kcl) ([step](step/lego.step)) ([screenshot](screenshots/lego.png))
|
#### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png))
|
||||||
[](lego/main.kcl)
|
[](lego/main.kcl)
|
||||||
#### [mounting-plate](mounting-plate/main.kcl) ([step](step/mounting-plate.step)) ([screenshot](screenshots/mounting-plate.png))
|
#### [mounting-plate](mounting-plate/main.kcl) ([screenshot](screenshots/mounting-plate.png))
|
||||||
[](mounting-plate/main.kcl)
|
[](mounting-plate/main.kcl)
|
||||||
#### [multi-axis-robot](multi-axis-robot/main.kcl) ([step](step/multi-axis-robot.step)) ([screenshot](screenshots/multi-axis-robot.png))
|
#### [multi-axis-robot](multi-axis-robot/main.kcl) ([screenshot](screenshots/multi-axis-robot.png))
|
||||||
[](multi-axis-robot/main.kcl)
|
[](multi-axis-robot/main.kcl)
|
||||||
#### [pipe](pipe/main.kcl) ([step](step/pipe.step)) ([screenshot](screenshots/pipe.png))
|
#### [pipe](pipe/main.kcl) ([screenshot](screenshots/pipe.png))
|
||||||
[](pipe/main.kcl)
|
[](pipe/main.kcl)
|
||||||
#### [pipe-flange-assembly](pipe-flange-assembly/main.kcl) ([step](step/pipe-flange-assembly.step)) ([screenshot](screenshots/pipe-flange-assembly.png))
|
#### [pipe-flange-assembly](pipe-flange-assembly/main.kcl) ([screenshot](screenshots/pipe-flange-assembly.png))
|
||||||
[](pipe-flange-assembly/main.kcl)
|
[](pipe-flange-assembly/main.kcl)
|
||||||
#### [pipe-with-bend](pipe-with-bend/main.kcl) ([step](step/pipe-with-bend.step)) ([screenshot](screenshots/pipe-with-bend.png))
|
#### [pipe-with-bend](pipe-with-bend/main.kcl) ([screenshot](screenshots/pipe-with-bend.png))
|
||||||
[](pipe-with-bend/main.kcl)
|
[](pipe-with-bend/main.kcl)
|
||||||
#### [poopy-shoe](poopy-shoe/main.kcl) ([step](step/poopy-shoe.step)) ([screenshot](screenshots/poopy-shoe.png))
|
#### [poopy-shoe](poopy-shoe/main.kcl) ([screenshot](screenshots/poopy-shoe.png))
|
||||||
[](poopy-shoe/main.kcl)
|
[](poopy-shoe/main.kcl)
|
||||||
#### [router-template-cross-bar](router-template-cross-bar/main.kcl) ([step](step/router-template-cross-bar.step)) ([screenshot](screenshots/router-template-cross-bar.png))
|
#### [router-template-cross-bar](router-template-cross-bar/main.kcl) ([screenshot](screenshots/router-template-cross-bar.png))
|
||||||
[](router-template-cross-bar/main.kcl)
|
[](router-template-cross-bar/main.kcl)
|
||||||
#### [router-template-slate](router-template-slate/main.kcl) ([step](step/router-template-slate.step)) ([screenshot](screenshots/router-template-slate.png))
|
#### [router-template-slate](router-template-slate/main.kcl) ([screenshot](screenshots/router-template-slate.png))
|
||||||
[](router-template-slate/main.kcl)
|
[](router-template-slate/main.kcl)
|
||||||
#### [sheet-metal-bracket](sheet-metal-bracket/main.kcl) ([step](step/sheet-metal-bracket.step)) ([screenshot](screenshots/sheet-metal-bracket.png))
|
#### [sheet-metal-bracket](sheet-metal-bracket/main.kcl) ([screenshot](screenshots/sheet-metal-bracket.png))
|
||||||
[](sheet-metal-bracket/main.kcl)
|
[](sheet-metal-bracket/main.kcl)
|
||||||
#### [socket-head-cap-screw](socket-head-cap-screw/main.kcl) ([step](step/socket-head-cap-screw.step)) ([screenshot](screenshots/socket-head-cap-screw.png))
|
#### [socket-head-cap-screw](socket-head-cap-screw/main.kcl) ([screenshot](screenshots/socket-head-cap-screw.png))
|
||||||
[](socket-head-cap-screw/main.kcl)
|
[](socket-head-cap-screw/main.kcl)
|
||||||
#### [walkie-talkie](walkie-talkie/main.kcl) ([step](step/walkie-talkie.step)) ([screenshot](screenshots/walkie-talkie.png))
|
#### [walkie-talkie](walkie-talkie/main.kcl) ([screenshot](screenshots/walkie-talkie.png))
|
||||||
[](walkie-talkie/main.kcl)
|
[](walkie-talkie/main.kcl)
|
||||||
#### [washer](washer/main.kcl) ([step](step/washer.step)) ([screenshot](screenshots/washer.png))
|
#### [washer](washer/main.kcl) ([screenshot](screenshots/washer.png))
|
||||||
[](washer/main.kcl)
|
[](washer/main.kcl)
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ ballsSketch = startSketchOn("XY")
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the ball to make a sphere and pattern around the inside wall
|
// Revolve the ball to make a sphere and pattern around the inside wall
|
||||||
balls = revolve({ axis = "X" }, ballsSketch)
|
balls = revolve(ballsSketch, axis = "X")
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
@ -66,7 +66,7 @@ chainSketch = startSketchOn("XY")
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the chain sketch
|
// Revolve the chain sketch
|
||||||
chainHead = revolve({ axis = "X" }, chainSketch)
|
chainHead = revolve(chainSketch, axis = "X")
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
@ -86,7 +86,7 @@ linkSketch = startSketchOn("XZ")
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Revolve the link sketch
|
// Revolve the link sketch
|
||||||
linkRevolve = revolve({ axis = 'Y', angle = 360 / nBalls }, linkSketch)
|
linkRevolve = revolve(linkSketch, axis = 'Y', angle = 360 / nBalls)
|
||||||
|> patternCircular3d(
|
|> patternCircular3d(
|
||||||
arcDegrees = 360,
|
arcDegrees = 360,
|
||||||
axis = [0, 0, 1],
|
axis = [0, 0, 1],
|
||||||
|
@ -82,5 +82,5 @@ brakeCaliperSketch = startSketchOn('XY')
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the brake caliper sketch
|
// Revolve the brake caliper sketch
|
||||||
revolve({ axis = "Y", angle = -70 }, brakeCaliperSketch)
|
revolve(brakeCaliperSketch, axis = "Y", angle = -70)
|
||||||
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)
|
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)
|
||||||
|
@ -40,5 +40,5 @@ tireSketch = startSketchOn("XY")
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the sketch to create the tire
|
// Revolve the sketch to create the tire
|
||||||
revolve({ axis = "Y" }, tireSketch)
|
revolve(tireSketch, axis = "Y")
|
||||||
|> appearance(color = "#0f0f0f", roughness = 80)
|
|> appearance(color = "#0f0f0f", roughness = 80)
|
||||||
|
@ -74,7 +74,7 @@ wheelCenterInner = startSketchOn('XY')
|
|||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
|
||||||
wheelCenterOuter = startSketchOn('XY')
|
wheelCenterOuter = startSketchOn('XY')
|
||||||
@ -88,7 +88,7 @@ wheelCenterOuter = startSketchOn('XY')
|
|||||||
|> yLine(endAbsolute = -wheelWidth / 20)
|
|> yLine(endAbsolute = -wheelWidth / 20)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
|
||||||
// Write a function that defines the spoke geometry, patterns and extrudes it
|
// Write a function that defines the spoke geometry, patterns and extrudes it
|
||||||
@ -193,5 +193,5 @@ startSketchOn('XY')
|
|||||||
|> xLine(length = wheelWidth * 0.03)
|
|> xLine(length = wheelWidth * 0.03)
|
||||||
|> yLine(length = wheelWidth * 0.05)
|
|> yLine(length = wheelWidth * 0.05)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
|
||||||
|
@ -34,7 +34,7 @@ fn lug(plane, length, diameter) {
|
|||||||
|> xLine(endAbsolute = lugThreadDiameter)
|
|> xLine(endAbsolute = lugThreadDiameter)
|
||||||
|> yLine(endAbsolute = 0)
|
|> yLine(endAbsolute = 0)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = "Y" }, %)
|
|> revolve(axis = "Y")
|
||||||
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
|
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
|
||||||
return lugSketch
|
return lugSketch
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// Set units
|
// Set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
import 'car-wheel.kcl' as carWheel
|
import 'car-wheel.kcl' as carWheel
|
||||||
import 'car-rotor.kcl' as carRotor
|
import 'car-rotor.kcl' as carRotor
|
||||||
import "brake-caliper.kcl" as brakeCaliper
|
import "brake-caliper.kcl" as brakeCaliper
|
||||||
import 'lug-nut.kcl' as lugNut
|
import 'lug-nut.kcl' as lugNut
|
||||||
|
@ -23,7 +23,7 @@ sketch001 = startSketchOn('XZ')
|
|||||||
], %, $rectangleSegmentC001)
|
], %, $rectangleSegmentC001)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ angle = 360, axis = 'Y' }, %)
|
|> revolve(angle = 360, axis = 'Y')
|
||||||
|
|
||||||
// Create an angled plane to sketch the supports
|
// Create an angled plane to sketch the supports
|
||||||
plane001 = {
|
plane001 = {
|
||||||
@ -135,7 +135,7 @@ sketch005 = startSketchOn('XZ')
|
|||||||
|> xLine(endAbsolute = 0.15)
|
|> xLine(endAbsolute = 0.15)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|
|
||||||
// Plunger and stem
|
// Plunger and stem
|
||||||
sketch006 = startSketchOn('XZ')
|
sketch006 = startSketchOn('XZ')
|
||||||
@ -148,7 +148,7 @@ sketch006 = startSketchOn('XZ')
|
|||||||
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|
|
||||||
// Spiral plate
|
// Spiral plate
|
||||||
sketch007 = startSketchOn(offsetPlane('XY', offset = 1.12))
|
sketch007 = startSketchOn(offsetPlane('XY', offset = 1.12))
|
||||||
@ -210,7 +210,7 @@ sketch011 = startSketchOn('XZ')
|
|||||||
}, %)
|
}, %)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve({ axis = 'y' }, %)
|
|> revolve(axis = 'y')
|
||||||
|
|
||||||
// Draw and extrude handle
|
// Draw and extrude handle
|
||||||
sketch012 = startSketchOn(offsetPlane('XZ', offset = handleThickness / 2))
|
sketch012 = startSketchOn(offsetPlane('XZ', offset = handleThickness / 2))
|
||||||
|
@ -55,7 +55,7 @@ axis000 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius)))
|
singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius)), angle = -90, axis = axis000)
|
||||||
|
|
||||||
// create the corners of the bin
|
// create the corners of the bin
|
||||||
corners = patternCircular3d(
|
corners = patternCircular3d(
|
||||||
|
@ -52,7 +52,7 @@ axis000 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius)))
|
singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius)), angle = -90, axis = axis000)
|
||||||
|
|
||||||
// create the corners of the bin
|
// create the corners of the bin
|
||||||
corners = patternCircular3d(
|
corners = patternCircular3d(
|
||||||
|
@ -75,7 +75,7 @@ axis000 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius + binTol)))
|
singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius + binTol)), angle = -90, axis = axis000)
|
||||||
|
|
||||||
// create the corners of the bin
|
// create the corners of the bin
|
||||||
corners = patternCircular3d(
|
corners = patternCircular3d(
|
||||||
@ -291,10 +291,10 @@ axis001 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
lipSingleLengthCorner = revolve({ angle = -90, axis = axis001 }, lipFace(plane000))
|
lipSingleLengthCorner = revolve(lipFace(plane000), angle = -90, axis = axis001)
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
lipSingleWidthCorner = revolve({ angle = 90, axis = axis001 }, lipFace(plane002))
|
lipSingleWidthCorner = revolve(lipFace(plane002), angle = 90, axis = axis001)
|
||||||
|
|
||||||
// create the corners of the bin
|
// create the corners of the bin
|
||||||
lipCorners000 = patternCircular3d(
|
lipCorners000 = patternCircular3d(
|
||||||
|
@ -68,7 +68,7 @@ axis000 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create a single corner of the bin
|
// create a single corner of the bin
|
||||||
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius + binTol)))
|
singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius + binTol)), angle = -90, axis = axis000)
|
||||||
|
|
||||||
// create the corners of the bin
|
// create the corners of the bin
|
||||||
corners = patternCircular3d(
|
corners = patternCircular3d(
|
||||||
|
233
public/kcl-samples/keyboard/main.kcl
Normal 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)
|
@ -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."
|
||||||
},
|
},
|
||||||
|
25
public/kcl-samples/pipe-flange-assembly/1120t74-pipe.kcl
Normal 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/
|
46
public/kcl-samples/pipe-flange-assembly/68095k348-flange.kcl
Normal 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/
|
56
public/kcl-samples/pipe-flange-assembly/91251a404-bolt.kcl
Normal 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/
|
26
public/kcl-samples/pipe-flange-assembly/9472k188-gasket.kcl
Normal 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/
|
@ -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/
|
26
public/kcl-samples/pipe-flange-assembly/98017a257-washer.kcl
Normal 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/
|
48
public/kcl-samples/pipe-flange-assembly/globals.kcl
Normal 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
|
@ -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")
|
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -32,4 +32,4 @@ pipeProfile = outerProfile
|
|||||||
|> hole(innerProfile, %)
|
|> hole(innerProfile, %)
|
||||||
|
|
||||||
// revolve the pipe profile at the desired angle
|
// revolve the pipe profile at the desired angle
|
||||||
pipe = revolve({ axis = "Y", angle = bendAngle }, pipeProfile)
|
pipe = revolve(pipeProfile, axis = "Y", angle = bendAngle)
|
||||||
|
@ -33,4 +33,4 @@ pipeSketch = startSketchOn('XY')
|
|||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Revolve the sketch to create the pipe
|
// Revolve the sketch to create the pipe
|
||||||
pipe = revolve({ axis = 'y' }, pipeSketch)
|
pipe = revolve(pipeSketch, axis = 'y')
|
||||||
|
@ -30,7 +30,8 @@ sketch001 = startSketchOn("-YZ")
|
|||||||
|> yLine(endAbsolute = segEndY(seg01))
|
|> yLine(endAbsolute = segEndY(seg01))
|
||||||
|> angledLineToY({ angle = 180 - 60, to = 0 }, %)
|
|> angledLineToY({ angle = 180 - 60, to = 0 }, %)
|
||||||
|> close()
|
|> close()
|
||||||
part001 = revolve({
|
part001 = revolve(
|
||||||
|
sketch001,
|
||||||
angle = 90,
|
angle = 90,
|
||||||
axis = {
|
axis = {
|
||||||
custom = {
|
custom = {
|
||||||
@ -38,7 +39,7 @@ part001 = revolve({
|
|||||||
origin = [0.0, height + .0001]
|
origin = [0.0, height + .0001]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, sketch001)
|
)
|
||||||
|
|
||||||
sketch002 = startSketchOn('-YZ')
|
sketch002 = startSketchOn('-YZ')
|
||||||
|> startProfileAt([wallsWidth / 2, 0], %)
|
|> startProfileAt([wallsWidth / 2, 0], %)
|
||||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
BIN
public/kcl-samples/screenshots/keyboard.png
Normal file
After Width: | Height: | Size: 82 KiB |