Merge remote-tracking branch 'origin/main' into paultag/import

This commit is contained in:
Paul R. Tagliamonte
2025-03-11 16:18:58 -04:00
200 changed files with 202329 additions and 5443 deletions

View File

@ -1,19 +1,28 @@
[package]
name = "kcl-lib"
description = "KittyCAD Language implementation and tools"
version = "0.2.46"
version = "0.2.48"
edition = "2021"
license = "MIT"
repository = "https://github.com/KittyCAD/modeling-app"
rust-version = "1.83"
authors = ["Jess Frazelle", "Adam Chalmers", "KittyCAD, Inc"]
keywords = ["kcl", "KittyCAD", "CAD"]
exclude = ["tests/*", "benches/*", "examples/*", "e2e/*", "bindings/*", "fuzz/*"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
bench = false
[[bin]]
name = "kcl-lib-bin"
path = "src/main.rs"
bench = false
[dependencies]
anyhow = { workspace = true, features = ["backtrace"] }
async-recursion = "1.1.1"
async-trait = {workspace = true}
async-trait = { workspace = true }
base64 = "0.22.1"
chrono = "0.4.38"
clap = { version = "4.5.27", default-features = false, optional = true, features = [
@ -21,7 +30,7 @@ clap = { version = "4.5.27", default-features = false, optional = true, features
"derive",
] }
convert_case = "0.8.0"
dashmap = {workspace = true}
dashmap = { workspace = true }
dhat = { version = "0.3", optional = true }
fnv = "1.0.7"
form_urlencoded = "1.2.1"
@ -32,7 +41,7 @@ http = { workspace = true }
image = { version = "0.25.5", default-features = false, features = ["png"] }
indexmap = { workspace = true, features = ["serde"] }
itertools = "0.13.0"
kcl-derive-docs = { version = "0.1.44", path = "../kcl-derive-docs" }
kcl-derive-docs = { version = "0.1", path = "../kcl-derive-docs" }
kittycad = { workspace = true }
kittycad-modeling-cmds = { workspace = true }
lazy_static = { workspace = true }
@ -69,6 +78,7 @@ ts-rs = { version = "10.1.0", features = [
"no-serde-warnings",
"serde-json-impl",
] }
tynm = "0.1.10"
url = { version = "2.5.4", features = ["serde"] }
uuid = { workspace = true, features = ["v4", "js", "serde"] }
validator = { version = "0.20.0", features = ["derive"] }
@ -113,6 +123,7 @@ expectorate = "1.1.0"
handlebars = "6.3.0"
image = { version = "0.25.5", default-features = false, features = ["png"] }
insta = { version = "1.41.1", features = ["json", "filters", "redactions"] }
kcl-directory-test-macro = { version = "0.1", path = "../kcl-directory-test-macro" }
miette = { version = "7.5.0", features = ["fancy"] }
pretty_assertions = "1.4.1"
tokio = { version = "1.41.1", features = ["rt-multi-thread", "macros", "time"] }
@ -138,6 +149,10 @@ required-features = ["lsp-test-util"]
name = "executor_benchmark_criterion"
harness = false
[[bench]]
name = "benchmark_kcl_samples"
harness = false
[[test]]
name = "executor"
path = "e2e/executor/main.rs"

View File

@ -0,0 +1,95 @@
use std::{
fs,
path::{Path, PathBuf},
};
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use tokio::runtime::Runtime;
const IGNORE_DIRS: [&str; 2] = ["step", "screenshots"];
fn discover_benchmark_dirs(base_path: &Path) -> Vec<PathBuf> {
let mut benchmark_dirs = Vec::new();
if let Ok(entries) = fs::read_dir(base_path) {
for entry in entries.filter_map(Result::ok) {
let path = entry.path();
if path.is_dir() {
let dir_name = path.file_name().unwrap().to_string_lossy();
if !IGNORE_DIRS.iter().any(|&x| x == dir_name) {
benchmark_dirs.push(path);
}
}
}
}
benchmark_dirs
}
fn find_main_kcl_file(dir_path: &Path) -> PathBuf {
let file_path = dir_path.join("main.kcl");
if !file_path.exists() || !file_path.is_file() {
panic!("Required main.kcl file not found in directory: {}", dir_path.display());
}
file_path
}
fn run_benchmarks(c: &mut Criterion) {
// Specify the base directory containing benchmark subdirectories
let base_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("../../public/kcl-samples");
if !base_dir.exists() || !base_dir.is_dir() {
panic!("Invalid base directory: {}", base_dir.display());
}
let benchmark_dirs = discover_benchmark_dirs(&base_dir);
let rt = Runtime::new().unwrap();
for dir in benchmark_dirs {
let dir_name = dir.file_name().unwrap().to_string_lossy().to_string();
// Change the current directory to the benchmark directory.
// This is necessary for the kcl-lib to correctly resolve relative paths.
std::env::set_current_dir(&dir).unwrap();
// Find main.kcl file (will panic if not found)
let input_file = find_main_kcl_file(&dir);
// Read the file content (panic on failure)
let input_content = fs::read_to_string(&input_file)
.unwrap_or_else(|e| panic!("Failed to read main.kcl in directory {}: {}", dir_name, e));
// Create a benchmark group for this directory
let mut group = c.benchmark_group(&dir_name);
group
.sample_size(10)
.measurement_time(std::time::Duration::from_secs(1)); // Short measurement time to keep it from running in parallel
let program = kcl_lib::Program::parse_no_errs(&input_content).unwrap();
group.bench_function("parse", |b| {
b.iter(|| kcl_lib::Program::parse_no_errs(black_box(&input_content)).unwrap())
});
group.bench_function("execute", |b| {
b.iter(|| {
rt.block_on(async {
let ctx = kcl_lib::ExecutorContext::new_with_default_client(Default::default())
.await
.unwrap();
let mut exec_state = kcl_lib::ExecState::new(&ctx.settings);
ctx.run(black_box(&program), &mut exec_state).await.unwrap();
ctx.close().await;
})
})
});
group.finish();
}
}
criterion_group!(benches, run_benchmarks);
criterion_main!(benches);

View File

@ -13,7 +13,14 @@ pub fn bench_execute(c: &mut Criterion) {
let mut group = c.benchmark_group("executor");
// Configure Criterion.rs to detect smaller differences and increase sample size to improve
// precision and counteract the resulting noise.
group.sample_size(10);
group
.sample_size(10)
.measurement_time(std::time::Duration::from_secs(1)); // Short
// measurement
// time to keep
// it from
// running in
// parallel
group.bench_with_input(BenchmarkId::new("execute", name), &code, |b, &s| {
let rt = Runtime::new().unwrap();
// Spawn a future onto the runtime

View File

@ -857,7 +857,7 @@ part = rectShape([0, 0], 20, 20)
};
assert_eq!(
err.error.message(),
"Expected a kcl_lib::std::shapes::SketchOrSurface but found string (text)"
"This function expected this argument to be of type SketchOrSurface but it's actually of type string (text)"
);
}
@ -2086,6 +2086,26 @@ async fn kcl_test_ensure_nothing_left_in_batch_multi_file() {
ctx.close().await;
}
#[tokio::test(flavor = "multi_thread")]
async fn kcl_test_better_type_names() {
let code = r#"startSketchOn('XY')
|> circle(center = [-95.51, -74.7], radius = 262.23)
|> appearance(metalness = 0.9)
"#;
let result = execute_and_snapshot(code, UnitLength::Mm, None).await;
let err = match result.err() {
Some(x) => match x {
ExecError::Kcl(kcl_error_with_outputs) => kcl_error_with_outputs.error.message().to_owned(),
ExecError::Connection(_) => todo!(),
ExecError::BadPng(_) => todo!(),
ExecError::BadExport(_) => todo!(),
},
None => todo!(),
};
assert_eq!(err, "This function expected this argument to be of type SolidSet but it's actually of type Sketch. You can convert a sketch (2D) into a Solid (3D) by calling a function like `extrude` or `revolve`");
}
#[tokio::test(flavor = "multi_thread")]
async fn kcl_test_exporting_step_file() {
// This tests export like how we do it in cli and kcl.py.

View File

@ -21,7 +21,7 @@ use crate::{
};
const TYPES_DIR: &str = "../../docs/kcl/types";
const LANG_TOPICS: [&str; 4] = ["Types", "Modules", "Settings", "Known Issues"];
const LANG_TOPICS: [&str; 5] = ["Types", "Modules", "Settings", "Known Issues", "Constants"];
// These types are declared in std.
const DECLARED_TYPES: [&str; 7] = ["number", "string", "tag", "bool", "Sketch", "Solid", "Plane"];
@ -298,6 +298,7 @@ fn init_handlebars() -> Result<handlebars::Handlebars<'static>> {
hbs.register_template_string("propertyType", include_str!("templates/propertyType.hbs"))?;
hbs.register_template_string("schema", include_str!("templates/schema.hbs"))?;
hbs.register_template_string("index", include_str!("templates/index.hbs"))?;
hbs.register_template_string("consts-index", include_str!("templates/consts-index.hbs"))?;
hbs.register_template_string("function", include_str!("templates/function.hbs"))?;
hbs.register_template_string("const", include_str!("templates/const.hbs"))?;
hbs.register_template_string("type", include_str!("templates/type.hbs"))?;
@ -312,6 +313,9 @@ fn generate_index(combined: &IndexMap<String, Box<dyn StdLibFn>>, kcl_lib: &[Doc
let mut functions = HashMap::new();
functions.insert("std".to_owned(), Vec::new());
let mut constants = HashMap::new();
constants.insert("std".to_owned(), Vec::new());
for key in combined.keys() {
let internal_fn = combined
.get(key)
@ -337,6 +341,13 @@ fn generate_index(combined: &IndexMap<String, Box<dyn StdLibFn>>, kcl_lib: &[Doc
DocData::Const(c) => (c.name.clone(), d.file_name()),
DocData::Ty(t) => (t.name.clone(), d.file_name()),
});
if let DocData::Const(c) = d {
constants
.entry(d.mod_name())
.or_default()
.push((c.name.clone(), d.file_name()));
}
}
// TODO we should sub-divide into types, constants, and functions.
@ -362,7 +373,7 @@ fn generate_index(combined: &IndexMap<String, Box<dyn StdLibFn>>, kcl_lib: &[Doc
.map(|name| {
json!({
"name": name,
"file_name": name.to_lowercase().replace(' ', "-"),
"file_name": name.to_lowercase().replace(' ', "-").replace("constants", "consts"),
})
})
.collect();
@ -375,6 +386,31 @@ fn generate_index(combined: &IndexMap<String, Box<dyn StdLibFn>>, kcl_lib: &[Doc
expectorate::assert_contents("../../docs/kcl/index.md", &output);
// Generate the index for the constants.
let mut sorted_consts: Vec<_> = constants
.into_iter()
.map(|(m, mut consts)| {
consts.sort();
let val = json!({
"name": m,
"consts": consts.into_iter().map(|(n, f)| json!({
"name": n,
"file_name": f,
})).collect::<Vec<_>>(),
});
(m, val)
})
.collect();
sorted_consts.sort_by(|t1, t2| t1.0.cmp(&t2.0));
let data: Vec<_> = sorted_consts.into_iter().map(|(_, val)| val).collect();
let data = json!({
"consts": data,
});
let output = hbs.render("consts-index", &data)?;
expectorate::assert_contents("../../docs/kcl/consts.md", &output);
Ok(())
}
@ -405,7 +441,7 @@ fn generate_example(index: usize, src: &str, props: &ExampleProperties, file_nam
}))
}
fn generate_type_from_kcl(ty: &TyData, file_name: String) -> Result<()> {
fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String) -> Result<()> {
if ty.properties.doc_hidden {
return Ok(());
}
@ -416,7 +452,7 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String) -> Result<()> {
.examples
.iter()
.enumerate()
.filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &file_name))
.filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &example_name))
.collect();
let data = json!({
@ -428,7 +464,7 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String) -> Result<()> {
});
let output = hbs.render("kclType", &data)?;
expectorate::assert_contents(format!("../../docs/kcl/types/{}.md", file_name), &output);
expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output);
Ok(())
}
@ -480,7 +516,7 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<()
Ok(())
}
fn generate_const_from_kcl(cnst: &ConstData, file_name: String) -> Result<()> {
fn generate_const_from_kcl(cnst: &ConstData, file_name: String, example_name: String) -> Result<()> {
if cnst.properties.doc_hidden {
return Ok(());
}
@ -490,7 +526,7 @@ fn generate_const_from_kcl(cnst: &ConstData, file_name: String) -> Result<()> {
.examples
.iter()
.enumerate()
.filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &file_name))
.filter_map(|(index, example)| generate_example(index, &example.0, &example.1, &example_name))
.collect();
let data = json!({
@ -1028,8 +1064,8 @@ fn test_generate_stdlib_markdown_docs() {
for d in &kcl_std {
match d {
DocData::Fn(f) => generate_function_from_kcl(f, d.file_name()).unwrap(),
DocData::Const(c) => generate_const_from_kcl(c, d.file_name()).unwrap(),
DocData::Ty(t) => generate_type_from_kcl(t, d.file_name()).unwrap(),
DocData::Const(c) => generate_const_from_kcl(c, d.file_name(), d.example_name()).unwrap(),
DocData::Ty(t) => generate_type_from_kcl(t, d.file_name(), d.example_name()).unwrap(),
}
}
}
@ -1061,7 +1097,8 @@ fn test_generate_stdlib_json_schema() {
async fn test_code_in_topics() {
let mut join_set = JoinSet::new();
for name in LANG_TOPICS {
let filename = format!("../../docs/kcl/{}.md", name.to_lowercase().replace(' ', "-"));
let filename =
format!("../../docs/kcl/{}.md", name.to_lowercase().replace(' ', "-")).replace("constants", "consts");
let mut file = File::open(&filename).unwrap();
let mut text = String::new();
file.read_to_string(&mut text).unwrap();

View File

@ -116,10 +116,18 @@ impl DocData {
#[allow(dead_code)]
pub fn file_name(&self) -> String {
match self {
DocData::Fn(f) => f.qual_name.replace("::", "-"),
DocData::Const(c) => format!("consts/{}", c.qual_name.replace("::", "-")),
DocData::Ty(t) => format!("types/{}", t.name.clone()),
}
}
#[allow(dead_code)]
pub fn example_name(&self) -> String {
match self {
DocData::Fn(f) => f.qual_name.replace("::", "-"),
DocData::Const(c) => format!("const_{}", c.qual_name.replace("::", "-")),
// TODO might want to change this
DocData::Ty(t) => t.name.clone(),
}
}
@ -872,7 +880,7 @@ mod test {
Ok(img) => img,
};
twenty_twenty::assert_image(
format!("tests/outputs/serial_test_example_{}{i}.png", d.file_name()),
format!("tests/outputs/serial_test_example_{}{i}.png", d.example_name()),
&result,
0.99,
);

View File

@ -0,0 +1,17 @@
---
title: "KCL Constants"
excerpt: "Documentation for the KCL constants."
layout: manual
---
## Table of Contents
{{#each consts}}
### `{{name}}`
{{#each consts}}
- [`{{name}}`](/docs/kcl/{{file_name}})
{{/each}}
{{/each}}

View File

@ -64,8 +64,6 @@ pub struct ExecOutcome {
/// Operations that have been performed in execution order, for display in
/// the Feature Tree.
pub operations: Vec<Operation>,
/// Output map of UUIDs to artifacts.
pub artifacts: IndexMap<ArtifactId, Artifact>,
/// Output commands to allow building the artifact graph by the caller.
pub artifact_commands: Vec<ArtifactCommand>,
/// Output artifact graph.

View File

@ -123,7 +123,6 @@ impl ExecState {
.map(|(k, v)| (k.clone(), v.clone()))
.collect(),
operations: self.global.operations,
artifacts: self.global.artifacts,
artifact_commands: self.global.artifact_commands,
artifact_graph: self.global.artifact_graph,
errors: self.global.errors,
@ -146,7 +145,6 @@ impl ExecState {
.map(|(k, v)| (k.clone(), v.clone()))
.collect(),
operations: Default::default(),
artifacts: Default::default(),
artifact_commands: Default::default(),
artifact_graph: Default::default(),
errors: self.global.errors,

View File

@ -2809,29 +2809,45 @@ fn fn_call_kw(i: &mut TokenSlice) -> PResult<Node<CallExpressionKw>> {
let _ = open_paren.parse_next(i)?;
ignore_whitespace(i);
#[allow(clippy::large_enum_variant)]
pub enum ArgPlace {
NonCode(Node<NonCodeNode>),
LabeledArg(LabeledArg),
UnlabeledArg(Expr),
}
let initial_unlabeled_arg = opt((expression, comma, opt(whitespace)).map(|(arg, _, _)| arg)).parse_next(i)?;
let args: Vec<_> = repeat(
0..,
alt((
terminated(non_code_node.map(NonCodeOr::NonCode), whitespace),
terminated(labeled_argument, labeled_arg_separator).map(NonCodeOr::Code),
terminated(non_code_node.map(ArgPlace::NonCode), whitespace),
terminated(labeled_argument, labeled_arg_separator).map(ArgPlace::LabeledArg),
expression.map(ArgPlace::UnlabeledArg),
)),
)
.parse_next(i)?;
let (args, non_code_nodes): (Vec<_>, BTreeMap<usize, _>) = args.into_iter().enumerate().fold(
let (args, non_code_nodes): (Vec<_>, BTreeMap<usize, _>) = args.into_iter().enumerate().try_fold(
(Vec::new(), BTreeMap::new()),
|(mut args, mut non_code_nodes), (i, e)| {
match e {
NonCodeOr::NonCode(x) => {
ArgPlace::NonCode(x) => {
non_code_nodes.insert(i, vec![x]);
}
NonCodeOr::Code(x) => {
ArgPlace::LabeledArg(x) => {
args.push(x);
}
ArgPlace::UnlabeledArg(arg) => {
return Err(ErrMode::Cut(
CompilationError::fatal(
SourceRange::from(arg),
"This argument needs a label, but it doesn't have one",
)
.into(),
));
}
}
(args, non_code_nodes)
Ok((args, non_code_nodes))
},
);
)?;
if let Some(std_fn) = crate::std::get_stdlib_fn(&fn_name.name) {
let just_args: Vec<_> = args.iter().collect();
typecheck_all_kw(std_fn, &just_args)?;
@ -4641,6 +4657,27 @@ baz = 2
assert_eq!(actual.operator, UnaryOperator::Not);
crate::parsing::top_level_parse(some_program_string).unwrap(); // Updated import path
}
#[test]
fn test_sensible_error_when_missing_equals_in_kwarg() {
for (i, program) in ["f(x=1,y)", "f(x=1,y,z)", "f(x=1,y,z=1)", "f(x=1, y, z=1)"]
.into_iter()
.enumerate()
{
let tokens = crate::parsing::token::lex(program, ModuleId::default()).unwrap();
let err = fn_call_kw.parse(tokens.as_slice()).unwrap_err();
let cause = err.inner().cause.as_ref().unwrap();
assert_eq!(
cause.message, "This argument needs a label, but it doesn't have one",
"failed test {i}: {program}"
);
assert_eq!(
cause.source_range.start(),
program.find("y").unwrap(),
"failed test {i}: {program}"
);
}
}
}
#[cfg(test)]

View File

@ -0,0 +1,232 @@
use std::{fs, path::PathBuf};
use schemars::{gen::SchemaGenerator, JsonSchema};
use serde_json::{json, Value};
use crate::settings::types::{project::ProjectConfiguration, Configuration};
// Project settings example in TOML format
const PROJECT_SETTINGS_EXAMPLE: &str = r#"[settings.app]
# Set the appearance of the application
name = "My Awesome Project"
[settings.app.appearance]
# Use dark mode theme
theme = "dark"
# Set the app color to blue (240.0 = blue, 0.0 = red, 120.0 = green)
color = 240.0
[settings.modeling]
# Use inches as the default measurement unit
base_unit = "in"
"#;
// User settings example in TOML format
const USER_SETTINGS_EXAMPLE: &str = r#"[settings.app]
# Set the appearance of the application
[settings.app.appearance]
# Use dark mode theme
theme = "dark"
# Set the app color to blue (240.0 = blue, 0.0 = red, 120.0 = green)
color = 240.0
[settings.modeling]
# Use millimeters as the default measurement unit
base_unit = "mm"
[settings.text_editor]
# Disable text wrapping in the editor
text_wrapping = false
"#;
const PROJECT_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings/project.md";
const USER_SETTINGS_DOC_PATH: &str = "../../docs/kcl/settings/user.md";
fn init_handlebars() -> handlebars::Handlebars<'static> {
let mut hbs = handlebars::Handlebars::new();
// Register helper to pretty-format enum values
hbs.register_helper(
"pretty_enum",
Box::new(
|h: &handlebars::Helper,
_: &handlebars::Handlebars,
_: &handlebars::Context,
_: &mut handlebars::RenderContext,
out: &mut dyn handlebars::Output|
-> handlebars::HelperResult {
if let Some(enum_value) = h.param(0) {
if let Some(array) = enum_value.value().as_array() {
let pretty_options = array
.iter()
.filter_map(|v| v.as_str())
.map(|s| format!("`{}`", s))
.collect::<Vec<_>>()
.join(", ");
out.write(&pretty_options)?;
return Ok(());
}
}
out.write("No options available")?;
Ok(())
},
),
);
// Helper to format default values better
hbs.register_helper(
"format_default",
Box::new(
|h: &handlebars::Helper,
_: &handlebars::Handlebars,
_: &handlebars::Context,
_: &mut handlebars::RenderContext,
out: &mut dyn handlebars::Output|
-> handlebars::HelperResult {
if let Some(default) = h.param(0) {
let val = default.value();
match val {
Value::Null => out.write("None")?,
Value::Bool(b) => out.write(&b.to_string())?,
Value::Number(n) => out.write(&n.to_string())?,
Value::String(s) => out.write(&format!("`{}`", s))?,
Value::Array(arr) => {
let formatted = arr
.iter()
.map(|v| match v {
Value::String(s) => format!("`{}`", s),
_ => format!("{}", v),
})
.collect::<Vec<_>>()
.join(", ");
out.write(&format!("[{}]", formatted))?;
}
Value::Object(_) => out.write("(complex default)")?,
}
return Ok(());
}
out.write("None")?;
Ok(())
},
),
);
// Register the settings template
hbs.register_template_string("settings", include_str!("templates/settings.hbs"))
.expect("Failed to register settings template");
hbs
}
fn ensure_settings_dir() {
let settings_dir = PathBuf::from("../../docs/kcl/settings");
if !settings_dir.exists() {
fs::create_dir_all(&settings_dir).expect("Failed to create settings directory");
}
}
pub fn generate_settings_docs() {
ensure_settings_dir();
let hbs = init_handlebars();
// Generate project settings documentation
let mut settings = schemars::gen::SchemaSettings::default();
settings.inline_subschemas = true;
settings.meta_schema = None; // We don't need the meta schema for docs
settings.option_nullable = false; // Important - makes Option fields show properly
settings.option_add_null_type = false;
let mut generator = SchemaGenerator::new(settings.clone());
let project_schema = ProjectConfiguration::json_schema(&mut generator);
// For debugging the schema:
// fs::write("/tmp/project_schema.json", serde_json::to_string_pretty(&project_schema).unwrap())
// .expect("Failed to write debug schema");
// Extract the description from the schema metadata
let project_description = if let schemars::schema::Schema::Object(obj) = &project_schema {
if let Some(metadata) = &obj.metadata {
metadata.description.clone().unwrap_or_default()
} else {
"Project specific settings for the KittyCAD modeling app.".to_string()
}
} else {
"Project specific settings for the KittyCAD modeling app.".to_string()
};
// Convert the schema to our template format
let project_data = json!({
"title": "Project Settings",
"description": project_description,
"config_type": "Project Configuration",
"file_name": "project.toml",
"settings": json!(project_schema),
"example": PROJECT_SETTINGS_EXAMPLE
});
let project_output = hbs
.render("settings", &project_data)
.expect("Failed to render project settings documentation");
expectorate::assert_contents(PROJECT_SETTINGS_DOC_PATH, &project_output);
// Generate user settings documentation
let mut generator = SchemaGenerator::new(settings);
let user_schema = Configuration::json_schema(&mut generator);
// For debugging the schema:
// fs::write("/tmp/user_schema.json", serde_json::to_string_pretty(&user_schema).unwrap())
// .expect("Failed to write debug schema");
// Extract the description from the schema metadata
let user_description = if let schemars::schema::Schema::Object(obj) = &user_schema {
if let Some(metadata) = &obj.metadata {
metadata.description.clone().unwrap_or_default()
} else {
"User-specific configuration options for the KittyCAD modeling app.".to_string()
}
} else {
"User-specific configuration options for the KittyCAD modeling app.".to_string()
};
// Trim any trailing periods to avoid double periods
let user_data = json!({
"title": "User Settings",
"description": user_description,
"config_type": "User Configuration",
"file_name": "user.toml",
"settings": json!(user_schema),
"example": USER_SETTINGS_EXAMPLE
});
let user_output = hbs
.render("settings", &user_data)
.expect("Failed to render user settings documentation");
expectorate::assert_contents(USER_SETTINGS_DOC_PATH, &user_output);
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_generate_settings_docs() {
// First verify that our TOML examples are valid and match the expected types
let _project_config: ProjectConfiguration = toml::from_str(PROJECT_SETTINGS_EXAMPLE)
.expect("Project settings example is not valid according to ProjectConfiguration");
let _user_config: Configuration = toml::from_str(USER_SETTINGS_EXAMPLE)
.expect("User settings example is not valid according to Configuration");
// Expectorate will verify the output matches what we expect,
// or update it if run with EXPECTORATE=overwrite
generate_settings_docs();
// Verify files exist
let project_path = PathBuf::from(PROJECT_SETTINGS_DOC_PATH);
let user_path = PathBuf::from(USER_SETTINGS_DOC_PATH);
assert!(project_path.exists(), "Project settings documentation not generated");
assert!(user_path.exists(), "User settings documentation not generated");
}
}

View File

@ -1,3 +1,6 @@
//! This module contains settings for kcl projects as well as the modeling app.
pub mod types;
#[cfg(test)]
mod generate_settings_docs;

View File

@ -0,0 +1,67 @@
---
title: "{{title}}"
excerpt: "{{{description}}}"
layout: manual
---
# {{title}}
{{{description}}}
## {{config_type}} Structure
```toml
{{{example}}}
```
## Available Settings
{{#with settings.properties}}
{{#each this}}
### {{@key}}
{{#if metadata.description}}{{metadata.description}}{{/if}}
{{#with properties}}
{{#each this}}
#### {{@key}}
{{#if description}}{{description}}{{/if}}
{{#if enum}}
**Possible values:** {{pretty_enum enum}}
{{/if}}
**Default:** {{#if default}}{{format_default default}}{{else}}None{{/if}}
{{#if properties}}
This setting has the following nested options:
{{#each properties}}
##### {{@key}}
{{#if description}}{{description}}{{/if}}
{{#if enum}}
**Possible values:** {{pretty_enum enum}}
{{/if}}
**Default:** {{#if default}}{{format_default default}}{{else}}None{{/if}}
{{#if properties}}
This setting has further nested options. See the schema for full details.
{{/if}}
{{/each}}
{{/if}}
{{/each}}
{{/with}}
{{/each}}
{{/with}}
## Complete Example
```toml
{{{example}}}
```

View File

@ -11,7 +11,11 @@ use validator::{Validate, ValidateRange};
const DEFAULT_THEME_COLOR: f64 = 264.5;
const DEFAULT_PROJECT_NAME_TEMPLATE: &str = "project-$nnn";
/// High level configuration.
/// User specific settings for the app.
/// These live in `user.toml` in the app's configuration directory.
/// Updating the settings in the app will update this file automatically.
/// Do not edit this file manually, as it may be overwritten by the app.
/// Manual edits can cause corruption of the settings file.
#[derive(Debug, Default, Clone, Deserialize, Serialize, JsonSchema, ts_rs::TS, PartialEq, Validate)]
#[ts(export)]
#[serde(rename_all = "snake_case")]

View File

@ -10,7 +10,11 @@ use crate::settings::types::{
is_default, AppColor, CommandBarSettings, DefaultTrue, FloatOrInt, OnboardingStatus, TextEditorSettings, UnitLength,
};
/// High level project configuration.
/// Project specific settings for the app.
/// These live in `project.toml` in the base of the project directory.
/// Updating the settings for the project in the app will update this file automatically.
/// Do not edit this file manually, as it may be overwritten by the app.
/// Manual edits can cause corruption of the settings file.
#[derive(Debug, Default, Clone, Deserialize, Serialize, JsonSchema, ts_rs::TS, PartialEq, Validate)]
#[ts(export)]
#[serde(rename_all = "snake_case")]

View File

@ -27,7 +27,7 @@ struct Test {
}
pub(crate) const RENDERED_MODEL_NAME: &str = "rendered_model.png";
//pub(crate) const EXPORTED_STEP_NAME: &str = "exported_step.step";
pub(crate) const EXPORTED_STEP_NAME: &str = "exported_step.linux.step";
impl Test {
fn new(name: &str) -> Self {
@ -107,15 +107,7 @@ fn unparse_test(test: &Test) {
};
// Check recasting the AST produces the original string.
let actual = ast.recast(&Default::default(), 0);
if matches!(std::env::var("EXPECTORATE").as_deref(), Ok("overwrite")) {
std::fs::write(test.input_dir.join(&test.entry_point), &actual).unwrap();
}
let expected = read(&test.entry_point, &test.input_dir);
pretty_assertions::assert_eq!(
actual,
expected,
"Parse then unparse didn't recreate the original KCL file"
);
expectorate::assert_contents(test.input_dir.join(&test.entry_point), &actual);
}
async fn execute(test_name: &str, render_to_png: bool) {
@ -153,12 +145,13 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
}
if export_step {
let step = step.unwrap();
// TODO FIXME: This is failing because the step file is not deterministic.
// But it should be, talk to @katie
/*assert_snapshot(test, "Step file", || {
insta::assert_binary_snapshot!(EXPORTED_STEP_NAME, step);
});*/
std::fs::write(test.output_dir.join("exported_step.snap.step"), step).unwrap();
let step_str = std::str::from_utf8(&step).unwrap();
// We use expectorate here so we can see the diff in ci.
expectorate::assert_contents(
test.output_dir
.join(format!("exported_step.{}.step", std::env::consts::OS)),
step_str,
);
}
let outcome = exec_state.to_wasm_outcome(env_ref);
assert_common_snapshots(

View File

@ -1,18 +1,12 @@
//! Run all the KCL samples in the `kcl_samples` directory.
//!
//! Use the `KCL_SAMPLES_ONLY=gear` environment variable to run only a subset of
//! the samples, in this case, all those that start with "gear".
use std::{
collections::HashMap,
fs,
io::Write,
path::{Path, PathBuf},
};
use anyhow::Result;
use fnv::FnvHashSet;
use serde::{Deserialize, Serialize};
use tokio::task::JoinSet;
use super::Test;
@ -25,76 +19,37 @@ lazy_static::lazy_static! {
static ref OUTPUTS_DIR: PathBuf = Path::new("tests/kcl_samples").to_path_buf();
}
#[test]
fn parse() {
#[kcl_directory_test_macro::test_all_dirs("../public/kcl-samples")]
fn parse(dir_name: &str, dir_path: &Path) {
let t = test(dir_name, dir_path.join("main.kcl").to_str().unwrap().to_owned());
let write_new = matches!(
std::env::var("INSTA_UPDATE").as_deref(),
Ok("auto" | "always" | "new" | "unseen")
);
let filter = filter_from_env();
let tests = kcl_samples_inputs(filter.as_deref());
let expected_outputs = kcl_samples_outputs(filter.as_deref());
assert!(!tests.is_empty(), "No KCL samples found");
let input_names = FnvHashSet::from_iter(tests.iter().map(|t| t.name.clone()));
for test in tests {
if write_new {
// Ensure the directory exists for new tests.
std::fs::create_dir_all(test.output_dir.clone()).unwrap();
}
super::parse_test(&test);
if write_new {
// Ensure the directory exists for new tests.
std::fs::create_dir_all(t.output_dir.clone()).unwrap();
}
// Ensure that inputs aren't missing.
let missing = expected_outputs
.into_iter()
.filter(|name| !input_names.contains(name))
.collect::<Vec<_>>();
assert!(missing.is_empty(), "Expected input kcl-samples for the following. If these are no longer tests, delete the expected output directories for them in {}: {missing:?}", OUTPUTS_DIR.to_string_lossy());
super::parse_test(&t);
}
#[test]
fn unparse() {
#[kcl_directory_test_macro::test_all_dirs("../public/kcl-samples")]
fn unparse(dir_name: &str, dir_path: &Path) {
// kcl-samples don't always use correct formatting. We don't ignore the
// test because we want to allow the just command to work. It's actually
// fine when no test runs.
}
#[tokio::test(flavor = "multi_thread")]
async fn kcl_test_execute() {
let filter = filter_from_env();
let tests = kcl_samples_inputs(filter.as_deref());
let expected_outputs = kcl_samples_outputs(filter.as_deref());
#[kcl_directory_test_macro::test_all_dirs("../public/kcl-samples")]
async fn kcl_test_execute(dir_name: &str, dir_path: &Path) {
let t = test(dir_name, dir_path.join("main.kcl").to_str().unwrap().to_owned());
super::execute_test(&t, true, true).await;
}
assert!(!tests.is_empty(), "No KCL samples found");
// Note: This is unordered.
let mut tasks = JoinSet::new();
// Mapping from task ID to test index.
let mut id_to_index = HashMap::new();
// Spawn a task for each test.
for (index, test) in tests.iter().cloned().enumerate() {
let handle = tasks.spawn(async move {
super::execute_test(&test, true, true).await;
});
id_to_index.insert(handle.id(), index);
}
// Join all the tasks and collect the failures. We cannot just join_all
// because insta's error messages don't clearly indicate which test failed.
let mut failed = vec![None; tests.len()];
while let Some(result) = tasks.join_next().await {
let Err(err) = result else {
continue;
};
// When there's an error, store the test name and error message.
let index = *id_to_index.get(&err.id()).unwrap();
failed[index] = Some(format!("{}: {err}", &tests[index].name));
}
let failed = failed.into_iter().flatten().collect::<Vec<_>>();
assert!(failed.is_empty(), "Failed tests: {}", failed.join("\n"));
#[test]
fn test_after_engine_ensure_kcl_samples_manifest_etc() {
let tests = kcl_samples_inputs();
let expected_outputs = kcl_samples_outputs();
// Ensure that inputs aren't missing.
let input_names = FnvHashSet::from_iter(tests.iter().map(|t| t.name.clone()));
@ -125,7 +80,7 @@ async fn kcl_test_execute() {
)
.unwrap();
let step_file = OUTPUTS_DIR.join(&tests.name).join("exported_step.snap.step");
let step_file = OUTPUTS_DIR.join(&tests.name).join(super::EXPORTED_STEP_NAME);
if !step_file.exists() {
panic!("Missing step for test: {}", tests.name);
}
@ -147,7 +102,7 @@ async fn kcl_test_execute() {
}
#[test]
fn generate_manifest() {
fn test_after_engine_generate_manifest() {
// Generate the manifest.json
generate_kcl_manifest(&INPUTS_DIR).unwrap();
}
@ -161,11 +116,7 @@ fn test(test_name: &str, entry_point: String) -> Test {
}
}
fn filter_from_env() -> Option<String> {
std::env::var("KCL_SAMPLES_ONLY").ok().filter(|s| !s.is_empty())
}
fn kcl_samples_inputs(filter: Option<&str>) -> Vec<Test> {
fn kcl_samples_inputs() -> Vec<Test> {
let mut tests = Vec::new();
// Collect all directory entries first and sort them by name for consistent ordering
@ -197,11 +148,6 @@ fn kcl_samples_inputs(filter: Option<&str>) -> Vec<Test> {
// Skip output directories.
continue;
}
if let Some(filter) = &filter {
if !dir_name_str.starts_with(filter) {
continue;
}
}
eprintln!("Found KCL sample: {:?}", dir_name.to_string_lossy());
// Look for the entry point inside the directory.
let sub_dir = INPUTS_DIR.join(dir_name);
@ -216,7 +162,7 @@ fn kcl_samples_inputs(filter: Option<&str>) -> Vec<Test> {
tests
}
fn kcl_samples_outputs(filter: Option<&str>) -> Vec<String> {
fn kcl_samples_outputs() -> Vec<String> {
let mut outputs = Vec::new();
for entry in OUTPUTS_DIR.read_dir().unwrap() {
@ -234,11 +180,6 @@ fn kcl_samples_outputs(filter: Option<&str>) -> Vec<String> {
// Skip hidden.
continue;
}
if let Some(filter) = &filter {
if !dir_name_str.starts_with(filter) {
continue;
}
}
eprintln!("Found expected KCL sample: {:?}", &dir_name_str);
outputs.push(dir_name_str.into_owned());
@ -352,10 +293,7 @@ fn generate_kcl_manifest(dir: &Path) -> Result<()> {
// Write the manifest.json
let output_path = dir.join(MANIFEST_FILE);
let manifest_json = serde_json::to_string_pretty(&manifest)?;
let mut file = fs::File::create(output_path.clone())?;
file.write_all(manifest_json.as_bytes())?;
expectorate::assert_contents(&output_path, &serde_json::to_string_pretty(&manifest).unwrap());
println!(
"Manifest of {} items written to {}",
@ -391,7 +329,7 @@ fn update_readme(dir: &Path, new_content: &str) -> Result<()> {
let updated_content = format!("{}{}\n", &content[..position], new_content);
// Write the modified content back to the file
std::fs::write(readme_path, updated_content)?;
expectorate::assert_contents(&readme_path, &updated_content);
Ok(())
}

View File

@ -182,13 +182,22 @@ impl Args {
}))?;
T::from_kcl_val(&arg.value).ok_or_else(|| {
let expected_type_name = tynm::type_name::<T>();
let actual_type_name = arg.value.human_friendly_type();
let msg_base = format!("This function expected this argument to be of type {expected_type_name} but it's actually of type {actual_type_name}");
let suggestion = match (expected_type_name.as_str(), actual_type_name) {
("SolidSet", "Sketch") => Some(
"You can convert a sketch (2D) into a Solid (3D) by calling a function like `extrude` or `revolve`",
),
_ => None,
};
let message = match suggestion {
None => msg_base,
Some(sugg) => format!("{msg_base}. {sugg}"),
};
KclError::Semantic(KclErrorDetails {
source_ranges: arg.source_ranges(),
message: format!(
"Expected a {} but found {}",
type_name::<T>(),
arg.value.human_friendly_type()
),
message,
})
})
}

View File

@ -1,5 +1,5 @@
---
source: kcl/src/simulation_tests.rs
source: kcl-lib/src/simulation_tests.rs
description: Result of parsing array_elem_pop.kcl
---
{

View File

@ -1,5 +1,5 @@
---
source: kcl/src/simulation_tests.rs
source: kcl-lib/src/simulation_tests.rs
description: Result of parsing array_elem_pop_empty_fail.kcl
---
{

View File

@ -1,5 +1,5 @@
---
source: kcl/src/simulation_tests.rs
source: kcl-lib/src/simulation_tests.rs
description: Error from executing array_elem_pop_empty_fail.kcl
---
KCL Semantic error

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file 3d-boaty.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file 80-20-rail.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,713 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, 0.0762));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, 0.0762));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, 0.0762));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, 0.0762));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, -0.0762));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, -0.0762));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, -0.0762));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, -0.0762));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (-0.02286, 0.01905, 0.05715));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (-0.02286, 0.0254, 0.05715));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (-0.02286, 0.01905, -0.05715));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (-0.02286, 0.0254, -0.05715));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.04064, 0.01905, -0.05715));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (0.04064, 0.0254, -0.05715));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (0.04064, 0.01905, 0.05715));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (0.04064, 0.0254, 0.05715));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0.0381, 0.01905, 0.000000000000000009331808609502833));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0.0381, 0.0254, 0.000000000000000009331808609502833));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762));
#43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, 0.0762));
#45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, 0.0762));
#47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762));
#49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, -0.0762));
#51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762));
#53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, -0.0762));
#55 = VERTEX_POINT('NONE', #54);
#56 = CARTESIAN_POINT('NONE', (-0.0269875, 0, 0.05715));
#57 = VERTEX_POINT('NONE', #56);
#58 = CARTESIAN_POINT('NONE', (-0.0269875, 0.01905, 0.05715));
#59 = VERTEX_POINT('NONE', #58);
#60 = CARTESIAN_POINT('NONE', (-0.0269875, 0, -0.05715));
#61 = VERTEX_POINT('NONE', #60);
#62 = CARTESIAN_POINT('NONE', (-0.0269875, 0.01905, -0.05715));
#63 = VERTEX_POINT('NONE', #62);
#64 = CARTESIAN_POINT('NONE', (0.0365125, 0, -0.05715));
#65 = VERTEX_POINT('NONE', #64);
#66 = CARTESIAN_POINT('NONE', (0.0365125, 0.01905, -0.05715));
#67 = VERTEX_POINT('NONE', #66);
#68 = CARTESIAN_POINT('NONE', (0.0365125, 0, 0.05715));
#69 = VERTEX_POINT('NONE', #68);
#70 = CARTESIAN_POINT('NONE', (0.0365125, 0.01905, 0.05715));
#71 = VERTEX_POINT('NONE', #70);
#72 = CARTESIAN_POINT('NONE', (0.0381, 0, 0.000000000000000009331808609502833));
#73 = VERTEX_POINT('NONE', #72);
#74 = CARTESIAN_POINT('NONE', (0.0381, 0.01905, 0.000000000000000009331808609502833));
#75 = VERTEX_POINT('NONE', #74);
#76 = DIRECTION('NONE', (1, 0, 0));
#77 = VECTOR('NONE', #76, 1);
#78 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, 0.0762));
#79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (0, 1, 0));
#81 = VECTOR('NONE', #80, 1);
#82 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, 0.0762));
#83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (1, 0, 0));
#85 = VECTOR('NONE', #84, 1);
#86 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, 0.0762));
#87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0, 1, 0));
#89 = VECTOR('NONE', #88, 1);
#90 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, 0.0762));
#91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (0, 0, -1));
#93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, 0.0762));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (0, 1, 0));
#97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, -0.0762));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (0, 0, -1));
#101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, 0.0762));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (-1, 0, 0));
#105 = VECTOR('NONE', #104, 1);
#106 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, -0.0762));
#107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (0, 1, 0));
#109 = VECTOR('NONE', #108, 1);
#110 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, -0.0762));
#111 = LINE('NONE', #110, #109);
#112 = DIRECTION('NONE', (-1, 0, 0));
#113 = VECTOR('NONE', #112, 1);
#114 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, -0.0762));
#115 = LINE('NONE', #114, #113);
#116 = DIRECTION('NONE', (0, 0, 1));
#117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, -0.0762));
#119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (0, 0, 1));
#121 = VECTOR('NONE', #120, 1);
#122 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, -0.0762));
#123 = LINE('NONE', #122, #121);
#124 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463443));
#125 = DIRECTION('NONE', (0, -1, 0));
#126 = CARTESIAN_POINT('NONE', (-0.03175, 0.01905, 0.05714999999999999));
#127 = AXIS2_PLACEMENT_3D('NONE', #126, #125, #124);
#128 = CIRCLE('NONE', #127, 0.00889);
#129 = DIRECTION('NONE', (0, 1, 0));
#130 = VECTOR('NONE', #129, 1);
#131 = CARTESIAN_POINT('NONE', (-0.02286, 0.01905, 0.05715));
#132 = LINE('NONE', #131, #130);
#133 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463443));
#134 = DIRECTION('NONE', (0, -1, 0));
#135 = CARTESIAN_POINT('NONE', (-0.03175, 0.0254, 0.05714999999999999));
#136 = AXIS2_PLACEMENT_3D('NONE', #135, #134, #133);
#137 = CIRCLE('NONE', #136, 0.00889);
#138 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447));
#139 = DIRECTION('NONE', (0, -1, 0));
#140 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.01905, -0.05714999999999999));
#141 = AXIS2_PLACEMENT_3D('NONE', #140, #139, #138);
#142 = CIRCLE('NONE', #141, 0.008889999999999997);
#143 = DIRECTION('NONE', (0, 1, 0));
#144 = VECTOR('NONE', #143, 1);
#145 = CARTESIAN_POINT('NONE', (-0.02286, 0.01905, -0.05715));
#146 = LINE('NONE', #145, #144);
#147 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447));
#148 = DIRECTION('NONE', (0, -1, 0));
#149 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.0254, -0.05714999999999999));
#150 = AXIS2_PLACEMENT_3D('NONE', #149, #148, #147);
#151 = CIRCLE('NONE', #150, 0.008889999999999997);
#152 = DIRECTION('NONE', (1, 0, -0.000000000000000799260670146344));
#153 = DIRECTION('NONE', (0, -1, 0));
#154 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.01905, -0.05714999999999999));
#155 = AXIS2_PLACEMENT_3D('NONE', #154, #153, #152);
#156 = CIRCLE('NONE', #155, 0.008890000000000004);
#157 = DIRECTION('NONE', (0, 1, 0));
#158 = VECTOR('NONE', #157, 1);
#159 = CARTESIAN_POINT('NONE', (0.04064, 0.01905, -0.05715));
#160 = LINE('NONE', #159, #158);
#161 = DIRECTION('NONE', (1, 0, -0.000000000000000799260670146344));
#162 = DIRECTION('NONE', (0, -1, 0));
#163 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.0254, -0.05714999999999999));
#164 = AXIS2_PLACEMENT_3D('NONE', #163, #162, #161);
#165 = CIRCLE('NONE', #164, 0.008890000000000004);
#166 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447));
#167 = DIRECTION('NONE', (0, -1, 0));
#168 = CARTESIAN_POINT('NONE', (0.03175, 0.01905, 0.05714999999999999));
#169 = AXIS2_PLACEMENT_3D('NONE', #168, #167, #166);
#170 = CIRCLE('NONE', #169, 0.008889999999999997);
#171 = DIRECTION('NONE', (0, 1, 0));
#172 = VECTOR('NONE', #171, 1);
#173 = CARTESIAN_POINT('NONE', (0.04064, 0.01905, 0.05715));
#174 = LINE('NONE', #173, #172);
#175 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447));
#176 = DIRECTION('NONE', (0, -1, 0));
#177 = CARTESIAN_POINT('NONE', (0.03175, 0.0254, 0.05714999999999999));
#178 = AXIS2_PLACEMENT_3D('NONE', #177, #176, #175);
#179 = CIRCLE('NONE', #178, 0.008889999999999997);
#180 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#181 = DIRECTION('NONE', (0, -1, 0));
#182 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, 0.01905, -0.000000000000000000000000000000000418356671621052));
#183 = AXIS2_PLACEMENT_3D('NONE', #182, #181, #180);
#184 = CIRCLE('NONE', #183, 0.0381);
#185 = DIRECTION('NONE', (0, 1, 0));
#186 = VECTOR('NONE', #185, 1);
#187 = CARTESIAN_POINT('NONE', (0.0381, 0.01905, 0.000000000000000009331808609502833));
#188 = LINE('NONE', #187, #186);
#189 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#190 = DIRECTION('NONE', (0, -1, 0));
#191 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, 0.0254, -0.000000000000000000000000000000000418356671621052));
#192 = AXIS2_PLACEMENT_3D('NONE', #191, #190, #189);
#193 = CIRCLE('NONE', #192, 0.0381);
#194 = DIRECTION('NONE', (1, 0, 0));
#195 = VECTOR('NONE', #194, 1);
#196 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762));
#197 = LINE('NONE', #196, #195);
#198 = DIRECTION('NONE', (0, 1, 0));
#199 = VECTOR('NONE', #198, 1);
#200 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762));
#201 = LINE('NONE', #200, #199);
#202 = DIRECTION('NONE', (1, 0, 0));
#203 = VECTOR('NONE', #202, 1);
#204 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, 0.0762));
#205 = LINE('NONE', #204, #203);
#206 = DIRECTION('NONE', (0, 1, 0));
#207 = VECTOR('NONE', #206, 1);
#208 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762));
#209 = LINE('NONE', #208, #207);
#210 = DIRECTION('NONE', (0, 0, -1));
#211 = VECTOR('NONE', #210, 1);
#212 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762));
#213 = LINE('NONE', #212, #211);
#214 = DIRECTION('NONE', (0, 1, 0));
#215 = VECTOR('NONE', #214, 1);
#216 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762));
#217 = LINE('NONE', #216, #215);
#218 = DIRECTION('NONE', (0, 0, -1));
#219 = VECTOR('NONE', #218, 1);
#220 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, 0.0762));
#221 = LINE('NONE', #220, #219);
#222 = DIRECTION('NONE', (-1, 0, 0));
#223 = VECTOR('NONE', #222, 1);
#224 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762));
#225 = LINE('NONE', #224, #223);
#226 = DIRECTION('NONE', (0, 1, 0));
#227 = VECTOR('NONE', #226, 1);
#228 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762));
#229 = LINE('NONE', #228, #227);
#230 = DIRECTION('NONE', (-1, 0, 0));
#231 = VECTOR('NONE', #230, 1);
#232 = CARTESIAN_POINT('NONE', (0.0508, 0.01905, -0.0762));
#233 = LINE('NONE', #232, #231);
#234 = DIRECTION('NONE', (0, 0, 1));
#235 = VECTOR('NONE', #234, 1);
#236 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762));
#237 = LINE('NONE', #236, #235);
#238 = DIRECTION('NONE', (0, 0, 1));
#239 = VECTOR('NONE', #238, 1);
#240 = CARTESIAN_POINT('NONE', (-0.0508, 0.01905, -0.0762));
#241 = LINE('NONE', #240, #239);
#242 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#243 = DIRECTION('NONE', (0, -1, 0));
#244 = CARTESIAN_POINT('NONE', (-0.031749999999999994, -0, 0.057150000000000006));
#245 = AXIS2_PLACEMENT_3D('NONE', #244, #243, #242);
#246 = CIRCLE('NONE', #245, 0.004762499999999996);
#247 = DIRECTION('NONE', (0, 1, 0));
#248 = VECTOR('NONE', #247, 1);
#249 = CARTESIAN_POINT('NONE', (-0.0269875, 0, 0.05715));
#250 = LINE('NONE', #249, #248);
#251 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#252 = DIRECTION('NONE', (0, -1, 0));
#253 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.01905, 0.057150000000000006));
#254 = AXIS2_PLACEMENT_3D('NONE', #253, #252, #251);
#255 = CIRCLE('NONE', #254, 0.004762499999999996);
#256 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#257 = DIRECTION('NONE', (0, -1, 0));
#258 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0, -0.05714999999999999));
#259 = AXIS2_PLACEMENT_3D('NONE', #258, #257, #256);
#260 = CIRCLE('NONE', #259, 0.004762499999999996);
#261 = DIRECTION('NONE', (0, 1, 0));
#262 = VECTOR('NONE', #261, 1);
#263 = CARTESIAN_POINT('NONE', (-0.0269875, 0, -0.05715));
#264 = LINE('NONE', #263, #262);
#265 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#266 = DIRECTION('NONE', (0, -1, 0));
#267 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.01905, -0.05714999999999999));
#268 = AXIS2_PLACEMENT_3D('NONE', #267, #266, #265);
#269 = CIRCLE('NONE', #268, 0.004762499999999996);
#270 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#271 = DIRECTION('NONE', (0, -1, 0));
#272 = CARTESIAN_POINT('NONE', (0.031749999999999994, -0, -0.05714999999999999));
#273 = AXIS2_PLACEMENT_3D('NONE', #272, #271, #270);
#274 = CIRCLE('NONE', #273, 0.004762500000000006);
#275 = DIRECTION('NONE', (0, 1, 0));
#276 = VECTOR('NONE', #275, 1);
#277 = CARTESIAN_POINT('NONE', (0.0365125, 0, -0.05715));
#278 = LINE('NONE', #277, #276);
#279 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#280 = DIRECTION('NONE', (0, -1, 0));
#281 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.01905, -0.05714999999999999));
#282 = AXIS2_PLACEMENT_3D('NONE', #281, #280, #279);
#283 = CIRCLE('NONE', #282, 0.004762500000000006);
#284 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#285 = DIRECTION('NONE', (0, -1, 0));
#286 = CARTESIAN_POINT('NONE', (0.031749999999999994, -0, 0.057150000000000006));
#287 = AXIS2_PLACEMENT_3D('NONE', #286, #285, #284);
#288 = CIRCLE('NONE', #287, 0.004762500000000006);
#289 = DIRECTION('NONE', (0, 1, 0));
#290 = VECTOR('NONE', #289, 1);
#291 = CARTESIAN_POINT('NONE', (0.0365125, 0, 0.05715));
#292 = LINE('NONE', #291, #290);
#293 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#294 = DIRECTION('NONE', (0, -1, 0));
#295 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.01905, 0.057150000000000006));
#296 = AXIS2_PLACEMENT_3D('NONE', #295, #294, #293);
#297 = CIRCLE('NONE', #296, 0.004762500000000006);
#298 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#299 = DIRECTION('NONE', (0, -1, 0));
#300 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, -0, -0.000000000000000000000000000000000418356671621052));
#301 = AXIS2_PLACEMENT_3D('NONE', #300, #299, #298);
#302 = CIRCLE('NONE', #301, 0.0381);
#303 = DIRECTION('NONE', (0, 1, 0));
#304 = VECTOR('NONE', #303, 1);
#305 = CARTESIAN_POINT('NONE', (0.0381, 0, 0.000000000000000009331808609502833));
#306 = LINE('NONE', #305, #304);
#307 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#308 = DIRECTION('NONE', (0, -1, 0));
#309 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, 0.01905, -0.000000000000000000000000000000000418356671621052));
#310 = AXIS2_PLACEMENT_3D('NONE', #309, #308, #307);
#311 = CIRCLE('NONE', #310, 0.0381);
#312 = EDGE_CURVE('NONE', #5, #7, #79, .T.);
#313 = EDGE_CURVE('NONE', #7, #9, #83, .T.);
#314 = EDGE_CURVE('NONE', #11, #9, #87, .T.);
#315 = EDGE_CURVE('NONE', #5, #11, #91, .T.);
#316 = EDGE_CURVE('NONE', #7, #13, #95, .T.);
#317 = EDGE_CURVE('NONE', #13, #15, #99, .T.);
#318 = EDGE_CURVE('NONE', #9, #15, #103, .T.);
#319 = EDGE_CURVE('NONE', #13, #17, #107, .T.);
#320 = EDGE_CURVE('NONE', #17, #19, #111, .T.);
#321 = EDGE_CURVE('NONE', #15, #19, #115, .T.);
#322 = EDGE_CURVE('NONE', #17, #5, #119, .T.);
#323 = EDGE_CURVE('NONE', #19, #11, #123, .T.);
#324 = EDGE_CURVE('NONE', #21, #21, #128, .T.);
#325 = EDGE_CURVE('NONE', #21, #23, #132, .T.);
#326 = EDGE_CURVE('NONE', #23, #23, #137, .T.);
#327 = EDGE_CURVE('NONE', #25, #25, #142, .T.);
#328 = EDGE_CURVE('NONE', #25, #27, #146, .T.);
#329 = EDGE_CURVE('NONE', #27, #27, #151, .T.);
#330 = EDGE_CURVE('NONE', #29, #29, #156, .T.);
#331 = EDGE_CURVE('NONE', #29, #31, #160, .T.);
#332 = EDGE_CURVE('NONE', #31, #31, #165, .T.);
#333 = EDGE_CURVE('NONE', #33, #33, #170, .T.);
#334 = EDGE_CURVE('NONE', #33, #35, #174, .T.);
#335 = EDGE_CURVE('NONE', #35, #35, #179, .T.);
#336 = EDGE_CURVE('NONE', #37, #37, #184, .T.);
#337 = EDGE_CURVE('NONE', #37, #39, #188, .T.);
#338 = EDGE_CURVE('NONE', #39, #39, #193, .T.);
#339 = EDGE_CURVE('NONE', #41, #43, #197, .T.);
#340 = EDGE_CURVE('NONE', #43, #45, #201, .T.);
#341 = EDGE_CURVE('NONE', #47, #45, #205, .T.);
#342 = EDGE_CURVE('NONE', #41, #47, #209, .T.);
#343 = EDGE_CURVE('NONE', #43, #49, #213, .T.);
#344 = EDGE_CURVE('NONE', #49, #51, #217, .T.);
#345 = EDGE_CURVE('NONE', #45, #51, #221, .T.);
#346 = EDGE_CURVE('NONE', #49, #53, #225, .T.);
#347 = EDGE_CURVE('NONE', #53, #55, #229, .T.);
#348 = EDGE_CURVE('NONE', #51, #55, #233, .T.);
#349 = EDGE_CURVE('NONE', #53, #41, #237, .T.);
#350 = EDGE_CURVE('NONE', #55, #47, #241, .T.);
#351 = EDGE_CURVE('NONE', #57, #57, #246, .T.);
#352 = EDGE_CURVE('NONE', #57, #59, #250, .T.);
#353 = EDGE_CURVE('NONE', #59, #59, #255, .T.);
#354 = EDGE_CURVE('NONE', #61, #61, #260, .T.);
#355 = EDGE_CURVE('NONE', #61, #63, #264, .T.);
#356 = EDGE_CURVE('NONE', #63, #63, #269, .T.);
#357 = EDGE_CURVE('NONE', #65, #65, #274, .T.);
#358 = EDGE_CURVE('NONE', #65, #67, #278, .T.);
#359 = EDGE_CURVE('NONE', #67, #67, #283, .T.);
#360 = EDGE_CURVE('NONE', #69, #69, #288, .T.);
#361 = EDGE_CURVE('NONE', #69, #71, #292, .T.);
#362 = EDGE_CURVE('NONE', #71, #71, #297, .T.);
#363 = EDGE_CURVE('NONE', #73, #73, #302, .T.);
#364 = EDGE_CURVE('NONE', #73, #75, #306, .T.);
#365 = EDGE_CURVE('NONE', #75, #75, #311, .T.);
#366 = CARTESIAN_POINT('NONE', (0, 0.022224999999999995, 0.07619999999999999));
#367 = DIRECTION('NONE', (0, 0, 1));
#368 = AXIS2_PLACEMENT_3D('NONE', #366, #367, $);
#369 = PLANE('NONE', #368);
#370 = CARTESIAN_POINT('NONE', (0.0508, 0.022225, -0.000000000000000014210854715202004));
#371 = DIRECTION('NONE', (1, -0, 0));
#372 = AXIS2_PLACEMENT_3D('NONE', #370, #371, $);
#373 = PLANE('NONE', #372);
#374 = CARTESIAN_POINT('NONE', (0, 0.022225, -0.0762));
#375 = DIRECTION('NONE', (0, -0, -1));
#376 = AXIS2_PLACEMENT_3D('NONE', #374, #375, $);
#377 = PLANE('NONE', #376);
#378 = CARTESIAN_POINT('NONE', (-0.0508, 0.022225, -0));
#379 = DIRECTION('NONE', (-1, 0, 0));
#380 = AXIS2_PLACEMENT_3D('NONE', #378, #379, $);
#381 = PLANE('NONE', #380);
#382 = CARTESIAN_POINT('NONE', (-0.03175, 0.022225, 0.05714999999999999));
#383 = DIRECTION('NONE', (0, -1, 0));
#384 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463443));
#385 = AXIS2_PLACEMENT_3D('NONE', #382, #383, #384);
#386 = CYLINDRICAL_SURFACE('NONE', #385, 0.00889);
#387 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.022225, -0.05714999999999999));
#388 = DIRECTION('NONE', (0, -1, 0));
#389 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447));
#390 = AXIS2_PLACEMENT_3D('NONE', #387, #388, #389);
#391 = CYLINDRICAL_SURFACE('NONE', #390, 0.008889999999999997);
#392 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.022225, -0.05714999999999999));
#393 = DIRECTION('NONE', (0, -1, 0));
#394 = DIRECTION('NONE', (1, 0, -0.000000000000000799260670146344));
#395 = AXIS2_PLACEMENT_3D('NONE', #392, #393, #394);
#396 = CYLINDRICAL_SURFACE('NONE', #395, 0.008890000000000004);
#397 = CARTESIAN_POINT('NONE', (0.03175, 0.022225, 0.05714999999999999));
#398 = DIRECTION('NONE', (0, -1, 0));
#399 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447));
#400 = AXIS2_PLACEMENT_3D('NONE', #397, #398, #399);
#401 = CYLINDRICAL_SURFACE('NONE', #400, 0.008889999999999997);
#402 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, 0.022225, -0.000000000000000000000000000000000418356671621052));
#403 = DIRECTION('NONE', (0, -1, 0));
#404 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#405 = AXIS2_PLACEMENT_3D('NONE', #402, #403, #404);
#406 = CYLINDRICAL_SURFACE('NONE', #405, 0.0381);
#407 = CARTESIAN_POINT('NONE', (0, 0.01905, -0));
#408 = DIRECTION('NONE', (0, 1, 0));
#409 = AXIS2_PLACEMENT_3D('NONE', #407, #408, $);
#410 = PLANE('NONE', #409);
#411 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
#412 = DIRECTION('NONE', (0, 1, 0));
#413 = AXIS2_PLACEMENT_3D('NONE', #411, #412, $);
#414 = PLANE('NONE', #413);
#415 = CARTESIAN_POINT('NONE', (0, 0.009524999999999999, 0.07619999999999999));
#416 = DIRECTION('NONE', (0, 0, 1));
#417 = AXIS2_PLACEMENT_3D('NONE', #415, #416, $);
#418 = PLANE('NONE', #417);
#419 = CARTESIAN_POINT('NONE', (0.0508, 0.009525, -0.000000000000000014210854715202004));
#420 = DIRECTION('NONE', (1, 0, 0));
#421 = AXIS2_PLACEMENT_3D('NONE', #419, #420, $);
#422 = PLANE('NONE', #421);
#423 = CARTESIAN_POINT('NONE', (0, 0.009525, -0.0762));
#424 = DIRECTION('NONE', (0, -0, -1));
#425 = AXIS2_PLACEMENT_3D('NONE', #423, #424, $);
#426 = PLANE('NONE', #425);
#427 = CARTESIAN_POINT('NONE', (-0.0508, 0.009525, -0));
#428 = DIRECTION('NONE', (-1, 0, 0));
#429 = AXIS2_PLACEMENT_3D('NONE', #427, #428, $);
#430 = PLANE('NONE', #429);
#431 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.009525, 0.057150000000000006));
#432 = DIRECTION('NONE', (0, -1, 0));
#433 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#434 = AXIS2_PLACEMENT_3D('NONE', #431, #432, #433);
#435 = CYLINDRICAL_SURFACE('NONE', #434, 0.004762499999999996);
#436 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.009525, -0.05714999999999999));
#437 = DIRECTION('NONE', (0, -1, 0));
#438 = DIRECTION('NONE', (1, 0, -0.0000000000000014919532509398443));
#439 = AXIS2_PLACEMENT_3D('NONE', #436, #437, #438);
#440 = CYLINDRICAL_SURFACE('NONE', #439, 0.004762499999999996);
#441 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.009525, -0.05714999999999999));
#442 = DIRECTION('NONE', (0, -1, 0));
#443 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#444 = AXIS2_PLACEMENT_3D('NONE', #441, #442, #443);
#445 = CYLINDRICAL_SURFACE('NONE', #444, 0.004762500000000006);
#446 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.009525, 0.057150000000000006));
#447 = DIRECTION('NONE', (0, -1, 0));
#448 = DIRECTION('NONE', (1, 0, -0.000000000000001491953250939841));
#449 = AXIS2_PLACEMENT_3D('NONE', #446, #447, #448);
#450 = CYLINDRICAL_SURFACE('NONE', #449, 0.004762500000000006);
#451 = CARTESIAN_POINT('NONE', (-0.0000000000000000025121479338940404, 0.009525, -0.000000000000000000000000000000000418356671621052));
#452 = DIRECTION('NONE', (0, -1, 0));
#453 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#454 = AXIS2_PLACEMENT_3D('NONE', #451, #452, #453);
#455 = CYLINDRICAL_SURFACE('NONE', #454, 0.0381);
#456 = CARTESIAN_POINT('NONE', (0, 0, -0));
#457 = DIRECTION('NONE', (0, 1, 0));
#458 = AXIS2_PLACEMENT_3D('NONE', #456, #457, $);
#459 = PLANE('NONE', #458);
#460 = CARTESIAN_POINT('NONE', (0, 0.01905, -0));
#461 = DIRECTION('NONE', (0, 1, 0));
#462 = AXIS2_PLACEMENT_3D('NONE', #460, #461, $);
#463 = PLANE('NONE', #462);
#464 = ORIENTED_EDGE('NONE', *, *, #312, .T.);
#465 = ORIENTED_EDGE('NONE', *, *, #313, .T.);
#466 = ORIENTED_EDGE('NONE', *, *, #314, .F.);
#467 = ORIENTED_EDGE('NONE', *, *, #315, .F.);
#468 = EDGE_LOOP('NONE', (#464, #465, #466, #467));
#469 = FACE_BOUND('NONE', #468, .T.);
#470 = ADVANCED_FACE('NONE', (#469), #369, .T.);
#471 = ORIENTED_EDGE('NONE', *, *, #316, .T.);
#472 = ORIENTED_EDGE('NONE', *, *, #317, .T.);
#473 = ORIENTED_EDGE('NONE', *, *, #318, .F.);
#474 = ORIENTED_EDGE('NONE', *, *, #313, .F.);
#475 = EDGE_LOOP('NONE', (#471, #472, #473, #474));
#476 = FACE_BOUND('NONE', #475, .T.);
#477 = ADVANCED_FACE('NONE', (#476), #373, .T.);
#478 = ORIENTED_EDGE('NONE', *, *, #319, .T.);
#479 = ORIENTED_EDGE('NONE', *, *, #320, .T.);
#480 = ORIENTED_EDGE('NONE', *, *, #321, .F.);
#481 = ORIENTED_EDGE('NONE', *, *, #317, .F.);
#482 = EDGE_LOOP('NONE', (#478, #479, #480, #481));
#483 = FACE_BOUND('NONE', #482, .T.);
#484 = ADVANCED_FACE('NONE', (#483), #377, .T.);
#485 = ORIENTED_EDGE('NONE', *, *, #322, .T.);
#486 = ORIENTED_EDGE('NONE', *, *, #315, .T.);
#487 = ORIENTED_EDGE('NONE', *, *, #323, .F.);
#488 = ORIENTED_EDGE('NONE', *, *, #320, .F.);
#489 = EDGE_LOOP('NONE', (#485, #486, #487, #488));
#490 = FACE_BOUND('NONE', #489, .T.);
#491 = ADVANCED_FACE('NONE', (#490), #381, .T.);
#492 = ORIENTED_EDGE('NONE', *, *, #324, .T.);
#493 = ORIENTED_EDGE('NONE', *, *, #326, .F.);
#494 = EDGE_LOOP('NONE', (#492));
#495 = FACE_BOUND('NONE', #494, .T.);
#496 = EDGE_LOOP('NONE', (#493));
#497 = FACE_BOUND('NONE', #496, .T.);
#498 = ADVANCED_FACE('NONE', (#495, #497), #386, .F.);
#499 = ORIENTED_EDGE('NONE', *, *, #327, .T.);
#500 = ORIENTED_EDGE('NONE', *, *, #329, .F.);
#501 = EDGE_LOOP('NONE', (#499));
#502 = FACE_BOUND('NONE', #501, .T.);
#503 = EDGE_LOOP('NONE', (#500));
#504 = FACE_BOUND('NONE', #503, .T.);
#505 = ADVANCED_FACE('NONE', (#502, #504), #391, .F.);
#506 = ORIENTED_EDGE('NONE', *, *, #330, .T.);
#507 = ORIENTED_EDGE('NONE', *, *, #332, .F.);
#508 = EDGE_LOOP('NONE', (#506));
#509 = FACE_BOUND('NONE', #508, .T.);
#510 = EDGE_LOOP('NONE', (#507));
#511 = FACE_BOUND('NONE', #510, .T.);
#512 = ADVANCED_FACE('NONE', (#509, #511), #396, .F.);
#513 = ORIENTED_EDGE('NONE', *, *, #333, .T.);
#514 = ORIENTED_EDGE('NONE', *, *, #335, .F.);
#515 = EDGE_LOOP('NONE', (#513));
#516 = FACE_BOUND('NONE', #515, .T.);
#517 = EDGE_LOOP('NONE', (#514));
#518 = FACE_BOUND('NONE', #517, .T.);
#519 = ADVANCED_FACE('NONE', (#516, #518), #401, .F.);
#520 = ORIENTED_EDGE('NONE', *, *, #336, .T.);
#521 = ORIENTED_EDGE('NONE', *, *, #338, .F.);
#522 = EDGE_LOOP('NONE', (#520));
#523 = FACE_BOUND('NONE', #522, .T.);
#524 = EDGE_LOOP('NONE', (#521));
#525 = FACE_BOUND('NONE', #524, .T.);
#526 = ADVANCED_FACE('NONE', (#523, #525), #406, .F.);
#527 = ORIENTED_EDGE('NONE', *, *, #322, .F.);
#528 = ORIENTED_EDGE('NONE', *, *, #319, .F.);
#529 = ORIENTED_EDGE('NONE', *, *, #316, .F.);
#530 = ORIENTED_EDGE('NONE', *, *, #312, .F.);
#531 = ORIENTED_EDGE('NONE', *, *, #324, .F.);
#532 = ORIENTED_EDGE('NONE', *, *, #327, .F.);
#533 = ORIENTED_EDGE('NONE', *, *, #330, .F.);
#534 = ORIENTED_EDGE('NONE', *, *, #333, .F.);
#535 = ORIENTED_EDGE('NONE', *, *, #336, .F.);
#536 = EDGE_LOOP('NONE', (#527, #528, #529, #530));
#537 = FACE_BOUND('NONE', #536, .T.);
#538 = EDGE_LOOP('NONE', (#531));
#539 = FACE_BOUND('NONE', #538, .T.);
#540 = EDGE_LOOP('NONE', (#532));
#541 = FACE_BOUND('NONE', #540, .T.);
#542 = EDGE_LOOP('NONE', (#533));
#543 = FACE_BOUND('NONE', #542, .T.);
#544 = EDGE_LOOP('NONE', (#534));
#545 = FACE_BOUND('NONE', #544, .T.);
#546 = EDGE_LOOP('NONE', (#535));
#547 = FACE_BOUND('NONE', #546, .T.);
#548 = ADVANCED_FACE('NONE', (#537, #539, #541, #543, #545, #547), #410, .F.);
#549 = ORIENTED_EDGE('NONE', *, *, #314, .T.);
#550 = ORIENTED_EDGE('NONE', *, *, #318, .T.);
#551 = ORIENTED_EDGE('NONE', *, *, #321, .T.);
#552 = ORIENTED_EDGE('NONE', *, *, #323, .T.);
#553 = ORIENTED_EDGE('NONE', *, *, #326, .T.);
#554 = ORIENTED_EDGE('NONE', *, *, #329, .T.);
#555 = ORIENTED_EDGE('NONE', *, *, #332, .T.);
#556 = ORIENTED_EDGE('NONE', *, *, #335, .T.);
#557 = ORIENTED_EDGE('NONE', *, *, #338, .T.);
#558 = EDGE_LOOP('NONE', (#549, #550, #551, #552));
#559 = FACE_BOUND('NONE', #558, .T.);
#560 = EDGE_LOOP('NONE', (#553));
#561 = FACE_BOUND('NONE', #560, .T.);
#562 = EDGE_LOOP('NONE', (#554));
#563 = FACE_BOUND('NONE', #562, .T.);
#564 = EDGE_LOOP('NONE', (#555));
#565 = FACE_BOUND('NONE', #564, .T.);
#566 = EDGE_LOOP('NONE', (#556));
#567 = FACE_BOUND('NONE', #566, .T.);
#568 = EDGE_LOOP('NONE', (#557));
#569 = FACE_BOUND('NONE', #568, .T.);
#570 = ADVANCED_FACE('NONE', (#559, #561, #563, #565, #567, #569), #414, .T.);
#571 = ORIENTED_EDGE('NONE', *, *, #339, .T.);
#572 = ORIENTED_EDGE('NONE', *, *, #340, .T.);
#573 = ORIENTED_EDGE('NONE', *, *, #341, .F.);
#574 = ORIENTED_EDGE('NONE', *, *, #342, .F.);
#575 = EDGE_LOOP('NONE', (#571, #572, #573, #574));
#576 = FACE_BOUND('NONE', #575, .T.);
#577 = ADVANCED_FACE('NONE', (#576), #418, .T.);
#578 = ORIENTED_EDGE('NONE', *, *, #343, .T.);
#579 = ORIENTED_EDGE('NONE', *, *, #344, .T.);
#580 = ORIENTED_EDGE('NONE', *, *, #345, .F.);
#581 = ORIENTED_EDGE('NONE', *, *, #340, .F.);
#582 = EDGE_LOOP('NONE', (#578, #579, #580, #581));
#583 = FACE_BOUND('NONE', #582, .T.);
#584 = ADVANCED_FACE('NONE', (#583), #422, .T.);
#585 = ORIENTED_EDGE('NONE', *, *, #346, .T.);
#586 = ORIENTED_EDGE('NONE', *, *, #347, .T.);
#587 = ORIENTED_EDGE('NONE', *, *, #348, .F.);
#588 = ORIENTED_EDGE('NONE', *, *, #344, .F.);
#589 = EDGE_LOOP('NONE', (#585, #586, #587, #588));
#590 = FACE_BOUND('NONE', #589, .T.);
#591 = ADVANCED_FACE('NONE', (#590), #426, .T.);
#592 = ORIENTED_EDGE('NONE', *, *, #349, .T.);
#593 = ORIENTED_EDGE('NONE', *, *, #342, .T.);
#594 = ORIENTED_EDGE('NONE', *, *, #350, .F.);
#595 = ORIENTED_EDGE('NONE', *, *, #347, .F.);
#596 = EDGE_LOOP('NONE', (#592, #593, #594, #595));
#597 = FACE_BOUND('NONE', #596, .T.);
#598 = ADVANCED_FACE('NONE', (#597), #430, .T.);
#599 = ORIENTED_EDGE('NONE', *, *, #351, .T.);
#600 = ORIENTED_EDGE('NONE', *, *, #353, .F.);
#601 = EDGE_LOOP('NONE', (#599));
#602 = FACE_BOUND('NONE', #601, .T.);
#603 = EDGE_LOOP('NONE', (#600));
#604 = FACE_BOUND('NONE', #603, .T.);
#605 = ADVANCED_FACE('NONE', (#602, #604), #435, .F.);
#606 = ORIENTED_EDGE('NONE', *, *, #354, .T.);
#607 = ORIENTED_EDGE('NONE', *, *, #356, .F.);
#608 = EDGE_LOOP('NONE', (#606));
#609 = FACE_BOUND('NONE', #608, .T.);
#610 = EDGE_LOOP('NONE', (#607));
#611 = FACE_BOUND('NONE', #610, .T.);
#612 = ADVANCED_FACE('NONE', (#609, #611), #440, .F.);
#613 = ORIENTED_EDGE('NONE', *, *, #357, .T.);
#614 = ORIENTED_EDGE('NONE', *, *, #359, .F.);
#615 = EDGE_LOOP('NONE', (#613));
#616 = FACE_BOUND('NONE', #615, .T.);
#617 = EDGE_LOOP('NONE', (#614));
#618 = FACE_BOUND('NONE', #617, .T.);
#619 = ADVANCED_FACE('NONE', (#616, #618), #445, .F.);
#620 = ORIENTED_EDGE('NONE', *, *, #360, .T.);
#621 = ORIENTED_EDGE('NONE', *, *, #362, .F.);
#622 = EDGE_LOOP('NONE', (#620));
#623 = FACE_BOUND('NONE', #622, .T.);
#624 = EDGE_LOOP('NONE', (#621));
#625 = FACE_BOUND('NONE', #624, .T.);
#626 = ADVANCED_FACE('NONE', (#623, #625), #450, .F.);
#627 = ORIENTED_EDGE('NONE', *, *, #363, .T.);
#628 = ORIENTED_EDGE('NONE', *, *, #365, .F.);
#629 = EDGE_LOOP('NONE', (#627));
#630 = FACE_BOUND('NONE', #629, .T.);
#631 = EDGE_LOOP('NONE', (#628));
#632 = FACE_BOUND('NONE', #631, .T.);
#633 = ADVANCED_FACE('NONE', (#630, #632), #455, .F.);
#634 = ORIENTED_EDGE('NONE', *, *, #349, .F.);
#635 = ORIENTED_EDGE('NONE', *, *, #346, .F.);
#636 = ORIENTED_EDGE('NONE', *, *, #343, .F.);
#637 = ORIENTED_EDGE('NONE', *, *, #339, .F.);
#638 = ORIENTED_EDGE('NONE', *, *, #351, .F.);
#639 = ORIENTED_EDGE('NONE', *, *, #354, .F.);
#640 = ORIENTED_EDGE('NONE', *, *, #357, .F.);
#641 = ORIENTED_EDGE('NONE', *, *, #360, .F.);
#642 = ORIENTED_EDGE('NONE', *, *, #363, .F.);
#643 = EDGE_LOOP('NONE', (#634, #635, #636, #637));
#644 = FACE_BOUND('NONE', #643, .T.);
#645 = EDGE_LOOP('NONE', (#638));
#646 = FACE_BOUND('NONE', #645, .T.);
#647 = EDGE_LOOP('NONE', (#639));
#648 = FACE_BOUND('NONE', #647, .T.);
#649 = EDGE_LOOP('NONE', (#640));
#650 = FACE_BOUND('NONE', #649, .T.);
#651 = EDGE_LOOP('NONE', (#641));
#652 = FACE_BOUND('NONE', #651, .T.);
#653 = EDGE_LOOP('NONE', (#642));
#654 = FACE_BOUND('NONE', #653, .T.);
#655 = ADVANCED_FACE('NONE', (#644, #646, #648, #650, #652, #654), #459, .F.);
#656 = ORIENTED_EDGE('NONE', *, *, #341, .T.);
#657 = ORIENTED_EDGE('NONE', *, *, #345, .T.);
#658 = ORIENTED_EDGE('NONE', *, *, #348, .T.);
#659 = ORIENTED_EDGE('NONE', *, *, #350, .T.);
#660 = ORIENTED_EDGE('NONE', *, *, #353, .T.);
#661 = ORIENTED_EDGE('NONE', *, *, #356, .T.);
#662 = ORIENTED_EDGE('NONE', *, *, #359, .T.);
#663 = ORIENTED_EDGE('NONE', *, *, #362, .T.);
#664 = ORIENTED_EDGE('NONE', *, *, #365, .T.);
#665 = EDGE_LOOP('NONE', (#656, #657, #658, #659));
#666 = FACE_BOUND('NONE', #665, .T.);
#667 = EDGE_LOOP('NONE', (#660));
#668 = FACE_BOUND('NONE', #667, .T.);
#669 = EDGE_LOOP('NONE', (#661));
#670 = FACE_BOUND('NONE', #669, .T.);
#671 = EDGE_LOOP('NONE', (#662));
#672 = FACE_BOUND('NONE', #671, .T.);
#673 = EDGE_LOOP('NONE', (#663));
#674 = FACE_BOUND('NONE', #673, .T.);
#675 = EDGE_LOOP('NONE', (#664));
#676 = FACE_BOUND('NONE', #675, .T.);
#677 = ADVANCED_FACE('NONE', (#666, #668, #670, #672, #674, #676), #463, .T.);
#678 = CLOSED_SHELL('NONE', (#470, #477, #484, #491, #498, #505, #512, #519, #526, #548, #570));
#679 = CLOSED_SHELL('NONE', (#577, #584, #591, #598, #605, #612, #619, #626, #633, #655, #677));
#680 = MANIFOLD_SOLID_BREP('NONE', #678);
#681 = MANIFOLD_SOLID_BREP('NONE', #679);
#682 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#683 = PRODUCT_DEFINITION_CONTEXT('part definition', #682, 'design');
#684 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#685 = PRODUCT_DEFINITION_FORMATION('', $, #684);
#686 = PRODUCT_DEFINITION('design', $, #685, #683);
#687 = PRODUCT_DEFINITION_SHAPE('NONE', $, #686);
#688 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#681), #3);
#689 = SHAPE_DEFINITION_REPRESENTATION(#687, #688);
#690 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#691 = PRODUCT_DEFINITION_FORMATION('', $, #690);
#692 = PRODUCT_DEFINITION('design', $, #691, #683);
#693 = PRODUCT_DEFINITION_SHAPE('NONE', $, #692);
#694 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#680), #3);
#695 = SHAPE_DEFINITION_REPRESENTATION(#693, #694);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file a-parametric-bearing-pillow-block.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file ball-bearing.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,853 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0.1524));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0.1524));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.0381, -0.03175));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (-0.009525, -0.0381, -0.03175));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.0381, -0.13335));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (-0.009525, -0.0381, -0.13335));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.060325, -0.14605));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (-0.009525, -0.060325, -0.14605));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (-0.009525, -0.053974999999999995, -0.15240000000000004));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.053974999999999995, -0.15240000000000004));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.053974999999999995, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (-0.009525, -0.053974999999999995, -0));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (-0.009525, -0.060325, -0.00635));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.060325, -0.00635));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0.1524));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0, 0, -0));
#43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009524999999999999, -0.1524));
#45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009524999999999999, -0));
#47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0.1524));
#49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0));
#51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (0, 0, -0));
#53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0));
#55 = VERTEX_POINT('NONE', #54);
#56 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#57 = VERTEX_POINT('NONE', #56);
#58 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0.1524));
#59 = VERTEX_POINT('NONE', #58);
#60 = CARTESIAN_POINT('NONE', (0.03175, 0, -0.0254));
#61 = VERTEX_POINT('NONE', #60);
#62 = CARTESIAN_POINT('NONE', (0.03175, 0.008923630267041387, -0.0254));
#63 = VERTEX_POINT('NONE', #62);
#64 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0, -0.127));
#65 = VERTEX_POINT('NONE', #64);
#66 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0.008923630267041387, -0.127));
#67 = VERTEX_POINT('NONE', #66);
#68 = CARTESIAN_POINT('NONE', (0.03175, 0, -0.127));
#69 = VERTEX_POINT('NONE', #68);
#70 = CARTESIAN_POINT('NONE', (0.03175, 0.008923630267041387, -0.127));
#71 = VERTEX_POINT('NONE', #70);
#72 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0, -0.0254));
#73 = VERTEX_POINT('NONE', #72);
#74 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0.008923630267041387, -0.0254));
#75 = VERTEX_POINT('NONE', #74);
#76 = CARTESIAN_POINT('NONE', (0.111125, 0, -0));
#77 = VERTEX_POINT('NONE', #76);
#78 = CARTESIAN_POINT('NONE', (0.111125, 0.008923630267041387, -0));
#79 = VERTEX_POINT('NONE', #78);
#80 = CARTESIAN_POINT('NONE', (0.117475, 0.008923630267041387, -0.00635));
#81 = VERTEX_POINT('NONE', #80);
#82 = CARTESIAN_POINT('NONE', (0.117475, 0, -0.00635));
#83 = VERTEX_POINT('NONE', #82);
#84 = CARTESIAN_POINT('NONE', (0.117475, 0, -0.14605));
#85 = VERTEX_POINT('NONE', #84);
#86 = CARTESIAN_POINT('NONE', (0.117475, 0.008923630267041387, -0.14605));
#87 = VERTEX_POINT('NONE', #86);
#88 = CARTESIAN_POINT('NONE', (0.111125, 0.008923630267041387, -0.1524));
#89 = VERTEX_POINT('NONE', #88);
#90 = CARTESIAN_POINT('NONE', (0.111125, 0, -0.1524));
#91 = VERTEX_POINT('NONE', #90);
#92 = DIRECTION('NONE', (1, 0, 0));
#93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (1, 0, 0));
#97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0.1524));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (0, 0, 1));
#101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0.1524));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (0, 0, 1));
#105 = VECTOR('NONE', #104, 1);
#106 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0.1524));
#107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (0, 0.0000000000000011189649382048832, -1));
#109 = DIRECTION('NONE', (-1, 0, -0));
#110 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.03810000000000001, -0.025400000000000006));
#111 = AXIS2_PLACEMENT_3D('NONE', #110, #109, #108);
#112 = CIRCLE('NONE', #111, 0.0063499999999999945);
#113 = DIRECTION('NONE', (1, 0, 0));
#114 = VECTOR('NONE', #113, 1);
#115 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.0381, -0.03175));
#116 = LINE('NONE', #115, #114);
#117 = DIRECTION('NONE', (0, 0.0000000000000011189649382048832, -1));
#118 = DIRECTION('NONE', (-1, 0, -0));
#119 = CARTESIAN_POINT('NONE', (-0.009525, -0.03810000000000001, -0.025400000000000006));
#120 = AXIS2_PLACEMENT_3D('NONE', #119, #118, #117);
#121 = CIRCLE('NONE', #120, 0.0063499999999999945);
#122 = DIRECTION('NONE', (0, 0.0000000000000011189649382048857, -1));
#123 = DIRECTION('NONE', (-1, 0, -0));
#124 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.03810000000000001, -0.127));
#125 = AXIS2_PLACEMENT_3D('NONE', #124, #123, #122);
#126 = CIRCLE('NONE', #125, 0.00634999999999998);
#127 = DIRECTION('NONE', (1, 0, 0));
#128 = VECTOR('NONE', #127, 1);
#129 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.0381, -0.13335));
#130 = LINE('NONE', #129, #128);
#131 = DIRECTION('NONE', (0, 0.0000000000000011189649382048857, -1));
#132 = DIRECTION('NONE', (-1, 0, -0));
#133 = CARTESIAN_POINT('NONE', (-0.009525, -0.03810000000000001, -0.127));
#134 = AXIS2_PLACEMENT_3D('NONE', #133, #132, #131);
#135 = CIRCLE('NONE', #134, 0.00634999999999998);
#136 = DIRECTION('NONE', (1, 0, 0));
#137 = VECTOR('NONE', #136, 1);
#138 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.060325, -0.14605));
#139 = LINE('NONE', #138, #137);
#140 = DIRECTION('NONE', (0, -1, 0.000000000000004475859752819533));
#141 = DIRECTION('NONE', (1, 0, 0));
#142 = CARTESIAN_POINT('NONE', (-0.009525, -0.053975, -0.14605000000000004));
#143 = AXIS2_PLACEMENT_3D('NONE', #142, #141, #140);
#144 = CIRCLE('NONE', #143, 0.0063499999999999945);
#145 = DIRECTION('NONE', (-1, 0, 0));
#146 = VECTOR('NONE', #145, 1);
#147 = CARTESIAN_POINT('NONE', (-0.009525, -0.053974999999999995, -0.15240000000000004));
#148 = LINE('NONE', #147, #146);
#149 = DIRECTION('NONE', (-0.0000000000000016784474073073173, 0, -1));
#150 = DIRECTION('NONE', (-1, 0.0000000000000013507101648170894, 0.0000000000000016784474073073173));
#151 = CARTESIAN_POINT('NONE', (-0.018448630267041376, -0.053974999999999995, -0.14605));
#152 = AXIS2_PLACEMENT_3D('NONE', #151, #150, #149);
#153 = CIRCLE('NONE', #152, 0.006350000000000023);
#154 = DIRECTION('NONE', (0, 1, 0));
#155 = VECTOR('NONE', #154, 1);
#156 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.05397500000000006, -0.1524));
#157 = LINE('NONE', #156, #155);
#158 = DIRECTION('NONE', (0, -1, 0));
#159 = VECTOR('NONE', #158, 1);
#160 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0.1524));
#161 = LINE('NONE', #160, #159);
#162 = DIRECTION('NONE', (1, 0, 0));
#163 = VECTOR('NONE', #162, 1);
#164 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.053974999999999995, -0));
#165 = LINE('NONE', #164, #163);
#166 = DIRECTION('NONE', (0, 0.000000000000002237929876409769, 1));
#167 = DIRECTION('NONE', (1, 0, -0));
#168 = CARTESIAN_POINT('NONE', (-0.009525, -0.05397500000000001, -0.006349999999999988));
#169 = AXIS2_PLACEMENT_3D('NONE', #168, #167, #166);
#170 = CIRCLE('NONE', #169, 0.006349999999999988);
#171 = DIRECTION('NONE', (-1, 0, 0));
#172 = VECTOR('NONE', #171, 1);
#173 = CARTESIAN_POINT('NONE', (-0.009525, -0.060325, -0.00635));
#174 = LINE('NONE', #173, #172);
#175 = DIRECTION('NONE', (-0.0000000000000016784474073073266, -1, -0.000000000000001958188641858548));
#176 = DIRECTION('NONE', (-1, 0.0000000000000016784474073073292, -0.0000000000000013507101648170935));
#177 = CARTESIAN_POINT('NONE', (-0.018448630267041376, -0.05397500000000001, -0.006349999999999988));
#178 = AXIS2_PLACEMENT_3D('NONE', #177, #176, #175);
#179 = CIRCLE('NONE', #178, 0.006349999999999988);
#180 = DIRECTION('NONE', (0, -1, 0));
#181 = VECTOR('NONE', #180, 1);
#182 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0));
#183 = LINE('NONE', #182, #181);
#184 = DIRECTION('NONE', (0, 1, 0));
#185 = VECTOR('NONE', #184, 1);
#186 = CARTESIAN_POINT('NONE', (-0.009525, -0.05397500000000014, -0));
#187 = LINE('NONE', #186, #185);
#188 = DIRECTION('NONE', (-0.000000000000000024834981760584213, 0, -1));
#189 = VECTOR('NONE', #188, 1);
#190 = CARTESIAN_POINT('NONE', (-0.018448630267041383, -0.060325, -0.0063500000000000206));
#191 = LINE('NONE', #190, #189);
#192 = DIRECTION('NONE', (0, 0, 1));
#193 = VECTOR('NONE', #192, 1);
#194 = CARTESIAN_POINT('NONE', (-0.009525, -0.060325, -0.14604999999999999));
#195 = LINE('NONE', #194, #193);
#196 = DIRECTION('NONE', (0, 1, 0));
#197 = VECTOR('NONE', #196, 1);
#198 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#199 = LINE('NONE', #198, #197);
#200 = DIRECTION('NONE', (0, 0, 1));
#201 = VECTOR('NONE', #200, 1);
#202 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0.1524));
#203 = LINE('NONE', #202, #201);
#204 = DIRECTION('NONE', (0, 1, 0));
#205 = VECTOR('NONE', #204, 1);
#206 = CARTESIAN_POINT('NONE', (0, 0, -0));
#207 = LINE('NONE', #206, #205);
#208 = DIRECTION('NONE', (0, 0, 1));
#209 = VECTOR('NONE', #208, 1);
#210 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#211 = LINE('NONE', #210, #209);
#212 = DIRECTION('NONE', (0.00000000000000021664496663423743, 1, -0));
#213 = DIRECTION('NONE', (0, 0, 1));
#214 = CARTESIAN_POINT('NONE', (-0.000000000000000003996802888650563, -0.009524999999999997, -0.1524));
#215 = AXIS2_PLACEMENT_3D('NONE', #214, #213, #212);
#216 = CIRCLE('NONE', #215, 0.018448630267041383);
#217 = DIRECTION('NONE', (0, 0, 1));
#218 = VECTOR('NONE', #217, 1);
#219 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009524999999999999, -0.1524));
#220 = LINE('NONE', #219, #218);
#221 = DIRECTION('NONE', (0.00000000000000021664496663423743, 1, -0));
#222 = DIRECTION('NONE', (0, 0, 1));
#223 = CARTESIAN_POINT('NONE', (-0.000000000000000003996802888650563, -0.009524999999999997, 0));
#224 = AXIS2_PLACEMENT_3D('NONE', #223, #222, #221);
#225 = CIRCLE('NONE', #224, 0.018448630267041383);
#226 = DIRECTION('NONE', (1, 0, 0));
#227 = VECTOR('NONE', #226, 1);
#228 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0.1524));
#229 = LINE('NONE', #228, #227);
#230 = DIRECTION('NONE', (0, 0, 1));
#231 = VECTOR('NONE', #230, 1);
#232 = CARTESIAN_POINT('NONE', (-0.009525, -0.009525, -0.1524));
#233 = LINE('NONE', #232, #231);
#234 = DIRECTION('NONE', (1, 0, 0));
#235 = VECTOR('NONE', #234, 1);
#236 = CARTESIAN_POINT('NONE', (-0.018448630267041386, -0.009525, -0));
#237 = LINE('NONE', #236, #235);
#238 = DIRECTION('NONE', (-1, 0.00000000000000018649415636748036, -0));
#239 = DIRECTION('NONE', (0, -0, -1));
#240 = CARTESIAN_POINT('NONE', (-0.0000000000000000004440892098500626, -0.009524999999999999, -0.1524));
#241 = AXIS2_PLACEMENT_3D('NONE', #240, #239, #238);
#242 = CIRCLE('NONE', #241, 0.009525);
#243 = DIRECTION('NONE', (-1, 0.00000000000000018649415636748036, -0));
#244 = DIRECTION('NONE', (0, -0, -1));
#245 = CARTESIAN_POINT('NONE', (-0.0000000000000000004440892098500626, -0.009524999999999999, -0));
#246 = AXIS2_PLACEMENT_3D('NONE', #245, #244, #243);
#247 = CIRCLE('NONE', #246, 0.009525);
#248 = DIRECTION('NONE', (0, 1, 0));
#249 = VECTOR('NONE', #248, 1);
#250 = CARTESIAN_POINT('NONE', (0, 0, -0));
#251 = LINE('NONE', #250, #249);
#252 = DIRECTION('NONE', (0, 1, 0));
#253 = VECTOR('NONE', #252, 1);
#254 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#255 = LINE('NONE', #254, #253);
#256 = DIRECTION('NONE', (0, 0, 1));
#257 = VECTOR('NONE', #256, 1);
#258 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#259 = LINE('NONE', #258, #257);
#260 = DIRECTION('NONE', (0, 0, 1));
#261 = VECTOR('NONE', #260, 1);
#262 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0.1524));
#263 = LINE('NONE', #262, #261);
#264 = DIRECTION('NONE', (1, 0, -0));
#265 = DIRECTION('NONE', (0, -1, 0));
#266 = CARTESIAN_POINT('NONE', (0.0254, -0, -0.0254));
#267 = AXIS2_PLACEMENT_3D('NONE', #266, #265, #264);
#268 = CIRCLE('NONE', #267, 0.0063500000000000015);
#269 = DIRECTION('NONE', (0, 1, 0));
#270 = VECTOR('NONE', #269, 1);
#271 = CARTESIAN_POINT('NONE', (0.03175, 0, -0.0254));
#272 = LINE('NONE', #271, #270);
#273 = DIRECTION('NONE', (1, 0, -0));
#274 = DIRECTION('NONE', (0, -1, 0));
#275 = CARTESIAN_POINT('NONE', (0.0254, 0.008923630267041387, -0.0254));
#276 = AXIS2_PLACEMENT_3D('NONE', #275, #274, #273);
#277 = CIRCLE('NONE', #276, 0.0063500000000000015);
#278 = DIRECTION('NONE', (1, 0, 0.0000000000000022379298764097663));
#279 = DIRECTION('NONE', (0, -1, 0));
#280 = CARTESIAN_POINT('NONE', (0.08889999999999999, -0, -0.127));
#281 = AXIS2_PLACEMENT_3D('NONE', #280, #279, #278);
#282 = CIRCLE('NONE', #281, 0.0063499999999999945);
#283 = DIRECTION('NONE', (0, 1, 0));
#284 = VECTOR('NONE', #283, 1);
#285 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0, -0.127));
#286 = LINE('NONE', #285, #284);
#287 = DIRECTION('NONE', (1, 0, 0.0000000000000022379298764097663));
#288 = DIRECTION('NONE', (0, -1, 0));
#289 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.008923630267041387, -0.127));
#290 = AXIS2_PLACEMENT_3D('NONE', #289, #288, #287);
#291 = CIRCLE('NONE', #290, 0.0063499999999999945);
#292 = DIRECTION('NONE', (1, 0, 0.000000000000002237929876409761));
#293 = DIRECTION('NONE', (0, -1, 0));
#294 = CARTESIAN_POINT('NONE', (0.025399999999999992, -0, -0.127));
#295 = AXIS2_PLACEMENT_3D('NONE', #294, #293, #292);
#296 = CIRCLE('NONE', #295, 0.006350000000000008);
#297 = DIRECTION('NONE', (0, 1, 0));
#298 = VECTOR('NONE', #297, 1);
#299 = CARTESIAN_POINT('NONE', (0.03175, 0, -0.127));
#300 = LINE('NONE', #299, #298);
#301 = DIRECTION('NONE', (1, 0, 0.000000000000002237929876409761));
#302 = DIRECTION('NONE', (0, -1, 0));
#303 = CARTESIAN_POINT('NONE', (0.025399999999999992, 0.008923630267041387, -0.127));
#304 = AXIS2_PLACEMENT_3D('NONE', #303, #302, #301);
#305 = CIRCLE('NONE', #304, 0.006350000000000008);
#306 = DIRECTION('NONE', (1, 0, -0.0000000000000011189649382048806));
#307 = DIRECTION('NONE', (0, -1, 0));
#308 = CARTESIAN_POINT('NONE', (0.08889999999999998, -0, -0.025399999999999992));
#309 = AXIS2_PLACEMENT_3D('NONE', #308, #307, #306);
#310 = CIRCLE('NONE', #309, 0.006350000000000008);
#311 = DIRECTION('NONE', (0, 1, 0));
#312 = VECTOR('NONE', #311, 1);
#313 = CARTESIAN_POINT('NONE', (0.09524999999999999, 0, -0.0254));
#314 = LINE('NONE', #313, #312);
#315 = DIRECTION('NONE', (1, 0, -0.0000000000000011189649382048806));
#316 = DIRECTION('NONE', (0, -1, 0));
#317 = CARTESIAN_POINT('NONE', (0.08889999999999998, 0.008923630267041387, -0.025399999999999992));
#318 = AXIS2_PLACEMENT_3D('NONE', #317, #316, #315);
#319 = CIRCLE('NONE', #318, 0.006350000000000008);
#320 = DIRECTION('NONE', (0, 1, 0));
#321 = VECTOR('NONE', #320, 1);
#322 = CARTESIAN_POINT('NONE', (0.111125, 0, -0));
#323 = LINE('NONE', #322, #321);
#324 = DIRECTION('NONE', (-0.000000000000004475859752819553, 0, 1));
#325 = DIRECTION('NONE', (0, 1, -0));
#326 = CARTESIAN_POINT('NONE', (0.11112500000000003, 0.008923630267041387, -0.006349999999999966));
#327 = AXIS2_PLACEMENT_3D('NONE', #326, #325, #324);
#328 = CIRCLE('NONE', #327, 0.006349999999999966);
#329 = DIRECTION('NONE', (0, -1, 0));
#330 = VECTOR('NONE', #329, 1);
#331 = CARTESIAN_POINT('NONE', (0.117475, 0.008923630267041387, -0.00635));
#332 = LINE('NONE', #331, #330);
#333 = DIRECTION('NONE', (1, 0, -0.000000000000005315083456473219));
#334 = DIRECTION('NONE', (0, -1, 0));
#335 = CARTESIAN_POINT('NONE', (0.11112500000000003, -0, -0.006349999999999966));
#336 = AXIS2_PLACEMENT_3D('NONE', #335, #334, #333);
#337 = CIRCLE('NONE', #336, 0.006349999999999966);
#338 = DIRECTION('NONE', (1, 0, 0));
#339 = VECTOR('NONE', #338, 1);
#340 = CARTESIAN_POINT('NONE', (0, 0, -0));
#341 = LINE('NONE', #340, #339);
#342 = DIRECTION('NONE', (-1, 0, 0));
#343 = VECTOR('NONE', #342, 1);
#344 = CARTESIAN_POINT('NONE', (0.11112500000000002, 0.008923630267041387, -0));
#345 = LINE('NONE', #344, #343);
#346 = DIRECTION('NONE', (0, 1, 0));
#347 = VECTOR('NONE', #346, 1);
#348 = CARTESIAN_POINT('NONE', (0.117475, 0, -0.14605));
#349 = LINE('NONE', #348, #347);
#350 = DIRECTION('NONE', (1, 0, 0.000000000000013427579258458719));
#351 = DIRECTION('NONE', (-0, 1, 0));
#352 = CARTESIAN_POINT('NONE', (0.11112500000000006, 0.008923630267041387, -0.1460500000000001));
#353 = AXIS2_PLACEMENT_3D('NONE', #352, #351, #350);
#354 = CIRCLE('NONE', #353, 0.006349999999999937);
#355 = DIRECTION('NONE', (0, -1, 0));
#356 = VECTOR('NONE', #355, 1);
#357 = CARTESIAN_POINT('NONE', (0.111125, 0.008923630267041387, -0.1524));
#358 = LINE('NONE', #357, #356);
#359 = DIRECTION('NONE', (-0.000000000000008951719505639185, 0, -1));
#360 = DIRECTION('NONE', (0, -1, -0));
#361 = CARTESIAN_POINT('NONE', (0.11112500000000006, -0, -0.1460500000000001));
#362 = AXIS2_PLACEMENT_3D('NONE', #361, #360, #359);
#363 = CIRCLE('NONE', #362, 0.006349999999999909);
#364 = DIRECTION('NONE', (0, 0, -1));
#365 = VECTOR('NONE', #364, 1);
#366 = CARTESIAN_POINT('NONE', (0.117475, 0, -0.0063499999999999945));
#367 = LINE('NONE', #366, #365);
#368 = DIRECTION('NONE', (0, 0, 1));
#369 = VECTOR('NONE', #368, 1);
#370 = CARTESIAN_POINT('NONE', (0.117475, 0.008923630267041387, -0.14604999999999993));
#371 = LINE('NONE', #370, #369);
#372 = DIRECTION('NONE', (-1, 0, -0.0000000000000002497689594206972));
#373 = VECTOR('NONE', #372, 1);
#374 = CARTESIAN_POINT('NONE', (0.11112500000001577, 0, -0.15239999999999998));
#375 = LINE('NONE', #374, #373);
#376 = DIRECTION('NONE', (1, -0.000000000000000015610559963793574, 0.0000000000000002497689594206972));
#377 = VECTOR('NONE', #376, 1);
#378 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0.1524));
#379 = LINE('NONE', #378, #377);
#380 = EDGE_CURVE('NONE', #5, #7, #95, .T.);
#381 = EDGE_CURVE('NONE', #9, #11, #99, .T.);
#382 = EDGE_CURVE('NONE', #9, #5, #103, .T.);
#383 = EDGE_CURVE('NONE', #11, #7, #107, .T.);
#384 = EDGE_CURVE('NONE', #13, #13, #112, .T.);
#385 = EDGE_CURVE('NONE', #13, #15, #116, .T.);
#386 = EDGE_CURVE('NONE', #15, #15, #121, .T.);
#387 = EDGE_CURVE('NONE', #17, #17, #126, .T.);
#388 = EDGE_CURVE('NONE', #17, #19, #130, .T.);
#389 = EDGE_CURVE('NONE', #19, #19, #135, .T.);
#390 = EDGE_CURVE('NONE', #21, #23, #139, .T.);
#391 = EDGE_CURVE('NONE', #23, #25, #144, .T.);
#392 = EDGE_CURVE('NONE', #25, #27, #148, .T.);
#393 = EDGE_CURVE('NONE', #27, #21, #153, .T.);
#394 = EDGE_CURVE('NONE', #27, #9, #157, .T.);
#395 = EDGE_CURVE('NONE', #11, #25, #161, .T.);
#396 = EDGE_CURVE('NONE', #29, #31, #165, .T.);
#397 = EDGE_CURVE('NONE', #31, #33, #170, .T.);
#398 = EDGE_CURVE('NONE', #33, #35, #174, .T.);
#399 = EDGE_CURVE('NONE', #35, #29, #179, .T.);
#400 = EDGE_CURVE('NONE', #5, #29, #183, .T.);
#401 = EDGE_CURVE('NONE', #31, #7, #187, .T.);
#402 = EDGE_CURVE('NONE', #35, #21, #191, .T.);
#403 = EDGE_CURVE('NONE', #23, #33, #195, .T.);
#404 = EDGE_CURVE('NONE', #37, #39, #199, .T.);
#405 = EDGE_CURVE('NONE', #39, #41, #203, .T.);
#406 = EDGE_CURVE('NONE', #43, #41, #207, .T.);
#407 = EDGE_CURVE('NONE', #37, #43, #211, .T.);
#408 = EDGE_CURVE('NONE', #39, #45, #216, .T.);
#409 = EDGE_CURVE('NONE', #45, #47, #220, .T.);
#410 = EDGE_CURVE('NONE', #41, #47, #225, .T.);
#411 = EDGE_CURVE('NONE', #45, #49, #229, .T.);
#412 = EDGE_CURVE('NONE', #49, #51, #233, .T.);
#413 = EDGE_CURVE('NONE', #47, #51, #237, .T.);
#414 = EDGE_CURVE('NONE', #49, #37, #242, .T.);
#415 = EDGE_CURVE('NONE', #51, #43, #247, .T.);
#416 = EDGE_CURVE('NONE', #53, #55, #251, .T.);
#417 = EDGE_CURVE('NONE', #57, #59, #255, .T.);
#418 = EDGE_CURVE('NONE', #57, #53, #259, .T.);
#419 = EDGE_CURVE('NONE', #59, #55, #263, .T.);
#420 = EDGE_CURVE('NONE', #61, #61, #268, .T.);
#421 = EDGE_CURVE('NONE', #61, #63, #272, .T.);
#422 = EDGE_CURVE('NONE', #63, #63, #277, .T.);
#423 = EDGE_CURVE('NONE', #65, #65, #282, .T.);
#424 = EDGE_CURVE('NONE', #65, #67, #286, .T.);
#425 = EDGE_CURVE('NONE', #67, #67, #291, .T.);
#426 = EDGE_CURVE('NONE', #69, #69, #296, .T.);
#427 = EDGE_CURVE('NONE', #69, #71, #300, .T.);
#428 = EDGE_CURVE('NONE', #71, #71, #305, .T.);
#429 = EDGE_CURVE('NONE', #73, #73, #310, .T.);
#430 = EDGE_CURVE('NONE', #73, #75, #314, .T.);
#431 = EDGE_CURVE('NONE', #75, #75, #319, .T.);
#432 = EDGE_CURVE('NONE', #77, #79, #323, .T.);
#433 = EDGE_CURVE('NONE', #79, #81, #328, .T.);
#434 = EDGE_CURVE('NONE', #81, #83, #332, .T.);
#435 = EDGE_CURVE('NONE', #83, #77, #337, .T.);
#436 = EDGE_CURVE('NONE', #53, #77, #341, .T.);
#437 = EDGE_CURVE('NONE', #79, #55, #345, .T.);
#438 = EDGE_CURVE('NONE', #85, #87, #349, .T.);
#439 = EDGE_CURVE('NONE', #87, #89, #354, .T.);
#440 = EDGE_CURVE('NONE', #89, #91, #358, .T.);
#441 = EDGE_CURVE('NONE', #91, #85, #363, .T.);
#442 = EDGE_CURVE('NONE', #83, #85, #367, .T.);
#443 = EDGE_CURVE('NONE', #87, #81, #371, .T.);
#444 = EDGE_CURVE('NONE', #91, #57, #375, .T.);
#445 = EDGE_CURVE('NONE', #59, #89, #379, .T.);
#446 = CARTESIAN_POINT('NONE', (-0.013986815133520694, -0.034925000000000025, -0));
#447 = DIRECTION('NONE', (0, 0, 1));
#448 = AXIS2_PLACEMENT_3D('NONE', #446, #447, $);
#449 = PLANE('NONE', #448);
#450 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.06032499999999999, -0.07620000000000002));
#451 = DIRECTION('NONE', (0, -1, 0));
#452 = AXIS2_PLACEMENT_3D('NONE', #450, #451, $);
#453 = PLANE('NONE', #452);
#454 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.03492500000000002, -0.15240000000000004));
#455 = DIRECTION('NONE', (0, -0, -1));
#456 = AXIS2_PLACEMENT_3D('NONE', #454, #455, $);
#457 = PLANE('NONE', #456);
#458 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.009525, -0.0762));
#459 = DIRECTION('NONE', (-0, 1, 0));
#460 = AXIS2_PLACEMENT_3D('NONE', #458, #459, $);
#461 = PLANE('NONE', #460);
#462 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.03810000000000001, -0.025400000000000006));
#463 = DIRECTION('NONE', (-1, 0, -0));
#464 = DIRECTION('NONE', (0, 0.0000000000000011189649382048832, -1));
#465 = AXIS2_PLACEMENT_3D('NONE', #462, #463, #464);
#466 = CYLINDRICAL_SURFACE('NONE', #465, 0.0063499999999999945);
#467 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.03810000000000001, -0.127));
#468 = DIRECTION('NONE', (-1, 0, -0));
#469 = DIRECTION('NONE', (0, 0.0000000000000011189649382048857, -1));
#470 = AXIS2_PLACEMENT_3D('NONE', #467, #468, #469);
#471 = CYLINDRICAL_SURFACE('NONE', #470, 0.00634999999999998);
#472 = CARTESIAN_POINT('NONE', (-0.018448630267041386, 0, -0));
#473 = DIRECTION('NONE', (1, 0, 0));
#474 = AXIS2_PLACEMENT_3D('NONE', #472, #473, $);
#475 = PLANE('NONE', #474);
#476 = CARTESIAN_POINT('NONE', (-0.009525, 0, -0));
#477 = DIRECTION('NONE', (1, 0, 0));
#478 = AXIS2_PLACEMENT_3D('NONE', #476, #477, $);
#479 = PLANE('NONE', #478);
#480 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.053975, -0.14605000000000004));
#481 = DIRECTION('NONE', (1, 0, 0));
#482 = DIRECTION('NONE', (0, -1, 0.000000000000004475859752819533));
#483 = AXIS2_PLACEMENT_3D('NONE', #480, #481, #482);
#484 = CYLINDRICAL_SURFACE('NONE', #483, 0.0063499999999999945);
#485 = CARTESIAN_POINT('NONE', (-0.013986815133520692, -0.05397500000000001, -0.006349999999999988));
#486 = DIRECTION('NONE', (1, 0, -0));
#487 = DIRECTION('NONE', (0, 0.000000000000002237929876409769, 1));
#488 = AXIS2_PLACEMENT_3D('NONE', #485, #486, #487);
#489 = CYLINDRICAL_SURFACE('NONE', #488, 0.006349999999999988);
#490 = CARTESIAN_POINT('NONE', (0, 0.004461815133520694, -0.0762));
#491 = DIRECTION('NONE', (1, -0, 0));
#492 = AXIS2_PLACEMENT_3D('NONE', #490, #491, $);
#493 = PLANE('NONE', #492);
#494 = CARTESIAN_POINT('NONE', (-0.000000000000000003996802888650563, -0.009524999999999997, -0.0762));
#495 = DIRECTION('NONE', (0, 0, 1));
#496 = DIRECTION('NONE', (0.00000000000000021664496663423743, 1, -0));
#497 = AXIS2_PLACEMENT_3D('NONE', #494, #495, #496);
#498 = CYLINDRICAL_SURFACE('NONE', #497, 0.018448630267041383);
#499 = CARTESIAN_POINT('NONE', (-0.013986815133520694, -0.009525, -0.0762));
#500 = DIRECTION('NONE', (0, -1, 0));
#501 = AXIS2_PLACEMENT_3D('NONE', #499, #500, $);
#502 = PLANE('NONE', #501);
#503 = CARTESIAN_POINT('NONE', (-0.0000000000000000004440892098500626, -0.009524999999999999, -0.0762));
#504 = DIRECTION('NONE', (0, -0, -1));
#505 = DIRECTION('NONE', (-1, 0.00000000000000018649415636748036, -0));
#506 = AXIS2_PLACEMENT_3D('NONE', #503, #504, #505);
#507 = CYLINDRICAL_SURFACE('NONE', #506, 0.009525);
#508 = CARTESIAN_POINT('NONE', (0, 0, -0.1524));
#509 = DIRECTION('NONE', (0, 0, 1));
#510 = AXIS2_PLACEMENT_3D('NONE', #508, #509, $);
#511 = PLANE('NONE', #510);
#512 = CARTESIAN_POINT('NONE', (0, 0, -0));
#513 = DIRECTION('NONE', (0, 0, 1));
#514 = AXIS2_PLACEMENT_3D('NONE', #512, #513, $);
#515 = PLANE('NONE', #514);
#516 = CARTESIAN_POINT('NONE', (0.0587375, 0.004461815133520694, -0));
#517 = DIRECTION('NONE', (0, 0, 1));
#518 = AXIS2_PLACEMENT_3D('NONE', #516, #517, $);
#519 = PLANE('NONE', #518);
#520 = CARTESIAN_POINT('NONE', (0.117475, 0.004461815133520694, -0.07620000000000002));
#521 = DIRECTION('NONE', (1, 0, 0));
#522 = AXIS2_PLACEMENT_3D('NONE', #520, #521, $);
#523 = PLANE('NONE', #522);
#524 = CARTESIAN_POINT('NONE', (0.05873749999999999, 0.004461815133520693, -0.15239999999999998));
#525 = DIRECTION('NONE', (0, -0, -1));
#526 = AXIS2_PLACEMENT_3D('NONE', #524, #525, $);
#527 = PLANE('NONE', #526);
#528 = CARTESIAN_POINT('NONE', (0, 0.004461815133520694, -0.0762));
#529 = DIRECTION('NONE', (-1, 0, 0));
#530 = AXIS2_PLACEMENT_3D('NONE', #528, #529, $);
#531 = PLANE('NONE', #530);
#532 = CARTESIAN_POINT('NONE', (0.0254, 0.004461815133520694, -0.0254));
#533 = DIRECTION('NONE', (0, -1, 0));
#534 = DIRECTION('NONE', (1, 0, -0));
#535 = AXIS2_PLACEMENT_3D('NONE', #532, #533, #534);
#536 = CYLINDRICAL_SURFACE('NONE', #535, 0.0063500000000000015);
#537 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.004461815133520694, -0.127));
#538 = DIRECTION('NONE', (0, -1, 0));
#539 = DIRECTION('NONE', (1, 0, 0.0000000000000022379298764097663));
#540 = AXIS2_PLACEMENT_3D('NONE', #537, #538, #539);
#541 = CYLINDRICAL_SURFACE('NONE', #540, 0.0063499999999999945);
#542 = CARTESIAN_POINT('NONE', (0.025399999999999992, 0.004461815133520694, -0.127));
#543 = DIRECTION('NONE', (0, -1, 0));
#544 = DIRECTION('NONE', (1, 0, 0.000000000000002237929876409761));
#545 = AXIS2_PLACEMENT_3D('NONE', #542, #543, #544);
#546 = CYLINDRICAL_SURFACE('NONE', #545, 0.006350000000000008);
#547 = CARTESIAN_POINT('NONE', (0.08889999999999998, 0.004461815133520694, -0.025399999999999992));
#548 = DIRECTION('NONE', (0, -1, 0));
#549 = DIRECTION('NONE', (1, 0, -0.0000000000000011189649382048806));
#550 = AXIS2_PLACEMENT_3D('NONE', #547, #548, #549);
#551 = CYLINDRICAL_SURFACE('NONE', #550, 0.006350000000000008);
#552 = CARTESIAN_POINT('NONE', (0, 0, -0));
#553 = DIRECTION('NONE', (0, 1, 0));
#554 = AXIS2_PLACEMENT_3D('NONE', #552, #553, $);
#555 = PLANE('NONE', #554);
#556 = CARTESIAN_POINT('NONE', (0, 0.008923630267041387, -0));
#557 = DIRECTION('NONE', (0, 1, 0));
#558 = AXIS2_PLACEMENT_3D('NONE', #556, #557, $);
#559 = PLANE('NONE', #558);
#560 = CARTESIAN_POINT('NONE', (0.11112500000000003, 0.004461815133520694, -0.006349999999999966));
#561 = DIRECTION('NONE', (0, 1, -0));
#562 = DIRECTION('NONE', (-0.000000000000004475859752819553, 0, 1));
#563 = AXIS2_PLACEMENT_3D('NONE', #560, #561, #562);
#564 = CYLINDRICAL_SURFACE('NONE', #563, 0.006349999999999966);
#565 = CARTESIAN_POINT('NONE', (0.11112500000000006, 0.004461815133520694, -0.1460500000000001));
#566 = DIRECTION('NONE', (-0, 1, 0));
#567 = DIRECTION('NONE', (1, 0, 0.000000000000013427579258458719));
#568 = AXIS2_PLACEMENT_3D('NONE', #565, #566, #567);
#569 = CYLINDRICAL_SURFACE('NONE', #568, 0.006349999999999937);
#570 = ORIENTED_EDGE('NONE', *, *, #400, .T.);
#571 = ORIENTED_EDGE('NONE', *, *, #396, .T.);
#572 = ORIENTED_EDGE('NONE', *, *, #401, .T.);
#573 = ORIENTED_EDGE('NONE', *, *, #380, .F.);
#574 = EDGE_LOOP('NONE', (#570, #571, #572, #573));
#575 = FACE_BOUND('NONE', #574, .T.);
#576 = ADVANCED_FACE('NONE', (#575), #449, .T.);
#577 = ORIENTED_EDGE('NONE', *, *, #402, .T.);
#578 = ORIENTED_EDGE('NONE', *, *, #390, .T.);
#579 = ORIENTED_EDGE('NONE', *, *, #403, .T.);
#580 = ORIENTED_EDGE('NONE', *, *, #398, .T.);
#581 = EDGE_LOOP('NONE', (#577, #578, #579, #580));
#582 = FACE_BOUND('NONE', #581, .T.);
#583 = ADVANCED_FACE('NONE', (#582), #453, .T.);
#584 = ORIENTED_EDGE('NONE', *, *, #394, .T.);
#585 = ORIENTED_EDGE('NONE', *, *, #381, .T.);
#586 = ORIENTED_EDGE('NONE', *, *, #395, .T.);
#587 = ORIENTED_EDGE('NONE', *, *, #392, .T.);
#588 = EDGE_LOOP('NONE', (#584, #585, #586, #587));
#589 = FACE_BOUND('NONE', #588, .T.);
#590 = ADVANCED_FACE('NONE', (#589), #457, .T.);
#591 = ORIENTED_EDGE('NONE', *, *, #382, .T.);
#592 = ORIENTED_EDGE('NONE', *, *, #380, .T.);
#593 = ORIENTED_EDGE('NONE', *, *, #383, .F.);
#594 = ORIENTED_EDGE('NONE', *, *, #381, .F.);
#595 = EDGE_LOOP('NONE', (#591, #592, #593, #594));
#596 = FACE_BOUND('NONE', #595, .T.);
#597 = ADVANCED_FACE('NONE', (#596), #461, .T.);
#598 = ORIENTED_EDGE('NONE', *, *, #384, .T.);
#599 = ORIENTED_EDGE('NONE', *, *, #386, .F.);
#600 = EDGE_LOOP('NONE', (#598));
#601 = FACE_BOUND('NONE', #600, .T.);
#602 = EDGE_LOOP('NONE', (#599));
#603 = FACE_BOUND('NONE', #602, .T.);
#604 = ADVANCED_FACE('NONE', (#601, #603), #466, .F.);
#605 = ORIENTED_EDGE('NONE', *, *, #387, .T.);
#606 = ORIENTED_EDGE('NONE', *, *, #389, .F.);
#607 = EDGE_LOOP('NONE', (#605));
#608 = FACE_BOUND('NONE', #607, .T.);
#609 = EDGE_LOOP('NONE', (#606));
#610 = FACE_BOUND('NONE', #609, .T.);
#611 = ADVANCED_FACE('NONE', (#608, #610), #471, .F.);
#612 = ORIENTED_EDGE('NONE', *, *, #382, .F.);
#613 = ORIENTED_EDGE('NONE', *, *, #394, .F.);
#614 = ORIENTED_EDGE('NONE', *, *, #393, .T.);
#615 = ORIENTED_EDGE('NONE', *, *, #402, .F.);
#616 = ORIENTED_EDGE('NONE', *, *, #399, .T.);
#617 = ORIENTED_EDGE('NONE', *, *, #400, .F.);
#618 = ORIENTED_EDGE('NONE', *, *, #384, .F.);
#619 = ORIENTED_EDGE('NONE', *, *, #387, .F.);
#620 = EDGE_LOOP('NONE', (#612, #613, #614, #615, #616, #617));
#621 = FACE_BOUND('NONE', #620, .T.);
#622 = EDGE_LOOP('NONE', (#618));
#623 = FACE_BOUND('NONE', #622, .T.);
#624 = EDGE_LOOP('NONE', (#619));
#625 = FACE_BOUND('NONE', #624, .T.);
#626 = ADVANCED_FACE('NONE', (#621, #623, #625), #475, .F.);
#627 = ORIENTED_EDGE('NONE', *, *, #401, .F.);
#628 = ORIENTED_EDGE('NONE', *, *, #397, .T.);
#629 = ORIENTED_EDGE('NONE', *, *, #403, .F.);
#630 = ORIENTED_EDGE('NONE', *, *, #391, .T.);
#631 = ORIENTED_EDGE('NONE', *, *, #395, .F.);
#632 = ORIENTED_EDGE('NONE', *, *, #383, .T.);
#633 = ORIENTED_EDGE('NONE', *, *, #386, .T.);
#634 = ORIENTED_EDGE('NONE', *, *, #389, .T.);
#635 = EDGE_LOOP('NONE', (#627, #628, #629, #630, #631, #632));
#636 = FACE_BOUND('NONE', #635, .T.);
#637 = EDGE_LOOP('NONE', (#633));
#638 = FACE_BOUND('NONE', #637, .T.);
#639 = EDGE_LOOP('NONE', (#634));
#640 = FACE_BOUND('NONE', #639, .T.);
#641 = ADVANCED_FACE('NONE', (#636, #638, #640), #479, .T.);
#642 = ORIENTED_EDGE('NONE', *, *, #393, .F.);
#643 = ORIENTED_EDGE('NONE', *, *, #392, .F.);
#644 = ORIENTED_EDGE('NONE', *, *, #391, .F.);
#645 = ORIENTED_EDGE('NONE', *, *, #390, .F.);
#646 = EDGE_LOOP('NONE', (#642, #643, #644, #645));
#647 = FACE_BOUND('NONE', #646, .T.);
#648 = ADVANCED_FACE('NONE', (#647), #484, .T.);
#649 = ORIENTED_EDGE('NONE', *, *, #399, .F.);
#650 = ORIENTED_EDGE('NONE', *, *, #398, .F.);
#651 = ORIENTED_EDGE('NONE', *, *, #397, .F.);
#652 = ORIENTED_EDGE('NONE', *, *, #396, .F.);
#653 = EDGE_LOOP('NONE', (#649, #650, #651, #652));
#654 = FACE_BOUND('NONE', #653, .T.);
#655 = ADVANCED_FACE('NONE', (#654), #489, .T.);
#656 = ORIENTED_EDGE('NONE', *, *, #404, .T.);
#657 = ORIENTED_EDGE('NONE', *, *, #405, .T.);
#658 = ORIENTED_EDGE('NONE', *, *, #406, .F.);
#659 = ORIENTED_EDGE('NONE', *, *, #407, .F.);
#660 = EDGE_LOOP('NONE', (#656, #657, #658, #659));
#661 = FACE_BOUND('NONE', #660, .T.);
#662 = ADVANCED_FACE('NONE', (#661), #493, .T.);
#663 = ORIENTED_EDGE('NONE', *, *, #408, .T.);
#664 = ORIENTED_EDGE('NONE', *, *, #409, .T.);
#665 = ORIENTED_EDGE('NONE', *, *, #410, .F.);
#666 = ORIENTED_EDGE('NONE', *, *, #405, .F.);
#667 = EDGE_LOOP('NONE', (#663, #664, #665, #666));
#668 = FACE_BOUND('NONE', #667, .T.);
#669 = ADVANCED_FACE('NONE', (#668), #498, .T.);
#670 = ORIENTED_EDGE('NONE', *, *, #411, .T.);
#671 = ORIENTED_EDGE('NONE', *, *, #412, .T.);
#672 = ORIENTED_EDGE('NONE', *, *, #413, .F.);
#673 = ORIENTED_EDGE('NONE', *, *, #409, .F.);
#674 = EDGE_LOOP('NONE', (#670, #671, #672, #673));
#675 = FACE_BOUND('NONE', #674, .T.);
#676 = ADVANCED_FACE('NONE', (#675), #502, .T.);
#677 = ORIENTED_EDGE('NONE', *, *, #414, .T.);
#678 = ORIENTED_EDGE('NONE', *, *, #407, .T.);
#679 = ORIENTED_EDGE('NONE', *, *, #415, .F.);
#680 = ORIENTED_EDGE('NONE', *, *, #412, .F.);
#681 = EDGE_LOOP('NONE', (#677, #678, #679, #680));
#682 = FACE_BOUND('NONE', #681, .T.);
#683 = ADVANCED_FACE('NONE', (#682), #507, .F.);
#684 = ORIENTED_EDGE('NONE', *, *, #414, .F.);
#685 = ORIENTED_EDGE('NONE', *, *, #411, .F.);
#686 = ORIENTED_EDGE('NONE', *, *, #408, .F.);
#687 = ORIENTED_EDGE('NONE', *, *, #404, .F.);
#688 = EDGE_LOOP('NONE', (#684, #685, #686, #687));
#689 = FACE_BOUND('NONE', #688, .T.);
#690 = ADVANCED_FACE('NONE', (#689), #511, .F.);
#691 = ORIENTED_EDGE('NONE', *, *, #406, .T.);
#692 = ORIENTED_EDGE('NONE', *, *, #410, .T.);
#693 = ORIENTED_EDGE('NONE', *, *, #413, .T.);
#694 = ORIENTED_EDGE('NONE', *, *, #415, .T.);
#695 = EDGE_LOOP('NONE', (#691, #692, #693, #694));
#696 = FACE_BOUND('NONE', #695, .T.);
#697 = ADVANCED_FACE('NONE', (#696), #515, .T.);
#698 = ORIENTED_EDGE('NONE', *, *, #436, .T.);
#699 = ORIENTED_EDGE('NONE', *, *, #432, .T.);
#700 = ORIENTED_EDGE('NONE', *, *, #437, .T.);
#701 = ORIENTED_EDGE('NONE', *, *, #416, .F.);
#702 = EDGE_LOOP('NONE', (#698, #699, #700, #701));
#703 = FACE_BOUND('NONE', #702, .T.);
#704 = ADVANCED_FACE('NONE', (#703), #519, .T.);
#705 = ORIENTED_EDGE('NONE', *, *, #442, .T.);
#706 = ORIENTED_EDGE('NONE', *, *, #438, .T.);
#707 = ORIENTED_EDGE('NONE', *, *, #443, .T.);
#708 = ORIENTED_EDGE('NONE', *, *, #434, .T.);
#709 = EDGE_LOOP('NONE', (#705, #706, #707, #708));
#710 = FACE_BOUND('NONE', #709, .T.);
#711 = ADVANCED_FACE('NONE', (#710), #523, .T.);
#712 = ORIENTED_EDGE('NONE', *, *, #444, .T.);
#713 = ORIENTED_EDGE('NONE', *, *, #417, .T.);
#714 = ORIENTED_EDGE('NONE', *, *, #445, .T.);
#715 = ORIENTED_EDGE('NONE', *, *, #440, .T.);
#716 = EDGE_LOOP('NONE', (#712, #713, #714, #715));
#717 = FACE_BOUND('NONE', #716, .T.);
#718 = ADVANCED_FACE('NONE', (#717), #527, .T.);
#719 = ORIENTED_EDGE('NONE', *, *, #418, .T.);
#720 = ORIENTED_EDGE('NONE', *, *, #416, .T.);
#721 = ORIENTED_EDGE('NONE', *, *, #419, .F.);
#722 = ORIENTED_EDGE('NONE', *, *, #417, .F.);
#723 = EDGE_LOOP('NONE', (#719, #720, #721, #722));
#724 = FACE_BOUND('NONE', #723, .T.);
#725 = ADVANCED_FACE('NONE', (#724), #531, .T.);
#726 = ORIENTED_EDGE('NONE', *, *, #420, .T.);
#727 = ORIENTED_EDGE('NONE', *, *, #422, .F.);
#728 = EDGE_LOOP('NONE', (#726));
#729 = FACE_BOUND('NONE', #728, .T.);
#730 = EDGE_LOOP('NONE', (#727));
#731 = FACE_BOUND('NONE', #730, .T.);
#732 = ADVANCED_FACE('NONE', (#729, #731), #536, .F.);
#733 = ORIENTED_EDGE('NONE', *, *, #423, .T.);
#734 = ORIENTED_EDGE('NONE', *, *, #425, .F.);
#735 = EDGE_LOOP('NONE', (#733));
#736 = FACE_BOUND('NONE', #735, .T.);
#737 = EDGE_LOOP('NONE', (#734));
#738 = FACE_BOUND('NONE', #737, .T.);
#739 = ADVANCED_FACE('NONE', (#736, #738), #541, .F.);
#740 = ORIENTED_EDGE('NONE', *, *, #426, .T.);
#741 = ORIENTED_EDGE('NONE', *, *, #428, .F.);
#742 = EDGE_LOOP('NONE', (#740));
#743 = FACE_BOUND('NONE', #742, .T.);
#744 = EDGE_LOOP('NONE', (#741));
#745 = FACE_BOUND('NONE', #744, .T.);
#746 = ADVANCED_FACE('NONE', (#743, #745), #546, .F.);
#747 = ORIENTED_EDGE('NONE', *, *, #429, .T.);
#748 = ORIENTED_EDGE('NONE', *, *, #431, .F.);
#749 = EDGE_LOOP('NONE', (#747));
#750 = FACE_BOUND('NONE', #749, .T.);
#751 = EDGE_LOOP('NONE', (#748));
#752 = FACE_BOUND('NONE', #751, .T.);
#753 = ADVANCED_FACE('NONE', (#750, #752), #551, .F.);
#754 = ORIENTED_EDGE('NONE', *, *, #418, .F.);
#755 = ORIENTED_EDGE('NONE', *, *, #444, .F.);
#756 = ORIENTED_EDGE('NONE', *, *, #441, .T.);
#757 = ORIENTED_EDGE('NONE', *, *, #442, .F.);
#758 = ORIENTED_EDGE('NONE', *, *, #435, .T.);
#759 = ORIENTED_EDGE('NONE', *, *, #436, .F.);
#760 = ORIENTED_EDGE('NONE', *, *, #420, .F.);
#761 = ORIENTED_EDGE('NONE', *, *, #423, .F.);
#762 = ORIENTED_EDGE('NONE', *, *, #426, .F.);
#763 = ORIENTED_EDGE('NONE', *, *, #429, .F.);
#764 = EDGE_LOOP('NONE', (#754, #755, #756, #757, #758, #759));
#765 = FACE_BOUND('NONE', #764, .T.);
#766 = EDGE_LOOP('NONE', (#760));
#767 = FACE_BOUND('NONE', #766, .T.);
#768 = EDGE_LOOP('NONE', (#761));
#769 = FACE_BOUND('NONE', #768, .T.);
#770 = EDGE_LOOP('NONE', (#762));
#771 = FACE_BOUND('NONE', #770, .T.);
#772 = EDGE_LOOP('NONE', (#763));
#773 = FACE_BOUND('NONE', #772, .T.);
#774 = ADVANCED_FACE('NONE', (#765, #767, #769, #771, #773), #555, .F.);
#775 = ORIENTED_EDGE('NONE', *, *, #437, .F.);
#776 = ORIENTED_EDGE('NONE', *, *, #433, .T.);
#777 = ORIENTED_EDGE('NONE', *, *, #443, .F.);
#778 = ORIENTED_EDGE('NONE', *, *, #439, .T.);
#779 = ORIENTED_EDGE('NONE', *, *, #445, .F.);
#780 = ORIENTED_EDGE('NONE', *, *, #419, .T.);
#781 = ORIENTED_EDGE('NONE', *, *, #422, .T.);
#782 = ORIENTED_EDGE('NONE', *, *, #425, .T.);
#783 = ORIENTED_EDGE('NONE', *, *, #428, .T.);
#784 = ORIENTED_EDGE('NONE', *, *, #431, .T.);
#785 = EDGE_LOOP('NONE', (#775, #776, #777, #778, #779, #780));
#786 = FACE_BOUND('NONE', #785, .T.);
#787 = EDGE_LOOP('NONE', (#781));
#788 = FACE_BOUND('NONE', #787, .T.);
#789 = EDGE_LOOP('NONE', (#782));
#790 = FACE_BOUND('NONE', #789, .T.);
#791 = EDGE_LOOP('NONE', (#783));
#792 = FACE_BOUND('NONE', #791, .T.);
#793 = EDGE_LOOP('NONE', (#784));
#794 = FACE_BOUND('NONE', #793, .T.);
#795 = ADVANCED_FACE('NONE', (#786, #788, #790, #792, #794), #559, .T.);
#796 = ORIENTED_EDGE('NONE', *, *, #435, .F.);
#797 = ORIENTED_EDGE('NONE', *, *, #434, .F.);
#798 = ORIENTED_EDGE('NONE', *, *, #433, .F.);
#799 = ORIENTED_EDGE('NONE', *, *, #432, .F.);
#800 = EDGE_LOOP('NONE', (#796, #797, #798, #799));
#801 = FACE_BOUND('NONE', #800, .T.);
#802 = ADVANCED_FACE('NONE', (#801), #564, .T.);
#803 = ORIENTED_EDGE('NONE', *, *, #441, .F.);
#804 = ORIENTED_EDGE('NONE', *, *, #440, .F.);
#805 = ORIENTED_EDGE('NONE', *, *, #439, .F.);
#806 = ORIENTED_EDGE('NONE', *, *, #438, .F.);
#807 = EDGE_LOOP('NONE', (#803, #804, #805, #806));
#808 = FACE_BOUND('NONE', #807, .T.);
#809 = ADVANCED_FACE('NONE', (#808), #569, .T.);
#810 = CLOSED_SHELL('NONE', (#576, #583, #590, #597, #604, #611, #626, #641, #648, #655));
#811 = CLOSED_SHELL('NONE', (#662, #669, #676, #683, #690, #697));
#812 = CLOSED_SHELL('NONE', (#704, #711, #718, #725, #732, #739, #746, #753, #774, #795, #802, #809));
#813 = MANIFOLD_SOLID_BREP('NONE', #810);
#814 = MANIFOLD_SOLID_BREP('NONE', #811);
#815 = MANIFOLD_SOLID_BREP('NONE', #812);
#816 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#817 = PRODUCT_DEFINITION_CONTEXT('part definition', #816, 'design');
#818 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#819 = PRODUCT_DEFINITION_FORMATION('', $, #818);
#820 = PRODUCT_DEFINITION('design', $, #819, #817);
#821 = PRODUCT_DEFINITION_SHAPE('NONE', $, #820);
#822 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#815), #3);
#823 = SHAPE_DEFINITION_REPRESENTATION(#821, #822);
#824 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#825 = PRODUCT_DEFINITION_FORMATION('', $, #824);
#826 = PRODUCT_DEFINITION('design', $, #825, #817);
#827 = PRODUCT_DEFINITION_SHAPE('NONE', $, #826);
#828 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#814), #3);
#829 = SHAPE_DEFINITION_REPRESENTATION(#827, #828);
#830 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#831 = PRODUCT_DEFINITION_FORMATION('', $, #830);
#832 = PRODUCT_DEFINITION('design', $, #831, #817);
#833 = PRODUCT_DEFINITION_SHAPE('NONE', $, #832);
#834 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#813), #3);
#835 = SHAPE_DEFINITION_REPRESENTATION(#833, #834);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file bracket.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file car-wheel-assembly.kcl
extension: step
snapshot_kind: binary
---

View File

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

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file color-cube.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,438 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (-0.005453276451528909, 0.0381, 0.012954763484649197));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0.011810999999999999, 0, 0.00762));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0.0007904803266815055, 0, 0.013982699999999999));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (-0.012407746826993343, 0, 0.006362700000000004));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (-0.012407746826993356, 0, -0.006362699999999989));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.0007904803266814893, 0, -0.013982699999999994));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.011810999999999978, 0, -0.007619999999999995));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.0037719, 0, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (0.0037719, 0.0381, -0));
#31 = VERTEX_POINT('NONE', #30);
#32 = DIRECTION('NONE', (0.9848077530122081, 0, -0.1736481776669303));
#33 = DIRECTION('NONE', (0, -1.0000000000000002, 0));
#34 = CARTESIAN_POINT('NONE', (0.0020509586264241156, 0.0381, 0.011631564370827189));
#35 = AXIS2_PLACEMENT_3D('NONE', #34, #33, #32);
#36 = CIRCLE('NONE', #35, 0.0076199999999999974);
#37 = CARTESIAN_POINT('NONE', (-0.005453276451528909, 0.0381, 0.012954763484649197));
#38 = CARTESIAN_POINT('NONE', (0.005120556889498097, 0.01905, 0.016571064486824057));
#39 = CARTESIAN_POINT('NONE', (0.011810999999999999, -0, 0.00762));
#40 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#37, #38, #39), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#41 = DIRECTION('NONE', (-0.0000000000000006993530863780513, 0, 1));
#42 = DIRECTION('NONE', (0, 1, -0));
#43 = CARTESIAN_POINT('NONE', (0.011811000000000004, -0, -0.0000000000000000012560739669470206));
#44 = AXIS2_PLACEMENT_3D('NONE', #43, #42, #41);
#45 = CIRCLE('NONE', #44, 0.007620000000000001);
#46 = DIRECTION('NONE', (0.9848077530122081, 0, -0.17364817766692983));
#47 = DIRECTION('NONE', (0, 1, 0));
#48 = CARTESIAN_POINT('NONE', (-0.01798534903171045, 0.0381, 0.015164506004731943));
#49 = AXIS2_PLACEMENT_3D('NONE', #48, #47, #46);
#50 = CIRCLE('NONE', #49, 0.01272539999999999);
#51 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#52 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891665));
#53 = CARTESIAN_POINT('NONE', (0.0007904803266815055, -0, 0.013982699999999999));
#54 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#51, #52, #53), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#55 = DIRECTION('NONE', (-0.8660254037844387, 0, -0.5000000000000001));
#56 = DIRECTION('NONE', (0, -1, -0));
#57 = CARTESIAN_POINT('NONE', (0.011810999999999999, -0, 0.0203454));
#58 = AXIS2_PLACEMENT_3D('NONE', #57, #56, #55);
#59 = CIRCLE('NONE', #58, 0.012725399999999994);
#60 = DIRECTION('NONE', (-0.34202014332566877, 0.0000000000000009324707818374018, 0.9396926207859084));
#61 = DIRECTION('NONE', (-0.0000000000000011951597032420997, -1, 0.0000000000000005573121223400466));
#62 = CARTESIAN_POINT('NONE', (-0.011026812407692394, 0.038099999999999995, -0.003953916242205668));
#63 = AXIS2_PLACEMENT_3D('NONE', #62, #61, #60);
#64 = CIRCLE('NONE', #63, 0.00762);
#65 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#66 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202));
#67 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#68 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#65, #66, #67), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#69 = DIRECTION('NONE', (-0.8660254037844387, 0, -0.49999999999999967));
#70 = DIRECTION('NONE', (0, 1, 0));
#71 = CARTESIAN_POINT('NONE', (-0.005808633250155917, -0, 0.010172700000000003));
#72 = AXIS2_PLACEMENT_3D('NONE', #71, #70, #69);
#73 = CIRCLE('NONE', #72, 0.007620000000000003);
#74 = DIRECTION('NONE', (-0.3420201433256678, 0, 0.9396926207859089));
#75 = DIRECTION('NONE', (0, 1.0000000000000002, -0));
#76 = CARTESIAN_POINT('NONE', (-0.004068275783674349, 0.0381, -0.023072338489143286));
#77 = AXIS2_PLACEMENT_3D('NONE', #76, #75, #74);
#78 = CIRCLE('NONE', #77, 0.012725399999999994);
#79 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#80 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532));
#81 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#82 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#79, #80, #81), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#83 = DIRECTION('NONE', (0.8660254037844382, 0, -0.5000000000000007));
#84 = DIRECTION('NONE', (0, -0.9999999999999998, 0));
#85 = CARTESIAN_POINT('NONE', (-0.023428266500311844, -0, 0.00000000000000001687538997430238));
#86 = AXIS2_PLACEMENT_3D('NONE', #85, #84, #83);
#87 = CIRCLE('NONE', #86, 0.012725399999999994);
#88 = DIRECTION('NONE', (-0.6427876096865395, 0, -0.766044443118978));
#89 = DIRECTION('NONE', (0, -1.0000000000000002, -0));
#90 = CARTESIAN_POINT('NONE', (0.009009495250442175, 0.0381, -0.0074868578761104415));
#91 = AXIS2_PLACEMENT_3D('NONE', #90, #89, #88);
#92 = CIRCLE('NONE', #91, 0.007620000000000001);
#93 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#94 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439));
#95 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#96 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#93, #94, #95), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#97 = DIRECTION('NONE', (0.8660254037844388, -0, -0.49999999999999956));
#98 = DIRECTION('NONE', (0, 0.9999999999999999, 0));
#99 = CARTESIAN_POINT('NONE', (-0.005808633250155936, 0, -0.010172699999999996));
#100 = AXIS2_PLACEMENT_3D('NONE', #99, #98, #97);
#101 = CIRCLE('NONE', #100, 0.007620000000000001);
#102 = DIRECTION('NONE', (-0.6427876096865413, 0, -0.7660444431189763));
#103 = DIRECTION('NONE', (0, 0.9999999999999999, 0));
#104 = CARTESIAN_POINT('NONE', (0.022087266284558753, 0.0381, 0.008098622736922445));
#105 = AXIS2_PLACEMENT_3D('NONE', #104, #103, #102);
#106 = CIRCLE('NONE', #105, 0.012725400000000064);
#107 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#108 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961));
#109 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995));
#110 = (
BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#107, #108, #109), .UNSPECIFIED., .F., .F.)
B_SPLINE_CURVE_WITH_KNOTS((3, 3), (-1, -0), .UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE')
);
#111 = DIRECTION('NONE', (-0.000000000000002373054384915535, 0, 1));
#112 = DIRECTION('NONE', (-0, -1, 0));
#113 = CARTESIAN_POINT('NONE', (0.011811000000000009, -0, -0.02034540000000004));
#114 = AXIS2_PLACEMENT_3D('NONE', #113, #112, #111);
#115 = CIRCLE('NONE', #114, 0.012725400000000046);
#116 = DIRECTION('NONE', (0, 1, -0));
#117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (0.0037719, -0, 0));
#119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (1, 0, -0));
#121 = DIRECTION('NONE', (0, 1, 0));
#122 = CARTESIAN_POINT('NONE', (0, 0, -0));
#123 = AXIS2_PLACEMENT_3D('NONE', #122, #121, #120);
#124 = CIRCLE('NONE', #123, 0.0037719);
#125 = DIRECTION('NONE', (1, 0, -0));
#126 = DIRECTION('NONE', (0, 1, 0));
#127 = CARTESIAN_POINT('NONE', (-0, 0.0381, 0));
#128 = AXIS2_PLACEMENT_3D('NONE', #127, #126, #125);
#129 = CIRCLE('NONE', #128, 0.0037719);
#130 = EDGE_CURVE('NONE', #25, #5, #36, .T.);
#131 = EDGE_CURVE('NONE', #5, #7, #40, .T.);
#132 = EDGE_CURVE('NONE', #7, #27, #45, .T.);
#133 = EDGE_CURVE('NONE', #5, #9, #50, .T.);
#134 = EDGE_CURVE('NONE', #9, #11, #54, .T.);
#135 = EDGE_CURVE('NONE', #11, #7, #59, .T.);
#136 = EDGE_CURVE('NONE', #9, #13, #64, .T.);
#137 = EDGE_CURVE('NONE', #13, #15, #68, .T.);
#138 = EDGE_CURVE('NONE', #15, #11, #73, .T.);
#139 = EDGE_CURVE('NONE', #13, #17, #78, .T.);
#140 = EDGE_CURVE('NONE', #17, #19, #82, .T.);
#141 = EDGE_CURVE('NONE', #19, #15, #87, .T.);
#142 = EDGE_CURVE('NONE', #17, #21, #92, .T.);
#143 = EDGE_CURVE('NONE', #21, #23, #96, .T.);
#144 = EDGE_CURVE('NONE', #23, #19, #101, .T.);
#145 = EDGE_CURVE('NONE', #21, #25, #106, .T.);
#146 = EDGE_CURVE('NONE', #25, #27, #110, .T.);
#147 = EDGE_CURVE('NONE', #27, #23, #115, .T.);
#148 = EDGE_CURVE('NONE', #29, #31, #119, .T.);
#149 = EDGE_CURVE('NONE', #29, #29, #124, .T.);
#150 = EDGE_CURVE('NONE', #31, #31, #129, .T.);
#151 = CARTESIAN_POINT('NONE', (0.011811000000000004, -0, -0.00762));
#152 = CARTESIAN_POINT('NONE', (0.019430999999999997, -0, -0.0076199999999999974));
#153 = CARTESIAN_POINT('NONE', (0.019431000000000004, -0, 0));
#154 = CARTESIAN_POINT('NONE', (0.019431, -0, 0.007619999999999997));
#155 = CARTESIAN_POINT('NONE', (0.011810999999999999, -0, 0.00762));
#156 = CARTESIAN_POINT('NONE', (0.017208488154790792, 0.01905, 0.0021652289743796143));
#157 = CARTESIAN_POINT('NONE', (0.024411405911013005, 0.019049999999999997, 0.00820919460702596));
#158 = CARTESIAN_POINT('NONE', (0.018367440278366662, 0.01905, 0.01541211236324818));
#159 = CARTESIAN_POINT('NONE', (0.012323474645720315, 0.019049999999999997, 0.022615030119470393));
#160 = CARTESIAN_POINT('NONE', (0.005120556889498097, 0.01905, 0.016571064486824057));
#161 = CARTESIAN_POINT('NONE', (0.009555193704377138, 0.0381, 0.01030836525700518));
#162 = CARTESIAN_POINT('NONE', (0.01087839281819915, 0.0381, 0.0178126003349582));
#163 = CARTESIAN_POINT('NONE', (0.0033741577402461253, 0.0381, 0.019135799448780213));
#164 = CARTESIAN_POINT('NONE', (-0.0041300773377069, 0.0381, 0.02045899856260222));
#165 = CARTESIAN_POINT('NONE', (-0.005453276451528909, 0.0381, 0.012954763484649197));
#166 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#151, #152, #153, #154, #155), (#156, #157, #158, #159, #160), (#161, #162, #163, #164, #165)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 2, 3), (0, 1), (0, 0.5, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.7071067811865478, 1, 0.7071067811865478, 1), (1, 0.7071067811865477, 1, 0.7071067811865477, 1), (1, 0.7071067811865476, 1, 0.7071067811865476, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#167 = CARTESIAN_POINT('NONE', (0.011810999999999999, -0, 0.00762));
#168 = CARTESIAN_POINT('NONE', (0.004463986884454334, -0, 0.007620000000000003));
#169 = CARTESIAN_POINT('NONE', (0.0007904803266815055, -0, 0.013982699999999999));
#170 = CARTESIAN_POINT('NONE', (0.005120556889498097, 0.01905, 0.016571064486824057));
#171 = CARTESIAN_POINT('NONE', (-0.0018243159746963167, 0.01905, 0.010743624227905427));
#172 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891665));
#173 = CARTESIAN_POINT('NONE', (-0.005453276451528909, 0.0381, 0.012954763484649197));
#174 = CARTESIAN_POINT('NONE', (-0.006729071890338448, 0.0381, 0.0057193680069774515));
#175 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#176 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#167, #168, #169), (#170, #171, #172), (#173, #174, #175)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 3), (0, 1), (0, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.8660254037844387, 1), (1, 0.8660254037844384, 1), (1, 0.8660254037844387, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#177 = CARTESIAN_POINT('NONE', (0.0007904803266815029, -0, 0.013982700000000004));
#178 = CARTESIAN_POINT('NONE', (-0.0030195196733185, -0, 0.02058181357683743));
#179 = CARTESIAN_POINT('NONE', (-0.009618633250155922, -0, 0.01677181357683742));
#180 = CARTESIAN_POINT('NONE', (-0.01621774682699334, -0, 0.012961813576837417));
#181 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#182 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891662));
#183 = CARTESIAN_POINT('NONE', (-0.01917915036563614, 0.01905, 0.017060267366826944));
#184 = CARTESIAN_POINT('NONE', (-0.02239507730757142, 0.01905, 0.008224580711244014));
#185 = CARTESIAN_POINT('NONE', (-0.025611004249506707, 0.01905, -0.000611105944338923));
#186 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202));
#187 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#188 = CARTESIAN_POINT('NONE', (-0.020793463670222608, 0.0381, 0.0006003480360413621));
#189 = CARTESIAN_POINT('NONE', (-0.018187270178081014, 0.0381, -0.00656010973434726));
#190 = CARTESIAN_POINT('NONE', (-0.015581076685939419, 0.0381, -0.013720567504735885));
#191 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#192 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#177, #178, #179, #180, #181), (#182, #183, #184, #185, #186), (#187, #188, #189, #190, #191)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 2, 3), (0, 1), (0, 0.5000000000000001, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.7071067811865476, 1, 0.7071067811865476, 1), (1, 0.7071067811865475, 1, 0.7071067811865475, 1), (1, 0.7071067811865475, 1, 0.7071067811865475, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#193 = CARTESIAN_POINT('NONE', (-0.012407746826993344, -0, 0.006362700000000004));
#194 = CARTESIAN_POINT('NONE', (-0.00873424026922052, -0, -0.000000000000000004726054498244314));
#195 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#196 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274204));
#197 = CARTESIAN_POINT('NONE', (-0.008256169858566881, 0.019050000000000004, -0.006927749083260438));
#198 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532));
#199 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#200 = CARTESIAN_POINT('NONE', (-0.0015166849060552505, 0.0381, -0.008601547533799802));
#201 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#202 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#193, #194, #195), (#196, #197, #198), (#199, #200, #201)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 3), (0, 1), (0, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.8660254037844387, 1), (1, 0.8660254037844386, 1), (1, 0.8660254037844387, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#203 = CARTESIAN_POINT('NONE', (-0.012407746826993355, -0, -0.006362699999999989));
#204 = CARTESIAN_POINT('NONE', (-0.016217746826993354, -0, -0.012961813576837412));
#205 = CARTESIAN_POINT('NONE', (-0.009618633250155937, -0, -0.01677181357683742));
#206 = CARTESIAN_POINT('NONE', (-0.003019519673318509, -0, -0.020581813576837412));
#207 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#208 = CARTESIAN_POINT('NONE', (-0.006681894987404382, 0.01905, -0.01585590553916532));
#209 = CARTESIAN_POINT('NONE', (-0.0050491260880436714, 0.019049999999999997, -0.02511579811374694));
#210 = CARTESIAN_POINT('NONE', (0.0042107664865379535, 0.01905, -0.02348302921438623));
#211 = CARTESIAN_POINT('NONE', (0.01347065906111957, 0.019049999999999997, -0.02185026031502552));
#212 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439));
#213 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#214 = CARTESIAN_POINT('NONE', (0.009948712321197359, 0.0381, -0.018222158118488478));
#215 = CARTESIAN_POINT('NONE', (0.014846753907008787, 0.0381, -0.012384899461921867));
#216 = CARTESIAN_POINT('NONE', (0.019744795492820214, 0.0381, -0.006547640805355253));
#217 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#218 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#203, #204, #205, #206, #207), (#208, #209, #210, #211, #212), (#213, #214, #215, #216, #217)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 2, 3), (0, 1), (0, 0.49999999999999994, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.7071067811865475, 1, 0.7071067811865475, 1), (1, 0.7071067811865477, 1, 0.7071067811865477, 1), (1, 0.7071067811865476, 1, 0.7071067811865476, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#219 = CARTESIAN_POINT('NONE', (0.0007904803266814876, -0, -0.013982699999999994));
#220 = CARTESIAN_POINT('NONE', (0.0044639868844543245, -0, -0.007620000000000015));
#221 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995));
#222 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439));
#223 = CARTESIAN_POINT('NONE', (0.010263615290596393, 0.019049999999999994, -0.0036622112845390324));
#224 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961));
#225 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#226 = CARTESIAN_POINT('NONE', (0.00827939826556762, 0.038099999999999995, 0.0030729697793334247));
#227 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#228 = (
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2, 2, ((#219, #220, #221), (#222, #223, #224), (#225, #226, #227)), .UNSPECIFIED., .F., .F., .F.)
B_SPLINE_SURFACE_WITH_KNOTS((3, 3), (3, 3), (0, 1), (0, 1), .UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1, 0.8660254037844402, 1), (1, 0.86602540378444, 1), (1, 0.8660254037844403, 1)))
REPRESENTATION_ITEM('NONE')
SURFACE()
);
#229 = CARTESIAN_POINT('NONE', (0, 0, -0));
#230 = DIRECTION('NONE', (0, 1, 0));
#231 = AXIS2_PLACEMENT_3D('NONE', #229, #230, $);
#232 = PLANE('NONE', #231);
#233 = CARTESIAN_POINT('NONE', (0, 0.0381, -0));
#234 = DIRECTION('NONE', (0, 1, 0));
#235 = AXIS2_PLACEMENT_3D('NONE', #233, #234, $);
#236 = PLANE('NONE', #235);
#237 = CARTESIAN_POINT('NONE', (-0.0000000000000000001570092458683775, 0.01905, -0.00000000000000000015700924586837753));
#238 = DIRECTION('NONE', (-0, 1, 0));
#239 = DIRECTION('NONE', (1, 0, 0.00000000000000004162603618027453));
#240 = AXIS2_PLACEMENT_3D('NONE', #237, #238, #239);
#241 = CYLINDRICAL_SURFACE('NONE', #240, 0.0037719000000000003);
#242 = ORIENTED_EDGE('NONE', *, *, #146, .F.);
#243 = ORIENTED_EDGE('NONE', *, *, #130, .T.);
#244 = ORIENTED_EDGE('NONE', *, *, #131, .T.);
#245 = ORIENTED_EDGE('NONE', *, *, #132, .T.);
#246 = EDGE_LOOP('NONE', (#242, #243, #244, #245));
#247 = FACE_BOUND('NONE', #246, .T.);
#248 = ADVANCED_FACE('NONE', (#247), #166, .T.);
#249 = ORIENTED_EDGE('NONE', *, *, #131, .F.);
#250 = ORIENTED_EDGE('NONE', *, *, #133, .T.);
#251 = ORIENTED_EDGE('NONE', *, *, #134, .T.);
#252 = ORIENTED_EDGE('NONE', *, *, #135, .T.);
#253 = EDGE_LOOP('NONE', (#249, #250, #251, #252));
#254 = FACE_BOUND('NONE', #253, .T.);
#255 = ADVANCED_FACE('NONE', (#254), #176, .T.);
#256 = ORIENTED_EDGE('NONE', *, *, #134, .F.);
#257 = ORIENTED_EDGE('NONE', *, *, #136, .T.);
#258 = ORIENTED_EDGE('NONE', *, *, #137, .T.);
#259 = ORIENTED_EDGE('NONE', *, *, #138, .T.);
#260 = EDGE_LOOP('NONE', (#256, #257, #258, #259));
#261 = FACE_BOUND('NONE', #260, .T.);
#262 = ADVANCED_FACE('NONE', (#261), #192, .T.);
#263 = ORIENTED_EDGE('NONE', *, *, #137, .F.);
#264 = ORIENTED_EDGE('NONE', *, *, #139, .T.);
#265 = ORIENTED_EDGE('NONE', *, *, #140, .T.);
#266 = ORIENTED_EDGE('NONE', *, *, #141, .T.);
#267 = EDGE_LOOP('NONE', (#263, #264, #265, #266));
#268 = FACE_BOUND('NONE', #267, .T.);
#269 = ADVANCED_FACE('NONE', (#268), #202, .T.);
#270 = ORIENTED_EDGE('NONE', *, *, #140, .F.);
#271 = ORIENTED_EDGE('NONE', *, *, #142, .T.);
#272 = ORIENTED_EDGE('NONE', *, *, #143, .T.);
#273 = ORIENTED_EDGE('NONE', *, *, #144, .T.);
#274 = EDGE_LOOP('NONE', (#270, #271, #272, #273));
#275 = FACE_BOUND('NONE', #274, .T.);
#276 = ADVANCED_FACE('NONE', (#275), #218, .T.);
#277 = ORIENTED_EDGE('NONE', *, *, #143, .F.);
#278 = ORIENTED_EDGE('NONE', *, *, #145, .T.);
#279 = ORIENTED_EDGE('NONE', *, *, #146, .T.);
#280 = ORIENTED_EDGE('NONE', *, *, #147, .T.);
#281 = EDGE_LOOP('NONE', (#277, #278, #279, #280));
#282 = FACE_BOUND('NONE', #281, .T.);
#283 = ADVANCED_FACE('NONE', (#282), #228, .T.);
#284 = ORIENTED_EDGE('NONE', *, *, #132, .F.);
#285 = ORIENTED_EDGE('NONE', *, *, #135, .F.);
#286 = ORIENTED_EDGE('NONE', *, *, #138, .F.);
#287 = ORIENTED_EDGE('NONE', *, *, #141, .F.);
#288 = ORIENTED_EDGE('NONE', *, *, #144, .F.);
#289 = ORIENTED_EDGE('NONE', *, *, #147, .F.);
#290 = ORIENTED_EDGE('NONE', *, *, #149, .T.);
#291 = EDGE_LOOP('NONE', (#284, #285, #286, #287, #288, #289));
#292 = FACE_BOUND('NONE', #291, .T.);
#293 = EDGE_LOOP('NONE', (#290));
#294 = FACE_BOUND('NONE', #293, .T.);
#295 = ADVANCED_FACE('NONE', (#292, #294), #232, .F.);
#296 = ORIENTED_EDGE('NONE', *, *, #145, .F.);
#297 = ORIENTED_EDGE('NONE', *, *, #142, .F.);
#298 = ORIENTED_EDGE('NONE', *, *, #139, .F.);
#299 = ORIENTED_EDGE('NONE', *, *, #136, .F.);
#300 = ORIENTED_EDGE('NONE', *, *, #133, .F.);
#301 = ORIENTED_EDGE('NONE', *, *, #130, .F.);
#302 = ORIENTED_EDGE('NONE', *, *, #150, .F.);
#303 = EDGE_LOOP('NONE', (#296, #297, #298, #299, #300, #301));
#304 = FACE_BOUND('NONE', #303, .T.);
#305 = EDGE_LOOP('NONE', (#302));
#306 = FACE_BOUND('NONE', #305, .T.);
#307 = ADVANCED_FACE('NONE', (#304, #306), #236, .T.);
#308 = ORIENTED_EDGE('NONE', *, *, #150, .T.);
#309 = ORIENTED_EDGE('NONE', *, *, #149, .F.);
#310 = EDGE_LOOP('NONE', (#308));
#311 = FACE_BOUND('NONE', #310, .T.);
#312 = EDGE_LOOP('NONE', (#309));
#313 = FACE_BOUND('NONE', #312, .T.);
#314 = ADVANCED_FACE('NONE', (#311, #313), #241, .F.);
#315 = CLOSED_SHELL('NONE', (#248, #255, #262, #269, #276, #283, #295, #307, #314));
#316 = MANIFOLD_SOLID_BREP('NONE', #315);
#317 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#318 = PRODUCT_DEFINITION_CONTEXT('part definition', #317, 'design');
#319 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#320 = PRODUCT_DEFINITION_FORMATION('', $, #319);
#321 = PRODUCT_DEFINITION('design', $, #320, #318);
#322 = PRODUCT_DEFINITION_SHAPE('NONE', $, #321);
#323 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#316), #3);
#324 = SHAPE_DEFINITION_REPRESENTATION(#322, #323);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file cycloidal-gear.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file dodecahedron.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file enclosure.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file exhaust-manifold.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,467 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (0.03175, -0.001524, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0.03175, 0, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0.015875, -0.001524, 0.000000000000000003888253587292846));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.0293751, 0.015875, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.0293751, 0.019126199999999996, -0));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (0.015875, 0.019126199999999996, 0.000000000000000003888253587292846));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.0587375, 0, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.0587375, 0.015875, -0));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.0523875, 0, 0.000000000000000001944126793646423));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.0523875, 0.015875, 0.000000000000000001944126793646423));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.0000000000000000051519360031630214, 0, -0.0523875));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (0.0000000000000000051519360031630214, 0.015875, -0.0523875));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (-0.0523875, 0, -0.00000000000000000835974521267962));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (-0.0523875, 0.015875, -0.00000000000000000835974521267962));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (-0.000000000000000009623427628549794, 0, 0.0523875));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (-0.000000000000000009623427628549794, 0.015875, 0.0523875));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#43 = VERTEX_POINT('NONE', #42);
#44 = DIRECTION('NONE', (1, 0, -0));
#45 = DIRECTION('NONE', (0, 1, 0));
#46 = CARTESIAN_POINT('NONE', (-0, -0.001524, 0));
#47 = AXIS2_PLACEMENT_3D('NONE', #46, #45, #44);
#48 = CIRCLE('NONE', #47, 0.03175);
#49 = DIRECTION('NONE', (0, 1, 0));
#50 = VECTOR('NONE', #49, 1);
#51 = CARTESIAN_POINT('NONE', (0.03175, -0.001524, -0));
#52 = LINE('NONE', #51, #50);
#53 = DIRECTION('NONE', (1, 0, -0));
#54 = DIRECTION('NONE', (0, 1, 0));
#55 = CARTESIAN_POINT('NONE', (-0, 0, 0));
#56 = AXIS2_PLACEMENT_3D('NONE', #55, #54, #53);
#57 = CIRCLE('NONE', #56, 0.03175);
#58 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#59 = DIRECTION('NONE', (0, -1, 0));
#60 = CARTESIAN_POINT('NONE', (0, -0.001524, -0));
#61 = AXIS2_PLACEMENT_3D('NONE', #60, #59, #58);
#62 = CIRCLE('NONE', #61, 0.015875);
#63 = DIRECTION('NONE', (0, 1, 0));
#64 = VECTOR('NONE', #63, 1);
#65 = CARTESIAN_POINT('NONE', (0.015875, -0.001524, 0.000000000000000003888253587292846));
#66 = LINE('NONE', #65, #64);
#67 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#68 = DIRECTION('NONE', (0, -1, 0));
#69 = CARTESIAN_POINT('NONE', (0, -0, -0));
#70 = AXIS2_PLACEMENT_3D('NONE', #69, #68, #67);
#71 = CIRCLE('NONE', #70, 0.015875);
#72 = DIRECTION('NONE', (1, 0, -0));
#73 = DIRECTION('NONE', (0, 1, 0));
#74 = CARTESIAN_POINT('NONE', (-0, 0.015875, 0));
#75 = AXIS2_PLACEMENT_3D('NONE', #74, #73, #72);
#76 = CIRCLE('NONE', #75, 0.0293751);
#77 = DIRECTION('NONE', (0, 1, 0));
#78 = VECTOR('NONE', #77, 1);
#79 = CARTESIAN_POINT('NONE', (0.0293751, 0.015875, -0));
#80 = LINE('NONE', #79, #78);
#81 = DIRECTION('NONE', (1, 0, -0));
#82 = DIRECTION('NONE', (0, 1, 0));
#83 = CARTESIAN_POINT('NONE', (-0, 0.019126199999999996, 0));
#84 = AXIS2_PLACEMENT_3D('NONE', #83, #82, #81);
#85 = CIRCLE('NONE', #84, 0.0293751);
#86 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#87 = DIRECTION('NONE', (0, -1, 0));
#88 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#89 = AXIS2_PLACEMENT_3D('NONE', #88, #87, #86);
#90 = CIRCLE('NONE', #89, 0.015875);
#91 = DIRECTION('NONE', (0, 1, 0));
#92 = VECTOR('NONE', #91, 1);
#93 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#94 = LINE('NONE', #93, #92);
#95 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#96 = DIRECTION('NONE', (0, -1, 0));
#97 = CARTESIAN_POINT('NONE', (0, 0.019126199999999996, -0));
#98 = AXIS2_PLACEMENT_3D('NONE', #97, #96, #95);
#99 = CIRCLE('NONE', #98, 0.015875);
#100 = DIRECTION('NONE', (1, 0, -0));
#101 = DIRECTION('NONE', (0, 1, 0));
#102 = CARTESIAN_POINT('NONE', (-0, 0, 0));
#103 = AXIS2_PLACEMENT_3D('NONE', #102, #101, #100);
#104 = CIRCLE('NONE', #103, 0.0587375);
#105 = DIRECTION('NONE', (0, 1, 0));
#106 = VECTOR('NONE', #105, 1);
#107 = CARTESIAN_POINT('NONE', (0.0587375, 0, -0));
#108 = LINE('NONE', #107, #106);
#109 = DIRECTION('NONE', (1, 0, -0));
#110 = DIRECTION('NONE', (0, 1, 0));
#111 = CARTESIAN_POINT('NONE', (-0, 0.015875, 0));
#112 = AXIS2_PLACEMENT_3D('NONE', #111, #110, #109);
#113 = CIRCLE('NONE', #112, 0.0587375);
#114 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#115 = DIRECTION('NONE', (0, -1, 0));
#116 = CARTESIAN_POINT('NONE', (0.044449999999999996, -0, 0.000000000000000005024295867788081));
#117 = AXIS2_PLACEMENT_3D('NONE', #116, #115, #114);
#118 = CIRCLE('NONE', #117, 0.0079375);
#119 = DIRECTION('NONE', (0, 1, 0));
#120 = VECTOR('NONE', #119, 1);
#121 = CARTESIAN_POINT('NONE', (0.0523875, 0, 0.000000000000000001944126793646423));
#122 = LINE('NONE', #121, #120);
#123 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#124 = DIRECTION('NONE', (0, -1, 0));
#125 = CARTESIAN_POINT('NONE', (0.044449999999999996, 0.015875, 0.000000000000000005024295867788081));
#126 = AXIS2_PLACEMENT_3D('NONE', #125, #124, #123);
#127 = CIRCLE('NONE', #126, 0.0079375);
#128 = DIRECTION('NONE', (0.000000000000000016080646976370378, 0, -1));
#129 = DIRECTION('NONE', (0, -1, 0));
#130 = CARTESIAN_POINT('NONE', (0.000000000000000005024295867788082, -0, -0.044449999999999996));
#131 = AXIS2_PLACEMENT_3D('NONE', #130, #129, #128);
#132 = CIRCLE('NONE', #131, 0.0079375);
#133 = DIRECTION('NONE', (0, 1, 0));
#134 = VECTOR('NONE', #133, 1);
#135 = CARTESIAN_POINT('NONE', (0.0000000000000000051519360031630214, 0, -0.0523875));
#136 = LINE('NONE', #135, #134);
#137 = DIRECTION('NONE', (0.000000000000000016080646976370378, 0, -1));
#138 = DIRECTION('NONE', (0, -1, 0));
#139 = CARTESIAN_POINT('NONE', (0.000000000000000005024295867788082, 0.015875, -0.044449999999999996));
#140 = AXIS2_PLACEMENT_3D('NONE', #139, #138, #137);
#141 = CIRCLE('NONE', #140, 0.0079375);
#142 = DIRECTION('NONE', (-1, 0, 0.00000000000000021276806587672974));
#143 = DIRECTION('NONE', (-0, -1, 0));
#144 = CARTESIAN_POINT('NONE', (-0.04444999999999999, -0, -0.000000000000000010048591735576163));
#145 = AXIS2_PLACEMENT_3D('NONE', #144, #143, #142);
#146 = CIRCLE('NONE', #145, 0.007937500000000007);
#147 = DIRECTION('NONE', (0, 1, 0));
#148 = VECTOR('NONE', #147, 1);
#149 = CARTESIAN_POINT('NONE', (-0.0523875, 0, -0.00000000000000000835974521267962));
#150 = LINE('NONE', #149, #148);
#151 = DIRECTION('NONE', (-1, 0, 0.00000000000000021276806587672974));
#152 = DIRECTION('NONE', (-0, -1, 0));
#153 = CARTESIAN_POINT('NONE', (-0.04444999999999999, 0.015875, -0.000000000000000010048591735576163));
#154 = AXIS2_PLACEMENT_3D('NONE', #153, #152, #151);
#155 = CIRCLE('NONE', #154, 0.007937500000000007);
#156 = DIRECTION('NONE', (0.000000000000000053563981987573816, 0, 1));
#157 = DIRECTION('NONE', (0, -1, 0));
#158 = CARTESIAN_POINT('NONE', (-0.000000000000000010048591735576162, -0, 0.04444999999999999));
#159 = AXIS2_PLACEMENT_3D('NONE', #158, #157, #156);
#160 = CIRCLE('NONE', #159, 0.007937500000000007);
#161 = DIRECTION('NONE', (0, 1, 0));
#162 = VECTOR('NONE', #161, 1);
#163 = CARTESIAN_POINT('NONE', (-0.000000000000000009623427628549794, 0, 0.0523875));
#164 = LINE('NONE', #163, #162);
#165 = DIRECTION('NONE', (0.000000000000000053563981987573816, 0, 1));
#166 = DIRECTION('NONE', (0, -1, 0));
#167 = CARTESIAN_POINT('NONE', (-0.000000000000000010048591735576162, 0.015875, 0.04444999999999999));
#168 = AXIS2_PLACEMENT_3D('NONE', #167, #166, #165);
#169 = CIRCLE('NONE', #168, 0.007937500000000007);
#170 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#171 = DIRECTION('NONE', (0, -1, 0));
#172 = CARTESIAN_POINT('NONE', (0, -0, -0));
#173 = AXIS2_PLACEMENT_3D('NONE', #172, #171, #170);
#174 = CIRCLE('NONE', #173, 0.015875);
#175 = DIRECTION('NONE', (0, 1, 0));
#176 = VECTOR('NONE', #175, 1);
#177 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#178 = LINE('NONE', #177, #176);
#179 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#180 = DIRECTION('NONE', (0, -1, 0));
#181 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#182 = AXIS2_PLACEMENT_3D('NONE', #181, #180, #179);
#183 = CIRCLE('NONE', #182, 0.015875);
#184 = EDGE_CURVE('NONE', #5, #5, #48, .T.);
#185 = EDGE_CURVE('NONE', #5, #7, #52, .T.);
#186 = EDGE_CURVE('NONE', #7, #7, #57, .T.);
#187 = EDGE_CURVE('NONE', #9, #9, #62, .T.);
#188 = EDGE_CURVE('NONE', #9, #11, #66, .T.);
#189 = EDGE_CURVE('NONE', #11, #11, #71, .T.);
#190 = EDGE_CURVE('NONE', #13, #13, #76, .T.);
#191 = EDGE_CURVE('NONE', #13, #15, #80, .T.);
#192 = EDGE_CURVE('NONE', #15, #15, #85, .T.);
#193 = EDGE_CURVE('NONE', #17, #17, #90, .T.);
#194 = EDGE_CURVE('NONE', #17, #19, #94, .T.);
#195 = EDGE_CURVE('NONE', #19, #19, #99, .T.);
#196 = EDGE_CURVE('NONE', #21, #21, #104, .T.);
#197 = EDGE_CURVE('NONE', #21, #23, #108, .T.);
#198 = EDGE_CURVE('NONE', #23, #23, #113, .T.);
#199 = EDGE_CURVE('NONE', #25, #25, #118, .T.);
#200 = EDGE_CURVE('NONE', #25, #27, #122, .T.);
#201 = EDGE_CURVE('NONE', #27, #27, #127, .T.);
#202 = EDGE_CURVE('NONE', #29, #29, #132, .T.);
#203 = EDGE_CURVE('NONE', #29, #31, #136, .T.);
#204 = EDGE_CURVE('NONE', #31, #31, #141, .T.);
#205 = EDGE_CURVE('NONE', #33, #33, #146, .T.);
#206 = EDGE_CURVE('NONE', #33, #35, #150, .T.);
#207 = EDGE_CURVE('NONE', #35, #35, #155, .T.);
#208 = EDGE_CURVE('NONE', #37, #37, #160, .T.);
#209 = EDGE_CURVE('NONE', #37, #39, #164, .T.);
#210 = EDGE_CURVE('NONE', #39, #39, #169, .T.);
#211 = EDGE_CURVE('NONE', #41, #41, #174, .T.);
#212 = EDGE_CURVE('NONE', #41, #43, #178, .T.);
#213 = EDGE_CURVE('NONE', #43, #43, #183, .T.);
#214 = CARTESIAN_POINT('NONE', (-0, -0.000762, 0));
#215 = DIRECTION('NONE', (0, 1, 0));
#216 = DIRECTION('NONE', (1, 0, -0));
#217 = AXIS2_PLACEMENT_3D('NONE', #214, #215, #216);
#218 = CYLINDRICAL_SURFACE('NONE', #217, 0.03175);
#219 = CARTESIAN_POINT('NONE', (0, -0.000762, -0));
#220 = DIRECTION('NONE', (0, -1, 0));
#221 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#222 = AXIS2_PLACEMENT_3D('NONE', #219, #220, #221);
#223 = CYLINDRICAL_SURFACE('NONE', #222, 0.015875);
#224 = CARTESIAN_POINT('NONE', (0, -0.001524, -0));
#225 = DIRECTION('NONE', (0, 1, 0));
#226 = AXIS2_PLACEMENT_3D('NONE', #224, #225, $);
#227 = PLANE('NONE', #226);
#228 = CARTESIAN_POINT('NONE', (0, 0, -0));
#229 = DIRECTION('NONE', (0, 1, 0));
#230 = AXIS2_PLACEMENT_3D('NONE', #228, #229, $);
#231 = PLANE('NONE', #230);
#232 = CARTESIAN_POINT('NONE', (-0, 0.017500599999999998, 0));
#233 = DIRECTION('NONE', (0, 1, 0));
#234 = DIRECTION('NONE', (1, 0, -0));
#235 = AXIS2_PLACEMENT_3D('NONE', #232, #233, #234);
#236 = CYLINDRICAL_SURFACE('NONE', #235, 0.0293751);
#237 = CARTESIAN_POINT('NONE', (0, 0.017500599999999998, -0));
#238 = DIRECTION('NONE', (0, -1, 0));
#239 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#240 = AXIS2_PLACEMENT_3D('NONE', #237, #238, #239);
#241 = CYLINDRICAL_SURFACE('NONE', #240, 0.015875);
#242 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#243 = DIRECTION('NONE', (0, 1, 0));
#244 = AXIS2_PLACEMENT_3D('NONE', #242, #243, $);
#245 = PLANE('NONE', #244);
#246 = CARTESIAN_POINT('NONE', (0, 0.019126199999999996, -0));
#247 = DIRECTION('NONE', (0, 1, 0));
#248 = AXIS2_PLACEMENT_3D('NONE', #246, #247, $);
#249 = PLANE('NONE', #248);
#250 = CARTESIAN_POINT('NONE', (-0, 0.0079375, 0));
#251 = DIRECTION('NONE', (0, 1, 0));
#252 = DIRECTION('NONE', (1, 0, -0));
#253 = AXIS2_PLACEMENT_3D('NONE', #250, #251, #252);
#254 = CYLINDRICAL_SURFACE('NONE', #253, 0.0587375);
#255 = CARTESIAN_POINT('NONE', (0.044449999999999996, 0.0079375, 0.000000000000000005024295867788081));
#256 = DIRECTION('NONE', (0, -1, 0));
#257 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#258 = AXIS2_PLACEMENT_3D('NONE', #255, #256, #257);
#259 = CYLINDRICAL_SURFACE('NONE', #258, 0.0079375);
#260 = CARTESIAN_POINT('NONE', (0.000000000000000005024295867788082, 0.0079375, -0.044449999999999996));
#261 = DIRECTION('NONE', (0, -1, 0));
#262 = DIRECTION('NONE', (0.000000000000000016080646976370378, 0, -1));
#263 = AXIS2_PLACEMENT_3D('NONE', #260, #261, #262);
#264 = CYLINDRICAL_SURFACE('NONE', #263, 0.0079375);
#265 = CARTESIAN_POINT('NONE', (-0.04444999999999999, 0.0079375, -0.000000000000000010048591735576163));
#266 = DIRECTION('NONE', (-0, -1, 0));
#267 = DIRECTION('NONE', (-1, 0, 0.00000000000000021276806587672974));
#268 = AXIS2_PLACEMENT_3D('NONE', #265, #266, #267);
#269 = CYLINDRICAL_SURFACE('NONE', #268, 0.007937500000000007);
#270 = CARTESIAN_POINT('NONE', (-0.000000000000000010048591735576162, 0.0079375, 0.04444999999999999));
#271 = DIRECTION('NONE', (0, -1, 0));
#272 = DIRECTION('NONE', (0.000000000000000053563981987573816, 0, 1));
#273 = AXIS2_PLACEMENT_3D('NONE', #270, #271, #272);
#274 = CYLINDRICAL_SURFACE('NONE', #273, 0.007937500000000007);
#275 = CARTESIAN_POINT('NONE', (0, 0.0079375, -0));
#276 = DIRECTION('NONE', (0, -1, 0));
#277 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#278 = AXIS2_PLACEMENT_3D('NONE', #275, #276, #277);
#279 = CYLINDRICAL_SURFACE('NONE', #278, 0.015875);
#280 = CARTESIAN_POINT('NONE', (0, 0, -0));
#281 = DIRECTION('NONE', (0, 1, 0));
#282 = AXIS2_PLACEMENT_3D('NONE', #280, #281, $);
#283 = PLANE('NONE', #282);
#284 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#285 = DIRECTION('NONE', (0, 1, 0));
#286 = AXIS2_PLACEMENT_3D('NONE', #284, #285, $);
#287 = PLANE('NONE', #286);
#288 = ORIENTED_EDGE('NONE', *, *, #184, .T.);
#289 = ORIENTED_EDGE('NONE', *, *, #186, .F.);
#290 = EDGE_LOOP('NONE', (#288));
#291 = FACE_BOUND('NONE', #290, .T.);
#292 = EDGE_LOOP('NONE', (#289));
#293 = FACE_BOUND('NONE', #292, .T.);
#294 = ADVANCED_FACE('NONE', (#291, #293), #218, .T.);
#295 = ORIENTED_EDGE('NONE', *, *, #187, .T.);
#296 = ORIENTED_EDGE('NONE', *, *, #189, .F.);
#297 = EDGE_LOOP('NONE', (#295));
#298 = FACE_BOUND('NONE', #297, .T.);
#299 = EDGE_LOOP('NONE', (#296));
#300 = FACE_BOUND('NONE', #299, .T.);
#301 = ADVANCED_FACE('NONE', (#298, #300), #223, .F.);
#302 = ORIENTED_EDGE('NONE', *, *, #184, .F.);
#303 = ORIENTED_EDGE('NONE', *, *, #187, .F.);
#304 = EDGE_LOOP('NONE', (#302));
#305 = FACE_BOUND('NONE', #304, .T.);
#306 = EDGE_LOOP('NONE', (#303));
#307 = FACE_BOUND('NONE', #306, .T.);
#308 = ADVANCED_FACE('NONE', (#305, #307), #227, .F.);
#309 = ORIENTED_EDGE('NONE', *, *, #186, .T.);
#310 = ORIENTED_EDGE('NONE', *, *, #189, .T.);
#311 = EDGE_LOOP('NONE', (#309));
#312 = FACE_BOUND('NONE', #311, .T.);
#313 = EDGE_LOOP('NONE', (#310));
#314 = FACE_BOUND('NONE', #313, .T.);
#315 = ADVANCED_FACE('NONE', (#312, #314), #231, .T.);
#316 = ORIENTED_EDGE('NONE', *, *, #190, .T.);
#317 = ORIENTED_EDGE('NONE', *, *, #192, .F.);
#318 = EDGE_LOOP('NONE', (#316));
#319 = FACE_BOUND('NONE', #318, .T.);
#320 = EDGE_LOOP('NONE', (#317));
#321 = FACE_BOUND('NONE', #320, .T.);
#322 = ADVANCED_FACE('NONE', (#319, #321), #236, .T.);
#323 = ORIENTED_EDGE('NONE', *, *, #193, .T.);
#324 = ORIENTED_EDGE('NONE', *, *, #195, .F.);
#325 = EDGE_LOOP('NONE', (#323));
#326 = FACE_BOUND('NONE', #325, .T.);
#327 = EDGE_LOOP('NONE', (#324));
#328 = FACE_BOUND('NONE', #327, .T.);
#329 = ADVANCED_FACE('NONE', (#326, #328), #241, .F.);
#330 = ORIENTED_EDGE('NONE', *, *, #190, .F.);
#331 = ORIENTED_EDGE('NONE', *, *, #193, .F.);
#332 = EDGE_LOOP('NONE', (#330));
#333 = FACE_BOUND('NONE', #332, .T.);
#334 = EDGE_LOOP('NONE', (#331));
#335 = FACE_BOUND('NONE', #334, .T.);
#336 = ADVANCED_FACE('NONE', (#333, #335), #245, .F.);
#337 = ORIENTED_EDGE('NONE', *, *, #192, .T.);
#338 = ORIENTED_EDGE('NONE', *, *, #195, .T.);
#339 = EDGE_LOOP('NONE', (#337));
#340 = FACE_BOUND('NONE', #339, .T.);
#341 = EDGE_LOOP('NONE', (#338));
#342 = FACE_BOUND('NONE', #341, .T.);
#343 = ADVANCED_FACE('NONE', (#340, #342), #249, .T.);
#344 = ORIENTED_EDGE('NONE', *, *, #196, .T.);
#345 = ORIENTED_EDGE('NONE', *, *, #198, .F.);
#346 = EDGE_LOOP('NONE', (#344));
#347 = FACE_BOUND('NONE', #346, .T.);
#348 = EDGE_LOOP('NONE', (#345));
#349 = FACE_BOUND('NONE', #348, .T.);
#350 = ADVANCED_FACE('NONE', (#347, #349), #254, .T.);
#351 = ORIENTED_EDGE('NONE', *, *, #199, .T.);
#352 = ORIENTED_EDGE('NONE', *, *, #201, .F.);
#353 = EDGE_LOOP('NONE', (#351));
#354 = FACE_BOUND('NONE', #353, .T.);
#355 = EDGE_LOOP('NONE', (#352));
#356 = FACE_BOUND('NONE', #355, .T.);
#357 = ADVANCED_FACE('NONE', (#354, #356), #259, .F.);
#358 = ORIENTED_EDGE('NONE', *, *, #202, .T.);
#359 = ORIENTED_EDGE('NONE', *, *, #204, .F.);
#360 = EDGE_LOOP('NONE', (#358));
#361 = FACE_BOUND('NONE', #360, .T.);
#362 = EDGE_LOOP('NONE', (#359));
#363 = FACE_BOUND('NONE', #362, .T.);
#364 = ADVANCED_FACE('NONE', (#361, #363), #264, .F.);
#365 = ORIENTED_EDGE('NONE', *, *, #205, .T.);
#366 = ORIENTED_EDGE('NONE', *, *, #207, .F.);
#367 = EDGE_LOOP('NONE', (#365));
#368 = FACE_BOUND('NONE', #367, .T.);
#369 = EDGE_LOOP('NONE', (#366));
#370 = FACE_BOUND('NONE', #369, .T.);
#371 = ADVANCED_FACE('NONE', (#368, #370), #269, .F.);
#372 = ORIENTED_EDGE('NONE', *, *, #208, .T.);
#373 = ORIENTED_EDGE('NONE', *, *, #210, .F.);
#374 = EDGE_LOOP('NONE', (#372));
#375 = FACE_BOUND('NONE', #374, .T.);
#376 = EDGE_LOOP('NONE', (#373));
#377 = FACE_BOUND('NONE', #376, .T.);
#378 = ADVANCED_FACE('NONE', (#375, #377), #274, .F.);
#379 = ORIENTED_EDGE('NONE', *, *, #211, .T.);
#380 = ORIENTED_EDGE('NONE', *, *, #213, .F.);
#381 = EDGE_LOOP('NONE', (#379));
#382 = FACE_BOUND('NONE', #381, .T.);
#383 = EDGE_LOOP('NONE', (#380));
#384 = FACE_BOUND('NONE', #383, .T.);
#385 = ADVANCED_FACE('NONE', (#382, #384), #279, .F.);
#386 = ORIENTED_EDGE('NONE', *, *, #196, .F.);
#387 = ORIENTED_EDGE('NONE', *, *, #199, .F.);
#388 = ORIENTED_EDGE('NONE', *, *, #202, .F.);
#389 = ORIENTED_EDGE('NONE', *, *, #205, .F.);
#390 = ORIENTED_EDGE('NONE', *, *, #208, .F.);
#391 = ORIENTED_EDGE('NONE', *, *, #211, .F.);
#392 = EDGE_LOOP('NONE', (#386));
#393 = FACE_BOUND('NONE', #392, .T.);
#394 = EDGE_LOOP('NONE', (#387));
#395 = FACE_BOUND('NONE', #394, .T.);
#396 = EDGE_LOOP('NONE', (#388));
#397 = FACE_BOUND('NONE', #396, .T.);
#398 = EDGE_LOOP('NONE', (#389));
#399 = FACE_BOUND('NONE', #398, .T.);
#400 = EDGE_LOOP('NONE', (#390));
#401 = FACE_BOUND('NONE', #400, .T.);
#402 = EDGE_LOOP('NONE', (#391));
#403 = FACE_BOUND('NONE', #402, .T.);
#404 = ADVANCED_FACE('NONE', (#393, #395, #397, #399, #401, #403), #283, .F.);
#405 = ORIENTED_EDGE('NONE', *, *, #198, .T.);
#406 = ORIENTED_EDGE('NONE', *, *, #201, .T.);
#407 = ORIENTED_EDGE('NONE', *, *, #204, .T.);
#408 = ORIENTED_EDGE('NONE', *, *, #207, .T.);
#409 = ORIENTED_EDGE('NONE', *, *, #210, .T.);
#410 = ORIENTED_EDGE('NONE', *, *, #213, .T.);
#411 = EDGE_LOOP('NONE', (#405));
#412 = FACE_BOUND('NONE', #411, .T.);
#413 = EDGE_LOOP('NONE', (#406));
#414 = FACE_BOUND('NONE', #413, .T.);
#415 = EDGE_LOOP('NONE', (#407));
#416 = FACE_BOUND('NONE', #415, .T.);
#417 = EDGE_LOOP('NONE', (#408));
#418 = FACE_BOUND('NONE', #417, .T.);
#419 = EDGE_LOOP('NONE', (#409));
#420 = FACE_BOUND('NONE', #419, .T.);
#421 = EDGE_LOOP('NONE', (#410));
#422 = FACE_BOUND('NONE', #421, .T.);
#423 = ADVANCED_FACE('NONE', (#412, #414, #416, #418, #420, #422), #287, .T.);
#424 = CLOSED_SHELL('NONE', (#294, #301, #308, #315));
#425 = CLOSED_SHELL('NONE', (#322, #329, #336, #343));
#426 = CLOSED_SHELL('NONE', (#350, #357, #364, #371, #378, #385, #404, #423));
#427 = MANIFOLD_SOLID_BREP('NONE', #424);
#428 = MANIFOLD_SOLID_BREP('NONE', #425);
#429 = MANIFOLD_SOLID_BREP('NONE', #426);
#430 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#431 = PRODUCT_DEFINITION_CONTEXT('part definition', #430, 'design');
#432 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#433 = PRODUCT_DEFINITION_FORMATION('', $, #432);
#434 = PRODUCT_DEFINITION('design', $, #433, #431);
#435 = PRODUCT_DEFINITION_SHAPE('NONE', $, #434);
#436 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#429), #3);
#437 = SHAPE_DEFINITION_REPRESENTATION(#435, #436);
#438 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#439 = PRODUCT_DEFINITION_FORMATION('', $, #438);
#440 = PRODUCT_DEFINITION('design', $, #439, #431);
#441 = PRODUCT_DEFINITION_SHAPE('NONE', $, #440);
#442 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#428), #3);
#443 = SHAPE_DEFINITION_REPRESENTATION(#441, #442);
#444 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#445 = PRODUCT_DEFINITION_FORMATION('', $, #444);
#446 = PRODUCT_DEFINITION('design', $, #445, #431);
#447 = PRODUCT_DEFINITION_SHAPE('NONE', $, #446);
#448 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#427), #3);
#449 = SHAPE_DEFINITION_REPRESENTATION(#447, #448);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file flange-with-patterns.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,467 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (0.03175, -0.001524, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0.03175, 0, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0.015875, -0.001524, 0.000000000000000003888253587292846));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.0293751, 0.015875, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.0293751, 0.019126199999999996, -0));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (0.015875, 0.019126199999999996, 0.000000000000000003888253587292846));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.0587375, 0, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.0587375, 0.015875, -0));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.0523875, 0, 0.000000000000000001944126793646423));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.0523875, 0.015875, 0.000000000000000001944126793646423));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.0079375, 0, -0.044449999999999996));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (0.0079375, 0.015875, -0.044449999999999996));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (-0.036512499999999996, 0, 0.000000000000000001944126793646423));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (-0.036512499999999996, 0.015875, 0.000000000000000001944126793646423));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0.0079375, 0, 0.044449999999999996));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0.0079375, 0.015875, 0.044449999999999996));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#43 = VERTEX_POINT('NONE', #42);
#44 = DIRECTION('NONE', (1, 0, -0));
#45 = DIRECTION('NONE', (0, 1, 0));
#46 = CARTESIAN_POINT('NONE', (-0, -0.001524, 0));
#47 = AXIS2_PLACEMENT_3D('NONE', #46, #45, #44);
#48 = CIRCLE('NONE', #47, 0.03175);
#49 = DIRECTION('NONE', (0, 1, 0));
#50 = VECTOR('NONE', #49, 1);
#51 = CARTESIAN_POINT('NONE', (0.03175, -0.001524, -0));
#52 = LINE('NONE', #51, #50);
#53 = DIRECTION('NONE', (1, 0, -0));
#54 = DIRECTION('NONE', (0, 1, 0));
#55 = CARTESIAN_POINT('NONE', (-0, 0, 0));
#56 = AXIS2_PLACEMENT_3D('NONE', #55, #54, #53);
#57 = CIRCLE('NONE', #56, 0.03175);
#58 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#59 = DIRECTION('NONE', (0, -1, 0));
#60 = CARTESIAN_POINT('NONE', (0, -0.001524, -0));
#61 = AXIS2_PLACEMENT_3D('NONE', #60, #59, #58);
#62 = CIRCLE('NONE', #61, 0.015875);
#63 = DIRECTION('NONE', (0, 1, 0));
#64 = VECTOR('NONE', #63, 1);
#65 = CARTESIAN_POINT('NONE', (0.015875, -0.001524, 0.000000000000000003888253587292846));
#66 = LINE('NONE', #65, #64);
#67 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#68 = DIRECTION('NONE', (0, -1, 0));
#69 = CARTESIAN_POINT('NONE', (0, -0, -0));
#70 = AXIS2_PLACEMENT_3D('NONE', #69, #68, #67);
#71 = CIRCLE('NONE', #70, 0.015875);
#72 = DIRECTION('NONE', (1, 0, -0));
#73 = DIRECTION('NONE', (0, 1, 0));
#74 = CARTESIAN_POINT('NONE', (-0, 0.015875, 0));
#75 = AXIS2_PLACEMENT_3D('NONE', #74, #73, #72);
#76 = CIRCLE('NONE', #75, 0.0293751);
#77 = DIRECTION('NONE', (0, 1, 0));
#78 = VECTOR('NONE', #77, 1);
#79 = CARTESIAN_POINT('NONE', (0.0293751, 0.015875, -0));
#80 = LINE('NONE', #79, #78);
#81 = DIRECTION('NONE', (1, 0, -0));
#82 = DIRECTION('NONE', (0, 1, 0));
#83 = CARTESIAN_POINT('NONE', (-0, 0.019126199999999996, 0));
#84 = AXIS2_PLACEMENT_3D('NONE', #83, #82, #81);
#85 = CIRCLE('NONE', #84, 0.0293751);
#86 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#87 = DIRECTION('NONE', (0, -1, 0));
#88 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#89 = AXIS2_PLACEMENT_3D('NONE', #88, #87, #86);
#90 = CIRCLE('NONE', #89, 0.015875);
#91 = DIRECTION('NONE', (0, 1, 0));
#92 = VECTOR('NONE', #91, 1);
#93 = CARTESIAN_POINT('NONE', (0.015875, 0.015875, 0.000000000000000003888253587292846));
#94 = LINE('NONE', #93, #92);
#95 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#96 = DIRECTION('NONE', (0, -1, 0));
#97 = CARTESIAN_POINT('NONE', (0, 0.019126199999999996, -0));
#98 = AXIS2_PLACEMENT_3D('NONE', #97, #96, #95);
#99 = CIRCLE('NONE', #98, 0.015875);
#100 = DIRECTION('NONE', (1, 0, -0));
#101 = DIRECTION('NONE', (0, 1, 0));
#102 = CARTESIAN_POINT('NONE', (-0, 0, 0));
#103 = AXIS2_PLACEMENT_3D('NONE', #102, #101, #100);
#104 = CIRCLE('NONE', #103, 0.0587375);
#105 = DIRECTION('NONE', (0, 1, 0));
#106 = VECTOR('NONE', #105, 1);
#107 = CARTESIAN_POINT('NONE', (0.0587375, 0, -0));
#108 = LINE('NONE', #107, #106);
#109 = DIRECTION('NONE', (1, 0, -0));
#110 = DIRECTION('NONE', (0, 1, 0));
#111 = CARTESIAN_POINT('NONE', (-0, 0.015875, 0));
#112 = AXIS2_PLACEMENT_3D('NONE', #111, #110, #109);
#113 = CIRCLE('NONE', #112, 0.0587375);
#114 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#115 = DIRECTION('NONE', (0, -1, 0));
#116 = CARTESIAN_POINT('NONE', (0.044449999999999996, -0, 0.000000000000000005024295867788081));
#117 = AXIS2_PLACEMENT_3D('NONE', #116, #115, #114);
#118 = CIRCLE('NONE', #117, 0.0079375);
#119 = DIRECTION('NONE', (0, 1, 0));
#120 = VECTOR('NONE', #119, 1);
#121 = CARTESIAN_POINT('NONE', (0.0523875, 0, 0.000000000000000001944126793646423));
#122 = LINE('NONE', #121, #120);
#123 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#124 = DIRECTION('NONE', (0, -1, 0));
#125 = CARTESIAN_POINT('NONE', (0.044449999999999996, 0.015875, 0.000000000000000005024295867788081));
#126 = AXIS2_PLACEMENT_3D('NONE', #125, #124, #123);
#127 = CIRCLE('NONE', #126, 0.0079375);
#128 = DIRECTION('NONE', (1, 0, -0));
#129 = DIRECTION('NONE', (0, -1, 0));
#130 = CARTESIAN_POINT('NONE', (0.0000000000000000025121479338940404, -0, -0.044449999999999996));
#131 = AXIS2_PLACEMENT_3D('NONE', #130, #129, #128);
#132 = CIRCLE('NONE', #131, 0.007937499999999997);
#133 = DIRECTION('NONE', (0, 1, 0));
#134 = VECTOR('NONE', #133, 1);
#135 = CARTESIAN_POINT('NONE', (0.0079375, 0, -0.044449999999999996));
#136 = LINE('NONE', #135, #134);
#137 = DIRECTION('NONE', (1, 0, -0));
#138 = DIRECTION('NONE', (0, -1, 0));
#139 = CARTESIAN_POINT('NONE', (0.0000000000000000025121479338940404, 0.015875, -0.044449999999999996));
#140 = AXIS2_PLACEMENT_3D('NONE', #139, #138, #137);
#141 = CIRCLE('NONE', #140, 0.007937499999999997);
#142 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#143 = DIRECTION('NONE', (0, -1, 0));
#144 = CARTESIAN_POINT('NONE', (-0.044449999999999996, -0, -0));
#145 = AXIS2_PLACEMENT_3D('NONE', #144, #143, #142);
#146 = CIRCLE('NONE', #145, 0.0079375);
#147 = DIRECTION('NONE', (0, 1, 0));
#148 = VECTOR('NONE', #147, 1);
#149 = CARTESIAN_POINT('NONE', (-0.036512499999999996, 0, 0.000000000000000001944126793646423));
#150 = LINE('NONE', #149, #148);
#151 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#152 = DIRECTION('NONE', (0, -1, 0));
#153 = CARTESIAN_POINT('NONE', (-0.044449999999999996, 0.015875, -0));
#154 = AXIS2_PLACEMENT_3D('NONE', #153, #152, #151);
#155 = CIRCLE('NONE', #154, 0.0079375);
#156 = DIRECTION('NONE', (1, 0, -0));
#157 = DIRECTION('NONE', (0, -1, 0));
#158 = CARTESIAN_POINT('NONE', (-0.000000000000000005024295867788081, -0, 0.044449999999999996));
#159 = AXIS2_PLACEMENT_3D('NONE', #158, #157, #156);
#160 = CIRCLE('NONE', #159, 0.007937500000000005);
#161 = DIRECTION('NONE', (0, 1, 0));
#162 = VECTOR('NONE', #161, 1);
#163 = CARTESIAN_POINT('NONE', (0.0079375, 0, 0.044449999999999996));
#164 = LINE('NONE', #163, #162);
#165 = DIRECTION('NONE', (1, 0, -0));
#166 = DIRECTION('NONE', (0, -1, 0));
#167 = CARTESIAN_POINT('NONE', (-0.000000000000000005024295867788081, 0.015875, 0.044449999999999996));
#168 = AXIS2_PLACEMENT_3D('NONE', #167, #166, #165);
#169 = CIRCLE('NONE', #168, 0.007937500000000005);
#170 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#171 = DIRECTION('NONE', (0, -1, 0));
#172 = CARTESIAN_POINT('NONE', (0, -0, -0));
#173 = AXIS2_PLACEMENT_3D('NONE', #172, #171, #170);
#174 = CIRCLE('NONE', #173, 0.015875);
#175 = DIRECTION('NONE', (0, 1, 0));
#176 = VECTOR('NONE', #175, 1);
#177 = CARTESIAN_POINT('NONE', (0.015875, 0, 0.000000000000000003888253587292846));
#178 = LINE('NONE', #177, #176);
#179 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#180 = DIRECTION('NONE', (0, -1, 0));
#181 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#182 = AXIS2_PLACEMENT_3D('NONE', #181, #180, #179);
#183 = CIRCLE('NONE', #182, 0.015875);
#184 = EDGE_CURVE('NONE', #5, #5, #48, .T.);
#185 = EDGE_CURVE('NONE', #5, #7, #52, .T.);
#186 = EDGE_CURVE('NONE', #7, #7, #57, .T.);
#187 = EDGE_CURVE('NONE', #9, #9, #62, .T.);
#188 = EDGE_CURVE('NONE', #9, #11, #66, .T.);
#189 = EDGE_CURVE('NONE', #11, #11, #71, .T.);
#190 = EDGE_CURVE('NONE', #13, #13, #76, .T.);
#191 = EDGE_CURVE('NONE', #13, #15, #80, .T.);
#192 = EDGE_CURVE('NONE', #15, #15, #85, .T.);
#193 = EDGE_CURVE('NONE', #17, #17, #90, .T.);
#194 = EDGE_CURVE('NONE', #17, #19, #94, .T.);
#195 = EDGE_CURVE('NONE', #19, #19, #99, .T.);
#196 = EDGE_CURVE('NONE', #21, #21, #104, .T.);
#197 = EDGE_CURVE('NONE', #21, #23, #108, .T.);
#198 = EDGE_CURVE('NONE', #23, #23, #113, .T.);
#199 = EDGE_CURVE('NONE', #25, #25, #118, .T.);
#200 = EDGE_CURVE('NONE', #25, #27, #122, .T.);
#201 = EDGE_CURVE('NONE', #27, #27, #127, .T.);
#202 = EDGE_CURVE('NONE', #29, #29, #132, .T.);
#203 = EDGE_CURVE('NONE', #29, #31, #136, .T.);
#204 = EDGE_CURVE('NONE', #31, #31, #141, .T.);
#205 = EDGE_CURVE('NONE', #33, #33, #146, .T.);
#206 = EDGE_CURVE('NONE', #33, #35, #150, .T.);
#207 = EDGE_CURVE('NONE', #35, #35, #155, .T.);
#208 = EDGE_CURVE('NONE', #37, #37, #160, .T.);
#209 = EDGE_CURVE('NONE', #37, #39, #164, .T.);
#210 = EDGE_CURVE('NONE', #39, #39, #169, .T.);
#211 = EDGE_CURVE('NONE', #41, #41, #174, .T.);
#212 = EDGE_CURVE('NONE', #41, #43, #178, .T.);
#213 = EDGE_CURVE('NONE', #43, #43, #183, .T.);
#214 = CARTESIAN_POINT('NONE', (-0, -0.000762, 0));
#215 = DIRECTION('NONE', (0, 1, 0));
#216 = DIRECTION('NONE', (1, 0, -0));
#217 = AXIS2_PLACEMENT_3D('NONE', #214, #215, #216);
#218 = CYLINDRICAL_SURFACE('NONE', #217, 0.03175);
#219 = CARTESIAN_POINT('NONE', (0, -0.000762, -0));
#220 = DIRECTION('NONE', (0, -1, 0));
#221 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#222 = AXIS2_PLACEMENT_3D('NONE', #219, #220, #221);
#223 = CYLINDRICAL_SURFACE('NONE', #222, 0.015875);
#224 = CARTESIAN_POINT('NONE', (0, -0.001524, -0));
#225 = DIRECTION('NONE', (0, 1, 0));
#226 = AXIS2_PLACEMENT_3D('NONE', #224, #225, $);
#227 = PLANE('NONE', #226);
#228 = CARTESIAN_POINT('NONE', (0, 0, -0));
#229 = DIRECTION('NONE', (0, 1, 0));
#230 = AXIS2_PLACEMENT_3D('NONE', #228, #229, $);
#231 = PLANE('NONE', #230);
#232 = CARTESIAN_POINT('NONE', (-0, 0.017500599999999998, 0));
#233 = DIRECTION('NONE', (0, 1, 0));
#234 = DIRECTION('NONE', (1, 0, -0));
#235 = AXIS2_PLACEMENT_3D('NONE', #232, #233, #234);
#236 = CYLINDRICAL_SURFACE('NONE', #235, 0.0293751);
#237 = CARTESIAN_POINT('NONE', (0, 0.017500599999999998, -0));
#238 = DIRECTION('NONE', (0, -1, 0));
#239 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#240 = AXIS2_PLACEMENT_3D('NONE', #237, #238, #239);
#241 = CYLINDRICAL_SURFACE('NONE', #240, 0.015875);
#242 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#243 = DIRECTION('NONE', (0, 1, 0));
#244 = AXIS2_PLACEMENT_3D('NONE', #242, #243, $);
#245 = PLANE('NONE', #244);
#246 = CARTESIAN_POINT('NONE', (0, 0.019126199999999996, -0));
#247 = DIRECTION('NONE', (0, 1, 0));
#248 = AXIS2_PLACEMENT_3D('NONE', #246, #247, $);
#249 = PLANE('NONE', #248);
#250 = CARTESIAN_POINT('NONE', (-0, 0.0079375, 0));
#251 = DIRECTION('NONE', (0, 1, 0));
#252 = DIRECTION('NONE', (1, 0, -0));
#253 = AXIS2_PLACEMENT_3D('NONE', #250, #251, #252);
#254 = CYLINDRICAL_SURFACE('NONE', #253, 0.0587375);
#255 = CARTESIAN_POINT('NONE', (0.044449999999999996, 0.0079375, 0.000000000000000005024295867788081));
#256 = DIRECTION('NONE', (0, -1, 0));
#257 = DIRECTION('NONE', (1, 0, -0.000000000000000388052796742256));
#258 = AXIS2_PLACEMENT_3D('NONE', #255, #256, #257);
#259 = CYLINDRICAL_SURFACE('NONE', #258, 0.0079375);
#260 = CARTESIAN_POINT('NONE', (0.0000000000000000025121479338940404, 0.0079375, -0.044449999999999996));
#261 = DIRECTION('NONE', (0, -1, 0));
#262 = DIRECTION('NONE', (1, 0, -0));
#263 = AXIS2_PLACEMENT_3D('NONE', #260, #261, #262);
#264 = CYLINDRICAL_SURFACE('NONE', #263, 0.007937499999999997);
#265 = CARTESIAN_POINT('NONE', (-0.044449999999999996, 0.0079375, -0));
#266 = DIRECTION('NONE', (0, -1, 0));
#267 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#268 = AXIS2_PLACEMENT_3D('NONE', #265, #266, #267);
#269 = CYLINDRICAL_SURFACE('NONE', #268, 0.0079375);
#270 = CARTESIAN_POINT('NONE', (-0.000000000000000005024295867788081, 0.0079375, 0.044449999999999996));
#271 = DIRECTION('NONE', (0, -1, 0));
#272 = DIRECTION('NONE', (1, 0, -0));
#273 = AXIS2_PLACEMENT_3D('NONE', #270, #271, #272);
#274 = CYLINDRICAL_SURFACE('NONE', #273, 0.007937500000000005);
#275 = CARTESIAN_POINT('NONE', (0, 0.0079375, -0));
#276 = DIRECTION('NONE', (0, -1, 0));
#277 = DIRECTION('NONE', (1, 0, 0.00000000000000024492935982947064));
#278 = AXIS2_PLACEMENT_3D('NONE', #275, #276, #277);
#279 = CYLINDRICAL_SURFACE('NONE', #278, 0.015875);
#280 = CARTESIAN_POINT('NONE', (0, 0, -0));
#281 = DIRECTION('NONE', (0, 1, 0));
#282 = AXIS2_PLACEMENT_3D('NONE', #280, #281, $);
#283 = PLANE('NONE', #282);
#284 = CARTESIAN_POINT('NONE', (0, 0.015875, -0));
#285 = DIRECTION('NONE', (0, 1, 0));
#286 = AXIS2_PLACEMENT_3D('NONE', #284, #285, $);
#287 = PLANE('NONE', #286);
#288 = ORIENTED_EDGE('NONE', *, *, #184, .T.);
#289 = ORIENTED_EDGE('NONE', *, *, #186, .F.);
#290 = EDGE_LOOP('NONE', (#288));
#291 = FACE_BOUND('NONE', #290, .T.);
#292 = EDGE_LOOP('NONE', (#289));
#293 = FACE_BOUND('NONE', #292, .T.);
#294 = ADVANCED_FACE('NONE', (#291, #293), #218, .T.);
#295 = ORIENTED_EDGE('NONE', *, *, #187, .T.);
#296 = ORIENTED_EDGE('NONE', *, *, #189, .F.);
#297 = EDGE_LOOP('NONE', (#295));
#298 = FACE_BOUND('NONE', #297, .T.);
#299 = EDGE_LOOP('NONE', (#296));
#300 = FACE_BOUND('NONE', #299, .T.);
#301 = ADVANCED_FACE('NONE', (#298, #300), #223, .F.);
#302 = ORIENTED_EDGE('NONE', *, *, #184, .F.);
#303 = ORIENTED_EDGE('NONE', *, *, #187, .F.);
#304 = EDGE_LOOP('NONE', (#302));
#305 = FACE_BOUND('NONE', #304, .T.);
#306 = EDGE_LOOP('NONE', (#303));
#307 = FACE_BOUND('NONE', #306, .T.);
#308 = ADVANCED_FACE('NONE', (#305, #307), #227, .F.);
#309 = ORIENTED_EDGE('NONE', *, *, #186, .T.);
#310 = ORIENTED_EDGE('NONE', *, *, #189, .T.);
#311 = EDGE_LOOP('NONE', (#309));
#312 = FACE_BOUND('NONE', #311, .T.);
#313 = EDGE_LOOP('NONE', (#310));
#314 = FACE_BOUND('NONE', #313, .T.);
#315 = ADVANCED_FACE('NONE', (#312, #314), #231, .T.);
#316 = ORIENTED_EDGE('NONE', *, *, #190, .T.);
#317 = ORIENTED_EDGE('NONE', *, *, #192, .F.);
#318 = EDGE_LOOP('NONE', (#316));
#319 = FACE_BOUND('NONE', #318, .T.);
#320 = EDGE_LOOP('NONE', (#317));
#321 = FACE_BOUND('NONE', #320, .T.);
#322 = ADVANCED_FACE('NONE', (#319, #321), #236, .T.);
#323 = ORIENTED_EDGE('NONE', *, *, #193, .T.);
#324 = ORIENTED_EDGE('NONE', *, *, #195, .F.);
#325 = EDGE_LOOP('NONE', (#323));
#326 = FACE_BOUND('NONE', #325, .T.);
#327 = EDGE_LOOP('NONE', (#324));
#328 = FACE_BOUND('NONE', #327, .T.);
#329 = ADVANCED_FACE('NONE', (#326, #328), #241, .F.);
#330 = ORIENTED_EDGE('NONE', *, *, #190, .F.);
#331 = ORIENTED_EDGE('NONE', *, *, #193, .F.);
#332 = EDGE_LOOP('NONE', (#330));
#333 = FACE_BOUND('NONE', #332, .T.);
#334 = EDGE_LOOP('NONE', (#331));
#335 = FACE_BOUND('NONE', #334, .T.);
#336 = ADVANCED_FACE('NONE', (#333, #335), #245, .F.);
#337 = ORIENTED_EDGE('NONE', *, *, #192, .T.);
#338 = ORIENTED_EDGE('NONE', *, *, #195, .T.);
#339 = EDGE_LOOP('NONE', (#337));
#340 = FACE_BOUND('NONE', #339, .T.);
#341 = EDGE_LOOP('NONE', (#338));
#342 = FACE_BOUND('NONE', #341, .T.);
#343 = ADVANCED_FACE('NONE', (#340, #342), #249, .T.);
#344 = ORIENTED_EDGE('NONE', *, *, #196, .T.);
#345 = ORIENTED_EDGE('NONE', *, *, #198, .F.);
#346 = EDGE_LOOP('NONE', (#344));
#347 = FACE_BOUND('NONE', #346, .T.);
#348 = EDGE_LOOP('NONE', (#345));
#349 = FACE_BOUND('NONE', #348, .T.);
#350 = ADVANCED_FACE('NONE', (#347, #349), #254, .T.);
#351 = ORIENTED_EDGE('NONE', *, *, #199, .T.);
#352 = ORIENTED_EDGE('NONE', *, *, #201, .F.);
#353 = EDGE_LOOP('NONE', (#351));
#354 = FACE_BOUND('NONE', #353, .T.);
#355 = EDGE_LOOP('NONE', (#352));
#356 = FACE_BOUND('NONE', #355, .T.);
#357 = ADVANCED_FACE('NONE', (#354, #356), #259, .F.);
#358 = ORIENTED_EDGE('NONE', *, *, #202, .T.);
#359 = ORIENTED_EDGE('NONE', *, *, #204, .F.);
#360 = EDGE_LOOP('NONE', (#358));
#361 = FACE_BOUND('NONE', #360, .T.);
#362 = EDGE_LOOP('NONE', (#359));
#363 = FACE_BOUND('NONE', #362, .T.);
#364 = ADVANCED_FACE('NONE', (#361, #363), #264, .F.);
#365 = ORIENTED_EDGE('NONE', *, *, #205, .T.);
#366 = ORIENTED_EDGE('NONE', *, *, #207, .F.);
#367 = EDGE_LOOP('NONE', (#365));
#368 = FACE_BOUND('NONE', #367, .T.);
#369 = EDGE_LOOP('NONE', (#366));
#370 = FACE_BOUND('NONE', #369, .T.);
#371 = ADVANCED_FACE('NONE', (#368, #370), #269, .F.);
#372 = ORIENTED_EDGE('NONE', *, *, #208, .T.);
#373 = ORIENTED_EDGE('NONE', *, *, #210, .F.);
#374 = EDGE_LOOP('NONE', (#372));
#375 = FACE_BOUND('NONE', #374, .T.);
#376 = EDGE_LOOP('NONE', (#373));
#377 = FACE_BOUND('NONE', #376, .T.);
#378 = ADVANCED_FACE('NONE', (#375, #377), #274, .F.);
#379 = ORIENTED_EDGE('NONE', *, *, #211, .T.);
#380 = ORIENTED_EDGE('NONE', *, *, #213, .F.);
#381 = EDGE_LOOP('NONE', (#379));
#382 = FACE_BOUND('NONE', #381, .T.);
#383 = EDGE_LOOP('NONE', (#380));
#384 = FACE_BOUND('NONE', #383, .T.);
#385 = ADVANCED_FACE('NONE', (#382, #384), #279, .F.);
#386 = ORIENTED_EDGE('NONE', *, *, #196, .F.);
#387 = ORIENTED_EDGE('NONE', *, *, #199, .F.);
#388 = ORIENTED_EDGE('NONE', *, *, #202, .F.);
#389 = ORIENTED_EDGE('NONE', *, *, #205, .F.);
#390 = ORIENTED_EDGE('NONE', *, *, #208, .F.);
#391 = ORIENTED_EDGE('NONE', *, *, #211, .F.);
#392 = EDGE_LOOP('NONE', (#386));
#393 = FACE_BOUND('NONE', #392, .T.);
#394 = EDGE_LOOP('NONE', (#387));
#395 = FACE_BOUND('NONE', #394, .T.);
#396 = EDGE_LOOP('NONE', (#388));
#397 = FACE_BOUND('NONE', #396, .T.);
#398 = EDGE_LOOP('NONE', (#389));
#399 = FACE_BOUND('NONE', #398, .T.);
#400 = EDGE_LOOP('NONE', (#390));
#401 = FACE_BOUND('NONE', #400, .T.);
#402 = EDGE_LOOP('NONE', (#391));
#403 = FACE_BOUND('NONE', #402, .T.);
#404 = ADVANCED_FACE('NONE', (#393, #395, #397, #399, #401, #403), #283, .F.);
#405 = ORIENTED_EDGE('NONE', *, *, #198, .T.);
#406 = ORIENTED_EDGE('NONE', *, *, #201, .T.);
#407 = ORIENTED_EDGE('NONE', *, *, #204, .T.);
#408 = ORIENTED_EDGE('NONE', *, *, #207, .T.);
#409 = ORIENTED_EDGE('NONE', *, *, #210, .T.);
#410 = ORIENTED_EDGE('NONE', *, *, #213, .T.);
#411 = EDGE_LOOP('NONE', (#405));
#412 = FACE_BOUND('NONE', #411, .T.);
#413 = EDGE_LOOP('NONE', (#406));
#414 = FACE_BOUND('NONE', #413, .T.);
#415 = EDGE_LOOP('NONE', (#407));
#416 = FACE_BOUND('NONE', #415, .T.);
#417 = EDGE_LOOP('NONE', (#408));
#418 = FACE_BOUND('NONE', #417, .T.);
#419 = EDGE_LOOP('NONE', (#409));
#420 = FACE_BOUND('NONE', #419, .T.);
#421 = EDGE_LOOP('NONE', (#410));
#422 = FACE_BOUND('NONE', #421, .T.);
#423 = ADVANCED_FACE('NONE', (#412, #414, #416, #418, #420, #422), #287, .T.);
#424 = CLOSED_SHELL('NONE', (#294, #301, #308, #315));
#425 = CLOSED_SHELL('NONE', (#322, #329, #336, #343));
#426 = CLOSED_SHELL('NONE', (#350, #357, #364, #371, #378, #385, #404, #423));
#427 = MANIFOLD_SOLID_BREP('NONE', #424);
#428 = MANIFOLD_SOLID_BREP('NONE', #425);
#429 = MANIFOLD_SOLID_BREP('NONE', #426);
#430 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#431 = PRODUCT_DEFINITION_CONTEXT('part definition', #430, 'design');
#432 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#433 = PRODUCT_DEFINITION_FORMATION('', $, #432);
#434 = PRODUCT_DEFINITION('design', $, #433, #431);
#435 = PRODUCT_DEFINITION_SHAPE('NONE', $, #434);
#436 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#429), #3);
#437 = SHAPE_DEFINITION_REPRESENTATION(#435, #436);
#438 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#439 = PRODUCT_DEFINITION_FORMATION('', $, #438);
#440 = PRODUCT_DEFINITION('design', $, #439, #431);
#441 = PRODUCT_DEFINITION_SHAPE('NONE', $, #440);
#442 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#428), #3);
#443 = SHAPE_DEFINITION_REPRESENTATION(#441, #442);
#444 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#445 = PRODUCT_DEFINITION_FORMATION('', $, #444);
#446 = PRODUCT_DEFINITION('design', $, #445, #431);
#447 = PRODUCT_DEFINITION_SHAPE('NONE', $, #446);
#448 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#427), #3);
#449 = SHAPE_DEFINITION_REPRESENTATION(#447, #448);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file flange-xy.kcl
extension: step
snapshot_kind: binary
---

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file focusrite-scarlett-mounting-bracket.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file food-service-spatula.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file french-press.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gear-rack.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gear.kcl
extension: step
snapshot_kind: binary
---

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gridfinity-baseplate-magnets.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gridfinity-baseplate.kcl
extension: step
snapshot_kind: binary
---

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gridfinity-bins-stacking-lip.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file gridfinity-bins.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,276 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (-0.0079375, 0, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (-0.003174999999999999, 0.0068740766425389845, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (-0.003174999999999999, 0.0068740766425389845, -0.0067564));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (-0.0079375, 0, -0.0067564));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.003968750000000001, 0.0068740766425389845, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.003968750000000001, 0.0068740766425389845, -0.0067564));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.007937500000000002, 0.000000000000000003552713678800501, -0));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (0.007937500000000002, 0.000000000000000003552713678800501, -0.0067564));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.0039687500000000035, -0.006874076642538978, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.0039687500000000035, -0.006874076642538978, -0.0067564));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (-0.003968749999999997, -0.006874076642538979, -0));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (-0.003968749999999997, -0.006874076642538979, -0.0067564));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (-0.00396875, -0.0000000000000000009720633968232116, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (-0.00396875, -0.0000000000000000009720633968232116, -0.0067564));
#31 = VERTEX_POINT('NONE', #30);
#32 = DIRECTION('NONE', (0.5694947974514994, 0.8219949365267866, 0));
#33 = VECTOR('NONE', #32, 1);
#34 = CARTESIAN_POINT('NONE', (-0.0079375, 0, -0));
#35 = LINE('NONE', #34, #33);
#36 = DIRECTION('NONE', (0, 0, -1));
#37 = VECTOR('NONE', #36, 1);
#38 = CARTESIAN_POINT('NONE', (-0.003174999999999999, 0.0068740766425389845, -0));
#39 = LINE('NONE', #38, #37);
#40 = DIRECTION('NONE', (0.5694947974514994, 0.8219949365267866, 0));
#41 = VECTOR('NONE', #40, 1);
#42 = CARTESIAN_POINT('NONE', (-0.0079375, 0, -0.0067564));
#43 = LINE('NONE', #42, #41);
#44 = DIRECTION('NONE', (0, 0, -1));
#45 = VECTOR('NONE', #44, 1);
#46 = CARTESIAN_POINT('NONE', (-0.0079375, 0, -0));
#47 = LINE('NONE', #46, #45);
#48 = DIRECTION('NONE', (1, 0, 0));
#49 = VECTOR('NONE', #48, 1);
#50 = CARTESIAN_POINT('NONE', (-0.003174999999999999, 0.0068740766425389845, -0));
#51 = LINE('NONE', #50, #49);
#52 = DIRECTION('NONE', (0, 0, -1));
#53 = VECTOR('NONE', #52, 1);
#54 = CARTESIAN_POINT('NONE', (0.003968750000000001, 0.0068740766425389845, -0));
#55 = LINE('NONE', #54, #53);
#56 = DIRECTION('NONE', (1, 0, 0));
#57 = VECTOR('NONE', #56, 1);
#58 = CARTESIAN_POINT('NONE', (-0.003174999999999999, 0.0068740766425389845, -0.0067564));
#59 = LINE('NONE', #58, #57);
#60 = DIRECTION('NONE', (0.5000000000000001, -0.8660254037844386, 0));
#61 = VECTOR('NONE', #60, 1);
#62 = CARTESIAN_POINT('NONE', (0.003968750000000001, 0.0068740766425389845, -0));
#63 = LINE('NONE', #62, #61);
#64 = DIRECTION('NONE', (0, 0, -1));
#65 = VECTOR('NONE', #64, 1);
#66 = CARTESIAN_POINT('NONE', (0.007937500000000002, 0.000000000000000003552713678800501, -0));
#67 = LINE('NONE', #66, #65);
#68 = DIRECTION('NONE', (0.5000000000000001, -0.8660254037844386, 0));
#69 = VECTOR('NONE', #68, 1);
#70 = CARTESIAN_POINT('NONE', (0.003968750000000001, 0.0068740766425389845, -0.0067564));
#71 = LINE('NONE', #70, #69);
#72 = DIRECTION('NONE', (-0.49999999999999983, -0.8660254037844388, 0));
#73 = VECTOR('NONE', #72, 1);
#74 = CARTESIAN_POINT('NONE', (0.007937500000000002, 0.000000000000000003552713678800501, -0));
#75 = LINE('NONE', #74, #73);
#76 = DIRECTION('NONE', (0, 0, -1));
#77 = VECTOR('NONE', #76, 1);
#78 = CARTESIAN_POINT('NONE', (0.0039687500000000035, -0.006874076642538978, -0));
#79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (-0.49999999999999983, -0.8660254037844388, 0));
#81 = VECTOR('NONE', #80, 1);
#82 = CARTESIAN_POINT('NONE', (0.007937500000000002, 0.000000000000000003552713678800501, -0.0067564));
#83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (-1, -0.00000000000000010927391974657053, 0));
#85 = VECTOR('NONE', #84, 1);
#86 = CARTESIAN_POINT('NONE', (0.0039687500000000035, -0.006874076642538978, -0));
#87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0, 0, -1));
#89 = VECTOR('NONE', #88, 1);
#90 = CARTESIAN_POINT('NONE', (-0.003968749999999997, -0.006874076642538979, -0));
#91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (-1, -0.00000000000000010927391974657053, 0));
#93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (0.0039687500000000035, -0.006874076642538978, -0.0067564));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (-0.5000000000000004, 0.8660254037844384, 0));
#97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (-0.003968749999999997, -0.006874076642538979, -0));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (-0.5000000000000004, 0.8660254037844384, 0));
#101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (-0.003968749999999997, -0.006874076642538979, -0.0067564));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (-1, -0.00000000000000024492935982947064, -0));
#105 = DIRECTION('NONE', (0, -0, 1));
#106 = CARTESIAN_POINT('NONE', (0, 0, 0));
#107 = AXIS2_PLACEMENT_3D('NONE', #106, #105, #104);
#108 = CIRCLE('NONE', #107, 0.00396875);
#109 = DIRECTION('NONE', (0, 0, -1));
#110 = VECTOR('NONE', #109, 1);
#111 = CARTESIAN_POINT('NONE', (-0.00396875, -0.0000000000000000009720633968232116, -0));
#112 = LINE('NONE', #111, #110);
#113 = DIRECTION('NONE', (-1, -0.00000000000000024492935982947064, -0));
#114 = DIRECTION('NONE', (0, -0, 1));
#115 = CARTESIAN_POINT('NONE', (0, 0, -0.0067564));
#116 = AXIS2_PLACEMENT_3D('NONE', #115, #114, #113);
#117 = CIRCLE('NONE', #116, 0.00396875);
#118 = EDGE_CURVE('NONE', #5, #7, #35, .T.);
#119 = EDGE_CURVE('NONE', #7, #9, #39, .T.);
#120 = EDGE_CURVE('NONE', #11, #9, #43, .T.);
#121 = EDGE_CURVE('NONE', #5, #11, #47, .T.);
#122 = EDGE_CURVE('NONE', #7, #13, #51, .T.);
#123 = EDGE_CURVE('NONE', #13, #15, #55, .T.);
#124 = EDGE_CURVE('NONE', #9, #15, #59, .T.);
#125 = EDGE_CURVE('NONE', #13, #17, #63, .T.);
#126 = EDGE_CURVE('NONE', #17, #19, #67, .T.);
#127 = EDGE_CURVE('NONE', #15, #19, #71, .T.);
#128 = EDGE_CURVE('NONE', #17, #21, #75, .T.);
#129 = EDGE_CURVE('NONE', #21, #23, #79, .T.);
#130 = EDGE_CURVE('NONE', #19, #23, #83, .T.);
#131 = EDGE_CURVE('NONE', #21, #25, #87, .T.);
#132 = EDGE_CURVE('NONE', #25, #27, #91, .T.);
#133 = EDGE_CURVE('NONE', #23, #27, #95, .T.);
#134 = EDGE_CURVE('NONE', #25, #5, #99, .T.);
#135 = EDGE_CURVE('NONE', #27, #11, #103, .T.);
#136 = EDGE_CURVE('NONE', #29, #29, #108, .T.);
#137 = EDGE_CURVE('NONE', #29, #31, #112, .T.);
#138 = EDGE_CURVE('NONE', #31, #31, #117, .T.);
#139 = CARTESIAN_POINT('NONE', (-0.005556249999999999, 0.0034370383212694922, -0.0033782));
#140 = DIRECTION('NONE', (-0.8219949365267865, 0.5694947974514994, -0));
#141 = AXIS2_PLACEMENT_3D('NONE', #139, #140, $);
#142 = PLANE('NONE', #141);
#143 = CARTESIAN_POINT('NONE', (0.00039687500000000096, 0.0068740766425389845, -0.0033782));
#144 = DIRECTION('NONE', (0, 1, 0));
#145 = AXIS2_PLACEMENT_3D('NONE', #143, #144, $);
#146 = PLANE('NONE', #145);
#147 = CARTESIAN_POINT('NONE', (0.005953125000000002, 0.003437038321269494, -0.0033782));
#148 = DIRECTION('NONE', (0.8660254037844385, 0.5000000000000001, 0));
#149 = AXIS2_PLACEMENT_3D('NONE', #147, #148, $);
#150 = PLANE('NONE', #149);
#151 = CARTESIAN_POINT('NONE', (0.005953125000000003, -0.0034370383212694875, -0.0033782));
#152 = DIRECTION('NONE', (0.8660254037844387, -0.49999999999999983, 0));
#153 = AXIS2_PLACEMENT_3D('NONE', #151, #152, $);
#154 = PLANE('NONE', #153);
#155 = CARTESIAN_POINT('NONE', (0.000000000000000003996802888650563, -0.006874076642538979, -0.0033782000000000005));
#156 = DIRECTION('NONE', (0, -1, -0));
#157 = AXIS2_PLACEMENT_3D('NONE', #155, #156, $);
#158 = PLANE('NONE', #157);
#159 = CARTESIAN_POINT('NONE', (-0.005953124999999998, -0.0034370383212694896, -0.0033782));
#160 = DIRECTION('NONE', (-0.8660254037844383, -0.5000000000000004, -0));
#161 = AXIS2_PLACEMENT_3D('NONE', #159, #160, $);
#162 = PLANE('NONE', #161);
#163 = CARTESIAN_POINT('NONE', (0, 0, -0.0033782));
#164 = DIRECTION('NONE', (0, -0, 1));
#165 = DIRECTION('NONE', (-1, -0.00000000000000024492935982947064, -0));
#166 = AXIS2_PLACEMENT_3D('NONE', #163, #164, #165);
#167 = CYLINDRICAL_SURFACE('NONE', #166, 0.00396875);
#168 = CARTESIAN_POINT('NONE', (0, 0, -0));
#169 = DIRECTION('NONE', (0, -0, -1));
#170 = AXIS2_PLACEMENT_3D('NONE', #168, #169, $);
#171 = PLANE('NONE', #170);
#172 = CARTESIAN_POINT('NONE', (0, 0, -0.0067564));
#173 = DIRECTION('NONE', (0, -0, -1));
#174 = AXIS2_PLACEMENT_3D('NONE', #172, #173, $);
#175 = PLANE('NONE', #174);
#176 = ORIENTED_EDGE('NONE', *, *, #118, .T.);
#177 = ORIENTED_EDGE('NONE', *, *, #119, .T.);
#178 = ORIENTED_EDGE('NONE', *, *, #120, .F.);
#179 = ORIENTED_EDGE('NONE', *, *, #121, .F.);
#180 = EDGE_LOOP('NONE', (#176, #177, #178, #179));
#181 = FACE_BOUND('NONE', #180, .T.);
#182 = ADVANCED_FACE('NONE', (#181), #142, .T.);
#183 = ORIENTED_EDGE('NONE', *, *, #122, .T.);
#184 = ORIENTED_EDGE('NONE', *, *, #123, .T.);
#185 = ORIENTED_EDGE('NONE', *, *, #124, .F.);
#186 = ORIENTED_EDGE('NONE', *, *, #119, .F.);
#187 = EDGE_LOOP('NONE', (#183, #184, #185, #186));
#188 = FACE_BOUND('NONE', #187, .T.);
#189 = ADVANCED_FACE('NONE', (#188), #146, .T.);
#190 = ORIENTED_EDGE('NONE', *, *, #125, .T.);
#191 = ORIENTED_EDGE('NONE', *, *, #126, .T.);
#192 = ORIENTED_EDGE('NONE', *, *, #127, .F.);
#193 = ORIENTED_EDGE('NONE', *, *, #123, .F.);
#194 = EDGE_LOOP('NONE', (#190, #191, #192, #193));
#195 = FACE_BOUND('NONE', #194, .T.);
#196 = ADVANCED_FACE('NONE', (#195), #150, .T.);
#197 = ORIENTED_EDGE('NONE', *, *, #128, .T.);
#198 = ORIENTED_EDGE('NONE', *, *, #129, .T.);
#199 = ORIENTED_EDGE('NONE', *, *, #130, .F.);
#200 = ORIENTED_EDGE('NONE', *, *, #126, .F.);
#201 = EDGE_LOOP('NONE', (#197, #198, #199, #200));
#202 = FACE_BOUND('NONE', #201, .T.);
#203 = ADVANCED_FACE('NONE', (#202), #154, .T.);
#204 = ORIENTED_EDGE('NONE', *, *, #131, .T.);
#205 = ORIENTED_EDGE('NONE', *, *, #132, .T.);
#206 = ORIENTED_EDGE('NONE', *, *, #133, .F.);
#207 = ORIENTED_EDGE('NONE', *, *, #129, .F.);
#208 = EDGE_LOOP('NONE', (#204, #205, #206, #207));
#209 = FACE_BOUND('NONE', #208, .T.);
#210 = ADVANCED_FACE('NONE', (#209), #158, .T.);
#211 = ORIENTED_EDGE('NONE', *, *, #134, .T.);
#212 = ORIENTED_EDGE('NONE', *, *, #121, .T.);
#213 = ORIENTED_EDGE('NONE', *, *, #135, .F.);
#214 = ORIENTED_EDGE('NONE', *, *, #132, .F.);
#215 = EDGE_LOOP('NONE', (#211, #212, #213, #214));
#216 = FACE_BOUND('NONE', #215, .T.);
#217 = ADVANCED_FACE('NONE', (#216), #162, .T.);
#218 = ORIENTED_EDGE('NONE', *, *, #136, .T.);
#219 = ORIENTED_EDGE('NONE', *, *, #138, .F.);
#220 = EDGE_LOOP('NONE', (#218));
#221 = FACE_BOUND('NONE', #220, .T.);
#222 = EDGE_LOOP('NONE', (#219));
#223 = FACE_BOUND('NONE', #222, .T.);
#224 = ADVANCED_FACE('NONE', (#221, #223), #167, .F.);
#225 = ORIENTED_EDGE('NONE', *, *, #134, .F.);
#226 = ORIENTED_EDGE('NONE', *, *, #131, .F.);
#227 = ORIENTED_EDGE('NONE', *, *, #128, .F.);
#228 = ORIENTED_EDGE('NONE', *, *, #125, .F.);
#229 = ORIENTED_EDGE('NONE', *, *, #122, .F.);
#230 = ORIENTED_EDGE('NONE', *, *, #118, .F.);
#231 = ORIENTED_EDGE('NONE', *, *, #136, .F.);
#232 = EDGE_LOOP('NONE', (#225, #226, #227, #228, #229, #230));
#233 = FACE_BOUND('NONE', #232, .T.);
#234 = EDGE_LOOP('NONE', (#231));
#235 = FACE_BOUND('NONE', #234, .T.);
#236 = ADVANCED_FACE('NONE', (#233, #235), #171, .F.);
#237 = ORIENTED_EDGE('NONE', *, *, #120, .T.);
#238 = ORIENTED_EDGE('NONE', *, *, #124, .T.);
#239 = ORIENTED_EDGE('NONE', *, *, #127, .T.);
#240 = ORIENTED_EDGE('NONE', *, *, #130, .T.);
#241 = ORIENTED_EDGE('NONE', *, *, #133, .T.);
#242 = ORIENTED_EDGE('NONE', *, *, #135, .T.);
#243 = ORIENTED_EDGE('NONE', *, *, #138, .T.);
#244 = EDGE_LOOP('NONE', (#237, #238, #239, #240, #241, #242));
#245 = FACE_BOUND('NONE', #244, .T.);
#246 = EDGE_LOOP('NONE', (#243));
#247 = FACE_BOUND('NONE', #246, .T.);
#248 = ADVANCED_FACE('NONE', (#245, #247), #175, .T.);
#249 = CLOSED_SHELL('NONE', (#182, #189, #196, #203, #210, #217, #224, #236, #248));
#250 = MANIFOLD_SOLID_BREP('NONE', #249);
#251 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#252 = PRODUCT_DEFINITION_CONTEXT('part definition', #251, 'design');
#253 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#254 = PRODUCT_DEFINITION_FORMATION('', $, #253);
#255 = PRODUCT_DEFINITION('design', $, #254, #252);
#256 = PRODUCT_DEFINITION_SHAPE('NONE', $, #255);
#257 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#250), #3);
#258 = SHAPE_DEFINITION_REPRESENTATION(#256, #257);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file hex-nut.kcl
extension: step
snapshot_kind: binary
---

View File

@ -0,0 +1,461 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('test.step', '2021-01-01T00:00:00Z', ('Test'), ('Zoo'), 'zoo.dev beta', 'zoo.dev', 'Test');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0.6096));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096));
#43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096));
#47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096));
#51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096));
#55 = VERTEX_POINT('NONE', #54);
#56 = DIRECTION('NONE', (-1, 0.00000000000000020517070925003855, 0));
#57 = VECTOR('NONE', #56, 1);
#58 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0));
#59 = LINE('NONE', #58, #57);
#60 = DIRECTION('NONE', (0, 0, -1));
#61 = VECTOR('NONE', #60, 1);
#62 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#63 = LINE('NONE', #62, #61);
#64 = DIRECTION('NONE', (-1, 0.00000000000000020517070925003855, 0));
#65 = VECTOR('NONE', #64, 1);
#66 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0.6096));
#67 = LINE('NONE', #66, #65);
#68 = DIRECTION('NONE', (0, 0, -1));
#69 = VECTOR('NONE', #68, 1);
#70 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0));
#71 = LINE('NONE', #70, #69);
#72 = DIRECTION('NONE', (0, 1, 0));
#73 = VECTOR('NONE', #72, 1);
#74 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#75 = LINE('NONE', #74, #73);
#76 = DIRECTION('NONE', (0, 0, -1));
#77 = VECTOR('NONE', #76, 1);
#78 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (0, 1, 0));
#81 = VECTOR('NONE', #80, 1);
#82 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096));
#83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0));
#85 = VECTOR('NONE', #84, 1);
#86 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0, 0, -1));
#89 = VECTOR('NONE', #88, 1);
#90 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0));
#93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0));
#97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (0, 0, -1));
#101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0));
#105 = VECTOR('NONE', #104, 1);
#106 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096));
#107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0));
#109 = VECTOR('NONE', #108, 1);
#110 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#111 = LINE('NONE', #110, #109);
#112 = DIRECTION('NONE', (0, 0, -1));
#113 = VECTOR('NONE', #112, 1);
#114 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#115 = LINE('NONE', #114, #113);
#116 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0));
#117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096));
#119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (0, 1, 0));
#121 = VECTOR('NONE', #120, 1);
#122 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#123 = LINE('NONE', #122, #121);
#124 = DIRECTION('NONE', (0, 0, -1));
#125 = VECTOR('NONE', #124, 1);
#126 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#127 = LINE('NONE', #126, #125);
#128 = DIRECTION('NONE', (0, 1, 0));
#129 = VECTOR('NONE', #128, 1);
#130 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096));
#131 = LINE('NONE', #130, #129);
#132 = DIRECTION('NONE', (1, 0, 0));
#133 = VECTOR('NONE', #132, 1);
#134 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#135 = LINE('NONE', #134, #133);
#136 = DIRECTION('NONE', (0, 0, -1));
#137 = VECTOR('NONE', #136, 1);
#138 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#139 = LINE('NONE', #138, #137);
#140 = DIRECTION('NONE', (1, 0, 0));
#141 = VECTOR('NONE', #140, 1);
#142 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096));
#143 = LINE('NONE', #142, #141);
#144 = DIRECTION('NONE', (0, -1, 0));
#145 = VECTOR('NONE', #144, 1);
#146 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#147 = LINE('NONE', #146, #145);
#148 = DIRECTION('NONE', (0, 0, -1));
#149 = VECTOR('NONE', #148, 1);
#150 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#151 = LINE('NONE', #150, #149);
#152 = DIRECTION('NONE', (0, -1, 0));
#153 = VECTOR('NONE', #152, 1);
#154 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096));
#155 = LINE('NONE', #154, #153);
#156 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0));
#157 = VECTOR('NONE', #156, 1);
#158 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#159 = LINE('NONE', #158, #157);
#160 = DIRECTION('NONE', (0, 0, -1));
#161 = VECTOR('NONE', #160, 1);
#162 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#163 = LINE('NONE', #162, #161);
#164 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0));
#165 = VECTOR('NONE', #164, 1);
#166 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096));
#167 = LINE('NONE', #166, #165);
#168 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0));
#169 = VECTOR('NONE', #168, 1);
#170 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#171 = LINE('NONE', #170, #169);
#172 = DIRECTION('NONE', (0, 0, -1));
#173 = VECTOR('NONE', #172, 1);
#174 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#175 = LINE('NONE', #174, #173);
#176 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0));
#177 = VECTOR('NONE', #176, 1);
#178 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096));
#179 = LINE('NONE', #178, #177);
#180 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0));
#181 = VECTOR('NONE', #180, 1);
#182 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#183 = LINE('NONE', #182, #181);
#184 = DIRECTION('NONE', (0, 0, -1));
#185 = VECTOR('NONE', #184, 1);
#186 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#187 = LINE('NONE', #186, #185);
#188 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0));
#189 = VECTOR('NONE', #188, 1);
#190 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096));
#191 = LINE('NONE', #190, #189);
#192 = DIRECTION('NONE', (0, -1, 0));
#193 = VECTOR('NONE', #192, 1);
#194 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#195 = LINE('NONE', #194, #193);
#196 = DIRECTION('NONE', (0, 0, -1));
#197 = VECTOR('NONE', #196, 1);
#198 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#199 = LINE('NONE', #198, #197);
#200 = DIRECTION('NONE', (0, -1, 0));
#201 = VECTOR('NONE', #200, 1);
#202 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096));
#203 = LINE('NONE', #202, #201);
#204 = DIRECTION('NONE', (-1, -0.00000000000000020517070925003855, 0));
#205 = VECTOR('NONE', #204, 1);
#206 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#207 = LINE('NONE', #206, #205);
#208 = DIRECTION('NONE', (-1, -0.00000000000000020517070925003855, 0));
#209 = VECTOR('NONE', #208, 1);
#210 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096));
#211 = LINE('NONE', #210, #209);
#212 = EDGE_CURVE('NONE', #5, #7, #59, .T.);
#213 = EDGE_CURVE('NONE', #7, #9, #63, .T.);
#214 = EDGE_CURVE('NONE', #11, #9, #67, .T.);
#215 = EDGE_CURVE('NONE', #5, #11, #71, .T.);
#216 = EDGE_CURVE('NONE', #7, #13, #75, .T.);
#217 = EDGE_CURVE('NONE', #13, #15, #79, .T.);
#218 = EDGE_CURVE('NONE', #9, #15, #83, .T.);
#219 = EDGE_CURVE('NONE', #13, #17, #87, .T.);
#220 = EDGE_CURVE('NONE', #17, #19, #91, .T.);
#221 = EDGE_CURVE('NONE', #15, #19, #95, .T.);
#222 = EDGE_CURVE('NONE', #17, #21, #99, .T.);
#223 = EDGE_CURVE('NONE', #21, #23, #103, .T.);
#224 = EDGE_CURVE('NONE', #19, #23, #107, .T.);
#225 = EDGE_CURVE('NONE', #21, #25, #111, .T.);
#226 = EDGE_CURVE('NONE', #25, #27, #115, .T.);
#227 = EDGE_CURVE('NONE', #23, #27, #119, .T.);
#228 = EDGE_CURVE('NONE', #25, #29, #123, .T.);
#229 = EDGE_CURVE('NONE', #29, #31, #127, .T.);
#230 = EDGE_CURVE('NONE', #27, #31, #131, .T.);
#231 = EDGE_CURVE('NONE', #29, #33, #135, .T.);
#232 = EDGE_CURVE('NONE', #33, #35, #139, .T.);
#233 = EDGE_CURVE('NONE', #31, #35, #143, .T.);
#234 = EDGE_CURVE('NONE', #33, #37, #147, .T.);
#235 = EDGE_CURVE('NONE', #37, #39, #151, .T.);
#236 = EDGE_CURVE('NONE', #35, #39, #155, .T.);
#237 = EDGE_CURVE('NONE', #37, #41, #159, .T.);
#238 = EDGE_CURVE('NONE', #41, #43, #163, .T.);
#239 = EDGE_CURVE('NONE', #39, #43, #167, .T.);
#240 = EDGE_CURVE('NONE', #41, #45, #171, .T.);
#241 = EDGE_CURVE('NONE', #45, #47, #175, .T.);
#242 = EDGE_CURVE('NONE', #43, #47, #179, .T.);
#243 = EDGE_CURVE('NONE', #45, #49, #183, .T.);
#244 = EDGE_CURVE('NONE', #49, #51, #187, .T.);
#245 = EDGE_CURVE('NONE', #47, #51, #191, .T.);
#246 = EDGE_CURVE('NONE', #49, #53, #195, .T.);
#247 = EDGE_CURVE('NONE', #53, #55, #199, .T.);
#248 = EDGE_CURVE('NONE', #51, #55, #203, .T.);
#249 = EDGE_CURVE('NONE', #53, #5, #207, .T.);
#250 = EDGE_CURVE('NONE', #55, #11, #211, .T.);
#251 = CARTESIAN_POINT('NONE', (-0.01691004999999998, -0.0508, -0.30480000000000007));
#252 = DIRECTION('NONE', (0, -1, -0));
#253 = AXIS2_PLACEMENT_3D('NONE', #251, #252, $);
#254 = PLANE('NONE', #253);
#255 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04707889999999995, -0.30479999999999996));
#256 = DIRECTION('NONE', (-1, 0, -0));
#257 = AXIS2_PLACEMENT_3D('NONE', #255, #256, $);
#258 = PLANE('NONE', #257);
#259 = CARTESIAN_POINT('NONE', (-0.018770600000000033, -0.043357799999999995, -0.30480000000000007));
#260 = DIRECTION('NONE', (0, 1, 0));
#261 = AXIS2_PLACEMENT_3D('NONE', #259, #260, $);
#262 = PLANE('NONE', #261);
#263 = CARTESIAN_POINT('NONE', (-0.0037211000000000024, 0, -0.3048));
#264 = DIRECTION('NONE', (-1, 0, -0));
#265 = AXIS2_PLACEMENT_3D('NONE', #263, #264, $);
#266 = PLANE('NONE', #265);
#267 = CARTESIAN_POINT('NONE', (-0.01877060000000003, 0.0433578, -0.30480000000000007));
#268 = DIRECTION('NONE', (0, -1, -0));
#269 = AXIS2_PLACEMENT_3D('NONE', #267, #268, $);
#270 = PLANE('NONE', #269);
#271 = CARTESIAN_POINT('NONE', (-0.0338201, 0.04707889999999997, -0.30479999999999996));
#272 = DIRECTION('NONE', (-1, 0, -0));
#273 = AXIS2_PLACEMENT_3D('NONE', #271, #272, $);
#274 = PLANE('NONE', #273);
#275 = CARTESIAN_POINT('NONE', (0, 0.0508, -0.3048));
#276 = DIRECTION('NONE', (0, 1, 0));
#277 = AXIS2_PLACEMENT_3D('NONE', #275, #276, $);
#278 = PLANE('NONE', #277);
#279 = CARTESIAN_POINT('NONE', (0.03382009999999999, 0.04707889999999999, -0.30479999999999996));
#280 = DIRECTION('NONE', (1, 0, 0));
#281 = AXIS2_PLACEMENT_3D('NONE', #279, #280, $);
#282 = PLANE('NONE', #281);
#283 = CARTESIAN_POINT('NONE', (0.018770600000000002, 0.043357799999999995, -0.3048));
#284 = DIRECTION('NONE', (0, -1, -0));
#285 = AXIS2_PLACEMENT_3D('NONE', #283, #284, $);
#286 = PLANE('NONE', #285);
#287 = CARTESIAN_POINT('NONE', (0.0037211000000000024, 0, -0.3048));
#288 = DIRECTION('NONE', (1, 0, 0));
#289 = AXIS2_PLACEMENT_3D('NONE', #287, #288, $);
#290 = PLANE('NONE', #289);
#291 = CARTESIAN_POINT('NONE', (0.018770600000000002, -0.043357799999999995, -0.3048));
#292 = DIRECTION('NONE', (0, 1, 0));
#293 = AXIS2_PLACEMENT_3D('NONE', #291, #292, $);
#294 = PLANE('NONE', #293);
#295 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04707889999999999, -0.3048));
#296 = DIRECTION('NONE', (1, 0, 0));
#297 = AXIS2_PLACEMENT_3D('NONE', #295, #296, $);
#298 = PLANE('NONE', #297);
#299 = CARTESIAN_POINT('NONE', (0.016910050000000003, -0.0508, -0.3048));
#300 = DIRECTION('NONE', (0, -1, -0));
#301 = AXIS2_PLACEMENT_3D('NONE', #299, #300, $);
#302 = PLANE('NONE', #301);
#303 = CARTESIAN_POINT('NONE', (0, 0, -0));
#304 = DIRECTION('NONE', (0, -0, -1));
#305 = AXIS2_PLACEMENT_3D('NONE', #303, #304, $);
#306 = PLANE('NONE', #305);
#307 = CARTESIAN_POINT('NONE', (0, 0, -0.6096));
#308 = DIRECTION('NONE', (0, -0, -1));
#309 = AXIS2_PLACEMENT_3D('NONE', #307, #308, $);
#310 = PLANE('NONE', #309);
#311 = ORIENTED_EDGE('NONE', *, *, #212, .T.);
#312 = ORIENTED_EDGE('NONE', *, *, #213, .T.);
#313 = ORIENTED_EDGE('NONE', *, *, #214, .F.);
#314 = ORIENTED_EDGE('NONE', *, *, #215, .F.);
#315 = EDGE_LOOP('NONE', (#311, #312, #313, #314));
#316 = FACE_BOUND('NONE', #315, .T.);
#317 = ADVANCED_FACE('NONE', (#316), #254, .T.);
#318 = ORIENTED_EDGE('NONE', *, *, #216, .T.);
#319 = ORIENTED_EDGE('NONE', *, *, #217, .T.);
#320 = ORIENTED_EDGE('NONE', *, *, #218, .F.);
#321 = ORIENTED_EDGE('NONE', *, *, #213, .F.);
#322 = EDGE_LOOP('NONE', (#318, #319, #320, #321));
#323 = FACE_BOUND('NONE', #322, .T.);
#324 = ADVANCED_FACE('NONE', (#323), #258, .T.);
#325 = ORIENTED_EDGE('NONE', *, *, #219, .T.);
#326 = ORIENTED_EDGE('NONE', *, *, #220, .T.);
#327 = ORIENTED_EDGE('NONE', *, *, #221, .F.);
#328 = ORIENTED_EDGE('NONE', *, *, #217, .F.);
#329 = EDGE_LOOP('NONE', (#325, #326, #327, #328));
#330 = FACE_BOUND('NONE', #329, .T.);
#331 = ADVANCED_FACE('NONE', (#330), #262, .T.);
#332 = ORIENTED_EDGE('NONE', *, *, #222, .T.);
#333 = ORIENTED_EDGE('NONE', *, *, #223, .T.);
#334 = ORIENTED_EDGE('NONE', *, *, #224, .F.);
#335 = ORIENTED_EDGE('NONE', *, *, #220, .F.);
#336 = EDGE_LOOP('NONE', (#332, #333, #334, #335));
#337 = FACE_BOUND('NONE', #336, .T.);
#338 = ADVANCED_FACE('NONE', (#337), #266, .T.);
#339 = ORIENTED_EDGE('NONE', *, *, #225, .T.);
#340 = ORIENTED_EDGE('NONE', *, *, #226, .T.);
#341 = ORIENTED_EDGE('NONE', *, *, #227, .F.);
#342 = ORIENTED_EDGE('NONE', *, *, #223, .F.);
#343 = EDGE_LOOP('NONE', (#339, #340, #341, #342));
#344 = FACE_BOUND('NONE', #343, .T.);
#345 = ADVANCED_FACE('NONE', (#344), #270, .T.);
#346 = ORIENTED_EDGE('NONE', *, *, #228, .T.);
#347 = ORIENTED_EDGE('NONE', *, *, #229, .T.);
#348 = ORIENTED_EDGE('NONE', *, *, #230, .F.);
#349 = ORIENTED_EDGE('NONE', *, *, #226, .F.);
#350 = EDGE_LOOP('NONE', (#346, #347, #348, #349));
#351 = FACE_BOUND('NONE', #350, .T.);
#352 = ADVANCED_FACE('NONE', (#351), #274, .T.);
#353 = ORIENTED_EDGE('NONE', *, *, #231, .T.);
#354 = ORIENTED_EDGE('NONE', *, *, #232, .T.);
#355 = ORIENTED_EDGE('NONE', *, *, #233, .F.);
#356 = ORIENTED_EDGE('NONE', *, *, #229, .F.);
#357 = EDGE_LOOP('NONE', (#353, #354, #355, #356));
#358 = FACE_BOUND('NONE', #357, .T.);
#359 = ADVANCED_FACE('NONE', (#358), #278, .T.);
#360 = ORIENTED_EDGE('NONE', *, *, #234, .T.);
#361 = ORIENTED_EDGE('NONE', *, *, #235, .T.);
#362 = ORIENTED_EDGE('NONE', *, *, #236, .F.);
#363 = ORIENTED_EDGE('NONE', *, *, #232, .F.);
#364 = EDGE_LOOP('NONE', (#360, #361, #362, #363));
#365 = FACE_BOUND('NONE', #364, .T.);
#366 = ADVANCED_FACE('NONE', (#365), #282, .T.);
#367 = ORIENTED_EDGE('NONE', *, *, #237, .T.);
#368 = ORIENTED_EDGE('NONE', *, *, #238, .T.);
#369 = ORIENTED_EDGE('NONE', *, *, #239, .F.);
#370 = ORIENTED_EDGE('NONE', *, *, #235, .F.);
#371 = EDGE_LOOP('NONE', (#367, #368, #369, #370));
#372 = FACE_BOUND('NONE', #371, .T.);
#373 = ADVANCED_FACE('NONE', (#372), #286, .T.);
#374 = ORIENTED_EDGE('NONE', *, *, #240, .T.);
#375 = ORIENTED_EDGE('NONE', *, *, #241, .T.);
#376 = ORIENTED_EDGE('NONE', *, *, #242, .F.);
#377 = ORIENTED_EDGE('NONE', *, *, #238, .F.);
#378 = EDGE_LOOP('NONE', (#374, #375, #376, #377));
#379 = FACE_BOUND('NONE', #378, .T.);
#380 = ADVANCED_FACE('NONE', (#379), #290, .T.);
#381 = ORIENTED_EDGE('NONE', *, *, #243, .T.);
#382 = ORIENTED_EDGE('NONE', *, *, #244, .T.);
#383 = ORIENTED_EDGE('NONE', *, *, #245, .F.);
#384 = ORIENTED_EDGE('NONE', *, *, #241, .F.);
#385 = EDGE_LOOP('NONE', (#381, #382, #383, #384));
#386 = FACE_BOUND('NONE', #385, .T.);
#387 = ADVANCED_FACE('NONE', (#386), #294, .T.);
#388 = ORIENTED_EDGE('NONE', *, *, #246, .T.);
#389 = ORIENTED_EDGE('NONE', *, *, #247, .T.);
#390 = ORIENTED_EDGE('NONE', *, *, #248, .F.);
#391 = ORIENTED_EDGE('NONE', *, *, #244, .F.);
#392 = EDGE_LOOP('NONE', (#388, #389, #390, #391));
#393 = FACE_BOUND('NONE', #392, .T.);
#394 = ADVANCED_FACE('NONE', (#393), #298, .T.);
#395 = ORIENTED_EDGE('NONE', *, *, #249, .T.);
#396 = ORIENTED_EDGE('NONE', *, *, #215, .T.);
#397 = ORIENTED_EDGE('NONE', *, *, #250, .F.);
#398 = ORIENTED_EDGE('NONE', *, *, #247, .F.);
#399 = EDGE_LOOP('NONE', (#395, #396, #397, #398));
#400 = FACE_BOUND('NONE', #399, .T.);
#401 = ADVANCED_FACE('NONE', (#400), #302, .T.);
#402 = ORIENTED_EDGE('NONE', *, *, #249, .F.);
#403 = ORIENTED_EDGE('NONE', *, *, #246, .F.);
#404 = ORIENTED_EDGE('NONE', *, *, #243, .F.);
#405 = ORIENTED_EDGE('NONE', *, *, #240, .F.);
#406 = ORIENTED_EDGE('NONE', *, *, #237, .F.);
#407 = ORIENTED_EDGE('NONE', *, *, #234, .F.);
#408 = ORIENTED_EDGE('NONE', *, *, #231, .F.);
#409 = ORIENTED_EDGE('NONE', *, *, #228, .F.);
#410 = ORIENTED_EDGE('NONE', *, *, #225, .F.);
#411 = ORIENTED_EDGE('NONE', *, *, #222, .F.);
#412 = ORIENTED_EDGE('NONE', *, *, #219, .F.);
#413 = ORIENTED_EDGE('NONE', *, *, #216, .F.);
#414 = ORIENTED_EDGE('NONE', *, *, #212, .F.);
#415 = EDGE_LOOP('NONE', (#402, #403, #404, #405, #406, #407, #408, #409, #410, #411, #412, #413, #414));
#416 = FACE_BOUND('NONE', #415, .T.);
#417 = ADVANCED_FACE('NONE', (#416), #306, .F.);
#418 = ORIENTED_EDGE('NONE', *, *, #214, .T.);
#419 = ORIENTED_EDGE('NONE', *, *, #218, .T.);
#420 = ORIENTED_EDGE('NONE', *, *, #221, .T.);
#421 = ORIENTED_EDGE('NONE', *, *, #224, .T.);
#422 = ORIENTED_EDGE('NONE', *, *, #227, .T.);
#423 = ORIENTED_EDGE('NONE', *, *, #230, .T.);
#424 = ORIENTED_EDGE('NONE', *, *, #233, .T.);
#425 = ORIENTED_EDGE('NONE', *, *, #236, .T.);
#426 = ORIENTED_EDGE('NONE', *, *, #239, .T.);
#427 = ORIENTED_EDGE('NONE', *, *, #242, .T.);
#428 = ORIENTED_EDGE('NONE', *, *, #245, .T.);
#429 = ORIENTED_EDGE('NONE', *, *, #248, .T.);
#430 = ORIENTED_EDGE('NONE', *, *, #250, .T.);
#431 = EDGE_LOOP('NONE', (#418, #419, #420, #421, #422, #423, #424, #425, #426, #427, #428, #429, #430));
#432 = FACE_BOUND('NONE', #431, .T.);
#433 = ADVANCED_FACE('NONE', (#432), #310, .T.);
#434 = CLOSED_SHELL('NONE', (#317, #324, #331, #338, #345, #352, #359, #366, #373, #380, #387, #394, #401, #417, #433));
#435 = MANIFOLD_SOLID_BREP('NONE', #434);
#436 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#437 = PRODUCT_DEFINITION_CONTEXT('part definition', #436, 'design');
#438 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#439 = PRODUCT_DEFINITION_FORMATION('', $, #438);
#440 = PRODUCT_DEFINITION('design', $, #439, #437);
#441 = PRODUCT_DEFINITION_SHAPE('NONE', $, #440);
#442 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#435), #3);
#443 = SHAPE_DEFINITION_REPRESENTATION(#441, #442);
ENDSEC;
END-ISO-10303-21;

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file i-beam.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file kitt.kcl
extension: step
snapshot_kind: binary
---

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
source: kcl-lib/src/simulation_tests.rs
description: Step file lego.kcl
extension: step
snapshot_kind: binary
---

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