Compare commits

...

31 Commits

Author SHA1 Message Date
83ca08b26c Update dependabot config (#5907) 2025-03-20 09:10:50 -04:00
ce98218bf0 Create main.kcl (#5898)
* Create main.kcl

* Update kcl-samples simulation test output

* Update kcl-samples simulation test output

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh Gomez <114548659+jgomez720@users.noreply.github.com>
2025-03-19 23:28:07 -07:00
2d43399703 Update pipe flange assembly (#5893)
* update pipe flange assy and small change to walkie talkie

* update header in globals.kcl

* Update kcl-samples simulation test output

* Update kcl-samples simulation test output

* Update output after merge

---------

Co-authored-by: jgomez720 <114548659+jgomez720@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-20 03:49:06 +00:00
461a2c3ab2 Support comments on attributes (#5850)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-20 16:23:20 +13:00
79be72c5f0 Fix a couple of panics (#5900)
* Ensure batches in the engine are cleared between scenes

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Avoid panicking reading arguments out of bounds

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-20 02:59:16 +00:00
9ddb4e629f Stub csg functions for front end (#5899)
* initial placeholder csg functions

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* generate docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* generate docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-20 02:26:57 +00:00
25e8e7081b Fix workflow to commit all generated kcl-samples files (#5896) 2025-03-20 01:10:54 +00:00
c5164cbee3 Fix electron renderer topLevelAwait in electron-forge (#5895)
* Fix electron renderer topLevelAwait

* Actually we need both for both cases, adding back plus comments
2025-03-19 20:54:35 -04:00
809b333248 bump kcl and friends before tomorrow release (#5897)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-19 17:12:02 -07:00
a933646667 Fix e2e workflow when only kcl-samples changes (#5894) 2025-03-19 19:46:44 -04:00
98a68f5cd9 Step file unfuck ci (#5891)
* remove the files

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* remove step shit from kcl-samples

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-19 16:43:10 -07:00
33dc254e43 Fix yarn build:wasm to format generated files (#5889) 2025-03-19 23:29:27 +00:00
b54295f2f7 get common edge (#5869)
* get common edge

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fmt

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add get common edge

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-20 09:12:27 +11:00
a7e09a89ef Improve snapshot testing (#5856)
* Improve snapshot testing

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-19 15:06:27 -07:00
4b6166dc4f fix no profile errors (#5877)
* fix no profile errors

* add test and tweak a couple things

* quick fix

* fix animation

* add another test

* Use actor.getSnapshot in the debug function

So we don't have to rebuild that listener every time that the state
changes.

* try fix tests

---------

Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
2025-03-20 08:30:11 +11:00
e7d00f148b transform after fillet bug fix (#5882)
* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* rotate

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* its not jsut translate

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* its not jsut translate

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-19 12:28:56 -07:00
d19a7df7e8 Tag and name end and start caps (#5874)
* initial commit

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* update for revolve

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-19 19:18:19 +00:00
45fae52afc bump kcl friends (#5887)
* bump kcl friends

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* update lock

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-19 11:22:36 -07:00
270f173aad fix unwrap causing panic (#5886)
updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-19 10:19:19 -07:00
ddcff1ba63 Fix the dev target dependency name (#5879) 2025-03-19 16:49:15 +00:00
max
cb1b08d6b6 Add modelingWorkflows module with resilient update pattern for adding features (#5821)
* rule them all

* swap AST updater

* add test

* yellow colour fix

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-19 17:48:29 +01:00
533fa749b2 Add ability to create named constant without code (#5840)
* Add support for forcing kcl input create variable

* Command palette padding tweak

* Make traverse function work for ExpressionStatements

* Add utilities for getting earliest safe index in AST

* Fix the insertIndex logic to not be based on the selection anymore

* Add workflow to create a named constant

* Fix bug with nameEndInDigits matcher

* Tweak command config

* Add a three-dot menu to feature tree pane to create parameters

* Add E2E test for create parameter flow

* Remove edit flow oops

* Fix tsc error

* Fix E2E test

* Update named constant position in edit flow test

* Add tags into consideration for safe insert index

Per @Irev-dev's helpful feedback, with unit tests!
2025-03-19 15:58:53 +00:00
af492d2cb6 Add 9 test fixmes (#5872)
* Add 4 test fixmes

* Add 3 more test fixmes

* Another one

* Last one yo
2025-03-19 07:58:55 -04:00
26fba71abf Revolve changed to kw args (#5873)
* initial port

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix e2e

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* update js side

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-18 20:34:44 -07:00
859bfc7b28 move export to the rust side to make the interface way more clean (#5855)
* move export

Signed-off-by: Jess Frazelle <github@jessfraz.com>

testing

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove debugs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix main

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fices

Signed-off-by: Jess Frazelle <github@jessfraz.com>

get rid of logs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* Convert async actions anti-pattern to fromPromise actors

* Fix tsc by removing a generic type

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* Update rustContext.ts

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* remove weird file

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
2025-03-18 20:25:51 -07:00
3b1d1307c4 transform a sketch (#5867)
* transform a sketch

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-18 16:36:48 -07:00
f5a2c84ce2 Revolve around sketch line (#5870)
* show we can revolve around paths

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* show we can revolve around paths

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-18 13:51:24 -07:00
cccb71fd30 Set initial window size depending on screen size (#5845)
* set initial electron window size to be almost full screen with some space left

* refine initial window size and position

* slightly larger

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

* A snapshot a day keeps the bugs away! 📷🐛

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-18 15:39:04 -04:00
44be072d04 Fix deep links and double clicks on second instance (#5865)
* Deep links or double clicks don't work on second instance on Windows
Fixes #5864

* A snapshot a day keeps the bugs away! 📷🐛

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-18 15:17:21 -04:00
86beb6ebf1 Improve local setup instructions (#5860)
* Fix overwrite confirmation on existing wasm-pack

* Recommend using local .env for overrides
2025-03-18 14:39:02 -04:00
6d72104faa fix unused vars and imports (#5852)
* update eslintrc, and fix most of the errors

* more

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix last one

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-18 09:52:10 -07:00
1015 changed files with 267322 additions and 712832 deletions

View File

@ -22,6 +22,13 @@
"rules": {
"@typescript-eslint/no-floating-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/no-autofocus": "off",
"jsx-a11y/no-noninteractive-element-interactions": "off",

View File

@ -230,39 +230,6 @@ updates:
update-types:
- minor
- 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
directory: /rust/kcl-python-bindings
schedule:

View File

@ -100,9 +100,14 @@ jobs:
shell: bash
run: |
set -euo pipefail
cd rust
pushd rust
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.name "github-actions[bot]"
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git

View File

@ -325,6 +325,7 @@ jobs:
run: yarn
- name: Cache Playwright Browsers
if: needs.conditions.outputs.should-run == 'true'
uses: actions/cache@v4
with:
path: |
@ -332,6 +333,7 @@ jobs:
key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }}
- name: Install Playwright Browsers
if: needs.conditions.outputs.should-run == 'true'
run: yarn playwright install --with-deps
- name: Build web

View File

@ -4,7 +4,7 @@ KCL_WASM_LIB_FILES := $(wildcard rust/**/*.rs)
TS_SRC := $(wildcard src/**/*.tsx) $(wildcard src/**/*.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
# I'm sorry this is so specific to my setup you may as well ignore this.

View File

@ -105,7 +105,7 @@ Finally, to run the web app only, run:
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
@ -122,7 +122,7 @@ Third-Party Cookies".
## 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
@ -130,13 +130,13 @@ yarn tron:start
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
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:

View File

@ -54,7 +54,7 @@ example = extrude(exampleSketch, length = 5)
// Add color to a revolved solid.
sketch001 = startSketchOn('XY')
|> circle(center = [15, 0], radius = 5)
|> revolve({ angle = 360, axis = 'y' }, %)
|> revolve(angle = 360, axis = 'y')
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
```
@ -184,7 +184,6 @@ example = extrude(exampleSketch, length = 1)
```js
// Color the result of a sweep.
// Create a path for the sweep.
sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %)

View File

@ -12,6 +12,8 @@ You can provide more than one sketch to extrude, and they will all be extruded i
extrude(
sketches: [Sketch],
length: number,
tagStart?: TagDeclarator,
tagEnd?: TagDeclarator,
): [Solid]
```
@ -22,6 +24,8 @@ extrude(
|----------|------|-------------|----------|
| `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 |
| `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

54
docs/kcl/getCommonEdge.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -65,6 +65,7 @@ layout: manual
* [`fillet`](kcl/fillet)
* [`floor`](kcl/floor)
* [`ft`](kcl/ft)
* [`getCommonEdge`](kcl/getCommonEdge)
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
* [`getOppositeEdge`](kcl/getOppositeEdge)
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)

50
docs/kcl/intersect.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,8 @@ loft(
bezApproximateRational: bool,
baseCurveIndex?: integer,
tolerance?: number,
tagStart?: TagDeclarator,
tagEnd?: TagDeclarator,
): 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 |
| `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 |
| `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

View File

@ -52,7 +52,6 @@ fn sum(arr):
sumSoFar = add(sumSoFar, i)
return sumSoFar */
// We use `assertEqual` to check that our `sum` function gives the
// expected result. It's good to check your work!
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
return fullDecagon */
// Use the `decagon` function declared above, to sketch a decagon with radius 5.
decagon(5.0)
|> close()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,10 @@
---
title: "scale"
excerpt: "Scale a solid."
excerpt: "Scale a solid or a sketch."
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.
@ -12,10 +12,10 @@ If you want to apply the transform in global space, set `global` to `true`. The
```js
scale(
solids: SolidOrImportedGeometry,
objects: SolidOrSketchOrImportedGeometry,
scale: [number],
global?: bool,
): SolidOrImportedGeometry
): SolidOrSketchOrImportedGeometry
```
@ -23,13 +23,13 @@ scale(
| 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 |
| `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
[`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
@ -37,7 +37,6 @@ scale(
```js
// Scale a pipe.
// Create a path for the sweep.
sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %)

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

56
docs/kcl/subtract.md Normal file

File diff suppressed because one or more lines are too long

View File

@ -16,6 +16,8 @@ sweep(
path: SweepPath,
sectional?: bool,
tolerance?: number,
tagStart?: TagDeclarator,
tagEnd?: TagDeclarator,
): [Solid]
```
@ -28,6 +30,8 @@ sweep(
| `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 |
| `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
@ -39,7 +43,6 @@ sweep(
```js
// Create a pipe using a sweep.
// Create a path for the sweep.
sweepPath = startSketchOn('XZ')
|> startProfileAt([0.05, 0.05], %)
@ -64,7 +67,6 @@ sweepSketch = startSketchOn('XY')
```js
// Create a spring by sweeping around a helix path.
// Create a helix around the Z axis.
helixPath = helix(
angleStart = 0,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View 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

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@ import { test, expect } from './zoo-test'
import * as fsp from 'fs/promises'
import { executorInputPath, getUtils } from './test-utils'
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
import path from 'path'
import path, { join } from 'path'
test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
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'])
})
})
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`
)
})
})

View File

@ -100,7 +100,8 @@ test(
try {
const outputGltf = await fsp.readFile(firstFileFullPath)
return outputGltf.byteLength
} catch (e) {
} catch (error: unknown) {
void error
return 0
}
},
@ -179,7 +180,8 @@ test(
try {
const outputGltf = await fsp.readFile(secondFileFullPath)
return outputGltf.byteLength
} catch (e) {
} catch (error: unknown) {
void error
return 0
}
},

View File

@ -726,10 +726,10 @@ test.describe('Editor tests', { tag: ['@skipWin'] }, () => {
|> line(end = [2, 0])
|> line(end = [0, -10])
|> close()
|> revolve({
axis: revolveAxis,
angle: 90
}, %)
|> revolve(
axis = revolveAxis,
angle = 90
)
`
)
})

View File

@ -21,7 +21,7 @@ sketch001 = startSketchOn('XZ')
|> angledLine([-45, length001], %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
revolve001 = revolve({ axis = "X" }, sketch001)
revolve001 = revolve(sketch001, axis = "X")
triangle()
|> extrude(length = 30)
plane001 = offsetPlane('XY', offset = 10)
@ -126,7 +126,7 @@ test.describe('Feature Tree pane', () => {
await testViewSource({
operationName: 'Revolve',
operationIndex: 0,
expectedActiveLine: 'revolve001 = revolve({ axis = "X" }, sketch001)',
expectedActiveLine: 'revolve001 = revolve(sketch001, axis = "X")',
})
await testViewSource({
operationName: 'Triangle',
@ -231,9 +231,9 @@ test.describe('Feature Tree pane', () => {
|> circle(center = [0, 0], radius = 5)
renamedExtrude = extrude(sketch001, length = ${initialInput})`
const newConstantName = 'distance001'
const expectedCode = `sketch001 = startSketchOn('XZ')
const expectedCode = `${newConstantName} = 23
sketch001 = startSketchOn('XZ')
|> circle(center = [0, 0], radius = 5)
${newConstantName} = 23
renamedExtrude = extrude(sketch001, length = ${newConstantName})`
await context.folderSetupFn(async (dir) => {

View File

@ -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`,
{ tag: '@electron' },
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 finalDir = join(dir, 'testDefault')

View File

@ -152,9 +152,15 @@ export class EditorFixture {
}
replaceCode = async (findCode: string, replaceCode: string) => {
const lines = await this.page.locator('.cm-line').all()
let code = (await Promise.all(lines.map((c) => c.textContent()))).join('\n')
if (!findCode) {
// nuke everything
code = replaceCode
} else {
if (!lines) return
code = code.replace(findCode, replaceCode)
}
await this.codeContent.fill(code)
}
checkIfPaneIsOpen() {

View File

@ -3,25 +3,15 @@
import type {
BrowserContext,
ElectronApplication,
Fixtures as PlaywrightFixtures,
TestInfo,
Page,
} from '@playwright/test'
import {
_electron as electron,
PlaywrightTestArgs,
PlaywrightWorkerArgs,
} from '@playwright/test'
import { _electron as electron } from '@playwright/test'
import * as TOML from '@iarna/toml'
import {
TEST_SETTINGS_KEY,
TEST_SETTINGS_CORRUPTED,
TEST_SETTINGS,
TEST_SETTINGS_DEFAULT_THEME,
} from '../storageStates'
import { SETTINGS_FILE_NAME, PROJECT_SETTINGS_FILE_NAME } from 'lib/constants'
import { TEST_SETTINGS } from '../storageStates'
import { SETTINGS_FILE_NAME } from 'lib/constants'
import { getUtils, setup } from '../test-utils'
import fsp from 'fs/promises'
import fs from 'node:fs'
@ -31,7 +21,6 @@ import { EditorFixture } from './editorFixture'
import { ToolbarFixture } from './toolbarFixture'
import { SceneFixture } from './sceneFixture'
import { HomePageFixture } from './homePageFixture'
import { unsafeTypedKeys } from 'lib/utils'
import { DeepPartial } from 'lib/types'
import { Settings } from '@rust/kcl-lib/bindings/Settings'
@ -278,13 +267,14 @@ export class ElectronZoo {
if (fs.existsSync(this.projectDirName)) {
await fsp.rm(this.projectDirName, { recursive: true })
}
} catch (e) {
console.error(e)
} catch (_e) {
console.error(_e)
}
try {
await fsp.mkdir(this.projectDirName)
} catch (e) {
} catch (error: unknown) {
void error
// Not a problem if it already exists.
}

View File

@ -850,12 +850,9 @@ openSketch = startSketchOn('XY')
})
})
test(`Shift-click to select and deselect sketch segments`, async ({
page,
homePage,
scene,
editor,
}) => {
test.fixme(
`Shift-click to select and deselect sketch segments`,
async ({ page, homePage, scene, editor }) => {
// Locators
const firstPointLocation = { x: 200, y: 100 }
const secondPointLocation = { x: 800, y: 100 }
@ -1002,7 +999,8 @@ openSketch = startSketchOn('XY')
)
})
})
})
}
)
test(`Offset plane point-and-click`, async ({
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 ({
context,
page,
@ -1906,7 +2017,6 @@ extrude001 = extrude(sketch001, length = -12)
// Locators
const firstEdgeLocation = { x: 600, y: 193 }
const secondEdgeLocation = { x: 600, y: 383 }
const bodyLocation = { x: 630, y: 290 }
const [clickOnFirstEdge] = scene.makeMouseHelpers(
firstEdgeLocation.x,
firstEdgeLocation.y
@ -1919,7 +2029,6 @@ extrude001 = extrude(sketch001, length = -12)
// Colors
const edgeColorWhite: [number, number, number] = [248, 248, 248]
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 backgroundColor: [number, number, number] = [30, 30, 30]
const lowTolerance = 20
@ -2812,7 +2921,7 @@ segAng(rectangleSegmentA002),
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()
})
test('revolve surface around edge from an extruded solid2d', async ({
@ -2862,7 +2971,7 @@ radius = 8.69
await page.getByText(lineCodeToSelection).click()
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()
})
test('revolve sketch circle around line segment from startProfileAt sketch', async ({
@ -2913,7 +3022,7 @@ radius = 8.69
await page.getByText(lineCodeToSelection).click()
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()
})
})

View File

@ -539,7 +539,8 @@ test.describe('Can export from electron app', () => {
try {
const outputGltf = await fsp.readFile(filepath)
return outputGltf.byteLength
} catch (e) {
} catch (error: unknown) {
void error
return 0
}
},

View File

@ -196,14 +196,9 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
})
})
test(`manual code selection rename`, async ({
context,
homePage,
cmdBar,
editor,
page,
scene,
}) => {
test.fixme(
`manual code selection rename`,
async ({ context, homePage, cmdBar, editor, page, scene }) => {
const body1CapCoords = { x: 571, y: 311 }
await context.addInitScript((file) => {
@ -253,7 +248,8 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
await acceptBtn.click()
await expect(successToast).not.toBeVisible()
})
})
}
)
test('multiple body selections', async ({
context,

View File

@ -405,8 +405,9 @@ extrude001 = extrude(sketch001, length = 50)
await expect(successToastMessage).toBeVisible()
}
)
// We updated this test such that you can have multiple exports going at once.
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'] },
async ({ page, homePage }) => {
const u = await getUtils(page)
@ -441,22 +442,13 @@ extrude001 = extrude(sketch001, length = 50)
const alreadyExportingToastMessage = page.getByText(`Already exporting`)
const successToastMessage = page.getByText(`Exported successfully`)
await test.step('Blocked second export', async () => {
await test.step('second export', async () => {
await clickExportButton(page)
await expect(exportingToastMessage).toBeVisible()
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 Promise.all([
expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }),
@ -486,12 +478,12 @@ extrude001 = extrude(sketch001, length = 50)
expect(alreadyExportingToastMessage).not.toBeVisible(),
])
await expect(successToastMessage).toBeVisible()
await expect(successToastMessage).toHaveCount(2)
})
}
)
test(
test.fixme(
`Network health indicator only appears in modeling view`,
{ tag: '@electron' },
async ({ context, page }, testInfo) => {

View File

@ -14,7 +14,8 @@ try {
// prefer env vars over secrets file
secrets[key] = process.env[key] || (value as any).replaceAll('"', '')
})
} catch (err) {
} catch (error: unknown) {
void error
// probably running in CI
console.warn(
`Error reading ${secretsPath}; environment variables will be used`

View File

@ -187,7 +187,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
page.getByRole('button', { name: 'Start Sketch' })
).toBeVisible()
})
test.describe('Can edit segments by dragging their handles', () => {
test.fixme('Can edit segments by dragging their handles', () => {
const doEditSegmentsByDraggingHandle = async (
page: Page,
homePage: HomePageFixture,
@ -666,7 +666,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %)
|> close()
|> revolve({ axis = "X",}, %)`
|> revolve(axis = "X")`
)
})
@ -753,7 +753,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> tangentialArcTo([24.95, -5.38], %)
|> line(end = [1.97, 2.06])
|> close()
|> revolve({ axis = "X" }, %)`)
|> revolve(axis = "X")`)
})
test('Can add multiple sketches', async ({ page, homePage }) => {
const u = await getUtils(page)
@ -1200,7 +1200,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|> xLine(endAbsolute = 0 + .001)
|> yLine(endAbsolute = 0)
|> close()
|> revolve({ axis = "Y" }, %)
|> revolve(axis = "Y")
return lugSketch
}
@ -1454,7 +1454,7 @@ test.describe(`Sketching with offset planes`, () => {
})
test.describe('multi-profile sketching', () => {
test(
test.fixme(
`test it removes half-finished expressions when changing tools in sketch mode`,
{ tag: ['@skipWin'] },
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 ({
scene,
toolbar,
@ -2570,10 +2660,11 @@ profile006 = startProfileAt([9.65, 3.82], sketch002)
|> line(end = [2.13, -5.57])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
revolve001 = revolve({
revolve001 = revolve(
profile004,
angle = 45,
axis = getNextAdjacentEdge(seg01)
}, profile004)
)
extrude002 = extrude(profile006, length = 4)
sketch003 = startSketchOn('-XZ')
profile007 = startProfileAt([4.8, 7.55], sketch003)
@ -2608,7 +2699,7 @@ profile011 = startProfileAt([5.07, -6.39], sketch003)
|> close()
extrude003 = extrude(profile011, length = 2.5)
// 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: -54, y: -476, z: 148 }
)
const camPositionForSelectingSketchOnCapProfiles = () =>
scene.moveCameraTo(
{ x: 404, y: 690, z: 38 },
{ x: 16, y: -140, z: -10 }
)
const wallSelectionOptions = [
{
title: 'select wall segment',
@ -2653,29 +2739,6 @@ extrude003 = extrude(profile011, length = 2.5)
selectClick: scene.makeMouseHelpers(836, 103)[0],
},
] 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 () =>
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 () => {
for (const { title, selectClick } of wallSelectionOptions) {
await test.step(title, async () => {

View File

@ -7,12 +7,7 @@ import { spawn } from 'child_process'
import { KCL_DEFAULT_LENGTH } from 'lib/constants'
import JSZip from 'jszip'
import path from 'path'
import {
IS_PLAYWRIGHT_KEY,
TEST_SETTINGS,
TEST_SETTINGS_KEY,
} from './storageStates'
import * as TOML from '@iarna/toml'
import { TEST_SETTINGS, TEST_SETTINGS_KEY } from './storageStates'
import { SceneFixture } from './fixtures/sceneFixture'
import { CmdBarFixture } from './fixtures/cmdBarFixture'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -1,4 +1,3 @@
import { MouseControlType } from '@rust/kcl-lib/bindings/MouseControlType'
import { Settings } from '@rust/kcl-lib/bindings/Settings'
import { SaveSettingsPayload } from 'lib/settings/settingsTypes'
import { Themes } from 'lib/theme'
@ -143,10 +142,10 @@ sketch001 = startSketchOn(box, revolveAxis)
|> line(end = [2, 0])
|> line(end = [0, -10])
|> close()
|> revolve({
axis: revolveAxis,
angle: 90
}, %)
|> revolve(
axis = revolveAxis,
angle = 90
)
sketch001 = startSketchOn('XZ')
|> startProfileAt([0.0, 0.0], %)

View File

@ -3,7 +3,7 @@ import { commonPoints, getUtils } from './test-utils'
import { EngineCommand } from 'lang/std/artifactGraph'
import { uuidv4 } from 'lib/utils'
test.describe('Test network and connection issues', () => {
test.fixme('Test network and connection issues', () => {
test(
'simulate network down and network little widget',
{ tag: '@skipLocalEngine' },

View File

@ -2,15 +2,12 @@ import {
expect,
BrowserContext,
TestInfo,
_electron as electron,
ElectronApplication,
Locator,
Page,
} from '@playwright/test'
import { test } from './zoo-test'
import { EngineCommand } from 'lang/std/artifactGraph'
import fsp from 'fs/promises'
import fsSync from 'fs'
import path from 'path'
import pixelMatch from 'pixelmatch'
import { PNG } from 'pngjs'
@ -24,14 +21,11 @@ import {
IS_PLAYWRIGHT_KEY,
} from './storageStates'
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 { isArray } from 'lib/utils'
import { reportRejection } from 'lib/trap'
import { DeepPartial } from 'lib/types'
import { Configuration } from 'lang/wasm'
import { Settings } from '@rust/kcl-lib/bindings/Settings'
const toNormalizedCode = (text: string) => {
return text.replace(/\s+/g, '')
@ -928,10 +922,6 @@ export async function setup(
// await page.reload()
}
let electronApp: ElectronApplication | undefined = undefined
let context: BrowserContext | undefined = undefined
let page: Page | undefined = undefined
function failOnConsoleErrors(page: Page, testInfo?: TestInfo) {
// enabled for chrome for now
if (page.context().browser()?.browserType().name() === 'chromium') {

View File

@ -4,7 +4,6 @@ import { bracket } from 'lib/exampleKcl'
import * as fsp from 'fs/promises'
import { join } from 'path'
import { FILE_EXT } from 'lib/constants'
import { UnitLength_type } from '@kittycad/lib/dist/types/src/models'
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 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 u.openKclCodePanel()
@ -125,8 +122,6 @@ test.describe('Testing in-app sample loading', () => {
page.getByRole('listitem').filter({
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 page.setBodyDimensions({ width: 1200, height: 500 })

View File

@ -1386,7 +1386,8 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
page.getByRole('button', { name: 'Edit Sketch' })
).toBeVisible()
return true
} catch (_) {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (_e) {
return false
}
})

View File

@ -323,7 +323,7 @@ part009 = startSketchOn('XY')
|> line(end = [0, pipeLength])
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|> close()
rev = revolve({ axis = 'y' }, part009)
rev = revolve(part009, axis = 'y')
sketch006 = startSketchOn('XY')
profile001 = circle(
sketch006,
@ -353,6 +353,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await scene.connectionEstablished()
await scene.settled(cmdBar)
const camPosition1 = async () => {
@ -364,7 +365,6 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await camPosition1()
const revolve = { x: 635, y: 253 }
const parentExtrude = { x: 915, y: 133 }
const solid2d = { x: 770, y: 167 }
const individualProfile = { x: 694, y: 432 }
@ -380,7 +380,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await page.waitForTimeout(200)
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
@ -452,13 +452,9 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await page.waitForTimeout(200)
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
})
test('parent Solid should be select and deletable and uses custom planes to position children', async ({
page,
homePage,
scene,
cmdBar,
editor,
}) => {
test.fixme(
'parent Solid should be select and deletable and uses custom planes to position children',
async ({ page, homePage, scene, cmdBar, editor }) => {
test.setTimeout(90_000)
const u = await getUtils(page)
await page.addInitScript(async () => {
@ -522,7 +518,8 @@ profile001 = startProfileAt([7.49, 9.96], sketch001)
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 ({
page,
homePage,

View File

@ -7,7 +7,7 @@ import {
createProject,
tomlToSettings,
} 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 {
TEST_SETTINGS_KEY,
@ -15,7 +15,6 @@ import {
TEST_SETTINGS,
TEST_SETTINGS_DEFAULT_THEME,
} from './storageStates'
import * as TOML from '@iarna/toml'
import { DeepPartial } from 'lib/types'
import { Settings } from '@rust/kcl-lib/bindings/Settings'
@ -978,14 +977,9 @@ fn cube`
/**
* This test assumes that the default value of the "highlight edges" setting is "on".
*/
test(`Toggle stream settings multiple times`, async ({
page,
scene,
homePage,
context,
toolbar,
cmdBar,
}, testInfo) => {
test.fixme(
`Toggle stream settings multiple times`,
async ({ page, scene, homePage, context, toolbar, cmdBar }, testInfo) => {
await context.folderSetupFn(async (dir) => {
const projectDir = join(dir, 'project-000')
await fsp.mkdir(projectDir, { recursive: true })
@ -1006,11 +1000,6 @@ fn cube`
page.getByText(
`Set highlight edges to "${String(value)}" as a user default`
)
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()
@ -1045,5 +1034,6 @@ fn cube`
mask: [page.getByTestId('model-state-indicator')],
}
)
})
}
)
})

View File

@ -619,7 +619,7 @@ async function sendPromptFromCommandBar(page: Page, promptStr: string) {
})
}
test(
test.fixme(
'Text-to-CAD functionality',
{ tag: '@electron' },
async ({ context, page }, testInfo) => {

View File

@ -1,6 +1,6 @@
/* eslint-disable react-hooks/rules-of-hooks */
import { test as playwrightTestFn, ElectronApplication } from '@playwright/test'
import { test as playwrightTestFn } from '@playwright/test'
import {
fixturesBasedOnProcessEnvPlatform,
@ -8,8 +8,6 @@ import {
ElectronZoo,
} from './fixtures/fixtureSetup'
import { Settings } from '@rust/kcl-lib/bindings/Settings'
import { DeepPartial } from 'lib/types'
export { expect } from '@playwright/test'
declare module '@playwright/test' {

View File

@ -36,6 +36,7 @@
"@xstate/inspect": "^0.8.0",
"@xstate/react": "^4.1.1",
"bonjour-service": "^1.3.0",
"bson": "^6.10.3",
"chokidar": "^4.0.1",
"codemirror": "^6.0.1",
"decamelize": "^6.0.0",
@ -71,7 +72,7 @@
"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: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:tools:windows": "winget install jqlang.jq MikeFarah.yq GitHub.cli",
"start": "vite --port=3000 --host=0.0.0.0",
@ -87,12 +88,13 @@
"simpleserver:ci": "yarn pretest && http-server ./public --cors -p 3000 &",
"simpleserver:bg": "yarn pretest && http-server ./public --cors -p 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",
"fetch:wasm": "./scripts/get-latest-wasm-bundle.sh",
"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",
"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: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\"",
@ -212,6 +214,7 @@
"typescript-eslint": "^8.26.1",
"vite": "^5.4.12",
"vite-plugin-package-version": "^1.1.0",
"vite-plugin-top-level-await": "^1.5.0",
"vite-tsconfig-paths": "^4.3.2",
"vitest": "^1.6.1",
"vitest-webgl-canvas-mock": "^1.1.0",

View File

@ -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.
---
#### [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](screenshots/80-20-rail.png)](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](screenshots/a-parametric-bearing-pillow-block.png)](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](screenshots/ball-bearing.png)](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](screenshots/bench.png)](bench/main.kcl)
#### [bracket](bracket/main.kcl) ([step](step/bracket.step)) ([screenshot](screenshots/bracket.png))
#### [bracket](bracket/main.kcl) ([screenshot](screenshots/bracket.png))
[![bracket](screenshots/bracket.png)](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](screenshots/car-wheel-assembly.png)](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](screenshots/color-cube.png)](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](screenshots/cycloidal-gear.png)](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](screenshots/dodecahedron.png)](dodecahedron/main.kcl)
#### [enclosure](enclosure/main.kcl) ([step](step/enclosure.step)) ([screenshot](screenshots/enclosure.png))
#### [enclosure](enclosure/main.kcl) ([screenshot](screenshots/enclosure.png))
[![enclosure](screenshots/enclosure.png)](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](screenshots/exhaust-manifold.png)](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](screenshots/flange.png)](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](screenshots/focusrite-scarlett-mounting-bracket.png)](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](screenshots/food-service-spatula.png)](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](screenshots/french-press.png)](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](screenshots/gear.png)](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](screenshots/gear-rack.png)](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](screenshots/gridfinity-baseplate.png)](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](screenshots/gridfinity-baseplate-magnets.png)](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](screenshots/gridfinity-bins.png)](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](screenshots/gridfinity-bins-stacking-lip.png)](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](screenshots/hex-nut.png)](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](screenshots/i-beam.png)](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](screenshots/keyboard.png)](keyboard/main.kcl)
#### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png))
[![kitt](screenshots/kitt.png)](kitt/main.kcl)
#### [lego](lego/main.kcl) ([step](step/lego.step)) ([screenshot](screenshots/lego.png))
#### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png))
[![lego](screenshots/lego.png)](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](screenshots/mounting-plate.png)](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](screenshots/multi-axis-robot.png)](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](screenshots/pipe.png)](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](screenshots/pipe-flange-assembly.png)](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](screenshots/pipe-with-bend.png)](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](screenshots/poopy-shoe.png)](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](screenshots/router-template-cross-bar.png)](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](screenshots/router-template-slate.png)](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](screenshots/sheet-metal-bracket.png)](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](screenshots/socket-head-cap-screw.png)](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](screenshots/walkie-talkie.png)](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](screenshots/washer.png)](washer/main.kcl)

View File

@ -41,7 +41,7 @@ ballsSketch = startSketchOn("XY")
|> close()
// Revolve the ball to make a sphere and pattern around the inside wall
balls = revolve({ axis = "X" }, ballsSketch)
balls = revolve(ballsSketch, axis = "X")
|> patternCircular3d(
arcDegrees = 360,
axis = [0, 0, 1],
@ -66,7 +66,7 @@ chainSketch = startSketchOn("XY")
|> close()
// Revolve the chain sketch
chainHead = revolve({ axis = "X" }, chainSketch)
chainHead = revolve(chainSketch, axis = "X")
|> patternCircular3d(
arcDegrees = 360,
axis = [0, 0, 1],
@ -86,7 +86,7 @@ linkSketch = startSketchOn("XZ")
)
// Revolve the link sketch
linkRevolve = revolve({ axis = 'Y', angle = 360 / nBalls }, linkSketch)
linkRevolve = revolve(linkSketch, axis = 'Y', angle = 360 / nBalls)
|> patternCircular3d(
arcDegrees = 360,
axis = [0, 0, 1],

View File

@ -82,5 +82,5 @@ brakeCaliperSketch = startSketchOn('XY')
|> close()
// Revolve the brake caliper sketch
revolve({ axis = "Y", angle = -70 }, brakeCaliperSketch)
revolve(brakeCaliperSketch, axis = "Y", angle = -70)
|> appearance(color = "#c82d2d", metalness = 90, roughness = 90)

View File

@ -40,5 +40,5 @@ tireSketch = startSketchOn("XY")
|> close()
// Revolve the sketch to create the tire
revolve({ axis = "Y" }, tireSketch)
revolve(tireSketch, axis = "Y")
|> appearance(color = "#0f0f0f", roughness = 80)

View File

@ -74,7 +74,7 @@ wheelCenterInner = startSketchOn('XY')
|> yLine(endAbsolute = 0)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
wheelCenterOuter = startSketchOn('XY')
@ -88,7 +88,7 @@ wheelCenterOuter = startSketchOn('XY')
|> yLine(endAbsolute = -wheelWidth / 20)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)
// Write a function that defines the spoke geometry, patterns and extrudes it
@ -193,5 +193,5 @@ startSketchOn('XY')
|> xLine(length = wheelWidth * 0.03)
|> yLine(length = wheelWidth * 0.05)
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
|> appearance(color = "#ffffff", metalness = 0, roughness = 0)

View File

@ -34,7 +34,7 @@ fn lug(plane, length, diameter) {
|> xLine(endAbsolute = lugThreadDiameter)
|> yLine(endAbsolute = 0)
|> close()
|> revolve({ axis = "Y" }, %)
|> revolve(axis = "Y")
|> appearance(color = "#dbcd70", roughness = 90, metalness = 90)
return lugSketch
}

View File

@ -23,7 +23,7 @@ sketch001 = startSketchOn('XZ')
], %, $rectangleSegmentC001)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ angle = 360, axis = 'Y' }, %)
|> revolve(angle = 360, axis = 'Y')
// Create an angled plane to sketch the supports
plane001 = {
@ -135,7 +135,7 @@ sketch005 = startSketchOn('XZ')
|> xLine(endAbsolute = 0.15)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
// Plunger and stem
sketch006 = startSketchOn('XZ')
@ -148,7 +148,7 @@ sketch006 = startSketchOn('XZ')
|> tangentialArc({ radius = 0.6, offset = -90 }, %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
// Spiral plate
sketch007 = startSketchOn(offsetPlane('XY', offset = 1.12))
@ -210,7 +210,7 @@ sketch011 = startSketchOn('XZ')
}, %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
|> revolve({ axis = 'y' }, %)
|> revolve(axis = 'y')
// Draw and extrude handle
sketch012 = startSketchOn(offsetPlane('XZ', offset = handleThickness / 2))

View File

@ -55,7 +55,7 @@ axis000 = {
}
// 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
corners = patternCircular3d(

View File

@ -52,7 +52,7 @@ axis000 = {
}
// 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
corners = patternCircular3d(

View File

@ -75,7 +75,7 @@ axis000 = {
}
// 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
corners = patternCircular3d(
@ -291,10 +291,10 @@ axis001 = {
}
// 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
lipSingleWidthCorner = revolve({ angle = 90, axis = axis001 }, lipFace(plane002))
lipSingleWidthCorner = revolve(lipFace(plane002), angle = 90, axis = axis001)
// create the corners of the bin
lipCorners000 = patternCircular3d(

View File

@ -68,7 +68,7 @@ axis000 = {
}
// 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
corners = patternCircular3d(

View File

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

View File

@ -160,6 +160,13 @@
"title": "I-beam",
"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",
"pathFromProjectDirectoryToFirstFile": "kitt/main.kcl",
@ -198,7 +205,7 @@
{
"file": "main.kcl",
"pathFromProjectDirectoryToFirstFile": "pipe-flange-assembly/main.kcl",
"multipleFiles": false,
"multipleFiles": true,
"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."
},

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,304 +1,58 @@
// Pipe and Flange Assembly
// 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)
// import constants
import * from 'globals.kcl'
// Define constants
flangeThickness = .125
flangeBaseDia = 2
boreHeight = 1
flangePipeDia = 1
mountingHoleDia = 0.425
screwDia = 0.375
tol = 0.010
hexNutScale = 0.90
wallThickness = 0.5
screwLength = 1.125
washerThickness = 0.0625
screwStart = [
// import parts
import flange from '68095k348-flange.kcl'
import gasket from '9472k188-gasket.kcl'
import washer from '98017a257-washer.kcl'
import bolt from '91251a404-bolt.kcl'
import hexNut from '95479a127-hex-nut.kcl'
import pipe from '1120t74-pipe.kcl'
// place flanges
flange()
flange()
|> rotate(axis = [0, 1, 0], angle = 180)
|> translate(translate = [0, 0, flangeBackHeight*2 + gasketThickness])
// place gasket between the flanges
gasket()
|> translate(translate = [0, 0, -flangeBackHeight - gasketThickness])
// place eight washers (four front, four back)
washer()
|> translate(translate = [
mountingHolePlacementDiameter/2,
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
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)
screwPlane = {
plane = {
origin = {
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 }
}
}
// place four hex nuts
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)
fn capScrew(start, length, dia) {
headLength = dia // inch
wallToWallLength = hexRatio * dia
headDia = dia / capRatio
hexWallLength = wallToWallLength / 2 * 1 / cos(toRadians(30)) // inch
// place both pieces of pipe
pipe()
|> rotate(%, roll = -90, pitch = 0, yaw = 0)
|> translate(%, translate = [0, 0, flangeBaseThickness + flangeFrontHeight - 0.5], global = true)
// Length of Cap Head is always equal to diameter
capHeadLength = dia
// Create the head of the cap screw
screwHeadSketch = startSketchOn(screwPlane)
|> circle(
center = [0, 0],
radius = headDia / 2
)
// Extrude the screw head sketch
screwHead = extrude(screwHeadSketch, length = dia)
// 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")
pipe()
|> rotate(%, roll = 90, pitch = 0, yaw = 0)
|> translate(%, translate = [0, 0, -(flangeBackHeight * 2 + gasketThickness + flangeBaseThickness + flangeFrontHeight - 0.5)], global = true)

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -32,4 +32,4 @@ pipeProfile = outerProfile
|> hole(innerProfile, %)
// revolve the pipe profile at the desired angle
pipe = revolve({ axis = "Y", angle = bendAngle }, pipeProfile)
pipe = revolve(pipeProfile, axis = "Y", angle = bendAngle)

View File

@ -33,4 +33,4 @@ pipeSketch = startSketchOn('XY')
|> close()
// Revolve the sketch to create the pipe
pipe = revolve({ axis = 'y' }, pipeSketch)
pipe = revolve(pipeSketch, axis = 'y')

View File

@ -30,7 +30,8 @@ sketch001 = startSketchOn("-YZ")
|> yLine(endAbsolute = segEndY(seg01))
|> angledLineToY({ angle = 180 - 60, to = 0 }, %)
|> close()
part001 = revolve({
part001 = revolve(
sketch001,
angle = 90,
axis = {
custom = {
@ -38,7 +39,7 @@ part001 = revolve({
origin = [0.0, height + .0001]
}
}
}, sketch001)
)
sketch002 = startSketchOn('-YZ')
|> startProfileAt([wallsWidth / 2, 0], %)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 78 KiB

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