Add edge and segment selection in point-and-click Helix flow
Fixes #5393
4
.github/actions/github-release/package.json
vendored
@ -4,7 +4,7 @@
|
|||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.6",
|
"@actions/core": "^1.6",
|
||||||
"@actions/github": "^5.0",
|
"@actions/github": "^6.0",
|
||||||
"glob": "^7.1.5"
|
"glob": "^11.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
20
.github/ci-cd-scripts/playwright-electron.sh
vendored
@ -4,7 +4,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
if [[ ! -f "test-results/.last-run.json" ]]; then
|
if [[ ! -f "test-results/.last-run.json" ]]; then
|
||||||
# if no last run artifact, than run plawright normally
|
# If no last run artifact, than run Playwright normally
|
||||||
echo "run playwright normally"
|
echo "run playwright normally"
|
||||||
if [[ "$3" == *ubuntu* ]]; then
|
if [[ "$3" == *ubuntu* ]]; then
|
||||||
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn test:playwright:electron:ubuntu -- --shard=$1/$2 || true
|
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn test:playwright:electron:ubuntu -- --shard=$1/$2 || true
|
||||||
@ -13,18 +13,18 @@ if [[ ! -f "test-results/.last-run.json" ]]; then
|
|||||||
elif [[ "$3" == *macos* ]]; then
|
elif [[ "$3" == *macos* ]]; then
|
||||||
yarn test:playwright:electron:macos -- --shard=$1/$2 || true
|
yarn test:playwright:electron:macos -- --shard=$1/$2 || true
|
||||||
else
|
else
|
||||||
echo "Do not run playwright. Unable to detect os runtime."
|
echo "Do not run Playwright. Unable to detect os runtime."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# # send to axiom
|
# Log failures for Axiom to pick up
|
||||||
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
|
node playwrightProcess.mjs > /tmp/github-actions.log
|
||||||
fi
|
fi
|
||||||
|
|
||||||
retry=1
|
retry=1
|
||||||
max_retrys=1
|
max_retries=1
|
||||||
|
|
||||||
# retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues
|
# Retry failed tests, doing our own retries because using inbuilt Playwright retries causes connection issues
|
||||||
while [[ $retry -le $max_retrys ]]; do
|
while [[ $retry -le $max_retries ]]; do
|
||||||
if [[ -f "test-results/.last-run.json" ]]; then
|
if [[ -f "test-results/.last-run.json" ]]; then
|
||||||
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
|
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
|
||||||
if [[ $failed_tests -gt 0 ]]; then
|
if [[ $failed_tests -gt 0 ]]; then
|
||||||
@ -40,8 +40,8 @@ while [[ $retry -le $max_retrys ]]; do
|
|||||||
echo "Do not run playwright. Unable to detect os runtime."
|
echo "Do not run playwright. Unable to detect os runtime."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# send to axiom
|
# Log failures for Axiom to pick up
|
||||||
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
|
node playwrightProcess.mjs > /tmp/github-actions.log
|
||||||
retry=$((retry + 1))
|
retry=$((retry + 1))
|
||||||
else
|
else
|
||||||
echo "retried=false" >>$GITHUB_OUTPUT
|
echo "retried=false" >>$GITHUB_OUTPUT
|
||||||
@ -58,7 +58,7 @@ echo "retried=false" >>$GITHUB_OUTPUT
|
|||||||
if [[ -f "test-results/.last-run.json" ]]; then
|
if [[ -f "test-results/.last-run.json" ]]; then
|
||||||
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
|
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
|
||||||
if [[ $failed_tests -gt 0 ]]; then
|
if [[ $failed_tests -gt 0 ]]; then
|
||||||
# if it still fails after 3 retrys, then fail the job
|
# If it still fails after 3 retries, then fail the job
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
33
.github/dependabot.yml
vendored
@ -230,39 +230,6 @@ updates:
|
|||||||
update-types:
|
update-types:
|
||||||
- minor
|
- minor
|
||||||
- patch
|
- patch
|
||||||
- package-ecosystem: pip
|
|
||||||
directory: /public/kcl-samples
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
day: monday
|
|
||||||
time: '03:00'
|
|
||||||
timezone: America/Los_Angeles
|
|
||||||
open-pull-requests-limit: 5
|
|
||||||
reviewers:
|
|
||||||
- adamchalmers
|
|
||||||
- franknoirot
|
|
||||||
- irev-dev
|
|
||||||
- jessfraz
|
|
||||||
groups:
|
|
||||||
security:
|
|
||||||
applies-to: security-updates
|
|
||||||
update-types:
|
|
||||||
- major
|
|
||||||
- minor
|
|
||||||
- patch
|
|
||||||
patch:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- patch
|
|
||||||
major:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- major
|
|
||||||
minor:
|
|
||||||
applies-to: version-updates
|
|
||||||
update-types:
|
|
||||||
- minor
|
|
||||||
- patch
|
|
||||||
- package-ecosystem: pip
|
- package-ecosystem: pip
|
||||||
directory: /rust/kcl-python-bindings
|
directory: /rust/kcl-python-bindings
|
||||||
schedule:
|
schedule:
|
||||||
|
2
.github/workflows/build-and-store-wasm.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||||
with:
|
with:
|
||||||
cache: false # Configured below.
|
cache: false # Configured below.
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
- name: Rust Cache
|
- name: Rust Cache
|
||||||
|
2
.github/workflows/build-apps.yml
vendored
@ -77,7 +77,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: false # Configured below.
|
cache: false # Configured below.
|
||||||
|
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
if: ${{ steps.wasm.outputs.should-build-wasm == 'true' }}
|
if: ${{ steps.wasm.outputs.should-build-wasm == 'true' }}
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
|
9
.github/workflows/cargo-test.yml
vendored
@ -100,9 +100,14 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd rust
|
pushd rust
|
||||||
just overwrite-sim-test kcl_samples
|
just overwrite-sim-test kcl_samples
|
||||||
git add kcl-lib/tests
|
popd
|
||||||
|
git add \
|
||||||
|
rust/kcl-lib/tests \
|
||||||
|
public/kcl-samples/manifest.json \
|
||||||
|
public/kcl-samples/README.md \
|
||||||
|
public/kcl-samples/screenshots
|
||||||
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
git config --local user.name "github-actions[bot]"
|
git config --local user.name "github-actions[bot]"
|
||||||
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
|
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
|
||||||
|
22
.github/workflows/e2e-tests.yml
vendored
@ -137,7 +137,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: false # Configured below.
|
cache: false # Configured below.
|
||||||
|
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
if: ${{ needs.conditions.outputs.should-run == 'true' && steps.wasm.outputs.should-build-wasm == 'true' }}
|
if: ${{ needs.conditions.outputs.should-run == 'true' && steps.wasm.outputs.should-build-wasm == 'true' }}
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
@ -340,14 +340,22 @@ jobs:
|
|||||||
if: needs.conditions.outputs.should-run == 'true'
|
if: needs.conditions.outputs.should-run == 'true'
|
||||||
run: yarn tronb:vite:dev
|
run: yarn tronb:vite:dev
|
||||||
|
|
||||||
- name: Install good sed
|
- name: Install vector
|
||||||
if: startsWith(matrix.os, 'macos')
|
if: contains(matrix.os, 'ubuntu')
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
brew install gnu-sed
|
curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
|
||||||
echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
|
chmod +x /tmp/vector.sh
|
||||||
|
/tmp/vector.sh -y -no-modify-path
|
||||||
# TODO: Add back axiom logs
|
mkdir -p /tmp/vector
|
||||||
|
cp .github/workflows/vector.toml /tmp/vector.toml
|
||||||
|
sed -i "s#GITHUB_WORKFLOW#${GITHUB_WORKFLOW}#g" /tmp/vector.toml
|
||||||
|
sed -i "s#GITHUB_REPOSITORY#${GITHUB_REPOSITORY}#g" /tmp/vector.toml
|
||||||
|
sed -i "s#GITHUB_SHA#${GITHUB_SHA}#g" /tmp/vector.toml
|
||||||
|
sed -i "s#GITHUB_REF_NAME#${GITHUB_REF_NAME}#g" /tmp/vector.toml
|
||||||
|
sed -i "s#GH_ACTIONS_AXIOM_TOKEN#${{secrets.GH_ACTIONS_AXIOM_TOKEN}}#g" /tmp/vector.toml
|
||||||
|
cat /tmp/vector.toml
|
||||||
|
${HOME}/.vector/bin/vector --config /tmp/vector.toml &
|
||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
if: ${{ needs.conditions.outputs.should-run == 'true' && !cancelled() && (success() || failure()) }}
|
if: ${{ needs.conditions.outputs.should-run == 'true' && !cancelled() && (success() || failure()) }}
|
||||||
|
2
.github/workflows/kcl-language-server.yml
vendored
@ -376,7 +376,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
credentials_json: "${{ secrets.GOOGLE_CLOUD_DL_SA }}"
|
credentials_json: "${{ secrets.GOOGLE_CLOUD_DL_SA }}"
|
||||||
- name: Set up Cloud SDK
|
- name: Set up Cloud SDK
|
||||||
uses: google-github-actions/setup-gcloud@v2.1.2
|
uses: google-github-actions/setup-gcloud@v2.1.4
|
||||||
with:
|
with:
|
||||||
project_id: kittycadapi
|
project_id: kittycadapi
|
||||||
- name: "upload files to gcp"
|
- name: "upload files to gcp"
|
||||||
|
8
.github/workflows/static-analysis.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
node-version-file: '.nvmrc'
|
node-version-file: '.nvmrc'
|
||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
- run: yarn install
|
- run: yarn install
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
- run: yarn build:wasm
|
- run: yarn build:wasm
|
||||||
@ -57,7 +57,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
workspaces: './rust'
|
workspaces: './rust'
|
||||||
|
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
- run: yarn build:wasm
|
- run: yarn build:wasm
|
||||||
@ -100,7 +100,7 @@ jobs:
|
|||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
|
|
||||||
- run: yarn install
|
- run: yarn install
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
- run: yarn build:wasm
|
- run: yarn build:wasm
|
||||||
@ -129,7 +129,7 @@ jobs:
|
|||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
|
|
||||||
- run: yarn install
|
- run: yarn install
|
||||||
- uses: taiki-e/install-action@955a6ff1416eae278c9f833008a9beb4b7f9afe3
|
- uses: taiki-e/install-action@37bdc826eaedac215f638a96472df572feab0f9b
|
||||||
with:
|
with:
|
||||||
tool: wasm-pack
|
tool: wasm-pack
|
||||||
- run: yarn build:wasm
|
- run: yarn build:wasm
|
||||||
|
1
.gitignore
vendored
@ -50,6 +50,7 @@ e2e/playwright/**/*.png
|
|||||||
e2e/playwright/export-snapshots/*
|
e2e/playwright/export-snapshots/*
|
||||||
!e2e/playwright/export-snapshots/*.png
|
!e2e/playwright/export-snapshots/*.png
|
||||||
!e2e/playwright/snapshot-tests.spec.ts-snapshots/*.png
|
!e2e/playwright/snapshot-tests.spec.ts-snapshots/*.png
|
||||||
|
trace.zip
|
||||||
|
|
||||||
/public/kcl-samples.zip
|
/public/kcl-samples.zip
|
||||||
/public/kcl-samples/.github
|
/public/kcl-samples/.github
|
||||||
|
117
Makefile
@ -1,12 +1,110 @@
|
|||||||
.PHONY: dev
|
.PHONY: all
|
||||||
|
all: install build check
|
||||||
|
|
||||||
KCL_WASM_LIB_FILES := $(wildcard rust/**/*.rs)
|
###############################################################################
|
||||||
TS_SRC := $(wildcard src/**/*.tsx) $(wildcard src/**/*.ts)
|
# INSTALL
|
||||||
XSTATE_TYPEGENS := $(wildcard src/machines/*.typegen.ts)
|
|
||||||
|
|
||||||
dev: node_modules public/kcl_wasm_lib_bg.wasm $(XSTATE_TYPEGENS)
|
WASM_PACK ?= ~/.cargo/bin/wasm-pack
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install: node_modules/.yarn-integrity $(WASM_PACK) ## Install dependencies
|
||||||
|
|
||||||
|
node_modules/.yarn-integrity: package.json yarn.lock
|
||||||
|
yarn install
|
||||||
|
@ touch $@
|
||||||
|
|
||||||
|
$(WASM_PACK):
|
||||||
|
yarn install:rust
|
||||||
|
yarn install:wasm-pack:sh
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# BUILD
|
||||||
|
|
||||||
|
RUST_SOURCES := $(wildcard rust/*) $(wildcard rust/**/*)
|
||||||
|
TYPESCRIPT_SOURCES := $(wildcard src/**/*.tsx) $(wildcard src/**/*.ts)
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build: build-web build-desktop
|
||||||
|
|
||||||
|
.PHONY: build-web
|
||||||
|
build-web: public/kcl_wasm_lib_bg.wasm build/index.html
|
||||||
|
|
||||||
|
.PHONY: build-desktop
|
||||||
|
build-desktop: public/kcl_wasm_lib_bg.wasm .vite/build/main.js
|
||||||
|
|
||||||
|
public/kcl_wasm_lib_bg.wasm: $(RUST_SOURCES)
|
||||||
|
yarn build:wasm
|
||||||
|
|
||||||
|
build/index.html: $(TYPESCRIPT_SOURCES)
|
||||||
|
yarn build:local
|
||||||
|
|
||||||
|
.vite/build/main.js: $(TYPESCRIPT_SOURCES)
|
||||||
|
yarn tronb:vite:dev
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# CHECK
|
||||||
|
|
||||||
|
.PHONY: check
|
||||||
|
check: format lint
|
||||||
|
|
||||||
|
.PHONY: format
|
||||||
|
format: install ## Format the code
|
||||||
|
yarn fmt
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
|
lint: install ## Lint the code
|
||||||
|
yarn lint
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# RUN
|
||||||
|
|
||||||
|
.PHONY: run
|
||||||
|
run: run-web
|
||||||
|
|
||||||
|
.PHONY: run-web
|
||||||
|
run-web: install build-web ## Start the web app
|
||||||
yarn start
|
yarn start
|
||||||
|
|
||||||
|
.PHONY: run-desktop
|
||||||
|
run-desktop: install build-desktop ## Start the desktop app
|
||||||
|
yarn tron:start
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# TEST
|
||||||
|
|
||||||
|
GREP ?= ""
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: test-unit test-e2e
|
||||||
|
|
||||||
|
.PHONY: test-unit
|
||||||
|
test-unit: install ## Run the unit tests
|
||||||
|
@ nc -z localhost 3000 || ( echo "Error: localhost:3000 not available, 'make run-web' first" && exit 1 )
|
||||||
|
yarn test:unit
|
||||||
|
|
||||||
|
.PHONY: test-e2e
|
||||||
|
test-e2e: install build-desktop ## Run the e2e tests
|
||||||
|
yarn test:playwright:electron --workers=1 --grep=$(GREP)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# CLEAN
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: ## Delete all artifacts
|
||||||
|
rm -rf .vite/ build/
|
||||||
|
rm -rf trace.zip playwright-report/ test-results/
|
||||||
|
rm -rf public/kcl_wasm_lib_bg.wasm
|
||||||
|
rm -rf rust/*/bindings/ rust/*/pkg/ rust/target/
|
||||||
|
rm -rf node_modules/ rust/*/node_modules/
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help: install
|
||||||
|
@ grep -E '^[^[:space:]]+:.*## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
|
|
||||||
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
# I'm sorry this is so specific to my setup you may as well ignore this.
|
# I'm sorry this is so specific to my setup you may as well ignore this.
|
||||||
# This is so you don't have to deal with electron windows popping up constantly.
|
# This is so you don't have to deal with electron windows popping up constantly.
|
||||||
# It should work for you other Linux users.
|
# It should work for you other Linux users.
|
||||||
@ -14,12 +112,3 @@ lee-electron-test:
|
|||||||
Xephyr -br -ac -noreset -screen 1200x500 :2 &
|
Xephyr -br -ac -noreset -screen 1200x500 :2 &
|
||||||
DISPLAY=:2 NODE_ENV=development PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:4444/ yarn tron:test -g "when using the file tree"
|
DISPLAY=:2 NODE_ENV=development PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:4444/ yarn tron:test -g "when using the file tree"
|
||||||
killall Xephyr
|
killall Xephyr
|
||||||
|
|
||||||
$(XSTATE_TYPEGENS): $(TS_SRC)
|
|
||||||
yarn xstate typegen 'src/**/*.ts?(x)'
|
|
||||||
|
|
||||||
public/kcl_wasm_lib_bg.wasm: $(KCL_WASM_LIB_FILES)
|
|
||||||
yarn build:wasm
|
|
||||||
|
|
||||||
node_modules: package.json yarn.lock
|
|
||||||
yarn install
|
|
||||||
|
@ -184,7 +184,6 @@ example = extrude(exampleSketch, length = 1)
|
|||||||
```js
|
```js
|
||||||
// Color the result of a sweep.
|
// Color the result of a sweep.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
|
@ -22,8 +22,12 @@ layout: manual
|
|||||||
* [`string`](kcl/types/string)
|
* [`string`](kcl/types/string)
|
||||||
* [`tag`](kcl/types/tag)
|
* [`tag`](kcl/types/tag)
|
||||||
* **std**
|
* **std**
|
||||||
|
* [`Face`](kcl/types/Face)
|
||||||
* [`HALF_TURN`](kcl/consts/std-HALF_TURN)
|
* [`HALF_TURN`](kcl/consts/std-HALF_TURN)
|
||||||
|
* [`Helix`](kcl/types/Helix)
|
||||||
* [`Plane`](kcl/types/Plane)
|
* [`Plane`](kcl/types/Plane)
|
||||||
|
* [`Point2d`](kcl/types/Point2d)
|
||||||
|
* [`Point3d`](kcl/types/Point3d)
|
||||||
* [`QUARTER_TURN`](kcl/consts/std-QUARTER_TURN)
|
* [`QUARTER_TURN`](kcl/consts/std-QUARTER_TURN)
|
||||||
* [`Sketch`](kcl/types/Sketch)
|
* [`Sketch`](kcl/types/Sketch)
|
||||||
* [`Solid`](kcl/types/Solid)
|
* [`Solid`](kcl/types/Solid)
|
||||||
|
50
docs/kcl/intersect.md
Normal file
@ -52,7 +52,6 @@ fn sum(arr):
|
|||||||
sumSoFar = add(sumSoFar, i)
|
sumSoFar = add(sumSoFar, i)
|
||||||
return sumSoFar */
|
return sumSoFar */
|
||||||
|
|
||||||
|
|
||||||
// We use `assertEqual` to check that our `sum` function gives the
|
// We use `assertEqual` to check that our `sum` function gives the
|
||||||
// expected result. It's good to check your work!
|
// expected result. It's good to check your work!
|
||||||
assertEqual(sum([1, 2, 3]), 6, 0.00001, "1 + 2 + 3 summed is 6")
|
assertEqual(sum([1, 2, 3]), 6, 0.00001, "1 + 2 + 3 summed is 6")
|
||||||
@ -114,7 +113,6 @@ fn decagon(radius):
|
|||||||
fullDecagon = partialDecagon // it's now full
|
fullDecagon = partialDecagon // it's now full
|
||||||
return fullDecagon */
|
return fullDecagon */
|
||||||
|
|
||||||
|
|
||||||
// Use the `decagon` function declared above, to sketch a decagon with radius 5.
|
// Use the `decagon` function declared above, to sketch a decagon with radius 5.
|
||||||
decagon(5.0)
|
decagon(5.0)
|
||||||
|> close()
|
|> close()
|
||||||
|
@ -57,7 +57,6 @@ rotate(
|
|||||||
```js
|
```js
|
||||||
// Rotate a pipe with roll, pitch, and yaw.
|
// Rotate a pipe with roll, pitch, and yaw.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
@ -83,7 +82,6 @@ sweepSketch = startSketchOn('XY')
|
|||||||
```js
|
```js
|
||||||
// Rotate a pipe about an axis with an angle.
|
// Rotate a pipe about an axis with an angle.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
|
@ -37,7 +37,6 @@ scale(
|
|||||||
```js
|
```js
|
||||||
// Scale a pipe.
|
// Scale a pipe.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
|
11250
docs/kcl/std.json
56
docs/kcl/subtract.md
Normal file
@ -43,7 +43,6 @@ sweep(
|
|||||||
```js
|
```js
|
||||||
// Create a pipe using a sweep.
|
// Create a pipe using a sweep.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
@ -68,7 +67,6 @@ sweepSketch = startSketchOn('XY')
|
|||||||
```js
|
```js
|
||||||
// Create a spring by sweeping around a helix path.
|
// Create a spring by sweeping around a helix path.
|
||||||
|
|
||||||
|
|
||||||
// Create a helix around the Z axis.
|
// Create a helix around the Z axis.
|
||||||
helixPath = helix(
|
helixPath = helix(
|
||||||
angleStart = 0,
|
angleStart = 0,
|
||||||
|
@ -35,7 +35,6 @@ translate(
|
|||||||
```js
|
```js
|
||||||
// Move a pipe.
|
// Move a pipe.
|
||||||
|
|
||||||
|
|
||||||
// Create a path for the sweep.
|
// Create a path for the sweep.
|
||||||
sweepPath = startSketchOn('XZ')
|
sweepPath = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.05, 0.05], %)
|
|> startProfileAt([0.05, 0.05], %)
|
||||||
|
@ -1,28 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: "Face"
|
title: "std::Face"
|
||||||
excerpt: "A face."
|
excerpt: "A face."
|
||||||
layout: manual
|
layout: manual
|
||||||
---
|
---
|
||||||
|
|
||||||
A face.
|
A face.
|
||||||
|
|
||||||
**Type:** `object`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
| Property | Type | Description | Required |
|
|
||||||
|----------|------|-------------|----------|
|
|
||||||
| `id` |[`string`](/docs/kcl/types/string)| The id of the face. | No |
|
|
||||||
| `artifactId` |[`ArtifactId`](/docs/kcl/types/ArtifactId)| The artifact ID. | No |
|
|
||||||
| `value` |[`string`](/docs/kcl/types/string)| The tag of the face. | No |
|
|
||||||
| `xAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the face's X axis be? | No |
|
|
||||||
| `yAxis` |[`Point3d`](/docs/kcl/types/Point3d)| What should the face's Y axis be? | No |
|
|
||||||
| `zAxis` |[`Point3d`](/docs/kcl/types/Point3d)| The z-axis (normal). | No |
|
|
||||||
| `solid` |[`Solid`](/docs/kcl/types/Solid)| The solid the face is on. | No |
|
|
||||||
| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No |
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,26 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: "Helix"
|
title: "std::Helix"
|
||||||
excerpt: "A helix."
|
excerpt: "A helix."
|
||||||
layout: manual
|
layout: manual
|
||||||
---
|
---
|
||||||
|
|
||||||
A helix.
|
A helix.
|
||||||
|
|
||||||
**Type:** `object`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
| Property | Type | Description | Required |
|
|
||||||
|----------|------|-------------|----------|
|
|
||||||
| `value` |[`string`](/docs/kcl/types/string)| The id of the helix. | No |
|
|
||||||
| `artifactId` |[`ArtifactId`](/docs/kcl/types/ArtifactId)| The artifact ID. | No |
|
|
||||||
| `revolutions` |[`number`](/docs/kcl/types/number)| Number of revolutions. | No |
|
|
||||||
| `angleStart` |[`number`](/docs/kcl/types/number)| Start angle (in degrees). | No |
|
|
||||||
| `ccw` |`boolean`| Is the helix rotation counter clockwise? | No |
|
|
||||||
| `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A unit of length. | No |
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ Any KCL value.
|
|||||||
| Property | Type | Description | Required |
|
| Property | Type | Description | Required |
|
||||||
|----------|------|-------------|----------|
|
|----------|------|-------------|----------|
|
||||||
| `type` |enum: [`Face`](/docs/kcl/types/Face)| | No |
|
| `type` |enum: [`Face`](/docs/kcl/types/Face)| | No |
|
||||||
| `value` |[`Face`](/docs/kcl/types/Face)| A face. | No |
|
| `value` |[`Face`](/docs/kcl/types/Face)| | No |
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
@ -236,7 +236,7 @@ Any KCL value.
|
|||||||
| Property | Type | Description | Required |
|
| Property | Type | Description | Required |
|
||||||
|----------|------|-------------|----------|
|
|----------|------|-------------|----------|
|
||||||
| `type` |enum: [`Helix`](/docs/kcl/types/Helix)| | No |
|
| `type` |enum: [`Helix`](/docs/kcl/types/Helix)| | No |
|
||||||
| `value` |[`Helix`](/docs/kcl/types/Helix)| A helix. | No |
|
| `value` |[`Helix`](/docs/kcl/types/Helix)| | No |
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
17
docs/kcl/types/Point2d.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
title: "std::Point2d"
|
||||||
|
excerpt: "A point in two dimensional space."
|
||||||
|
layout: manual
|
||||||
|
---
|
||||||
|
|
||||||
|
A point in two dimensional space.
|
||||||
|
|
||||||
|
```kcl
|
||||||
|
type Point2d = [number; 2]
|
||||||
|
```
|
||||||
|
|
||||||
|
`Point2d` is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value
|
||||||
|
with type `Point2d`, use an array, e.g., `[0, 0]` or `[5.0, 3.14]`.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,22 +1,17 @@
|
|||||||
---
|
---
|
||||||
title: "Point3d"
|
title: "std::Point3d"
|
||||||
excerpt: ""
|
excerpt: "A point in three dimensional space."
|
||||||
layout: manual
|
layout: manual
|
||||||
---
|
---
|
||||||
|
|
||||||
|
A point in three dimensional space.
|
||||||
|
|
||||||
**Type:** `object`
|
```kcl
|
||||||
|
type Point3d = [number; 3]
|
||||||
|
```
|
||||||
|
|
||||||
|
`Point3d` is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value
|
||||||
|
with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
| Property | Type | Description | Required |
|
|
||||||
|----------|------|-------------|----------|
|
|
||||||
| `x` |[`number`](/docs/kcl/types/number)| | No |
|
|
||||||
| `y` |[`number`](/docs/kcl/types/number)| | No |
|
|
||||||
| `z` |[`number`](/docs/kcl/types/number)| | No |
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@ A path to sweep along.
|
|||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
A helix.
|
|
||||||
|
|
||||||
[`Helix`](/docs/kcl/types/Helix)
|
[`Helix`](/docs/kcl/types/Helix)
|
||||||
|
|
||||||
|
50
docs/kcl/union.md
Normal file
@ -153,7 +153,8 @@ async function doBasicSketch(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test.describe('Basic sketch', { tag: ['@skipWin'] }, () => {
|
test.describe('Basic sketch', { tag: ['@skipWin'] }, () => {
|
||||||
test.fixme('code pane open at start', async ({ page, homePage }) => {
|
test('code pane open at start', async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await doBasicSketch(page, homePage, ['code'])
|
await doBasicSketch(page, homePage, ['code'])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -46,11 +46,12 @@ test.describe('Code pane and errors', { tag: ['@skipWin'] }, () => {
|
|||||||
await expect(codePaneButtonHolder).toContainText('notification')
|
await expect(codePaneButtonHolder).toContainText('notification')
|
||||||
})
|
})
|
||||||
|
|
||||||
test.skip('Opening and closing the code pane will consistently show error diagnostics', async ({
|
test('Opening and closing the code pane will consistently show error diagnostics', async ({
|
||||||
page,
|
page,
|
||||||
homePage,
|
homePage,
|
||||||
editor,
|
editor,
|
||||||
}) => {
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
|
|
||||||
// Load the app with the working starter code
|
// Load the app with the working starter code
|
||||||
@ -119,9 +120,12 @@ test.describe('Code pane and errors', { tag: ['@skipWin'] }, () => {
|
|||||||
await expect(page.locator('.cm-tooltip').first()).toBeVisible()
|
await expect(page.locator('.cm-tooltip').first()).toBeVisible()
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('When error is not in view you can click the badge to scroll to it', async ({
|
||||||
'When error is not in view you can click the badge to scroll to it',
|
page,
|
||||||
async ({ page, homePage, context }) => {
|
homePage,
|
||||||
|
context,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
// Load the app with the working starter code
|
// Load the app with the working starter code
|
||||||
await context.addInitScript((code) => {
|
await context.addInitScript((code) => {
|
||||||
localStorage.setItem('persistCode', code)
|
localStorage.setItem('persistCode', code)
|
||||||
@ -156,8 +160,7 @@ test.describe('Code pane and errors', { tag: ['@skipWin'] }, () => {
|
|||||||
)
|
)
|
||||||
.first()
|
.first()
|
||||||
).toBeVisible()
|
).toBeVisible()
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test('When error is not in view WITH LINTS you can click the badge to scroll to it', async ({
|
test('When error is not in view WITH LINTS you can click the badge to scroll to it', async ({
|
||||||
context,
|
context,
|
||||||
|
@ -47,7 +47,8 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// TODO: fix this test after the electron migration
|
// TODO: fix this test after the electron migration
|
||||||
test.fixme('Fillet from command bar', async ({ page, homePage }) => {
|
test('Fillet from command bar', async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'persistCode',
|
'persistCode',
|
||||||
@ -488,7 +489,7 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test(`Can add a named parameter or constant`, async ({
|
test(`Can add and edit a named parameter or constant`, async ({
|
||||||
page,
|
page,
|
||||||
homePage,
|
homePage,
|
||||||
context,
|
context,
|
||||||
@ -510,7 +511,7 @@ c = 3 + a`
|
|||||||
// but you do because all modeling commands have that requirement
|
// but you do because all modeling commands have that requirement
|
||||||
await scene.settled(cmdBar)
|
await scene.settled(cmdBar)
|
||||||
|
|
||||||
await test.step(`Go through the command palette flow`, async () => {
|
await test.step(`Create a parameter via command bar`, async () => {
|
||||||
await cmdBar.cmdBarOpenBtn.click()
|
await cmdBar.cmdBarOpenBtn.click()
|
||||||
await cmdBar.chooseCommand('create parameter')
|
await cmdBar.chooseCommand('create parameter')
|
||||||
await cmdBar.expectState({
|
await cmdBar.expectState({
|
||||||
@ -535,5 +536,57 @@ c = 3 + a`
|
|||||||
await editor.expectEditor.toContain(
|
await editor.expectEditor.toContain(
|
||||||
`a = 5b = a * amyParameter001 = b - 5c = 3 + a`
|
`a = 5b = a * amyParameter001 = b - 5c = 3 + a`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const newValue = `2 * b + a`
|
||||||
|
await test.step(`Edit the parameter via command bar`, async () => {
|
||||||
|
await cmdBar.cmdBarOpenBtn.click()
|
||||||
|
await cmdBar.chooseCommand('edit parameter')
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'arguments',
|
||||||
|
commandName: 'Edit parameter',
|
||||||
|
currentArgKey: 'Name',
|
||||||
|
currentArgValue: '',
|
||||||
|
headerArguments: {
|
||||||
|
Name: '',
|
||||||
|
Value: '',
|
||||||
|
},
|
||||||
|
highlightedHeaderArg: 'Name',
|
||||||
|
})
|
||||||
|
await cmdBar
|
||||||
|
.selectOption({
|
||||||
|
name: 'myParameter001',
|
||||||
|
})
|
||||||
|
.click()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'arguments',
|
||||||
|
commandName: 'Edit parameter',
|
||||||
|
currentArgKey: 'value',
|
||||||
|
currentArgValue: 'b - 5',
|
||||||
|
headerArguments: {
|
||||||
|
Name: 'myParameter001',
|
||||||
|
Value: '',
|
||||||
|
},
|
||||||
|
highlightedHeaderArg: 'value',
|
||||||
|
})
|
||||||
|
await cmdBar.argumentInput.locator('[contenteditable]').fill(newValue)
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'review',
|
||||||
|
commandName: 'Edit parameter',
|
||||||
|
headerArguments: {
|
||||||
|
Name: 'myParameter001',
|
||||||
|
// KCL inputs show the *computed* value, not the input value, in the command palette header
|
||||||
|
Value: '55',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
await cmdBar.progressCmdBar()
|
||||||
|
await cmdBar.expectState({
|
||||||
|
stage: 'commandBarClosed',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
await editor.expectEditor.toContain(
|
||||||
|
`a = 5b = a * amyParameter001 = ${newValue}c = 3 + a`
|
||||||
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -635,9 +635,11 @@ test.describe('Editor tests', { tag: ['@skipWin'] }, () => {
|
|||||||
await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible()
|
await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible()
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('error with 2 source ranges gets 2 diagnostics', async ({
|
||||||
'error with 2 source ranges gets 2 diagnostics',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
@ -702,8 +704,7 @@ test.describe('Editor tests', { tag: ['@skipWin'] }, () => {
|
|||||||
|
|
||||||
// Make sure there are two diagnostics
|
// Make sure there are two diagnostics
|
||||||
await expect(page.locator('.cm-lint-marker-error')).toHaveCount(2)
|
await expect(page.locator('.cm-lint-marker-error')).toHaveCount(2)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
test('if your kcl gets an error from the engine it is inlined', async ({
|
test('if your kcl gets an error from the engine it is inlined', async ({
|
||||||
context,
|
context,
|
||||||
page,
|
page,
|
||||||
@ -1121,10 +1122,11 @@ test.describe('Editor tests', { tag: ['@skipWin'] }, () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
`Can use the import stdlib function on a local OBJ file`,
|
`Can use the import stdlib function on a local OBJ file`,
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ page, context }, testInfo) => {
|
async ({ page, context }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await context.folderSetupFn(async (dir) => {
|
await context.folderSetupFn(async (dir) => {
|
||||||
const bracketDir = join(dir, 'cube')
|
const bracketDir = join(dir, 'cube')
|
||||||
await fsp.mkdir(bracketDir, { recursive: true })
|
await fsp.mkdir(bracketDir, { recursive: true })
|
||||||
|
@ -266,12 +266,13 @@ test.describe('when using the file tree to', () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
'loading small file, then large, then back to small',
|
'loading small file, then large, then back to small',
|
||||||
{
|
{
|
||||||
tag: '@electron',
|
tag: '@electron',
|
||||||
},
|
},
|
||||||
async ({ page }, testInfo) => {
|
async ({ page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const {
|
const {
|
||||||
panesOpen,
|
panesOpen,
|
||||||
pasteCodeInEditor,
|
pasteCodeInEditor,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import type { Page, Locator } from '@playwright/test'
|
import { type Page, type Locator, test } from '@playwright/test'
|
||||||
import { expect } from '../zoo-test'
|
import { expect } from '../zoo-test'
|
||||||
import {
|
import {
|
||||||
checkIfPaneIsOpen,
|
checkIfPaneIsOpen,
|
||||||
@ -76,10 +76,6 @@ export class ToolbarFixture {
|
|||||||
this.gizmoDisabled = page.getByTestId('gizmo-disabled')
|
this.gizmoDisabled = page.getByTestId('gizmo-disabled')
|
||||||
}
|
}
|
||||||
|
|
||||||
get editSketchBtn() {
|
|
||||||
return this.page.locator('[name="Edit Sketch"]')
|
|
||||||
}
|
|
||||||
|
|
||||||
get logoLink() {
|
get logoLink() {
|
||||||
return this.page.getByTestId('app-logo')
|
return this.page.getByTestId('app-logo')
|
||||||
}
|
}
|
||||||
@ -115,11 +111,20 @@ export class ToolbarFixture {
|
|||||||
).not.toBeDisabled()
|
).not.toBeDisabled()
|
||||||
}
|
}
|
||||||
|
|
||||||
editSketch = async () => {
|
editSketch = async (operationIndex = 0) => {
|
||||||
await this.editSketchBtn.first().click()
|
await test.step(`Editing sketch`, async () => {
|
||||||
|
await this.openFeatureTreePane()
|
||||||
|
const operation = await this.getFeatureTreeOperation(
|
||||||
|
'Sketch',
|
||||||
|
operationIndex
|
||||||
|
)
|
||||||
|
await operation.dblclick()
|
||||||
// One of the rare times we want to allow a arbitrary wait
|
// One of the rare times we want to allow a arbitrary wait
|
||||||
// this is for the engine animation, as it takes 500ms to complete
|
// this is for the engine animation, as it takes 500ms to complete
|
||||||
await this.page.waitForTimeout(600)
|
await this.page.waitForTimeout(600)
|
||||||
|
await expect(this.exitSketchBtn).toBeEnabled()
|
||||||
|
await this.closeFeatureTreePane()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
private _getMode = () =>
|
private _getMode = () =>
|
||||||
this.page.locator('[data-current-mode]').getAttribute('data-current-mode')
|
this.page.locator('[data-current-mode]').getAttribute('data-current-mode')
|
||||||
|
@ -319,9 +319,13 @@ test.describe('Onboarding tests', () => {
|
|||||||
// (lee) The two avatar tests are weird because even on main, we don't have
|
// (lee) The two avatar tests are weird because even on main, we don't have
|
||||||
// anything to do with the avatar inside the onboarding test. Due to the
|
// anything to do with the avatar inside the onboarding test. Due to the
|
||||||
// low impact of an avatar not showing I'm changing this to fixme.
|
// low impact of an avatar not showing I'm changing this to fixme.
|
||||||
test.fixme(
|
test('Avatar text updates depending on image load success', async ({
|
||||||
'Avatar text updates depending on image load success',
|
context,
|
||||||
async ({ context, page, homePage, tronApp }) => {
|
page,
|
||||||
|
homePage,
|
||||||
|
tronApp,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
if (!tronApp) {
|
if (!tronApp) {
|
||||||
fail()
|
fail()
|
||||||
}
|
}
|
||||||
@ -349,9 +353,7 @@ test.describe('Onboarding tests', () => {
|
|||||||
await homePage.goToModelingScene()
|
await homePage.goToModelingScene()
|
||||||
|
|
||||||
// Test that the text in this step is correct
|
// Test that the text in this step is correct
|
||||||
const avatarLocator = page
|
const avatarLocator = page.getByTestId('user-sidebar-toggle').locator('img')
|
||||||
.getByTestId('user-sidebar-toggle')
|
|
||||||
.locator('img')
|
|
||||||
const onboardingOverlayLocator = page
|
const onboardingOverlayLocator = page
|
||||||
.getByTestId('onboarding-content')
|
.getByTestId('onboarding-content')
|
||||||
.locator('div')
|
.locator('div')
|
||||||
@ -374,16 +376,13 @@ test.describe('Onboarding tests', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 404 the CI avatar image
|
// 404 the CI avatar image
|
||||||
await page.route(
|
await page.route('https://lh3.googleusercontent.com/**', async (route) => {
|
||||||
'https://lh3.googleusercontent.com/**',
|
|
||||||
async (route) => {
|
|
||||||
await route.fulfill({
|
await route.fulfill({
|
||||||
status: 404,
|
status: 404,
|
||||||
contentType: 'text/plain',
|
contentType: 'text/plain',
|
||||||
body: 'Not Found!',
|
body: 'Not Found!',
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
await page.reload({ waitUntil: 'domcontentloaded' })
|
await page.reload({ waitUntil: 'domcontentloaded' })
|
||||||
|
|
||||||
@ -391,12 +390,15 @@ test.describe('Onboarding tests', () => {
|
|||||||
await expect(avatarLocator).not.toBeVisible()
|
await expect(avatarLocator).not.toBeVisible()
|
||||||
await expect(onboardingOverlayLocator).toBeVisible()
|
await expect(onboardingOverlayLocator).toBeVisible()
|
||||||
await expect(onboardingOverlayLocator).toContainText('the menu button')
|
await expect(onboardingOverlayLocator).toContainText('the menu button')
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test.fixme(
|
test("Avatar text doesn't mention avatar when no avatar", async ({
|
||||||
"Avatar text doesn't mention avatar when no avatar",
|
context,
|
||||||
async ({ context, page, homePage, tronApp }) => {
|
page,
|
||||||
|
homePage,
|
||||||
|
tronApp,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
if (!tronApp) {
|
if (!tronApp) {
|
||||||
fail()
|
fail()
|
||||||
}
|
}
|
||||||
@ -447,13 +449,15 @@ test.describe('Onboarding tests', () => {
|
|||||||
for (const feature of userMenuFeatures) {
|
for (const feature of userMenuFeatures) {
|
||||||
await expect(onboardingOverlayLocator).toContainText(feature)
|
await expect(onboardingOverlayLocator).toContainText(feature)
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('Restarting onboarding on desktop takes one attempt', async ({
|
||||||
'Restarting onboarding on desktop takes one attempt',
|
context,
|
||||||
async ({ context, page, tronApp }) => {
|
page,
|
||||||
|
tronApp,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
if (!tronApp) {
|
if (!tronApp) {
|
||||||
fail()
|
fail()
|
||||||
}
|
}
|
||||||
@ -551,5 +555,4 @@ test.fixme(
|
|||||||
await expect(tutorialProjectIndicator).toBeVisible()
|
await expect(tutorialProjectIndicator).toBeVisible()
|
||||||
await expect(tutorialModalText).toBeVisible()
|
await expect(tutorialModalText).toBeVisible()
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
@ -850,9 +850,13 @@ openSketch = startSketchOn('XY')
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test(`Shift-click to select and deselect sketch segments`, async ({
|
||||||
`Shift-click to select and deselect sketch segments`,
|
page,
|
||||||
async ({ page, homePage, scene, editor }) => {
|
homePage,
|
||||||
|
scene,
|
||||||
|
editor,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
// Locators
|
// Locators
|
||||||
const firstPointLocation = { x: 200, y: 100 }
|
const firstPointLocation = { x: 200, y: 100 }
|
||||||
const secondPointLocation = { x: 800, y: 100 }
|
const secondPointLocation = { x: 800, y: 100 }
|
||||||
@ -999,8 +1003,7 @@ openSketch = startSketchOn('XY')
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test(`Offset plane point-and-click`, async ({
|
test(`Offset plane point-and-click`, async ({
|
||||||
context,
|
context,
|
||||||
|
@ -1244,10 +1244,11 @@ test(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
'Deleting projects, can delete individual project, can still create projects after deleting all',
|
'Deleting projects, can delete individual project, can still create projects after deleting all',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const projectData = [
|
const projectData = [
|
||||||
['router-template-slate', 'cylinder.kcl'],
|
['router-template-slate', 'cylinder.kcl'],
|
||||||
['bracket', 'focusrite_scarlett_mounting_braket.kcl'],
|
['bracket', 'focusrite_scarlett_mounting_braket.kcl'],
|
||||||
@ -1466,10 +1467,11 @@ test(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
'When the project folder is empty, user can create new project and open it.',
|
'When the project folder is empty, user can create new project and open it.',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ page }, testInfo) => {
|
async ({ page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
|
|
||||||
@ -2050,10 +2052,11 @@ test(
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Flaky
|
// Flaky
|
||||||
test.fixme(
|
test(
|
||||||
'Original project name persist after onboarding',
|
'Original project name persist after onboarding',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ page }, testInfo) => {
|
async ({ page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
|
|
||||||
const getAllProjects = () => page.getByTestId('project-link').all()
|
const getAllProjects = () => page.getByTestId('project-link').all()
|
||||||
|
@ -196,9 +196,15 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test(`manual code selection rename`, async ({
|
||||||
`manual code selection rename`,
|
context,
|
||||||
async ({ context, homePage, cmdBar, editor, page, scene }) => {
|
homePage,
|
||||||
|
cmdBar,
|
||||||
|
editor,
|
||||||
|
page,
|
||||||
|
scene,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const body1CapCoords = { x: 571, y: 311 }
|
const body1CapCoords = { x: 571, y: 311 }
|
||||||
|
|
||||||
await context.addInitScript((file) => {
|
await context.addInitScript((file) => {
|
||||||
@ -248,8 +254,7 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
|
|||||||
await acceptBtn.click()
|
await acceptBtn.click()
|
||||||
await expect(successToast).not.toBeVisible()
|
await expect(successToast).not.toBeVisible()
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test('multiple body selections', async ({
|
test('multiple body selections', async ({
|
||||||
context,
|
context,
|
||||||
|
@ -483,10 +483,11 @@ extrude001 = extrude(sketch001, length = 50)
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
`Network health indicator only appears in modeling view`,
|
`Network health indicator only appears in modeling view`,
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await context.folderSetupFn(async (dir) => {
|
await context.folderSetupFn(async (dir) => {
|
||||||
const bracketDir = path.join(dir, 'bracket')
|
const bracketDir = path.join(dir, 'bracket')
|
||||||
await fsp.mkdir(bracketDir, { recursive: true })
|
await fsp.mkdir(bracketDir, { recursive: true })
|
||||||
|
@ -12,6 +12,7 @@ import {
|
|||||||
} from './test-utils'
|
} from './test-utils'
|
||||||
import { uuidv4, roundOff } from 'lib/utils'
|
import { uuidv4, roundOff } from 'lib/utils'
|
||||||
import { SceneFixture } from './fixtures/sceneFixture'
|
import { SceneFixture } from './fixtures/sceneFixture'
|
||||||
|
import { ToolbarFixture } from './fixtures/toolbarFixture'
|
||||||
import { CmdBarFixture } from './fixtures/cmdBarFixture'
|
import { CmdBarFixture } from './fixtures/cmdBarFixture'
|
||||||
|
|
||||||
test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
|
test.describe('Sketch tests', { tag: ['@skipWin'] }, () => {
|
||||||
@ -187,12 +188,14 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
page.getByRole('button', { name: 'Start Sketch' })
|
page.getByRole('button', { name: 'Start Sketch' })
|
||||||
).toBeVisible()
|
).toBeVisible()
|
||||||
})
|
})
|
||||||
test.fixme('Can edit segments by dragging their handles', () => {
|
test('Can edit segments by dragging their handles', () => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const doEditSegmentsByDraggingHandle = async (
|
const doEditSegmentsByDraggingHandle = async (
|
||||||
page: Page,
|
page: Page,
|
||||||
homePage: HomePageFixture,
|
homePage: HomePageFixture,
|
||||||
openPanes: string[],
|
openPanes: string[],
|
||||||
scene: SceneFixture,
|
scene: SceneFixture,
|
||||||
|
toolbar: ToolbarFixture,
|
||||||
cmdBar: CmdBarFixture
|
cmdBar: CmdBarFixture
|
||||||
) => {
|
) => {
|
||||||
// Load the app with the code panes
|
// Load the app with the code panes
|
||||||
@ -282,11 +285,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
// Select the sketch
|
// Select the sketch
|
||||||
await page.mouse.click(700, 370)
|
await page.mouse.click(700, 370)
|
||||||
}
|
}
|
||||||
await expect(
|
await toolbar.editSketch()
|
||||||
page.getByRole('button', { name: 'Edit Sketch' })
|
|
||||||
).toBeVisible()
|
|
||||||
await page.getByRole('button', { name: 'Edit Sketch' }).click()
|
|
||||||
await page.waitForTimeout(400)
|
|
||||||
if (openPanes.includes('code')) {
|
if (openPanes.includes('code')) {
|
||||||
prevContent = await page.locator('.cm-content').innerText()
|
prevContent = await page.locator('.cm-content').innerText()
|
||||||
}
|
}
|
||||||
@ -417,7 +416,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
test(
|
test(
|
||||||
'code pane open at start-handles',
|
'code pane open at start-handles',
|
||||||
{ tag: ['@skipWin'] },
|
{ tag: ['@skipWin'] },
|
||||||
async ({ page, homePage, scene, cmdBar }) => {
|
async ({ page, homePage, scene, toolbar, cmdBar }) => {
|
||||||
// Load the app with the code panes
|
// Load the app with the code panes
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
@ -435,6 +434,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
homePage,
|
homePage,
|
||||||
['code'],
|
['code'],
|
||||||
scene,
|
scene,
|
||||||
|
toolbar,
|
||||||
cmdBar
|
cmdBar
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -443,7 +443,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
test(
|
test(
|
||||||
'code pane closed at start-handles',
|
'code pane closed at start-handles',
|
||||||
{ tag: ['@skipWin'] },
|
{ tag: ['@skipWin'] },
|
||||||
async ({ page, homePage, scene, cmdBar }) => {
|
async ({ page, homePage, scene, toolbar, cmdBar }) => {
|
||||||
// Load the app with the code panes
|
// Load the app with the code panes
|
||||||
await page.addInitScript(async (persistModelingContext) => {
|
await page.addInitScript(async (persistModelingContext) => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
@ -451,7 +451,14 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|
|||||||
JSON.stringify({ openPanes: [] })
|
JSON.stringify({ openPanes: [] })
|
||||||
)
|
)
|
||||||
}, PERSIST_MODELING_CONTEXT)
|
}, PERSIST_MODELING_CONTEXT)
|
||||||
await doEditSegmentsByDraggingHandle(page, homePage, [], scene, cmdBar)
|
await doEditSegmentsByDraggingHandle(
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
[],
|
||||||
|
scene,
|
||||||
|
toolbar,
|
||||||
|
cmdBar
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@ -1080,9 +1087,11 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
// TODO: fix after electron migration is merged
|
// TODO: fix after electron migration is merged
|
||||||
test.fixme(
|
test('empty-scene default-planes act as expected', async ({
|
||||||
'empty-scene default-planes act as expected',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
/**
|
/**
|
||||||
* Tests the following things
|
* Tests the following things
|
||||||
* 1) The the planes are there on load because the scene is empty
|
* 1) The the planes are there on load because the scene is empty
|
||||||
@ -1179,8 +1188,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|
|||||||
expect(
|
expect(
|
||||||
await u.getGreatestPixDiff(XYPlanePoint, noPlanesColor)
|
await u.getGreatestPixDiff(XYPlanePoint, noPlanesColor)
|
||||||
).toBeLessThan(3)
|
).toBeLessThan(3)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test('Can attempt to sketch on revolved face', async ({ page, homePage }) => {
|
test('Can attempt to sketch on revolved face', async ({ page, homePage }) => {
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -1454,10 +1462,11 @@ test.describe(`Sketching with offset planes`, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test.describe('multi-profile sketching', () => {
|
test.describe('multi-profile sketching', () => {
|
||||||
test.fixme(
|
test(
|
||||||
`test it removes half-finished expressions when changing tools in sketch mode`,
|
`test it removes half-finished expressions when changing tools in sketch mode`,
|
||||||
{ tag: ['@skipWin'] },
|
{ tag: ['@skipWin'] },
|
||||||
async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => {
|
async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
// We seed the scene with a single offset plane
|
// We seed the scene with a single offset plane
|
||||||
await context.addInitScript(() => {
|
await context.addInitScript(() => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
@ -2545,7 +2554,7 @@ profile002 = startProfileAt([85.81, 52.55], sketch002)
|
|||||||
const [startProfileAt] = scene.makeMouseHelpers(606, 184)
|
const [startProfileAt] = scene.makeMouseHelpers(606, 184)
|
||||||
const [nextPoint] = scene.makeMouseHelpers(763, 130)
|
const [nextPoint] = scene.makeMouseHelpers(763, 130)
|
||||||
await page.getByText('startProfileAt([85.81, 52.55], sketch002)').click()
|
await page.getByText('startProfileAt([85.81, 52.55], sketch002)').click()
|
||||||
await toolbar.editSketch()
|
await toolbar.editSketch(1)
|
||||||
// timeout wait for engine animation is unavoidable
|
// timeout wait for engine animation is unavoidable
|
||||||
await page.waitForTimeout(600)
|
await page.waitForTimeout(600)
|
||||||
|
|
||||||
@ -2765,7 +2774,7 @@ extrude003 = extrude(profile011, length = 2.5)
|
|||||||
await test.step(title, async () => {
|
await test.step(title, async () => {
|
||||||
await camPositionForSelectingSketchOnWallProfiles()
|
await camPositionForSelectingSketchOnWallProfiles()
|
||||||
await selectClick()
|
await selectClick()
|
||||||
await toolbar.editSketch()
|
await toolbar.editSketch(1)
|
||||||
await page.waitForTimeout(600)
|
await page.waitForTimeout(600)
|
||||||
await verifyWallProfilesAreDrawn()
|
await verifyWallProfilesAreDrawn()
|
||||||
await toolbar.exitSketchBtn.click()
|
await toolbar.exitSketchBtn.click()
|
||||||
@ -2846,9 +2855,14 @@ loft([profile001, profile002])
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
test.fixme(
|
test('Can enter sketch loft edges offsetPlane and continue sketch', async ({
|
||||||
'Can enter sketch loft edges offsetPlane and continue sketch',
|
scene,
|
||||||
async ({ scene, toolbar, editor, page, homePage }) => {
|
toolbar,
|
||||||
|
editor,
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'persistCode',
|
'persistCode',
|
||||||
@ -2911,8 +2925,7 @@ loft([profile001, profile002])
|
|||||||
`angledLine([0, 106.42], %, $rectangleSegmentA001)`
|
`angledLine([0, 106.42], %, $rectangleSegmentA001)`
|
||||||
)
|
)
|
||||||
await page.waitForTimeout(100)
|
await page.waitForTimeout(100)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// Regression test for https://github.com/KittyCAD/modeling-app/issues/4891
|
// Regression test for https://github.com/KittyCAD/modeling-app/issues/4891
|
||||||
|
@ -36,10 +36,11 @@ test.setTimeout(60_000)
|
|||||||
// a snapshot of it feels weird. I'd rather our regular tests fail.
|
// a snapshot of it feels weird. I'd rather our regular tests fail.
|
||||||
// The primary failure is doExport now relies on the filesystem. We can follow
|
// The primary failure is doExport now relies on the filesystem. We can follow
|
||||||
// up with another PR if we want this back.
|
// up with another PR if we want this back.
|
||||||
test.skip(
|
test(
|
||||||
'exports of each format should work',
|
'exports of each format should work',
|
||||||
{ tag: ['@snapshot', '@skipWin', '@skipMacos'] },
|
{ tag: ['@snapshot', '@skipWin', '@skipMacos'] },
|
||||||
async ({ page, context, scene, cmdBar, tronApp }) => {
|
async ({ page, context, scene, cmdBar, tronApp }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
if (!tronApp) {
|
if (!tronApp) {
|
||||||
fail()
|
fail()
|
||||||
}
|
}
|
||||||
@ -406,9 +407,6 @@ test(
|
|||||||
'Draft segments should look right',
|
'Draft segments should look right',
|
||||||
{ tag: '@snapshot' },
|
{ tag: '@snapshot' },
|
||||||
async ({ page, scene, toolbar }) => {
|
async ({ page, scene, toolbar }) => {
|
||||||
// FIXME: Skip on macos its being weird.
|
|
||||||
// test.skip(process.platform === 'darwin', 'Skip on macos')
|
|
||||||
|
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.setViewportSize({ width: 1200, height: 500 })
|
await page.setViewportSize({ width: 1200, height: 500 })
|
||||||
const PUR = 400 / 37.5 //pixeltoUnitRatio
|
const PUR = 400 / 37.5 //pixeltoUnitRatio
|
||||||
@ -585,9 +583,6 @@ test(
|
|||||||
'Draft circle should look right',
|
'Draft circle should look right',
|
||||||
{ tag: '@snapshot' },
|
{ tag: '@snapshot' },
|
||||||
async ({ page, context, cmdBar, scene }) => {
|
async ({ page, context, cmdBar, scene }) => {
|
||||||
// FIXME: Skip on macos its being weird.
|
|
||||||
// test.skip(process.platform === 'darwin', 'Skip on macos')
|
|
||||||
|
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.setViewportSize({ width: 1200, height: 500 })
|
await page.setViewportSize({ width: 1200, height: 500 })
|
||||||
const PUR = 400 / 37.5 //pixeltoUnitRatio
|
const PUR = 400 / 37.5 //pixeltoUnitRatio
|
||||||
@ -952,9 +947,6 @@ test(
|
|||||||
)
|
)
|
||||||
|
|
||||||
test.describe('Grid visibility', { tag: '@snapshot' }, () => {
|
test.describe('Grid visibility', { tag: '@snapshot' }, () => {
|
||||||
// FIXME: Skip on macos its being weird.
|
|
||||||
// test.skip(process.platform === 'darwin', 'Skip on macos')
|
|
||||||
|
|
||||||
test('Grid turned off to on via command bar', async ({
|
test('Grid turned off to on via command bar', async ({
|
||||||
page,
|
page,
|
||||||
cmdBar,
|
cmdBar,
|
||||||
@ -1097,7 +1089,8 @@ test.describe('Grid visibility', { tag: '@snapshot' }, () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme('theme persists', async ({ page, context }) => {
|
test('theme persists', async ({ page, context }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await context.addInitScript(async () => {
|
await context.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
|
@ -29,5 +29,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"kcl_version": "0.2.51"
|
"kcl_version": "0.2.52"
|
||||||
}
|
}
|
@ -3,11 +3,12 @@ import { commonPoints, getUtils } from './test-utils'
|
|||||||
import { EngineCommand } from 'lang/std/artifactGraph'
|
import { EngineCommand } from 'lang/std/artifactGraph'
|
||||||
import { uuidv4 } from 'lib/utils'
|
import { uuidv4 } from 'lib/utils'
|
||||||
|
|
||||||
test.fixme('Test network and connection issues', () => {
|
test.describe('Test network and connection issues', () => {
|
||||||
test(
|
test(
|
||||||
'simulate network down and network little widget',
|
'simulate network down and network little widget',
|
||||||
{ tag: '@skipLocalEngine' },
|
{ tag: '@skipLocalEngine' },
|
||||||
async ({ page, homePage }) => {
|
async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
|
|
||||||
@ -83,7 +84,8 @@ test.fixme('Test network and connection issues', () => {
|
|||||||
test(
|
test(
|
||||||
'Engine disconnect & reconnect in sketch mode',
|
'Engine disconnect & reconnect in sketch mode',
|
||||||
{ tag: '@skipLocalEngine' },
|
{ tag: '@skipLocalEngine' },
|
||||||
async ({ page, homePage }) => {
|
async ({ page, homePage, toolbar }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const networkToggle = page.getByTestId('network-toggle')
|
const networkToggle = page.getByTestId('network-toggle')
|
||||||
|
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -173,11 +175,7 @@ test.fixme('Test network and connection issues', () => {
|
|||||||
.click()
|
.click()
|
||||||
|
|
||||||
// enter sketch again
|
// enter sketch again
|
||||||
await u.doAndWaitForCmd(
|
await toolbar.editSketch()
|
||||||
() => page.getByRole('button', { name: 'Edit Sketch' }).click(),
|
|
||||||
'default_camera_get_settings'
|
|
||||||
)
|
|
||||||
await page.waitForTimeout(150)
|
|
||||||
|
|
||||||
// Click the line tool
|
// Click the line tool
|
||||||
await page.getByRole('button', { name: 'line Line', exact: true }).click()
|
await page.getByRole('button', { name: 'line Line', exact: true }).click()
|
||||||
@ -201,6 +199,7 @@ test.fixme('Test network and connection issues', () => {
|
|||||||
type: 'default_camera_get_settings',
|
type: 'default_camera_get_settings',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
await toolbar.openPane('debug')
|
||||||
await u.sendCustomCmd(camCommand)
|
await u.sendCustomCmd(camCommand)
|
||||||
await page.waitForTimeout(100)
|
await page.waitForTimeout(100)
|
||||||
await u.sendCustomCmd(updateCamCommand)
|
await u.sendCustomCmd(updateCamCommand)
|
||||||
|
@ -179,9 +179,11 @@ test.describe('Testing Camera Movement', { tag: ['@skipWin'] }, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// TODO: fix after electron migration is merged
|
// TODO: fix after electron migration is merged
|
||||||
test.fixme(
|
test('Zoom should be consistent when exiting or entering sketches', async ({
|
||||||
'Zoom should be consistent when exiting or entering sketches',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
// start new sketch pan and zoom before exiting, when exiting the sketch should stay in the same place
|
// start new sketch pan and zoom before exiting, when exiting the sketch should stay in the same place
|
||||||
// than zoom and pan outside of sketch mode and enter again and it should not change from where it is
|
// than zoom and pan outside of sketch mode and enter again and it should not change from where it is
|
||||||
// than again for sketching
|
// than again for sketching
|
||||||
@ -340,8 +342,7 @@ test.describe('Testing Camera Movement', { tag: ['@skipWin'] }, () => {
|
|||||||
await expect(page.getByTestId('hover-highlight').first()).toBeVisible({
|
await expect(page.getByTestId('hover-highlight').first()).toBeVisible({
|
||||||
timeout: 10_000,
|
timeout: 10_000,
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test(`Zoom by scroll should not fire while orbiting`, async ({
|
test(`Zoom by scroll should not fire while orbiting`, async ({
|
||||||
homePage,
|
homePage,
|
||||||
|
@ -1005,9 +1005,11 @@ part002 = startSketchOn('XZ')
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('Horizontally constrained line remains selected after applying constraint', async ({
|
||||||
'Horizontally constrained line remains selected after applying constraint',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
test.setTimeout(70_000)
|
test.setTimeout(70_000)
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
@ -1025,9 +1027,9 @@ part002 = startSketchOn('XZ')
|
|||||||
await u.waitForPageLoad()
|
await u.waitForPageLoad()
|
||||||
|
|
||||||
await page.getByText('line(end = [3.79, 2.68], tag = $seg01)').click()
|
await page.getByText('line(end = [3.79, 2.68], tag = $seg01)').click()
|
||||||
await expect(
|
await expect(page.getByRole('button', { name: 'Edit Sketch' })).toBeEnabled(
|
||||||
page.getByRole('button', { name: 'Edit Sketch' })
|
{ timeout: 10_000 }
|
||||||
).toBeEnabled({ timeout: 10_000 })
|
)
|
||||||
await page.getByRole('button', { name: 'Edit Sketch' }).click()
|
await page.getByRole('button', { name: 'Edit Sketch' }).click()
|
||||||
|
|
||||||
// Wait for overlays to populate
|
// Wait for overlays to populate
|
||||||
@ -1054,9 +1056,7 @@ part002 = startSketchOn('XZ')
|
|||||||
})
|
})
|
||||||
.click()
|
.click()
|
||||||
await page.waitForTimeout(500)
|
await page.waitForTimeout(500)
|
||||||
await page
|
await page.getByRole('button', { name: 'Horizontal', exact: true }).click()
|
||||||
.getByRole('button', { name: 'Horizontal', exact: true })
|
|
||||||
.click()
|
|
||||||
await page.waitForTimeout(500)
|
await page.waitForTimeout(500)
|
||||||
|
|
||||||
await pollEditorLinesSelectedLength(page, 1)
|
await pollEditorLinesSelectedLength(page, 1)
|
||||||
@ -1081,9 +1081,7 @@ part002 = startSketchOn('XZ')
|
|||||||
await page.mouse.click(linebb.x, linebb.y)
|
await page.mouse.click(linebb.x, linebb.y)
|
||||||
|
|
||||||
await expect
|
await expect
|
||||||
.poll(
|
.poll(async () => await u.getGreatestPixDiff(lineAfter, TEST_COLORS.BLUE))
|
||||||
async () => await u.getGreatestPixDiff(lineAfter, TEST_COLORS.BLUE)
|
|
||||||
)
|
|
||||||
.toBeLessThan(3)
|
.toBeLessThan(3)
|
||||||
|
|
||||||
await page.waitForTimeout(500)
|
await page.waitForTimeout(500)
|
||||||
@ -1093,10 +1091,7 @@ part002 = startSketchOn('XZ')
|
|||||||
// await page.getByRole('button', { name: 'length', exact: true }).click()
|
// await page.getByRole('button', { name: 'length', exact: true }).click()
|
||||||
await page.getByTestId('constraint-length').click()
|
await page.getByTestId('constraint-length').click()
|
||||||
|
|
||||||
await page
|
await page.getByTestId('cmd-bar-arg-value').getByRole('textbox').fill('10')
|
||||||
.getByTestId('cmd-bar-arg-value')
|
|
||||||
.getByRole('textbox')
|
|
||||||
.fill('10')
|
|
||||||
await page
|
await page
|
||||||
.getByRole('button', {
|
.getByRole('button', {
|
||||||
name: 'arrow right Continue',
|
name: 'arrow right Continue',
|
||||||
@ -1111,8 +1106,7 @@ part002 = startSketchOn('XZ')
|
|||||||
|
|
||||||
// checking the count of the overlays is a good proxy check that the client sketch scene is in a good state
|
// checking the count of the overlays is a good proxy check that the client sketch scene is in a good state
|
||||||
await expect(page.getByTestId('segment-overlay')).toHaveCount(2)
|
await expect(page.getByTestId('segment-overlay')).toHaveCount(2)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
})
|
})
|
||||||
test.describe('Electron constraint tests', () => {
|
test.describe('Electron constraint tests', () => {
|
||||||
test(
|
test(
|
||||||
|
@ -316,14 +316,11 @@ test.describe(`Testing gizmo, fixture-based`, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
await test.step(`Gizmo should be disabled when in sketch mode`, async () => {
|
await test.step(`Gizmo should be disabled when in sketch mode`, async () => {
|
||||||
const sketchModeButton = page.getByRole('button', {
|
|
||||||
name: 'Edit sketch',
|
|
||||||
})
|
|
||||||
const exitSketchButton = page.getByRole('button', {
|
const exitSketchButton = page.getByRole('button', {
|
||||||
name: 'Exit sketch',
|
name: 'Exit sketch',
|
||||||
})
|
})
|
||||||
|
|
||||||
await sketchModeButton.click()
|
await toolbar.editSketch()
|
||||||
await expect(exitSketchButton).toBeVisible()
|
await expect(exitSketchButton).toBeVisible()
|
||||||
const gizmoPopoverButton = page.getByRole('button', {
|
const gizmoPopoverButton = page.getByRole('button', {
|
||||||
name: 'view settings',
|
name: 'view settings',
|
||||||
|
@ -2,7 +2,8 @@ import { test, expect } from './zoo-test'
|
|||||||
import { getUtils } from './test-utils'
|
import { getUtils } from './test-utils'
|
||||||
|
|
||||||
test.describe('Test toggling perspective', () => {
|
test.describe('Test toggling perspective', () => {
|
||||||
test.fixme('via command palette and toggle', async ({ page, homePage }) => {
|
test('via command palette and toggle', async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
|
|
||||||
// Locators and constants
|
// Locators and constants
|
||||||
|
@ -7,11 +7,9 @@ import { uuidv4 } from 'lib/utils'
|
|||||||
import { EditorFixture } from './fixtures/editorFixture'
|
import { EditorFixture } from './fixtures/editorFixture'
|
||||||
|
|
||||||
test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
||||||
test.fixme(
|
test('Hover over a segment should show its overlay, hovering over the input overlays should show its popover, clicking the input overlay should constrain/unconstrain it:\nfor the following segments', () => {
|
||||||
'Hover over a segment should show its overlay, hovering over the input overlays should show its popover, clicking the input overlay should constrain/unconstrain it:\nfor the following segments',
|
|
||||||
() => {
|
|
||||||
// TODO: fix this test on mac after the electron migration
|
// TODO: fix this test on mac after the electron migration
|
||||||
test.skip(process.platform === 'darwin', 'Skip on mac')
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
/**
|
/**
|
||||||
* Clicks on an constrained element
|
* Clicks on an constrained element
|
||||||
* @param {Page} page - The page to perform the action on
|
* @param {Page} page - The page to perform the action on
|
||||||
@ -368,9 +366,12 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Broken on main at time of writing!
|
// Broken on main at time of writing!
|
||||||
test.fixme(
|
test('for segments [yLineTo, xLine]', async ({
|
||||||
'for segments [yLineTo, xLine]',
|
page,
|
||||||
async ({ page, editor, homePage }) => {
|
editor,
|
||||||
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'persistCode',
|
'persistCode',
|
||||||
@ -444,8 +445,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
|||||||
ang: ang + 180,
|
ang: ang + 180,
|
||||||
locator: '[data-overlay-toolbar-index="5"]',
|
locator: '[data-overlay-toolbar-index="5"]',
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
test('for segments [yLine, angledLineOfXLength, angledLineOfYLength]', async ({
|
test('for segments [yLine, angledLineOfXLength, angledLineOfYLength]', async ({
|
||||||
page,
|
page,
|
||||||
editor,
|
editor,
|
||||||
@ -557,8 +557,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
|||||||
'angledLineOfYLength({ angle = -91, length = 19 + 0 }, %)',
|
'angledLineOfYLength({ angle = -91, length = 19 + 0 }, %)',
|
||||||
expectAfterUnconstrained:
|
expectAfterUnconstrained:
|
||||||
'angledLineOfYLength({ angle = angle002, length = 19 + 0 }, %)',
|
'angledLineOfYLength({ angle = angle002, length = 19 + 0 }, %)',
|
||||||
expectFinal:
|
expectFinal: 'angledLineOfYLength({ angle = -91, length = 19 + 0 }, %)',
|
||||||
'angledLineOfYLength({ angle = -91, length = 19 + 0 }, %)',
|
|
||||||
ang: ang + 180,
|
ang: ang + 180,
|
||||||
steps: 6,
|
steps: 6,
|
||||||
locator: '[data-overlay-toolbar-index="8"]',
|
locator: '[data-overlay-toolbar-index="8"]',
|
||||||
@ -657,9 +656,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
|||||||
locator: '[data-overlay-toolbar-index="9"]',
|
locator: '[data-overlay-toolbar-index="9"]',
|
||||||
})
|
})
|
||||||
|
|
||||||
const angledLineToY = await u.getBoundingBox(
|
const angledLineToY = await u.getBoundingBox('[data-overlay-index="10"]')
|
||||||
'[data-overlay-index="10"]'
|
|
||||||
)
|
|
||||||
ang = await u.getAngle('[data-overlay-index="10"]')
|
ang = await u.getAngle('[data-overlay-index="10"]')
|
||||||
console.log('angledLineToY')
|
console.log('angledLineToY')
|
||||||
await clickUnconstrained({
|
await clickUnconstrained({
|
||||||
@ -680,8 +677,7 @@ test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => {
|
|||||||
constraintType: 'yAbsolute',
|
constraintType: 'yAbsolute',
|
||||||
expectBeforeUnconstrained:
|
expectBeforeUnconstrained:
|
||||||
'angledLineToY({ angle = 89, to = 9.14 + 0 }, %)',
|
'angledLineToY({ angle = 89, to = 9.14 + 0 }, %)',
|
||||||
expectAfterUnconstrained:
|
expectAfterUnconstrained: 'angledLineToY({ angle = 89, to = 9.14 }, %)',
|
||||||
'angledLineToY({ angle = 89, to = 9.14 }, %)',
|
|
||||||
expectFinal: 'angledLineToY({ angle = 89, to = yAbs001 }, %)',
|
expectFinal: 'angledLineToY({ angle = 89, to = yAbs001 }, %)',
|
||||||
ang: ang + 180,
|
ang: ang + 180,
|
||||||
locator: '[data-overlay-toolbar-index="10"]',
|
locator: '[data-overlay-toolbar-index="10"]',
|
||||||
@ -1000,8 +996,7 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
|
|||||||
await clickUnconstrained({
|
await clickUnconstrained({
|
||||||
hoverPos,
|
hoverPos,
|
||||||
constraintType: 'yAbsolute',
|
constraintType: 'yAbsolute',
|
||||||
expectBeforeUnconstrained:
|
expectBeforeUnconstrained: 'circle(center = [xAbs001, 0], radius = 8)',
|
||||||
'circle(center = [xAbs001, 0], radius = 8)',
|
|
||||||
expectAfterUnconstrained:
|
expectAfterUnconstrained:
|
||||||
'circle(center = [xAbs001, yAbs001], radius = 8)',
|
'circle(center = [xAbs001, yAbs001], radius = 8)',
|
||||||
expectFinal: 'circle(center = [xAbs001, 0], radius = 8)',
|
expectFinal: 'circle(center = [xAbs001, 0], radius = 8)',
|
||||||
@ -1013,8 +1008,7 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
|
|||||||
await clickUnconstrained({
|
await clickUnconstrained({
|
||||||
hoverPos,
|
hoverPos,
|
||||||
constraintType: 'radius',
|
constraintType: 'radius',
|
||||||
expectBeforeUnconstrained:
|
expectBeforeUnconstrained: 'circle(center = [xAbs001, 0], radius = 8)',
|
||||||
'circle(center = [xAbs001, 0], radius = 8)',
|
|
||||||
expectAfterUnconstrained:
|
expectAfterUnconstrained:
|
||||||
'circle(center = [xAbs001, 0], radius = radius001)',
|
'circle(center = [xAbs001, 0], radius = radius001)',
|
||||||
expectFinal: 'circle(center = [xAbs001, 0], radius = 8)',
|
expectFinal: 'circle(center = [xAbs001, 0], radius = 8)',
|
||||||
@ -1023,8 +1017,7 @@ profile001 = startProfileAt([56.37, 120.33], sketch001)
|
|||||||
locator: '[data-overlay-toolbar-index="0"]',
|
locator: '[data-overlay-toolbar-index="0"]',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
test.describe('Testing deleting a segment', () => {
|
test.describe('Testing deleting a segment', () => {
|
||||||
const _deleteSegmentSequence =
|
const _deleteSegmentSequence =
|
||||||
(page: Page, editor: EditorFixture) =>
|
(page: Page, editor: EditorFixture) =>
|
||||||
|
@ -10,6 +10,7 @@ test.describe('Testing selections', { tag: ['@skipWin'] }, () => {
|
|||||||
test('Selections work on fresh and edited sketch', async ({
|
test('Selections work on fresh and edited sketch', async ({
|
||||||
page,
|
page,
|
||||||
homePage,
|
homePage,
|
||||||
|
toolbar,
|
||||||
}) => {
|
}) => {
|
||||||
// tests mapping works on fresh sketch and edited sketch
|
// tests mapping works on fresh sketch and edited sketch
|
||||||
// tests using hovers which is the same as selections, because if
|
// tests using hovers which is the same as selections, because if
|
||||||
@ -216,12 +217,7 @@ test.describe('Testing selections', { tag: ['@skipWin'] }, () => {
|
|||||||
await emptySpaceHover()
|
await emptySpaceHover()
|
||||||
|
|
||||||
// enter sketch again
|
// enter sketch again
|
||||||
await u.doAndWaitForCmd(
|
await toolbar.editSketch()
|
||||||
() => page.getByRole('button', { name: 'Edit Sketch' }).click(),
|
|
||||||
'default_camera_get_settings'
|
|
||||||
)
|
|
||||||
|
|
||||||
await page.waitForTimeout(450) // wait for animation
|
|
||||||
|
|
||||||
await u.openAndClearDebugPanel()
|
await u.openAndClearDebugPanel()
|
||||||
await u.sendCustomCmd({
|
await u.sendCustomCmd({
|
||||||
@ -452,9 +448,14 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
|
|||||||
await page.waitForTimeout(200)
|
await page.waitForTimeout(200)
|
||||||
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
|
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
|
||||||
})
|
})
|
||||||
test.fixme(
|
test('parent Solid should be select and deletable and uses custom planes to position children', async ({
|
||||||
'parent Solid should be select and deletable and uses custom planes to position children',
|
page,
|
||||||
async ({ page, homePage, scene, cmdBar, editor }) => {
|
homePage,
|
||||||
|
scene,
|
||||||
|
cmdBar,
|
||||||
|
editor,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
test.setTimeout(90_000)
|
test.setTimeout(90_000)
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await page.addInitScript(async () => {
|
await page.addInitScript(async () => {
|
||||||
@ -518,8 +519,7 @@ profile001 = startProfileAt([7.49, 9.96], sketch001)
|
|||||||
shouldNormalise: true,
|
shouldNormalise: true,
|
||||||
})
|
})
|
||||||
await editor.snapshot()
|
await editor.snapshot()
|
||||||
}
|
})
|
||||||
)
|
|
||||||
test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({
|
test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({
|
||||||
page,
|
page,
|
||||||
homePage,
|
homePage,
|
||||||
|
@ -55,9 +55,11 @@ test.describe('Testing settings', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// The behavior is actually broken. Parent always takes precedence
|
// The behavior is actually broken. Parent always takes precedence
|
||||||
test.fixme(
|
test('Project settings can be set and override user settings', async ({
|
||||||
'Project settings can be set and override user settings',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await test.step(`Setup`, async () => {
|
await test.step(`Setup`, async () => {
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
@ -82,14 +84,11 @@ test.describe('Testing settings', () => {
|
|||||||
/** Test to close https://github.com/KittyCAD/modeling-app/issues/2713 */
|
/** Test to close https://github.com/KittyCAD/modeling-app/issues/2713 */
|
||||||
await test.step(`Confirm that this dialog has a solid background`, async () => {
|
await test.step(`Confirm that this dialog has a solid background`, async () => {
|
||||||
await expect
|
await expect
|
||||||
.poll(
|
.poll(() => u.getGreatestPixDiff({ x: 600, y: 250 }, [28, 28, 28]), {
|
||||||
() => u.getGreatestPixDiff({ x: 600, y: 250 }, [28, 28, 28]),
|
|
||||||
{
|
|
||||||
timeout: 1000,
|
timeout: 1000,
|
||||||
message:
|
message:
|
||||||
'Checking for solid background, should not see default plane colors',
|
'Checking for solid background, should not see default plane colors',
|
||||||
}
|
})
|
||||||
)
|
|
||||||
.toBeLessThan(15)
|
.toBeLessThan(15)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -122,9 +121,7 @@ test.describe('Testing settings', () => {
|
|||||||
|
|
||||||
// Roll back to default of "off"
|
// Roll back to default of "off"
|
||||||
await await page
|
await await page
|
||||||
.getByText(
|
.getByText('show debug panelRoll back show debug panelRoll back to match')
|
||||||
'show debug panelRoll back show debug panelRoll back to match'
|
|
||||||
)
|
|
||||||
.hover()
|
.hover()
|
||||||
await page
|
await page
|
||||||
.getByRole('button', {
|
.getByRole('button', {
|
||||||
@ -138,8 +135,7 @@ test.describe('Testing settings', () => {
|
|||||||
await expect(
|
await expect(
|
||||||
page.locator('input[name="app-showDebugPanel"]')
|
page.locator('input[name="app-showDebugPanel"]')
|
||||||
).not.toBeChecked()
|
).not.toBeChecked()
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test('Keybindings display the correct hotkey for Command Palette', async ({
|
test('Keybindings display the correct hotkey for Command Palette', async ({
|
||||||
page,
|
page,
|
||||||
@ -175,9 +171,8 @@ test.describe('Testing settings', () => {
|
|||||||
await expect(hotkey).toHaveText(text)
|
await expect(hotkey).toHaveText(text)
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('Project and user settings can be reset', async ({ page, homePage }) => {
|
||||||
'Project and user settings can be reset',
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
async ({ page, homePage }) => {
|
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
await test.step(`Setup`, async () => {
|
await test.step(`Setup`, async () => {
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
@ -261,17 +256,13 @@ test.describe('Testing settings', () => {
|
|||||||
await expect(themeColorSetting).toHaveValue(settingValues.project)
|
await expect(themeColorSetting).toHaveValue(settingValues.project)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
`Project settings override user settings on desktop`,
|
`Project settings override user settings on desktop`,
|
||||||
{ tag: ['@electron', '@skipWin'] },
|
{ tag: ['@electron', '@skipWin'] },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
test.skip(
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
process.platform === 'win32',
|
|
||||||
'TODO: remove this skip https://github.com/KittyCAD/modeling-app/issues/3557'
|
|
||||||
)
|
|
||||||
const projectName = 'bracket'
|
const projectName = 'bracket'
|
||||||
const { dir: projectDirName } = await context.folderSetupFn(
|
const { dir: projectDirName } = await context.folderSetupFn(
|
||||||
async (dir) => {
|
async (dir) => {
|
||||||
@ -407,12 +398,13 @@ test.describe('Testing settings', () => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
// It was much easier to test the logo color than the background stream color.
|
// It was much easier to test the logo color than the background stream color.
|
||||||
test.fixme(
|
test(
|
||||||
'user settings reload on external change, on project and modeling view',
|
'user settings reload on external change, on project and modeling view',
|
||||||
{
|
{
|
||||||
tag: '@electron',
|
tag: '@electron',
|
||||||
},
|
},
|
||||||
async ({ context, page, tronApp }, testInfo) => {
|
async ({ context, page, tronApp }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
if (!tronApp) {
|
if (!tronApp) {
|
||||||
fail()
|
fail()
|
||||||
}
|
}
|
||||||
@ -466,10 +458,11 @@ test.describe('Testing settings', () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
'project settings reload on external change',
|
'project settings reload on external change',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const { dir: projectDirName } = await context.folderSetupFn(
|
const { dir: projectDirName } = await context.folderSetupFn(
|
||||||
async () => {}
|
async () => {}
|
||||||
)
|
)
|
||||||
@ -724,7 +717,14 @@ test.describe('Testing settings', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test('Changing theme in sketch mode', async ({ context, page, homePage }) => {
|
test('Changing theme in sketch mode', async ({
|
||||||
|
context,
|
||||||
|
page,
|
||||||
|
homePage,
|
||||||
|
toolbar,
|
||||||
|
scene,
|
||||||
|
cmdBar,
|
||||||
|
}) => {
|
||||||
// TODO: fix this test on windows after the electron migration
|
// TODO: fix this test on windows after the electron migration
|
||||||
test.skip(process.platform === 'win32', 'Skip on windows')
|
test.skip(process.platform === 'win32', 'Skip on windows')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
@ -744,11 +744,10 @@ test.describe('Testing settings', () => {
|
|||||||
})
|
})
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
await homePage.goToModelingScene()
|
await homePage.goToModelingScene()
|
||||||
await u.waitForPageLoad()
|
await scene.settled(cmdBar)
|
||||||
await page.waitForTimeout(1000)
|
await page.waitForTimeout(1000)
|
||||||
|
|
||||||
// Selectors and constants
|
// Selectors and constants
|
||||||
const editSketchButton = page.getByRole('button', { name: 'Edit Sketch' })
|
|
||||||
const lineToolButton = page.getByTestId('line')
|
const lineToolButton = page.getByTestId('line')
|
||||||
const segmentOverlays = page.getByTestId('segment-overlay')
|
const segmentOverlays = page.getByTestId('segment-overlay')
|
||||||
const sketchOriginLocation = { x: 600, y: 250 }
|
const sketchOriginLocation = { x: 600, y: 250 }
|
||||||
@ -757,8 +756,7 @@ test.describe('Testing settings', () => {
|
|||||||
|
|
||||||
await test.step(`Get into sketch mode`, async () => {
|
await test.step(`Get into sketch mode`, async () => {
|
||||||
await page.mouse.click(700, 200)
|
await page.mouse.click(700, 200)
|
||||||
await expect(editSketchButton).toBeVisible()
|
await toolbar.editSketch()
|
||||||
await editSketchButton.click()
|
|
||||||
|
|
||||||
// We use the line tool as a proxy for sketch mode
|
// We use the line tool as a proxy for sketch mode
|
||||||
await expect(lineToolButton).toBeVisible()
|
await expect(lineToolButton).toBeVisible()
|
||||||
@ -977,9 +975,15 @@ fn cube`
|
|||||||
/**
|
/**
|
||||||
* This test assumes that the default value of the "highlight edges" setting is "on".
|
* This test assumes that the default value of the "highlight edges" setting is "on".
|
||||||
*/
|
*/
|
||||||
test.fixme(
|
test(`Toggle stream settings multiple times`, async ({
|
||||||
`Toggle stream settings multiple times`,
|
page,
|
||||||
async ({ page, scene, homePage, context, toolbar, cmdBar }, testInfo) => {
|
scene,
|
||||||
|
homePage,
|
||||||
|
context,
|
||||||
|
toolbar,
|
||||||
|
cmdBar,
|
||||||
|
}, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await context.folderSetupFn(async (dir) => {
|
await context.folderSetupFn(async (dir) => {
|
||||||
const projectDir = join(dir, 'project-000')
|
const projectDir = join(dir, 'project-000')
|
||||||
await fsp.mkdir(projectDir, { recursive: true })
|
await fsp.mkdir(projectDir, { recursive: true })
|
||||||
@ -1034,6 +1038,5 @@ fn cube`
|
|||||||
mask: [page.getByTestId('model-state-indicator')],
|
mask: [page.getByTestId('model-state-indicator')],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
@ -431,10 +431,11 @@ test.describe('Text-to-CAD tests', { tag: ['@skipWin'] }, () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// This will be fine once greg makes prompt at top of file deterministic
|
// This will be fine once greg makes prompt at top of file deterministic
|
||||||
test.fixme(
|
test(
|
||||||
'can do many at once and get many prompts back, and interact with many',
|
'can do many at once and get many prompts back, and interact with many',
|
||||||
{ tag: ['@skipWin'] },
|
{ tag: ['@skipWin'] },
|
||||||
async ({ page, homePage }) => {
|
async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
// Let this test run longer since we've seen it timeout.
|
// Let this test run longer since we've seen it timeout.
|
||||||
test.setTimeout(180_000)
|
test.setTimeout(180_000)
|
||||||
|
|
||||||
@ -619,10 +620,11 @@ async function sendPromptFromCommandBar(page: Page, promptStr: string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
test.fixme(
|
test(
|
||||||
'Text-to-CAD functionality',
|
'Text-to-CAD functionality',
|
||||||
{ tag: '@electron' },
|
{ tag: '@electron' },
|
||||||
async ({ context, page }, testInfo) => {
|
async ({ context, page }, testInfo) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const projectName = 'project-000'
|
const projectName = 'project-000'
|
||||||
const prompt = 'lego 2x4'
|
const prompt = 'lego 2x4'
|
||||||
const textToCadFileName = 'lego-2x4.kcl'
|
const textToCadFileName = 'lego-2x4.kcl'
|
||||||
|
@ -2,7 +2,8 @@ import { test, expect } from './zoo-test'
|
|||||||
|
|
||||||
import { doExport, getUtils, makeTemplate } from './test-utils'
|
import { doExport, getUtils, makeTemplate } from './test-utils'
|
||||||
|
|
||||||
test.fixme('Units menu', async ({ page, homePage }) => {
|
test('Units menu', async ({ page, homePage }) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
await homePage.goToModelingScene()
|
await homePage.goToModelingScene()
|
||||||
|
|
||||||
@ -263,9 +264,11 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn
|
|||||||
).not.toBeVisible()
|
).not.toBeVisible()
|
||||||
})
|
})
|
||||||
|
|
||||||
test.fixme(
|
test('Basic default modeling and sketch hotkeys work', async ({
|
||||||
'Basic default modeling and sketch hotkeys work',
|
page,
|
||||||
async ({ page, homePage }) => {
|
homePage,
|
||||||
|
}) => {
|
||||||
|
test.fixme(process.env.GITHUB_HEAD_REF !== 'all-e2e')
|
||||||
const u = await getUtils(page)
|
const u = await getUtils(page)
|
||||||
|
|
||||||
// This test can run long if it takes a little too long to load
|
// This test can run long if it takes a little too long to load
|
||||||
@ -441,8 +444,7 @@ test.fixme(
|
|||||||
await page.keyboard.press('Escape')
|
await page.keyboard.press('Escape')
|
||||||
await page.waitForTimeout(100)
|
await page.waitForTimeout(100)
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
test('Delete key does not navigate back', async ({ page, homePage }) => {
|
test('Delete key does not navigate back', async ({ page, homePage }) => {
|
||||||
await page.setBodyDimensions({ width: 1200, height: 500 })
|
await page.setBodyDimensions({ width: 1200, height: 500 })
|
||||||
|
@ -20,7 +20,7 @@ statement[@isGroup=Statement] {
|
|||||||
ImportStatement { kw<"import"> ImportItems ImportFrom String } |
|
ImportStatement { kw<"import"> ImportItems ImportFrom String } |
|
||||||
FunctionDeclaration { kw<"export">? kw<"fn"> VariableDefinition Equals? ParamList Arrow? Body } |
|
FunctionDeclaration { kw<"export">? kw<"fn"> VariableDefinition Equals? ParamList Arrow? Body } |
|
||||||
VariableDeclaration { kw<"export">? (kw<"var"> | kw<"let"> | kw<"const">)? VariableDefinition Equals expression } |
|
VariableDeclaration { kw<"export">? (kw<"var"> | kw<"let"> | kw<"const">)? VariableDefinition Equals expression } |
|
||||||
TypeDeclaration { kw<"export">? kw<"type"> identifier } |
|
TypeDeclaration { kw<"export">? kw<"type"> identifier ("=" type)? } |
|
||||||
ReturnStatement { kw<"return"> expression } |
|
ReturnStatement { kw<"return"> expression } |
|
||||||
ExpressionStatement { expression } |
|
ExpressionStatement { expression } |
|
||||||
Annotation { AnnotationName AnnotationList? }
|
Annotation { AnnotationName AnnotationList? }
|
||||||
@ -79,7 +79,7 @@ type[@isGroup=Type] {
|
|||||||
identifier,
|
identifier,
|
||||||
"bool" | "number" | "string" | "tag" | "Sketch" | "SketchSurface" | "Solid" | "Plane"
|
"bool" | "number" | "string" | "tag" | "Sketch" | "SketchSurface" | "Solid" | "Plane"
|
||||||
> |
|
> |
|
||||||
ArrayType { type !member "[" "]" } |
|
ArrayType { "[" type !member (";" Number "+"?)? "]" } |
|
||||||
ObjectType { "{" commaSep<ObjectProperty { PropertyName ":" type }> "}" }
|
ObjectType { "{" commaSep<ObjectProperty { PropertyName ":" type }> "}" }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ commaSep1NoTrailingComma<term> { term ("," term)* }
|
|||||||
"(" ")"
|
"(" ")"
|
||||||
"{" "}"
|
"{" "}"
|
||||||
"[" "]"
|
"[" "]"
|
||||||
"," "?" ":" "." ".."
|
"," "?" ":" "." ".." ";"
|
||||||
}
|
}
|
||||||
|
|
||||||
@external propSource kclHighlight from "./highlight"
|
@external propSource kclHighlight from "./highlight"
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
"@codemirror/autocomplete": "6.18.6",
|
"@codemirror/autocomplete": "6.18.6",
|
||||||
"@codemirror/language": "^6.11.0",
|
"@codemirror/language": "^6.11.0",
|
||||||
"@codemirror/state": "^6.5.2",
|
"@codemirror/state": "^6.5.2",
|
||||||
"@lezer/highlight": "^1.2.0",
|
"@lezer/highlight": "^1.2.1",
|
||||||
"@ts-stack/markdown": "^1.5.0",
|
"@ts-stack/markdown": "^1.5.0",
|
||||||
"json-rpc-2.0": "^1.7.0",
|
"json-rpc-2.0": "^1.7.0",
|
||||||
"typescript": "^5.8.2",
|
"typescript": "^5.8.2",
|
||||||
@ -29,7 +29,7 @@
|
|||||||
"vscode-uri": "^3.1.0"
|
"vscode-uri": "^3.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.13.9",
|
"@types/node": "^22.13.10",
|
||||||
"ts-node": "^10.9.2"
|
"ts-node": "^10.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,10 +70,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049"
|
resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049"
|
||||||
integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==
|
integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==
|
||||||
|
|
||||||
"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.2.0":
|
"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.2.1":
|
||||||
version "1.2.0"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.0.tgz#e5898c3644208b4b589084089dceeea2966f7780"
|
resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b"
|
||||||
integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==
|
integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@lezer/common" "^1.0.0"
|
"@lezer/common" "^1.0.0"
|
||||||
|
|
||||||
@ -116,10 +116,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
|
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
|
||||||
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
|
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
|
||||||
|
|
||||||
"@types/node@^22.13.9":
|
"@types/node@^22.13.10":
|
||||||
version "22.13.9"
|
version "22.13.10"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.9.tgz#5d9a8f7a975a5bd3ef267352deb96fb13ec02eca"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4"
|
||||||
integrity sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==
|
integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~6.20.0"
|
undici-types "~6.20.0"
|
||||||
|
|
||||||
|
@ -69,6 +69,8 @@ When you submit a PR to add or modify KCL samples, images and STEP files will be
|
|||||||
[](hex-nut/main.kcl)
|
[](hex-nut/main.kcl)
|
||||||
#### [i-beam](i-beam/main.kcl) ([screenshot](screenshots/i-beam.png))
|
#### [i-beam](i-beam/main.kcl) ([screenshot](screenshots/i-beam.png))
|
||||||
[](i-beam/main.kcl)
|
[](i-beam/main.kcl)
|
||||||
|
#### [keyboard](keyboard/main.kcl) ([screenshot](screenshots/keyboard.png))
|
||||||
|
[](keyboard/main.kcl)
|
||||||
#### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png))
|
#### [kitt](kitt/main.kcl) ([screenshot](screenshots/kitt.png))
|
||||||
[](kitt/main.kcl)
|
[](kitt/main.kcl)
|
||||||
#### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png))
|
#### [lego](lego/main.kcl) ([screenshot](screenshots/lego.png))
|
||||||
|
233
public/kcl-samples/keyboard/main.kcl
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
// Zoo Keyboard
|
||||||
|
// A custom keyboard with Zoo brand lettering
|
||||||
|
|
||||||
|
// Set Units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Define constants
|
||||||
|
baseColor = "#0f0f0f"
|
||||||
|
highlightColor1 = "#b0b0b0"
|
||||||
|
highlightColor2 = "#23af93"
|
||||||
|
keyHeight = 0.8
|
||||||
|
keyDepth = 0.1
|
||||||
|
spacing = 0.1
|
||||||
|
row1 = spacing * 3
|
||||||
|
row2 = row1 + keyHeight + spacing
|
||||||
|
row3 = row2 + keyHeight + spacing
|
||||||
|
row4 = row3 + keyHeight + spacing
|
||||||
|
row5 = row4 + keyHeight + spacing
|
||||||
|
row6 = row5 + keyHeight + spacing
|
||||||
|
|
||||||
|
// Sketch the side profile of the keyboard base and extrude to total width
|
||||||
|
sketch001 = startSketchOn('YZ')
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
|
|> line(end = [-0.14, 0.68], tag = $seg01)
|
||||||
|
|> angledLine([7, row6 + 3 * spacing + keyHeight], %, $seg02)
|
||||||
|
|> line(endAbsolute = [5.13, 0], tag = $seg03)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg04)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 13.6)
|
||||||
|
|> appearance(color = baseColor)
|
||||||
|
|> fillet(
|
||||||
|
radius = .6,
|
||||||
|
tags = [
|
||||||
|
getOppositeEdge(seg01),
|
||||||
|
getOppositeEdge(seg03),
|
||||||
|
seg01,
|
||||||
|
seg03
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create a short cylindrical foot at each corner of the keyboard
|
||||||
|
sketch003 = startSketchOn(sketch001, seg04)
|
||||||
|
profile001 = circle(sketch003, center = [0.75, 0.75], radius = 0.4)
|
||||||
|
profile003 = circle(sketch003, center = [4.4, 0.75], radius = 0.4)
|
||||||
|
profile004 = circle(sketch003, center = [0.73, 13.6 - .75], radius = 0.4)
|
||||||
|
profile005 = circle(sketch003, center = [4.4, 13.6 - .75], radius = 0.4)
|
||||||
|
extrude(
|
||||||
|
[
|
||||||
|
profile001,
|
||||||
|
profile003,
|
||||||
|
profile004,
|
||||||
|
profile005
|
||||||
|
],
|
||||||
|
length = .15,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Define the plane to sketch keyboard keys on
|
||||||
|
plane001 = {
|
||||||
|
plane = {
|
||||||
|
origin = [0.0, 0.0, 0.7],
|
||||||
|
xAxis = [1.0, 0.0, 0.0],
|
||||||
|
yAxis = [0.0, 1.0, sin(toRadians(7))],
|
||||||
|
zAxis = [0.0, 0.0, 1.0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a function to build a key. Parameterize for position, width, height, number of instances, and appearance color.
|
||||||
|
fn keyFn(originStart, keyWidth, keyHeight, repeats, color) {
|
||||||
|
sketch002 = startSketchOn(plane001)
|
||||||
|
profile002 = startProfileAt([originStart[0], originStart[1]], sketch002)
|
||||||
|
|> arc({
|
||||||
|
angleStart = 180,
|
||||||
|
angleEnd = 270,
|
||||||
|
radius = 0.1
|
||||||
|
}, %)
|
||||||
|
|> angledLine([0, keyWidth - .2], %, $rectangleSegmentA001)
|
||||||
|
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|
||||||
|
|> angledLine([
|
||||||
|
segAng(rectangleSegmentA001) + 90,
|
||||||
|
keyHeight - .2
|
||||||
|
], %, $rectangleSegmentB001)
|
||||||
|
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|
||||||
|
|> angledLine([
|
||||||
|
segAng(rectangleSegmentA001),
|
||||||
|
-segLen(rectangleSegmentA001)
|
||||||
|
], %, $rectangleSegmentC001)
|
||||||
|
|> tangentialArc({ radius = 0.1, offset = 90 }, %)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = keyDepth)
|
||||||
|
|> appearance(color = color)
|
||||||
|
// Repeat key when desired. This will default to zero
|
||||||
|
|> patternLinear3d(
|
||||||
|
%,
|
||||||
|
instances = repeats + 1,
|
||||||
|
distance = keyWidth + spacing,
|
||||||
|
axis = [1, 0, 0],
|
||||||
|
)
|
||||||
|
return sketch001
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the first row of keys
|
||||||
|
keyFn([0.3, row1], 1.1, keyHeight, 0, highlightColor2)
|
||||||
|
keyFn([1.5, row1], 0.8, keyHeight, 2, highlightColor1)
|
||||||
|
keyFn([spacing * 7 + 3.5, row1], 5.2, keyHeight, 0, highlightColor2)
|
||||||
|
keyFn([spacing * 8 + 8.7, row1], 0.8, keyHeight, 0, highlightColor1)
|
||||||
|
keyFn([spacing * 8 + 9.6, row1], 0.8, keyHeight, 0, highlightColor1)
|
||||||
|
keyFn([spacing * 10 + 10.3, row1], 1.1, keyHeight, 0, highlightColor1)
|
||||||
|
keyFn([spacing * 12 + 10.3 + 1, row1], 0.8, keyHeight, 0, highlightColor2)
|
||||||
|
|
||||||
|
// Build the second row of keys
|
||||||
|
keyFn([spacing * 3, row2], 1.7, keyHeight, 0, highlightColor2)
|
||||||
|
keyFn([spacing * 4 + 1.7, row2], 0.8, keyHeight, 9, highlightColor1)
|
||||||
|
keyFn([spacing * 14 + 1.7 + 0.8 * 10, row2], 2.2, keyHeight, 0, highlightColor2)
|
||||||
|
|
||||||
|
// Build the third row of keys
|
||||||
|
keyFn([spacing * 3, row3], 1.1 + .1, keyHeight, 0, highlightColor1)
|
||||||
|
keyFn([spacing * 4 + 1.1 + .1, row3], 0.8, keyHeight, 10, highlightColor1)
|
||||||
|
keyFn([spacing * 3 + 11.1 + .1, row3], 1.4 + .4, keyHeight, 0, highlightColor2)
|
||||||
|
|
||||||
|
// Build the fourth row of keys
|
||||||
|
keyFn([spacing * 3, row4], 0.9, keyHeight, 0, highlightColor1)
|
||||||
|
keyFn([spacing * 4 + 0.9, row4], 0.8, keyHeight, 11, highlightColor1)
|
||||||
|
keyFn([spacing * 3 + 11.8, row4], 1.2, keyHeight, 0, highlightColor1)
|
||||||
|
|
||||||
|
// Build the fifth row of keys
|
||||||
|
keyFn([spacing * 3, row5], 0.8, keyHeight, 12, highlightColor1)
|
||||||
|
keyFn([spacing * 3 + 11.7, row5], 1.3, keyHeight, 0, highlightColor2)
|
||||||
|
|
||||||
|
// Build the sixth row of keys
|
||||||
|
keyFn([spacing * 3, row6], 1.1, keyHeight * .6, 0, highlightColor2)
|
||||||
|
keyFn([spacing * 4 + 1.1, row6], 0.8, keyHeight * .6, 11, highlightColor1)
|
||||||
|
keyFn([spacing * 3 + 12, row6], 1, keyHeight * .6, 0, highlightColor2)
|
||||||
|
|
||||||
|
// Create a plane to sketch ZOO brand letters on
|
||||||
|
plane002 = {
|
||||||
|
plane = {
|
||||||
|
origin = [0.0, 0.0, .81],
|
||||||
|
xAxis = [1.0, 0.0, 0.0],
|
||||||
|
yAxis = [0.0, 1.0, sin(toRadians(7))],
|
||||||
|
zAxis = [0.0, 0.0, 1.0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define a function to draw the ZOO 'Z'
|
||||||
|
fn z(origin, scale, depth) {
|
||||||
|
z = startSketchOn(plane002)
|
||||||
|
|> startProfileAt([
|
||||||
|
0 + origin[0],
|
||||||
|
0.15 * scale + origin[1]
|
||||||
|
], %)
|
||||||
|
|> yLine(length = -0.15 * scale)
|
||||||
|
|> xLine(length = 0.15 * scale)
|
||||||
|
|> angledLineToX({
|
||||||
|
angle = 47.15,
|
||||||
|
to = 0.3 * scale + origin[0]
|
||||||
|
}, %, $seg1)
|
||||||
|
|> yLine(endAbsolute = 0 + origin[1], tag = $seg3)
|
||||||
|
|> xLine(length = 0.63 * scale)
|
||||||
|
|> yLine(length = 0.225 * scale)
|
||||||
|
|> xLine(length = -0.57 * scale)
|
||||||
|
|> angledLineToX({
|
||||||
|
angle = 47.15,
|
||||||
|
to = 0.93 * scale + origin[0]
|
||||||
|
}, %)
|
||||||
|
|> yLine(length = 0.15 * scale)
|
||||||
|
|> xLine(length = -0.15 * scale)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 47.15,
|
||||||
|
length = -segLen(seg1)
|
||||||
|
}, %, $seg2)
|
||||||
|
|> yLine(length = segLen(seg3))
|
||||||
|
|> xLine(endAbsolute = 0 + origin[0])
|
||||||
|
|> yLine(length = -0.225 * scale)
|
||||||
|
|> angledLineThatIntersects({
|
||||||
|
angle = 0,
|
||||||
|
intersectTag = seg2,
|
||||||
|
offset = 0
|
||||||
|
}, %)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = -depth)
|
||||||
|
|> appearance(color = baseColor)
|
||||||
|
return z
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define a function to draw the ZOO 'O'
|
||||||
|
fn o(origin, scale, depth) {
|
||||||
|
oSketch001 = startSketchOn(plane002)
|
||||||
|
|> startProfileAt([
|
||||||
|
.788 * scale + origin[0],
|
||||||
|
.921 * scale + origin[1]
|
||||||
|
], %)
|
||||||
|
|> arc({
|
||||||
|
angleStart = 47.15 + 6,
|
||||||
|
angleEnd = 47.15 - 6 + 180,
|
||||||
|
radius = .525 * scale
|
||||||
|
}, %)
|
||||||
|
|> angledLine({ angle = 47.15, length = .24 * scale }, %)
|
||||||
|
|> arc({
|
||||||
|
angleStart = 47.15 - 11 + 180,
|
||||||
|
angleEnd = 47.15 + 11,
|
||||||
|
radius = .288 * scale
|
||||||
|
}, %)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = -depth)
|
||||||
|
|> appearance(color = baseColor)
|
||||||
|
|
||||||
|
o = startSketchOn(plane002)
|
||||||
|
|> startProfileAt([
|
||||||
|
.16 * scale + origin[0],
|
||||||
|
.079 * scale + origin[1]
|
||||||
|
], %)
|
||||||
|
|> arc({
|
||||||
|
angleStart = 47.15 + 6 - 180,
|
||||||
|
angleEnd = 47.15 - 6,
|
||||||
|
radius = .525 * scale
|
||||||
|
}, %)
|
||||||
|
|> angledLine({ angle = 47.15, length = -.24 * scale }, %)
|
||||||
|
|> arc({
|
||||||
|
angleStart = 47.15 - 11,
|
||||||
|
angleEnd = 47.15 + 11 - 180,
|
||||||
|
radius = .288 * scale
|
||||||
|
}, %)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = -depth)
|
||||||
|
|> appearance(color = baseColor)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place the Z logo on the Z key. Place the O logo on the O and P keys
|
||||||
|
z([2.3, 1.3], .4, 0.03)
|
||||||
|
o([8.71, row4 + .08], 0.4, 0.03)
|
||||||
|
o([8.71 + 0.9, row4 + .08], 0.4, 0.03)
|
@ -5,8 +5,8 @@
|
|||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
// Define constants
|
// Define constants
|
||||||
lbumps = 10 // number of bumps long
|
lbumps = 4 // number of bumps long
|
||||||
wbumps = 5 // number of bumps wide
|
wbumps = 2 // number of bumps wide
|
||||||
pitch = 8.0
|
pitch = 8.0
|
||||||
clearance = 0.1
|
clearance = 0.1
|
||||||
bumpDiam = 4.8
|
bumpDiam = 4.8
|
||||||
|
@ -160,6 +160,13 @@
|
|||||||
"title": "I-beam",
|
"title": "I-beam",
|
||||||
"description": "A structural metal beam with an I shaped cross section. Often used in construction"
|
"description": "A structural metal beam with an I shaped cross section. Often used in construction"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"file": "main.kcl",
|
||||||
|
"pathFromProjectDirectoryToFirstFile": "keyboard/main.kcl",
|
||||||
|
"multipleFiles": false,
|
||||||
|
"title": "Zoo Keyboard",
|
||||||
|
"description": "A custom keyboard with Zoo brand lettering"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"file": "main.kcl",
|
"file": "main.kcl",
|
||||||
"pathFromProjectDirectoryToFirstFile": "kitt/main.kcl",
|
"pathFromProjectDirectoryToFirstFile": "kitt/main.kcl",
|
||||||
@ -198,7 +205,7 @@
|
|||||||
{
|
{
|
||||||
"file": "main.kcl",
|
"file": "main.kcl",
|
||||||
"pathFromProjectDirectoryToFirstFile": "pipe-flange-assembly/main.kcl",
|
"pathFromProjectDirectoryToFirstFile": "pipe-flange-assembly/main.kcl",
|
||||||
"multipleFiles": false,
|
"multipleFiles": true,
|
||||||
"title": "Pipe and Flange Assembly",
|
"title": "Pipe and Flange Assembly",
|
||||||
"description": "A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint."
|
"description": "A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint."
|
||||||
},
|
},
|
||||||
|
25
public/kcl-samples/pipe-flange-assembly/1120t74-pipe.kcl
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// 1120t74 Pipe
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import pipeInnerDiameter, pipeOuterDiameter, pipeLength from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to make the pipe
|
||||||
|
export fn pipe() {
|
||||||
|
|
||||||
|
// create the pipe base
|
||||||
|
pipeBase = startSketchOn('XZ')
|
||||||
|
|> circle(%, center = [0, 0], radius = pipeOuterDiameter / 2)
|
||||||
|
|> extrude(%, length = pipeLength)
|
||||||
|
|
||||||
|
// extrude a hole through the length of the pipe
|
||||||
|
pipe = startSketchOn(pipeBase, 'end')
|
||||||
|
|> circle(center = [0, 0], radius = pipeInnerDiameter / 2)
|
||||||
|
|> extrude(%, length = -pipeLength)
|
||||||
|
|> appearance(color = "#a24ed0")
|
||||||
|
return pipe
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.mcmaster.com/1120T74/
|
46
public/kcl-samples/pipe-flange-assembly/68095k348-flange.kcl
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// 68095k348 flange
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import pipeDiameter, mountingHoleDiameter, mountingHolePlacementDiameter, flangeDiameter, flangeTotalThickness, flangeBackHeight, flangeFrontHeight, flangeBaseThickness, flangeBackDiameter, flangeFrontDiameter from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to create the flange
|
||||||
|
export fn flange() {
|
||||||
|
|
||||||
|
// sketch the mounting hole pattern
|
||||||
|
mountingHoles = startSketchOn("XY")
|
||||||
|
|> circle(%, center = [0, mountingHolePlacementDiameter / 2], radius = mountingHoleDiameter / 2)
|
||||||
|
|> patternCircular2d(
|
||||||
|
%,
|
||||||
|
instances = 4,
|
||||||
|
center = [0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = false,
|
||||||
|
)
|
||||||
|
|
||||||
|
// create the flange base
|
||||||
|
flangeBase = startSketchOn("XY")
|
||||||
|
|> circle(%, center = [0, 0], radius = flangeDiameter / 2)
|
||||||
|
|> hole(mountingHoles, %)
|
||||||
|
|> extrude(%, length = flangeBaseThickness)
|
||||||
|
|
||||||
|
// create both the raised portions on the front and back of the flange base
|
||||||
|
flangeBack = startSketchOn(flangeBase, 'start')
|
||||||
|
|> circle(%, center = [0, 0], radius = flangeBackDiameter / 2)
|
||||||
|
|> extrude(%, length = flangeBackHeight)
|
||||||
|
flangeFront = startSketchOn(flangeBase, 'end')
|
||||||
|
|> circle(%, center = [0, 0], radius = flangeFrontDiameter / 2)
|
||||||
|
|> extrude(%, length = flangeFrontHeight)
|
||||||
|
|
||||||
|
// create the circular cut in the center for the pipe
|
||||||
|
pipeCut = startSketchOn(flangeFront, 'end')
|
||||||
|
|> circle(%, center = [0, 0], radius = pipeDiameter / 2)
|
||||||
|
|> extrude(%, length = -flangeTotalThickness)
|
||||||
|
|> appearance(%, color = "#bab0b0")
|
||||||
|
|
||||||
|
return pipeCut
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.mcmaster.com/68095K348/
|
56
public/kcl-samples/pipe-flange-assembly/91251a404-bolt.kcl
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// 91251A404 Socket Head Cap Screw
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import boltDiameter, boltLength, boltHeadLength, boltHeadDiameter, boltHexDrive, boltHexFlatLength, boltThreadLength from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to make a the bolt
|
||||||
|
export fn bolt() {
|
||||||
|
|
||||||
|
// Create the head of the cap screw
|
||||||
|
boltHead = startSketchOn('XZ')
|
||||||
|
|> circle(center = [0, 0], radius = boltHeadDiameter / 2, tag = $topEdge)
|
||||||
|
|> extrude(length = -boltHeadLength)
|
||||||
|
|> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)])
|
||||||
|
|
||||||
|
// Define the sketch of the hex pattern on the screw head and extrude into the head
|
||||||
|
hexPatternSketch = startSketchOn(boltHead, 'start')
|
||||||
|
|> startProfileAt([
|
||||||
|
boltHexDrive / 2,
|
||||||
|
boltHexFlatLength / 2
|
||||||
|
], %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 270,
|
||||||
|
length = boltHexFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 210,
|
||||||
|
length = boltHexFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 150,
|
||||||
|
length = boltHexFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 90,
|
||||||
|
length = boltHexFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 30,
|
||||||
|
length = boltHexFlatLength
|
||||||
|
}, %)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = -boltHeadLength * 0.75)
|
||||||
|
|
||||||
|
// create the body of the bolt
|
||||||
|
boltBody = startSketchOn(boltHead, 'end')
|
||||||
|
|> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge)
|
||||||
|
|> extrude(length = boltLength)
|
||||||
|
|> appearance(color = "#4dd043", metalness = 90, roughness = 90)
|
||||||
|
|
||||||
|
return boltBody
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.mcmaster.com/91251a404/
|
26
public/kcl-samples/pipe-flange-assembly/9472k188-gasket.kcl
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// 9472K188 Gasket
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import gasketOutsideDiameter, gasketInnerDiameter, gasketThickness from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to make the gasket
|
||||||
|
export fn gasket() {
|
||||||
|
|
||||||
|
// create the base of the gasket
|
||||||
|
gasketBase = startSketchOn("XY")
|
||||||
|
|> circle(%, center = [0, 0], radius = gasketOutsideDiameter / 2)
|
||||||
|
|> extrude(%, length = gasketThickness)
|
||||||
|
|
||||||
|
// extrude a circular hole through the gasket base
|
||||||
|
gasket = startSketchOn(gasketBase, 'end')
|
||||||
|
|> circle(%, center = [0, 0], radius = gasketInnerDiameter / 2)
|
||||||
|
|> extrude(%, length = -gasketThickness)
|
||||||
|
|> appearance(%, color = "#d0cb3e")
|
||||||
|
|
||||||
|
return gasket
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.mcmaster.com/9472K616/
|
@ -0,0 +1,49 @@
|
|||||||
|
// 95479A127 Hex Nut
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import hexNutDiameter, hexNutFlatToFlat, hexNutThickness, hexNutFlatLength from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to make the hex nut
|
||||||
|
export fn hexNut() {
|
||||||
|
|
||||||
|
// create the base of the hex nut
|
||||||
|
hexNutBase = startSketchOn('XY')
|
||||||
|
|> startProfileAt([
|
||||||
|
hexNutFlatToFlat / 2,
|
||||||
|
hexNutFlatLength / 2
|
||||||
|
], %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 270,
|
||||||
|
length = hexNutFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 210,
|
||||||
|
length = hexNutFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 150,
|
||||||
|
length = hexNutFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 90,
|
||||||
|
length = hexNutFlatLength
|
||||||
|
}, %)
|
||||||
|
|> angledLine({
|
||||||
|
angle = 30,
|
||||||
|
length = hexNutFlatLength
|
||||||
|
}, %)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = hexNutThickness)
|
||||||
|
|
||||||
|
// create the hole in the center of the hex nut
|
||||||
|
hexNut = startSketchOn(hexNutBase, 'end')
|
||||||
|
|> circle(center = [0, 0], radius = hexNutDiameter / 2)
|
||||||
|
|> extrude(%, length = -hexNutThickness)
|
||||||
|
|> appearance(%, color = "#4edfd5")
|
||||||
|
|
||||||
|
return hexNut
|
||||||
|
}
|
||||||
|
// https://www.mcmaster.com/95479A127/
|
26
public/kcl-samples/pipe-flange-assembly/98017a257-washer.kcl
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// 98017A257 Washer
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import washerInnerDia, washerOuterDia, washerThickness from "globals.kcl"
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to make the washer
|
||||||
|
export fn washer() {
|
||||||
|
|
||||||
|
// create the base of the washer
|
||||||
|
washerBase = startSketchOn('XY')
|
||||||
|
|> circle(center = [0, 0], radius = washerOuterDia / 2)
|
||||||
|
|> extrude(length = washerThickness)
|
||||||
|
|
||||||
|
// extrude a hole through the washer
|
||||||
|
washer = startSketchOn(washerBase, 'end')
|
||||||
|
|> circle(center = [0, 0], radius = washerInnerDia / 2)
|
||||||
|
|> extrude(%, length = -washerThickness)
|
||||||
|
|> appearance(%, color = "#ee4f4f")
|
||||||
|
|
||||||
|
return washer
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.mcmaster.com/98017A257/
|
48
public/kcl-samples/pipe-flange-assembly/globals.kcl
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Globals
|
||||||
|
|
||||||
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// flange (68095K348)
|
||||||
|
export pipeDiameter = 2.440
|
||||||
|
export mountingHoleDiameter = 0.750
|
||||||
|
export mountingHolePlacementDiameter = 4.750
|
||||||
|
|
||||||
|
export flangeDiameter = 6.0
|
||||||
|
export flangeTotalThickness = 1.0
|
||||||
|
export flangeBackHeight = 0.060
|
||||||
|
export flangeFrontHeight = 0.250
|
||||||
|
export flangeBaseThickness = flangeTotalThickness - flangeBackHeight - flangeFrontHeight
|
||||||
|
|
||||||
|
export flangeBackDiameter = 3.620
|
||||||
|
export flangeFrontDiameter = 3.060
|
||||||
|
|
||||||
|
// washer (98017A257)
|
||||||
|
export washerInnerDia = 0.640
|
||||||
|
export washerOuterDia = 1.188
|
||||||
|
export washerThickness = 0.032
|
||||||
|
|
||||||
|
// bolt (91251A404)
|
||||||
|
export boltDiameter = 0.625
|
||||||
|
export boltLength = 2.500
|
||||||
|
export boltHeadLength = boltDiameter
|
||||||
|
export boltHeadDiameter = 0.938
|
||||||
|
export boltHexDrive = 1 / 2
|
||||||
|
export boltHexFlatLength = boltHexDrive / (2 * cos(toRadians(30)))
|
||||||
|
export boltThreadLength = 1.750
|
||||||
|
|
||||||
|
// hex nut (95479A127)
|
||||||
|
export hexNutDiameter = 5 / 8
|
||||||
|
export hexNutFlatToFlat = 15 / 16
|
||||||
|
export hexNutThickness = 35 / 64
|
||||||
|
export hexNutFlatLength = hexNutFlatToFlat / (2 * cos(toRadians(30)))
|
||||||
|
|
||||||
|
// gasket (9472K188)
|
||||||
|
export gasketOutsideDiameter = 4.125
|
||||||
|
export gasketInnerDiameter = 2.375
|
||||||
|
export gasketThickness = 0.031
|
||||||
|
|
||||||
|
// pipe (1120T74)
|
||||||
|
export pipeInnerDiameter = 2.0
|
||||||
|
export pipeOuterDiameter = 2.375
|
||||||
|
export pipeLength = 6
|
@ -1,304 +1,58 @@
|
|||||||
// Pipe and Flange Assembly
|
// Pipe and Flange Assembly
|
||||||
// A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint.
|
// A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint.
|
||||||
|
|
||||||
|
// set units
|
||||||
// Set units
|
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import * from 'globals.kcl'
|
||||||
|
|
||||||
// Define constants
|
// import parts
|
||||||
flangeThickness = .125
|
import flange from '68095k348-flange.kcl'
|
||||||
flangeBaseDia = 2
|
import gasket from '9472k188-gasket.kcl'
|
||||||
boreHeight = 1
|
import washer from '98017a257-washer.kcl'
|
||||||
flangePipeDia = 1
|
import bolt from '91251a404-bolt.kcl'
|
||||||
mountingHoleDia = 0.425
|
import hexNut from '95479a127-hex-nut.kcl'
|
||||||
screwDia = 0.375
|
import pipe from '1120t74-pipe.kcl'
|
||||||
tol = 0.010
|
|
||||||
hexNutScale = 0.90
|
// place flanges
|
||||||
wallThickness = 0.5
|
flange()
|
||||||
screwLength = 1.125
|
flange()
|
||||||
washerThickness = 0.0625
|
|> rotate(axis = [0, 1, 0], angle = 180)
|
||||||
screwStart = [
|
|> 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,
|
0,
|
||||||
flangeThickness + washerThickness,
|
flangeBaseThickness
|
||||||
1.375
|
])
|
||||||
]
|
|> patternCircular3d(%, instances = 4, axis = [0, 0, 1], center = [0, 0, 0], arcDegrees = 360, rotateDuplicates = false)
|
||||||
capRatio = .190 / .313 // Ratio grabbed from another screw
|
|> patternLinear3d(%, instances = 2, distance = -(flangeBaseThickness*2 + flangeBackHeight * 2 + gasketThickness + washerThickness), axis = [0, 0, 1])
|
||||||
hexRatio = 5 / 32 / .190 // Ratio grabbed from another screw
|
|
||||||
hexStartingAngle = 210 // first angle of hex pattern (degrees)
|
|
||||||
hexInteriorAngle = 120 // degrees
|
|
||||||
hexChangeAngle = 180 - hexInteriorAngle // degrees
|
|
||||||
|
|
||||||
|
// place 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 = {
|
// place four hex nuts
|
||||||
plane = {
|
hexNut()
|
||||||
origin = {
|
|> translate(translate = [mountingHolePlacementDiameter/2, 0, -(flangeBackHeight * 2 + gasketThickness + flangeBaseThickness + washerThickness + hexNutThickness)])
|
||||||
x = screwStart[0],
|
|> patternCircular3d(%, instances = 4, axis = [0, 0, 1], center = [0, 0, 0], arcDegrees = 360, rotateDuplicates = false)
|
||||||
y = screwStart[1],
|
|
||||||
z = screwStart[2]
|
|
||||||
},
|
|
||||||
xAxis = { x = 1, y = 0, z = 0 },
|
|
||||||
yAxis = { x = 0, y = 0, z = 1 },
|
|
||||||
zAxis = { x = 0, y = 1, z = 0 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn capScrew(start, length, dia) {
|
// place both pieces of pipe
|
||||||
headLength = dia // inch
|
pipe()
|
||||||
wallToWallLength = hexRatio * dia
|
|> rotate(%, roll = -90, pitch = 0, yaw = 0)
|
||||||
headDia = dia / capRatio
|
|> translate(%, translate = [0, 0, flangeBaseThickness + flangeFrontHeight - 0.5], global = true)
|
||||||
hexWallLength = wallToWallLength / 2 * 1 / cos(toRadians(30)) // inch
|
|
||||||
|
|
||||||
|
pipe()
|
||||||
// Length of Cap Head is always equal to diameter
|
|> rotate(%, roll = 90, pitch = 0, yaw = 0)
|
||||||
capHeadLength = dia
|
|> translate(%, translate = [0, 0, -(flangeBackHeight * 2 + gasketThickness + flangeBaseThickness + flangeFrontHeight - 0.5)], global = true)
|
||||||
|
|
||||||
// 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")
|
|
@ -0,0 +1,269 @@
|
|||||||
|
ISO-10303-21;
|
||||||
|
HEADER;
|
||||||
|
FILE_DESCRIPTION (( 'STEP AP203' ),
|
||||||
|
'1' );
|
||||||
|
FILE_NAME ('1120T74_Standard-Wall Steel Unthreaded Pipe Nipple.STEP',
|
||||||
|
'2021-07-09T13:29:34',
|
||||||
|
( 'Administrator' ),
|
||||||
|
( 'Managed by Terraform' ),
|
||||||
|
'SwSTEP 2.0',
|
||||||
|
'SolidWorks 2017',
|
||||||
|
'' );
|
||||||
|
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
|
||||||
|
ENDSEC;
|
||||||
|
|
||||||
|
DATA;
|
||||||
|
#1 = EDGE_LOOP ( 'NONE', ( #200, #99 ) ) ;
|
||||||
|
#2 = CALENDAR_DATE ( 2021, 9, 7 ) ;
|
||||||
|
#3 = AXIS2_PLACEMENT_3D ( 'NONE', #146, #228, #22 ) ;
|
||||||
|
#4 = CALENDAR_DATE ( 2021, 9, 7 ) ;
|
||||||
|
#5 = VECTOR ( 'NONE', #122, 39.37007874015748100 ) ;
|
||||||
|
#6 = APPROVAL_PERSON_ORGANIZATION ( #191, #189, #47 ) ;
|
||||||
|
#7 = MANIFOLD_SOLID_BREP ( 'Extrude1', #114 ) ;
|
||||||
|
#8 = CALENDAR_DATE ( 2021, 9, 7 ) ;
|
||||||
|
#9 = ORIENTED_EDGE ( 'NONE', *, *, #48, .F. ) ;
|
||||||
|
#10 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#11 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#12 = AXIS2_PLACEMENT_3D ( 'NONE', #162, #203, #157 ) ;
|
||||||
|
#13 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#14 = ADVANCED_FACE ( 'NONE', ( #107, #218 ), #177, .T. ) ;
|
||||||
|
#15 = CIRCLE ( 'NONE', #193, 1.187500000000000000 ) ;
|
||||||
|
#16 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
|
||||||
|
#17 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#18 = AXIS2_PLACEMENT_3D ( 'NONE', #10, #245, #31 ) ;
|
||||||
|
#19 = LINE ( 'NONE', #137, #80 ) ;
|
||||||
|
#20 = CC_DESIGN_APPROVAL ( #189, ( #105 ) ) ;
|
||||||
|
#21 = ADVANCED_FACE ( 'NONE', ( #142, #60 ), #74, .F. ) ;
|
||||||
|
#22 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#23 = ORIENTED_EDGE ( 'NONE', *, *, #185, .T. ) ;
|
||||||
|
#24 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #241, #211, ( #198 ) ) ;
|
||||||
|
#25 = APPROVAL_DATE_TIME ( #135, #90 ) ;
|
||||||
|
#26 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#27 = ORIENTED_EDGE ( 'NONE', *, *, #28, .T. ) ;
|
||||||
|
#28 = EDGE_CURVE ( 'NONE', #237, #240, #110, .T. ) ;
|
||||||
|
#29 = EDGE_LOOP ( 'NONE', ( #9, #222 ) ) ;
|
||||||
|
#30 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#31 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#32 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#33 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#34 = VERTEX_POINT ( 'NONE', #201 ) ;
|
||||||
|
#35 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#36 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#37 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#38 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#39 = EDGE_CURVE ( 'NONE', #112, #34, #43, .T. ) ;
|
||||||
|
#40 = EDGE_CURVE ( 'NONE', #72, #121, #187, .T. ) ;
|
||||||
|
#41 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #165 );
|
||||||
|
#42 = APPROVAL_DATE_TIME ( #87, #235 ) ;
|
||||||
|
#43 = CIRCLE ( 'NONE', #156, 1.187500000000000000 ) ;
|
||||||
|
#44 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#45 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#46 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#47 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#48 = EDGE_CURVE ( 'NONE', #202, #71, #15, .T. ) ;
|
||||||
|
#49 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #173 ) ;
|
||||||
|
#50 = EDGE_LOOP ( 'NONE', ( #54, #247, #232, #126 ) ) ;
|
||||||
|
#51 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#52 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#53 = CALENDAR_DATE ( 2021, 9, 7 ) ;
|
||||||
|
#54 = ORIENTED_EDGE ( 'NONE', *, *, #229, .F. ) ;
|
||||||
|
#55 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#56 = ORIENTED_EDGE ( 'NONE', *, *, #152, .T. ) ;
|
||||||
|
#57 = FACE_OUTER_BOUND ( 'NONE', #220, .T. ) ;
|
||||||
|
#58 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#59 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#60 = FACE_BOUND ( 'NONE', #153, .T. ) ;
|
||||||
|
#61 = AXIS2_PLACEMENT_3D ( 'NONE', #13, #183, #35 ) ;
|
||||||
|
#62 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#63 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#64 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #115 ) ;
|
||||||
|
#65 = ORIENTED_EDGE ( 'NONE', *, *, #48, .T. ) ;
|
||||||
|
#66 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
|
||||||
|
#67 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#68 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
|
||||||
|
#69 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #120 ) ;
|
||||||
|
#70 = ORIENTED_EDGE ( 'NONE', *, *, #88, .T. ) ;
|
||||||
|
#71 = VERTEX_POINT ( 'NONE', #117 ) ;
|
||||||
|
#72 = VERTEX_POINT ( 'NONE', #160 ) ;
|
||||||
|
#73 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#74 = PLANE ( 'NONE', #119 ) ;
|
||||||
|
#75 = CYLINDRICAL_SURFACE ( 'NONE', #86, 1.033499999999999900 ) ;
|
||||||
|
#76 = CC_DESIGN_APPROVAL ( #235, ( #198 ) ) ;
|
||||||
|
#77 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#78 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#79 = AXIS2_PLACEMENT_3D ( 'NONE', #252, #37, #124 ) ;
|
||||||
|
#80 = VECTOR ( 'NONE', #44, 39.37007874015748100 ) ;
|
||||||
|
#81 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#82 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#83 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
|
||||||
|
#84 = ORIENTED_EDGE ( 'NONE', *, *, #215, .T. ) ;
|
||||||
|
#85 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
|
||||||
|
#86 = AXIS2_PLACEMENT_3D ( 'NONE', #46, #63, #78 ) ;
|
||||||
|
#87 = DATE_AND_TIME ( #140, #64 ) ;
|
||||||
|
#88 = EDGE_CURVE ( 'NONE', #72, #240, #158, .T. ) ;
|
||||||
|
#89 = VECTOR ( 'NONE', #138, 39.37007874015748100 ) ;
|
||||||
|
#90 = APPROVAL ( #171, 'UNSPECIFIED' ) ;
|
||||||
|
#91 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#92 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#93 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#94 = CIRCLE ( 'NONE', #18, 1.187500000000000000 ) ;
|
||||||
|
#95 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#96 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #105, #154 ) ;
|
||||||
|
#97 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#98 = AXIS2_PLACEMENT_3D ( 'NONE', #141, #30, #181 ) ;
|
||||||
|
#99 = ORIENTED_EDGE ( 'NONE', *, *, #229, .T. ) ;
|
||||||
|
#100 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
|
||||||
|
#101 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, 3.000000000000000400 ) ) ;
|
||||||
|
#102 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#103 = CC_DESIGN_SECURITY_CLASSIFICATION ( #198, ( #105 ) ) ;
|
||||||
|
#104 = CYLINDRICAL_SURFACE ( 'NONE', #3, 1.033499999999999900 ) ;
|
||||||
|
#105 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #230, .NOT_KNOWN. ) ;
|
||||||
|
#106 = DATE_TIME_ROLE ( 'creation_date' ) ;
|
||||||
|
#107 = FACE_OUTER_BOUND ( 'NONE', #1, .T. ) ;
|
||||||
|
#108 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #207, #67, ( #105 ) ) ;
|
||||||
|
#109 = LINE ( 'NONE', #101, #155 ) ;
|
||||||
|
#110 = CIRCLE ( 'NONE', #217, 1.033499999999999900 ) ;
|
||||||
|
#111 = EDGE_CURVE ( 'NONE', #34, #71, #19, .T. ) ;
|
||||||
|
#112 = VERTEX_POINT ( 'NONE', #77 ) ;
|
||||||
|
#113 = AXIS2_PLACEMENT_3D ( 'NONE', #81, #17, #233 ) ;
|
||||||
|
#114 = CLOSED_SHELL ( 'NONE', ( #248, #148, #14, #21, #167, #170 ) ) ;
|
||||||
|
#115 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#116 = ORIENTED_EDGE ( 'NONE', *, *, #185, .F. ) ;
|
||||||
|
#117 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, -3.000000000000000400 ) ) ;
|
||||||
|
#118 = CYLINDRICAL_SURFACE ( 'NONE', #98, 1.187500000000000000 ) ;
|
||||||
|
#119 = AXIS2_PLACEMENT_3D ( 'NONE', #92, #246, #62 ) ;
|
||||||
|
#120 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#121 = VERTEX_POINT ( 'NONE', #179 ) ;
|
||||||
|
#122 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#123 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#124 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#125 = FACE_OUTER_BOUND ( 'NONE', #163, .T. ) ;
|
||||||
|
#126 = ORIENTED_EDGE ( 'NONE', *, *, #152, .F. ) ;
|
||||||
|
#127 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #230 ) ) ;
|
||||||
|
#128 = CYLINDRICAL_SURFACE ( 'NONE', #150, 1.187500000000000000 ) ;
|
||||||
|
#129 = ORIENTED_EDGE ( 'NONE', *, *, #28, .F. ) ;
|
||||||
|
#130 = APPROVAL_PERSON_ORGANIZATION ( #82, #235, #234 ) ;
|
||||||
|
#131 = CIRCLE ( 'NONE', #161, 1.033499999999999900 ) ;
|
||||||
|
#132 = CC_DESIGN_APPROVAL ( #90, ( #96 ) ) ;
|
||||||
|
#133 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #147, #231, ( #230 ) ) ;
|
||||||
|
#134 = EDGE_CURVE ( 'NONE', #71, #202, #94, .T. ) ;
|
||||||
|
#135 = DATE_AND_TIME ( #8, #69 ) ;
|
||||||
|
#136 = ORIENTED_EDGE ( 'NONE', *, *, #88, .F. ) ;
|
||||||
|
#137 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 3.000000000000000400 ) ) ;
|
||||||
|
#138 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#139 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#140 = CALENDAR_DATE ( 2021, 9, 7 ) ;
|
||||||
|
#141 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#142 = FACE_OUTER_BOUND ( 'NONE', #29, .T. ) ;
|
||||||
|
#143 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#144 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #169 ) ;
|
||||||
|
#145 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
|
||||||
|
#146 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#147 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#148 = ADVANCED_FACE ( 'NONE', ( #174 ), #118, .T. ) ;
|
||||||
|
#149 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #55, #143, ( #96 ) ) ;
|
||||||
|
#150 = AXIS2_PLACEMENT_3D ( 'NONE', #59, #159, #45 ) ;
|
||||||
|
#151 = ORIENTED_EDGE ( 'NONE', *, *, #199, .T. ) ;
|
||||||
|
#152 = EDGE_CURVE ( 'NONE', #112, #202, #208, .T. ) ;
|
||||||
|
#153 = EDGE_LOOP ( 'NONE', ( #151, #27 ) ) ;
|
||||||
|
#154 = DESIGN_CONTEXT ( 'detailed design', #36, 'design' ) ;
|
||||||
|
#155 = VECTOR ( 'NONE', #188, 39.37007874015748100 ) ;
|
||||||
|
#156 = AXIS2_PLACEMENT_3D ( 'NONE', #225, #139, #223 ) ;
|
||||||
|
#157 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#158 = LINE ( 'NONE', #97, #5 ) ;
|
||||||
|
#159 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#160 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#161 = AXIS2_PLACEMENT_3D ( 'NONE', #51, #186, #190 ) ;
|
||||||
|
#162 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#163 = EDGE_LOOP ( 'NONE', ( #176, #23, #70, #129 ) ) ;
|
||||||
|
#164 =( CONVERSION_BASED_UNIT ( 'INCH', #41 ) LENGTH_UNIT ( ) NAMED_UNIT ( #68 ) );
|
||||||
|
#165 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
|
||||||
|
#166 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #36 ) ;
|
||||||
|
#167 = ADVANCED_FACE ( 'NONE', ( #251 ), #128, .T. ) ;
|
||||||
|
#168 = CIRCLE ( 'NONE', #61, 1.033499999999999900 ) ;
|
||||||
|
#169 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#170 = ADVANCED_FACE ( 'NONE', ( #125 ), #75, .F. ) ;
|
||||||
|
#171 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#172 = AXIS2_PLACEMENT_3D ( 'NONE', #26, #73, #93 ) ;
|
||||||
|
#173 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#174 = FACE_OUTER_BOUND ( 'NONE', #50, .T. ) ;
|
||||||
|
#175 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #204 ) ;
|
||||||
|
#176 = ORIENTED_EDGE ( 'NONE', *, *, #215, .F. ) ;
|
||||||
|
#177 = PLANE ( 'NONE', #172 ) ;
|
||||||
|
#178 = ORIENTED_EDGE ( 'NONE', *, *, #40, .T. ) ;
|
||||||
|
#179 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, 3.000000000000000400 ) ) ;
|
||||||
|
#180 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #192 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #164, #145, #212 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
|
||||||
|
#181 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#182 = EDGE_LOOP ( 'NONE', ( #227, #116 ) ) ;
|
||||||
|
#183 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#184 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#185 = EDGE_CURVE ( 'NONE', #121, #72, #168, .T. ) ;
|
||||||
|
#186 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#187 = CIRCLE ( 'NONE', #12, 1.033499999999999900 ) ;
|
||||||
|
#188 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#189 = APPROVAL ( #123, 'UNSPECIFIED' ) ;
|
||||||
|
#190 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#191 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#192 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #164, 'distance_accuracy_value', 'NONE');
|
||||||
|
#193 = AXIS2_PLACEMENT_3D ( 'NONE', #224, #184, #244 ) ;
|
||||||
|
#194 = ORIENTED_EDGE ( 'NONE', *, *, #111, .F. ) ;
|
||||||
|
#195 = EDGE_LOOP ( 'NONE', ( #194, #243, #56, #65 ) ) ;
|
||||||
|
#196 = APPROVAL_DATE_TIME ( #236, #189 ) ;
|
||||||
|
#197 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #33, #85, ( #105 ) ) ;
|
||||||
|
#198 = SECURITY_CLASSIFICATION ( '', '', #66 ) ;
|
||||||
|
#199 = EDGE_CURVE ( 'NONE', #240, #237, #131, .T. ) ;
|
||||||
|
#200 = ORIENTED_EDGE ( 'NONE', *, *, #39, .T. ) ;
|
||||||
|
#201 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 3.000000000000000400 ) ) ;
|
||||||
|
#202 = VERTEX_POINT ( 'NONE', #32 ) ;
|
||||||
|
#203 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#204 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#205 = CARTESIAN_POINT ( 'NONE', ( -1.033499999999999900, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#206 = CARTESIAN_POINT ( 'NONE', ( 1.033499999999999900, 1.265672466918789100E-016, -3.000000000000000400 ) ) ;
|
||||||
|
#207 = PERSON_AND_ORGANIZATION ( #83, #100 ) ;
|
||||||
|
#208 = LINE ( 'NONE', #221, #89 ) ;
|
||||||
|
#209 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#210 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #38, #16, ( #198 ) ) ;
|
||||||
|
#211 = DATE_TIME_ROLE ( 'classification_date' ) ;
|
||||||
|
#212 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
|
||||||
|
#213 = CIRCLE ( 'NONE', #113, 1.187500000000000000 ) ;
|
||||||
|
#214 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #96 ) ;
|
||||||
|
#215 = EDGE_CURVE ( 'NONE', #121, #237, #109, .T. ) ;
|
||||||
|
#216 = DATE_AND_TIME ( #53, #175 ) ;
|
||||||
|
#217 = AXIS2_PLACEMENT_3D ( 'NONE', #102, #11, #95 ) ;
|
||||||
|
#218 = FACE_BOUND ( 'NONE', #182, .T. ) ;
|
||||||
|
#219 = APPROVAL_PERSON_ORGANIZATION ( #58, #90, #52 ) ;
|
||||||
|
#220 = EDGE_LOOP ( 'NONE', ( #178, #84, #242, #136 ) ) ;
|
||||||
|
#221 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#222 = ORIENTED_EDGE ( 'NONE', *, *, #134, .F. ) ;
|
||||||
|
#223 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#224 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -3.000000000000000400 ) ) ;
|
||||||
|
#225 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 3.000000000000000400 ) ) ;
|
||||||
|
#226 = LOCAL_TIME ( 8, 29, 34.00000000000000000, #91 ) ;
|
||||||
|
#227 = ORIENTED_EDGE ( 'NONE', *, *, #40, .F. ) ;
|
||||||
|
#228 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#229 = EDGE_CURVE ( 'NONE', #34, #112, #213, .T. ) ;
|
||||||
|
#230 = PRODUCT ( '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', '', ( #249 ) ) ;
|
||||||
|
#231 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
|
||||||
|
#232 = ORIENTED_EDGE ( 'NONE', *, *, #134, .T. ) ;
|
||||||
|
#233 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#234 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#235 = APPROVAL ( #209, 'UNSPECIFIED' ) ;
|
||||||
|
#236 = DATE_AND_TIME ( #2, #226 ) ;
|
||||||
|
#237 = VERTEX_POINT ( 'NONE', #206 ) ;
|
||||||
|
#238 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #216, #106, ( #96 ) ) ;
|
||||||
|
#239 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '1120T74_Standard-Wall Steel Unthreaded Pipe Nipple', ( #7, #79 ), #180 ) ;
|
||||||
|
#240 = VERTEX_POINT ( 'NONE', #205 ) ;
|
||||||
|
#241 = DATE_AND_TIME ( #4, #49 ) ;
|
||||||
|
#242 = ORIENTED_EDGE ( 'NONE', *, *, #199, .F. ) ;
|
||||||
|
#243 = ORIENTED_EDGE ( 'NONE', *, *, #39, .F. ) ;
|
||||||
|
#244 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#245 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#246 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#247 = ORIENTED_EDGE ( 'NONE', *, *, #111, .T. ) ;
|
||||||
|
#248 = ADVANCED_FACE ( 'NONE', ( #57 ), #104, .F. ) ;
|
||||||
|
#249 = MECHANICAL_CONTEXT ( 'NONE', #169, 'mechanical' ) ;
|
||||||
|
#250 = SHAPE_DEFINITION_REPRESENTATION ( #214, #239 ) ;
|
||||||
|
#251 = FACE_OUTER_BOUND ( 'NONE', #195, .T. ) ;
|
||||||
|
#252 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
ENDSEC;
|
||||||
|
END-ISO-10303-21;
|
@ -0,0 +1,935 @@
|
|||||||
|
ISO-10303-21;
|
||||||
|
HEADER;
|
||||||
|
FILE_DESCRIPTION (( 'STEP AP203' ),
|
||||||
|
'1' );
|
||||||
|
FILE_NAME ('68095K348_Low-Pressure Steel Unthreaded Pipe Flange.STEP',
|
||||||
|
'2023-02-07T16:53:08',
|
||||||
|
( 'Administrator' ),
|
||||||
|
( 'Managed by Terraform' ),
|
||||||
|
'SwSTEP 2.0',
|
||||||
|
'SolidWorks 2017',
|
||||||
|
'' );
|
||||||
|
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
|
||||||
|
ENDSEC;
|
||||||
|
|
||||||
|
DATA;
|
||||||
|
#1 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#2 = PLANE ( 'NONE', #478 ) ;
|
||||||
|
#3 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#4 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
|
||||||
|
#5 = ADVANCED_FACE ( 'NONE', ( #454 ), #796, .F. ) ;
|
||||||
|
#6 = EDGE_LOOP ( 'NONE', ( #731, #231, #839, #562 ) ) ;
|
||||||
|
#7 = EDGE_LOOP ( 'NONE', ( #351, #304, #227, #362 ) ) ;
|
||||||
|
#8 = FACE_OUTER_BOUND ( 'NONE', #275, .T. ) ;
|
||||||
|
#9 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#10 = EDGE_CURVE ( 'NONE', #561, #199, #238, .T. ) ;
|
||||||
|
#11 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#12 = ORIENTED_EDGE ( 'NONE', *, *, #105, .F. ) ;
|
||||||
|
#13 = ORIENTED_EDGE ( 'NONE', *, *, #197, .F. ) ;
|
||||||
|
#14 = CIRCLE ( 'NONE', #559, 0.05999999999999990800 ) ;
|
||||||
|
#15 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#16 = DATE_AND_TIME ( #483, #678 ) ;
|
||||||
|
#17 = CIRCLE ( 'NONE', #51, 3.000000000000000400 ) ;
|
||||||
|
#18 = AXIS2_PLACEMENT_3D ( 'NONE', #250, #616, #825 ) ;
|
||||||
|
#19 = EDGE_CURVE ( 'NONE', #574, #144, #56, .T. ) ;
|
||||||
|
#20 = AXIS2_PLACEMENT_3D ( 'NONE', #1, #845, #205 ) ;
|
||||||
|
#21 = ORIENTED_EDGE ( 'NONE', *, *, #764, .F. ) ;
|
||||||
|
#22 = CARTESIAN_POINT ( 'NONE', ( 1.583083515873356900, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
|
||||||
|
#23 = ORIENTED_EDGE ( 'NONE', *, *, #682, .T. ) ;
|
||||||
|
#24 = FACE_OUTER_BOUND ( 'NONE', #7, .T. ) ;
|
||||||
|
#25 = EDGE_CURVE ( 'NONE', #691, #614, #607, .T. ) ;
|
||||||
|
#26 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#27 = VERTEX_POINT ( 'NONE', #760 ) ;
|
||||||
|
#28 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#29 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#30 = AXIS2_PLACEMENT_3D ( 'NONE', #797, #584, #660 ) ;
|
||||||
|
#31 = VERTEX_POINT ( 'NONE', #809 ) ;
|
||||||
|
#32 = EDGE_LOOP ( 'NONE', ( #13, #696, #367, #300 ) ) ;
|
||||||
|
#33 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#34 = VECTOR ( 'NONE', #158, 39.37007874015748100 ) ;
|
||||||
|
#35 = VECTOR ( 'NONE', #541, 39.37007874015748100 ) ;
|
||||||
|
#36 = EDGE_CURVE ( 'NONE', #768, #849, #78, .T. ) ;
|
||||||
|
#37 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#38 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#39 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#40 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#41 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#42 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#43 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#44 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#45 = ORIENTED_EDGE ( 'NONE', *, *, #898, .T. ) ;
|
||||||
|
#46 = ORIENTED_EDGE ( 'NONE', *, *, #558, .T. ) ;
|
||||||
|
#47 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#48 = VECTOR ( 'NONE', #826, 39.37007874015748100 ) ;
|
||||||
|
#49 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#50 = ORIENTED_EDGE ( 'NONE', *, *, #223, .T. ) ;
|
||||||
|
#51 = AXIS2_PLACEMENT_3D ( 'NONE', #42, #404, #40 ) ;
|
||||||
|
#52 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#53 = ORIENTED_EDGE ( 'NONE', *, *, #605, .T. ) ;
|
||||||
|
#54 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 3.637200993467639100E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#55 = EDGE_CURVE ( 'NONE', #199, #777, #245, .T. ) ;
|
||||||
|
#56 = CIRCLE ( 'NONE', #431, 1.505773112999396800 ) ;
|
||||||
|
#57 = ORIENTED_EDGE ( 'NONE', *, *, #487, .T. ) ;
|
||||||
|
#58 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#59 = VECTOR ( 'NONE', #97, 39.37007874015748100 ) ;
|
||||||
|
#60 = APPROVAL_DATE_TIME ( #310, #139 ) ;
|
||||||
|
#61 = TOROIDAL_SURFACE ( 'NONE', #253, 2.940000000000000400, 0.05999999999999999800 ) ;
|
||||||
|
#62 = ORIENTED_EDGE ( 'NONE', *, *, #537, .T. ) ;
|
||||||
|
#63 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
|
||||||
|
#64 = AXIS2_PLACEMENT_3D ( 'NONE', #549, #184, #557 ) ;
|
||||||
|
#65 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #279 ) ;
|
||||||
|
#66 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #569 ) ;
|
||||||
|
#67 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#68 = EDGE_CURVE ( 'NONE', #786, #90, #518, .T. ) ;
|
||||||
|
#69 = VERTEX_POINT ( 'NONE', #672 ) ;
|
||||||
|
#70 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#71 = ORIENTED_EDGE ( 'NONE', *, *, #682, .F. ) ;
|
||||||
|
#72 = CC_DESIGN_SECURITY_CLASSIFICATION ( #899, ( #508 ) ) ;
|
||||||
|
#73 = FACE_OUTER_BOUND ( 'NONE', #379, .T. ) ;
|
||||||
|
#74 = ORIENTED_EDGE ( 'NONE', *, *, #260, .T. ) ;
|
||||||
|
#75 = DIRECTION ( 'NONE', ( 0.1218693434051478800, 0.0000000000000000000, 0.9925461516413219800 ) ) ;
|
||||||
|
#76 = EDGE_CURVE ( 'NONE', #398, #578, #896, .T. ) ;
|
||||||
|
#77 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#78 = CIRCLE ( 'NONE', #774, 0.3749999999999999400 ) ;
|
||||||
|
#79 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#80 = ORIENTED_EDGE ( 'NONE', *, *, #700, .F. ) ;
|
||||||
|
#81 = AXIS2_PLACEMENT_3D ( 'NONE', #396, #256, #900 ) ;
|
||||||
|
#82 = FACE_OUTER_BOUND ( 'NONE', #192, .T. ) ;
|
||||||
|
#83 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#84 = FACE_OUTER_BOUND ( 'NONE', #251, .T. ) ;
|
||||||
|
#85 = ADVANCED_FACE ( 'NONE', ( #679 ), #221, .F. ) ;
|
||||||
|
#86 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#87 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
|
||||||
|
#88 = EDGE_CURVE ( 'NONE', #407, #263, #917, .T. ) ;
|
||||||
|
#89 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#90 = VERTEX_POINT ( 'NONE', #464 ) ;
|
||||||
|
#91 = VERTEX_POINT ( 'NONE', #765 ) ;
|
||||||
|
#92 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#93 = LINE ( 'NONE', #220, #543 ) ;
|
||||||
|
#94 = AXIS2_PLACEMENT_3D ( 'NONE', #70, #882, #335 ) ;
|
||||||
|
#95 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, -0.6250000000000000000 ) ) ;
|
||||||
|
#96 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#97 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#98 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#99 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#100 = AXIS2_PLACEMENT_3D ( 'NONE', #662, #875, #597 ) ;
|
||||||
|
#101 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#102 = ORIENTED_EDGE ( 'NONE', *, *, #823, .T. ) ;
|
||||||
|
#103 = ORIENTED_EDGE ( 'NONE', *, *, #105, .T. ) ;
|
||||||
|
#104 = TOROIDAL_SURFACE ( 'NONE', #162, 1.583083515873356900, 0.05999999999999999800 ) ;
|
||||||
|
#105 = EDGE_CURVE ( 'NONE', #31, #506, #17, .T. ) ;
|
||||||
|
#106 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#107 = CIRCLE ( 'NONE', #425, 0.05999999999999997700 ) ;
|
||||||
|
#108 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#109 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#110 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#111 = AXIS2_PLACEMENT_3D ( 'NONE', #273, #783, #631 ) ;
|
||||||
|
#112 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#113 = ORIENTED_EDGE ( 'NONE', *, *, #749, .T. ) ;
|
||||||
|
#114 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#115 = ORIENTED_EDGE ( 'NONE', *, *, #516, .F. ) ;
|
||||||
|
#116 = DATE_AND_TIME ( #883, #295 ) ;
|
||||||
|
#117 = FACE_BOUND ( 'NONE', #210, .T. ) ;
|
||||||
|
#118 = EDGE_CURVE ( 'NONE', #768, #91, #172, .T. ) ;
|
||||||
|
#119 = ORIENTED_EDGE ( 'NONE', *, *, #338, .F. ) ;
|
||||||
|
#120 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#121 = AXIS2_PLACEMENT_3D ( 'NONE', #773, #633, #264 ) ;
|
||||||
|
#122 = EDGE_LOOP ( 'NONE', ( #538, #46, #315, #481 ) ) ;
|
||||||
|
#123 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#124 = EDGE_CURVE ( 'NONE', #427, #674, #266, .T. ) ;
|
||||||
|
#125 = EDGE_LOOP ( 'NONE', ( #442, #525, #634, #134 ) ) ;
|
||||||
|
#126 = EDGE_LOOP ( 'NONE', ( #102, #816 ) ) ;
|
||||||
|
#127 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147359900E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#128 = CIRCLE ( 'NONE', #261, 0.3749999999999999400 ) ;
|
||||||
|
#129 = LINE ( 'NONE', #503, #638 ) ;
|
||||||
|
#130 = ORIENTED_EDGE ( 'NONE', *, *, #664, .F. ) ;
|
||||||
|
#131 = AXIS2_PLACEMENT_3D ( 'NONE', #880, #174, #762 ) ;
|
||||||
|
#132 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#133 = EDGE_CURVE ( 'NONE', #506, #31, #343, .T. ) ;
|
||||||
|
#134 = ORIENTED_EDGE ( 'NONE', *, *, #605, .F. ) ;
|
||||||
|
#135 = ORIENTED_EDGE ( 'NONE', *, *, #19, .T. ) ;
|
||||||
|
#136 = LINE ( 'NONE', #843, #148 ) ;
|
||||||
|
#137 = FACE_OUTER_BOUND ( 'NONE', #738, .T. ) ;
|
||||||
|
#138 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#139 = APPROVAL ( #350, 'UNSPECIFIED' ) ;
|
||||||
|
#140 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#141 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#142 = AXIS2_PLACEMENT_3D ( 'NONE', #222, #868, #746 ) ;
|
||||||
|
#143 = ORIENTED_EDGE ( 'NONE', *, *, #305, .T. ) ;
|
||||||
|
#144 = VERTEX_POINT ( 'NONE', #393 ) ;
|
||||||
|
#145 = CYLINDRICAL_SURFACE ( 'NONE', #601, 1.220000000000000000 ) ;
|
||||||
|
#146 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#147 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#148 = VECTOR ( 'NONE', #594, 39.37007874015748100 ) ;
|
||||||
|
#149 = CIRCLE ( 'NONE', #142, 0.05999999999999990800 ) ;
|
||||||
|
#150 = EDGE_CURVE ( 'NONE', #437, #27, #567, .T. ) ;
|
||||||
|
#151 = ADVANCED_FACE ( 'NONE', ( #736 ), #61, .T. ) ;
|
||||||
|
#152 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#153 = ORIENTED_EDGE ( 'NONE', *, *, #68, .T. ) ;
|
||||||
|
#154 = AXIS2_PLACEMENT_3D ( 'NONE', #37, #461, #324 ) ;
|
||||||
|
#155 = ORIENTED_EDGE ( 'NONE', *, *, #36, .F. ) ;
|
||||||
|
#156 = CIRCLE ( 'NONE', #492, 3.000000000000000400 ) ;
|
||||||
|
#157 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#158 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#159 = ADVANCED_FACE ( 'NONE', ( #668 ), #276, .F. ) ;
|
||||||
|
#160 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#161 = EDGE_CURVE ( 'NONE', #578, #398, #761, .T. ) ;
|
||||||
|
#162 = AXIS2_PLACEMENT_3D ( 'NONE', #547, #734, #289 ) ;
|
||||||
|
#163 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#164 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
|
||||||
|
#165 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
|
||||||
|
#166 = EDGE_LOOP ( 'NONE', ( #645, #168 ) ) ;
|
||||||
|
#167 = EDGE_CURVE ( 'NONE', #262, #772, #851, .T. ) ;
|
||||||
|
#168 = ORIENTED_EDGE ( 'NONE', *, *, #779, .T. ) ;
|
||||||
|
#169 = FACE_BOUND ( 'NONE', #126, .T. ) ;
|
||||||
|
#170 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#171 = SHAPE_DEFINITION_REPRESENTATION ( #445, #236 ) ;
|
||||||
|
#172 = LINE ( 'NONE', #694, #35 ) ;
|
||||||
|
#173 = AXIS2_PLACEMENT_3D ( 'NONE', #895, #886, #539 ) ;
|
||||||
|
#174 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#175 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#176 = ORIENTED_EDGE ( 'NONE', *, *, #450, .T. ) ;
|
||||||
|
#177 = CONICAL_SURFACE ( 'NONE', #364, 1.499303859774273800, 0.1221730476396034700 ) ;
|
||||||
|
#178 = EDGE_CURVE ( 'NONE', #614, #574, #460, .T. ) ;
|
||||||
|
#179 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#180 = FACE_OUTER_BOUND ( 'NONE', #586, .T. ) ;
|
||||||
|
#181 = EDGE_LOOP ( 'NONE', ( #377, #252, #787, #115 ) ) ;
|
||||||
|
#182 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#183 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#184 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#185 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#186 = EDGE_LOOP ( 'NONE', ( #359, #595, #365, #353 ) ) ;
|
||||||
|
#187 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#188 = EDGE_LOOP ( 'NONE', ( #176, #771 ) ) ;
|
||||||
|
#189 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#190 = FACE_BOUND ( 'NONE', #685, .T. ) ;
|
||||||
|
#191 = AXIS2_PLACEMENT_3D ( 'NONE', #189, #194, #891 ) ;
|
||||||
|
#192 = EDGE_LOOP ( 'NONE', ( #292, #573, #626, #417 ) ) ;
|
||||||
|
#193 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#194 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#195 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#196 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#197 = EDGE_CURVE ( 'NONE', #485, #540, #780, .T. ) ;
|
||||||
|
#198 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#199 = VERTEX_POINT ( 'NONE', #474 ) ;
|
||||||
|
#200 = ORIENTED_EDGE ( 'NONE', *, *, #55, .F. ) ;
|
||||||
|
#201 = CIRCLE ( 'NONE', #397, 1.583083515873356900 ) ;
|
||||||
|
#202 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#203 = CIRCLE ( 'NONE', #726, 1.870000000000000100 ) ;
|
||||||
|
#204 = AXIS2_PLACEMENT_3D ( 'NONE', #466, #41, #888 ) ;
|
||||||
|
#205 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#206 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
|
||||||
|
#207 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#208 = EDGE_CURVE ( 'NONE', #376, #777, #156, .T. ) ;
|
||||||
|
#209 = VERTEX_POINT ( 'NONE', #401 ) ;
|
||||||
|
#210 = EDGE_LOOP ( 'NONE', ( #847, #53 ) ) ;
|
||||||
|
#211 = CIRCLE ( 'NONE', #173, 0.3749999999999999400 ) ;
|
||||||
|
#212 = EDGE_CURVE ( 'NONE', #540, #554, #327, .T. ) ;
|
||||||
|
#213 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#214 = ORIENTED_EDGE ( 'NONE', *, *, #208, .F. ) ;
|
||||||
|
#215 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#216 = AXIS2_PLACEMENT_3D ( 'NONE', #456, #29, #813 ) ;
|
||||||
|
#217 = ORIENTED_EDGE ( 'NONE', *, *, #850, .T. ) ;
|
||||||
|
#218 = EDGE_LOOP ( 'NONE', ( #712, #135, #306, #698 ) ) ;
|
||||||
|
#219 = FACE_BOUND ( 'NONE', #544, .T. ) ;
|
||||||
|
#220 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, 0.3750000000000000600 ) ) ;
|
||||||
|
#221 = CYLINDRICAL_SURFACE ( 'NONE', #676, 0.3749999999999999400 ) ;
|
||||||
|
#222 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 3.600461589493218800E-016, -0.3150000000000002800 ) ) ;
|
||||||
|
#223 = EDGE_CURVE ( 'NONE', #674, #427, #531, .T. ) ;
|
||||||
|
#224 = ADVANCED_FACE ( 'NONE', ( #84, #842 ), #2, .F. ) ;
|
||||||
|
#225 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#226 = EDGE_LOOP ( 'NONE', ( #513, #534 ) ) ;
|
||||||
|
#227 = ORIENTED_EDGE ( 'NONE', *, *, #167, .F. ) ;
|
||||||
|
#228 = CIRCLE ( 'NONE', #204, 0.3749999999999999400 ) ;
|
||||||
|
#229 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#230 = CARTESIAN_POINT ( 'NONE', ( -1.583083515873356900, 1.938718160497244600E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#231 = ORIENTED_EDGE ( 'NONE', *, *, #794, .F. ) ;
|
||||||
|
#232 = CARTESIAN_POINT ( 'NONE', ( 1.870000000000000100, 2.290089514405550600E-016, 0.3750000000000000600 ) ) ;
|
||||||
|
#233 = AXIS2_PLACEMENT_3D ( 'NONE', #766, #52, #329 ) ;
|
||||||
|
#234 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
|
||||||
|
#235 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#236 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', ( #866, #20 ), #904 ) ;
|
||||||
|
#237 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#238 = CIRCLE ( 'NONE', #383, 2.940000000000000400 ) ;
|
||||||
|
#239 = EDGE_CURVE ( 'NONE', #348, #767, #872, .T. ) ;
|
||||||
|
#240 = EDGE_LOOP ( 'NONE', ( #818, #74 ) ) ;
|
||||||
|
#241 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#242 = LINE ( 'NONE', #604, #59 ) ;
|
||||||
|
#243 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#244 = VECTOR ( 'NONE', #96, 39.37007874015748100 ) ;
|
||||||
|
#245 = CIRCLE ( 'NONE', #890, 0.06000000000000001200 ) ;
|
||||||
|
#246 = ORIENTED_EDGE ( 'NONE', *, *, #717, .F. ) ;
|
||||||
|
#247 = CARTESIAN_POINT ( 'NONE', ( 1.446220343900916900, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
|
||||||
|
#248 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#249 = AXIS2_PLACEMENT_3D ( 'NONE', #89, #366, #865 ) ;
|
||||||
|
#250 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#251 = EDGE_LOOP ( 'NONE', ( #806, #455 ) ) ;
|
||||||
|
#252 = ORIENTED_EDGE ( 'NONE', *, *, #178, .T. ) ;
|
||||||
|
#253 = AXIS2_PLACEMENT_3D ( 'NONE', #331, #44, #684 ) ;
|
||||||
|
#254 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#255 = FACE_OUTER_BOUND ( 'NONE', #125, .T. ) ;
|
||||||
|
#256 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#257 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #509, #346, ( #473 ) ) ;
|
||||||
|
#258 = CARTESIAN_POINT ( 'NONE', ( -1.499303859774273800, 1.836117672821836400E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#259 = EDGE_LOOP ( 'NONE', ( #666, #130, #153, #71 ) ) ;
|
||||||
|
#260 = EDGE_CURVE ( 'NONE', #743, #348, #370, .T. ) ;
|
||||||
|
#261 = AXIS2_PLACEMENT_3D ( 'NONE', #612, #175, #532 ) ;
|
||||||
|
#262 = VERTEX_POINT ( 'NONE', #472 ) ;
|
||||||
|
#263 = VERTEX_POINT ( 'NONE', #490 ) ;
|
||||||
|
#264 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#265 = FACE_OUTER_BOUND ( 'NONE', #6, .T. ) ;
|
||||||
|
#266 = CIRCLE ( 'NONE', #334, 2.940000000000000400 ) ;
|
||||||
|
#267 = AXIS2_PLACEMENT_3D ( 'NONE', #480, #546, #254 ) ;
|
||||||
|
#268 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#269 = ADVANCED_FACE ( 'NONE', ( #180 ), #412, .T. ) ;
|
||||||
|
#270 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#271 = EDGE_CURVE ( 'NONE', #91, #856, #471, .T. ) ;
|
||||||
|
#272 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
|
||||||
|
#273 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#274 = ORIENTED_EDGE ( 'NONE', *, *, #823, .F. ) ;
|
||||||
|
#275 = EDGE_LOOP ( 'NONE', ( #323, #143, #689, #655 ) ) ;
|
||||||
|
#276 = TOROIDAL_SURFACE ( 'NONE', #318, 1.870000000000000100, 0.05999999999999999800 ) ;
|
||||||
|
#277 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#278 = AXIS2_PLACEMENT_3D ( 'NONE', #147, #213, #858 ) ;
|
||||||
|
#279 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#280 = AXIS2_PLACEMENT_3D ( 'NONE', #406, #572, #579 ) ;
|
||||||
|
#281 = ORIENTED_EDGE ( 'NONE', *, *, #516, .T. ) ;
|
||||||
|
#282 = ORIENTED_EDGE ( 'NONE', *, *, #414, .F. ) ;
|
||||||
|
#283 = ADVANCED_FACE ( 'NONE', ( #821 ), #391, .F. ) ;
|
||||||
|
#284 = CIRCLE ( 'NONE', #357, 0.3749999999999999400 ) ;
|
||||||
|
#285 = APPROVAL_DATE_TIME ( #116, #654 ) ;
|
||||||
|
#286 = TOROIDAL_SURFACE ( 'NONE', #381, 1.583083515873356900, 0.05999999999999999800 ) ;
|
||||||
|
#287 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#288 = EDGE_CURVE ( 'NONE', #209, #757, #860, .T. ) ;
|
||||||
|
#289 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#290 = AXIS2_PLACEMENT_3D ( 'NONE', #416, #706, #707 ) ;
|
||||||
|
#291 = ADVANCED_FACE ( 'NONE', ( #337 ), #611, .F. ) ;
|
||||||
|
#292 = ORIENTED_EDGE ( 'NONE', *, *, #867, .F. ) ;
|
||||||
|
#293 = EDGE_LOOP ( 'NONE', ( #807, #441 ) ) ;
|
||||||
|
#294 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#295 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #637 ) ;
|
||||||
|
#296 = CYLINDRICAL_SURFACE ( 'NONE', #100, 3.000000000000000400 ) ;
|
||||||
|
#297 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#298 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#299 = AXIS2_PLACEMENT_3D ( 'NONE', #185, #67, #132 ) ;
|
||||||
|
#300 = ORIENTED_EDGE ( 'NONE', *, *, #212, .F. ) ;
|
||||||
|
#301 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #517, #785, ( #508 ) ) ;
|
||||||
|
#302 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#303 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#304 = ORIENTED_EDGE ( 'NONE', *, *, #764, .T. ) ;
|
||||||
|
#305 = EDGE_CURVE ( 'NONE', #398, #263, #93, .T. ) ;
|
||||||
|
#306 = ORIENTED_EDGE ( 'NONE', *, *, #322, .T. ) ;
|
||||||
|
#307 = AXIS2_PLACEMENT_3D ( 'NONE', #352, #486, #58 ) ;
|
||||||
|
#308 = ORIENTED_EDGE ( 'NONE', *, *, #664, .T. ) ;
|
||||||
|
#309 = LINE ( 'NONE', #727, #915 ) ;
|
||||||
|
#310 = DATE_AND_TIME ( #841, #389 ) ;
|
||||||
|
#311 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#312 = DESIGN_CONTEXT ( 'detailed design', #569, 'design' ) ;
|
||||||
|
#313 = TOROIDAL_SURFACE ( 'NONE', #661, 1.446220343900916900, 0.05999999999999999800 ) ;
|
||||||
|
#314 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#315 = ORIENTED_EDGE ( 'NONE', *, *, #271, .F. ) ;
|
||||||
|
#316 = EDGE_LOOP ( 'NONE', ( #113, #468 ) ) ;
|
||||||
|
#317 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#318 = AXIS2_PLACEMENT_3D ( 'NONE', #624, #182, #477 ) ;
|
||||||
|
#319 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#320 = EDGE_LOOP ( 'NONE', ( #339, #217, #491, #408 ) ) ;
|
||||||
|
#321 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#322 = EDGE_CURVE ( 'NONE', #144, #90, #129, .T. ) ;
|
||||||
|
#323 = ORIENTED_EDGE ( 'NONE', *, *, #76, .F. ) ;
|
||||||
|
#324 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#325 = EDGE_LOOP ( 'NONE', ( #527, #914 ) ) ;
|
||||||
|
#326 = DATE_AND_TIME ( #566, #529 ) ;
|
||||||
|
#327 = CIRCLE ( 'NONE', #290, 0.05999999999999997700 ) ;
|
||||||
|
#328 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
|
||||||
|
#329 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#330 = CARTESIAN_POINT ( 'NONE', ( 1.446220343900916900, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
|
||||||
|
#331 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#332 = VERTEX_POINT ( 'NONE', #79 ) ;
|
||||||
|
#333 = EDGE_LOOP ( 'NONE', ( #21, #274, #621, #596 ) ) ;
|
||||||
|
#334 = AXIS2_PLACEMENT_3D ( 'NONE', #628, #112, #897 ) ;
|
||||||
|
#335 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#336 = LINE ( 'NONE', #77, #34 ) ;
|
||||||
|
#337 = FACE_OUTER_BOUND ( 'NONE', #186, .T. ) ;
|
||||||
|
#338 = EDGE_CURVE ( 'NONE', #856, #91, #714, .T. ) ;
|
||||||
|
#339 = ORIENTED_EDGE ( 'NONE', *, *, #260, .F. ) ;
|
||||||
|
#340 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#341 = ORIENTED_EDGE ( 'NONE', *, *, #133, .F. ) ;
|
||||||
|
#342 = LINE ( 'NONE', #235, #244 ) ;
|
||||||
|
#343 = CIRCLE ( 'NONE', #18, 3.000000000000000400 ) ;
|
||||||
|
#344 = AXIS2_PLACEMENT_3D ( 'NONE', #399, #909, #127 ) ;
|
||||||
|
#345 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#346 = DATE_TIME_ROLE ( 'creation_date' ) ;
|
||||||
|
#347 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#348 = VERTEX_POINT ( 'NONE', #86 ) ;
|
||||||
|
#349 = AXIS2_PLACEMENT_3D ( 'NONE', #22, #522, #600 ) ;
|
||||||
|
#350 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#351 = ORIENTED_EDGE ( 'NONE', *, *, #150, .F. ) ;
|
||||||
|
#352 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000001100 ) ) ;
|
||||||
|
#353 = ORIENTED_EDGE ( 'NONE', *, *, #88, .T. ) ;
|
||||||
|
#354 = FACE_BOUND ( 'NONE', #226, .T. ) ;
|
||||||
|
#355 = EDGE_CURVE ( 'NONE', #348, #743, #433, .T. ) ;
|
||||||
|
#356 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #709 );
|
||||||
|
#357 = AXIS2_PLACEMENT_3D ( 'NONE', #392, #241, #317 ) ;
|
||||||
|
#358 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#359 = ORIENTED_EDGE ( 'NONE', *, *, #305, .F. ) ;
|
||||||
|
#360 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 3.000000000000000400, 0.3150000000000000600 ) ) ;
|
||||||
|
#361 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#362 = ORIENTED_EDGE ( 'NONE', *, *, #652, .F. ) ;
|
||||||
|
#363 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#364 = AXIS2_PLACEMENT_3D ( 'NONE', #43, #193, #835 ) ;
|
||||||
|
#365 = ORIENTED_EDGE ( 'NONE', *, *, #570, .T. ) ;
|
||||||
|
#366 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#367 = ORIENTED_EDGE ( 'NONE', *, *, #805, .F. ) ;
|
||||||
|
#368 = TOROIDAL_SURFACE ( 'NONE', #216, 2.940000000000000400, 0.05999999999999999800 ) ;
|
||||||
|
#369 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#370 = CIRCLE ( 'NONE', #111, 0.3749999999999999400 ) ;
|
||||||
|
#371 = CARTESIAN_POINT ( 'NONE', ( 1.583083515873356900, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#372 = EDGE_CURVE ( 'NONE', #777, #376, #801, .T. ) ;
|
||||||
|
#373 = ORIENTED_EDGE ( 'NONE', *, *, #161, .T. ) ;
|
||||||
|
#374 = PLANE ( 'NONE', #815 ) ;
|
||||||
|
#375 = ADVANCED_FACE ( 'NONE', ( #589 ), #484, .F. ) ;
|
||||||
|
#376 = VERTEX_POINT ( 'NONE', #444 ) ;
|
||||||
|
#377 = ORIENTED_EDGE ( 'NONE', *, *, #901, .F. ) ;
|
||||||
|
#378 = CIRCLE ( 'NONE', #803, 1.220000000000000000 ) ;
|
||||||
|
#379 = EDGE_LOOP ( 'NONE', ( #421, #57, #12, #828 ) ) ;
|
||||||
|
#380 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#381 = AXIS2_PLACEMENT_3D ( 'NONE', #87, #877, #593 ) ;
|
||||||
|
#382 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#383 = AXIS2_PLACEMENT_3D ( 'NONE', #817, #319, #887 ) ;
|
||||||
|
#384 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#385 = ORIENTED_EDGE ( 'NONE', *, *, #715, .T. ) ;
|
||||||
|
#386 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#387 = EDGE_LOOP ( 'NONE', ( #373, #711 ) ) ;
|
||||||
|
#388 = FACE_BOUND ( 'NONE', #325, .T. ) ;
|
||||||
|
#389 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #735 ) ;
|
||||||
|
#390 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#391 = CYLINDRICAL_SURFACE ( 'NONE', #280, 0.3749999999999999400 ) ;
|
||||||
|
#392 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#393 = CARTESIAN_POINT ( 'NONE', ( 1.505773112999396800, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
|
||||||
|
#394 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 3.637200993467639100E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#395 = AXIS2_PLACEMENT_3D ( 'NONE', #345, #268, #207 ) ;
|
||||||
|
#396 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#397 = AXIS2_PLACEMENT_3D ( 'NONE', #114, #463, #384 ) ;
|
||||||
|
#398 = VERTEX_POINT ( 'NONE', #95 ) ;
|
||||||
|
#399 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 3.600461589493218800E-016, 0.2550000000000000600 ) ) ;
|
||||||
|
#400 = ORIENTED_EDGE ( 'NONE', *, *, #913, .F. ) ;
|
||||||
|
#401 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#402 = CIRCLE ( 'NONE', #278, 2.940000000000000400 ) ;
|
||||||
|
#403 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#404 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#405 = EDGE_CURVE ( 'NONE', #427, #31, #831, .T. ) ;
|
||||||
|
#406 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#407 = VERTEX_POINT ( 'NONE', #669 ) ;
|
||||||
|
#408 = ORIENTED_EDGE ( 'NONE', *, *, #239, .F. ) ;
|
||||||
|
#409 = ADVANCED_FACE ( 'NONE', ( #137 ), #296, .T. ) ;
|
||||||
|
#410 = AXIS2_PLACEMENT_3D ( 'NONE', #195, #403, #47 ) ;
|
||||||
|
#411 = CIRCLE ( 'NONE', #533, 1.810000000000000100 ) ;
|
||||||
|
#412 = CONICAL_SURFACE ( 'NONE', #613, 1.499303859774273800, 0.1221730476396034700 ) ;
|
||||||
|
#413 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#414 = EDGE_CURVE ( 'NONE', #90, #69, #688, .T. ) ;
|
||||||
|
#415 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
|
||||||
|
#416 = CARTESIAN_POINT ( 'NONE', ( -1.870000000000000100, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#417 = ORIENTED_EDGE ( 'NONE', *, *, #208, .T. ) ;
|
||||||
|
#418 = VERTEX_POINT ( 'NONE', #524 ) ;
|
||||||
|
#419 = CYLINDRICAL_SURFACE ( 'NONE', #592, 0.3749999999999999400 ) ;
|
||||||
|
#420 = ADVANCED_FACE ( 'NONE', ( #908, #495 ), #374, .F. ) ;
|
||||||
|
#421 = ORIENTED_EDGE ( 'NONE', *, *, #223, .F. ) ;
|
||||||
|
#422 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#423 =( CONVERSION_BASED_UNIT ( 'INCH', #356 ) LENGTH_UNIT ( ) NAMED_UNIT ( #581 ) );
|
||||||
|
#424 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#425 = AXIS2_PLACEMENT_3D ( 'NONE', #247, #110, #615 ) ;
|
||||||
|
#426 = ADVANCED_FACE ( 'NONE', ( #724 ), #702, .T. ) ;
|
||||||
|
#427 = VERTEX_POINT ( 'NONE', #152 ) ;
|
||||||
|
#428 = ORIENTED_EDGE ( 'NONE', *, *, #794, .T. ) ;
|
||||||
|
#429 = LINE ( 'NONE', #258, #555 ) ;
|
||||||
|
#430 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#431 = AXIS2_PLACEMENT_3D ( 'NONE', #751, #671, #98 ) ;
|
||||||
|
#432 = CALENDAR_DATE ( 2023, 7, 2 ) ;
|
||||||
|
#433 = CIRCLE ( 'NONE', #550, 0.3749999999999999400 ) ;
|
||||||
|
#434 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
|
||||||
|
#435 = ADVANCED_FACE ( 'NONE', ( #747 ), #286, .F. ) ;
|
||||||
|
#436 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#437 = VERTEX_POINT ( 'NONE', #99 ) ;
|
||||||
|
#438 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, 0.2550000000000000600 ) ) ;
|
||||||
|
#439 = AXIS2_PLACEMENT_3D ( 'NONE', #430, #854, #852 ) ;
|
||||||
|
#440 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#441 = ORIENTED_EDGE ( 'NONE', *, *, #520, .T. ) ;
|
||||||
|
#442 = ORIENTED_EDGE ( 'NONE', *, *, #850, .F. ) ;
|
||||||
|
#443 = CYLINDRICAL_SURFACE ( 'NONE', #94, 3.000000000000000400 ) ;
|
||||||
|
#444 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#445 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #473 ) ;
|
||||||
|
#446 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#447 = AXIS2_PLACEMENT_3D ( 'NONE', #832, #916, #781 ) ;
|
||||||
|
#448 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.810000000000000100, 0.3750000000000000600 ) ) ;
|
||||||
|
#449 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#450 = EDGE_CURVE ( 'NONE', #540, #485, #203, .T. ) ;
|
||||||
|
#451 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#452 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#453 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #106, #4, ( #548 ) ) ;
|
||||||
|
#454 = FACE_OUTER_BOUND ( 'NONE', #122, .T. ) ;
|
||||||
|
#455 = ORIENTED_EDGE ( 'NONE', *, *, #901, .T. ) ;
|
||||||
|
#456 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#457 = LINE ( 'NONE', #703, #646 ) ;
|
||||||
|
#458 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#459 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#460 = CIRCLE ( 'NONE', #499, 0.05999999999999990800 ) ;
|
||||||
|
#461 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#462 = AXIS2_PLACEMENT_3D ( 'NONE', #651, #11, #146 ) ;
|
||||||
|
#463 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#464 = CARTESIAN_POINT ( 'NONE', ( 1.523530746774877300, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
|
||||||
|
#465 = EDGE_CURVE ( 'NONE', #767, #418, #510, .T. ) ;
|
||||||
|
#466 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#467 = ORIENTED_EDGE ( 'NONE', *, *, #450, .F. ) ;
|
||||||
|
#468 = ORIENTED_EDGE ( 'NONE', *, *, #10, .T. ) ;
|
||||||
|
#469 = APPROVAL_DATE_TIME ( #326, #650 ) ;
|
||||||
|
#470 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#471 = CIRCLE ( 'NONE', #693, 0.3749999999999999400 ) ;
|
||||||
|
#472 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#473 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #508, #312 ) ;
|
||||||
|
#474 = CARTESIAN_POINT ( 'NONE', ( -2.940000000000000400, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#475 = EDGE_LOOP ( 'NONE', ( #608, #155, #793, #119 ) ) ;
|
||||||
|
#476 = ORIENTED_EDGE ( 'NONE', *, *, #838, .T. ) ;
|
||||||
|
#477 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#478 = AXIS2_PLACEMENT_3D ( 'NONE', #710, #270, #198 ) ;
|
||||||
|
#479 = ORIENTED_EDGE ( 'NONE', *, *, #124, .T. ) ;
|
||||||
|
#480 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
|
||||||
|
#481 = ORIENTED_EDGE ( 'NONE', *, *, #118, .F. ) ;
|
||||||
|
#482 = LINE ( 'NONE', #903, #732 ) ;
|
||||||
|
#483 = CALENDAR_DATE ( 2023, 7, 2 ) ;
|
||||||
|
#484 = CYLINDRICAL_SURFACE ( 'NONE', #648, 0.3749999999999999400 ) ;
|
||||||
|
#485 = VERTEX_POINT ( 'NONE', #602 ) ;
|
||||||
|
#486 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#487 = EDGE_CURVE ( 'NONE', #674, #506, #149, .T. ) ;
|
||||||
|
#488 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
|
||||||
|
#489 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#490 = CARTESIAN_POINT ( 'NONE', ( -1.220000000000000000, 1.494069094959770800E-016, 0.3750000000000000600 ) ) ;
|
||||||
|
#491 = ORIENTED_EDGE ( 'NONE', *, *, #465, .F. ) ;
|
||||||
|
#492 = AXIS2_PLACEMENT_3D ( 'NONE', #564, #340, #846 ) ;
|
||||||
|
#493 = ORIENTED_EDGE ( 'NONE', *, *, #487, .F. ) ;
|
||||||
|
#494 = APPROVAL_PERSON_ORGANIZATION ( #723, #650, #788 ) ;
|
||||||
|
#495 = FACE_OUTER_BOUND ( 'NONE', #293, .T. ) ;
|
||||||
|
#496 = DATE_TIME_ROLE ( 'classification_date' ) ;
|
||||||
|
#497 = CARTESIAN_POINT ( 'NONE', ( -1.583083515873356900, 1.938718160497244600E-016, -0.4350000000000001600 ) ) ;
|
||||||
|
#498 = ORIENTED_EDGE ( 'NONE', *, *, #700, .T. ) ;
|
||||||
|
#499 = AXIS2_PLACEMENT_3D ( 'NONE', #690, #833, #551 ) ;
|
||||||
|
#500 = AXIS2_PLACEMENT_3D ( 'NONE', #298, #303, #449 ) ;
|
||||||
|
#501 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000000000, -4.362804221962446100E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#502 = ORIENTED_EDGE ( 'NONE', *, *, #505, .F. ) ;
|
||||||
|
#503 = CARTESIAN_POINT ( 'NONE', ( 1.499303859774273800, 0.0000000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#504 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#505 = EDGE_CURVE ( 'NONE', #485, #665, #556, .T. ) ;
|
||||||
|
#506 = VERTEX_POINT ( 'NONE', #802 ) ;
|
||||||
|
#507 = CIRCLE ( 'NONE', #267, 1.505773112999396800 ) ;
|
||||||
|
#508 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #548, .NOT_KNOWN. ) ;
|
||||||
|
#509 = DATE_AND_TIME ( #432, #701 ) ;
|
||||||
|
#510 = CIRCLE ( 'NONE', #249, 0.3749999999999999400 ) ;
|
||||||
|
#511 = AXIS2_PLACEMENT_3D ( 'NONE', #836, #187, #120 ) ;
|
||||||
|
#512 = ADVANCED_FACE ( 'NONE', ( #658 ), #313, .T. ) ;
|
||||||
|
#513 = ORIENTED_EDGE ( 'NONE', *, *, #36, .T. ) ;
|
||||||
|
#514 = EDGE_LOOP ( 'NONE', ( #705, #498, #879, #200 ) ) ;
|
||||||
|
#515 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#516 = EDGE_CURVE ( 'NONE', #691, #144, #107, .T. ) ;
|
||||||
|
#517 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#518 = CIRCLE ( 'NONE', #349, 0.05999999999999997700 ) ;
|
||||||
|
#519 = DIRECTION ( 'NONE', ( -0.1218693434051478800, 1.492469013153039400E-017, 0.9925461516413219800 ) ) ;
|
||||||
|
#520 = EDGE_CURVE ( 'NONE', #665, #554, #411, .T. ) ;
|
||||||
|
#521 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4276878393956912200 ) ) ;
|
||||||
|
#522 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#523 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #16, #496, ( #899 ) ) ;
|
||||||
|
#524 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#525 = ORIENTED_EDGE ( 'NONE', *, *, #355, .F. ) ;
|
||||||
|
#526 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#527 = ORIENTED_EDGE ( 'NONE', *, *, #271, .T. ) ;
|
||||||
|
#528 = CIRCLE ( 'NONE', #410, 1.583083515873356900 ) ;
|
||||||
|
#529 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #542 ) ;
|
||||||
|
#530 = CARTESIAN_POINT ( 'NONE', ( -1.810000000000000100, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#531 = CIRCLE ( 'NONE', #395, 2.940000000000000400 ) ;
|
||||||
|
#532 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#533 = AXIS2_PLACEMENT_3D ( 'NONE', #321, #535, #754 ) ;
|
||||||
|
#534 = ORIENTED_EDGE ( 'NONE', *, *, #585, .T. ) ;
|
||||||
|
#535 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#536 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#537 = EDGE_CURVE ( 'NONE', #830, #332, #789, .T. ) ;
|
||||||
|
#538 = ORIENTED_EDGE ( 'NONE', *, *, #585, .F. ) ;
|
||||||
|
#539 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#540 = VERTEX_POINT ( 'NONE', #729 ) ;
|
||||||
|
#541 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#542 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#543 = VECTOR ( 'NONE', #215, 39.37007874015748100 ) ;
|
||||||
|
#544 = EDGE_LOOP ( 'NONE', ( #45, #869 ) ) ;
|
||||||
|
#545 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#546 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#547 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.4350000000000001600 ) ) ;
|
||||||
|
#548 = PRODUCT ( '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', '68095K348_Low-Pressure Steel Unthreaded Pipe Flange', '', ( #571 ) ) ;
|
||||||
|
#549 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#550 = AXIS2_PLACEMENT_3D ( 'NONE', #163, #670, #92 ) ;
|
||||||
|
#551 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147354900E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#552 = EDGE_LOOP ( 'NONE', ( #902, #910, #281, #798 ) ) ;
|
||||||
|
#553 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #459, #782, ( #473 ) ) ;
|
||||||
|
#554 = VERTEX_POINT ( 'NONE', #530 ) ;
|
||||||
|
#555 = VECTOR ( 'NONE', #519, 39.37007874015748100 ) ;
|
||||||
|
#556 = CIRCLE ( 'NONE', #912, 0.05999999999999990800 ) ;
|
||||||
|
#557 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#558 = EDGE_CURVE ( 'NONE', #849, #856, #778, .T. ) ;
|
||||||
|
#559 = AXIS2_PLACEMENT_3D ( 'NONE', #497, #3, #424 ) ;
|
||||||
|
#560 = AXIS2_PLACEMENT_3D ( 'NONE', #328, #697, #623 ) ;
|
||||||
|
#561 = VERTEX_POINT ( 'NONE', #394 ) ;
|
||||||
|
#562 = ORIENTED_EDGE ( 'NONE', *, *, #288, .F. ) ;
|
||||||
|
#563 = ADVANCED_FACE ( 'NONE', ( #73 ), #575, .T. ) ;
|
||||||
|
#564 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#565 = CYLINDRICAL_SURFACE ( 'NONE', #154, 0.3749999999999999400 ) ;
|
||||||
|
#566 = CALENDAR_DATE ( 2023, 7, 2 ) ;
|
||||||
|
#567 = CIRCLE ( 'NONE', #64, 0.3749999999999999400 ) ;
|
||||||
|
#568 = ORIENTED_EDGE ( 'NONE', *, *, #124, .F. ) ;
|
||||||
|
#569 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#570 = EDGE_CURVE ( 'NONE', #578, #407, #840, .T. ) ;
|
||||||
|
#571 = MECHANICAL_CONTEXT ( 'NONE', #279, 'mechanical' ) ;
|
||||||
|
#572 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#573 = ORIENTED_EDGE ( 'NONE', *, *, #133, .T. ) ;
|
||||||
|
#574 = VERTEX_POINT ( 'NONE', #750 ) ;
|
||||||
|
#575 = TOROIDAL_SURFACE ( 'NONE', #758, 2.940000000000000400, 0.05999999999999999800 ) ;
|
||||||
|
#576 = PLANE ( 'NONE', #643 ) ;
|
||||||
|
#577 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5650000000000001700 ) ) ;
|
||||||
|
#578 = VERTEX_POINT ( 'NONE', #889 ) ;
|
||||||
|
#579 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#580 = AXIS2_PLACEMENT_3D ( 'NONE', #739, #741, #294 ) ;
|
||||||
|
#581 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
|
||||||
|
#582 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999996700, -2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#583 = ORIENTED_EDGE ( 'NONE', *, *, #717, .T. ) ;
|
||||||
|
#584 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#585 = EDGE_CURVE ( 'NONE', #849, #768, #211, .T. ) ;
|
||||||
|
#586 = EDGE_LOOP ( 'NONE', ( #673, #476, #23, #625 ) ) ;
|
||||||
|
#587 = ADVANCED_FACE ( 'NONE', ( #265 ), #565, .F. ) ;
|
||||||
|
#588 = FACE_OUTER_BOUND ( 'NONE', #316, .T. ) ;
|
||||||
|
#589 = FACE_OUTER_BOUND ( 'NONE', #878, .T. ) ;
|
||||||
|
#590 = ADVANCED_FACE ( 'NONE', ( #609 ), #368, .T. ) ;
|
||||||
|
#591 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#592 = AXIS2_PLACEMENT_3D ( 'NONE', #363, #716, #791 ) ;
|
||||||
|
#593 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#594 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#595 = ORIENTED_EDGE ( 'NONE', *, *, #161, .F. ) ;
|
||||||
|
#596 = ORIENTED_EDGE ( 'NONE', *, *, #779, .F. ) ;
|
||||||
|
#597 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#598 = AXIS2_PLACEMENT_3D ( 'NONE', #577, #141, #361 ) ;
|
||||||
|
#599 = VECTOR ( 'NONE', #451, 39.37007874015748100 ) ;
|
||||||
|
#600 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#601 = AXIS2_PLACEMENT_3D ( 'NONE', #675, #314, #827 ) ;
|
||||||
|
#602 = CARTESIAN_POINT ( 'NONE', ( 1.870000000000000100, 2.290089514405550600E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#603 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#604 = CARTESIAN_POINT ( 'NONE', ( -2.750000000000000000, -3.903561672282188800E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#605 = EDGE_CURVE ( 'NONE', #418, #767, #228, .T. ) ;
|
||||||
|
#606 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #687, #415, ( #899 ) ) ;
|
||||||
|
#607 = CIRCLE ( 'NONE', #834, 1.446220343900916900 ) ;
|
||||||
|
#608 = ORIENTED_EDGE ( 'NONE', *, *, #558, .F. ) ;
|
||||||
|
#609 = FACE_OUTER_BOUND ( 'NONE', #792, .T. ) ;
|
||||||
|
#610 = FACE_OUTER_BOUND ( 'NONE', #753, .T. ) ;
|
||||||
|
#611 = CYLINDRICAL_SURFACE ( 'NONE', #439, 1.220000000000000000 ) ;
|
||||||
|
#612 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#613 = AXIS2_PLACEMENT_3D ( 'NONE', #489, #918, #911 ) ;
|
||||||
|
#614 = VERTEX_POINT ( 'NONE', #680 ) ;
|
||||||
|
#615 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#616 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#617 = ORIENTED_EDGE ( 'NONE', *, *, #885, .F. ) ;
|
||||||
|
#618 = EDGE_CURVE ( 'NONE', #263, #407, #378, .T. ) ;
|
||||||
|
#619 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#620 = ORIENTED_EDGE ( 'NONE', *, *, #749, .F. ) ;
|
||||||
|
#621 = ORIENTED_EDGE ( 'NONE', *, *, #652, .T. ) ;
|
||||||
|
#622 = CYLINDRICAL_SURFACE ( 'NONE', #844, 0.3749999999999999400 ) ;
|
||||||
|
#623 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#624 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#625 = ORIENTED_EDGE ( 'NONE', *, *, #322, .F. ) ;
|
||||||
|
#626 = ORIENTED_EDGE ( 'NONE', *, *, #885, .T. ) ;
|
||||||
|
#627 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#628 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#629 = AXIS2_PLACEMENT_3D ( 'NONE', #873, #225, #740 ) ;
|
||||||
|
#630 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#631 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#632 = FACE_BOUND ( 'NONE', #166, .T. ) ;
|
||||||
|
#633 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#634 = ORIENTED_EDGE ( 'NONE', *, *, #239, .T. ) ;
|
||||||
|
#635 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#636 = FACE_BOUND ( 'NONE', #871, .T. ) ;
|
||||||
|
#637 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#638 = VECTOR ( 'NONE', #75, 39.37007874015748100 ) ;
|
||||||
|
#639 = EDGE_CURVE ( 'NONE', #144, #574, #507, .T. ) ;
|
||||||
|
#640 = ADVANCED_FACE ( 'NONE', ( #759 ), #881, .F. ) ;
|
||||||
|
#641 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #423, 'distance_accuracy_value', 'NONE');
|
||||||
|
#642 = ADVANCED_FACE ( 'NONE', ( #24 ), #622, .F. ) ;
|
||||||
|
#643 = AXIS2_PLACEMENT_3D ( 'NONE', #360, #287, #440 ) ;
|
||||||
|
#644 = EDGE_LOOP ( 'NONE', ( #653, #837 ) ) ;
|
||||||
|
#645 = ORIENTED_EDGE ( 'NONE', *, *, #167, .T. ) ;
|
||||||
|
#646 = VECTOR ( 'NONE', #123, 39.37007874015748100 ) ;
|
||||||
|
#647 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#648 = AXIS2_PLACEMENT_3D ( 'NONE', #436, #297, #733 ) ;
|
||||||
|
#649 = ADVANCED_FACE ( 'NONE', ( #677 ), #177, .T. ) ;
|
||||||
|
#650 = APPROVAL ( #853, 'UNSPECIFIED' ) ;
|
||||||
|
#651 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#652 = EDGE_CURVE ( 'NONE', #27, #262, #457, .T. ) ;
|
||||||
|
#653 = ORIENTED_EDGE ( 'NONE', *, *, #88, .F. ) ;
|
||||||
|
#654 = APPROVAL ( #138, 'UNSPECIFIED' ) ;
|
||||||
|
#655 = ORIENTED_EDGE ( 'NONE', *, *, #570, .F. ) ;
|
||||||
|
#656 = FACE_OUTER_BOUND ( 'NONE', #686, .T. ) ;
|
||||||
|
#657 = APPROVAL_PERSON_ORGANIZATION ( #369, #139, #140 ) ;
|
||||||
|
#658 = FACE_OUTER_BOUND ( 'NONE', #181, .T. ) ;
|
||||||
|
#659 = ORIENTED_EDGE ( 'NONE', *, *, #867, .T. ) ;
|
||||||
|
#660 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#661 = AXIS2_PLACEMENT_3D ( 'NONE', #434, #33, #248 ) ;
|
||||||
|
#662 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#663 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#664 = EDGE_CURVE ( 'NONE', #786, #893, #528, .T. ) ;
|
||||||
|
#665 = VERTEX_POINT ( 'NONE', #769 ) ;
|
||||||
|
#666 = ORIENTED_EDGE ( 'NONE', *, *, #730, .F. ) ;
|
||||||
|
#667 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#668 = FACE_OUTER_BOUND ( 'NONE', #32, .T. ) ;
|
||||||
|
#669 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#670 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#671 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#672 = CARTESIAN_POINT ( 'NONE', ( -1.523530746774877300, 1.865787052440430200E-016, -0.4276878393956912200 ) ) ;
|
||||||
|
#673 = ORIENTED_EDGE ( 'NONE', *, *, #639, .T. ) ;
|
||||||
|
#674 = VERTEX_POINT ( 'NONE', #54 ) ;
|
||||||
|
#675 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3750000000000000600 ) ) ;
|
||||||
|
#676 = AXIS2_PLACEMENT_3D ( 'NONE', #755, #386, #170 ) ;
|
||||||
|
#677 = FACE_OUTER_BOUND ( 'NONE', #218, .T. ) ;
|
||||||
|
#678 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #859 ) ;
|
||||||
|
#679 = FACE_OUTER_BOUND ( 'NONE', #320, .T. ) ;
|
||||||
|
#680 = CARTESIAN_POINT ( 'NONE', ( -1.446220343900916900, 1.807574669048449600E-016, -0.6250000000000001100 ) ) ;
|
||||||
|
#681 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#682 = EDGE_CURVE ( 'NONE', #69, #90, #699, .T. ) ;
|
||||||
|
#683 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#684 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#685 = EDGE_LOOP ( 'NONE', ( #308, #583 ) ) ;
|
||||||
|
#686 = EDGE_LOOP ( 'NONE', ( #479, #50 ) ) ;
|
||||||
|
#687 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#688 = CIRCLE ( 'NONE', #790, 1.523530746774877300 ) ;
|
||||||
|
#689 = ORIENTED_EDGE ( 'NONE', *, *, #618, .T. ) ;
|
||||||
|
#690 = CARTESIAN_POINT ( 'NONE', ( -1.446220343900916900, 1.771109115020042200E-016, -0.5650000000000001700 ) ) ;
|
||||||
|
#691 = VERTEX_POINT ( 'NONE', #330 ) ;
|
||||||
|
#692 = ORIENTED_EDGE ( 'NONE', *, *, #537, .F. ) ;
|
||||||
|
#693 = AXIS2_PLACEMENT_3D ( 'NONE', #863, #358, #347 ) ;
|
||||||
|
#694 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#695 = AXIS2_PLACEMENT_3D ( 'NONE', #39, #814, #763 ) ;
|
||||||
|
#696 = ORIENTED_EDGE ( 'NONE', *, *, #505, .T. ) ;
|
||||||
|
#697 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#698 = ORIENTED_EDGE ( 'NONE', *, *, #414, .T. ) ;
|
||||||
|
#699 = CIRCLE ( 'NONE', #560, 1.523530746774877300 ) ;
|
||||||
|
#700 = EDGE_CURVE ( 'NONE', #561, #376, #808, .T. ) ;
|
||||||
|
#701 = LOCAL_TIME ( 10, 53, 8.000000000000000000, #667 ) ;
|
||||||
|
#702 = TOROIDAL_SURFACE ( 'NONE', #629, 2.940000000000000400, 0.05999999999999999800 ) ;
|
||||||
|
#703 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#704 = AXIS2_PLACEMENT_3D ( 'NONE', #422, #876, #446 ) ;
|
||||||
|
#705 = ORIENTED_EDGE ( 'NONE', *, *, #10, .F. ) ;
|
||||||
|
#706 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#707 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#708 = AXIS2_PLACEMENT_3D ( 'NONE', #109, #683, #681 ) ;
|
||||||
|
#709 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
|
||||||
|
#710 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.499303859774273800, -0.6250000000000001100 ) ) ;
|
||||||
|
#711 = ORIENTED_EDGE ( 'NONE', *, *, #76, .T. ) ;
|
||||||
|
#712 = ORIENTED_EDGE ( 'NONE', *, *, #838, .F. ) ;
|
||||||
|
#713 = CIRCLE ( 'NONE', #307, 1.446220343900916900 ) ;
|
||||||
|
#714 = CIRCLE ( 'NONE', #30, 0.3749999999999999400 ) ;
|
||||||
|
#715 = EDGE_CURVE ( 'NONE', #830, #209, #482, .T. ) ;
|
||||||
|
#716 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#717 = EDGE_CURVE ( 'NONE', #893, #786, #201, .T. ) ;
|
||||||
|
#718 = ADVANCED_FACE ( 'NONE', ( #82 ), #443, .T. ) ;
|
||||||
|
#719 = CC_DESIGN_APPROVAL ( #650, ( #899 ) ) ;
|
||||||
|
#720 = ORIENTED_EDGE ( 'NONE', *, *, #68, .F. ) ;
|
||||||
|
#721 = ORIENTED_EDGE ( 'NONE', *, *, #730, .T. ) ;
|
||||||
|
#722 = FACE_OUTER_BOUND ( 'NONE', #776, .T. ) ;
|
||||||
|
#723 = PERSON_AND_ORGANIZATION ( #164, #907 ) ;
|
||||||
|
#724 = FACE_OUTER_BOUND ( 'NONE', #744, .T. ) ;
|
||||||
|
#725 = ADVANCED_FACE ( 'NONE', ( #857 ), #819, .T. ) ;
|
||||||
|
#726 = AXIS2_PLACEMENT_3D ( 'NONE', #591, #160, #157 ) ;
|
||||||
|
#727 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, 0.3750000000000000600 ) ) ;
|
||||||
|
#728 = ADVANCED_FACE ( 'NONE', ( #255 ), #419, .F. ) ;
|
||||||
|
#729 = CARTESIAN_POINT ( 'NONE', ( -1.870000000000000100, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#730 = EDGE_CURVE ( 'NONE', #893, #69, #14, .T. ) ;
|
||||||
|
#731 = ORIENTED_EDGE ( 'NONE', *, *, #715, .F. ) ;
|
||||||
|
#732 = VECTOR ( 'NONE', #635, 39.37007874015748100 ) ;
|
||||||
|
#733 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#734 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#735 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#736 = FACE_OUTER_BOUND ( 'NONE', #514, .T. ) ;
|
||||||
|
#737 = ORIENTED_EDGE ( 'NONE', *, *, #55, .T. ) ;
|
||||||
|
#738 = EDGE_LOOP ( 'NONE', ( #103, #659, #862, #617 ) ) ;
|
||||||
|
#739 = CARTESIAN_POINT ( 'NONE', ( 2.940000000000000400, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#740 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#741 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#742 = AXIS2_PLACEMENT_3D ( 'NONE', #234, #49, #545 ) ;
|
||||||
|
#743 = VERTEX_POINT ( 'NONE', #277 ) ;
|
||||||
|
#744 = EDGE_LOOP ( 'NONE', ( #493, #568, #905, #341 ) ) ;
|
||||||
|
#745 = CIRCLE ( 'NONE', #447, 0.3749999999999999400 ) ;
|
||||||
|
#746 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147359900E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#747 = FACE_OUTER_BOUND ( 'NONE', #259, .T. ) ;
|
||||||
|
#748 = PLANE ( 'NONE', #121 ) ;
|
||||||
|
#749 = EDGE_CURVE ( 'NONE', #199, #561, #402, .T. ) ;
|
||||||
|
#750 = CARTESIAN_POINT ( 'NONE', ( -1.505773112999396800, 1.854913637758643400E-016, -0.5723121606043081200 ) ) ;
|
||||||
|
#751 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.5723121606043081200 ) ) ;
|
||||||
|
#752 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #548 ) ) ;
|
||||||
|
#753 = EDGE_LOOP ( 'NONE', ( #502, #467, #892, #756 ) ) ;
|
||||||
|
#754 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#755 = CARTESIAN_POINT ( 'NONE', ( -2.375000000000000000, -4.362804221962446100E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#756 = ORIENTED_EDGE ( 'NONE', *, *, #520, .F. ) ;
|
||||||
|
#757 = VERTEX_POINT ( 'NONE', #504 ) ;
|
||||||
|
#758 = AXIS2_PLACEMENT_3D ( 'NONE', #382, #380, #28 ) ;
|
||||||
|
#759 = FACE_OUTER_BOUND ( 'NONE', #333, .T. ) ;
|
||||||
|
#760 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000002200, -2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#761 = CIRCLE ( 'NONE', #233, 1.220000000000000000 ) ;
|
||||||
|
#762 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#763 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#764 = EDGE_CURVE ( 'NONE', #437, #772, #336, .T. ) ;
|
||||||
|
#765 = CARTESIAN_POINT ( 'NONE', ( 2.750000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#766 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
|
||||||
|
#767 = VERTEX_POINT ( 'NONE', #501 ) ;
|
||||||
|
#768 = VERTEX_POINT ( 'NONE', #663 ) ;
|
||||||
|
#769 = CARTESIAN_POINT ( 'NONE', ( 1.810000000000000100, 2.253350110431129800E-016, 0.3750000000000000600 ) ) ;
|
||||||
|
#770 = CIRCLE ( 'NONE', #695, 1.810000000000000100 ) ;
|
||||||
|
#771 = ORIENTED_EDGE ( 'NONE', *, *, #197, .T. ) ;
|
||||||
|
#772 = VERTEX_POINT ( 'NONE', #582 ) ;
|
||||||
|
#773 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 1.530000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#774 = AXIS2_PLACEMENT_3D ( 'NONE', #526, #101, #243 ) ;
|
||||||
|
#775 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#776 = EDGE_LOOP ( 'NONE', ( #246, #721, #282, #720 ) ) ;
|
||||||
|
#777 = VERTEX_POINT ( 'NONE', #438 ) ;
|
||||||
|
#778 = LINE ( 'NONE', #824, #599 ) ;
|
||||||
|
#779 = EDGE_CURVE ( 'NONE', #772, #262, #128, .T. ) ;
|
||||||
|
#780 = CIRCLE ( 'NONE', #299, 1.870000000000000100 ) ;
|
||||||
|
#781 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#782 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#783 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#784 = CC_DESIGN_APPROVAL ( #139, ( #508 ) ) ;
|
||||||
|
#785 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#786 = VERTEX_POINT ( 'NONE', #371 ) ;
|
||||||
|
#787 = ORIENTED_EDGE ( 'NONE', *, *, #639, .F. ) ;
|
||||||
|
#788 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#789 = CIRCLE ( 'NONE', #131, 0.3749999999999999400 ) ;
|
||||||
|
#790 = AXIS2_PLACEMENT_3D ( 'NONE', #521, #229, #515 ) ;
|
||||||
|
#791 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#792 = EDGE_LOOP ( 'NONE', ( #80, #620, #737, #214 ) ) ;
|
||||||
|
#793 = ORIENTED_EDGE ( 'NONE', *, *, #118, .T. ) ;
|
||||||
|
#794 = EDGE_CURVE ( 'NONE', #332, #830, #284, .T. ) ;
|
||||||
|
#795 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #202, #272, ( #508 ) ) ;
|
||||||
|
#796 = CYLINDRICAL_SURFACE ( 'NONE', #708, 0.3749999999999999400 ) ;
|
||||||
|
#797 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#798 = ORIENTED_EDGE ( 'NONE', *, *, #19, .F. ) ;
|
||||||
|
#799 = FACE_BOUND ( 'NONE', #188, .T. ) ;
|
||||||
|
#800 = TOROIDAL_SURFACE ( 'NONE', #704, 1.870000000000000100, 0.05999999999999999800 ) ;
|
||||||
|
#801 = CIRCLE ( 'NONE', #861, 3.000000000000000400 ) ;
|
||||||
|
#802 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000000400, 3.673940397442060400E-016, -0.3150000000000002800 ) ) ;
|
||||||
|
#803 = AXIS2_PLACEMENT_3D ( 'NONE', #619, #183, #470 ) ;
|
||||||
|
#804 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.2550000000000000600 ) ) ;
|
||||||
|
#805 = EDGE_CURVE ( 'NONE', #554, #665, #770, .T. ) ;
|
||||||
|
#806 = ORIENTED_EDGE ( 'NONE', *, *, #25, .T. ) ;
|
||||||
|
#807 = ORIENTED_EDGE ( 'NONE', *, *, #805, .T. ) ;
|
||||||
|
#808 = CIRCLE ( 'NONE', #344, 0.05999999999999990800 ) ;
|
||||||
|
#809 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000000400, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#810 = ADVANCED_FACE ( 'NONE', ( #8 ), #145, .F. ) ;
|
||||||
|
#811 = CLOSED_SHELL ( 'NONE', ( #159, #151, #563, #864, #512, #375, #5, #642, #85, #269, #810, #409, #718, #870, #420, #291, #224, #649, #848, #728, #640, #283, #587, #725, #435, #426, #590, #874 ) ) ;
|
||||||
|
#812 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#813 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#814 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#815 = AXIS2_PLACEMENT_3D ( 'NONE', #448, #26, #15 ) ;
|
||||||
|
#816 = ORIENTED_EDGE ( 'NONE', *, *, #150, .T. ) ;
|
||||||
|
#817 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.3150000000000000600 ) ) ;
|
||||||
|
#818 = ORIENTED_EDGE ( 'NONE', *, *, #355, .T. ) ;
|
||||||
|
#819 = TOROIDAL_SURFACE ( 'NONE', #598, 1.446220343900916900, 0.05999999999999999800 ) ;
|
||||||
|
#820 = CIRCLE ( 'NONE', #500, 0.3749999999999999400 ) ;
|
||||||
|
#821 = FACE_OUTER_BOUND ( 'NONE', #475, .T. ) ;
|
||||||
|
#822 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -1.000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#823 = EDGE_CURVE ( 'NONE', #27, #437, #745, .T. ) ;
|
||||||
|
#824 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000000, 7.730582919617667100E-016, -0.6250000000000003300 ) ) ;
|
||||||
|
#825 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#826 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#827 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#828 = ORIENTED_EDGE ( 'NONE', *, *, #405, .F. ) ;
|
||||||
|
#829 = CC_DESIGN_APPROVAL ( #654, ( #473 ) ) ;
|
||||||
|
#830 = VERTEX_POINT ( 'NONE', #536 ) ;
|
||||||
|
#831 = CIRCLE ( 'NONE', #580, 0.05999999999999997700 ) ;
|
||||||
|
#832 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#833 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#834 = AXIS2_PLACEMENT_3D ( 'NONE', #165, #237, #458 ) ;
|
||||||
|
#835 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#836 = CARTESIAN_POINT ( 'NONE', ( 2.908536147974963700E-016, -2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#837 = ORIENTED_EDGE ( 'NONE', *, *, #618, .F. ) ;
|
||||||
|
#838 = EDGE_CURVE ( 'NONE', #574, #69, #429, .T. ) ;
|
||||||
|
#839 = ORIENTED_EDGE ( 'NONE', *, *, #913, .T. ) ;
|
||||||
|
#840 = LINE ( 'NONE', #311, #48 ) ;
|
||||||
|
#841 = CALENDAR_DATE ( 2023, 7, 2 ) ;
|
||||||
|
#842 = FACE_BOUND ( 'NONE', #387, .T. ) ;
|
||||||
|
#843 = CARTESIAN_POINT ( 'NONE', ( 0.3749999999999999400, 2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#844 = AXIS2_PLACEMENT_3D ( 'NONE', #627, #630, #775 ) ;
|
||||||
|
#845 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#846 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#847 = ORIENTED_EDGE ( 'NONE', *, *, #465, .T. ) ;
|
||||||
|
#848 = ADVANCED_FACE ( 'NONE', ( #190, #656, #636, #354, #169, #906 ), #748, .F. ) ;
|
||||||
|
#849 = VERTEX_POINT ( 'NONE', #108 ) ;
|
||||||
|
#850 = EDGE_CURVE ( 'NONE', #743, #418, #242, .T. ) ;
|
||||||
|
#851 = CIRCLE ( 'NONE', #81, 0.3749999999999999400 ) ;
|
||||||
|
#852 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#853 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#854 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#855 = ORIENTED_EDGE ( 'NONE', *, *, #898, .F. ) ;
|
||||||
|
#856 = VERTEX_POINT ( 'NONE', #38 ) ;
|
||||||
|
#857 = FACE_OUTER_BOUND ( 'NONE', #552, .T. ) ;
|
||||||
|
#858 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#859 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#860 = CIRCLE ( 'NONE', #462, 0.3749999999999999400 ) ;
|
||||||
|
#861 = AXIS2_PLACEMENT_3D ( 'NONE', #804, #302, #812 ) ;
|
||||||
|
#862 = ORIENTED_EDGE ( 'NONE', *, *, #372, .T. ) ;
|
||||||
|
#863 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, 0.3150000000000000600 ) ) ;
|
||||||
|
#864 = ADVANCED_FACE ( 'NONE', ( #722 ), #104, .F. ) ;
|
||||||
|
#865 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#866 = MANIFOLD_SOLID_BREP ( 'Fillet1', #811 ) ;
|
||||||
|
#867 = EDGE_CURVE ( 'NONE', #506, #777, #309, .T. ) ;
|
||||||
|
#868 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#869 = ORIENTED_EDGE ( 'NONE', *, *, #288, .T. ) ;
|
||||||
|
#870 = ADVANCED_FACE ( 'NONE', ( #588, #799, #219, #388, #632, #117 ), #576, .F. ) ;
|
||||||
|
#871 = EDGE_LOOP ( 'NONE', ( #428, #62 ) ) ;
|
||||||
|
#872 = LINE ( 'NONE', #413, #884 ) ;
|
||||||
|
#873 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.3150000000000002800 ) ) ;
|
||||||
|
#874 = ADVANCED_FACE ( 'NONE', ( #610 ), #800, .F. ) ;
|
||||||
|
#875 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#876 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#877 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#878 = EDGE_LOOP ( 'NONE', ( #692, #385, #855, #400 ) ) ;
|
||||||
|
#879 = ORIENTED_EDGE ( 'NONE', *, *, #372, .F. ) ;
|
||||||
|
#880 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 2.375000000000000000, -0.3750000000000001700 ) ) ;
|
||||||
|
#881 = CYLINDRICAL_SURFACE ( 'NONE', #511, 0.3749999999999999400 ) ;
|
||||||
|
#882 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#883 = CALENDAR_DATE ( 2023, 7, 2 ) ;
|
||||||
|
#884 = VECTOR ( 'NONE', #196, 39.37007874015748100 ) ;
|
||||||
|
#885 = EDGE_CURVE ( 'NONE', #31, #376, #342, .T. ) ;
|
||||||
|
#886 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#887 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#888 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#889 = CARTESIAN_POINT ( 'NONE', ( 1.220000000000000000, 0.0000000000000000000, -0.6250000000000000000 ) ) ;
|
||||||
|
#890 = AXIS2_PLACEMENT_3D ( 'NONE', #452, #822, #603 ) ;
|
||||||
|
#891 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#892 = ORIENTED_EDGE ( 'NONE', *, *, #212, .T. ) ;
|
||||||
|
#893 = VERTEX_POINT ( 'NONE', #230 ) ;
|
||||||
|
#894 = APPROVAL_PERSON_ORGANIZATION ( #83, #654, #647 ) ;
|
||||||
|
#895 = CARTESIAN_POINT ( 'NONE', ( 2.375000000000000000, 7.271340369937410300E-016, -0.3750000000000001700 ) ) ;
|
||||||
|
#896 = CIRCLE ( 'NONE', #742, 1.220000000000000000 ) ;
|
||||||
|
#897 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#898 = EDGE_CURVE ( 'NONE', #757, #209, #820, .T. ) ;
|
||||||
|
#899 = SECURITY_CLASSIFICATION ( '', '', #206 ) ;
|
||||||
|
#900 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#901 = EDGE_CURVE ( 'NONE', #614, #691, #713, .T. ) ;
|
||||||
|
#902 = ORIENTED_EDGE ( 'NONE', *, *, #178, .F. ) ;
|
||||||
|
#903 = CARTESIAN_POINT ( 'NONE', ( -0.3749999999999999400, 2.375000000000000000, -0.6250000000000003300 ) ) ;
|
||||||
|
#904 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #641 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #423, #63, #488 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
|
||||||
|
#905 = ORIENTED_EDGE ( 'NONE', *, *, #405, .T. ) ;
|
||||||
|
#906 = FACE_BOUND ( 'NONE', #240, .T. ) ;
|
||||||
|
#907 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
|
||||||
|
#908 = FACE_BOUND ( 'NONE', #644, .T. ) ;
|
||||||
|
#909 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#910 = ORIENTED_EDGE ( 'NONE', *, *, #25, .F. ) ;
|
||||||
|
#911 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#912 = AXIS2_PLACEMENT_3D ( 'NONE', #232, #179, #390 ) ;
|
||||||
|
#913 = EDGE_CURVE ( 'NONE', #332, #757, #136, .T. ) ;
|
||||||
|
#914 = ORIENTED_EDGE ( 'NONE', *, *, #338, .T. ) ;
|
||||||
|
#915 = VECTOR ( 'NONE', #9, 39.37007874015748100 ) ;
|
||||||
|
#916 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#917 = CIRCLE ( 'NONE', #191, 1.220000000000000000 ) ;
|
||||||
|
#918 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
ENDSEC;
|
||||||
|
END-ISO-10303-21;
|
@ -0,0 +1,269 @@
|
|||||||
|
ISO-10303-21;
|
||||||
|
HEADER;
|
||||||
|
FILE_DESCRIPTION (( 'STEP AP203' ),
|
||||||
|
'1' );
|
||||||
|
FILE_NAME ('9472K188_Oil-Resistant Aramid-Buna-N Gasket.STEP',
|
||||||
|
'2022-11-17T21:46:33',
|
||||||
|
( 'Administrator' ),
|
||||||
|
( 'Managed by Terraform' ),
|
||||||
|
'SwSTEP 2.0',
|
||||||
|
'SolidWorks 2017',
|
||||||
|
'' );
|
||||||
|
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
|
||||||
|
ENDSEC;
|
||||||
|
|
||||||
|
DATA;
|
||||||
|
#1 = EDGE_CURVE ( 'NONE', #251, #149, #124, .T. ) ;
|
||||||
|
#2 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#3 = SECURITY_CLASSIFICATION ( '', '', #150 ) ;
|
||||||
|
#4 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#5 = AXIS2_PLACEMENT_3D ( 'NONE', #243, #143, #82 ) ;
|
||||||
|
#6 = DATE_AND_TIME ( #211, #125 ) ;
|
||||||
|
#7 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
|
||||||
|
#8 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #87 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #64, #168, #7 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
|
||||||
|
#9 = EDGE_LOOP ( 'NONE', ( #55, #200 ) ) ;
|
||||||
|
#10 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#11 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#12 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#13 = CALENDAR_DATE ( 2022, 17, 11 ) ;
|
||||||
|
#14 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #172 ) ;
|
||||||
|
#15 = CIRCLE ( 'NONE', #186, 1.187500000000000000 ) ;
|
||||||
|
#16 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
|
||||||
|
#17 = EDGE_CURVE ( 'NONE', #149, #114, #236, .T. ) ;
|
||||||
|
#18 = ORIENTED_EDGE ( 'NONE', *, *, #178, .T. ) ;
|
||||||
|
#19 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#20 = AXIS2_PLACEMENT_3D ( 'NONE', #135, #198, #19 ) ;
|
||||||
|
#21 = CIRCLE ( 'NONE', #91, 2.062500000000000000 ) ;
|
||||||
|
#22 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #221 ) ;
|
||||||
|
#23 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#24 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#25 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#26 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, -0.01562500000000000000 ) ) ;
|
||||||
|
#27 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
|
||||||
|
#28 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#29 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '9472K188_Oil-Resistant Aramid-Buna-N Gasket', ( #118, #194 ), #8 ) ;
|
||||||
|
#30 = AXIS2_PLACEMENT_3D ( 'NONE', #235, #39, #216 ) ;
|
||||||
|
#31 = ADVANCED_FACE ( 'NONE', ( #40 ), #192, .F. ) ;
|
||||||
|
#32 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #6, #212, ( #3 ) ) ;
|
||||||
|
#33 = ORIENTED_EDGE ( 'NONE', *, *, #171, .F. ) ;
|
||||||
|
#34 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#35 = ADVANCED_FACE ( 'NONE', ( #232 ), #132, .T. ) ;
|
||||||
|
#36 = CIRCLE ( 'NONE', #44, 1.187500000000000000 ) ;
|
||||||
|
#37 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#38 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#39 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#40 = FACE_OUTER_BOUND ( 'NONE', #54, .T. ) ;
|
||||||
|
#41 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#42 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #139, .NOT_KNOWN. ) ;
|
||||||
|
#43 = EDGE_LOOP ( 'NONE', ( #242, #57 ) ) ;
|
||||||
|
#44 = AXIS2_PLACEMENT_3D ( 'NONE', #131, #134, #38 ) ;
|
||||||
|
#45 = ORIENTED_EDGE ( 'NONE', *, *, #71, .T. ) ;
|
||||||
|
#46 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#47 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
|
||||||
|
#48 = ORIENTED_EDGE ( 'NONE', *, *, #99, .F. ) ;
|
||||||
|
#49 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#50 = DATE_TIME_ROLE ( 'creation_date' ) ;
|
||||||
|
#51 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #41, #210, ( #42 ) ) ;
|
||||||
|
#52 = ORIENTED_EDGE ( 'NONE', *, *, #115, .T. ) ;
|
||||||
|
#53 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #58, #148, ( #139 ) ) ;
|
||||||
|
#54 = EDGE_LOOP ( 'NONE', ( #116, #188, #179, #48 ) ) ;
|
||||||
|
#55 = ORIENTED_EDGE ( 'NONE', *, *, #59, .T. ) ;
|
||||||
|
#56 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #42, #225 ) ;
|
||||||
|
#57 = ORIENTED_EDGE ( 'NONE', *, *, #140, .F. ) ;
|
||||||
|
#58 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#59 = EDGE_CURVE ( 'NONE', #149, #251, #103, .T. ) ;
|
||||||
|
#60 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#61 = FACE_BOUND ( 'NONE', #80, .T. ) ;
|
||||||
|
#62 = ORIENTED_EDGE ( 'NONE', *, *, #99, .T. ) ;
|
||||||
|
#63 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#64 =( CONVERSION_BASED_UNIT ( 'INCH', #155 ) LENGTH_UNIT ( ) NAMED_UNIT ( #16 ) );
|
||||||
|
#65 = ORIENTED_EDGE ( 'NONE', *, *, #111, .F. ) ;
|
||||||
|
#66 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#67 = DATE_AND_TIME ( #13, #183 ) ;
|
||||||
|
#68 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#69 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#70 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#71 = EDGE_CURVE ( 'NONE', #251, #176, #249, .T. ) ;
|
||||||
|
#72 = LINE ( 'NONE', #189, #201 ) ;
|
||||||
|
#73 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#74 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #67, #50, ( #56 ) ) ;
|
||||||
|
#75 = ORIENTED_EDGE ( 'NONE', *, *, #17, .T. ) ;
|
||||||
|
#76 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#77 = EDGE_CURVE ( 'NONE', #160, #213, #36, .T. ) ;
|
||||||
|
#78 = ADVANCED_FACE ( 'NONE', ( #141 ), #128, .F. ) ;
|
||||||
|
#79 = FACE_BOUND ( 'NONE', #43, .T. ) ;
|
||||||
|
#80 = EDGE_LOOP ( 'NONE', ( #52, #62 ) ) ;
|
||||||
|
#81 = PLANE ( 'NONE', #157 ) ;
|
||||||
|
#82 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#83 = FACE_OUTER_BOUND ( 'NONE', #9, .T. ) ;
|
||||||
|
#84 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#85 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #244, #27, ( #42 ) ) ;
|
||||||
|
#86 = CLOSED_SHELL ( 'NONE', ( #78, #35, #92, #177, #130, #31 ) ) ;
|
||||||
|
#87 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #64, 'distance_accuracy_value', 'NONE');
|
||||||
|
#88 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#89 = CIRCLE ( 'NONE', #203, 1.187500000000000000 ) ;
|
||||||
|
#90 = APPROVAL_PERSON_ORGANIZATION ( #76, #153, #88 ) ;
|
||||||
|
#91 = AXIS2_PLACEMENT_3D ( 'NONE', #165, #208, #205 ) ;
|
||||||
|
#92 = ADVANCED_FACE ( 'NONE', ( #83, #79 ), #81, .T. ) ;
|
||||||
|
#93 = ORIENTED_EDGE ( 'NONE', *, *, #71, .F. ) ;
|
||||||
|
#94 = DATE_AND_TIME ( #145, #120 ) ;
|
||||||
|
#95 = ORIENTED_EDGE ( 'NONE', *, *, #115, .F. ) ;
|
||||||
|
#96 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#97 = AXIS2_PLACEMENT_3D ( 'NONE', #12, #63, #162 ) ;
|
||||||
|
#98 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#99 = EDGE_CURVE ( 'NONE', #163, #107, #89, .T. ) ;
|
||||||
|
#100 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
|
||||||
|
#101 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, 0.01562500000000000000 ) ) ;
|
||||||
|
#102 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 0.01562500000000000000 ) ) ;
|
||||||
|
#103 = CIRCLE ( 'NONE', #105, 2.062500000000000000 ) ;
|
||||||
|
#104 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#105 = AXIS2_PLACEMENT_3D ( 'NONE', #147, #73, #152 ) ;
|
||||||
|
#106 = CYLINDRICAL_SURFACE ( 'NONE', #97, 2.062500000000000000 ) ;
|
||||||
|
#107 = VERTEX_POINT ( 'NONE', #240 ) ;
|
||||||
|
#108 = AXIS2_PLACEMENT_3D ( 'NONE', #174, #127, #245 ) ;
|
||||||
|
#109 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #56 ) ;
|
||||||
|
#110 = ORIENTED_EDGE ( 'NONE', *, *, #1, .F. ) ;
|
||||||
|
#111 = EDGE_CURVE ( 'NONE', #114, #176, #21, .T. ) ;
|
||||||
|
#112 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#113 = FACE_OUTER_BOUND ( 'NONE', #209, .T. ) ;
|
||||||
|
#114 = VERTEX_POINT ( 'NONE', #23 ) ;
|
||||||
|
#115 = EDGE_CURVE ( 'NONE', #107, #163, #246, .T. ) ;
|
||||||
|
#116 = ORIENTED_EDGE ( 'NONE', *, *, #193, .F. ) ;
|
||||||
|
#117 = CALENDAR_DATE ( 2022, 17, 11 ) ;
|
||||||
|
#118 = MANIFOLD_SOLID_BREP ( 'Boss-Extrude1', #86 ) ;
|
||||||
|
#119 = AXIS2_PLACEMENT_3D ( 'NONE', #234, #4, #112 ) ;
|
||||||
|
#120 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #96 ) ;
|
||||||
|
#121 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#122 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#123 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#124 = CIRCLE ( 'NONE', #30, 2.062500000000000000 ) ;
|
||||||
|
#125 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #233 ) ;
|
||||||
|
#126 = MECHANICAL_CONTEXT ( 'NONE', #46, 'mechanical' ) ;
|
||||||
|
#127 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#128 = CYLINDRICAL_SURFACE ( 'NONE', #108, 1.187500000000000000 ) ;
|
||||||
|
#129 = EDGE_LOOP ( 'NONE', ( #182, #202, #95, #33 ) ) ;
|
||||||
|
#130 = ADVANCED_FACE ( 'NONE', ( #238 ), #106, .T. ) ;
|
||||||
|
#131 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#132 = CYLINDRICAL_SURFACE ( 'NONE', #20, 2.062500000000000000 ) ;
|
||||||
|
#133 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#134 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#135 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#136 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #37, #47, ( #3 ) ) ;
|
||||||
|
#137 = EDGE_LOOP ( 'NONE', ( #110, #45, #18, #227 ) ) ;
|
||||||
|
#138 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
|
||||||
|
#139 = PRODUCT ( '9472K188_Oil-Resistant Aramid-Buna-N Gasket', '9472K188_Oil-Resistant Aramid-Buna-N Gasket', '', ( #126 ) ) ;
|
||||||
|
#140 = EDGE_CURVE ( 'NONE', #213, #160, #15, .T. ) ;
|
||||||
|
#141 = FACE_OUTER_BOUND ( 'NONE', #129, .T. ) ;
|
||||||
|
#142 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#143 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#144 = ORIENTED_EDGE ( 'NONE', *, *, #59, .F. ) ;
|
||||||
|
#145 = CALENDAR_DATE ( 2022, 17, 11 ) ;
|
||||||
|
#146 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#147 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#148 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
|
||||||
|
#149 = VERTEX_POINT ( 'NONE', #167 ) ;
|
||||||
|
#150 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
|
||||||
|
#151 = APPROVAL_DATE_TIME ( #180, #153 ) ;
|
||||||
|
#152 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#153 = APPROVAL ( #170, 'UNSPECIFIED' ) ;
|
||||||
|
#154 = ORIENTED_EDGE ( 'NONE', *, *, #178, .F. ) ;
|
||||||
|
#155 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #100 );
|
||||||
|
#156 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#157 = AXIS2_PLACEMENT_3D ( 'NONE', #68, #185, #206 ) ;
|
||||||
|
#158 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#159 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
|
||||||
|
#160 = VERTEX_POINT ( 'NONE', #146 ) ;
|
||||||
|
#161 = SHAPE_DEFINITION_REPRESENTATION ( #109, #29 ) ;
|
||||||
|
#162 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#163 = VERTEX_POINT ( 'NONE', #226 ) ;
|
||||||
|
#164 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#165 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#166 = APPROVAL ( #229, 'UNSPECIFIED' ) ;
|
||||||
|
#167 = CARTESIAN_POINT ( 'NONE', ( -2.062500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#168 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
|
||||||
|
#169 = VECTOR ( 'NONE', #156, 39.37007874015748100 ) ;
|
||||||
|
#170 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#171 = EDGE_CURVE ( 'NONE', #160, #107, #217, .T. ) ;
|
||||||
|
#172 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#173 = VECTOR ( 'NONE', #122, 39.37007874015748100 ) ;
|
||||||
|
#174 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#175 = APPROVAL ( #69, 'UNSPECIFIED' ) ;
|
||||||
|
#176 = VERTEX_POINT ( 'NONE', #26 ) ;
|
||||||
|
#177 = ADVANCED_FACE ( 'NONE', ( #113, #61 ), #247, .F. ) ;
|
||||||
|
#178 = EDGE_CURVE ( 'NONE', #176, #114, #252, .T. ) ;
|
||||||
|
#179 = ORIENTED_EDGE ( 'NONE', *, *, #171, .T. ) ;
|
||||||
|
#180 = DATE_AND_TIME ( #228, #22 ) ;
|
||||||
|
#181 = AXIS2_PLACEMENT_3D ( 'NONE', #25, #187, #11 ) ;
|
||||||
|
#182 = ORIENTED_EDGE ( 'NONE', *, *, #77, .T. ) ;
|
||||||
|
#183 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #133 ) ;
|
||||||
|
#184 = APPROVAL_DATE_TIME ( #94, #175 ) ;
|
||||||
|
#185 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#186 = AXIS2_PLACEMENT_3D ( 'NONE', #66, #224, #142 ) ;
|
||||||
|
#187 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#188 = ORIENTED_EDGE ( 'NONE', *, *, #140, .T. ) ;
|
||||||
|
#189 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, 0.01562500000000000000 ) ) ;
|
||||||
|
#190 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #46 ) ;
|
||||||
|
#191 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#192 = CYLINDRICAL_SURFACE ( 'NONE', #119, 1.187500000000000000 ) ;
|
||||||
|
#193 = EDGE_CURVE ( 'NONE', #213, #163, #72, .T. ) ;
|
||||||
|
#194 = AXIS2_PLACEMENT_3D ( 'NONE', #84, #98, #123 ) ;
|
||||||
|
#195 = LOCAL_TIME ( 15, 46, 33.00000000000000000, #237 ) ;
|
||||||
|
#196 = VECTOR ( 'NONE', #104, 39.37007874015748100 ) ;
|
||||||
|
#197 = APPROVAL_DATE_TIME ( #214, #166 ) ;
|
||||||
|
#198 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#199 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #139 ) ) ;
|
||||||
|
#200 = ORIENTED_EDGE ( 'NONE', *, *, #1, .T. ) ;
|
||||||
|
#201 = VECTOR ( 'NONE', #222, 39.37007874015748100 ) ;
|
||||||
|
#202 = ORIENTED_EDGE ( 'NONE', *, *, #193, .T. ) ;
|
||||||
|
#203 = AXIS2_PLACEMENT_3D ( 'NONE', #121, #248, #164 ) ;
|
||||||
|
#204 = CARTESIAN_POINT ( 'NONE', ( 2.062500000000000000, 2.525834023241416400E-016, 0.01562500000000000000 ) ) ;
|
||||||
|
#205 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#206 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#207 = CC_DESIGN_APPROVAL ( #166, ( #56 ) ) ;
|
||||||
|
#208 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#209 = EDGE_LOOP ( 'NONE', ( #65, #154 ) ) ;
|
||||||
|
#210 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#211 = CALENDAR_DATE ( 2022, 17, 11 ) ;
|
||||||
|
#212 = DATE_TIME_ROLE ( 'classification_date' ) ;
|
||||||
|
#213 = VERTEX_POINT ( 'NONE', #102 ) ;
|
||||||
|
#214 = DATE_AND_TIME ( #117, #195 ) ;
|
||||||
|
#215 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #34, #28, ( #56 ) ) ;
|
||||||
|
#216 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#217 = LINE ( 'NONE', #241, #173 ) ;
|
||||||
|
#218 = ORIENTED_EDGE ( 'NONE', *, *, #111, .T. ) ;
|
||||||
|
#219 = CC_DESIGN_SECURITY_CLASSIFICATION ( #3, ( #42 ) ) ;
|
||||||
|
#220 = EDGE_LOOP ( 'NONE', ( #93, #144, #75, #218 ) ) ;
|
||||||
|
#221 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#222 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#223 = CC_DESIGN_APPROVAL ( #153, ( #3 ) ) ;
|
||||||
|
#224 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#225 = DESIGN_CONTEXT ( 'detailed design', #172, 'design' ) ;
|
||||||
|
#226 = CARTESIAN_POINT ( 'NONE', ( 1.187500000000000000, 1.454268073987481900E-016, -0.01562500000000000000 ) ) ;
|
||||||
|
#227 = ORIENTED_EDGE ( 'NONE', *, *, #17, .F. ) ;
|
||||||
|
#228 = CALENDAR_DATE ( 2022, 17, 11 ) ;
|
||||||
|
#229 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#230 = APPROVAL_PERSON_ORGANIZATION ( #2, #175, #191 ) ;
|
||||||
|
#231 = AXIS2_PLACEMENT_3D ( 'NONE', #10, #24, #60 ) ;
|
||||||
|
#232 = FACE_OUTER_BOUND ( 'NONE', #137, .T. ) ;
|
||||||
|
#233 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#234 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#235 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#236 = LINE ( 'NONE', #158, #169 ) ;
|
||||||
|
#237 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#238 = FACE_OUTER_BOUND ( 'NONE', #220, .T. ) ;
|
||||||
|
#239 = APPROVAL_PERSON_ORGANIZATION ( #49, #166, #70 ) ;
|
||||||
|
#240 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#241 = CARTESIAN_POINT ( 'NONE', ( -1.187500000000000000, 0.0000000000000000000, 0.01562500000000000000 ) ) ;
|
||||||
|
#242 = ORIENTED_EDGE ( 'NONE', *, *, #77, .F. ) ;
|
||||||
|
#243 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01562500000000000000 ) ) ;
|
||||||
|
#244 = PERSON_AND_ORGANIZATION ( #159, #138 ) ;
|
||||||
|
#245 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#246 = CIRCLE ( 'NONE', #231, 1.187500000000000000 ) ;
|
||||||
|
#247 = PLANE ( 'NONE', #181 ) ;
|
||||||
|
#248 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#249 = LINE ( 'NONE', #101, #196 ) ;
|
||||||
|
#250 = CC_DESIGN_APPROVAL ( #175, ( #42 ) ) ;
|
||||||
|
#251 = VERTEX_POINT ( 'NONE', #204 ) ;
|
||||||
|
#252 = CIRCLE ( 'NONE', #5, 2.062500000000000000 ) ;
|
||||||
|
ENDSEC;
|
||||||
|
END-ISO-10303-21;
|
@ -0,0 +1,373 @@
|
|||||||
|
ISO-10303-21;
|
||||||
|
HEADER;
|
||||||
|
FILE_DESCRIPTION (( 'STEP AP203' ),
|
||||||
|
'1' );
|
||||||
|
FILE_NAME ('98017A257_18-8 Stainless Steel Mil. Spec. Washer.STEP',
|
||||||
|
'2023-09-12T13:39:25',
|
||||||
|
( 'Administrator' ),
|
||||||
|
( 'Managed by Terraform' ),
|
||||||
|
'SwSTEP 2.0',
|
||||||
|
'SolidWorks 2017',
|
||||||
|
'' );
|
||||||
|
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
|
||||||
|
ENDSEC;
|
||||||
|
|
||||||
|
DATA;
|
||||||
|
#1 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, -0.01600000000000001800 ) ) ;
|
||||||
|
#2 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#3 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
|
||||||
|
#4 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#5 = FACE_BOUND ( 'NONE', #226, .T. ) ;
|
||||||
|
#6 = APPROVAL ( #354, 'UNSPECIFIED' ) ;
|
||||||
|
#7 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #120 ) ;
|
||||||
|
#8 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#9 = CIRCLE ( 'NONE', #260, 0.3200000000000000100 ) ;
|
||||||
|
#10 = VERTEX_POINT ( 'NONE', #20 ) ;
|
||||||
|
#11 = AXIS2_PLACEMENT_3D ( 'NONE', #108, #220, #275 ) ;
|
||||||
|
#12 = CYLINDRICAL_SURFACE ( 'NONE', #11, 0.3200000000000000100 ) ;
|
||||||
|
#13 = FACE_OUTER_BOUND ( 'NONE', #312, .T. ) ;
|
||||||
|
#14 = VERTEX_POINT ( 'NONE', #1 ) ;
|
||||||
|
#15 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#16 = ORIENTED_EDGE ( 'NONE', *, *, #31, .T. ) ;
|
||||||
|
#17 = AXIS2_PLACEMENT_3D ( 'NONE', #130, #23, #272 ) ;
|
||||||
|
#18 = ORIENTED_EDGE ( 'NONE', *, *, #188, .T. ) ;
|
||||||
|
#19 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#20 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, 0.01280000000000027500 ) ) ;
|
||||||
|
#21 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#22 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'detail', '', ( #84 ) ) ;
|
||||||
|
#23 = DIRECTION ( 'NONE', ( 1.224646799147353200E-016, 1.000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#24 = CALENDAR_DATE ( 2023, 12, 9 ) ;
|
||||||
|
#25 = FACE_OUTER_BOUND ( 'NONE', #137, .T. ) ;
|
||||||
|
#26 = AXIS2_PLACEMENT_3D ( 'NONE', #131, #306, #147 ) ;
|
||||||
|
#27 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#28 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#29 = CIRCLE ( 'NONE', #250, 0.5939999999999999700 ) ;
|
||||||
|
#30 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#31 = EDGE_CURVE ( 'NONE', #223, #296, #29, .T. ) ;
|
||||||
|
#32 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#33 = CALENDAR_DATE ( 2023, 12, 9 ) ;
|
||||||
|
#34 = VERTEX_POINT ( 'NONE', #27 ) ;
|
||||||
|
#35 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#36 = CALENDAR_DATE ( 2023, 12, 9 ) ;
|
||||||
|
#37 = ORIENTED_EDGE ( 'NONE', *, *, #230, .F. ) ;
|
||||||
|
#38 = ORIENTED_EDGE ( 'NONE', *, *, #341, .T. ) ;
|
||||||
|
#39 = AXIS2_PLACEMENT_3D ( 'NONE', #182, #123, #21 ) ;
|
||||||
|
#40 = VERTEX_POINT ( 'NONE', #346 ) ;
|
||||||
|
#41 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #54 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #73, #214, #268 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
|
||||||
|
#42 = ADVANCED_FACE ( 'NONE', ( #5, #25 ), #238, .T. ) ;
|
||||||
|
#43 = TOROIDAL_SURFACE ( 'NONE', #200, 0.3271554175279990400, 0.009600000000000000900 ) ;
|
||||||
|
#44 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
|
||||||
|
#45 = DIRECTION ( 'NONE', ( -1.000000000000000000, -1.224646799147356200E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#46 = EDGE_CURVE ( 'NONE', #223, #271, #286, .T. ) ;
|
||||||
|
#47 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #169 ) ;
|
||||||
|
#48 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#49 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #241 ) ;
|
||||||
|
#50 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#51 = CYLINDRICAL_SURFACE ( 'NONE', #274, 0.5939999999999999700 ) ;
|
||||||
|
#52 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #90, #126, ( #248 ) ) ;
|
||||||
|
#53 = ORIENTED_EDGE ( 'NONE', *, *, #349, .F. ) ;
|
||||||
|
#54 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000100E-005 ), #73, 'distance_accuracy_value', 'NONE');
|
||||||
|
#55 = CARTESIAN_POINT ( 'NONE', ( 0.3200000000000000100, 3.918869757271530800E-017, 0.01599999999999998300 ) ) ;
|
||||||
|
#56 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#57 = ORGANIZATION ( 'UNSPECIFIED', 'UNSPECIFIED', '' ) ;
|
||||||
|
#58 = ORIENTED_EDGE ( 'NONE', *, *, #93, .F. ) ;
|
||||||
|
#59 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#60 = DATE_AND_TIME ( #36, #7 ) ;
|
||||||
|
#61 = EDGE_CURVE ( 'NONE', #34, #14, #235, .T. ) ;
|
||||||
|
#62 = EDGE_LOOP ( 'NONE', ( #282, #38, #82, #141 ) ) ;
|
||||||
|
#63 = VERTEX_POINT ( 'NONE', #320 ) ;
|
||||||
|
#64 = APPROVAL_PERSON_ORGANIZATION ( #281, #114, #75 ) ;
|
||||||
|
#65 = ORIENTED_EDGE ( 'NONE', *, *, #313, .F. ) ;
|
||||||
|
#66 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#67 = EDGE_CURVE ( 'NONE', #63, #315, #342, .T. ) ;
|
||||||
|
#68 = CIRCLE ( 'NONE', #256, 0.3271554175279990400 ) ;
|
||||||
|
#69 = DATE_TIME_ROLE ( 'creation_date' ) ;
|
||||||
|
#70 = TOROIDAL_SURFACE ( 'NONE', #138, 0.5868445824720007800, 0.009600000000000000900 ) ;
|
||||||
|
#71 = CLOSED_SHELL ( 'NONE', ( #155, #292, #326, #295, #42, #247, #101, #179, #344, #97 ) ) ;
|
||||||
|
#72 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#73 =( CONVERSION_BASED_UNIT ( 'INCH', #333 ) LENGTH_UNIT ( ) NAMED_UNIT ( #262 ) );
|
||||||
|
#74 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#75 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#76 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #186, #285 ) ;
|
||||||
|
#77 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#78 = CYLINDRICAL_SURFACE ( 'NONE', #26, 0.5939999999999999700 ) ;
|
||||||
|
#79 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#80 = CIRCLE ( 'NONE', #219, 0.009600000000000000900 ) ;
|
||||||
|
#81 = APPROVAL ( #294, 'UNSPECIFIED' ) ;
|
||||||
|
#82 = ORIENTED_EDGE ( 'NONE', *, *, #31, .F. ) ;
|
||||||
|
#83 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#84 = PRODUCT ( '98017A257_18-8 Stainless Steel Mil. Spec. Washer', '98017A257_18-8 Stainless Steel Mil. Spec. Washer', '', ( #100 ) ) ;
|
||||||
|
#85 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #15 ) ;
|
||||||
|
#86 = CIRCLE ( 'NONE', #17, 0.009600000000000014800 ) ;
|
||||||
|
#87 = SHAPE_DEFINITION_REPRESENTATION ( #206, #345 ) ;
|
||||||
|
#88 = CIRCLE ( 'NONE', #193, 0.5939999999999999700 ) ;
|
||||||
|
#89 = EDGE_LOOP ( 'NONE', ( #58, #183, #174, #287 ) ) ;
|
||||||
|
#90 = DATE_AND_TIME ( #113, #261 ) ;
|
||||||
|
#91 = APPROVAL_DATE_TIME ( #196, #6 ) ;
|
||||||
|
#92 = FACE_OUTER_BOUND ( 'NONE', #252, .T. ) ;
|
||||||
|
#93 = EDGE_CURVE ( 'NONE', #296, #40, #228, .T. ) ;
|
||||||
|
#94 = CIRCLE ( 'NONE', #172, 0.3271554175279990400 ) ;
|
||||||
|
#95 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
|
||||||
|
#96 = ORIENTED_EDGE ( 'NONE', *, *, #154, .F. ) ;
|
||||||
|
#97 = ADVANCED_FACE ( 'NONE', ( #311 ), #70, .T. ) ;
|
||||||
|
#98 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#99 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #103, #297, ( #76 ) ) ;
|
||||||
|
#100 = MECHANICAL_CONTEXT ( 'NONE', #241, 'mechanical' ) ;
|
||||||
|
#101 = ADVANCED_FACE ( 'NONE', ( #236 ), #51, .T. ) ;
|
||||||
|
#102 = EDGE_CURVE ( 'NONE', #173, #10, #304, .T. ) ;
|
||||||
|
#103 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#104 = ORIENTED_EDGE ( 'NONE', *, *, #341, .F. ) ;
|
||||||
|
#105 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#106 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#107 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#108 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#109 = ORIENTED_EDGE ( 'NONE', *, *, #234, .T. ) ;
|
||||||
|
#110 = AXIS2_PLACEMENT_3D ( 'NONE', #240, #276, #356 ) ;
|
||||||
|
#111 = CARTESIAN_POINT ( 'NONE', ( -0.5868445824720007800, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#112 = ORIENTED_EDGE ( 'NONE', *, *, #171, .F. ) ;
|
||||||
|
#113 = CALENDAR_DATE ( 2023, 12, 9 ) ;
|
||||||
|
#114 = APPROVAL ( #4, 'UNSPECIFIED' ) ;
|
||||||
|
#115 = EDGE_CURVE ( 'NONE', #135, #34, #153, .T. ) ;
|
||||||
|
#116 = VECTOR ( 'NONE', #288, 39.37007874015748100 ) ;
|
||||||
|
#117 = EDGE_LOOP ( 'NONE', ( #216, #337 ) ) ;
|
||||||
|
#118 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#119 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#120 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#121 = AXIS2_PLACEMENT_3D ( 'NONE', #267, #124, #218 ) ;
|
||||||
|
#122 = AXIS2_PLACEMENT_3D ( 'NONE', #300, #217, #72 ) ;
|
||||||
|
#123 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#124 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#125 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #347 ) ;
|
||||||
|
#126 = DATE_TIME_ROLE ( 'classification_date' ) ;
|
||||||
|
#127 = EDGE_LOOP ( 'NONE', ( #104, #317, #157, #96 ) ) ;
|
||||||
|
#128 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#129 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#130 = CARTESIAN_POINT ( 'NONE', ( -0.3271554175279990400, 4.006498348993799500E-017, 0.006399999999999983000 ) ) ;
|
||||||
|
#131 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#132 = CC_DESIGN_APPROVAL ( #114, ( #76 ) ) ;
|
||||||
|
#133 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#134 = PERSON_AND_ORGANIZATION_ROLE ( 'design_owner' ) ;
|
||||||
|
#135 = VERTEX_POINT ( 'NONE', #162 ) ;
|
||||||
|
#136 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#137 = EDGE_LOOP ( 'NONE', ( #245, #145 ) ) ;
|
||||||
|
#138 = AXIS2_PLACEMENT_3D ( 'NONE', #178, #352, #310 ) ;
|
||||||
|
#139 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT ( #314, #69, ( #76 ) ) ;
|
||||||
|
#140 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#141 = ORIENTED_EDGE ( 'NONE', *, *, #212, .F. ) ;
|
||||||
|
#142 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#143 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#144 = ORIENTED_EDGE ( 'NONE', *, *, #188, .F. ) ;
|
||||||
|
#145 = ORIENTED_EDGE ( 'NONE', *, *, #67, .T. ) ;
|
||||||
|
#146 = APPROVAL_DATE_TIME ( #60, #81 ) ;
|
||||||
|
#147 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#148 = EDGE_CURVE ( 'NONE', #135, #10, #231, .T. ) ;
|
||||||
|
#149 = CIRCLE ( 'NONE', #338, 0.3200000000000000100 ) ;
|
||||||
|
#150 = ORIENTED_EDGE ( 'NONE', *, *, #93, .T. ) ;
|
||||||
|
#151 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, 0.01599999999999998300 ) ) ;
|
||||||
|
#152 = APPROVAL_DATE_TIME ( #207, #114 ) ;
|
||||||
|
#153 = LINE ( 'NONE', #8, #170 ) ;
|
||||||
|
#154 = EDGE_CURVE ( 'NONE', #296, #223, #191, .T. ) ;
|
||||||
|
#155 = ADVANCED_FACE ( 'NONE', ( #225 ), #283, .T. ) ;
|
||||||
|
#156 = AXIS2_PLACEMENT_3D ( 'NONE', #190, #249, #77 ) ;
|
||||||
|
#157 = ORIENTED_EDGE ( 'NONE', *, *, #212, .T. ) ;
|
||||||
|
#158 = ORIENTED_EDGE ( 'NONE', *, *, #308, .F. ) ;
|
||||||
|
#159 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #194, #350, ( #248 ) ) ;
|
||||||
|
#160 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#161 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#162 = CARTESIAN_POINT ( 'NONE', ( -0.3200000000000000100, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
|
||||||
|
#163 = DIRECTION ( 'NONE', ( -1.224646799147353200E-016, 1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#164 = LINE ( 'NONE', #55, #167 ) ;
|
||||||
|
#165 = CARTESIAN_POINT ( 'NONE', ( -0.5868445824720007800, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#166 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000013800 ) ) ;
|
||||||
|
#167 = VECTOR ( 'NONE', #105, 39.37007874015748100 ) ;
|
||||||
|
#168 = ORIENTED_EDGE ( 'NONE', *, *, #115, .F. ) ;
|
||||||
|
#169 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#170 = VECTOR ( 'NONE', #302, 39.37007874015748100 ) ;
|
||||||
|
#171 = EDGE_CURVE ( 'NONE', #173, #211, #94, .T. ) ;
|
||||||
|
#172 = AXIS2_PLACEMENT_3D ( 'NONE', #136, #327, #279 ) ;
|
||||||
|
#173 = VERTEX_POINT ( 'NONE', #301 ) ;
|
||||||
|
#174 = ORIENTED_EDGE ( 'NONE', *, *, #46, .T. ) ;
|
||||||
|
#175 = AXIS2_PLACEMENT_3D ( 'NONE', #143, #59, #229 ) ;
|
||||||
|
#176 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#177 = EDGE_LOOP ( 'NONE', ( #144, #109, #343, #158 ) ) ;
|
||||||
|
#178 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#179 = ADVANCED_FACE ( 'NONE', ( #293 ), #12, .F. ) ;
|
||||||
|
#180 = FACE_OUTER_BOUND ( 'NONE', #202, .T. ) ;
|
||||||
|
#181 = AXIS2_PLACEMENT_3D ( 'NONE', #50, #222, #246 ) ;
|
||||||
|
#182 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#183 = ORIENTED_EDGE ( 'NONE', *, *, #154, .T. ) ;
|
||||||
|
#184 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#185 = PERSON_AND_ORGANIZATION_ROLE ( 'design_supplier' ) ;
|
||||||
|
#186 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #84, .NOT_KNOWN. ) ;
|
||||||
|
#187 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#188 = EDGE_CURVE ( 'NONE', #10, #14, #164, .T. ) ;
|
||||||
|
#189 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#190 = CARTESIAN_POINT ( 'NONE', ( 0.3271554175279990400, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#191 = CIRCLE ( 'NONE', #284, 0.5939999999999999700 ) ;
|
||||||
|
#192 = ORIENTED_EDGE ( 'NONE', *, *, #318, .T. ) ;
|
||||||
|
#193 = AXIS2_PLACEMENT_3D ( 'NONE', #195, #30, #227 ) ;
|
||||||
|
#194 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#195 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#196 = DATE_AND_TIME ( #269, #47 ) ;
|
||||||
|
#197 = CARTESIAN_POINT ( 'NONE', ( -0.5939999999999999700, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#198 = ORIENTED_EDGE ( 'NONE', *, *, #313, .T. ) ;
|
||||||
|
#199 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#200 = AXIS2_PLACEMENT_3D ( 'NONE', #257, #128, #353 ) ;
|
||||||
|
#201 = TOROIDAL_SURFACE ( 'NONE', #110, 0.3271554175279990400, 0.009600000000000000900 ) ;
|
||||||
|
#202 = EDGE_LOOP ( 'NONE', ( #37, #53 ) ) ;
|
||||||
|
#203 = PERSON ( 'UNSPECIFIED', 'UNSPECIFIED', 'UNSPECIFIED', ('UNSPECIFIED'), ('UNSPECIFIED'), ('UNSPECIFIED') ) ;
|
||||||
|
#204 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#205 = AXIS2_PLACEMENT_3D ( 'NONE', #118, #233, #66 ) ;
|
||||||
|
#206 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #76 ) ;
|
||||||
|
#207 = DATE_AND_TIME ( #24, #85 ) ;
|
||||||
|
#208 = ORIENTED_EDGE ( 'NONE', *, *, #318, .F. ) ;
|
||||||
|
#209 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #119, #98, ( #186 ) ) ;
|
||||||
|
#210 = CIRCLE ( 'NONE', #175, 0.5868445824720007800 ) ;
|
||||||
|
#211 = VERTEX_POINT ( 'NONE', #291 ) ;
|
||||||
|
#212 = EDGE_CURVE ( 'NONE', #315, #223, #80, .T. ) ;
|
||||||
|
#213 = VECTOR ( 'NONE', #270, 39.37007874015748100 ) ;
|
||||||
|
#214 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
|
||||||
|
#215 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #273, #185, ( #186 ) ) ;
|
||||||
|
#216 = ORIENTED_EDGE ( 'NONE', *, *, #61, .T. ) ;
|
||||||
|
#217 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#218 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, -0.0000000000000000000 ) ) ;
|
||||||
|
#219 = AXIS2_PLACEMENT_3D ( 'NONE', #111, #305, #199 ) ;
|
||||||
|
#220 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#221 = SECURITY_CLASSIFICATION_LEVEL ( 'unclassified' ) ;
|
||||||
|
#222 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#223 = VERTEX_POINT ( 'NONE', #95 ) ;
|
||||||
|
#224 = ORIENTED_EDGE ( 'NONE', *, *, #148, .T. ) ;
|
||||||
|
#225 = FACE_OUTER_BOUND ( 'NONE', #62, .T. ) ;
|
||||||
|
#226 = EDGE_LOOP ( 'NONE', ( #258, #192 ) ) ;
|
||||||
|
#227 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#228 = LINE ( 'NONE', #151, #116 ) ;
|
||||||
|
#229 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#230 = EDGE_CURVE ( 'NONE', #271, #40, #88, .T. ) ;
|
||||||
|
#231 = CIRCLE ( 'NONE', #265, 0.3200000000000000100 ) ;
|
||||||
|
#232 = CC_DESIGN_SECURITY_CLASSIFICATION ( #248, ( #186 ) ) ;
|
||||||
|
#233 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#234 = EDGE_CURVE ( 'NONE', #10, #135, #9, .T. ) ;
|
||||||
|
#235 = CIRCLE ( 'NONE', #322, 0.3200000000000000100 ) ;
|
||||||
|
#236 = FACE_OUTER_BOUND ( 'NONE', #89, .T. ) ;
|
||||||
|
#237 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#238 = PLANE ( 'NONE', #121 ) ;
|
||||||
|
#239 = AXIS2_PLACEMENT_3D ( 'NONE', #324, #163, #45 ) ;
|
||||||
|
#240 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#241 = APPLICATION_CONTEXT ( 'configuration controlled 3d designs of mechanical parts and assemblies' ) ;
|
||||||
|
#242 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#243 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#244 = CC_DESIGN_APPROVAL ( #6, ( #186 ) ) ;
|
||||||
|
#245 = ORIENTED_EDGE ( 'NONE', *, *, #289, .T. ) ;
|
||||||
|
#246 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#247 = ADVANCED_FACE ( 'NONE', ( #180, #299 ), #332, .F. ) ;
|
||||||
|
#248 = SECURITY_CLASSIFICATION ( '', '', #221 ) ;
|
||||||
|
#249 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#250 = AXIS2_PLACEMENT_3D ( 'NONE', #44, #74, #355 ) ;
|
||||||
|
#251 = ORIENTED_EDGE ( 'NONE', *, *, #148, .F. ) ;
|
||||||
|
#252 = EDGE_LOOP ( 'NONE', ( #16, #150, #340, #263 ) ) ;
|
||||||
|
#253 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, 0.01280000000000013800 ) ) ;
|
||||||
|
#254 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01280000000000027500 ) ) ;
|
||||||
|
#255 = ORIENTED_EDGE ( 'NONE', *, *, #102, .T. ) ;
|
||||||
|
#256 = AXIS2_PLACEMENT_3D ( 'NONE', #19, #187, #325 ) ;
|
||||||
|
#257 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.006399999999999983000 ) ) ;
|
||||||
|
#258 = ORIENTED_EDGE ( 'NONE', *, *, #171, .T. ) ;
|
||||||
|
#259 = CC_DESIGN_APPROVAL ( #81, ( #248 ) ) ;
|
||||||
|
#260 = AXIS2_PLACEMENT_3D ( 'NONE', #254, #56, #142 ) ;
|
||||||
|
#261 = LOCAL_TIME ( 8, 39, 25.00000000000000000, #335 ) ;
|
||||||
|
#262 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ;
|
||||||
|
#263 = ORIENTED_EDGE ( 'NONE', *, *, #46, .F. ) ;
|
||||||
|
#264 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#265 = AXIS2_PLACEMENT_3D ( 'NONE', #3, #243, #107 ) ;
|
||||||
|
#266 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#267 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#268 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
|
||||||
|
#269 = CALENDAR_DATE ( 2023, 12, 9 ) ;
|
||||||
|
#270 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#271 = VERTEX_POINT ( 'NONE', #197 ) ;
|
||||||
|
#272 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147348300E-016, 0.0000000000000000000 ) ) ;
|
||||||
|
#273 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#274 = AXIS2_PLACEMENT_3D ( 'NONE', #160, #264, #129 ) ;
|
||||||
|
#275 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#276 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#277 = FACE_OUTER_BOUND ( 'NONE', #278, .T. ) ;
|
||||||
|
#278 = EDGE_LOOP ( 'NONE', ( #65, #112, #255, #251 ) ) ;
|
||||||
|
#279 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#280 = AXIS2_PLACEMENT_3D ( 'NONE', #140, #330, #32 ) ;
|
||||||
|
#281 = PERSON_AND_ORGANIZATION ( #203, #57 ) ;
|
||||||
|
#282 = ORIENTED_EDGE ( 'NONE', *, *, #67, .F. ) ;
|
||||||
|
#283 = TOROIDAL_SURFACE ( 'NONE', #303, 0.5868445824720007800, 0.009600000000000000900 ) ;
|
||||||
|
#284 = AXIS2_PLACEMENT_3D ( 'NONE', #166, #106, #184 ) ;
|
||||||
|
#285 = DESIGN_CONTEXT ( 'detailed design', #237, 'design' ) ;
|
||||||
|
#286 = LINE ( 'NONE', #161, #213 ) ;
|
||||||
|
#287 = ORIENTED_EDGE ( 'NONE', *, *, #230, .T. ) ;
|
||||||
|
#288 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#289 = EDGE_CURVE ( 'NONE', #315, #63, #210, .T. ) ;
|
||||||
|
#290 = FACE_OUTER_BOUND ( 'NONE', #348, .T. ) ;
|
||||||
|
#291 = CARTESIAN_POINT ( 'NONE', ( -0.3271554175279990400, 4.006498348993799500E-017, 0.01599999999999998300 ) ) ;
|
||||||
|
#292 = ADVANCED_FACE ( 'NONE', ( #13 ), #43, .T. ) ;
|
||||||
|
#293 = FACE_OUTER_BOUND ( 'NONE', #177, .T. ) ;
|
||||||
|
#294 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#295 = ADVANCED_FACE ( 'NONE', ( #92 ), #78, .T. ) ;
|
||||||
|
#296 = VERTEX_POINT ( 'NONE', #253 ) ;
|
||||||
|
#297 = PERSON_AND_ORGANIZATION_ROLE ( 'creator' ) ;
|
||||||
|
#298 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) );
|
||||||
|
#299 = FACE_BOUND ( 'NONE', #117, .T. ) ;
|
||||||
|
#300 = CARTESIAN_POINT ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, -0.01600000000000001800 ) ) ;
|
||||||
|
#301 = CARTESIAN_POINT ( 'NONE', ( 0.3271554175279990400, 0.0000000000000000000, 0.01599999999999998300 ) ) ;
|
||||||
|
#302 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#303 = AXIS2_PLACEMENT_3D ( 'NONE', #189, #28, #48 ) ;
|
||||||
|
#304 = CIRCLE ( 'NONE', #156, 0.009600000000000000900 ) ;
|
||||||
|
#305 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#306 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#307 = MANIFOLD_SOLID_BREP ( 'Fillet1', #71 ) ;
|
||||||
|
#308 = EDGE_CURVE ( 'NONE', #14, #34, #149, .T. ) ;
|
||||||
|
#309 = CYLINDRICAL_SURFACE ( 'NONE', #39, 0.3200000000000000100 ) ;
|
||||||
|
#310 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#311 = FACE_OUTER_BOUND ( 'NONE', #127, .T. ) ;
|
||||||
|
#312 = EDGE_LOOP ( 'NONE', ( #208, #198, #329, #316 ) ) ;
|
||||||
|
#313 = EDGE_CURVE ( 'NONE', #211, #135, #86, .T. ) ;
|
||||||
|
#314 = DATE_AND_TIME ( #33, #125 ) ;
|
||||||
|
#315 = VERTEX_POINT ( 'NONE', #165 ) ;
|
||||||
|
#316 = ORIENTED_EDGE ( 'NONE', *, *, #102, .F. ) ;
|
||||||
|
#317 = ORIENTED_EDGE ( 'NONE', *, *, #289, .F. ) ;
|
||||||
|
#318 = EDGE_CURVE ( 'NONE', #211, #173, #68, .T. ) ;
|
||||||
|
#319 = APPROVAL_ROLE ( '' ) ;
|
||||||
|
#320 = CARTESIAN_POINT ( 'NONE', ( 0.5868445824720007800, 7.230587691074144000E-017, 0.01599999999999998300 ) ) ;
|
||||||
|
#321 = APPLICATION_PROTOCOL_DEFINITION ( 'international standard', 'config_control_design', 1994, #237 ) ;
|
||||||
|
#322 = AXIS2_PLACEMENT_3D ( 'NONE', #79, #323, #2 ) ;
|
||||||
|
#323 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#324 = CARTESIAN_POINT ( 'NONE', ( 0.5868445824720007800, 7.186773395213007500E-017, 0.006399999999999983000 ) ) ;
|
||||||
|
#325 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#326 = ADVANCED_FACE ( 'NONE', ( #290 ), #309, .F. ) ;
|
||||||
|
#327 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#328 = CIRCLE ( 'NONE', #239, 0.009600000000000014800 ) ;
|
||||||
|
#329 = ORIENTED_EDGE ( 'NONE', *, *, #234, .F. ) ;
|
||||||
|
#330 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ;
|
||||||
|
#331 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT ( #176, #134, ( #84 ) ) ;
|
||||||
|
#332 = PLANE ( 'NONE', #280 ) ;
|
||||||
|
#333 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999900 ), #298 );
|
||||||
|
#334 = ORIENTED_EDGE ( 'NONE', *, *, #61, .F. ) ;
|
||||||
|
#335 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#336 = CIRCLE ( 'NONE', #122, 0.5939999999999999700 ) ;
|
||||||
|
#337 = ORIENTED_EDGE ( 'NONE', *, *, #308, .T. ) ;
|
||||||
|
#338 = AXIS2_PLACEMENT_3D ( 'NONE', #204, #133, #83 ) ;
|
||||||
|
#339 = APPROVAL_PERSON_ORGANIZATION ( #242, #6, #266 ) ;
|
||||||
|
#340 = ORIENTED_EDGE ( 'NONE', *, *, #349, .T. ) ;
|
||||||
|
#341 = EDGE_CURVE ( 'NONE', #63, #296, #328, .T. ) ;
|
||||||
|
#342 = CIRCLE ( 'NONE', #205, 0.5868445824720007800 ) ;
|
||||||
|
#343 = ORIENTED_EDGE ( 'NONE', *, *, #115, .T. ) ;
|
||||||
|
#344 = ADVANCED_FACE ( 'NONE', ( #277 ), #201, .T. ) ;
|
||||||
|
#345 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '98017A257_18-8 Stainless Steel Mil. Spec. Washer', ( #307, #181 ), #41 ) ;
|
||||||
|
#346 = CARTESIAN_POINT ( 'NONE', ( 0.5939999999999999700, 7.274401986935278000E-017, -0.01600000000000001800 ) ) ;
|
||||||
|
#347 = COORDINATED_UNIVERSAL_TIME_OFFSET ( 6, 0, .BEHIND. ) ;
|
||||||
|
#348 = EDGE_LOOP ( 'NONE', ( #224, #18, #334, #168 ) ) ;
|
||||||
|
#349 = EDGE_CURVE ( 'NONE', #40, #271, #336, .T. ) ;
|
||||||
|
#350 = PERSON_AND_ORGANIZATION_ROLE ( 'classification_officer' ) ;
|
||||||
|
#351 = APPROVAL_PERSON_ORGANIZATION ( #35, #81, #319 ) ;
|
||||||
|
#352 = DIRECTION ( 'NONE', ( -0.0000000000000000000, -0.0000000000000000000, -1.000000000000000000 ) ) ;
|
||||||
|
#353 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#354 = APPROVAL_STATUS ( 'not_yet_approved' ) ;
|
||||||
|
#355 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
#356 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.0000000000000000000, 0.0000000000000000000 ) ) ;
|
||||||
|
ENDSEC;
|
||||||
|
END-ISO-10303-21;
|
@ -1,6 +1,7 @@
|
|||||||
// Pipe with bend
|
// Pipe with bend
|
||||||
// A tubular section or hollow cylinder, usually but not necessarily of circular cross-section, used mainly to convey substances that can flow.
|
// A tubular section or hollow cylinder, usually but not necessarily of circular cross-section, used mainly to convey substances that can flow.
|
||||||
|
|
||||||
|
|
||||||
// Set units
|
// Set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
@ -14,22 +15,14 @@ bendAngle = 90
|
|||||||
sketch000 = startSketchOn("XZ")
|
sketch000 = startSketchOn("XZ")
|
||||||
|
|
||||||
// create a profile for the outer diameter
|
// create a profile for the outer diameter
|
||||||
outerProfile = circle(
|
outerProfile = circle(sketch000, center = [bendRadius, 0], radius = outerDiameter / 2)
|
||||||
sketch000,
|
|
||||||
center = [bendRadius, 0],
|
|
||||||
radius = outerDiameter / 2
|
|
||||||
)
|
|
||||||
|
|
||||||
// create a profile for the inner diameter
|
// create a profile for the inner diameter
|
||||||
innerProfile = circle(
|
innerProfile = circle(sketch000, center = [bendRadius, 0], radius = innerDiameter / 2)
|
||||||
sketch000,
|
|
||||||
center = [bendRadius, 0],
|
|
||||||
radius = innerDiameter / 2
|
|
||||||
)
|
|
||||||
|
|
||||||
// create the profile of the pipe
|
// create the profile of the pipe
|
||||||
pipeProfile = outerProfile
|
pipeProfile = outerProfile
|
||||||
|> hole(innerProfile, %)
|
|> hole(innerProfile, %)
|
||||||
|
|
||||||
// revolve the pipe profile at the desired angle
|
// revolve the pipe profile at the desired angle
|
||||||
pipe = revolve(pipeProfile, axis = "Y", angle = bendAngle)
|
pipe = revolve(pipeProfile, axis = 'Y', angle = bendAngle)
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
// Poopy Shoe
|
// Poopy Shoe
|
||||||
// poop shute for bambu labs printer - optimized for printing.
|
// poop shute for bambu labs printer - optimized for printing.
|
||||||
|
|
||||||
|
|
||||||
// Set units
|
// Set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
|
||||||
wallThickness = 0.125
|
wallThickness = 0.125
|
||||||
wallsWidth = 3
|
wallsWidth = 3
|
||||||
height = 5.125
|
height = 5.125
|
||||||
@ -30,8 +32,7 @@ sketch001 = startSketchOn("-YZ")
|
|||||||
|> yLine(endAbsolute = segEndY(seg01))
|
|> yLine(endAbsolute = segEndY(seg01))
|
||||||
|> angledLineToY({ angle = 180 - 60, to = 0 }, %)
|
|> angledLineToY({ angle = 180 - 60, to = 0 }, %)
|
||||||
|> close()
|
|> close()
|
||||||
part001 = revolve(
|
part001 = revolve(sketch001,
|
||||||
sketch001,
|
|
||||||
angle = 90,
|
angle = 90,
|
||||||
axis = {
|
axis = {
|
||||||
custom = {
|
custom = {
|
||||||
|
BIN
public/kcl-samples/screenshots/keyboard.png
Normal file
After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
@ -1,68 +1,64 @@
|
|||||||
// Socket Head Cap Screw
|
// Socket Head Cap Screw
|
||||||
// This is for a #10-24 screw that is 1.00 inches long. A socket head cap screw is a type of fastener that is widely used in a variety of applications requiring a high strength fastening solution. It is characterized by its cylindrical head and internal hexagonal drive, which allows for tightening with an Allen wrench or hex key.
|
// This is for a #10-24 screw that is 1.00 inches long. A socket head cap screw is a type of fastener that is widely used in a variety of applications requiring a high strength fastening solution. It is characterized by its cylindrical head and internal hexagonal drive, which allows for tightening with an Allen wrench or hex key.
|
||||||
|
|
||||||
// Set units
|
// set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in, defaultAngleUnit = deg)
|
||||||
|
|
||||||
// Define constants
|
export boltDiameter = 0.190
|
||||||
screwLength = 1.0
|
export boltLength = 1.00
|
||||||
screwDiameter = .190
|
export boltHeadLength = boltDiameter
|
||||||
headDiameter = .313
|
export boltHeadDiameter = 0.313
|
||||||
headLength = screwDiameter
|
export boltHexDrive = 5/32
|
||||||
hexWallToWall = 5 / 32
|
export boltHexFlatLength = boltHexDrive / (2 * cos(toRadians(30)))
|
||||||
capRatio = screwDiameter / headDiameter
|
|
||||||
hexRatio = hexWallToWall / headDiameter
|
export fn bolt () {
|
||||||
hexWallLength = hexWallToWall / 2 * 1 / cos(toRadians(30))
|
|
||||||
hexStartingAngle = 210 // first angle of hex pattern
|
|
||||||
hexInteriorAngle = 120
|
|
||||||
hexChangeAngle = 180 - hexInteriorAngle
|
|
||||||
|
|
||||||
// Write a function that defines the Socket Head Cap Screw
|
|
||||||
fn capScrew(start, length, dia, capHeadLength) {
|
|
||||||
// Create the head of the cap screw
|
// Create the head of the cap screw
|
||||||
screwHeadSketch = startSketchOn('XZ')
|
boltHead = startSketchOn('XZ')
|
||||||
|> circle(
|
|> circle(
|
||||||
center = [start[0], start[1]],
|
center = [0, 0],
|
||||||
radius = dia / capRatio / 2
|
radius = boltHeadDiameter / 2,
|
||||||
|
tag = $topEdge
|
||||||
)
|
)
|
||||||
|
|> extrude(length = -boltHeadLength)
|
||||||
// Extrude the screw head sketch
|
|> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)])
|
||||||
screwHead = extrude(screwHeadSketch, length = capHeadLength)
|
|
||||||
|
|
||||||
// Define the sketch of the hex pattern on the screw head
|
// Define the sketch of the hex pattern on the screw head
|
||||||
hexPatternSketch = startSketchOn(screwHead, 'end')
|
hexPatternSketch = startSketchOn(boltHead, 'start')
|
||||||
|> startProfileAt([hexWallToWall / 2, 0], %)
|
|> startProfileAt([
|
||||||
|> yLine(length = -hexWallLength / 2)
|
boltHexDrive / 2,
|
||||||
|
boltHexFlatLength / 2
|
||||||
|
], %)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = hexStartingAngle,
|
angle = 270,
|
||||||
length = hexWallLength
|
length = boltHexFlatLength
|
||||||
}, %)
|
}, %)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = hexStartingAngle - hexChangeAngle,
|
angle = 210,
|
||||||
length = hexWallLength
|
length = boltHexFlatLength
|
||||||
}, %)
|
}, %)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = hexStartingAngle - (2 * hexChangeAngle),
|
angle = 150,
|
||||||
length = hexWallLength
|
length = boltHexFlatLength
|
||||||
}, %)
|
}, %)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = hexStartingAngle - (3 * hexChangeAngle),
|
angle = 90,
|
||||||
length = hexWallLength
|
length = boltHexFlatLength
|
||||||
}, %)
|
}, %)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = hexStartingAngle - (4 * hexChangeAngle),
|
angle = 30,
|
||||||
length = hexWallLength
|
length = boltHexFlatLength
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
hexPattern = extrude(hexPatternSketch, length = -headLength * 0.75)
|
|> extrude(length = -boltHeadLength * 0.75)
|
||||||
|
|
||||||
screwBodySketch = startSketchOn(screwHead, "start")
|
boltBody = startSketchOn(boltHead, 'end')
|
||||||
|> circle(
|
|> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge)
|
||||||
center = [start[0], start[1]],
|
|> extrude(length = boltLength)
|
||||||
radius = dia / 2
|
|> fillet(radius = .020, tags = [getOppositeEdge(filletEdge)])
|
||||||
)
|
|> appearance(color = "#4dd043", metalness = 90, roughness = 90)
|
||||||
screwBody = extrude(screwBodySketch, length = length)
|
|
||||||
return screwBody
|
return boltBody
|
||||||
}
|
}
|
||||||
|
|
||||||
capScrew([0, 0], screwLength, screwDiameter, screwDiameter)
|
bolt()
|
||||||
|
@ -1,50 +1,37 @@
|
|||||||
// Antenna
|
// Antenna
|
||||||
|
|
||||||
|
|
||||||
|
// import constants
|
||||||
|
import antennaLength, antennaBaseWidth, antennaBaseHeight, antennaTopWidth, antennaTopHeight from "globals.kcl"
|
||||||
|
|
||||||
// Set units
|
// Set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
export fn antenna () {
|
||||||
// import constants
|
// Create the antenna base sketch
|
||||||
import height, width, antennaBaseWidth, antennaBaseHeight, antennaTopWidth, antennaTopHeight from "globals.kcl"
|
sketch001 = startSketchOn('XY')
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
// Calculate the origin
|
|
||||||
origin = [-width / 2 + .45, -0.10]
|
|
||||||
|
|
||||||
// Create the antenna
|
|
||||||
antennaX = origin[0]
|
|
||||||
antennaY = origin[1]
|
|
||||||
|
|
||||||
antennaPlane = {
|
|
||||||
plane = {
|
|
||||||
origin = { x = 0, y = 0, z = height / 2 },
|
|
||||||
xAxis = { x = 1, y = 0, z = 0 },
|
|
||||||
yAxis = { x = 0, y = 1, z = 0 },
|
|
||||||
zAxis = { x = 0, y = 0, z = 1 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the antenna base sketch
|
|
||||||
sketch001 = startSketchOn(antennaPlane)
|
|
||||||
|> startProfileAt([origin[0], origin[1]], %)
|
|
||||||
|> line(end = [antennaBaseWidth, 0])
|
|> line(end = [antennaBaseWidth, 0])
|
||||||
|> line(end = [0, -antennaBaseHeight])
|
|> line(end = [0, -antennaBaseHeight])
|
||||||
|> line(end = [-antennaBaseWidth, 0])
|
|> line(end = [-antennaBaseWidth, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Create the antenna top sketch
|
// Create the antenna top sketch
|
||||||
loftPlane = offsetPlane('XY', offset = height / 2 + 3)
|
loftPlane = offsetPlane('XY', offset = antennaLength)
|
||||||
|
|
||||||
sketch002 = startSketchOn(loftPlane)
|
sketch002 = startSketchOn(loftPlane)
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
origin[0] + (antennaBaseWidth - antennaTopWidth) / 2,
|
(antennaBaseWidth - antennaTopWidth) / 2,
|
||||||
origin[1] - ((antennaBaseHeight - antennaTopHeight) / 2)
|
(antennaBaseHeight - antennaTopHeight) / 2
|
||||||
], %)
|
], %)
|
||||||
|> xLine(length = antennaTopWidth)
|
|> xLine(length = antennaTopWidth)
|
||||||
|> yLine(length = -antennaTopHeight)
|
|> yLine(length = -antennaTopHeight)
|
||||||
|> xLine(length = -antennaTopWidth)
|
|> xLine(length = -antennaTopWidth)
|
||||||
|> close()
|
|> close()
|
||||||
|
|
||||||
// Create the antenna using a loft
|
// Create the antenna using a loft
|
||||||
loft([sketch001, sketch002])
|
antenna = loft([sketch001, sketch002])
|
||||||
|> appearance(color = "#000000")
|
|> appearance(color = "#000000")
|
||||||
|
return antenna
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,20 +1,22 @@
|
|||||||
// Walkie talkie body
|
// Walkie talkie body
|
||||||
|
|
||||||
|
// import constants
|
||||||
// Set units
|
|
||||||
@settings(defaultLengthUnit = in)
|
|
||||||
|
|
||||||
|
|
||||||
// Import constants
|
|
||||||
import height, width, thickness, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight from "globals.kcl"
|
import height, width, thickness, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight from "globals.kcl"
|
||||||
|
|
||||||
bodySketch = startSketchOn('XZ')
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// create a function to define the body
|
||||||
|
export fn body () {
|
||||||
|
|
||||||
|
// sketch and extrude the body of the walkie talkie
|
||||||
|
bodySketch = startSketchOn('XZ')
|
||||||
|> startProfileAt([-width / 2, height / 2], %)
|
|> startProfileAt([-width / 2, height / 2], %)
|
||||||
|> xLine(length = width, tag = $chamfer1)
|
|> xLine(length = width, tag = $chamfer1)
|
||||||
|> yLine(length = -height, tag = $chamfer2)
|
|> yLine(length = -height, tag = $chamfer2)
|
||||||
|> xLine(length = -width, tag = $chamfer3)
|
|> xLine(length = -width, tag = $chamfer3)
|
||||||
|> close(tag = $chamfer4)
|
|> close(tag = $chamfer4)
|
||||||
bodyExtrude = extrude(bodySketch, length = thickness)
|
bodyExtrude = extrude(bodySketch, length = thickness)
|
||||||
|> chamfer(
|
|> chamfer(
|
||||||
length = chamferLength,
|
length = chamferLength,
|
||||||
tags = [
|
tags = [
|
||||||
@ -25,8 +27,8 @@ bodyExtrude = extrude(bodySketch, length = thickness)
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
// Define the offset for the indentation
|
// cut out the indentation for the case
|
||||||
sketch002 = startSketchOn(bodyExtrude, 'END')
|
sketch002 = startSketchOn(bodyExtrude, 'END')
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
-width / 2 + offset,
|
-width / 2 + offset,
|
||||||
height / 2 - (chamferLength + offset / 2 * cos(toRadians(45)))
|
height / 2 - (chamferLength + offset / 2 * cos(toRadians(45)))
|
||||||
@ -54,27 +56,31 @@ sketch002 = startSketchOn(bodyExtrude, 'END')
|
|||||||
to = -width / 2 + offset
|
to = -width / 2 + offset
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
extrude002 = extrude(sketch002, length = -0.0625)
|
extrude002 = extrude(sketch002, length = -0.0625)
|
||||||
|
|
||||||
// Create the pocket for the screen
|
// Create the pocket for the screen
|
||||||
sketch003 = startSketchOn(extrude002, 'start')
|
sketch003 = startSketchOn(extrude002, 'start')
|
||||||
|> startProfileAt([-screenWidth / 2, screenYPosition], %)
|
|> startProfileAt([-screenWidth / 2, screenYPosition], %)
|
||||||
|> xLine(length = screenWidth, tag = $seg01)
|
|> xLine(length = screenWidth, tag = $seg01)
|
||||||
|> yLine(length = -screenHeight)
|
|> yLine(length = -screenHeight)
|
||||||
|> xLine(length = -segLen(seg01))
|
|> xLine(length = -segLen(seg01))
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
extrude003 = extrude(sketch003, length = screenDepth)
|
extrude003 = extrude(sketch003, length = screenDepth)
|
||||||
|
|
||||||
// Create the speaker box
|
// Create the speaker box
|
||||||
sketch004 = startSketchOn(extrude002, 'start')
|
sketch004 = startSketchOn(extrude002, 'start')
|
||||||
|> startProfileAt([-1.25 / 2, -.125], %)
|
|> startProfileAt([-1.25 / 2, -.125], %)
|
||||||
|> xLine(length = speakerBoxWidth)
|
|> xLine(length = speakerBoxWidth)
|
||||||
|> yLine(length = -speakerBoxHeight)
|
|> yLine(length = -speakerBoxHeight)
|
||||||
|> xLine(length = -speakerBoxWidth)
|
|> xLine(length = -speakerBoxWidth)
|
||||||
|> close()
|
|> close()
|
||||||
extrude(sketch004, length = -.5)
|
|
||||||
|
body = extrude(sketch004, length = -.5)
|
||||||
|> appearance(
|
|> appearance(
|
||||||
color = "#277bb0",
|
color = "#277bb0",
|
||||||
)
|
)
|
||||||
|
return body
|
||||||
|
}
|
||||||
|
|
||||||
|
body()
|
||||||
|
@ -1,26 +1,27 @@
|
|||||||
// Walkie Talkie button
|
// Walkie Talkie button
|
||||||
|
|
||||||
// Set units
|
// set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
// Import constants
|
// import constants
|
||||||
import screenHeight, buttonWidth, tolerance, buttonHeight, buttonThickness from 'globals.kcl'
|
import buttonWidth, buttonHeight, buttonThickness from 'globals.kcl'
|
||||||
|
|
||||||
|
// create a function to define the button
|
||||||
|
export fn button() {
|
||||||
|
|
||||||
// Create a function for the button
|
// sketch the button profile and extrude
|
||||||
export fn button(origin, rotation, plane) {
|
buttonSketch = startSketchOn('XZ')
|
||||||
buttonSketch = startSketchOn(plane)
|
|> startProfileAt([0, 0], %)
|
||||||
|> startProfileAt([origin[0], origin[1]], %)
|
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = 180 + rotation,
|
angle = 180,
|
||||||
length = buttonWidth
|
length = buttonWidth
|
||||||
}, %, $tag1)
|
}, %, $tag1)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = 270 + rotation,
|
angle = 270,
|
||||||
length = buttonHeight
|
length = buttonHeight
|
||||||
}, %, $tag2)
|
}, %, $tag2)
|
||||||
|> angledLine({
|
|> angledLine({
|
||||||
angle = 0 + rotation,
|
angle = 0,
|
||||||
length = buttonWidth
|
length = buttonWidth
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|
@ -1,45 +1,45 @@
|
|||||||
// Walkie talkie case
|
// Walkie talkie case
|
||||||
|
|
||||||
|
|
||||||
// Set units
|
// import constants and Zoo logo
|
||||||
@settings(defaultLengthUnit = in)
|
|
||||||
|
|
||||||
|
|
||||||
// Import constants and Zoo logo
|
|
||||||
import width, height, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight, squareHoleSideLength, caseTolerance from "globals.kcl"
|
import width, height, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight, squareHoleSideLength, caseTolerance from "globals.kcl"
|
||||||
import zLogo, oLogo, oLogo2 from "zoo-logo.kcl"
|
import zLogo, oLogo, oLogo2 from "zoo-logo.kcl"
|
||||||
|
|
||||||
plane = offsetPlane("XZ", offset = 1)
|
// set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
fn screenHole(sketchStart) {
|
// create a function to define the case
|
||||||
sketch006 = startSketchOn(sketchStart)
|
export fn case () {
|
||||||
|
|
||||||
|
// sketch the profile of the screen
|
||||||
|
sketch006 = startSketchOn(startSketchOn('XZ'))
|
||||||
|> startProfileAt([-screenWidth / 2, screenYPosition], %)
|
|> startProfileAt([-screenWidth / 2, screenYPosition], %)
|
||||||
|> xLine(length = screenWidth)
|
|> xLine(length = screenWidth)
|
||||||
|> yLine(length = -screenHeight)
|
|> yLine(length = -screenHeight)
|
||||||
|> xLine(length = -screenWidth)
|
|> xLine(length = -screenWidth)
|
||||||
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|> close()
|
|> close()
|
||||||
return sketch006
|
|
||||||
}
|
|
||||||
|
|
||||||
fn squareHolePattern(plane, x, y) {
|
// create transform functions for the speaker grid pattern
|
||||||
fn transformX(i) {
|
fn transformX(i) {
|
||||||
return { translate = [.125 * i, 0] }
|
return { translate = [.125 * i, 0] }
|
||||||
}
|
}
|
||||||
fn transformY(i) {
|
fn transformY(i) {
|
||||||
return { translate = [0, -.125 * i] }
|
return { translate = [0, -.125 * i] }
|
||||||
}
|
}
|
||||||
squareHolePatternSketch = startSketchOn(plane)
|
|
||||||
|> startProfileAt([-x, -y], %)
|
// sketch the square hole grid pattern
|
||||||
|
squareHolePatternSketch = startSketchOn(startSketchOn('XZ'))
|
||||||
|
|> startProfileAt([-screenWidth / 2 + .100, 0], %)
|
||||||
|> line(end = [squareHoleSideLength / 2, 0])
|
|> line(end = [squareHoleSideLength / 2, 0])
|
||||||
|> line(end = [0, -squareHoleSideLength / 2])
|
|> line(end = [0, -squareHoleSideLength / 2])
|
||||||
|> line(end = [-squareHoleSideLength / 2, 0])
|
|> line(end = [-squareHoleSideLength / 2, 0])
|
||||||
|> close()
|
|> close()
|
||||||
|> patternTransform2d(instances = 13, transform = transformX)
|
|> patternTransform2d(instances = 13, transform = transformX)
|
||||||
|> patternTransform2d(instances = 11, transform = transformY)
|
|> patternTransform2d(instances = 11, transform = transformY)
|
||||||
return squareHolePatternSketch
|
|
||||||
}
|
// sketch the outer profile of the case and extrude with holes using the previously made profiles
|
||||||
sketch005 = startSketchOn(offsetPlane("XZ", offset = 1))
|
sketch005 = startSketchOn(startSketchOn('XZ'))
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
-width / 2 + offset + caseTolerance,
|
-width / 2 + offset + caseTolerance,
|
||||||
height / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(toRadians(45)))
|
height / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(toRadians(45)))
|
||||||
@ -73,13 +73,18 @@ sketch005 = startSketchOn(offsetPlane("XZ", offset = 1))
|
|||||||
to = -width / 2 + offset + caseTolerance
|
to = -width / 2 + offset + caseTolerance
|
||||||
}, %)
|
}, %)
|
||||||
|> close()
|
|> close()
|
||||||
|> hole(screenHole(plane), %)
|
|> hole(sketch006, %)
|
||||||
|> hole(squareHolePattern(plane, .75, .125), %)
|
|> hole(squareHolePatternSketch, %)
|
||||||
|> hole(zLogo(plane, [-.30, -1.825], .20), %)
|
|
||||||
|> hole(oLogo(plane, [-.075, -1.825], .20), %)
|
|
||||||
|> hole(oLogo2(plane, [-.075, -1.825], .20), %)
|
|
||||||
|> hole(oLogo(plane, [.175, -1.825], .20), %)
|
|
||||||
|> hole(oLogo2(plane, [.175, -1.825], .20), %)
|
|
||||||
|
|
||||||
extrude(sketch005, length = -0.0625)
|
// create the Zoo logo
|
||||||
|
|> hole(zLogo(startSketchOn('XZ'), [-.30, -1.825], .20), %)
|
||||||
|
|> hole(oLogo(startSketchOn('XZ'), [-.075, -1.825], .20), %)
|
||||||
|
|> hole(oLogo2(startSketchOn('XZ'), [-.075, -1.825], .20), %)
|
||||||
|
|> hole(oLogo(startSketchOn('XZ'), [.175, -1.825], .20), %)
|
||||||
|
|> hole(oLogo2(startSketchOn('XZ'), [.175, -1.825], .20), %)
|
||||||
|
|
||||||
|
case = extrude(sketch005, length = -0.0625)
|
||||||
|> appearance(color = '#D0FF01', metalness = 0, roughness = 50)
|
|> appearance(color = '#D0FF01', metalness = 0, roughness = 50)
|
||||||
|
|
||||||
|
return case
|
||||||
|
}
|
@ -21,6 +21,7 @@ export antennaBaseWidth = .5
|
|||||||
export antennaBaseHeight = .25
|
export antennaBaseHeight = .25
|
||||||
export antennaTopWidth = .30
|
export antennaTopWidth = .30
|
||||||
export antennaTopHeight = .05
|
export antennaTopHeight = .05
|
||||||
|
export antennaLength = 3
|
||||||
|
|
||||||
// button
|
// button
|
||||||
export buttonWidth = .15
|
export buttonWidth = .15
|
||||||
|
@ -1,29 +1,16 @@
|
|||||||
// Walkie talkie knob
|
// Walkie Talkie Frequency Knob
|
||||||
|
|
||||||
|
// import constants
|
||||||
// Set units
|
|
||||||
@settings(defaultLengthUnit = in)
|
|
||||||
|
|
||||||
|
|
||||||
// Import constants
|
|
||||||
import width, thickness, height, knobDiameter, knobHeight, knobRadius from "globals.kcl"
|
import width, thickness, height, knobDiameter, knobHeight, knobRadius from "globals.kcl"
|
||||||
|
|
||||||
// Define the plane for the knob
|
// set units
|
||||||
knobPlane = {
|
@settings(defaultLengthUnit = in)
|
||||||
plane = {
|
|
||||||
origin = {
|
// create a function to define the knob
|
||||||
x = width / 2 - 0.70,
|
export fn knob () {
|
||||||
y = -thickness / 2,
|
|
||||||
z = height / 2
|
|
||||||
},
|
|
||||||
xAxis = { x = 1, y = 0, z = 0 },
|
|
||||||
yAxis = { x = 0, y = 0, z = 1 },
|
|
||||||
zAxis = { x = 0, y = 1, z = 0 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the knob sketch and revolve
|
// Create the knob sketch and revolve
|
||||||
startSketchOn(knobPlane)
|
knob = startSketchOn('XZ')
|
||||||
|> startProfileAt([0.0001, 0], %)
|
|> startProfileAt([0.0001, 0], %)
|
||||||
|> xLine(length = knobDiameter / 2)
|
|> xLine(length = knobDiameter / 2)
|
||||||
|> yLine(length = knobHeight - 0.05)
|
|> yLine(length = knobHeight - 0.05)
|
||||||
@ -34,5 +21,11 @@ startSketchOn(knobPlane)
|
|||||||
}, %)
|
}, %)
|
||||||
|> xLine(endAbsolute = 0.0001)
|
|> xLine(endAbsolute = 0.0001)
|
||||||
|> close()
|
|> close()
|
||||||
|> revolve(axis = "Y")
|
|> revolve(
|
||||||
|
axis = "Y",
|
||||||
|
)
|
||||||
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50)
|
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50)
|
||||||
|
|
||||||
|
return knob
|
||||||
|
|
||||||
|
}
|
@ -1,50 +1,47 @@
|
|||||||
// Walkie Talkie
|
// Walkie Talkie
|
||||||
// A portable, handheld two-way radio device that allows users to communicate wirelessly over short to medium distances. It operates on specific radio frequencies and features a push-to-talk button for transmitting messages, making it ideal for quick and reliable communication in outdoor, work, or emergency settings.
|
// A portable, handheld two-way radio device that allows users to communicate wirelessly over short to medium distances. It operates on specific radio frequencies and features a push-to-talk button for transmitting messages, making it ideal for quick and reliable communication in outdoor, work, or emergency settings.
|
||||||
|
|
||||||
// Set units
|
// set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
// Import parts and constants
|
// import constants
|
||||||
import 'body.kcl'
|
import * from 'globals.kcl'
|
||||||
import 'antenna.kcl'
|
|
||||||
import 'case.kcl'
|
// import parts and constants
|
||||||
import 'talk-button.kcl' as talkButton
|
import body from 'body.kcl'
|
||||||
import 'knob.kcl'
|
import case from 'case.kcl'
|
||||||
|
import antenna from 'antenna.kcl'
|
||||||
|
import talkButton from 'talk-button.kcl'
|
||||||
|
import knob from 'knob.kcl'
|
||||||
import button from "button.kcl"
|
import button from "button.kcl"
|
||||||
import width, height, thickness, screenWidth, screenHeight, screenYPosition, tolerance from "globals.kcl"
|
|
||||||
|
|
||||||
// Import the body
|
// import the body
|
||||||
body
|
body()
|
||||||
|
|
||||||
// Import the case
|
// import the antenna
|
||||||
case
|
antenna()
|
||||||
|
|> translate(translate = [-width / 2 + .45, -0.10, height/2])
|
||||||
|
|
||||||
// Import the antenna
|
// import the case
|
||||||
antenna
|
case()
|
||||||
|
|> translate(translate = [0, -1, 0])
|
||||||
// Import the buttons
|
|
||||||
button([
|
|
||||||
-(screenWidth / 2 + tolerance),
|
|
||||||
screenYPosition
|
|
||||||
], 0, offsetPlane("XZ", offset = thickness))
|
|
||||||
button([
|
|
||||||
-(screenWidth / 2 + tolerance),
|
|
||||||
screenYPosition - (screenHeight / 2)
|
|
||||||
], 0, offsetPlane("XZ", offset = thickness))
|
|
||||||
button([
|
|
||||||
screenWidth / 2 + tolerance,
|
|
||||||
screenYPosition - screenHeight
|
|
||||||
], 180, offsetPlane("XZ", offset = thickness))
|
|
||||||
button([
|
|
||||||
screenWidth / 2 + tolerance,
|
|
||||||
screenYPosition - (screenHeight / 2)
|
|
||||||
], 180, offsetPlane("XZ", offset = thickness))
|
|
||||||
|
|
||||||
// Import the talk button
|
|
||||||
talkButton
|
|
||||||
|
|
||||||
// Import the frequency knob
|
|
||||||
knob
|
|
||||||
|
|
||||||
|
// import the talk button
|
||||||
|
talkButton()
|
||||||
|
|> translate(translate = [width / 2, -thickness / 2, .5])
|
||||||
|
|
||||||
|
// import the frequency knob
|
||||||
|
knob()
|
||||||
|
|> translate(translate = [width / 2 - 0.70, -thickness / 2, height / 2])
|
||||||
|
|
||||||
|
// import the buttons
|
||||||
|
button()
|
||||||
|
|> translate(translate = [-(screenWidth / 2 + tolerance), -1, screenYPosition])
|
||||||
|
button()
|
||||||
|
|> translate(translate = [-(screenWidth / 2 + tolerance), -1, screenYPosition - buttonHeight - tolerance*2])
|
||||||
|
button()
|
||||||
|
|> rotate(%, roll = 0, pitch = 180, yaw = 0)
|
||||||
|
|> translate(translate = [screenWidth / 2 + tolerance, -1, screenYPosition - buttonHeight], global = true)
|
||||||
|
button()
|
||||||
|
|> rotate(%, roll = 0, pitch = 180, yaw = 0)
|
||||||
|
|> translate(translate = [screenWidth / 2 + tolerance, -1, screenYPosition - buttonHeight*2 - tolerance * 2], global = true)
|
@ -1,28 +1,16 @@
|
|||||||
// Walkie talkie talk button
|
// Walkie talkie talk button
|
||||||
|
|
||||||
|
|
||||||
// Set units
|
// set units
|
||||||
@settings(defaultLengthUnit = in)
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// import constants
|
||||||
// Import constants
|
|
||||||
import width, thickness, talkButtonSideLength, talkButtonHeight from "globals.kcl"
|
import width, thickness, talkButtonSideLength, talkButtonHeight from "globals.kcl"
|
||||||
|
|
||||||
talkButtonPlane = {
|
export fn talkButton() {
|
||||||
plane = {
|
|
||||||
origin = {
|
|
||||||
x = width / 2,
|
|
||||||
y = -thickness / 2,
|
|
||||||
z = .5
|
|
||||||
},
|
|
||||||
xAxis = { x = 0, y = 1, z = 0 },
|
|
||||||
yAxis = { x = 0, y = 0, z = 1 },
|
|
||||||
zAxis = { x = 1, y = 0, z = 0 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the talk button sketch
|
// create the talk button sketch
|
||||||
talkButtonSketch = startSketchOn(talkButtonPlane)
|
talkButtonSketch = startSketchOn('YZ')
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
-talkButtonSideLength / 2,
|
-talkButtonSideLength / 2,
|
||||||
talkButtonSideLength / 2
|
talkButtonSideLength / 2
|
||||||
@ -32,8 +20,8 @@ talkButtonSketch = startSketchOn(talkButtonPlane)
|
|||||||
|> xLine(length = -talkButtonSideLength, tag = $tag3)
|
|> xLine(length = -talkButtonSideLength, tag = $tag3)
|
||||||
|> close(tag = $tag4)
|
|> close(tag = $tag4)
|
||||||
|
|
||||||
// Create the talk button and apply fillets
|
// create the talk button and apply fillets
|
||||||
extrude(talkButtonSketch, length = talkButtonHeight)
|
talkButton = extrude(talkButtonSketch, length = talkButtonHeight)
|
||||||
|> fillet(
|
|> fillet(
|
||||||
radius = 0.050,
|
radius = 0.050,
|
||||||
tags = [
|
tags = [
|
||||||
@ -44,3 +32,6 @@ extrude(talkButtonSketch, length = talkButtonHeight)
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|> appearance(color = '#D0FF01', metalness = 90, roughness = 90)
|
|> appearance(color = '#D0FF01', metalness = 90, roughness = 90)
|
||||||
|
|
||||||
|
return talkButton
|
||||||
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Zoo logo
|
// Zoo logo
|
||||||
|
|
||||||
// Define a function to draw the ZOO "Z"
|
// define a function to draw the ZOO "Z"
|
||||||
export fn zLogo(surface, origin, scale) {
|
export fn zLogo(surface, origin, scale) {
|
||||||
zSketch = surface
|
zSketch = surface
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
@ -39,7 +39,7 @@ export fn zLogo(surface, origin, scale) {
|
|||||||
return zSketch
|
return zSketch
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define a function to draw the ZOO "O"
|
// define a function to draw the ZOO "O"
|
||||||
export fn oLogo(surface, origin, scale) {
|
export fn oLogo(surface, origin, scale) {
|
||||||
oSketch001 = surface
|
oSketch001 = surface
|
||||||
|> startProfileAt([
|
|> startProfileAt([
|
||||||
|
20
rust/Cargo.lock
generated
@ -1780,7 +1780,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1791,7 +1791,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"Inflector",
|
"Inflector",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -1810,7 +1810,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -1819,7 +1819,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
version = "0.2.51"
|
version = "0.2.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1840,7 +1840,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1860,7 +1860,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
version = "0.2.51"
|
version = "0.2.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"approx 0.5.1",
|
"approx 0.5.1",
|
||||||
@ -1928,7 +1928,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-python-bindings"
|
name = "kcl-python-bindings"
|
||||||
version = "0.3.51"
|
version = "0.3.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"kcl-lib",
|
"kcl-lib",
|
||||||
@ -1943,7 +1943,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-test-server"
|
name = "kcl-test-server"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hyper 0.14.32",
|
"hyper 0.14.32",
|
||||||
@ -1956,7 +1956,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-to-core"
|
name = "kcl-to-core"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -1970,7 +1970,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-wasm-lib"
|
name = "kcl-wasm-lib"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bson",
|
"bson",
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/KittyCAD/modeling-api"
|
repository = "https://github.com/KittyCAD/modeling-api"
|
||||||
rust-version = "1.76"
|
rust-version = "1.76"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
description = "A tool for generating documentation from Rust derive macros"
|
description = "A tool for generating documentation from Rust derive macros"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
description = "A tool for generating tests from a directory of kcl files"
|
description = "A tool for generating tests from a directory of kcl files"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.51"
|
version = "0.1.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
publish = false
|
publish = false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
description = "A language server for KCL."
|
description = "A language server for KCL."
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
version = "0.2.51"
|
version = "0.2.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
@ -133,14 +133,14 @@
|
|||||||
"@tsconfig/strictest": "^2.0.5",
|
"@tsconfig/strictest": "^2.0.5",
|
||||||
"@types/glob": "^8.1.0",
|
"@types/glob": "^8.1.0",
|
||||||
"@types/mocha": "^10.0.10",
|
"@types/mocha": "^10.0.10",
|
||||||
"@types/node": "^22.13.9",
|
"@types/node": "^22.13.10",
|
||||||
"@types/vscode": "^1.97.0",
|
"@types/vscode": "^1.97.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.6.0",
|
"@typescript-eslint/eslint-plugin": "^6.6.0",
|
||||||
"@typescript-eslint/parser": "^6.6.0",
|
"@typescript-eslint/parser": "^6.6.0",
|
||||||
"@vscode/test-electron": "^2.4.1",
|
"@vscode/test-electron": "^2.4.1",
|
||||||
"@vscode/vsce": "^2.30.0",
|
"@vscode/vsce": "^2.30.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.1",
|
||||||
"glob": "^10.4.3",
|
"glob": "^10.4.3",
|
||||||
"mocha": "^11.1.0",
|
"mocha": "^11.1.0",
|
||||||
"typescript": "^5.8.2"
|
"typescript": "^5.8.2"
|
||||||
|
@ -120,130 +120,130 @@
|
|||||||
jsonwebtoken "^9.0.0"
|
jsonwebtoken "^9.0.0"
|
||||||
uuid "^8.3.0"
|
uuid "^8.3.0"
|
||||||
|
|
||||||
"@esbuild/aix-ppc64@0.25.0":
|
"@esbuild/aix-ppc64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64"
|
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d"
|
||||||
integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==
|
integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==
|
||||||
|
|
||||||
"@esbuild/android-arm64@0.25.0":
|
"@esbuild/android-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d"
|
||||||
integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==
|
integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==
|
||||||
|
|
||||||
"@esbuild/android-arm@0.25.0":
|
"@esbuild/android-arm@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c"
|
||||||
integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==
|
integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==
|
||||||
|
|
||||||
"@esbuild/android-x64@0.25.0":
|
"@esbuild/android-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed"
|
||||||
integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==
|
integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==
|
||||||
|
|
||||||
"@esbuild/darwin-arm64@0.25.0":
|
"@esbuild/darwin-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c"
|
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591"
|
||||||
integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==
|
integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==
|
||||||
|
|
||||||
"@esbuild/darwin-x64@0.25.0":
|
"@esbuild/darwin-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a"
|
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98"
|
||||||
integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==
|
integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64@0.25.0":
|
"@esbuild/freebsd-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce"
|
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e"
|
||||||
integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==
|
integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==
|
||||||
|
|
||||||
"@esbuild/freebsd-x64@0.25.0":
|
"@esbuild/freebsd-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7"
|
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde"
|
||||||
integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==
|
integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==
|
||||||
|
|
||||||
"@esbuild/linux-arm64@0.25.0":
|
"@esbuild/linux-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498"
|
||||||
integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==
|
integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==
|
||||||
|
|
||||||
"@esbuild/linux-arm@0.25.0":
|
"@esbuild/linux-arm@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a"
|
||||||
integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==
|
integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==
|
||||||
|
|
||||||
"@esbuild/linux-ia32@0.25.0":
|
"@esbuild/linux-ia32@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754"
|
||||||
integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==
|
integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==
|
||||||
|
|
||||||
"@esbuild/linux-loong64@0.25.0":
|
"@esbuild/linux-loong64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c"
|
||||||
integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==
|
integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==
|
||||||
|
|
||||||
"@esbuild/linux-mips64el@0.25.0":
|
"@esbuild/linux-mips64el@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57"
|
||||||
integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==
|
integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==
|
||||||
|
|
||||||
"@esbuild/linux-ppc64@0.25.0":
|
"@esbuild/linux-ppc64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589"
|
||||||
integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==
|
integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==
|
||||||
|
|
||||||
"@esbuild/linux-riscv64@0.25.0":
|
"@esbuild/linux-riscv64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8"
|
||||||
integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==
|
integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==
|
||||||
|
|
||||||
"@esbuild/linux-s390x@0.25.0":
|
"@esbuild/linux-s390x@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa"
|
||||||
integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==
|
integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==
|
||||||
|
|
||||||
"@esbuild/linux-x64@0.25.0":
|
"@esbuild/linux-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954"
|
||||||
integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==
|
integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==
|
||||||
|
|
||||||
"@esbuild/netbsd-arm64@0.25.0":
|
"@esbuild/netbsd-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b"
|
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29"
|
||||||
integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==
|
integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@0.25.0":
|
"@esbuild/netbsd-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b"
|
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0"
|
||||||
integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==
|
integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==
|
||||||
|
|
||||||
"@esbuild/openbsd-arm64@0.25.0":
|
"@esbuild/openbsd-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7"
|
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217"
|
||||||
integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==
|
integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==
|
||||||
|
|
||||||
"@esbuild/openbsd-x64@0.25.0":
|
"@esbuild/openbsd-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde"
|
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de"
|
||||||
integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==
|
integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==
|
||||||
|
|
||||||
"@esbuild/sunos-x64@0.25.0":
|
"@esbuild/sunos-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92"
|
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27"
|
||||||
integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==
|
integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==
|
||||||
|
|
||||||
"@esbuild/win32-arm64@0.25.0":
|
"@esbuild/win32-arm64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582"
|
||||||
integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==
|
integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==
|
||||||
|
|
||||||
"@esbuild/win32-ia32@0.25.0":
|
"@esbuild/win32-ia32@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb"
|
||||||
integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==
|
integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==
|
||||||
|
|
||||||
"@esbuild/win32-x64@0.25.0":
|
"@esbuild/win32-x64@0.25.1":
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz#7d79922cb2d88f9048f06393dbf62d2e4accb584"
|
||||||
integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==
|
integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==
|
||||||
|
|
||||||
"@eslint-community/eslint-utils@^4.4.0":
|
"@eslint-community/eslint-utils@^4.4.0":
|
||||||
version "4.4.1"
|
version "4.4.1"
|
||||||
@ -323,10 +323,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0"
|
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0"
|
||||||
integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==
|
integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==
|
||||||
|
|
||||||
"@types/node@*", "@types/node@^22.13.9":
|
"@types/node@*", "@types/node@^22.13.10":
|
||||||
version "22.13.9"
|
version "22.13.10"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.9.tgz#5d9a8f7a975a5bd3ef267352deb96fb13ec02eca"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4"
|
||||||
integrity sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==
|
integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~6.20.0"
|
undici-types "~6.20.0"
|
||||||
|
|
||||||
@ -1025,36 +1025,36 @@ es-errors@^1.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
|
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
|
||||||
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
||||||
|
|
||||||
esbuild@^0.25.0:
|
esbuild@^0.25.1:
|
||||||
version "0.25.0"
|
version "0.25.1"
|
||||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92"
|
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f"
|
||||||
integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==
|
integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@esbuild/aix-ppc64" "0.25.0"
|
"@esbuild/aix-ppc64" "0.25.1"
|
||||||
"@esbuild/android-arm" "0.25.0"
|
"@esbuild/android-arm" "0.25.1"
|
||||||
"@esbuild/android-arm64" "0.25.0"
|
"@esbuild/android-arm64" "0.25.1"
|
||||||
"@esbuild/android-x64" "0.25.0"
|
"@esbuild/android-x64" "0.25.1"
|
||||||
"@esbuild/darwin-arm64" "0.25.0"
|
"@esbuild/darwin-arm64" "0.25.1"
|
||||||
"@esbuild/darwin-x64" "0.25.0"
|
"@esbuild/darwin-x64" "0.25.1"
|
||||||
"@esbuild/freebsd-arm64" "0.25.0"
|
"@esbuild/freebsd-arm64" "0.25.1"
|
||||||
"@esbuild/freebsd-x64" "0.25.0"
|
"@esbuild/freebsd-x64" "0.25.1"
|
||||||
"@esbuild/linux-arm" "0.25.0"
|
"@esbuild/linux-arm" "0.25.1"
|
||||||
"@esbuild/linux-arm64" "0.25.0"
|
"@esbuild/linux-arm64" "0.25.1"
|
||||||
"@esbuild/linux-ia32" "0.25.0"
|
"@esbuild/linux-ia32" "0.25.1"
|
||||||
"@esbuild/linux-loong64" "0.25.0"
|
"@esbuild/linux-loong64" "0.25.1"
|
||||||
"@esbuild/linux-mips64el" "0.25.0"
|
"@esbuild/linux-mips64el" "0.25.1"
|
||||||
"@esbuild/linux-ppc64" "0.25.0"
|
"@esbuild/linux-ppc64" "0.25.1"
|
||||||
"@esbuild/linux-riscv64" "0.25.0"
|
"@esbuild/linux-riscv64" "0.25.1"
|
||||||
"@esbuild/linux-s390x" "0.25.0"
|
"@esbuild/linux-s390x" "0.25.1"
|
||||||
"@esbuild/linux-x64" "0.25.0"
|
"@esbuild/linux-x64" "0.25.1"
|
||||||
"@esbuild/netbsd-arm64" "0.25.0"
|
"@esbuild/netbsd-arm64" "0.25.1"
|
||||||
"@esbuild/netbsd-x64" "0.25.0"
|
"@esbuild/netbsd-x64" "0.25.1"
|
||||||
"@esbuild/openbsd-arm64" "0.25.0"
|
"@esbuild/openbsd-arm64" "0.25.1"
|
||||||
"@esbuild/openbsd-x64" "0.25.0"
|
"@esbuild/openbsd-x64" "0.25.1"
|
||||||
"@esbuild/sunos-x64" "0.25.0"
|
"@esbuild/sunos-x64" "0.25.1"
|
||||||
"@esbuild/win32-arm64" "0.25.0"
|
"@esbuild/win32-arm64" "0.25.1"
|
||||||
"@esbuild/win32-ia32" "0.25.0"
|
"@esbuild/win32-ia32" "0.25.1"
|
||||||
"@esbuild/win32-x64" "0.25.0"
|
"@esbuild/win32-x64" "0.25.1"
|
||||||
|
|
||||||
escalade@^3.1.1:
|
escalade@^3.1.1:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
description = "KittyCAD Language implementation and tools"
|
description = "KittyCAD Language implementation and tools"
|
||||||
version = "0.2.51"
|
version = "0.2.52"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -23,7 +23,9 @@ use crate::{
|
|||||||
const TYPES_DIR: &str = "../../docs/kcl/types";
|
const TYPES_DIR: &str = "../../docs/kcl/types";
|
||||||
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
|
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
|
||||||
// These types are declared in std.
|
// These types are declared in std.
|
||||||
const DECLARED_TYPES: [&str; 7] = ["number", "string", "tag", "bool", "Sketch", "Solid", "Plane"];
|
const DECLARED_TYPES: [&str; 11] = [
|
||||||
|
"number", "string", "tag", "bool", "Sketch", "Solid", "Plane", "Helix", "Face", "Point2d", "Point3d",
|
||||||
|
];
|
||||||
|
|
||||||
fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
|
fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
|
||||||
let mut hbs = handlebars::Handlebars::new();
|
let mut hbs = handlebars::Handlebars::new();
|
||||||
@ -457,6 +459,7 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String)
|
|||||||
|
|
||||||
let data = json!({
|
let data = json!({
|
||||||
"name": ty.qual_name(),
|
"name": ty.qual_name(),
|
||||||
|
"definition": ty.alias.as_ref().map(|t| format!("type {} = {t}", ty.name)),
|
||||||
"summary": ty.summary,
|
"summary": ty.summary,
|
||||||
"description": ty.description,
|
"description": ty.description,
|
||||||
"deprecated": ty.properties.deprecated,
|
"deprecated": ty.properties.deprecated,
|
||||||
|