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

This commit is contained in:
Pierre Jacquier
2025-03-19 09:14:03 -04:00
176 changed files with 29550 additions and 24537 deletions

View File

@ -105,7 +105,7 @@ Finally, to run the web app only, run:
yarn start yarn start
``` ```
If you're not a Zoo employee you won't be able to access the dev environment, you should copy everything from `.env.production` to `.env.development` to make it point to production instead, then when you navigate to `localhost:3000` the easiest way to sign in is to paste `localStorage.setItem('TOKEN_PERSIST_KEY', "your-token-from-https://zoo.dev/account/api-tokens")` replacing the with a real token from https://zoo.dev/account/api-tokens of course, then navigate to localhost:3000 again. Note that navigating to `localhost:3000/signin` removes your token so you will need to set the token again. If you're not a Zoo employee you won't be able to access the dev environment, you should copy everything from `.env.production` to `.env.development.local` to make it point to production instead, then when you navigate to `localhost:3000` the easiest way to sign in is to paste `localStorage.setItem('TOKEN_PERSIST_KEY', "your-token-from-https://zoo.dev/account/api-tokens")` replacing the with a real token from https://zoo.dev/account/api-tokens of course, then navigate to `localhost:3000` again. Note that navigating to `localhost:3000/signin` removes your token so you will need to set the token again.
### Development environment variables ### Development environment variables
@ -122,7 +122,7 @@ Third-Party Cookies".
## Desktop ## Desktop
To spin up the desktop app, `yarn install` and `yarn build:wasm` need to have been done before hand then To spin up the desktop app, `yarn install` and `yarn build:wasm` need to have been done before hand then:
``` ```
yarn tron:start yarn tron:start
@ -130,13 +130,13 @@ yarn tron:start
This will start the application and hot-reload on changes. This will start the application and hot-reload on changes.
Devtools can be opened with the usual Cmd-Opt-I (Mac) or Ctrl-Shift-I (Linux and Windows). Devtools can be opened with the usual Command-Option-I (macOS) or Ctrl-Shift-I (Linux and Windows).
To package the app for your platform with electron-builder, run `yarn tronb:package:dev` (or `yarn tronb:package:prod` to point to the .env.production variables) To package the app for your platform with electron-builder, run `yarn tronb:package:dev` (or `yarn tronb:package:prod` to point to the .env.production variables).
## Checking out commits / Bisecting ## Checking out commits / Bisecting
Which commands from setup are one off vs need to be run every time? Which commands from setup are one off vs. need to be run every time?
The following will need to be run when checking out a new commit and guarantees the build is not stale: The following will need to be run when checking out a new commit and guarantees the build is not stale:

View File

@ -54,7 +54,7 @@ example = extrude(exampleSketch, length = 5)
// Add color to a revolved solid. // Add color to a revolved solid.
sketch001 = startSketchOn('XY') sketch001 = startSketchOn('XY')
|> circle(center = [15, 0], radius = 5) |> circle(center = [15, 0], radius = 5)
|> revolve({ angle = 360, axis = 'y' }, %) |> revolve(angle = 360, axis = 'y')
|> appearance(color = '#ff0000', metalness = 90, roughness = 90) |> appearance(color = '#ff0000', metalness = 90, roughness = 90)
``` ```

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,10 @@
--- ---
title: "scale" title: "scale"
excerpt: "Scale a solid." excerpt: "Scale a solid or a sketch."
layout: manual layout: manual
--- ---
Scale a solid. Scale a solid or a sketch.
By default the transform is applied in local sketch axis, therefore the origin will not move. By default the transform is applied in local sketch axis, therefore the origin will not move.
@ -12,10 +12,10 @@ If you want to apply the transform in global space, set `global` to `true`. The
```js ```js
scale( scale(
solids: SolidOrImportedGeometry, objects: SolidOrSketchOrImportedGeometry,
scale: [number], scale: [number],
global?: bool, global?: bool,
): SolidOrImportedGeometry ): SolidOrSketchOrImportedGeometry
``` ```
@ -23,13 +23,13 @@ scale(
| Name | Type | Description | Required | | Name | Type | Description | Required |
|----------|------|-------------|----------| |----------|------|-------------|----------|
| `solids` | [`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) | The solid or set of solids to scale. | Yes | | `objects` | [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) | The solid, sketch, or set of solids or sketches to scale. | Yes |
| `scale` | [`[number]`](/docs/kcl/types/number) | The scale factor for the x, y, and z axes. | Yes | | `scale` | [`[number]`](/docs/kcl/types/number) | The scale factor for the x, y, and z axes. | Yes |
| `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No | | `global` | [`bool`](/docs/kcl/types/bool) | If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move. | No |
### Returns ### Returns
[`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) - Data for a solid or an imported geometry. [`SolidOrSketchOrImportedGeometry`](/docs/kcl/types/SolidOrSketchOrImportedGeometry) - Data for a solid or an imported geometry.
### Examples ### Examples

View File

@ -112,7 +112,7 @@ exampleSketch = startSketchOn(XY)
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
example = revolve({ axis = 'y', angle = 180 }, exampleSketch) example = revolve(exampleSketch, axis = 'y', angle = 180)
exampleSketch002 = startSketchOn(example, 'end') exampleSketch002 = startSketchOn(example, 'end')
|> startProfileAt([4.5, -5], %) |> startProfileAt([4.5, -5], %)

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,66 @@
---
title: "SolidOrSketchOrImportedGeometry"
excerpt: "Data for a solid or an imported geometry."
layout: manual
---
Data for a solid or an imported geometry.
**This schema accepts exactly one of the following:**
Data for an imported geometry.
**Type:** `object`
## Properties
| Property | Type | Description | Required |
|----------|------|-------------|----------|
| `type` |enum: `importedGeometry`| | No |
| `id` |[`string`](/docs/kcl/types/string)| The ID of the imported geometry. | No |
| `value` |`[` [`string`](/docs/kcl/types/string) `]`| The original file paths. | No |
----
**Type:** `[object, array]`
`[` [`Solid`](/docs/kcl/types/Solid) `]`
## Properties
| Property | Type | Description | Required |
|----------|------|-------------|----------|
| `type` |enum: `solidSet`| | No |
----
**Type:** `[object, array]`
`[` [`Sketch`](/docs/kcl/types/Sketch) `]`
## Properties
| Property | Type | Description | Required |
|----------|------|-------------|----------|
| `type` |enum: `sketchSet`| | No |
----

View File

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

View File

@ -21,7 +21,7 @@ sketch001 = startSketchOn('XZ')
|> angledLine([-45, length001], %) |> angledLine([-45, length001], %)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
revolve001 = revolve({ axis = "X" }, sketch001) revolve001 = revolve(sketch001, axis = "X")
triangle() triangle()
|> extrude(length = 30) |> extrude(length = 30)
plane001 = offsetPlane('XY', offset = 10) plane001 = offsetPlane('XY', offset = 10)
@ -126,7 +126,7 @@ test.describe('Feature Tree pane', () => {
await testViewSource({ await testViewSource({
operationName: 'Revolve', operationName: 'Revolve',
operationIndex: 0, operationIndex: 0,
expectedActiveLine: 'revolve001 = revolve({ axis = "X" }, sketch001)', expectedActiveLine: 'revolve001 = revolve(sketch001, axis = "X")',
}) })
await testViewSource({ await testViewSource({
operationName: 'Triangle', operationName: 'Triangle',

View File

@ -850,159 +850,157 @@ openSketch = startSketchOn('XY')
}) })
}) })
test(`Shift-click to select and deselect sketch segments`, async ({ test.fixme(
page, `Shift-click to select and deselect sketch segments`,
homePage, async ({ page, homePage, scene, editor }) => {
scene, // Locators
editor, const firstPointLocation = { x: 200, y: 100 }
}) => { const secondPointLocation = { x: 800, y: 100 }
// Locators const thirdPointLocation = { x: 800, y: 400 }
const firstPointLocation = { x: 200, y: 100 } const fristSegmentLocation = { x: 750, y: 100 }
const secondPointLocation = { x: 800, y: 100 } const secondSegmentLocation = { x: 800, y: 150 }
const thirdPointLocation = { x: 800, y: 400 } const planeLocation = { x: 700, y: 200 }
const fristSegmentLocation = { x: 750, y: 100 }
const secondSegmentLocation = { x: 800, y: 150 }
const planeLocation = { x: 700, y: 200 }
// Click helpers // Click helpers
const [clickFirstPoint] = scene.makeMouseHelpers( const [clickFirstPoint] = scene.makeMouseHelpers(
firstPointLocation.x, firstPointLocation.x,
firstPointLocation.y firstPointLocation.y
) )
const [clickSecondPoint] = scene.makeMouseHelpers( const [clickSecondPoint] = scene.makeMouseHelpers(
secondPointLocation.x, secondPointLocation.x,
secondPointLocation.y secondPointLocation.y
) )
const [clickThirdPoint] = scene.makeMouseHelpers( const [clickThirdPoint] = scene.makeMouseHelpers(
thirdPointLocation.x, thirdPointLocation.x,
thirdPointLocation.y thirdPointLocation.y
) )
const [clickFirstSegment] = scene.makeMouseHelpers( const [clickFirstSegment] = scene.makeMouseHelpers(
fristSegmentLocation.x, fristSegmentLocation.x,
fristSegmentLocation.y fristSegmentLocation.y
) )
const [clickSecondSegment] = scene.makeMouseHelpers( const [clickSecondSegment] = scene.makeMouseHelpers(
secondSegmentLocation.x, secondSegmentLocation.x,
secondSegmentLocation.y secondSegmentLocation.y
) )
const [clickPlane] = scene.makeMouseHelpers( const [clickPlane] = scene.makeMouseHelpers(
planeLocation.x, planeLocation.x,
planeLocation.y planeLocation.y
)
// Colors
const edgeColorWhite: [number, number, number] = [220, 220, 220]
const edgeColorBlue: [number, number, number] = [20, 20, 200]
const backgroundColor: [number, number, number] = [30, 30, 30]
const tolerance = 40
const timeout = 150
// Setup
await test.step(`Initial test setup`, async () => {
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
// Wait for the scene and stream to load
await scene.expectPixelColor(
backgroundColor,
secondPointLocation,
tolerance
) )
})
await test.step('Select and deselect a single sketch segment', async () => { // Colors
await test.step('Get into sketch mode', async () => { const edgeColorWhite: [number, number, number] = [220, 220, 220]
await editor.closePane() const edgeColorBlue: [number, number, number] = [20, 20, 200]
await page.waitForTimeout(timeout) const backgroundColor: [number, number, number] = [30, 30, 30]
await page.getByRole('button', { name: 'Start Sketch' }).click() const tolerance = 40
await page.waitForTimeout(timeout) const timeout = 150
await clickPlane()
await page.waitForTimeout(1000) // Setup
}) await test.step(`Initial test setup`, async () => {
await test.step('Draw sketch', async () => { await page.setBodyDimensions({ width: 1000, height: 500 })
await clickFirstPoint() await homePage.goToModelingScene()
await page.waitForTimeout(timeout)
await clickSecondPoint() // Wait for the scene and stream to load
await page.waitForTimeout(timeout)
await clickThirdPoint()
await page.waitForTimeout(timeout)
})
await test.step('Deselect line tool', async () => {
const btnLine = page.getByTestId('line')
const btnLineAriaPressed = await btnLine.getAttribute('aria-pressed')
if (btnLineAriaPressed === 'true') {
await btnLine.click()
}
await page.waitForTimeout(timeout)
})
await test.step('Select the first segment', async () => {
await page.waitForTimeout(timeout)
await clickFirstSegment()
await page.waitForTimeout(timeout)
await scene.expectPixelColor( await scene.expectPixelColor(
edgeColorBlue, backgroundColor,
fristSegmentLocation, secondPointLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorWhite,
secondSegmentLocation,
tolerance tolerance
) )
}) })
await test.step('Select the second segment (Shift-click)', async () => {
await page.keyboard.down('Shift') await test.step('Select and deselect a single sketch segment', async () => {
await page.waitForTimeout(timeout) await test.step('Get into sketch mode', async () => {
await clickSecondSegment() await editor.closePane()
await page.waitForTimeout(timeout) await page.waitForTimeout(timeout)
await page.keyboard.up('Shift') await page.getByRole('button', { name: 'Start Sketch' }).click()
await scene.expectPixelColor( await page.waitForTimeout(timeout)
edgeColorBlue, await clickPlane()
fristSegmentLocation, await page.waitForTimeout(1000)
tolerance })
) await test.step('Draw sketch', async () => {
await scene.expectPixelColor( await clickFirstPoint()
edgeColorBlue, await page.waitForTimeout(timeout)
secondSegmentLocation, await clickSecondPoint()
tolerance await page.waitForTimeout(timeout)
) await clickThirdPoint()
await page.waitForTimeout(timeout)
})
await test.step('Deselect line tool', async () => {
const btnLine = page.getByTestId('line')
const btnLineAriaPressed = await btnLine.getAttribute('aria-pressed')
if (btnLineAriaPressed === 'true') {
await btnLine.click()
}
await page.waitForTimeout(timeout)
})
await test.step('Select the first segment', async () => {
await page.waitForTimeout(timeout)
await clickFirstSegment()
await page.waitForTimeout(timeout)
await scene.expectPixelColor(
edgeColorBlue,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorWhite,
secondSegmentLocation,
tolerance
)
})
await test.step('Select the second segment (Shift-click)', async () => {
await page.keyboard.down('Shift')
await page.waitForTimeout(timeout)
await clickSecondSegment()
await page.waitForTimeout(timeout)
await page.keyboard.up('Shift')
await scene.expectPixelColor(
edgeColorBlue,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorBlue,
secondSegmentLocation,
tolerance
)
})
await test.step('Deselect the first segment', async () => {
await page.keyboard.down('Shift')
await page.waitForTimeout(timeout)
await clickFirstSegment()
await page.waitForTimeout(timeout)
await page.keyboard.up('Shift')
await scene.expectPixelColor(
edgeColorWhite,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorBlue,
secondSegmentLocation,
tolerance
)
})
await test.step('Deselect the second segment', async () => {
await page.keyboard.down('Shift')
await page.waitForTimeout(timeout)
await clickSecondSegment()
await page.waitForTimeout(timeout)
await page.keyboard.up('Shift')
await scene.expectPixelColor(
edgeColorWhite,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorWhite,
secondSegmentLocation,
tolerance
)
})
}) })
await test.step('Deselect the first segment', async () => { }
await page.keyboard.down('Shift') )
await page.waitForTimeout(timeout)
await clickFirstSegment()
await page.waitForTimeout(timeout)
await page.keyboard.up('Shift')
await scene.expectPixelColor(
edgeColorWhite,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorBlue,
secondSegmentLocation,
tolerance
)
})
await test.step('Deselect the second segment', async () => {
await page.keyboard.down('Shift')
await page.waitForTimeout(timeout)
await clickSecondSegment()
await page.waitForTimeout(timeout)
await page.keyboard.up('Shift')
await scene.expectPixelColor(
edgeColorWhite,
fristSegmentLocation,
tolerance
)
await scene.expectPixelColor(
edgeColorWhite,
secondSegmentLocation,
tolerance
)
})
})
})
test(`Offset plane point-and-click`, async ({ test(`Offset plane point-and-click`, async ({
context, context,
@ -2860,7 +2858,7 @@ segAng(rectangleSegmentA002),
await cmdBar.progressCmdBar() await cmdBar.progressCmdBar()
await cmdBar.progressCmdBar() await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve({ angle = 360, axis = 'X' }, sketch002)` const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = 'X')`
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy() expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
}) })
test('revolve surface around edge from an extruded solid2d', async ({ test('revolve surface around edge from an extruded solid2d', async ({
@ -2910,7 +2908,7 @@ radius = 8.69
await page.getByText(lineCodeToSelection).click() await page.getByText(lineCodeToSelection).click()
await cmdBar.progressCmdBar() await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve({angle = 360, axis = getOppositeEdge(rectangleSegmentA001)}, sketch002) ` const newCodeToFind = `revolve001 = revolve(sketch002, angle = 360, axis = getOppositeEdge(rectangleSegmentA001)) `
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy() expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
}) })
test('revolve sketch circle around line segment from startProfileAt sketch', async ({ test('revolve sketch circle around line segment from startProfileAt sketch', async ({
@ -2961,7 +2959,7 @@ radius = 8.69
await page.getByText(lineCodeToSelection).click() await page.getByText(lineCodeToSelection).click()
await cmdBar.progressCmdBar() await cmdBar.progressCmdBar()
const newCodeToFind = `revolve001 = revolve({ angle = 360, axis = seg01 }, sketch003)` const newCodeToFind = `revolve001 = revolve(sketch003, angle = 360, axis = seg01)`
expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy() expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy()
}) })
}) })

View File

@ -196,64 +196,60 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => {
}) })
}) })
test(`manual code selection rename`, async ({ test.fixme(
context, `manual code selection rename`,
homePage, async ({ context, homePage, cmdBar, editor, page, scene }) => {
cmdBar, const body1CapCoords = { x: 571, y: 311 }
editor,
page,
scene,
}) => {
const body1CapCoords = { x: 571, y: 311 }
await context.addInitScript((file) => { await context.addInitScript((file) => {
localStorage.setItem('persistCode', file) localStorage.setItem('persistCode', file)
}, file) }, file)
await homePage.goToModelingScene() await homePage.goToModelingScene()
await scene.waitForExecutionDone() await scene.waitForExecutionDone()
const submittingToast = page.getByText('Submitting to Text-to-CAD API...') const submittingToast = page.getByText('Submitting to Text-to-CAD API...')
const successToast = page.getByText('Prompt to edit successful') const successToast = page.getByText('Prompt to edit successful')
const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' }) const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' })
await test.step('wait for scene to load and select code in editor', async () => { await test.step('wait for scene to load and select code in editor', async () => {
// Find and select the text "sketch002" in the editor // Find and select the text "sketch002" in the editor
await editor.selectText('sketch002') await editor.selectText('sketch002')
// Verify the selection was made // Verify the selection was made
await editor.expectState({ await editor.expectState({
highlightedCode: '', highlightedCode: '',
activeLines: ["sketch002 = startSketchOn('XZ')"], activeLines: ["sketch002 = startSketchOn('XZ')"],
diagnostics: [], diagnostics: [],
})
}) })
})
await test.step('fire off edit prompt', async () => { await test.step('fire off edit prompt', async () => {
await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15) await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15)
await cmdBar.openCmdBar('promptToEdit') await cmdBar.openCmdBar('promptToEdit')
await page await page
.getByTestId('cmd-bar-arg-value') .getByTestId('cmd-bar-arg-value')
.fill('Please rename to mySketch001') .fill('Please rename to mySketch001')
await page.waitForTimeout(100) await page.waitForTimeout(100)
await cmdBar.progressCmdBar() await cmdBar.progressCmdBar()
await expect(submittingToast).toBeVisible() await expect(submittingToast).toBeVisible()
await expect(submittingToast).not.toBeVisible({ await expect(submittingToast).not.toBeVisible({
timeout: 2 * 60_000, timeout: 2 * 60_000,
})
await expect(successToast).toBeVisible()
}) })
await expect(successToast).toBeVisible()
})
await test.step('verify rename change and accept it', async () => { await test.step('verify rename change and accept it', async () => {
await editor.expectEditor.toContain('mySketch001 = startSketchOn') await editor.expectEditor.toContain('mySketch001 = startSketchOn')
await editor.expectEditor.not.toContain('sketch002 = startSketchOn') await editor.expectEditor.not.toContain('sketch002 = startSketchOn')
await editor.expectEditor.toContain( await editor.expectEditor.toContain(
'extrude002 = extrude(mySketch001, length = 50)' 'extrude002 = extrude(mySketch001, length = 50)'
) )
await acceptBtn.click() await acceptBtn.click()
await expect(successToast).not.toBeVisible() await expect(successToast).not.toBeVisible()
}) })
}) }
)
test('multiple body selections', async ({ test('multiple body selections', async ({
context, context,

View File

@ -405,8 +405,9 @@ extrude001 = extrude(sketch001, length = 50)
await expect(successToastMessage).toBeVisible() await expect(successToastMessage).toBeVisible()
} }
) )
// We updated this test such that you can have multiple exports going at once.
test( test(
'ensure you can not export while an export is already going', 'ensure you CAN export while an export is already going',
{ tag: ['@skipLinux', '@skipWin'] }, { tag: ['@skipLinux', '@skipWin'] },
async ({ page, homePage }) => { async ({ page, homePage }) => {
const u = await getUtils(page) const u = await getUtils(page)
@ -441,22 +442,13 @@ extrude001 = extrude(sketch001, length = 50)
const alreadyExportingToastMessage = page.getByText(`Already exporting`) const alreadyExportingToastMessage = page.getByText(`Already exporting`)
const successToastMessage = page.getByText(`Exported successfully`) const successToastMessage = page.getByText(`Exported successfully`)
await test.step('Blocked second export', async () => { await test.step('second export', async () => {
await clickExportButton(page) await clickExportButton(page)
await expect(exportingToastMessage).toBeVisible() await expect(exportingToastMessage).toBeVisible()
await clickExportButton(page) await clickExportButton(page)
await test.step('The second export is blocked', async () => {
// Find the toast.
// Look out for the toast message
await Promise.all([
expect(exportingToastMessage.first()).toBeVisible(),
expect(alreadyExportingToastMessage).toBeVisible(),
])
})
await test.step('The first export still succeeds', async () => { await test.step('The first export still succeeds', async () => {
await Promise.all([ await Promise.all([
expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }), expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }),
@ -486,12 +478,12 @@ extrude001 = extrude(sketch001, length = 50)
expect(alreadyExportingToastMessage).not.toBeVisible(), expect(alreadyExportingToastMessage).not.toBeVisible(),
]) ])
await expect(successToastMessage).toBeVisible() await expect(successToastMessage).toHaveCount(2)
}) })
} }
) )
test( test.fixme(
`Network health indicator only appears in modeling view`, `Network health indicator only appears in modeling view`,
{ tag: '@electron' }, { tag: '@electron' },
async ({ context, page }, testInfo) => { async ({ context, page }, testInfo) => {

View File

@ -187,7 +187,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
page.getByRole('button', { name: 'Start Sketch' }) page.getByRole('button', { name: 'Start Sketch' })
).toBeVisible() ).toBeVisible()
}) })
test.describe('Can edit segments by dragging their handles', () => { test.fixme('Can edit segments by dragging their handles', () => {
const doEditSegmentsByDraggingHandle = async ( const doEditSegmentsByDraggingHandle = async (
page: Page, page: Page,
homePage: HomePageFixture, homePage: HomePageFixture,
@ -666,7 +666,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> line(end = [12.73, -0.09]) |> line(end = [12.73, -0.09])
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArcTo([24.95, -5.38], %)
|> close() |> close()
|> revolve({ axis = "X",}, %)` |> revolve(axis = "X")`
) )
}) })
@ -753,7 +753,7 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
|> tangentialArcTo([24.95, -5.38], %) |> tangentialArcTo([24.95, -5.38], %)
|> line(end = [1.97, 2.06]) |> line(end = [1.97, 2.06])
|> close() |> close()
|> revolve({ axis = "X" }, %)`) |> revolve(axis = "X")`)
}) })
test('Can add multiple sketches', async ({ page, homePage }) => { test('Can add multiple sketches', async ({ page, homePage }) => {
const u = await getUtils(page) const u = await getUtils(page)
@ -1200,7 +1200,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
|> xLine(endAbsolute = 0 + .001) |> xLine(endAbsolute = 0 + .001)
|> yLine(endAbsolute = 0) |> yLine(endAbsolute = 0)
|> close() |> close()
|> revolve({ axis = "Y" }, %) |> revolve(axis = "Y")
return lugSketch return lugSketch
} }
@ -1454,7 +1454,7 @@ test.describe(`Sketching with offset planes`, () => {
}) })
test.describe('multi-profile sketching', () => { test.describe('multi-profile sketching', () => {
test( test.fixme(
`test it removes half-finished expressions when changing tools in sketch mode`, `test it removes half-finished expressions when changing tools in sketch mode`,
{ tag: ['@skipWin'] }, { tag: ['@skipWin'] },
async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => { async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => {
@ -2570,10 +2570,11 @@ profile006 = startProfileAt([9.65, 3.82], sketch002)
|> line(end = [2.13, -5.57]) |> line(end = [2.13, -5.57])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
revolve001 = revolve({ revolve001 = revolve(
profile004,
angle = 45, angle = 45,
axis = getNextAdjacentEdge(seg01) axis = getNextAdjacentEdge(seg01)
}, profile004) )
extrude002 = extrude(profile006, length = 4) extrude002 = extrude(profile006, length = 4)
sketch003 = startSketchOn('-XZ') sketch003 = startSketchOn('-XZ')
profile007 = startProfileAt([4.8, 7.55], sketch003) profile007 = startProfileAt([4.8, 7.55], sketch003)
@ -2608,7 +2609,7 @@ profile011 = startProfileAt([5.07, -6.39], sketch003)
|> close() |> close()
extrude003 = extrude(profile011, length = 2.5) extrude003 = extrude(profile011, length = 2.5)
// TODO this breaks the test, // TODO this breaks the test,
// revolve002 = revolve({ angle = 45, axis = seg02 }, profile008) // revolve002 = revolve(profile008, angle = 45, axis = seg02)
` `
) )
}) })

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -142,10 +142,10 @@ sketch001 = startSketchOn(box, revolveAxis)
|> line(end = [2, 0]) |> line(end = [2, 0])
|> line(end = [0, -10]) |> line(end = [0, -10])
|> close() |> close()
|> revolve({ |> revolve(
axis: revolveAxis, axis = revolveAxis,
angle: 90 angle = 90
}, %) )
sketch001 = startSketchOn('XZ') sketch001 = startSketchOn('XZ')
|> startProfileAt([0.0, 0.0], %) |> startProfileAt([0.0, 0.0], %)

View File

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

View File

@ -323,7 +323,7 @@ part009 = startSketchOn('XY')
|> line(end = [0, pipeLength]) |> line(end = [0, pipeLength])
|> angledLineToX({ angle = 60, to = pipeLargeDia }, %) |> angledLineToX({ angle = 60, to = pipeLargeDia }, %)
|> close() |> close()
rev = revolve({ axis = 'y' }, part009) rev = revolve(part009, axis = 'y')
sketch006 = startSketchOn('XY') sketch006 = startSketchOn('XY')
profile001 = circle( profile001 = circle(
sketch006, sketch006,
@ -379,7 +379,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await page.waitForTimeout(200) await page.waitForTimeout(200)
await expect(u.codeLocator).not.toContainText( await expect(u.codeLocator).not.toContainText(
`rev = revolve({ axis: 'y' }, part009)` `rev = revolve(part009, axis: 'y')`
) )
// FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude // FIXME (commented section below), this test would select a wall that had a sketch on it, and delete the underlying extrude
@ -451,19 +451,15 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
await page.waitForTimeout(200) await page.waitForTimeout(200)
await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet) await expect(u.codeLocator).not.toContainText(codeToBeDeletedSnippet)
}) })
test('parent Solid should be select and deletable and uses custom planes to position children', async ({ test.fixme(
page, 'parent Solid should be select and deletable and uses custom planes to position children',
homePage, async ({ page, homePage, scene, cmdBar, editor }) => {
scene, test.setTimeout(90_000)
cmdBar, const u = await getUtils(page)
editor, await page.addInitScript(async () => {
}) => { localStorage.setItem(
test.setTimeout(90_000) 'persistCode',
const u = await getUtils(page) `part001 = startSketchOn('XY')
await page.addInitScript(async () => {
localStorage.setItem(
'persistCode',
`part001 = startSketchOn('XY')
yo = startProfileAt([4.83, 12.56], part001) yo = startProfileAt([4.83, 12.56], part001)
|> line(end = [15.1, 2.48]) |> line(end = [15.1, 2.48])
|> line(end = [3.15, -9.85], tag = $seg01) |> line(end = [3.15, -9.85], tag = $seg01)
@ -494,34 +490,35 @@ profile001 = startProfileAt([7.49, 9.96], sketch001)
|> close() |> close()
` `
)
}, KCL_DEFAULT_LENGTH)
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await scene.settled(cmdBar)
const extrudeWall = { x: 575, y: 238 }
// DELETE with selection on face of parent
await page.mouse.click(extrudeWall.x, extrudeWall.y)
await page.waitForTimeout(100)
await expect(page.locator('.cm-activeLine')).toHaveText(
'|> line(end = [-15.17, -4.1])'
) )
}, KCL_DEFAULT_LENGTH) await u.openAndClearDebugPanel()
await page.setBodyDimensions({ width: 1000, height: 500 }) await page.keyboard.press('Delete')
await u.expectCmdLog('[data-message-type="execution-done"]', 10_000)
await page.waitForTimeout(200)
await homePage.goToModelingScene() await editor.expectEditor.not.toContain(`yoo = extrude(yo, length = 4)`, {
await scene.settled(cmdBar) shouldNormalise: true,
})
const extrudeWall = { x: 575, y: 238 } await editor.expectEditor.toContain(`startSketchOn({plane={origin`, {
shouldNormalise: true,
// DELETE with selection on face of parent })
await page.mouse.click(extrudeWall.x, extrudeWall.y) await editor.snapshot()
await page.waitForTimeout(100) }
await expect(page.locator('.cm-activeLine')).toHaveText( )
'|> line(end = [-15.17, -4.1])'
)
await u.openAndClearDebugPanel()
await page.keyboard.press('Delete')
await u.expectCmdLog('[data-message-type="execution-done"]', 10_000)
await page.waitForTimeout(200)
await editor.expectEditor.not.toContain(`yoo = extrude(yo, length = 4)`, {
shouldNormalise: true,
})
await editor.expectEditor.toContain(`startSketchOn({plane={origin`, {
shouldNormalise: true,
})
await editor.snapshot()
})
test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({ test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({
page, page,
homePage, homePage,

View File

@ -977,67 +977,63 @@ fn cube`
/** /**
* This test assumes that the default value of the "highlight edges" setting is "on". * This test assumes that the default value of the "highlight edges" setting is "on".
*/ */
test(`Toggle stream settings multiple times`, async ({ test.fixme(
page, `Toggle stream settings multiple times`,
scene, async ({ page, scene, homePage, context, toolbar, cmdBar }, testInfo) => {
homePage, await context.folderSetupFn(async (dir) => {
context, const projectDir = join(dir, 'project-000')
toolbar, await fsp.mkdir(projectDir, { recursive: true })
cmdBar, await fsp.copyFile(
}, testInfo) => { executorInputPath('cube.kcl'),
await context.folderSetupFn(async (dir) => { join(projectDir, 'main.kcl')
const projectDir = join(dir, 'project-000') )
await fsp.mkdir(projectDir, { recursive: true }) })
await fsp.copyFile(
executorInputPath('cube.kcl'),
join(projectDir, 'main.kcl')
)
})
await test.step(`First snapshot`, async () => { await test.step(`First snapshot`, async () => {
await homePage.openProject('project-000') await homePage.openProject('project-000')
await toolbar.closePane('code') await toolbar.closePane('code')
await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 }) await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 })
await scene.clickNoWhere() await scene.clickNoWhere()
}) })
const toast = (value: boolean) => const toast = (value: boolean) =>
page.getByText( page.getByText(
`Set highlight edges to "${String(value)}" as a user default` `Set highlight edges to "${String(value)}" as a user default`
)
await test.step(`Toggle highlightEdges off`, async () => {
await cmdBar.openCmdBar()
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
await cmdBar.selectOption({ name: 'off' }).click()
const falseToast = toast(false)
await expect(falseToast).toBeVisible()
await falseToast.waitFor({ state: 'detached' })
})
await expect(scene.streamWrapper).not.toHaveScreenshot(
'toggle-settings-initial.png',
{
maxDiffPixels: 15,
mask: [page.getByTestId('model-state-indicator')],
}
) )
await test.step(`Toggle highlightEdges off`, async () => { await test.step(`Toggle highlightEdges on`, async () => {
await cmdBar.openCmdBar() await cmdBar.openCmdBar()
await cmdBar.chooseCommand('Settings · modeling · highlight edges') await cmdBar.chooseCommand('Settings · modeling · highlight edges')
await cmdBar.selectOption({ name: 'off' }).click() await cmdBar.selectOption({ name: 'on' }).click()
const falseToast = toast(false) const trueToast = toast(true)
await expect(falseToast).toBeVisible() await expect(trueToast).toBeVisible()
await falseToast.waitFor({ state: 'detached' }) await trueToast.waitFor({ state: 'detached' })
}) })
await expect(scene.streamWrapper).not.toHaveScreenshot( await expect(scene.streamWrapper).toHaveScreenshot(
'toggle-settings-initial.png', 'toggle-settings-initial.png',
{ {
maxDiffPixels: 15, maxDiffPixels: 15,
mask: [page.getByTestId('model-state-indicator')], mask: [page.getByTestId('model-state-indicator')],
} }
) )
}
await test.step(`Toggle highlightEdges on`, async () => { )
await cmdBar.openCmdBar()
await cmdBar.chooseCommand('Settings · modeling · highlight edges')
await cmdBar.selectOption({ name: 'on' }).click()
const trueToast = toast(true)
await expect(trueToast).toBeVisible()
await trueToast.waitFor({ state: 'detached' })
})
await expect(scene.streamWrapper).toHaveScreenshot(
'toggle-settings-initial.png',
{
maxDiffPixels: 15,
mask: [page.getByTestId('model-state-indicator')],
}
)
})
}) })

View File

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

View File

@ -36,6 +36,7 @@
"@xstate/inspect": "^0.8.0", "@xstate/inspect": "^0.8.0",
"@xstate/react": "^4.1.1", "@xstate/react": "^4.1.1",
"bonjour-service": "^1.3.0", "bonjour-service": "^1.3.0",
"bson": "^6.10.3",
"chokidar": "^4.0.1", "chokidar": "^4.0.1",
"codemirror": "^6.0.1", "codemirror": "^6.0.1",
"decamelize": "^6.0.0", "decamelize": "^6.0.0",
@ -71,7 +72,7 @@
"scripts": { "scripts": {
"install:rust": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none && source \"$HOME/.cargo/env\" && (cd rust && (rustup show active-toolchain || rustup toolchain install))", "install:rust": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none && source \"$HOME/.cargo/env\" && (cd rust && (rustup show active-toolchain || rustup toolchain install))",
"install:rust:windows": "winget install Microsoft.VisualStudio.2022.Community --silent --override \"--wait --quiet --add ProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended\" && winget install Rustlang.Rustup", "install:rust:windows": "winget install Microsoft.VisualStudio.2022.Community --silent --override \"--wait --quiet --add ProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended\" && winget install Rustlang.Rustup",
"install:wasm-pack:sh": ". $HOME/.cargo/env && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -y", "install:wasm-pack:sh": ". $HOME/.cargo/env && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -f",
"install:wasm-pack:cargo": "cargo install wasm-pack", "install:wasm-pack:cargo": "cargo install wasm-pack",
"install:tools:windows": "winget install jqlang.jq MikeFarah.yq GitHub.cli", "install:tools:windows": "winget install jqlang.jq MikeFarah.yq GitHub.cli",
"start": "vite --port=3000 --host=0.0.0.0", "start": "vite --port=3000 --host=0.0.0.0",
@ -212,6 +213,7 @@
"typescript-eslint": "^8.26.1", "typescript-eslint": "^8.26.1",
"vite": "^5.4.12", "vite": "^5.4.12",
"vite-plugin-package-version": "^1.1.0", "vite-plugin-package-version": "^1.1.0",
"vite-plugin-top-level-await": "^1.5.0",
"vite-tsconfig-paths": "^4.3.2", "vite-tsconfig-paths": "^4.3.2",
"vitest": "^1.6.1", "vitest": "^1.6.1",
"vitest-webgl-canvas-mock": "^1.1.0", "vitest-webgl-canvas-mock": "^1.1.0",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in)
import 'car-wheel.kcl' as carWheel import 'car-wheel.kcl' as carWheel
import 'car-rotor.kcl' as carRotor import 'car-rotor.kcl' as carRotor
import "brake-caliper.kcl" as brakeCaliper import "brake-caliper.kcl" as brakeCaliper
import 'lug-nut.kcl' as lugNut import 'lug-nut.kcl' as lugNut

View File

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

View File

@ -55,7 +55,7 @@ axis000 = {
} }
// create a single corner of the bin // create a single corner of the bin
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius))) singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius)), angle = -90, axis = axis000)
// create the corners of the bin // create the corners of the bin
corners = patternCircular3d( corners = patternCircular3d(

View File

@ -52,7 +52,7 @@ axis000 = {
} }
// create a single corner of the bin // create a single corner of the bin
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius))) singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius)), angle = -90, axis = axis000)
// create the corners of the bin // create the corners of the bin
corners = patternCircular3d( corners = patternCircular3d(

View File

@ -75,7 +75,7 @@ axis000 = {
} }
// create a single corner of the bin // create a single corner of the bin
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius + binTol))) singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius + binTol)), angle = -90, axis = axis000)
// create the corners of the bin // create the corners of the bin
corners = patternCircular3d( corners = patternCircular3d(
@ -291,10 +291,10 @@ axis001 = {
} }
// create a single corner of the bin // create a single corner of the bin
lipSingleLengthCorner = revolve({ angle = -90, axis = axis001 }, lipFace(plane000)) lipSingleLengthCorner = revolve(lipFace(plane000), angle = -90, axis = axis001)
// create a single corner of the bin // create a single corner of the bin
lipSingleWidthCorner = revolve({ angle = 90, axis = axis001 }, lipFace(plane002)) lipSingleWidthCorner = revolve(lipFace(plane002), angle = 90, axis = axis001)
// create the corners of the bin // create the corners of the bin
lipCorners000 = patternCircular3d( lipCorners000 = patternCircular3d(

View File

@ -68,7 +68,7 @@ axis000 = {
} }
// create a single corner of the bin // create a single corner of the bin
singleCorner = revolve({ angle = -90, axis = axis000 }, face(offsetPlane("YZ", offset = cornerRadius + binTol))) singleCorner = revolve(face(offsetPlane("YZ", offset = cornerRadius + binTol)), angle = -90, axis = axis000)
// create the corners of the bin // create the corners of the bin
corners = patternCircular3d( corners = patternCircular3d(

View File

@ -190,7 +190,7 @@ pipe = startSketchOn('XY')
|> line(end = [0, -1]) |> line(end = [0, -1])
|> angledLine({ angle = 240, length = .5 }, %) |> angledLine({ angle = 240, length = .5 }, %)
|> close() |> close()
|> revolve({ axis = 'y' }, %) |> revolve(axis = 'y')
|> appearance(color = "#7b79d7") |> appearance(color = "#7b79d7")
// Sketch and extrude the wall // Sketch and extrude the wall

View File

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

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -3073,7 +3073,7 @@ DATA;
#3057 = CARTESIAN_POINT('NONE', (0.051104890518972546, -0.039940414856583686, -0.0635)); #3057 = CARTESIAN_POINT('NONE', (0.051104890518972546, -0.039940414856583686, -0.0635));
#3058 = CARTESIAN_POINT('NONE', (0.052242074077479335, -0.038876903045998674, -0.0635)); #3058 = CARTESIAN_POINT('NONE', (0.052242074077479335, -0.038876903045998674, -0.0635));
#3059 = CARTESIAN_POINT('NONE', (0.05224392753122875, -0.03887516966712757, -0.0635)); #3059 = CARTESIAN_POINT('NONE', (0.05224392753122875, -0.03887516966712757, -0.0635));
#3060 = CARTESIAN_POINT('NONE', (0.05311532463588208, -0.03767579444673181, -0.0635)); #3060 = CARTESIAN_POINT('NONE', (0.05311532463588208, -0.03767579444673182, -0.0635));
#3061 = CARTESIAN_POINT('NONE', (0.05311674489404425, -0.03767383962907501, -0.0635)); #3061 = CARTESIAN_POINT('NONE', (0.05311674489404425, -0.03767383962907501, -0.0635));
#3062 = CARTESIAN_POINT('NONE', (0.053776795686355607, -0.03626367057234418, -0.0635)); #3062 = CARTESIAN_POINT('NONE', (0.053776795686355607, -0.03626367057234418, -0.0635));
#3063 = CARTESIAN_POINT('NONE', (0.05377787147891932, -0.036261372189549286, -0.0635)); #3063 = CARTESIAN_POINT('NONE', (0.05377787147891932, -0.036261372189549286, -0.0635));
@ -3087,7 +3087,7 @@ DATA;
#3071 = CARTESIAN_POINT('NONE', (0.053252818350252196, -0.029748655756475863, -0.0635)); #3071 = CARTESIAN_POINT('NONE', (0.053252818350252196, -0.029748655756475863, -0.0635));
#3072 = CARTESIAN_POINT('NONE', (0.05233460363130192, -0.028414043632913145, -0.0635)); #3072 = CARTESIAN_POINT('NONE', (0.05233460363130192, -0.028414043632913145, -0.0635));
#3073 = CARTESIAN_POINT('NONE', (0.05233310706682834, -0.028411868397590818, -0.0635)); #3073 = CARTESIAN_POINT('NONE', (0.05233310706682834, -0.028411868397590818, -0.0635));
#3074 = CARTESIAN_POINT('NONE', (0.05123295226616701, -0.02734405921816657, -0.0635)); #3074 = CARTESIAN_POINT('NONE', (0.051232952266167, -0.02734405921816657, -0.0635));
#3075 = CARTESIAN_POINT('NONE', (0.05123115916423111, -0.027342318835171704, -0.0635)); #3075 = CARTESIAN_POINT('NONE', (0.05123115916423111, -0.027342318835171704, -0.0635));
#3076 = CARTESIAN_POINT('NONE', (0.0499865731843106, -0.02652506813979786, -0.0635)); #3076 = CARTESIAN_POINT('NONE', (0.0499865731843106, -0.02652506813979786, -0.0635));
#3077 = CARTESIAN_POINT('NONE', (0.049984544679296, -0.026523736132881105, -0.0635)); #3077 = CARTESIAN_POINT('NONE', (0.049984544679296, -0.026523736132881105, -0.0635));
@ -3105,7 +3105,7 @@ DATA;
#3089 = CARTESIAN_POINT('NONE', (0.0407616757108459, -0.02775624333996861, -0.0635)); #3089 = CARTESIAN_POINT('NONE', (0.0407616757108459, -0.02775624333996861, -0.0635));
#3090 = CARTESIAN_POINT('NONE', (0.03976400232776854, -0.0288872140372878, -0.0635)); #3090 = CARTESIAN_POINT('NONE', (0.03976400232776854, -0.0288872140372878, -0.0635));
#3091 = CARTESIAN_POINT('NONE', (0.03976237625653429, -0.028889057364922765, -0.0635)); #3091 = CARTESIAN_POINT('NONE', (0.03976237625653429, -0.028889057364922765, -0.0635));
#3092 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#3029, #3030, #3031, #3032, #3033, #3034, #3035, #3036, #3037, #3038, #3039, #3040, #3041, #3042, #3043, #3044, #3045, #3046, #3047, #3048, #3049, #3050, #3051, #3052, #3053, #3054, #3055, #3056, #3057, #3058, #3059, #3060, #3061, #3062, #3063, #3064, #3065, #3066, #3067, #3068, #3069, #3070, #3071, #3072, #3073, #3074, #3075, #3076, #3077, #3078, #3079, #3080, #3081, #3082, #3083, #3084, #3085, #3086, #3087, #3088, #3089, #3090, #3091), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (-1, -0.9836065573770492, -0.9672131147540983, -0.9508196721311475, -0.9344262295081968, -0.9180327868852459, -0.9016393442622951, -0.8852459016393442, -0.8688524590163934, -0.8524590163934427, -0.8360655737704918, -0.819672131147541, -0.8032786885245902, -0.7868852459016393, -0.7704918032786885, -0.7540983606557377, -0.7377049180327868, -0.721311475409836, -0.7049180327868853, -0.6885245901639344, -0.6721311475409836, -0.6557377049180328, -0.639344262295082, -0.6229508196721312, -0.6065573770491803, -0.5901639344262295, -0.5737704918032787, -0.5573770491803278, -0.540983606557377, -0.5245901639344261, -0.5081967213114753, -0.49180327868852464, -0.4754098360655738, -0.45901639344262296, -0.4426229508196722, -0.42622950819672134, -0.4098360655737705, -0.39344262295081966, -0.3770491803278689, -0.36065573770491804, -0.3442622950819672, -0.3278688524590164, -0.3114754098360656, -0.29508196721311475, -0.27868852459016397, -0.26229508196721313, -0.24590163934426232, -0.22950819672131148, -0.21311475409836067, -0.19672131147540983, -0.18032786885245902, -0.1639344262295082, -0.14754098360655737, -0.13114754098360656, -0.11475409836065574, -0.09836065573770492, -0.0819672131147541, -0.06557377049180328, -0.04918032786885246, -0.03278688524590164, -0.01639344262295082, -0), .UNSPECIFIED.); #3092 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#3029, #3030, #3031, #3032, #3033, #3034, #3035, #3036, #3037, #3038, #3039, #3040, #3041, #3042, #3043, #3044, #3045, #3046, #3047, #3048, #3049, #3050, #3051, #3052, #3053, #3054, #3055, #3056, #3057, #3058, #3059, #3060, #3061, #3062, #3063, #3064, #3065, #3066, #3067, #3068, #3069, #3070, #3071, #3072, #3073, #3074, #3075, #3076, #3077, #3078, #3079, #3080, #3081, #3082, #3083, #3084, #3085, #3086, #3087, #3088, #3089, #3090, #3091), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (0, 0.01639344262295082, 0.03278688524590164, 0.04918032786885246, 0.06557377049180328, 0.0819672131147541, 0.09836065573770492, 0.11475409836065574, 0.13114754098360656, 0.14754098360655737, 0.1639344262295082, 0.18032786885245902, 0.19672131147540983, 0.21311475409836067, 0.22950819672131148, 0.24590163934426232, 0.26229508196721313, 0.27868852459016397, 0.29508196721311475, 0.3114754098360656, 0.3278688524590164, 0.3442622950819672, 0.36065573770491804, 0.3770491803278689, 0.39344262295081966, 0.4098360655737705, 0.42622950819672134, 0.4426229508196722, 0.45901639344262296, 0.4754098360655738, 0.49180327868852464, 0.5081967213114753, 0.5245901639344261, 0.540983606557377, 0.5573770491803278, 0.5737704918032787, 0.5901639344262295, 0.6065573770491803, 0.6229508196721312, 0.639344262295082, 0.6557377049180328, 0.6721311475409836, 0.6885245901639344, 0.7049180327868853, 0.721311475409836, 0.7377049180327868, 0.7540983606557377, 0.7704918032786885, 0.7868852459016393, 0.8032786885245902, 0.819672131147541, 0.8360655737704918, 0.8524590163934427, 0.8688524590163934, 0.8852459016393442, 0.9016393442622951, 0.9180327868852459, 0.9344262295081968, 0.9508196721311475, 0.9672131147540983, 0.9836065573770492, 1), .UNSPECIFIED.);
#3093 = DIRECTION('NONE', (0, 0, 1)); #3093 = DIRECTION('NONE', (0, 0, 1));
#3094 = VECTOR('NONE', #3093, 1); #3094 = VECTOR('NONE', #3093, 1);
#3095 = CARTESIAN_POINT('NONE', (0.03976237625653429, -0.028889057364922765, -0.063501)); #3095 = CARTESIAN_POINT('NONE', (0.03976237625653429, -0.028889057364922765, -0.063501));

View File

@ -39,7 +39,7 @@ DATA;
#23 = VERTEX_POINT('NONE', #22); #23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #24 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#25 = VERTEX_POINT('NONE', #24); #25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.011810999999999978, 0, -0.007619999999999995)); #26 = CARTESIAN_POINT('NONE', (0.011810999999999981, 0, -0.0076199999999999974));
#27 = VERTEX_POINT('NONE', #26); #27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.0037719, 0, -0)); #28 = CARTESIAN_POINT('NONE', (0.0037719, 0, -0));
#29 = VERTEX_POINT('NONE', #28); #29 = VERTEX_POINT('NONE', #28);
@ -95,7 +95,7 @@ DATA;
#63 = AXIS2_PLACEMENT_3D('NONE', #62, #61, #60); #63 = AXIS2_PLACEMENT_3D('NONE', #62, #61, #60);
#64 = CIRCLE('NONE', #63, 0.00762); #64 = CIRCLE('NONE', #63, 0.00762);
#65 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288)); #65 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#66 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202)); #66 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274202));
#67 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004)); #67 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#68 = ( #68 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -106,18 +106,18 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#69 = DIRECTION('NONE', (-0.8660254037844387, 0, -0.49999999999999967)); #69 = DIRECTION('NONE', (-0.8660254037844388, 0, -0.4999999999999997));
#70 = DIRECTION('NONE', (0, 1, 0)); #70 = DIRECTION('NONE', (0, 1, 0));
#71 = CARTESIAN_POINT('NONE', (-0.005808633250155917, -0, 0.010172700000000003)); #71 = CARTESIAN_POINT('NONE', (-0.0058086332501559165, -0, 0.010172700000000003));
#72 = AXIS2_PLACEMENT_3D('NONE', #71, #70, #69); #72 = AXIS2_PLACEMENT_3D('NONE', #71, #70, #69);
#73 = CIRCLE('NONE', #72, 0.007620000000000003); #73 = CIRCLE('NONE', #72, 0.007620000000000002);
#74 = DIRECTION('NONE', (-0.3420201433256678, 0, 0.9396926207859089)); #74 = DIRECTION('NONE', (-0.3420201433256678, 0, 0.9396926207859089));
#75 = DIRECTION('NONE', (0, 1.0000000000000002, -0)); #75 = DIRECTION('NONE', (0, 1.0000000000000002, -0));
#76 = CARTESIAN_POINT('NONE', (-0.004068275783674349, 0.0381, -0.023072338489143286)); #76 = CARTESIAN_POINT('NONE', (-0.004068275783674349, 0.0381, -0.023072338489143286));
#77 = AXIS2_PLACEMENT_3D('NONE', #76, #75, #74); #77 = AXIS2_PLACEMENT_3D('NONE', #76, #75, #74);
#78 = CIRCLE('NONE', #77, 0.012725399999999994); #78 = CIRCLE('NONE', #77, 0.012725399999999994);
#79 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #79 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#80 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532)); #80 = CARTESIAN_POINT('NONE', (-0.006681894987404388, 0.01905, -0.01585590553916532));
#81 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989)); #81 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#82 = ( #82 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -128,18 +128,18 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#83 = DIRECTION('NONE', (0.8660254037844382, 0, -0.5000000000000007)); #83 = DIRECTION('NONE', (0.8660254037844384, 0, -0.5000000000000007));
#84 = DIRECTION('NONE', (0, -0.9999999999999998, 0)); #84 = DIRECTION('NONE', (0, -1.0000000000000002, 0));
#85 = CARTESIAN_POINT('NONE', (-0.023428266500311844, -0, 0.00000000000000001687538997430238)); #85 = CARTESIAN_POINT('NONE', (-0.02342826650031185, -0, 0.00000000000000001865174681370263));
#86 = AXIS2_PLACEMENT_3D('NONE', #85, #84, #83); #86 = AXIS2_PLACEMENT_3D('NONE', #85, #84, #83);
#87 = CIRCLE('NONE', #86, 0.012725399999999994); #87 = CIRCLE('NONE', #86, 0.012725400000000001);
#88 = DIRECTION('NONE', (-0.6427876096865395, 0, -0.766044443118978)); #88 = DIRECTION('NONE', (-0.6427876096865395, 0, -0.766044443118978));
#89 = DIRECTION('NONE', (0, -1.0000000000000002, -0)); #89 = DIRECTION('NONE', (0, -1.0000000000000002, -0));
#90 = CARTESIAN_POINT('NONE', (0.009009495250442175, 0.0381, -0.0074868578761104415)); #90 = CARTESIAN_POINT('NONE', (0.009009495250442175, 0.0381, -0.0074868578761104415));
#91 = AXIS2_PLACEMENT_3D('NONE', #90, #89, #88); #91 = AXIS2_PLACEMENT_3D('NONE', #90, #89, #88);
#92 = CIRCLE('NONE', #91, 0.007620000000000001); #92 = CIRCLE('NONE', #91, 0.007620000000000001);
#93 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261)); #93 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#94 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #94 = CARTESIAN_POINT('NONE', (0.011837890161758855, 0.01905, -0.0125903677404439));
#95 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994)); #95 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#96 = ( #96 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -150,19 +150,19 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#97 = DIRECTION('NONE', (0.8660254037844388, -0, -0.49999999999999956)); #97 = DIRECTION('NONE', (0.866025403784439, -0, -0.4999999999999996));
#98 = DIRECTION('NONE', (0, 0.9999999999999999, 0)); #98 = DIRECTION('NONE', (0, 1, 0));
#99 = CARTESIAN_POINT('NONE', (-0.005808633250155936, 0, -0.010172699999999996)); #99 = CARTESIAN_POINT('NONE', (-0.0058086332501559364, 0, -0.010172699999999996));
#100 = AXIS2_PLACEMENT_3D('NONE', #99, #98, #97); #100 = AXIS2_PLACEMENT_3D('NONE', #99, #98, #97);
#101 = CIRCLE('NONE', #100, 0.007620000000000001); #101 = CIRCLE('NONE', #100, 0.00762);
#102 = DIRECTION('NONE', (-0.6427876096865413, 0, -0.7660444431189763)); #102 = DIRECTION('NONE', (-0.6427876096865413, 0, -0.7660444431189763));
#103 = DIRECTION('NONE', (0, 0.9999999999999999, 0)); #103 = DIRECTION('NONE', (0, 0.9999999999999999, 0));
#104 = CARTESIAN_POINT('NONE', (0.022087266284558753, 0.0381, 0.008098622736922445)); #104 = CARTESIAN_POINT('NONE', (0.022087266284558753, 0.0381, 0.008098622736922445));
#105 = AXIS2_PLACEMENT_3D('NONE', #104, #103, #102); #105 = AXIS2_PLACEMENT_3D('NONE', #104, #103, #102);
#106 = CIRCLE('NONE', #105, 0.012725400000000064); #106 = CIRCLE('NONE', #105, 0.012725400000000064);
#107 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #107 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#108 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961)); #108 = CARTESIAN_POINT('NONE', (0.01720848815479078, 0.01905, 0.0021652289743796134));
#109 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995)); #109 = CARTESIAN_POINT('NONE', (0.011810999999999981, -0, -0.0076199999999999974));
#110 = ( #110 = (
BOUNDED_CURVE() BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#107, #108, #109), .UNSPECIFIED., .F., .F.) B_SPLINE_CURVE(2, (#107, #108, #109), .UNSPECIFIED., .F., .F.)
@ -172,11 +172,11 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#111 = DIRECTION('NONE', (-0.000000000000002373054384915535, 0, 1)); #111 = DIRECTION('NONE', (-0.0000000000000018146886472883515, 0, 1));
#112 = DIRECTION('NONE', (-0, -1, 0)); #112 = DIRECTION('NONE', (-0, -1, 0));
#113 = CARTESIAN_POINT('NONE', (0.011811000000000009, -0, -0.02034540000000004)); #113 = CARTESIAN_POINT('NONE', (0.011811000000000004, -0, -0.020345400000000034));
#114 = AXIS2_PLACEMENT_3D('NONE', #113, #112, #111); #114 = AXIS2_PLACEMENT_3D('NONE', #113, #112, #111);
#115 = CIRCLE('NONE', #114, 0.012725400000000046); #115 = CIRCLE('NONE', #114, 0.012725400000000036);
#116 = DIRECTION('NONE', (0, 1, -0)); #116 = DIRECTION('NONE', (0, 1, -0));
#117 = VECTOR('NONE', #116, 1); #117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (0.0037719, -0, 0)); #118 = CARTESIAN_POINT('NONE', (0.0037719, -0, 0));
@ -256,14 +256,14 @@ DATA;
); );
#177 = CARTESIAN_POINT('NONE', (0.0007904803266815029, -0, 0.013982700000000004)); #177 = CARTESIAN_POINT('NONE', (0.0007904803266815029, -0, 0.013982700000000004));
#178 = CARTESIAN_POINT('NONE', (-0.0030195196733185, -0, 0.02058181357683743)); #178 = CARTESIAN_POINT('NONE', (-0.0030195196733185, -0, 0.02058181357683743));
#179 = CARTESIAN_POINT('NONE', (-0.009618633250155922, -0, 0.01677181357683742)); #179 = CARTESIAN_POINT('NONE', (-0.009618633250155923, -0, 0.01677181357683742));
#180 = CARTESIAN_POINT('NONE', (-0.01621774682699334, -0, 0.012961813576837417)); #180 = CARTESIAN_POINT('NONE', (-0.01621774682699334, -0, 0.012961813576837417));
#181 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004)); #181 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#182 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891662)); #182 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891662));
#183 = CARTESIAN_POINT('NONE', (-0.01917915036563614, 0.01905, 0.017060267366826944)); #183 = CARTESIAN_POINT('NONE', (-0.01917915036563614, 0.01905, 0.017060267366826944));
#184 = CARTESIAN_POINT('NONE', (-0.02239507730757142, 0.01905, 0.008224580711244014)); #184 = CARTESIAN_POINT('NONE', (-0.022395077307571426, 0.01905, 0.008224580711244014));
#185 = CARTESIAN_POINT('NONE', (-0.025611004249506707, 0.01905, -0.000611105944338923)); #185 = CARTESIAN_POINT('NONE', (-0.025611004249506707, 0.01905, -0.000611105944338923));
#186 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202)); #186 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274202));
#187 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547)); #187 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#188 = CARTESIAN_POINT('NONE', (-0.020793463670222608, 0.0381, 0.0006003480360413621)); #188 = CARTESIAN_POINT('NONE', (-0.020793463670222608, 0.0381, 0.0006003480360413621));
#189 = CARTESIAN_POINT('NONE', (-0.018187270178081014, 0.0381, -0.00656010973434726)); #189 = CARTESIAN_POINT('NONE', (-0.018187270178081014, 0.0381, -0.00656010973434726));
@ -278,12 +278,12 @@ DATA;
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
SURFACE() SURFACE()
); );
#193 = CARTESIAN_POINT('NONE', (-0.012407746826993344, -0, 0.006362700000000004)); #193 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#194 = CARTESIAN_POINT('NONE', (-0.00873424026922052, -0, -0.000000000000000004726054498244314)); #194 = CARTESIAN_POINT('NONE', (-0.008734240269220523, -0, -0.000000000000000004726054498244314));
#195 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989)); #195 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#196 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274204)); #196 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274204));
#197 = CARTESIAN_POINT('NONE', (-0.008256169858566881, 0.019050000000000004, -0.006927749083260438)); #197 = CARTESIAN_POINT('NONE', (-0.008256169858566887, 0.019050000000000004, -0.006927749083260438));
#198 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532)); #198 = CARTESIAN_POINT('NONE', (-0.006681894987404388, 0.01905, -0.01585590553916532));
#199 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288)); #199 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#200 = CARTESIAN_POINT('NONE', (-0.0015166849060552505, 0.0381, -0.008601547533799802)); #200 = CARTESIAN_POINT('NONE', (-0.0015166849060552505, 0.0381, -0.008601547533799802));
#201 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #201 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
@ -298,14 +298,14 @@ DATA;
); );
#203 = CARTESIAN_POINT('NONE', (-0.012407746826993355, -0, -0.006362699999999989)); #203 = CARTESIAN_POINT('NONE', (-0.012407746826993355, -0, -0.006362699999999989));
#204 = CARTESIAN_POINT('NONE', (-0.016217746826993354, -0, -0.012961813576837412)); #204 = CARTESIAN_POINT('NONE', (-0.016217746826993354, -0, -0.012961813576837412));
#205 = CARTESIAN_POINT('NONE', (-0.009618633250155937, -0, -0.01677181357683742)); #205 = CARTESIAN_POINT('NONE', (-0.009618633250155936, -0, -0.01677181357683742));
#206 = CARTESIAN_POINT('NONE', (-0.003019519673318509, -0, -0.020581813576837412)); #206 = CARTESIAN_POINT('NONE', (-0.0030195196733185095, -0, -0.020581813576837412));
#207 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994)); #207 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#208 = CARTESIAN_POINT('NONE', (-0.006681894987404382, 0.01905, -0.01585590553916532)); #208 = CARTESIAN_POINT('NONE', (-0.006681894987404389, 0.01905, -0.01585590553916532));
#209 = CARTESIAN_POINT('NONE', (-0.0050491260880436714, 0.019049999999999997, -0.02511579811374694)); #209 = CARTESIAN_POINT('NONE', (-0.005049126088043679, 0.019049999999999997, -0.02511579811374694));
#210 = CARTESIAN_POINT('NONE', (0.0042107664865379535, 0.01905, -0.02348302921438623)); #210 = CARTESIAN_POINT('NONE', (0.0042107664865379466, 0.01905, -0.02348302921438623));
#211 = CARTESIAN_POINT('NONE', (0.01347065906111957, 0.019049999999999997, -0.02185026031502552)); #211 = CARTESIAN_POINT('NONE', (0.013470659061119567, 0.019049999999999997, -0.02185026031502552));
#212 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #212 = CARTESIAN_POINT('NONE', (0.011837890161758855, 0.01905, -0.0125903677404439));
#213 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #213 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#214 = CARTESIAN_POINT('NONE', (0.009948712321197359, 0.0381, -0.018222158118488478)); #214 = CARTESIAN_POINT('NONE', (0.009948712321197359, 0.0381, -0.018222158118488478));
#215 = CARTESIAN_POINT('NONE', (0.014846753907008787, 0.0381, -0.012384899461921867)); #215 = CARTESIAN_POINT('NONE', (0.014846753907008787, 0.0381, -0.012384899461921867));
@ -320,12 +320,12 @@ DATA;
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
SURFACE() SURFACE()
); );
#219 = CARTESIAN_POINT('NONE', (0.0007904803266814876, -0, -0.013982699999999994)); #219 = CARTESIAN_POINT('NONE', (0.0007904803266814854, -0, -0.013982699999999997));
#220 = CARTESIAN_POINT('NONE', (0.0044639868844543245, -0, -0.007620000000000015)); #220 = CARTESIAN_POINT('NONE', (0.004463986884454323, -0, -0.007620000000000017));
#221 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995)); #221 = CARTESIAN_POINT('NONE', (0.011810999999999981, -0, -0.0076199999999999974));
#222 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #222 = CARTESIAN_POINT('NONE', (0.011837890161758858, 0.01905, -0.012590367740443899));
#223 = CARTESIAN_POINT('NONE', (0.010263615290596393, 0.019049999999999994, -0.0036622112845390324)); #223 = CARTESIAN_POINT('NONE', (0.01026361529059639, 0.019049999999999994, -0.0036622112845390306));
#224 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961)); #224 = CARTESIAN_POINT('NONE', (0.01720848815479078, 0.01905, 0.0021652289743796134));
#225 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261)); #225 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#226 = CARTESIAN_POINT('NONE', (0.00827939826556762, 0.038099999999999995, 0.0030729697793334247)); #226 = CARTESIAN_POINT('NONE', (0.00827939826556762, 0.038099999999999995, 0.0030729697793334247));
#227 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #227 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));

View File

@ -161,20 +161,20 @@ DATA;
#145 = VERTEX_POINT('NONE', #144); #145 = VERTEX_POINT('NONE', #144);
#146 = CARTESIAN_POINT('NONE', (-0.0186055, 0.3859187599240827, -0.2649386954314825)); #146 = CARTESIAN_POINT('NONE', (-0.0186055, 0.3859187599240827, -0.2649386954314825));
#147 = VERTEX_POINT('NONE', #146); #147 = VERTEX_POINT('NONE', #146);
#148 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #148 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#149 = DIRECTION('NONE', (0, 1, -0)); #149 = DIRECTION('NONE', (0, 1, -0));
#150 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0, 0.024039844328695128)); #150 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0, 0.02403984432869508));
#151 = AXIS2_PLACEMENT_3D('NONE', #150, #149, #148); #151 = AXIS2_PLACEMENT_3D('NONE', #150, #149, #148);
#152 = CIRCLE('NONE', #151, 0.007737689870496104); #152 = CIRCLE('NONE', #151, 0.007737689870496156);
#153 = DIRECTION('NONE', (0, 1, 0)); #153 = DIRECTION('NONE', (0, 1, 0));
#154 = VECTOR('NONE', #153, 1); #154 = VECTOR('NONE', #153, 1);
#155 = CARTESIAN_POINT('NONE', (0.11484587524256575, 0, 0.029967258656566655)); #155 = CARTESIAN_POINT('NONE', (0.11484587524256575, 0, 0.029967258656566655));
#156 = LINE('NONE', #155, #154); #156 = LINE('NONE', #155, #154);
#157 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #157 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#158 = DIRECTION('NONE', (0, 1, -0)); #158 = DIRECTION('NONE', (0, 1, -0));
#159 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0.003175, 0.024039844328695128)); #159 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0.003175, 0.02403984432869508));
#160 = AXIS2_PLACEMENT_3D('NONE', #159, #158, #157); #160 = AXIS2_PLACEMENT_3D('NONE', #159, #158, #157);
#161 = CIRCLE('NONE', #160, 0.007737689870496104); #161 = CIRCLE('NONE', #160, 0.007737689870496156);
#162 = DIRECTION('NONE', (0, 1, 0)); #162 = DIRECTION('NONE', (0, 1, 0));
#163 = VECTOR('NONE', #162, 1); #163 = VECTOR('NONE', #162, 1);
#164 = CARTESIAN_POINT('NONE', (0.10922000000000001, 0, 0.031750000000000014)); #164 = CARTESIAN_POINT('NONE', (0.10922000000000001, 0, 0.031750000000000014));
@ -1183,11 +1183,11 @@ DATA;
#1103 = EDGE_CURVE('NONE', #145, #147, #987, .T.); #1103 = EDGE_CURVE('NONE', #145, #147, #987, .T.);
#1104 = EDGE_CURVE('NONE', #145, #145, #992, .T.); #1104 = EDGE_CURVE('NONE', #145, #145, #992, .T.);
#1105 = EDGE_CURVE('NONE', #147, #147, #997, .T.); #1105 = EDGE_CURVE('NONE', #147, #147, #997, .T.);
#1106 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0.0015874999999999997, 0.024039844328695128)); #1106 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0.0015874999999999997, 0.02403984432869508));
#1107 = DIRECTION('NONE', (0, 1, -0)); #1107 = DIRECTION('NONE', (0, 1, -0));
#1108 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #1108 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#1109 = AXIS2_PLACEMENT_3D('NONE', #1106, #1107, #1108); #1109 = AXIS2_PLACEMENT_3D('NONE', #1106, #1107, #1108);
#1110 = CYLINDRICAL_SURFACE('NONE', #1109, 0.007737689870496104); #1110 = CYLINDRICAL_SURFACE('NONE', #1109, 0.007737689870496156);
#1111 = CARTESIAN_POINT('NONE', (0.12954000000000004, 0.0015874999999999997, 0.04747903462626646)); #1111 = CARTESIAN_POINT('NONE', (0.12954000000000004, 0.0015874999999999997, 0.04747903462626646));
#1112 = DIRECTION('NONE', (0, -1.0000000000000002, -0)); #1112 = DIRECTION('NONE', (0, -1.0000000000000002, -0));
#1113 = DIRECTION('NONE', (-0.6427876096865407, 0, -0.766044443118977)); #1113 = DIRECTION('NONE', (-0.6427876096865407, 0, -0.766044443118977));

View File

@ -131,9 +131,9 @@ DATA;
#115 = VERTEX_POINT('NONE', #114); #115 = VERTEX_POINT('NONE', #114);
#116 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577)); #116 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577));
#117 = VERTEX_POINT('NONE', #116); #117 = VERTEX_POINT('NONE', #116);
#118 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104229)); #118 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104227));
#119 = VERTEX_POINT('NONE', #118); #119 = VERTEX_POINT('NONE', #118);
#120 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0.0035, -0.013002775465104229)); #120 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0.0035, -0.013002775465104227));
#121 = VERTEX_POINT('NONE', #120); #121 = VERTEX_POINT('NONE', #120);
#122 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0.0035, -0.02299722453489577)); #122 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0.0035, -0.02299722453489577));
#123 = VERTEX_POINT('NONE', #122); #123 = VERTEX_POINT('NONE', #122);
@ -778,20 +778,20 @@ DATA;
#762 = VECTOR('NONE', #761, 1); #762 = VECTOR('NONE', #761, 1);
#763 = CARTESIAN_POINT('NONE', (-0.055, 0.0035, -0.005000000000000004)); #763 = CARTESIAN_POINT('NONE', (-0.055, 0.0035, -0.005000000000000004));
#764 = LINE('NONE', #763, #762); #764 = LINE('NONE', #763, #762);
#765 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #765 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#766 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #766 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#767 = CARTESIAN_POINT('NONE', (-0.024999999999999998, -0, -0.017999999999999995)); #767 = CARTESIAN_POINT('NONE', (-0.025, -0, -0.01799999999999999));
#768 = AXIS2_PLACEMENT_3D('NONE', #767, #766, #765); #768 = AXIS2_PLACEMENT_3D('NONE', #767, #766, #765);
#769 = CIRCLE('NONE', #768, 0.005000000000000003); #769 = CIRCLE('NONE', #768, 0.005000000000000007);
#770 = DIRECTION('NONE', (0, 1, 0)); #770 = DIRECTION('NONE', (0, 1, 0));
#771 = VECTOR('NONE', #770, 1); #771 = VECTOR('NONE', #770, 1);
#772 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104229)); #772 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104227));
#773 = LINE('NONE', #772, #771); #773 = LINE('NONE', #772, #771);
#774 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #774 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#775 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #775 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#776 = CARTESIAN_POINT('NONE', (-0.024999999999999998, 0.0035, -0.017999999999999995)); #776 = CARTESIAN_POINT('NONE', (-0.025, 0.0035, -0.01799999999999999));
#777 = AXIS2_PLACEMENT_3D('NONE', #776, #775, #774); #777 = AXIS2_PLACEMENT_3D('NONE', #776, #775, #774);
#778 = CIRCLE('NONE', #777, 0.005000000000000003); #778 = CIRCLE('NONE', #777, 0.005000000000000007);
#779 = DIRECTION('NONE', (0, 1, 0)); #779 = DIRECTION('NONE', (0, 1, 0));
#780 = VECTOR('NONE', #779, 1); #780 = VECTOR('NONE', #779, 1);
#781 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577)); #781 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577));
@ -1209,11 +1209,11 @@ DATA;
#1193 = DIRECTION('NONE', (0, 0, 1)); #1193 = DIRECTION('NONE', (0, 0, 1));
#1194 = AXIS2_PLACEMENT_3D('NONE', #1192, #1193, $); #1194 = AXIS2_PLACEMENT_3D('NONE', #1192, #1193, $);
#1195 = PLANE('NONE', #1194); #1195 = PLANE('NONE', #1194);
#1196 = CARTESIAN_POINT('NONE', (-0.024999999999999998, 0.00175, -0.017999999999999995)); #1196 = CARTESIAN_POINT('NONE', (-0.025, 0.00175, -0.01799999999999999));
#1197 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #1197 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#1198 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #1198 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#1199 = AXIS2_PLACEMENT_3D('NONE', #1196, #1197, #1198); #1199 = AXIS2_PLACEMENT_3D('NONE', #1196, #1197, #1198);
#1200 = CYLINDRICAL_SURFACE('NONE', #1199, 0.005000000000000003); #1200 = CYLINDRICAL_SURFACE('NONE', #1199, 0.005000000000000007);
#1201 = CARTESIAN_POINT('NONE', (-0.04016657415116319, 0.00175, -0.013502775465104222)); #1201 = CARTESIAN_POINT('NONE', (-0.04016657415116319, 0.00175, -0.013502775465104222));
#1202 = DIRECTION('NONE', (0.033314830232638176, -0, -0.9994449069791543)); #1202 = DIRECTION('NONE', (0.033314830232638176, -0, -0.9994449069791543));
#1203 = AXIS2_PLACEMENT_3D('NONE', #1201, #1202, $); #1203 = AXIS2_PLACEMENT_3D('NONE', #1201, #1202, $);

View File

@ -19,27 +19,27 @@ DATA;
); );
#4 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, -0.008255)); #4 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, -0.008255));
#5 = VERTEX_POINT('NONE', #4); #5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.1493519999999996, -0.008255)); #6 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.14935199999999962, -0.008255));
#7 = VERTEX_POINT('NONE', #6); #7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.1493519999999996, 0.008255)); #8 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.14935199999999962, 0.008255));
#9 = VERTEX_POINT('NONE', #8); #9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, 0.008255)); #10 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, 0.008255));
#11 = VERTEX_POINT('NONE', #10); #11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.1493519999999996, -0.008255)); #12 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.14935199999999962, -0.008255));
#13 = VERTEX_POINT('NONE', #12); #13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.1493519999999996, 0.008255)); #14 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.14935199999999962, 0.008255));
#15 = VERTEX_POINT('NONE', #14); #15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.1308099999999996, -0.008255)); #16 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.13080999999999965, -0.008255));
#17 = VERTEX_POINT('NONE', #16); #17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.1308099999999996, 0.008255)); #18 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.13080999999999965, 0.008255));
#19 = VERTEX_POINT('NONE', #18); #19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.04064000000000004, -0.008255)); #20 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.040640000000000044, -0.008255));
#21 = VERTEX_POINT('NONE', #20); #21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.04064000000000004, 0.008255)); #22 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.040640000000000044, 0.008255));
#23 = VERTEX_POINT('NONE', #22); #23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.076962, 0.025908000000000028, -0.008255)); #24 = CARTESIAN_POINT('NONE', (0.076962, 0.02590800000000003, -0.008255));
#25 = VERTEX_POINT('NONE', #24); #25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.076962, 0.025908000000000028, 0.008255)); #26 = CARTESIAN_POINT('NONE', (0.076962, 0.02590800000000003, 0.008255));
#27 = VERTEX_POINT('NONE', #26); #27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.051816, 0.026416000000000033, -0.008255)); #28 = CARTESIAN_POINT('NONE', (0.051816, 0.026416000000000033, -0.008255));
#29 = VERTEX_POINT('NONE', #28); #29 = VERTEX_POINT('NONE', #28);
@ -473,15 +473,15 @@ DATA;
#457 = VERTEX_POINT('NONE', #456); #457 = VERTEX_POINT('NONE', #456);
#458 = CARTESIAN_POINT('NONE', (0.056007, 0.14478, 0.000000000000000013717758655969163)); #458 = CARTESIAN_POINT('NONE', (0.056007, 0.14478, 0.000000000000000013717758655969163));
#459 = VERTEX_POINT('NONE', #458); #459 = VERTEX_POINT('NONE', #458);
#460 = DIRECTION('NONE', (0.038433122101202255, -0.9992611746313144, 0)); #460 = DIRECTION('NONE', (0.03843312210120234, -0.9992611746313144, 0));
#461 = VECTOR('NONE', #460, 1); #461 = VECTOR('NONE', #460, 1);
#462 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, -0.008255)); #462 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, -0.008255));
#463 = LINE('NONE', #462, #461); #463 = LINE('NONE', #462, #461);
#464 = DIRECTION('NONE', (0, 0, 1)); #464 = DIRECTION('NONE', (0, 0, 1));
#465 = VECTOR('NONE', #464, 1); #465 = VECTOR('NONE', #464, 1);
#466 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.1493519999999996, -0.008255)); #466 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.14935199999999962, -0.008255));
#467 = LINE('NONE', #466, #465); #467 = LINE('NONE', #466, #465);
#468 = DIRECTION('NONE', (0.038433122101202255, -0.9992611746313144, 0)); #468 = DIRECTION('NONE', (0.03843312210120234, -0.9992611746313144, 0));
#469 = VECTOR('NONE', #468, 1); #469 = VECTOR('NONE', #468, 1);
#470 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, 0.008255)); #470 = CARTESIAN_POINT('NONE', (0.05841999999999999, 0.16256, 0.008255));
#471 = LINE('NONE', #470, #469); #471 = LINE('NONE', #470, #469);
@ -491,58 +491,58 @@ DATA;
#475 = LINE('NONE', #474, #473); #475 = LINE('NONE', #474, #473);
#476 = DIRECTION('NONE', (1, 0, 0)); #476 = DIRECTION('NONE', (1, 0, 0));
#477 = VECTOR('NONE', #476, 1); #477 = VECTOR('NONE', #476, 1);
#478 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.1493519999999996, -0.008255)); #478 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.14935199999999962, -0.008255));
#479 = LINE('NONE', #478, #477); #479 = LINE('NONE', #478, #477);
#480 = DIRECTION('NONE', (0, 0, 1)); #480 = DIRECTION('NONE', (0, 0, 1));
#481 = VECTOR('NONE', #480, 1); #481 = VECTOR('NONE', #480, 1);
#482 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.1493519999999996, -0.008255)); #482 = CARTESIAN_POINT('NONE', (0.06908799999999998, 0.14935199999999962, -0.008255));
#483 = LINE('NONE', #482, #481); #483 = LINE('NONE', #482, #481);
#484 = DIRECTION('NONE', (1, 0, 0)); #484 = DIRECTION('NONE', (1, 0, 0));
#485 = VECTOR('NONE', #484, 1); #485 = VECTOR('NONE', #484, 1);
#486 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.1493519999999996, 0.008255)); #486 = CARTESIAN_POINT('NONE', (0.05892799999999998, 0.14935199999999962, 0.008255));
#487 = LINE('NONE', #486, #485); #487 = LINE('NONE', #486, #485);
#488 = DIRECTION('NONE', (-0.0866626263544473, 0.9962377172107816, -0)); #488 = DIRECTION('NONE', (-0.08666262635444875, 0.9962377172107816, -0));
#489 = DIRECTION('NONE', (0, -0, -0.9999999999999998)); #489 = DIRECTION('NONE', (0, -0, -1));
#490 = CARTESIAN_POINT('NONE', (0.07079178336201049, 0.12976601099190213, -0.008255)); #490 = CARTESIAN_POINT('NONE', (0.07079178336201052, 0.12976601099190216, -0.008255));
#491 = AXIS2_PLACEMENT_3D('NONE', #490, #489, #488); #491 = AXIS2_PLACEMENT_3D('NONE', #490, #489, #488);
#492 = CIRCLE('NONE', #491, 0.01965995531963333); #492 = CIRCLE('NONE', #491, 0.01965995531963333);
#493 = DIRECTION('NONE', (0, 0, 1)); #493 = DIRECTION('NONE', (0, 0, 1));
#494 = VECTOR('NONE', #493, 1); #494 = VECTOR('NONE', #493, 1);
#495 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.1308099999999996, -0.008255)); #495 = CARTESIAN_POINT('NONE', (0.09042399999999998, 0.13080999999999965, -0.008255));
#496 = LINE('NONE', #495, #494); #496 = LINE('NONE', #495, #494);
#497 = DIRECTION('NONE', (-0.0866626263544473, 0.9962377172107816, -0)); #497 = DIRECTION('NONE', (-0.08666262635444875, 0.9962377172107816, -0));
#498 = DIRECTION('NONE', (0, -0, -0.9999999999999998)); #498 = DIRECTION('NONE', (0, -0, -1));
#499 = CARTESIAN_POINT('NONE', (0.07079178336201049, 0.12976601099190213, 0.008255)); #499 = CARTESIAN_POINT('NONE', (0.07079178336201052, 0.12976601099190216, 0.008255));
#500 = AXIS2_PLACEMENT_3D('NONE', #499, #498, #497); #500 = AXIS2_PLACEMENT_3D('NONE', #499, #498, #497);
#501 = CIRCLE('NONE', #500, 0.01965995531963333); #501 = CIRCLE('NONE', #500, 0.01965995531963333);
#502 = DIRECTION('NONE', (0.9985890770760726, 0.05310230827711328, -0)); #502 = DIRECTION('NONE', (0.9985890770760725, 0.05310230827711449, -0));
#503 = DIRECTION('NONE', (-0, 0, -1)); #503 = DIRECTION('NONE', (-0, 0, -1));
#504 = CARTESIAN_POINT('NONE', (-1.2575688405092589, 0.059127329905450624, -0.008255)); #504 = CARTESIAN_POINT('NONE', (-1.2575688405092098, 0.059127329905451644, -0.008255));
#505 = AXIS2_PLACEMENT_3D('NONE', #504, #503, #502); #505 = AXIS2_PLACEMENT_3D('NONE', #504, #503, #502);
#506 = CIRCLE('NONE', #505, 1.3498974417547818); #506 = CIRCLE('NONE', #505, 1.3498974417547327);
#507 = DIRECTION('NONE', (0, 0, 1)); #507 = DIRECTION('NONE', (0, 0, 1));
#508 = VECTOR('NONE', #507, 1); #508 = VECTOR('NONE', #507, 1);
#509 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.04064000000000004, -0.008255)); #509 = CARTESIAN_POINT('NONE', (0.09220199999999999, 0.040640000000000044, -0.008255));
#510 = LINE('NONE', #509, #508); #510 = LINE('NONE', #509, #508);
#511 = DIRECTION('NONE', (0.9985890770760726, 0.05310230827711328, -0)); #511 = DIRECTION('NONE', (0.9985890770760725, 0.05310230827711449, -0));
#512 = DIRECTION('NONE', (-0, 0, -1)); #512 = DIRECTION('NONE', (-0, 0, -1));
#513 = CARTESIAN_POINT('NONE', (-1.2575688405092589, 0.059127329905450624, 0.008255)); #513 = CARTESIAN_POINT('NONE', (-1.2575688405092098, 0.059127329905451644, 0.008255));
#514 = AXIS2_PLACEMENT_3D('NONE', #513, #512, #511); #514 = AXIS2_PLACEMENT_3D('NONE', #513, #512, #511);
#515 = CIRCLE('NONE', #514, 1.3498974417547818); #515 = CIRCLE('NONE', #514, 1.3498974417547327);
#516 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872168632, -0)); #516 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872166266, -0));
#517 = DIRECTION('NONE', (0, 0, -1.0000000000000002)); #517 = DIRECTION('NONE', (0, 0, -1.0000000000000002));
#518 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945755, -0.008255)); #518 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945753, -0.008255));
#519 = AXIS2_PLACEMENT_3D('NONE', #518, #517, #516); #519 = AXIS2_PLACEMENT_3D('NONE', #518, #517, #516);
#520 = CIRCLE('NONE', #519, 0.014939651554024935); #520 = CIRCLE('NONE', #519, 0.014939651554024921);
#521 = DIRECTION('NONE', (0, 0, 1)); #521 = DIRECTION('NONE', (0, 0, 1));
#522 = VECTOR('NONE', #521, 1); #522 = VECTOR('NONE', #521, 1);
#523 = CARTESIAN_POINT('NONE', (0.076962, 0.025908000000000028, -0.008255)); #523 = CARTESIAN_POINT('NONE', (0.076962, 0.02590800000000003, -0.008255));
#524 = LINE('NONE', #523, #522); #524 = LINE('NONE', #523, #522);
#525 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872168632, -0)); #525 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872166266, -0));
#526 = DIRECTION('NONE', (0, 0, -1.0000000000000002)); #526 = DIRECTION('NONE', (0, 0, -1.0000000000000002));
#527 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945755, 0.008255)); #527 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945753, 0.008255));
#528 = AXIS2_PLACEMENT_3D('NONE', #527, #526, #525); #528 = AXIS2_PLACEMENT_3D('NONE', #527, #526, #525);
#529 = CIRCLE('NONE', #528, 0.014939651554024935); #529 = CIRCLE('NONE', #528, 0.014939651554024921);
#530 = DIRECTION('NONE', (-0.9997960016298644, 0.0201978990228256, 0)); #530 = DIRECTION('NONE', (-0.9997960016298644, 0.0201978990228256, 0));
#531 = VECTOR('NONE', #530, 1); #531 = VECTOR('NONE', #530, 1);
#532 = CARTESIAN_POINT('NONE', (0.076962, 0.02590800000000003, -0.008255)); #532 = CARTESIAN_POINT('NONE', (0.076962, 0.02590800000000003, -0.008255));
@ -2369,29 +2369,29 @@ DATA;
#2353 = EDGE_CURVE('NONE', #457, #457, #1992, .T.); #2353 = EDGE_CURVE('NONE', #457, #457, #1992, .T.);
#2354 = EDGE_CURVE('NONE', #457, #459, #1996, .T.); #2354 = EDGE_CURVE('NONE', #457, #459, #1996, .T.);
#2355 = EDGE_CURVE('NONE', #459, #459, #2001, .T.); #2355 = EDGE_CURVE('NONE', #459, #459, #2001, .T.);
#2356 = CARTESIAN_POINT('NONE', (0.05867399999999999, 0.1559559999999998, -0)); #2356 = CARTESIAN_POINT('NONE', (0.05867399999999998, 0.15595599999999982, -0));
#2357 = DIRECTION('NONE', (-0.9992611746313143, -0.038433122101202415, 0)); #2357 = DIRECTION('NONE', (-0.9992611746313143, -0.038433122101202415, 0));
#2358 = AXIS2_PLACEMENT_3D('NONE', #2356, #2357, $); #2358 = AXIS2_PLACEMENT_3D('NONE', #2356, #2357, $);
#2359 = PLANE('NONE', #2358); #2359 = PLANE('NONE', #2358);
#2360 = CARTESIAN_POINT('NONE', (0.06400799999999998, 0.1493519999999996, -0)); #2360 = CARTESIAN_POINT('NONE', (0.06400799999999998, 0.14935199999999962, -0));
#2361 = DIRECTION('NONE', (0, -1, 0)); #2361 = DIRECTION('NONE', (0, -1, 0));
#2362 = AXIS2_PLACEMENT_3D('NONE', #2360, #2361, $); #2362 = AXIS2_PLACEMENT_3D('NONE', #2360, #2361, $);
#2363 = PLANE('NONE', #2362); #2363 = PLANE('NONE', #2362);
#2364 = CARTESIAN_POINT('NONE', (0.07079178336201049, 0.12976601099190213, -0)); #2364 = CARTESIAN_POINT('NONE', (0.07079178336201052, 0.12976601099190216, -0));
#2365 = DIRECTION('NONE', (0, -0, -0.9999999999999998)); #2365 = DIRECTION('NONE', (0, -0, -1));
#2366 = DIRECTION('NONE', (-0.0866626263544473, 0.9962377172107816, -0)); #2366 = DIRECTION('NONE', (-0.08666262635444875, 0.9962377172107816, -0));
#2367 = AXIS2_PLACEMENT_3D('NONE', #2364, #2365, #2366); #2367 = AXIS2_PLACEMENT_3D('NONE', #2364, #2365, #2366);
#2368 = CYLINDRICAL_SURFACE('NONE', #2367, 0.01965995531963333); #2368 = CYLINDRICAL_SURFACE('NONE', #2367, 0.01965995531963333);
#2369 = CARTESIAN_POINT('NONE', (-1.2575688405092589, 0.059127329905450624, -0)); #2369 = CARTESIAN_POINT('NONE', (-1.2575688405092098, 0.059127329905451644, -0));
#2370 = DIRECTION('NONE', (-0, 0, -1)); #2370 = DIRECTION('NONE', (-0, 0, -1));
#2371 = DIRECTION('NONE', (0.9985890770760726, 0.05310230827711328, -0)); #2371 = DIRECTION('NONE', (0.9985890770760725, 0.05310230827711449, -0));
#2372 = AXIS2_PLACEMENT_3D('NONE', #2369, #2370, #2371); #2372 = AXIS2_PLACEMENT_3D('NONE', #2369, #2370, #2371);
#2373 = CYLINDRICAL_SURFACE('NONE', #2372, 1.3498974417547818); #2373 = CYLINDRICAL_SURFACE('NONE', #2372, 1.3498974417547327);
#2374 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945755, -0)); #2374 = CARTESIAN_POINT('NONE', (0.07726374957352439, 0.04084460388945753, -0));
#2375 = DIRECTION('NONE', (0, 0, -1.0000000000000002)); #2375 = DIRECTION('NONE', (0, 0, -1.0000000000000002));
#2376 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872168632, -0)); #2376 = DIRECTION('NONE', (0.9999062141747909, -0.013695358872166266, -0));
#2377 = AXIS2_PLACEMENT_3D('NONE', #2374, #2375, #2376); #2377 = AXIS2_PLACEMENT_3D('NONE', #2374, #2375, #2376);
#2378 = CYLINDRICAL_SURFACE('NONE', #2377, 0.014939651554024935); #2378 = CYLINDRICAL_SURFACE('NONE', #2377, 0.014939651554024921);
#2379 = CARTESIAN_POINT('NONE', (0.064389, 0.026162000000000036, -0)); #2379 = CARTESIAN_POINT('NONE', (0.064389, 0.026162000000000036, -0));
#2380 = DIRECTION('NONE', (0.020197899022825535, 0.9997960016298644, -0)); #2380 = DIRECTION('NONE', (0.020197899022825535, 0.9997960016298644, -0));
#2381 = AXIS2_PLACEMENT_3D('NONE', #2379, #2380, $); #2381 = AXIS2_PLACEMENT_3D('NONE', #2379, #2380, $);

View File

@ -17,213 +17,213 @@ DATA;
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1)) GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D') REPRESENTATION_CONTEXT('', '3D')
); );
#4 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0)); #4 = CARTESIAN_POINT('NONE', (0, 0.0508, -0));
#5 = VERTEX_POINT('NONE', #4); #5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0)); #6 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#7 = VERTEX_POINT('NONE', #6); #7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096)); #8 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096));
#9 = VERTEX_POINT('NONE', #8); #9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0.6096)); #10 = CARTESIAN_POINT('NONE', (0, 0.0508, -0.6096));
#11 = VERTEX_POINT('NONE', #10); #11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0)); #12 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#13 = VERTEX_POINT('NONE', #12); #13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096)); #14 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096));
#15 = VERTEX_POINT('NONE', #14); #15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0)); #16 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#17 = VERTEX_POINT('NONE', #16); #17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096)); #18 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096));
#19 = VERTEX_POINT('NONE', #18); #19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0)); #20 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#21 = VERTEX_POINT('NONE', #20); #21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096)); #22 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096));
#23 = VERTEX_POINT('NONE', #22); #23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0)); #24 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#25 = VERTEX_POINT('NONE', #24); #25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096)); #26 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096));
#27 = VERTEX_POINT('NONE', #26); #27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0)); #28 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#29 = VERTEX_POINT('NONE', #28); #29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096)); #30 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096));
#31 = VERTEX_POINT('NONE', #30); #31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0)); #32 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#33 = VERTEX_POINT('NONE', #32); #33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096)); #34 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096));
#35 = VERTEX_POINT('NONE', #34); #35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0)); #36 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#37 = VERTEX_POINT('NONE', #36); #37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096)); #38 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096));
#39 = VERTEX_POINT('NONE', #38); #39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0)); #40 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#41 = VERTEX_POINT('NONE', #40); #41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096)); #42 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096));
#43 = VERTEX_POINT('NONE', #42); #43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0)); #44 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#45 = VERTEX_POINT('NONE', #44); #45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096)); #46 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096));
#47 = VERTEX_POINT('NONE', #46); #47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0)); #48 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#49 = VERTEX_POINT('NONE', #48); #49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096)); #50 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096));
#51 = VERTEX_POINT('NONE', #50); #51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0)); #52 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#53 = VERTEX_POINT('NONE', #52); #53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096)); #54 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096));
#55 = VERTEX_POINT('NONE', #54); #55 = VERTEX_POINT('NONE', #54);
#56 = DIRECTION('NONE', (-1, 0.00000000000000020517070925003855, 0)); #56 = DIRECTION('NONE', (1, 0, 0));
#57 = VECTOR('NONE', #56, 1); #57 = VECTOR('NONE', #56, 1);
#58 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0)); #58 = CARTESIAN_POINT('NONE', (0, 0.0508, -0));
#59 = LINE('NONE', #58, #57); #59 = LINE('NONE', #58, #57);
#60 = DIRECTION('NONE', (0, 0, -1)); #60 = DIRECTION('NONE', (0, 0, -1));
#61 = VECTOR('NONE', #60, 1); #61 = VECTOR('NONE', #60, 1);
#62 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0)); #62 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#63 = LINE('NONE', #62, #61); #63 = LINE('NONE', #62, #61);
#64 = DIRECTION('NONE', (-1, 0.00000000000000020517070925003855, 0)); #64 = DIRECTION('NONE', (1, 0, 0));
#65 = VECTOR('NONE', #64, 1); #65 = VECTOR('NONE', #64, 1);
#66 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0.6096)); #66 = CARTESIAN_POINT('NONE', (0, 0.0508, -0.6096));
#67 = LINE('NONE', #66, #65); #67 = LINE('NONE', #66, #65);
#68 = DIRECTION('NONE', (0, 0, -1)); #68 = DIRECTION('NONE', (0, 0, -1));
#69 = VECTOR('NONE', #68, 1); #69 = VECTOR('NONE', #68, 1);
#70 = CARTESIAN_POINT('NONE', (-0.000000000000000006221205739668554, -0.0508, -0)); #70 = CARTESIAN_POINT('NONE', (0, 0.0508, -0));
#71 = LINE('NONE', #70, #69); #71 = LINE('NONE', #70, #69);
#72 = DIRECTION('NONE', (0, 1, 0)); #72 = DIRECTION('NONE', (0, -1, 0));
#73 = VECTOR('NONE', #72, 1); #73 = VECTOR('NONE', #72, 1);
#74 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0)); #74 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0));
#75 = LINE('NONE', #74, #73); #75 = LINE('NONE', #74, #73);
#76 = DIRECTION('NONE', (0, 0, -1)); #76 = DIRECTION('NONE', (0, 0, -1));
#77 = VECTOR('NONE', #76, 1); #77 = VECTOR('NONE', #76, 1);
#78 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0)); #78 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#79 = LINE('NONE', #78, #77); #79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (0, 1, 0)); #80 = DIRECTION('NONE', (0, -1, 0));
#81 = VECTOR('NONE', #80, 1); #81 = VECTOR('NONE', #80, 1);
#82 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096)); #82 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096));
#83 = LINE('NONE', #82, #81); #83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0)); #84 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0));
#85 = VECTOR('NONE', #84, 1); #85 = VECTOR('NONE', #84, 1);
#86 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0)); #86 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0));
#87 = LINE('NONE', #86, #85); #87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0, 0, -1)); #88 = DIRECTION('NONE', (0, 0, -1));
#89 = VECTOR('NONE', #88, 1); #89 = VECTOR('NONE', #88, 1);
#90 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0)); #90 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#91 = LINE('NONE', #90, #89); #91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0)); #92 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0));
#93 = VECTOR('NONE', #92, 1); #93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096)); #94 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096));
#95 = LINE('NONE', #94, #93); #95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0)); #96 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0));
#97 = VECTOR('NONE', #96, 1); #97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0)); #98 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0));
#99 = LINE('NONE', #98, #97); #99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (0, 0, -1)); #100 = DIRECTION('NONE', (0, 0, -1));
#101 = VECTOR('NONE', #100, 1); #101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0)); #102 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#103 = LINE('NONE', #102, #101); #103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0)); #104 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0));
#105 = VECTOR('NONE', #104, 1); #105 = VECTOR('NONE', #104, 1);
#106 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096)); #106 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096));
#107 = LINE('NONE', #106, #105); #107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0)); #108 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0));
#109 = VECTOR('NONE', #108, 1); #109 = VECTOR('NONE', #108, 1);
#110 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0)); #110 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0));
#111 = LINE('NONE', #110, #109); #111 = LINE('NONE', #110, #109);
#112 = DIRECTION('NONE', (0, 0, -1)); #112 = DIRECTION('NONE', (0, 0, -1));
#113 = VECTOR('NONE', #112, 1); #113 = VECTOR('NONE', #112, 1);
#114 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0)); #114 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#115 = LINE('NONE', #114, #113); #115 = LINE('NONE', #114, #113);
#116 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0)); #116 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0));
#117 = VECTOR('NONE', #116, 1); #117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096)); #118 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096));
#119 = LINE('NONE', #118, #117); #119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (0, 1, 0)); #120 = DIRECTION('NONE', (0, -1, 0));
#121 = VECTOR('NONE', #120, 1); #121 = VECTOR('NONE', #120, 1);
#122 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0)); #122 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0));
#123 = LINE('NONE', #122, #121); #123 = LINE('NONE', #122, #121);
#124 = DIRECTION('NONE', (0, 0, -1)); #124 = DIRECTION('NONE', (0, 0, -1));
#125 = VECTOR('NONE', #124, 1); #125 = VECTOR('NONE', #124, 1);
#126 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0)); #126 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#127 = LINE('NONE', #126, #125); #127 = LINE('NONE', #126, #125);
#128 = DIRECTION('NONE', (0, 1, 0)); #128 = DIRECTION('NONE', (0, -1, 0));
#129 = VECTOR('NONE', #128, 1); #129 = VECTOR('NONE', #128, 1);
#130 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096)); #130 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096));
#131 = LINE('NONE', #130, #129); #131 = LINE('NONE', #130, #129);
#132 = DIRECTION('NONE', (1, 0, 0)); #132 = DIRECTION('NONE', (-1, 0, 0));
#133 = VECTOR('NONE', #132, 1); #133 = VECTOR('NONE', #132, 1);
#134 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0)); #134 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0));
#135 = LINE('NONE', #134, #133); #135 = LINE('NONE', #134, #133);
#136 = DIRECTION('NONE', (0, 0, -1)); #136 = DIRECTION('NONE', (0, 0, -1));
#137 = VECTOR('NONE', #136, 1); #137 = VECTOR('NONE', #136, 1);
#138 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0)); #138 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#139 = LINE('NONE', #138, #137); #139 = LINE('NONE', #138, #137);
#140 = DIRECTION('NONE', (1, 0, 0)); #140 = DIRECTION('NONE', (-1, 0, 0));
#141 = VECTOR('NONE', #140, 1); #141 = VECTOR('NONE', #140, 1);
#142 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096)); #142 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096));
#143 = LINE('NONE', #142, #141); #143 = LINE('NONE', #142, #141);
#144 = DIRECTION('NONE', (0, -1, 0)); #144 = DIRECTION('NONE', (0, 1, 0));
#145 = VECTOR('NONE', #144, 1); #145 = VECTOR('NONE', #144, 1);
#146 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0)); #146 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0));
#147 = LINE('NONE', #146, #145); #147 = LINE('NONE', #146, #145);
#148 = DIRECTION('NONE', (0, 0, -1)); #148 = DIRECTION('NONE', (0, 0, -1));
#149 = VECTOR('NONE', #148, 1); #149 = VECTOR('NONE', #148, 1);
#150 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0)); #150 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#151 = LINE('NONE', #150, #149); #151 = LINE('NONE', #150, #149);
#152 = DIRECTION('NONE', (0, -1, 0)); #152 = DIRECTION('NONE', (0, 1, 0));
#153 = VECTOR('NONE', #152, 1); #153 = VECTOR('NONE', #152, 1);
#154 = CARTESIAN_POINT('NONE', (0.0338201, 0.0508, -0.6096)); #154 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.05079999999999999, -0.6096));
#155 = LINE('NONE', #154, #153); #155 = LINE('NONE', #154, #153);
#156 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0)); #156 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0));
#157 = VECTOR('NONE', #156, 1); #157 = VECTOR('NONE', #156, 1);
#158 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0)); #158 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0));
#159 = LINE('NONE', #158, #157); #159 = LINE('NONE', #158, #157);
#160 = DIRECTION('NONE', (0, 0, -1)); #160 = DIRECTION('NONE', (0, 0, -1));
#161 = VECTOR('NONE', #160, 1); #161 = VECTOR('NONE', #160, 1);
#162 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0)); #162 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#163 = LINE('NONE', #162, #161); #163 = LINE('NONE', #162, #161);
#164 = DIRECTION('NONE', (-1, 0.00000000000000023053569566787033, 0)); #164 = DIRECTION('NONE', (1, -0.0000000000000004610713913357407, 0));
#165 = VECTOR('NONE', #164, 1); #165 = VECTOR('NONE', #164, 1);
#166 = CARTESIAN_POINT('NONE', (0.0338201, 0.043357799999999995, -0.6096)); #166 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04335779999999999, -0.6096));
#167 = LINE('NONE', #166, #165); #167 = LINE('NONE', #166, #165);
#168 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0)); #168 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0));
#169 = VECTOR('NONE', #168, 1); #169 = VECTOR('NONE', #168, 1);
#170 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0)); #170 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0));
#171 = LINE('NONE', #170, #169); #171 = LINE('NONE', #170, #169);
#172 = DIRECTION('NONE', (0, 0, -1)); #172 = DIRECTION('NONE', (0, 0, -1));
#173 = VECTOR('NONE', #172, 1); #173 = VECTOR('NONE', #172, 1);
#174 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0)); #174 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#175 = LINE('NONE', #174, #173); #175 = LINE('NONE', #174, #173);
#176 = DIRECTION('NONE', (0.00000000000000006501542164183402, -1, 0)); #176 = DIRECTION('NONE', (0.00000000000000006501542164183402, 1, 0));
#177 = VECTOR('NONE', #176, 1); #177 = VECTOR('NONE', #176, 1);
#178 = CARTESIAN_POINT('NONE', (0.0037210999999999998, 0.0433578, -0.6096)); #178 = CARTESIAN_POINT('NONE', (-0.0037211000000000054, -0.0433578, -0.6096));
#179 = LINE('NONE', #178, #177); #179 = LINE('NONE', #178, #177);
#180 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0)); #180 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0));
#181 = VECTOR('NONE', #180, 1); #181 = VECTOR('NONE', #180, 1);
#182 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0)); #182 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0));
#183 = LINE('NONE', #182, #181); #183 = LINE('NONE', #182, #181);
#184 = DIRECTION('NONE', (0, 0, -1)); #184 = DIRECTION('NONE', (0, 0, -1));
#185 = VECTOR('NONE', #184, 1); #185 = VECTOR('NONE', #184, 1);
#186 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0)); #186 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#187 = LINE('NONE', #186, #185); #187 = LINE('NONE', #186, #185);
#188 = DIRECTION('NONE', (1, 0.0000000000000004610713913357407, 0)); #188 = DIRECTION('NONE', (-1, -0.00000000000000023053569566787033, 0));
#189 = VECTOR('NONE', #188, 1); #189 = VECTOR('NONE', #188, 1);
#190 = CARTESIAN_POINT('NONE', (0.0037211000000000054, -0.0433578, -0.6096)); #190 = CARTESIAN_POINT('NONE', (-0.0037210999999999998, 0.0433578, -0.6096));
#191 = LINE('NONE', #190, #189); #191 = LINE('NONE', #190, #189);
#192 = DIRECTION('NONE', (0, -1, 0)); #192 = DIRECTION('NONE', (0, 1, 0));
#193 = VECTOR('NONE', #192, 1); #193 = VECTOR('NONE', #192, 1);
#194 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0)); #194 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0));
#195 = LINE('NONE', #194, #193); #195 = LINE('NONE', #194, #193);
#196 = DIRECTION('NONE', (0, 0, -1)); #196 = DIRECTION('NONE', (0, 0, -1));
#197 = VECTOR('NONE', #196, 1); #197 = VECTOR('NONE', #196, 1);
#198 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0)); #198 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#199 = LINE('NONE', #198, #197); #199 = LINE('NONE', #198, #197);
#200 = DIRECTION('NONE', (0, -1, 0)); #200 = DIRECTION('NONE', (0, 1, 0));
#201 = VECTOR('NONE', #200, 1); #201 = VECTOR('NONE', #200, 1);
#202 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04335779999999999, -0.6096)); #202 = CARTESIAN_POINT('NONE', (-0.0338201, 0.043357799999999995, -0.6096));
#203 = LINE('NONE', #202, #201); #203 = LINE('NONE', #202, #201);
#204 = DIRECTION('NONE', (-1, -0.00000000000000020517070925003855, 0)); #204 = DIRECTION('NONE', (1, 0, 0));
#205 = VECTOR('NONE', #204, 1); #205 = VECTOR('NONE', #204, 1);
#206 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0)); #206 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0));
#207 = LINE('NONE', #206, #205); #207 = LINE('NONE', #206, #205);
#208 = DIRECTION('NONE', (-1, -0.00000000000000020517070925003855, 0)); #208 = DIRECTION('NONE', (1, 0, 0));
#209 = VECTOR('NONE', #208, 1); #209 = VECTOR('NONE', #208, 1);
#210 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.05079999999999999, -0.6096)); #210 = CARTESIAN_POINT('NONE', (-0.0338201, 0.0508, -0.6096));
#211 = LINE('NONE', #210, #209); #211 = LINE('NONE', #210, #209);
#212 = EDGE_CURVE('NONE', #5, #7, #59, .T.); #212 = EDGE_CURVE('NONE', #5, #7, #59, .T.);
#213 = EDGE_CURVE('NONE', #7, #9, #63, .T.); #213 = EDGE_CURVE('NONE', #7, #9, #63, .T.);
@ -264,56 +264,56 @@ DATA;
#248 = EDGE_CURVE('NONE', #51, #55, #203, .T.); #248 = EDGE_CURVE('NONE', #51, #55, #203, .T.);
#249 = EDGE_CURVE('NONE', #53, #5, #207, .T.); #249 = EDGE_CURVE('NONE', #53, #5, #207, .T.);
#250 = EDGE_CURVE('NONE', #55, #11, #211, .T.); #250 = EDGE_CURVE('NONE', #55, #11, #211, .T.);
#251 = CARTESIAN_POINT('NONE', (-0.01691004999999998, -0.0508, -0.30480000000000007)); #251 = CARTESIAN_POINT('NONE', (0.01691005, 0.0508, -0.3048));
#252 = DIRECTION('NONE', (0, -1, -0)); #252 = DIRECTION('NONE', (0, 1, 0));
#253 = AXIS2_PLACEMENT_3D('NONE', #251, #252, $); #253 = AXIS2_PLACEMENT_3D('NONE', #251, #252, $);
#254 = PLANE('NONE', #253); #254 = PLANE('NONE', #253);
#255 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04707889999999995, -0.30479999999999996)); #255 = CARTESIAN_POINT('NONE', (0.0338201, 0.0470789, -0.3048));
#256 = DIRECTION('NONE', (-1, 0, -0)); #256 = DIRECTION('NONE', (1, 0, 0));
#257 = AXIS2_PLACEMENT_3D('NONE', #255, #256, $); #257 = AXIS2_PLACEMENT_3D('NONE', #255, #256, $);
#258 = PLANE('NONE', #257); #258 = PLANE('NONE', #257);
#259 = CARTESIAN_POINT('NONE', (-0.018770600000000033, -0.043357799999999995, -0.30480000000000007)); #259 = CARTESIAN_POINT('NONE', (0.018770600000000002, 0.043357799999999995, -0.3048));
#260 = DIRECTION('NONE', (0, 1, 0)); #260 = DIRECTION('NONE', (0, -1, -0));
#261 = AXIS2_PLACEMENT_3D('NONE', #259, #260, $); #261 = AXIS2_PLACEMENT_3D('NONE', #259, #260, $);
#262 = PLANE('NONE', #261); #262 = PLANE('NONE', #261);
#263 = CARTESIAN_POINT('NONE', (-0.0037211000000000024, 0, -0.3048)); #263 = CARTESIAN_POINT('NONE', (0.0037211000000000024, 0, -0.3048));
#264 = DIRECTION('NONE', (-1, 0, -0)); #264 = DIRECTION('NONE', (1, 0, 0));
#265 = AXIS2_PLACEMENT_3D('NONE', #263, #264, $); #265 = AXIS2_PLACEMENT_3D('NONE', #263, #264, $);
#266 = PLANE('NONE', #265); #266 = PLANE('NONE', #265);
#267 = CARTESIAN_POINT('NONE', (-0.01877060000000003, 0.0433578, -0.30480000000000007)); #267 = CARTESIAN_POINT('NONE', (0.018770600000000002, -0.043357799999999995, -0.3048));
#268 = DIRECTION('NONE', (0, -1, -0)); #268 = DIRECTION('NONE', (0, 1, 0));
#269 = AXIS2_PLACEMENT_3D('NONE', #267, #268, $); #269 = AXIS2_PLACEMENT_3D('NONE', #267, #268, $);
#270 = PLANE('NONE', #269); #270 = PLANE('NONE', #269);
#271 = CARTESIAN_POINT('NONE', (-0.0338201, 0.04707889999999997, -0.30479999999999996)); #271 = CARTESIAN_POINT('NONE', (0.0338201, -0.047078899999999986, -0.30479999999999996));
#272 = DIRECTION('NONE', (-1, 0, -0)); #272 = DIRECTION('NONE', (1, 0, 0));
#273 = AXIS2_PLACEMENT_3D('NONE', #271, #272, $); #273 = AXIS2_PLACEMENT_3D('NONE', #271, #272, $);
#274 = PLANE('NONE', #273); #274 = PLANE('NONE', #273);
#275 = CARTESIAN_POINT('NONE', (0, 0.0508, -0.3048)); #275 = CARTESIAN_POINT('NONE', (0, -0.05079999999999999, -0.3048));
#276 = DIRECTION('NONE', (0, 1, 0)); #276 = DIRECTION('NONE', (0, -1, -0));
#277 = AXIS2_PLACEMENT_3D('NONE', #275, #276, $); #277 = AXIS2_PLACEMENT_3D('NONE', #275, #276, $);
#278 = PLANE('NONE', #277); #278 = PLANE('NONE', #277);
#279 = CARTESIAN_POINT('NONE', (0.03382009999999999, 0.04707889999999999, -0.30479999999999996)); #279 = CARTESIAN_POINT('NONE', (-0.033820100000000006, -0.04707889999999995, -0.30479999999999996));
#280 = DIRECTION('NONE', (1, 0, 0)); #280 = DIRECTION('NONE', (-1, 0, -0));
#281 = AXIS2_PLACEMENT_3D('NONE', #279, #280, $); #281 = AXIS2_PLACEMENT_3D('NONE', #279, #280, $);
#282 = PLANE('NONE', #281); #282 = PLANE('NONE', #281);
#283 = CARTESIAN_POINT('NONE', (0.018770600000000002, 0.043357799999999995, -0.3048)); #283 = CARTESIAN_POINT('NONE', (-0.018770600000000033, -0.043357799999999995, -0.30480000000000007));
#284 = DIRECTION('NONE', (0, -1, -0)); #284 = DIRECTION('NONE', (0, 1, 0));
#285 = AXIS2_PLACEMENT_3D('NONE', #283, #284, $); #285 = AXIS2_PLACEMENT_3D('NONE', #283, #284, $);
#286 = PLANE('NONE', #285); #286 = PLANE('NONE', #285);
#287 = CARTESIAN_POINT('NONE', (0.0037211000000000024, 0, -0.3048)); #287 = CARTESIAN_POINT('NONE', (-0.0037211000000000024, 0, -0.3048));
#288 = DIRECTION('NONE', (1, 0, 0)); #288 = DIRECTION('NONE', (-1, 0, -0));
#289 = AXIS2_PLACEMENT_3D('NONE', #287, #288, $); #289 = AXIS2_PLACEMENT_3D('NONE', #287, #288, $);
#290 = PLANE('NONE', #289); #290 = PLANE('NONE', #289);
#291 = CARTESIAN_POINT('NONE', (0.018770600000000002, -0.043357799999999995, -0.3048)); #291 = CARTESIAN_POINT('NONE', (-0.01877060000000003, 0.0433578, -0.30480000000000007));
#292 = DIRECTION('NONE', (0, 1, 0)); #292 = DIRECTION('NONE', (0, -1, -0));
#293 = AXIS2_PLACEMENT_3D('NONE', #291, #292, $); #293 = AXIS2_PLACEMENT_3D('NONE', #291, #292, $);
#294 = PLANE('NONE', #293); #294 = PLANE('NONE', #293);
#295 = CARTESIAN_POINT('NONE', (0.033820100000000006, -0.04707889999999999, -0.3048)); #295 = CARTESIAN_POINT('NONE', (-0.0338201, 0.04707889999999997, -0.30479999999999996));
#296 = DIRECTION('NONE', (1, 0, 0)); #296 = DIRECTION('NONE', (-1, 0, -0));
#297 = AXIS2_PLACEMENT_3D('NONE', #295, #296, $); #297 = AXIS2_PLACEMENT_3D('NONE', #295, #296, $);
#298 = PLANE('NONE', #297); #298 = PLANE('NONE', #297);
#299 = CARTESIAN_POINT('NONE', (0.016910050000000003, -0.0508, -0.3048)); #299 = CARTESIAN_POINT('NONE', (-0.016910049999999968, 0.050800000000000005, -0.30480000000000007));
#300 = DIRECTION('NONE', (0, -1, -0)); #300 = DIRECTION('NONE', (0, 1, 0));
#301 = AXIS2_PLACEMENT_3D('NONE', #299, #300, $); #301 = AXIS2_PLACEMENT_3D('NONE', #299, #300, $);
#302 = PLANE('NONE', #301); #302 = PLANE('NONE', #301);
#303 = CARTESIAN_POINT('NONE', (0, 0, -0)); #303 = CARTESIAN_POINT('NONE', (0, 0, -0));

File diff suppressed because one or more lines are too long

View File

@ -34,5 +34,5 @@ startSketchOn(knobPlane)
}, %) }, %)
|> xLine(endAbsolute = 0.0001) |> xLine(endAbsolute = 0.0001)
|> close() |> close()
|> revolve({ axis = "Y" }, %) |> revolve(axis = "Y")
|> appearance(color = '#D0FF01', metalness = 90, roughness = 50) |> appearance(color = '#D0FF01', metalness = 90, roughness = 50)

1
rust/Cargo.lock generated
View File

@ -1982,6 +1982,7 @@ dependencies = [
"js-sys", "js-sys",
"kcl-lib", "kcl-lib",
"kittycad", "kittycad",
"kittycad-modeling-cmds",
"serde_json", "serde_json",
"tokio", "tokio",
"toml", "toml",

View File

@ -30,6 +30,7 @@ debug = "line-tables-only"
[workspace.dependencies] [workspace.dependencies]
async-trait = "0.1.85" async-trait = "0.1.85"
anyhow = { version = "1" } anyhow = { version = "1" }
bson = { version = "2.13.0", features = ["uuid-1", "chrono"] }
clap = { version = "4.5.31", features = ["derive"] } clap = { version = "4.5.31", features = ["derive"] }
dashmap = { version = "6.1.0" } dashmap = { version = "6.1.0" }
http = "1" http = "1"

View File

@ -24,6 +24,7 @@ anyhow = { workspace = true, features = ["backtrace"] }
async-recursion = "1.1.1" async-recursion = "1.1.1"
async-trait = { workspace = true } async-trait = { workspace = true }
base64 = "0.22.1" base64 = "0.22.1"
bson = { workspace = true }
chrono = "0.4.38" chrono = "0.4.38"
clap = { version = "4.5.27", default-features = false, optional = true, features = [ clap = { version = "4.5.27", default-features = false, optional = true, features = [
"std", "std",
@ -95,7 +96,6 @@ wasm-bindgen-futures = "0.4.49"
web-sys = { version = "0.3.76", features = ["console"] } web-sys = { version = "0.3.76", features = ["console"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
bson = { version = "2.13.0", features = ["uuid-1", "chrono"] }
tokio = { workspace = true, features = ["full"] } tokio = { workspace = true, features = ["full"] }
tokio-tungstenite = { version = "0.24.0", features = [ tokio-tungstenite = { version = "0.24.0", features = [
"rustls-tls-native-roots", "rustls-tls-native-roots",

View File

@ -876,7 +876,7 @@ async fn kcl_test_simple_revolve() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'y'}, %) |> revolve(axis = 'y')
"#; "#;
@ -896,7 +896,7 @@ async fn kcl_test_simple_revolve_uppercase() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'Y'}, %) |> revolve(axis = 'Y')
"#; "#;
@ -916,7 +916,7 @@ async fn kcl_test_simple_revolve_negative() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: '-Y', angle: 180}, %) |> revolve(axis = '-Y', angle = 180)
"#; "#;
@ -936,7 +936,7 @@ async fn kcl_test_revolve_bad_angle_low() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'y', angle: -455}, %) |> revolve(axis = 'y', angle = -455)
"#; "#;
@ -962,7 +962,7 @@ async fn kcl_test_revolve_bad_angle_high() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'y', angle: 455}, %) |> revolve(axis = 'y', angle = 455)
"#; "#;
@ -988,7 +988,7 @@ async fn kcl_test_simple_revolve_custom_angle() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'y', angle: 180}, %) |> revolve(axis = 'y', angle = 180)
"#; "#;
@ -1008,7 +1008,7 @@ async fn kcl_test_simple_revolve_custom_axis() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: {custom: {axis: [0, -1], origin: [0,0]}}, angle: 180}, %) |> revolve(axis = {custom: {axis: [0, -1], origin: [0,0]}}, angle = 180)
"#; "#;
@ -1032,7 +1032,7 @@ sketch001 = startSketchOn(box, "end")
|> line(end = [2, 0]) |> line(end = [2, 0])
|> line(end = [0, 10]) |> line(end = [0, 10])
|> close() |> close()
|> revolve({ axis: getOppositeEdge(revolveAxis), angle: 90 }, %) |> revolve(axis = getOppositeEdge(revolveAxis), angle = 90)
"#; "#;
@ -1056,7 +1056,7 @@ sketch001 = startSketchOn(box, revolveAxis)
|> line(end = [2, 0]) |> line(end = [2, 0])
|> line(end = [0, 10]) |> line(end = [0, 10])
|> close() |> close()
|> revolve({ axis: revolveAxis, angle: 90 }, %) |> revolve(axis = revolveAxis, angle = 90)
"#; "#;
@ -1082,10 +1082,10 @@ async fn kcl_test_revolve_on_face_circle_edge() {
sketch001 = startSketchOn(box, "END") sketch001 = startSketchOn(box, "END")
|> circle(center = [10,10], radius= 4) |> circle(center = [10,10], radius= 4)
|> revolve({ |> revolve(
angle: 90, angle = 90,
axis: getOppositeEdge(revolveAxis) axis = getOppositeEdge(revolveAxis)
}, %) )
"#; "#;
let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap(); let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap();
@ -1104,10 +1104,10 @@ async fn kcl_test_revolve_on_face_circle() {
sketch001 = startSketchOn(box, "END") sketch001 = startSketchOn(box, "END")
|> circle(center = [10,10], radius= 4 ) |> circle(center = [10,10], radius= 4 )
|> revolve({ |> revolve(
angle: -90, angle = -90,
axis: 'y' axis = 'y'
}, %) )
"#; "#;
let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap(); let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap();
@ -1130,10 +1130,10 @@ sketch001 = startSketchOn(box, "end")
|> line(end = [2, 0]) |> line(end = [2, 0])
|> line(end = [0, 10]) |> line(end = [0, 10])
|> close() |> close()
|> revolve({ |> revolve(
axis: 'y', axis = 'y',
angle: -90, angle = -90,
}, %) )
"#; "#;
let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap(); let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap();
@ -1144,10 +1144,10 @@ sketch001 = startSketchOn(box, "end")
async fn kcl_test_basic_revolve_circle() { async fn kcl_test_basic_revolve_circle() {
let code = r#"sketch001 = startSketchOn('XY') let code = r#"sketch001 = startSketchOn('XY')
|> circle(center = [15, 0], radius= 5) |> circle(center = [15, 0], radius= 5)
|> revolve({ |> revolve(
angle: 360, angle = 360,
axis: 'y' axis = 'y'
}, %) )
"#; "#;
let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap(); let result = execute_and_snapshot(code, UnitLength::Mm, None).await.unwrap();
@ -1166,7 +1166,7 @@ async fn kcl_test_simple_revolve_sketch_on_edge() {
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({axis: 'y', angle: 180}, %) |> revolve(axis = 'y', angle = 180)
part002 = startSketchOn(part001, 'end') part002 = startSketchOn(part001, 'end')
|> startProfileAt([4.5, -5], %) |> startProfileAt([4.5, -5], %)

View File

@ -133,7 +133,7 @@ impl StdLibFnArg {
|| self.type_ == "[Solid]" || self.type_ == "[Solid]"
|| self.type_ == "SketchSurface" || self.type_ == "SketchSurface"
|| self.type_ == "SketchOrSurface" || self.type_ == "SketchOrSurface"
|| self.type_ == "SolidOrImportedGeometry" || self.type_ == "SolidOrSketchOrImportedGeometry"
{ {
return Ok(Some((index, format!("{label}${{{}:{}}}", index, "%")))); return Ok(Some((index, format!("{label}${{{}:{}}}", index, "%"))));
} else if (self.type_ == "TagDeclarator" || self.type_ == "TagNode") && self.required { } else if (self.type_ == "TagDeclarator" || self.type_ == "TagNode") && self.required {
@ -1000,12 +1000,7 @@ mod tests {
fn get_autocomplete_snippet_revolve() { fn get_autocomplete_snippet_revolve() {
let revolve_fn: Box<dyn StdLibFn> = Box::new(crate::std::revolve::Revolve); let revolve_fn: Box<dyn StdLibFn> = Box::new(crate::std::revolve::Revolve);
let snippet = revolve_fn.to_autocomplete_snippet().unwrap(); let snippet = revolve_fn.to_autocomplete_snippet().unwrap();
assert_eq!( assert_eq!(snippet, r#"revolve(${0:%}, axis = ${1:"X"})${}"#);
snippet,
r#"revolve({
axis = ${0:"X"},
}, ${1:%})${}"#
);
} }
#[test] #[test]

View File

@ -104,23 +104,29 @@ impl EngineConnection {
})?; })?;
let value = crate::wasm::JsFuture::from(promise).await.map_err(|e| { let value = crate::wasm::JsFuture::from(promise).await.map_err(|e| {
KclError::Engine(KclErrorDetails { // Try to parse the error as an engine error.
message: format!("Failed to wait for promise from engine: {:?}", e), let err_str = e.as_string().unwrap_or_default();
source_ranges: vec![source_range], if let Ok(kittycad_modeling_cmds::websocket::FailureWebSocketResponse { errors, .. }) =
}) serde_json::from_str(&err_str)
{
KclError::Engine(KclErrorDetails {
message: errors.iter().map(|e| e.message.clone()).collect::<Vec<_>>().join("\n"),
source_ranges: vec![source_range],
})
} else {
KclError::Engine(KclErrorDetails {
message: format!("Failed to wait for promise from send modeling command: {:?}", e),
source_ranges: vec![source_range],
})
}
})?; })?;
// Parse the value as a string. // Convert JsValue to a Uint8Array
let s = value.as_string().ok_or_else(|| { let data = js_sys::Uint8Array::from(value);
KclError::Engine(KclErrorDetails {
message: format!("Failed to get string from response from engine: `{:?}`", value),
source_ranges: vec![source_range],
})
})?;
let ws_result: WebSocketResponse = serde_json::from_str(&s).map_err(|e| { let ws_result: WebSocketResponse = bson::from_slice(&data.to_vec()).map_err(|e| {
KclError::Engine(KclErrorDetails { KclError::Engine(KclErrorDetails {
message: format!("Failed to deserialize response from engine: {:?}", e), message: format!("Failed to deserialize bson response from engine: {:?}", e),
source_ranges: vec![source_range], source_ranges: vec![source_range],
}) })
})?; })?;

View File

@ -83,16 +83,17 @@ pub struct ImportedGeometry {
#[ts(export)] #[ts(export)]
#[serde(tag = "type", rename_all = "camelCase")] #[serde(tag = "type", rename_all = "camelCase")]
#[allow(clippy::vec_box)] #[allow(clippy::vec_box)]
pub enum SolidOrImportedGeometry { pub enum SolidOrSketchOrImportedGeometry {
ImportedGeometry(Box<ImportedGeometry>), ImportedGeometry(Box<ImportedGeometry>),
SolidSet(Vec<Solid>), SolidSet(Vec<Solid>),
SketchSet(Vec<Sketch>),
} }
impl From<SolidOrImportedGeometry> for crate::execution::KclValue { impl From<SolidOrSketchOrImportedGeometry> for crate::execution::KclValue {
fn from(value: SolidOrImportedGeometry) -> Self { fn from(value: SolidOrSketchOrImportedGeometry) -> Self {
match value { match value {
SolidOrImportedGeometry::ImportedGeometry(s) => crate::execution::KclValue::ImportedGeometry(*s), SolidOrSketchOrImportedGeometry::ImportedGeometry(s) => crate::execution::KclValue::ImportedGeometry(*s),
SolidOrImportedGeometry::SolidSet(mut s) => { SolidOrSketchOrImportedGeometry::SolidSet(mut s) => {
if s.len() == 1 { if s.len() == 1 {
crate::execution::KclValue::Solid { crate::execution::KclValue::Solid {
value: Box::new(s.pop().unwrap()), value: Box::new(s.pop().unwrap()),
@ -107,15 +108,31 @@ impl From<SolidOrImportedGeometry> for crate::execution::KclValue {
} }
} }
} }
SolidOrSketchOrImportedGeometry::SketchSet(mut s) => {
if s.len() == 1 {
crate::execution::KclValue::Sketch {
value: Box::new(s.pop().unwrap()),
}
} else {
crate::execution::KclValue::HomArray {
value: s
.into_iter()
.map(|s| crate::execution::KclValue::Sketch { value: Box::new(s) })
.collect(),
ty: crate::execution::PrimitiveType::Sketch,
}
}
}
} }
} }
} }
impl SolidOrImportedGeometry { impl SolidOrSketchOrImportedGeometry {
pub(crate) fn ids(&self) -> Vec<uuid::Uuid> { pub(crate) fn ids(&self) -> Vec<uuid::Uuid> {
match self { match self {
SolidOrImportedGeometry::ImportedGeometry(s) => vec![s.id], SolidOrSketchOrImportedGeometry::ImportedGeometry(s) => vec![s.id],
SolidOrImportedGeometry::SolidSet(s) => s.iter().map(|s| s.id).collect(), SolidOrSketchOrImportedGeometry::SolidSet(s) => s.iter().map(|s| s.id).collect(),
SolidOrSketchOrImportedGeometry::SketchSet(s) => s.iter().map(|s| s.id).collect(),
} }
} }
} }

View File

@ -167,7 +167,7 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
if render_to_png { if render_to_png {
twenty_twenty::assert_image(test.output_dir.join(RENDERED_MODEL_NAME), &png, 0.99); twenty_twenty::assert_image(test.output_dir.join(RENDERED_MODEL_NAME), &png, 0.99);
} }
if export_step { if export_step && std::env::var("EXPECTORATE").is_ok() {
let step = step.unwrap(); let step = step.unwrap();
// We do not use expectorate here because the output is non-deterministic // We do not use expectorate here because the output is non-deterministic
// due to SSI and GPU. // due to SSI and GPU.

View File

@ -98,7 +98,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result<KclVal
/// // Add color to a revolved solid. /// // Add color to a revolved solid.
/// sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> circle( center = [15, 0], radius = 5 ) /// |> circle( center = [15, 0], radius = 5 )
/// |> revolve({ angle = 360, axis = 'y' }, %) /// |> revolve( angle = 360, axis = 'y')
/// |> appearance( /// |> appearance(
/// color = '#ff0000', /// color = '#ff0000',
/// metalness = 90, /// metalness = 90,

View File

@ -1239,16 +1239,6 @@ impl<'a> FromKclValue<'a> for super::sketch::ArcToData {
} }
} }
impl<'a> FromKclValue<'a> for super::revolve::RevolveData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?;
let angle = obj.get("angle").and_then(|x| x.as_f64());
let tolerance = obj.get("tolerance").and_then(|x| x.as_f64());
let_field_of!(obj, axis);
Some(Self { angle, axis, tolerance })
}
}
impl<'a> FromKclValue<'a> for super::sketch::TangentialArcData { impl<'a> FromKclValue<'a> for super::sketch::TangentialArcData {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> { fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let obj = arg.as_object()?; let obj = arg.as_object()?;
@ -1459,13 +1449,27 @@ impl<'a> FromKclValue<'a> for crate::execution::Solid {
} }
} }
impl<'a> FromKclValue<'a> for crate::execution::SolidOrImportedGeometry { impl<'a> FromKclValue<'a> for crate::execution::SolidOrSketchOrImportedGeometry {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> { fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
match arg { match arg {
KclValue::Solid { value } => Some(Self::SolidSet(vec![(**value).clone()])), KclValue::Solid { value } => Some(Self::SolidSet(vec![(**value).clone()])),
KclValue::HomArray { value, .. } => Some(Self::SolidSet( KclValue::Sketch { value } => Some(Self::SketchSet(vec![(**value).clone()])),
value.iter().map(|v| v.as_solid().unwrap().clone()).collect(), KclValue::HomArray { value, .. } => {
)), let mut solids = vec![];
let mut sketches = vec![];
for item in value {
match item {
KclValue::Solid { value } => solids.push((**value).clone()),
KclValue::Sketch { value } => sketches.push((**value).clone()),
_ => return None,
}
}
if !solids.is_empty() {
Some(Self::SolidSet(solids))
} else {
Some(Self::SketchSet(sketches))
}
}
KclValue::ImportedGeometry(value) => Some(Self::ImportedGeometry(Box::new(value.clone()))), KclValue::ImportedGeometry(value) => Some(Self::ImportedGeometry(Box::new(value.clone()))),
_ => None, _ => None,
} }

View File

@ -4,35 +4,28 @@ use anyhow::Result;
use kcl_derive_docs::stdlib; use kcl_derive_docs::stdlib;
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd}; use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
use kittycad_modeling_cmds::{self as kcmc}; use kittycad_modeling_cmds::{self as kcmc};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::{ use crate::{
errors::{KclError, KclErrorDetails}, errors::{KclError, KclErrorDetails},
execution::{ExecState, KclValue, Sketch, Solid}, execution::{
kcl_value::{ArrayLen, RuntimeType},
ExecState, KclValue, PrimitiveType, Sketch, Solid,
},
std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, fillet::default_tolerance, Args}, std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, fillet::default_tolerance, Args},
}; };
/// Data for revolution surfaces.
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)]
pub struct RevolveData {
/// Angle to revolve (in degrees). Default is 360.
#[serde(default)]
#[schemars(range(min = -360.0, max = 360.0))]
pub angle: Option<f64>,
/// Axis of revolution.
pub axis: Axis2dOrEdgeReference,
/// Tolerance for the revolve operation.
#[serde(default)]
pub tolerance: Option<f64>,
}
/// Revolve a sketch or set of sketches around an axis. /// Revolve a sketch or set of sketches around an axis.
pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let (data, sketches): (RevolveData, _) = args.get_data_and_sketches(exec_state)?; let sketches = args.get_unlabeled_kw_arg_typed(
"sketches",
&RuntimeType::Array(PrimitiveType::Sketch, ArrayLen::NonEmpty),
exec_state,
)?;
let axis: Axis2dOrEdgeReference = args.get_kw_arg("axis")?;
let angle = args.get_kw_arg_opt("angle")?;
let tolerance = args.get_kw_arg_opt("tolerance")?;
let value = inner_revolve(data, sketches, exec_state, args).await?; let value = inner_revolve(sketches, axis, angle, tolerance, exec_state, args).await?;
Ok(value.into()) Ok(value.into())
} }
@ -60,17 +53,17 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line(end = [0, -5.5]) /// |> line(end = [0, -5.5])
/// |> line(end = [-2, 0]) /// |> line(end = [-2, 0])
/// |> close() /// |> close()
/// |> revolve({axis = 'y'}, %) // default angle is 360 /// |> revolve(axis = 'y') // default angle is 360
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// // A donut shape. /// // A donut shape.
/// sketch001 = startSketchOn('XY') /// sketch001 = startSketchOn('XY')
/// |> circle( center = [15, 0], radius = 5 ) /// |> circle( center = [15, 0], radius = 5 )
/// |> revolve({ /// |> revolve(
/// angle = 360, /// angle = 360,
/// axis = 'y' /// axis = 'y'
/// }, %) /// )
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -84,7 +77,7 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line(end = [0, -5.5]) /// |> line(end = [0, -5.5])
/// |> line(end = [-2, 0]) /// |> line(end = [-2, 0])
/// |> close() /// |> close()
/// |> revolve({axis = 'y', angle = 180}, %) /// |> revolve(axis = 'y', angle = 180)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -98,7 +91,8 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line(end = [0, -5.5]) /// |> line(end = [0, -5.5])
/// |> line(end = [-2, 0]) /// |> line(end = [-2, 0])
/// |> close() /// |> close()
/// |> revolve({axis = 'y', angle = 180}, %) /// |> revolve(axis = 'y', angle = 180)
///
/// part002 = startSketchOn(part001, 'end') /// part002 = startSketchOn(part001, 'end')
/// |> startProfileAt([4.5, -5], %) /// |> startProfileAt([4.5, -5], %)
/// |> line(end = [0, 5]) /// |> line(end = [0, 5])
@ -119,10 +113,10 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle( center = [10,10], radius = 4 ) /// |> circle( center = [10,10], radius = 4 )
/// |> revolve({ /// |> revolve(
/// angle = -90, /// angle = -90,
/// axis = 'y' /// axis = 'y'
/// }, %) /// )
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -136,10 +130,10 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle( center = [10,10], radius = 4 ) /// |> circle( center = [10,10], radius = 4 )
/// |> revolve({ /// |> revolve(
/// angle = 90, /// angle = 90,
/// axis = getOppositeEdge(revolveAxis) /// axis = getOppositeEdge(revolveAxis)
/// }, %) /// )
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -153,11 +147,11 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// ///
/// sketch001 = startSketchOn(box, "END") /// sketch001 = startSketchOn(box, "END")
/// |> circle( center = [10,10], radius = 4 ) /// |> circle( center = [10,10], radius = 4 )
/// |> revolve({ /// |> revolve(
/// angle = 90, /// angle = 90,
/// axis = getOppositeEdge(revolveAxis), /// axis = getOppositeEdge(revolveAxis),
/// tolerance: 0.0001 /// tolerance = 0.0001
/// }, %) /// )
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -168,14 +162,15 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) /// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
/// |> close() /// |> close()
/// ///
/// part001 = revolve({ /// part001 = revolve(
/// sketch001,
/// axis = { /// axis = {
/// custom: { /// custom: {
/// axis = [0.0, 1.0], /// axis = [0.0, 1.0],
/// origin: [0.0, 0.0] /// origin: [0.0, 0.0]
/// } /// }
/// } /// }
/// }, sketch001) /// )
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
@ -196,21 +191,60 @@ pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) /// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
/// |> close() /// |> close()
/// ///
/// revolve({ /// revolve(
/// [profile001, profile002],
/// axis = "X", /// axis = "X",
/// }, [profile001, profile002]) /// )
/// ```
///
/// ```no_run
/// // Revolve around a path that has not been extruded.
///
/// profile001 = startSketchOn('XY')
/// |> startProfileAt([0, 0], %)
/// |> line(end = [0, 20], tag = $revolveAxis)
/// |> line(end = [20, 0])
/// |> line(end = [0, -20])
/// |> close(%)
///
/// sketch001 = startSketchOn('XY')
/// |> circle(center = [-10, 10], radius = 4)
/// |> revolve(angle = 90, axis = revolveAxis)
/// ```
///
/// ```no_run
/// // Revolve around a path that has not been extruded or closed.
///
/// profile001 = startSketchOn('XY')
/// |> startProfileAt([0, 0], %)
/// |> line(end = [0, 20], tag = $revolveAxis)
/// |> line(end = [20, 0])
///
/// sketch001 = startSketchOn('XY')
/// |> circle(center = [-10, 10], radius = 4)
/// |> revolve(angle = 90, axis = revolveAxis)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "revolve", name = "revolve",
feature_tree_operation = true, feature_tree_operation = true,
keywords = true,
unlabeled_first = true,
args = {
sketches = { docs = "The sketch or set of sketches that should be revolved" },
axis = { docs = "Axis of revolution." },
angle = { docs = "Angle to revolve (in degrees). Default is 360." },
tolerance = { docs = "Tolerance for the revolve operation." },
}
}] }]
async fn inner_revolve( async fn inner_revolve(
data: RevolveData,
sketches: Vec<Sketch>, sketches: Vec<Sketch>,
axis: Axis2dOrEdgeReference,
angle: Option<f64>,
tolerance: Option<f64>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
args: Args, args: Args,
) -> Result<Vec<Solid>, KclError> { ) -> Result<Vec<Solid>, KclError> {
if let Some(angle) = data.angle { if let Some(angle) = angle {
// Return an error if the angle is zero. // Return an error if the angle is zero.
// We don't use validate() here because we want to return a specific error message that is // We don't use validate() here because we want to return a specific error message that is
// nice and we use the other data in the docs, so we still need use the derive above for the json schema. // nice and we use the other data in the docs, so we still need use the derive above for the json schema.
@ -222,13 +256,13 @@ async fn inner_revolve(
} }
} }
let angle = Angle::from_degrees(data.angle.unwrap_or(360.0)); let angle = Angle::from_degrees(angle.unwrap_or(360.0));
let mut solids = Vec::new(); let mut solids = Vec::new();
for sketch in &sketches { for sketch in &sketches {
let id = exec_state.next_uuid(); let id = exec_state.next_uuid();
match &data.axis { match &axis {
Axis2dOrEdgeReference::Axis(axis) => { Axis2dOrEdgeReference::Axis(axis) => {
let (axis, origin) = axis.axis_and_origin()?; let (axis, origin) = axis.axis_and_origin()?;
args.batch_modeling_cmd( args.batch_modeling_cmd(
@ -238,7 +272,7 @@ async fn inner_revolve(
target: sketch.id.into(), target: sketch.id.into(),
axis, axis,
origin, origin,
tolerance: LengthUnit(data.tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))), tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
axis_is_2d: true, axis_is_2d: true,
}), }),
) )
@ -252,7 +286,7 @@ async fn inner_revolve(
angle, angle,
target: sketch.id.into(), target: sketch.id.into(),
edge_id, edge_id,
tolerance: LengthUnit(data.tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))), tolerance: LengthUnit(tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))),
}), }),
) )
.await?; .await?;

View File

@ -991,7 +991,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
/// |> line(end = [-2, 0]) /// |> line(end = [-2, 0])
/// |> close() /// |> close()
/// ///
/// example = revolve({ axis: 'y', angle: 180 }, exampleSketch) /// example = revolve(exampleSketch, axis = 'y', angle = 180)
/// ///
/// exampleSketch002 = startSketchOn(example, 'end') /// exampleSketch002 = startSketchOn(example, 'end')
/// |> startProfileAt([4.5, -5], %) /// |> startProfileAt([4.5, -5], %)

View File

@ -15,16 +15,17 @@ use crate::{
errors::{KclError, KclErrorDetails}, errors::{KclError, KclErrorDetails},
execution::{ execution::{
kcl_value::{ArrayLen, RuntimeType}, kcl_value::{ArrayLen, RuntimeType},
ExecState, KclValue, PrimitiveType, SolidOrImportedGeometry, ExecState, KclValue, PrimitiveType, SolidOrSketchOrImportedGeometry,
}, },
std::Args, std::Args,
}; };
/// Scale a solid. /// Scale a solid or a sketch.
pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let solids = args.get_unlabeled_kw_arg_typed( let objects = args.get_unlabeled_kw_arg_typed(
"solids", "objects",
&RuntimeType::Union(vec![ &RuntimeType::Union(vec![
RuntimeType::Array(PrimitiveType::Sketch, ArrayLen::NonEmpty),
RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty), RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty),
RuntimeType::Primitive(PrimitiveType::ImportedGeometry), RuntimeType::Primitive(PrimitiveType::ImportedGeometry),
]), ]),
@ -33,11 +34,11 @@ pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
let scale = args.get_kw_arg("scale")?; let scale = args.get_kw_arg("scale")?;
let global = args.get_kw_arg_opt("global")?; let global = args.get_kw_arg_opt("global")?;
let solids = inner_scale(solids, scale, global, exec_state, args).await?; let objects = inner_scale(objects, scale, global, exec_state, args).await?;
Ok(solids.into()) Ok(objects.into())
} }
/// Scale a solid. /// Scale a solid or a sketch.
/// ///
/// By default the transform is applied in local sketch axis, therefore the origin will not move. /// By default the transform is applied in local sketch axis, therefore the origin will not move.
/// ///
@ -134,25 +135,25 @@ pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
keywords = true, keywords = true,
unlabeled_first = true, unlabeled_first = true,
args = { args = {
solids = {docs = "The solid or set of solids to scale."}, objects = {docs = "The solid, sketch, or set of solids or sketches to scale."},
scale = {docs = "The scale factor for the x, y, and z axes."}, scale = {docs = "The scale factor for the x, y, and z axes."},
global = {docs = "If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move."} global = {docs = "If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move."}
} }
}] }]
async fn inner_scale( async fn inner_scale(
solids: SolidOrImportedGeometry, objects: SolidOrSketchOrImportedGeometry,
scale: [f64; 3], scale: [f64; 3],
global: Option<bool>, global: Option<bool>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
args: Args, args: Args,
) -> Result<SolidOrImportedGeometry, KclError> { ) -> Result<SolidOrSketchOrImportedGeometry, KclError> {
for solid_id in solids.ids() { for object_id in objects.ids() {
let id = exec_state.next_uuid(); let id = exec_state.next_uuid();
args.batch_modeling_cmd( args.batch_modeling_cmd(
id, id,
ModelingCmd::from(mcmd::SetObjectTransform { ModelingCmd::from(mcmd::SetObjectTransform {
object_id: solid_id, object_id,
transforms: vec![shared::ComponentTransform { transforms: vec![shared::ComponentTransform {
scale: Some(shared::TransformBy::<Point3d<f64>> { scale: Some(shared::TransformBy::<Point3d<f64>> {
property: Point3d { property: Point3d {
@ -172,14 +173,15 @@ async fn inner_scale(
.await?; .await?;
} }
Ok(solids) Ok(objects)
} }
/// Move a solid. /// Move a solid or a sketch.
pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let solids = args.get_unlabeled_kw_arg_typed( let objects = args.get_unlabeled_kw_arg_typed(
"solids", "objects",
&RuntimeType::Union(vec![ &RuntimeType::Union(vec![
RuntimeType::Array(PrimitiveType::Sketch, ArrayLen::NonEmpty),
RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty), RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty),
RuntimeType::Primitive(PrimitiveType::ImportedGeometry), RuntimeType::Primitive(PrimitiveType::ImportedGeometry),
]), ]),
@ -188,11 +190,11 @@ pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValu
let translate = args.get_kw_arg("translate")?; let translate = args.get_kw_arg("translate")?;
let global = args.get_kw_arg_opt("global")?; let global = args.get_kw_arg_opt("global")?;
let solids = inner_translate(solids, translate, global, exec_state, args).await?; let objects = inner_translate(objects, translate, global, exec_state, args).await?;
Ok(solids.into()) Ok(objects.into())
} }
/// Move a solid. /// Move a solid or a sketch.
/// ///
/// ```no_run /// ```no_run
/// // Move a pipe. /// // Move a pipe.
@ -275,31 +277,80 @@ pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result<KclValu
/// // Move the sweeps. /// // Move the sweeps.
/// translate(parts, translate = [1.0, 1.0, 2.5]) /// translate(parts, translate = [1.0, 1.0, 2.5])
/// ``` /// ```
///
/// ```no_run
/// // Move a sketch.
///
/// fn square(length){
/// l = length / 2
/// p0 = [-l, -l]
/// p1 = [-l, l]
/// p2 = [l, l]
/// p3 = [l, -l]
///
/// return startSketchOn(XY)
/// |> startProfileAt(p0, %)
/// |> line(endAbsolute = p1)
/// |> line(endAbsolute = p2)
/// |> line(endAbsolute = p3)
/// |> close()
/// }
///
/// square(10)
/// |> translate(
/// translate = [5, 5, 0],
/// )
/// |> extrude(
/// length = 10,
/// )
/// ```
///
/// ```no_run
/// // Translate and rotate a sketch to create a loft.
/// sketch001 = startSketchOn('XY')
///
/// fn square() {
/// return startProfileAt([-10, 10], sketch001)
/// |> xLine(length = 20)
/// |> yLine(length = -20)
/// |> xLine(length = -20)
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
/// |> close()
/// }
///
/// profile001 = square()
///
/// profile002 = square()
/// |> translate(translate = [0, 0, 20])
/// |> rotate(axis = [0, 0, 1.0], angle = 45)
///
/// loft([profile001, profile002])
/// ```
#[stdlib { #[stdlib {
name = "translate", name = "translate",
feature_tree_operation = false, feature_tree_operation = false,
keywords = true, keywords = true,
unlabeled_first = true, unlabeled_first = true,
args = { args = {
solids = {docs = "The solid or set of solids to move."}, objects = {docs = "The solid, sketch, or set of solids or sketches to move."},
translate = {docs = "The amount to move the solid in all three axes."}, translate = {docs = "The amount to move the solid or sketch in all three axes."},
global = {docs = "If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move."} global = {docs = "If true, the transform is applied in global space. The origin of the model will move. By default, the transform is applied in local sketch axis, therefore the origin will not move."}
} }
}] }]
async fn inner_translate( async fn inner_translate(
solids: SolidOrImportedGeometry, objects: SolidOrSketchOrImportedGeometry,
translate: [f64; 3], translate: [f64; 3],
global: Option<bool>, global: Option<bool>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
args: Args, args: Args,
) -> Result<SolidOrImportedGeometry, KclError> { ) -> Result<SolidOrSketchOrImportedGeometry, KclError> {
for solid_id in solids.ids() { for object_id in objects.ids() {
let id = exec_state.next_uuid(); let id = exec_state.next_uuid();
args.batch_modeling_cmd( args.batch_modeling_cmd(
id, id,
ModelingCmd::from(mcmd::SetObjectTransform { ModelingCmd::from(mcmd::SetObjectTransform {
object_id: solid_id, object_id,
transforms: vec![shared::ComponentTransform { transforms: vec![shared::ComponentTransform {
translate: Some(shared::TransformBy::<Point3d<LengthUnit>> { translate: Some(shared::TransformBy::<Point3d<LengthUnit>> {
property: shared::Point3d { property: shared::Point3d {
@ -319,14 +370,15 @@ async fn inner_translate(
.await?; .await?;
} }
Ok(solids) Ok(objects)
} }
/// Rotate a solid. /// Rotate a solid or a sketch.
pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let solids = args.get_unlabeled_kw_arg_typed( let objects = args.get_unlabeled_kw_arg_typed(
"solid", "objects",
&RuntimeType::Union(vec![ &RuntimeType::Union(vec![
RuntimeType::Array(PrimitiveType::Sketch, ArrayLen::NonEmpty),
RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty), RuntimeType::Array(PrimitiveType::Solid, ArrayLen::NonEmpty),
RuntimeType::Primitive(PrimitiveType::ImportedGeometry), RuntimeType::Primitive(PrimitiveType::ImportedGeometry),
]), ]),
@ -439,11 +491,11 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
} }
} }
let solids = inner_rotate(solids, roll, pitch, yaw, axis, angle, global, exec_state, args).await?; let objects = inner_rotate(objects, roll, pitch, yaw, axis, angle, global, exec_state, args).await?;
Ok(solids.into()) Ok(objects.into())
} }
/// Rotate a solid. /// Rotate a solid or a sketch.
/// ///
/// ### Using Roll, Pitch, and Yaw /// ### Using Roll, Pitch, and Yaw
/// ///
@ -589,13 +641,35 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
/// // Rotate the sweeps. /// // Rotate the sweeps.
/// rotate(parts, axis = [0, 0, 1.0], angle = 90) /// rotate(parts, axis = [0, 0, 1.0], angle = 90)
/// ``` /// ```
///
/// ```no_run
/// // Translate and rotate a sketch to create a loft.
/// sketch001 = startSketchOn('XY')
///
/// fn square() {
/// return startProfileAt([-10, 10], sketch001)
/// |> xLine(length = 20)
/// |> yLine(length = -20)
/// |> xLine(length = -20)
/// |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
/// |> close()
/// }
///
/// profile001 = square()
///
/// profile002 = square()
/// |> translate(translate = [0, 0, 20])
/// |> rotate(axis = [0, 0, 1.0], angle = 45)
///
/// loft([profile001, profile002])
/// ```
#[stdlib { #[stdlib {
name = "rotate", name = "rotate",
feature_tree_operation = false, feature_tree_operation = false,
keywords = true, keywords = true,
unlabeled_first = true, unlabeled_first = true,
args = { args = {
solids = {docs = "The solid or set of solids to rotate."}, objects = {docs = "The solid, sketch, or set of solids or sketches to rotate."},
roll = {docs = "The roll angle in degrees. Must be used with `pitch` and `yaw`. Must be between -360 and 360.", include_in_snippet = true}, roll = {docs = "The roll angle in degrees. Must be used with `pitch` and `yaw`. Must be between -360 and 360.", include_in_snippet = true},
pitch = {docs = "The pitch angle in degrees. Must be used with `roll` and `yaw`. Must be between -360 and 360.", include_in_snippet = true}, pitch = {docs = "The pitch angle in degrees. Must be used with `roll` and `yaw`. Must be between -360 and 360.", include_in_snippet = true},
yaw = {docs = "The yaw angle in degrees. Must be used with `roll` and `pitch`. Must be between -360 and 360.", include_in_snippet = true}, yaw = {docs = "The yaw angle in degrees. Must be used with `roll` and `pitch`. Must be between -360 and 360.", include_in_snippet = true},
@ -606,7 +680,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
}] }]
#[allow(clippy::too_many_arguments)] #[allow(clippy::too_many_arguments)]
async fn inner_rotate( async fn inner_rotate(
solids: SolidOrImportedGeometry, objects: SolidOrSketchOrImportedGeometry,
roll: Option<f64>, roll: Option<f64>,
pitch: Option<f64>, pitch: Option<f64>,
yaw: Option<f64>, yaw: Option<f64>,
@ -615,15 +689,15 @@ async fn inner_rotate(
global: Option<bool>, global: Option<bool>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
args: Args, args: Args,
) -> Result<SolidOrImportedGeometry, KclError> { ) -> Result<SolidOrSketchOrImportedGeometry, KclError> {
for solid_id in solids.ids() { for object_id in objects.ids() {
let id = exec_state.next_uuid(); let id = exec_state.next_uuid();
if let (Some(roll), Some(pitch), Some(yaw)) = (roll, pitch, yaw) { if let (Some(roll), Some(pitch), Some(yaw)) = (roll, pitch, yaw) {
args.batch_modeling_cmd( args.batch_modeling_cmd(
id, id,
ModelingCmd::from(mcmd::SetObjectTransform { ModelingCmd::from(mcmd::SetObjectTransform {
object_id: solid_id, object_id,
transforms: vec![shared::ComponentTransform { transforms: vec![shared::ComponentTransform {
rotate_rpy: Some(shared::TransformBy::<Point3d<f64>> { rotate_rpy: Some(shared::TransformBy::<Point3d<f64>> {
property: shared::Point3d { property: shared::Point3d {
@ -647,7 +721,7 @@ async fn inner_rotate(
args.batch_modeling_cmd( args.batch_modeling_cmd(
id, id,
ModelingCmd::from(mcmd::SetObjectTransform { ModelingCmd::from(mcmd::SetObjectTransform {
object_id: solid_id, object_id,
transforms: vec![shared::ComponentTransform { transforms: vec![shared::ComponentTransform {
rotate_angle_axis: Some(shared::TransformBy::<Point4d<f64>> { rotate_angle_axis: Some(shared::TransformBy::<Point4d<f64>> {
property: shared::Point4d { property: shared::Point4d {
@ -669,7 +743,7 @@ async fn inner_rotate(
} }
} }
Ok(solids) Ok(objects)
} }
#[cfg(test)] #[cfg(test)]

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/simulation_tests.rs source: kcl-lib/src/simulation_tests.rs
description: Result of parsing array_index_oob.kcl description: Result of parsing array_index_oob.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_index_oob.kcl description: Error from executing array_index_oob.kcl
--- ---
KCL UndefinedValue error KCL UndefinedValue error

View File

@ -977,8 +977,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1313, 1319,
1339, 1345,
0 0
], ],
"command": { "command": {
@ -992,7 +992,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1010,7 +1010,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1022,7 +1022,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1035,7 +1035,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1049,7 +1049,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1063,7 +1063,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1077,7 +1077,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1091,7 +1091,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1105,7 +1105,7 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1280, 1280,
1354, 1346,
0 0
], ],
"command": { "command": {
@ -1118,8 +1118,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1134,8 +1134,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1148,8 +1148,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1159,8 +1159,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1171,8 +1171,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1184,8 +1184,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1198,8 +1198,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1212,8 +1212,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1226,8 +1226,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1240,8 +1240,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1254,8 +1254,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1368, 1360,
1399, 1391,
0 0
], ],
"command": { "command": {
@ -1268,8 +1268,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1412, 1404,
1432, 1424,
0 0
], ],
"command": { "command": {
@ -1297,8 +1297,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1446, 1438,
1484, 1476,
0 0
], ],
"command": { "command": {
@ -1317,8 +1317,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1446, 1438,
1484, 1476,
0 0
], ],
"command": { "command": {
@ -1328,8 +1328,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1446, 1438,
1484, 1476,
0 0
], ],
"command": { "command": {
@ -1345,8 +1345,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1446, 1438,
1484, 1476,
0 0
], ],
"command": { "command": {
@ -1356,8 +1356,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1490, 1482,
1514, 1506,
0 0
], ],
"command": { "command": {
@ -1377,8 +1377,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1520, 1512,
1545, 1537,
0 0
], ],
"command": { "command": {
@ -1398,8 +1398,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1559, 1551,
1598, 1590,
0 0
], ],
"command": { "command": {
@ -1418,8 +1418,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1559, 1551,
1598, 1590,
0 0
], ],
"command": { "command": {
@ -1429,8 +1429,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1559, 1551,
1598, 1590,
0 0
], ],
"command": { "command": {
@ -1446,8 +1446,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1559, 1551,
1598, 1590,
0 0
], ],
"command": { "command": {
@ -1457,8 +1457,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1604, 1596,
1628, 1620,
0 0
], ],
"command": { "command": {
@ -1478,8 +1478,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1634, 1626,
1659, 1651,
0 0
], ],
"command": { "command": {
@ -1499,8 +1499,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1665, 1657,
1721, 1713,
0 0
], ],
"command": { "command": {
@ -1520,8 +1520,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1727, 1719,
1734, 1726,
0 0
], ],
"command": { "command": {
@ -1532,8 +1532,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1748, 1740,
1787, 1779,
0 0
], ],
"command": { "command": {
@ -1552,8 +1552,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1748, 1740,
1787, 1779,
0 0
], ],
"command": { "command": {
@ -1563,8 +1563,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1748, 1740,
1787, 1779,
0 0
], ],
"command": { "command": {
@ -1580,8 +1580,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1748, 1740,
1787, 1779,
0 0
], ],
"command": { "command": {
@ -1591,8 +1591,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1793, 1785,
1816, 1808,
0 0
], ],
"command": { "command": {
@ -1612,8 +1612,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1822, 1814,
1847, 1839,
0 0
], ],
"command": { "command": {
@ -1633,8 +1633,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1853, 1845,
1909, 1901,
0 0
], ],
"command": { "command": {
@ -1654,8 +1654,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1915, 1907,
1922, 1914,
0 0
], ],
"command": { "command": {
@ -1666,8 +1666,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1686,8 +1686,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1697,8 +1697,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1714,8 +1714,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1725,8 +1725,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1754,8 +1754,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1928,
1992, 1984,
0 0
], ],
"command": { "command": {
@ -1766,8 +1766,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2006, 1998,
2046, 2038,
0 0
], ],
"command": { "command": {
@ -1786,8 +1786,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2006, 1998,
2046, 2038,
0 0
], ],
"command": { "command": {
@ -1797,8 +1797,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2006, 1998,
2046, 2038,
0 0
], ],
"command": { "command": {
@ -1814,8 +1814,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2006, 1998,
2046, 2038,
0 0
], ],
"command": { "command": {
@ -1825,8 +1825,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2052, 2044,
2099, 2091,
0 0
], ],
"command": { "command": {
@ -1846,8 +1846,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2105, 2097,
2182, 2174,
0 0
], ],
"command": { "command": {
@ -1867,8 +1867,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2188, 2180,
2285, 2277,
0 0
], ],
"command": { "command": {
@ -1888,8 +1888,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2291, 2283,
2347, 2339,
0 0
], ],
"command": { "command": {
@ -1909,8 +1909,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2353, 2345,
2360, 2352,
0 0
], ],
"command": { "command": {
@ -1921,8 +1921,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -1941,8 +1941,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -1955,8 +1955,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -1966,8 +1966,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -1978,8 +1978,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -1991,8 +1991,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2005,8 +2005,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2019,8 +2019,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2033,8 +2033,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2047,8 +2047,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2061,8 +2061,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2075,8 +2075,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2089,8 +2089,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2374, 2366,
2407, 2399,
0 0
], ],
"command": { "command": {
@ -2103,8 +2103,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2121,8 +2121,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2133,8 +2133,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2146,8 +2146,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2160,8 +2160,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2174,8 +2174,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2188,8 +2188,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2202,8 +2202,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {
@ -2216,8 +2216,8 @@ description: Artifact commands crazy_multi_profile.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2421, 2413,
2470, 2458,
0 0
], ],
"command": { "command": {

View File

@ -44,38 +44,38 @@ flowchart LR
44[Solid2d] 44[Solid2d]
end end
subgraph path59 [Path] subgraph path59 [Path]
59["Path<br>[1446, 1484, 0]"] 59["Path<br>[1438, 1476, 0]"]
60["Segment<br>[1490, 1514, 0]"] 60["Segment<br>[1482, 1506, 0]"]
61["Segment<br>[1520, 1545, 0]"] 61["Segment<br>[1512, 1537, 0]"]
end end
subgraph path62 [Path] subgraph path62 [Path]
62["Path<br>[1559, 1598, 0]"] 62["Path<br>[1551, 1590, 0]"]
63["Segment<br>[1604, 1628, 0]"] 63["Segment<br>[1596, 1620, 0]"]
64["Segment<br>[1634, 1659, 0]"] 64["Segment<br>[1626, 1651, 0]"]
65["Segment<br>[1665, 1721, 0]"] 65["Segment<br>[1657, 1713, 0]"]
66["Segment<br>[1727, 1734, 0]"] 66["Segment<br>[1719, 1726, 0]"]
67[Solid2d] 67[Solid2d]
end end
subgraph path68 [Path] subgraph path68 [Path]
68["Path<br>[1748, 1787, 0]"] 68["Path<br>[1740, 1779, 0]"]
69["Segment<br>[1793, 1816, 0]"] 69["Segment<br>[1785, 1808, 0]"]
70["Segment<br>[1822, 1847, 0]"] 70["Segment<br>[1814, 1839, 0]"]
71["Segment<br>[1853, 1909, 0]"] 71["Segment<br>[1845, 1901, 0]"]
72["Segment<br>[1915, 1922, 0]"] 72["Segment<br>[1907, 1914, 0]"]
73[Solid2d] 73[Solid2d]
end end
subgraph path74 [Path] subgraph path74 [Path]
74["Path<br>[1936, 1992, 0]"] 74["Path<br>[1928, 1984, 0]"]
75["Segment<br>[1936, 1992, 0]"] 75["Segment<br>[1928, 1984, 0]"]
76[Solid2d] 76[Solid2d]
end end
subgraph path77 [Path] subgraph path77 [Path]
77["Path<br>[2006, 2046, 0]"] 77["Path<br>[1998, 2038, 0]"]
78["Segment<br>[2052, 2099, 0]"] 78["Segment<br>[2044, 2091, 0]"]
79["Segment<br>[2105, 2182, 0]"] 79["Segment<br>[2097, 2174, 0]"]
80["Segment<br>[2188, 2285, 0]"] 80["Segment<br>[2180, 2277, 0]"]
81["Segment<br>[2291, 2347, 0]"] 81["Segment<br>[2283, 2339, 0]"]
82["Segment<br>[2353, 2360, 0]"] 82["Segment<br>[2345, 2352, 0]"]
83[Solid2d] 83[Solid2d]
end end
1["Plane<br>[12, 31, 0]"] 1["Plane<br>[12, 31, 0]"]
@ -91,8 +91,8 @@ flowchart LR
17["SweepEdge Adjacent"] 17["SweepEdge Adjacent"]
18["SweepEdge Opposite"] 18["SweepEdge Opposite"]
19["SweepEdge Adjacent"] 19["SweepEdge Adjacent"]
45["Sweep RevolveAboutEdge<br>[1280, 1354, 0]"] 45["Sweep RevolveAboutEdge<br>[1280, 1346, 0]"]
46["Sweep Extrusion<br>[1368, 1399, 0]"] 46["Sweep Extrusion<br>[1360, 1391, 0]"]
47[Wall] 47[Wall]
48[Wall] 48[Wall]
49[Wall] 49[Wall]
@ -104,8 +104,8 @@ flowchart LR
55["SweepEdge Adjacent"] 55["SweepEdge Adjacent"]
56["SweepEdge Opposite"] 56["SweepEdge Opposite"]
57["SweepEdge Adjacent"] 57["SweepEdge Adjacent"]
58["Plane<br>[1412, 1432, 0]"] 58["Plane<br>[1404, 1424, 0]"]
84["Sweep Extrusion<br>[2374, 2407, 0]"] 84["Sweep Extrusion<br>[2366, 2399, 0]"]
85[Wall] 85[Wall]
86[Wall] 86[Wall]
87[Wall] 87[Wall]
@ -120,7 +120,7 @@ flowchart LR
96["SweepEdge Adjacent"] 96["SweepEdge Adjacent"]
97["SweepEdge Opposite"] 97["SweepEdge Opposite"]
98["SweepEdge Adjacent"] 98["SweepEdge Adjacent"]
99["Sweep RevolveAboutEdge<br>[2421, 2470, 0]"] 99["Sweep RevolveAboutEdge<br>[2413, 2458, 0]"]
100[Wall] 100[Wall]
101[Wall] 101[Wall]
102[Wall] 102[Wall]

File diff suppressed because it is too large Load Diff

View File

@ -32,10 +32,7 @@ profile006 = startProfileAt([9.65, 3.82], sketch002)
|> line(end = [2.13, -5.57]) |> line(end = [2.13, -5.57])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
revolve001 = revolve({ revolve001 = revolve(profile004, angle = 45, axis = getNextAdjacentEdge(seg01))
angle = 45,
axis = getNextAdjacentEdge(seg01)
}, profile004)
extrude002 = extrude(profile006, length = 4) extrude002 = extrude(profile006, length = 4)
sketch003 = startSketchOn('-XZ') sketch003 = startSketchOn('-XZ')
profile007 = startProfileAt([4.8, 7.55], sketch003) profile007 = startProfileAt([4.8, 7.55], sketch003)
@ -65,4 +62,4 @@ profile011 = startProfileAt([5.07, -6.39], sketch003)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close() |> close()
extrude003 = extrude(profile011, length = 2.5) extrude003 = extrude(profile011, length = 2.5)
revolve002 = revolve({ angle = 45, axis = seg02 }, profile008) revolve002 = revolve(profile008, angle = 45, axis = seg02)

View File

@ -109,45 +109,34 @@ description: Operations executed crazy_multi_profile.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "angle": {
"value": { "value": {
"type": "Object", "type": "Number",
"value": { "value": 45.0,
"angle": { "ty": {
"type": "Number", "type": "Default",
"value": 45.0, "len": {
"ty": { "type": "Mm"
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}, },
"axis": { "angle": {
"type": "Uuid", "type": "Degrees"
"value": "[uuid]"
} }
} }
}, },
"sourceRange": [ "sourceRange": [
1288, 1308,
1341, 1310,
0 0
] ]
}, },
"sketches": { "axis": {
"value": { "value": {
"type": "Sketch", "type": "Uuid",
"value": { "value": "[uuid]"
"artifactId": "[uuid]"
}
}, },
"sourceRange": [ "sourceRange": [
1343, 1319,
1353, 1345,
0 0
] ]
} }
@ -155,11 +144,23 @@ description: Operations executed crazy_multi_profile.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
1280, 1280,
1354, 1346,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1288,
1298,
0
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -178,16 +179,16 @@ description: Operations executed crazy_multi_profile.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
1397, 1389,
1398, 1390,
0 0
] ]
} }
}, },
"name": "extrude", "name": "extrude",
"sourceRange": [ "sourceRange": [
1368, 1360,
1399, 1391,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -199,8 +200,8 @@ description: Operations executed crazy_multi_profile.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
1376, 1368,
1386, 1378,
0 0
] ]
} }
@ -213,16 +214,16 @@ description: Operations executed crazy_multi_profile.kcl
"value": "-XZ" "value": "-XZ"
}, },
"sourceRange": [ "sourceRange": [
1426, 1418,
1431, 1423,
0 0
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
1412, 1404,
1432, 1424,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -245,16 +246,16 @@ description: Operations executed crazy_multi_profile.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2403, 2395,
2406, 2398,
0 0
] ]
} }
}, },
"name": "extrude", "name": "extrude",
"sourceRange": [ "sourceRange": [
2374, 2366,
2407, 2399,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -266,65 +267,66 @@ description: Operations executed crazy_multi_profile.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2382, 2374,
2392, 2384,
0 0
] ]
} }
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "angle": {
"value": { "value": {
"type": "Object", "type": "Number",
"value": { "value": 45.0,
"angle": { "ty": {
"type": "Number", "type": "Default",
"value": 45.0, "len": {
"ty": { "type": "Mm"
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}, },
"axis": { "angle": {
"type": "TagIdentifier", "type": "Degrees"
"value": "seg02",
"artifact_id": "[uuid]"
} }
} }
}, },
"sourceRange": [ "sourceRange": [
2429, 2441,
2457, 2443,
0 0
] ]
}, },
"sketches": { "axis": {
"value": { "value": {
"type": "Sketch", "type": "TagIdentifier",
"value": { "value": "seg02",
"artifactId": "[uuid]" "artifact_id": "[uuid]"
}
}, },
"sourceRange": [ "sourceRange": [
2459, 2452,
2469, 2457,
0 0
] ]
} }
}, },
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
2421, 2413,
2470, 2458,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2421,
2431,
0
]
}
} }
] ]

View File

@ -675,13 +675,13 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2052, 2044,
2099, 2091,
0 0
], ],
"tag": { "tag": {
"end": 2098, "end": 2090,
"start": 2077, "start": 2069,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -691,8 +691,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2105, 2097,
2182, 2174,
0 0
], ],
"tag": null, "tag": null,
@ -702,8 +702,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2188, 2180,
2285, 2277,
0 0
], ],
"tag": null, "tag": null,
@ -713,8 +713,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2291, 2283,
2347, 2339,
0 0
], ],
"tag": null, "tag": null,
@ -729,8 +729,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2052, 2044,
2099, 2091,
0 0
] ]
}, },
@ -739,8 +739,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
-6.39 -6.39
], ],
"tag": { "tag": {
"end": 2098, "end": 2090,
"start": 2077, "start": 2069,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -757,8 +757,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2105, 2097,
2182, 2174,
0 0
] ]
}, },
@ -780,8 +780,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2188, 2180,
2285, 2277,
0 0
] ]
}, },
@ -803,8 +803,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2291, 2283,
2347, 2339,
0 0
] ]
}, },
@ -826,8 +826,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2353, 2345,
2360, 2352,
0 0
] ]
}, },
@ -891,8 +891,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2006, 1998,
2046, 2038,
0 0
] ]
} }
@ -2939,8 +2939,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1490, 1482,
1514, 1506,
0 0
] ]
}, },
@ -2962,8 +2962,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1520, 1512,
1545, 1537,
0 0
] ]
}, },
@ -3027,8 +3027,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1446, 1438,
1484, 1476,
0 0
] ]
} }
@ -3050,8 +3050,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1604, 1596,
1628, 1620,
0 0
] ]
}, },
@ -3073,8 +3073,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1634, 1626,
1659, 1651,
0 0
] ]
}, },
@ -3096,8 +3096,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1665, 1657,
1721, 1713,
0 0
] ]
}, },
@ -3119,8 +3119,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1727, 1719,
1734, 1726,
0 0
] ]
}, },
@ -3184,8 +3184,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1559, 1551,
1598, 1590,
0 0
] ]
} }
@ -3207,8 +3207,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1793, 1785,
1816, 1808,
0 0
] ]
}, },
@ -3230,8 +3230,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1822, 1814,
1847, 1839,
0 0
] ]
}, },
@ -3253,8 +3253,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1853, 1845,
1909, 1901,
0 0
] ]
}, },
@ -3276,8 +3276,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1915, 1907,
1922, 1914,
0 0
] ]
}, },
@ -3341,8 +3341,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1748, 1740,
1787, 1779,
0 0
] ]
} }
@ -3364,8 +3364,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1936, 1928,
1992, 1984,
0 0
] ]
}, },
@ -3435,8 +3435,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1936, 1928,
1992, 1984,
0 0
] ]
} }
@ -3458,8 +3458,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2052, 2044,
2099, 2091,
0 0
] ]
}, },
@ -3468,8 +3468,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
-6.39 -6.39
], ],
"tag": { "tag": {
"end": 2098, "end": 2090,
"start": 2077, "start": 2069,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -3486,8 +3486,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2105, 2097,
2182, 2174,
0 0
] ]
}, },
@ -3509,8 +3509,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2188, 2180,
2285, 2277,
0 0
] ]
}, },
@ -3532,8 +3532,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2291, 2283,
2347, 2339,
0 0
] ]
}, },
@ -3555,8 +3555,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2353, 2345,
2360, 2352,
0 0
] ]
}, },
@ -3620,8 +3620,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
2006, 1998,
2046, 2038,
0 0
] ]
} }
@ -4054,8 +4054,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1604, 1596,
1628, 1620,
0 0
], ],
"tag": null, "tag": null,
@ -4065,8 +4065,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1634, 1626,
1659, 1651,
0 0
], ],
"tag": null, "tag": null,
@ -4076,8 +4076,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"faceId": "[uuid]", "faceId": "[uuid]",
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1665, 1657,
1721, 1713,
0 0
], ],
"tag": null, "tag": null,
@ -4092,8 +4092,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1604, 1596,
1628, 1620,
0 0
] ]
}, },
@ -4115,8 +4115,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1634, 1626,
1659, 1651,
0 0
] ]
}, },
@ -4138,8 +4138,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1665, 1657,
1721, 1713,
0 0
] ]
}, },
@ -4161,8 +4161,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1727, 1719,
1734, 1726,
0 0
] ]
}, },
@ -4226,8 +4226,8 @@ description: Variables in memory after executing crazy_multi_profile.kcl
"__geoMeta": { "__geoMeta": {
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [ "sourceRange": [
1559, 1551,
1598, 1590,
0 0
] ]
} }

View File

@ -11,7 +11,7 @@ export part001 = startSketchOn('XY')
|> line(end = [0, -5.5]) |> line(end = [0, -5.5])
|> line(end = [-2, 0]) |> line(end = [-2, 0])
|> close() |> close()
|> revolve({ axis = 'y' }, %) // default angle is 360 |> revolve(axis = 'y') // default angle is 360
export fn two() { export fn two() {
return 5 return 5

View File

@ -28,32 +28,14 @@ description: Operations executed import_function_not_sketch.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "y"
"axis": {
"type": "String",
"value": "y"
}
}
}, },
"sourceRange": [ "sourceRange": [
313, 320,
327, 323,
3
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
329,
330,
3 3
] ]
} }
@ -61,10 +43,22 @@ description: Operations executed import_function_not_sketch.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
305, 305,
331, 324,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
305,
324,
3
]
}
} }
] ]

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

@ -597,7 +597,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -625,7 +625,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -637,7 +637,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -650,7 +650,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -664,7 +664,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -678,7 +678,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -692,7 +692,7 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1332, 1332,
1368, 1364,
0 0
], ],
"command": { "command": {
@ -705,8 +705,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1374, 1370,
1534, 1530,
0 0
], ],
"command": { "command": {
@ -730,8 +730,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1602, 1598,
1621, 1617,
0 0
], ],
"command": { "command": {
@ -759,8 +759,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1627, 1623,
1760, 1756,
0 0
], ],
"command": { "command": {
@ -779,8 +779,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1627, 1623,
1760, 1756,
0 0
], ],
"command": { "command": {
@ -790,8 +790,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1627, 1623,
1760, 1756,
0 0
], ],
"command": { "command": {
@ -807,8 +807,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1627, 1623,
1760, 1756,
0 0
], ],
"command": { "command": {
@ -818,8 +818,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1766, 1762,
1859, 1855,
0 0
], ],
"command": { "command": {
@ -847,8 +847,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1865, 1861,
1896, 1892,
0 0
], ],
"command": { "command": {
@ -868,8 +868,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1902, 1898,
1930, 1926,
0 0
], ],
"command": { "command": {
@ -889,8 +889,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1936, 1932,
1943, 1939,
0 0
], ],
"command": { "command": {
@ -901,8 +901,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -929,8 +929,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -941,8 +941,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -954,8 +954,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -968,8 +968,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -982,8 +982,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -996,8 +996,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -1010,8 +1010,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -1024,8 +1024,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -1038,8 +1038,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -1052,8 +1052,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
1985, 1981,
2021, 2013,
0 0
], ],
"command": { "command": {
@ -1066,8 +1066,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2027, 2019,
2187, 2179,
0 0
], ],
"command": { "command": {
@ -1091,8 +1091,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2259, 2251,
2278, 2270,
0 0
], ],
"command": { "command": {
@ -1120,8 +1120,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1140,8 +1140,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1151,8 +1151,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1168,8 +1168,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1179,8 +1179,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1208,8 +1208,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2284, 2276,
2425, 2417,
0 0
], ],
"command": { "command": {
@ -1220,8 +1220,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2468, 2460,
2525, 2513,
0 0
], ],
"command": { "command": {
@ -1248,8 +1248,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2468, 2460,
2525, 2513,
0 0
], ],
"command": { "command": {
@ -1260,8 +1260,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2468, 2460,
2525, 2513,
0 0
], ],
"command": { "command": {
@ -1273,8 +1273,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2468, 2460,
2525, 2513,
0 0
], ],
"command": { "command": {
@ -1287,8 +1287,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2468, 2460,
2525, 2513,
0 0
], ],
"command": { "command": {
@ -1301,8 +1301,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2531, 2519,
2691, 2679,
0 0
], ],
"command": { "command": {
@ -1326,8 +1326,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2770, 2758,
2819, 2807,
0 0
], ],
"command": { "command": {
@ -1355,8 +1355,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2770, 2758,
2819, 2807,
0 0
], ],
"command": { "command": {
@ -1373,8 +1373,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1393,8 +1393,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1404,8 +1404,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1421,8 +1421,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1432,8 +1432,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1461,8 +1461,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1473,8 +1473,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1493,8 +1493,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1504,8 +1504,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1521,8 +1521,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1532,8 +1532,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1561,8 +1561,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {
@ -1573,8 +1573,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2906, 2894,
3010, 2998,
0 0
], ],
"command": { "command": {
@ -1586,8 +1586,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2906, 2894,
3010, 2998,
0 0
], ],
"command": { "command": {
@ -1599,8 +1599,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1619,8 +1619,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1633,8 +1633,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1644,8 +1644,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1656,8 +1656,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1669,8 +1669,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1683,8 +1683,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1697,8 +1697,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1711,8 +1711,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
3026, 3014,
3079, 3067,
0 0
], ],
"command": { "command": {
@ -1751,8 +1751,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2826, 2814,
2900, 2888,
0 0
], ],
"command": { "command": {
@ -1764,8 +1764,8 @@ description: Artifact commands ball-bearing.kcl
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [ "range": [
2911, 2899,
3006, 2994,
0 0
], ],
"command": { "command": {

View File

@ -17,26 +17,26 @@ flowchart LR
18[Solid2d] 18[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[1627, 1760, 0]"] 24["Path<br>[1623, 1756, 0]"]
25["Segment<br>[1766, 1859, 0]"] 25["Segment<br>[1762, 1855, 0]"]
26["Segment<br>[1865, 1896, 0]"] 26["Segment<br>[1861, 1892, 0]"]
27["Segment<br>[1902, 1930, 0]"] 27["Segment<br>[1898, 1926, 0]"]
28["Segment<br>[1936, 1943, 0]"] 28["Segment<br>[1932, 1939, 0]"]
29[Solid2d] 29[Solid2d]
end end
subgraph path40 [Path] subgraph path40 [Path]
40["Path<br>[2284, 2425, 0]"] 40["Path<br>[2276, 2417, 0]"]
41["Segment<br>[2284, 2425, 0]"] 41["Segment<br>[2276, 2417, 0]"]
42[Solid2d] 42[Solid2d]
end end
subgraph path50 [Path] subgraph path50 [Path]
50["Path<br>[2826, 2900, 0]"] 50["Path<br>[2814, 2888, 0]"]
51["Segment<br>[2826, 2900, 0]"] 51["Segment<br>[2814, 2888, 0]"]
52[Solid2d] 52[Solid2d]
end end
subgraph path53 [Path] subgraph path53 [Path]
53["Path<br>[2911, 3006, 0]"] 53["Path<br>[2899, 2994, 0]"]
54["Segment<br>[2911, 3006, 0]"] 54["Segment<br>[2899, 2994, 0]"]
55[Solid2d] 55[Solid2d]
end end
1["Plane<br>[677, 726, 0]"] 1["Plane<br>[677, 726, 0]"]
@ -47,12 +47,12 @@ flowchart LR
12["SweepEdge Opposite"] 12["SweepEdge Opposite"]
13["SweepEdge Adjacent"] 13["SweepEdge Adjacent"]
14["Plane<br>[1058, 1077, 0]"] 14["Plane<br>[1058, 1077, 0]"]
19["Sweep Revolve<br>[1332, 1368, 0]"] 19["Sweep Revolve<br>[1332, 1364, 0]"]
20[Wall] 20[Wall]
21[Wall] 21[Wall]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
23["Plane<br>[1602, 1621, 0]"] 23["Plane<br>[1598, 1617, 0]"]
30["Sweep Revolve<br>[1985, 2021, 0]"] 30["Sweep Revolve<br>[1981, 2013, 0]"]
31[Wall] 31[Wall]
32[Wall] 32[Wall]
33[Wall] 33[Wall]
@ -61,22 +61,22 @@ flowchart LR
36["SweepEdge Adjacent"] 36["SweepEdge Adjacent"]
37["SweepEdge Adjacent"] 37["SweepEdge Adjacent"]
38["SweepEdge Adjacent"] 38["SweepEdge Adjacent"]
39["Plane<br>[2259, 2278, 0]"] 39["Plane<br>[2251, 2270, 0]"]
43["Sweep Revolve<br>[2468, 2525, 0]"] 43["Sweep Revolve<br>[2460, 2513, 0]"]
44[Wall] 44[Wall]
45["Cap Start"] 45["Cap Start"]
46["Cap End"] 46["Cap End"]
47["SweepEdge Opposite"] 47["SweepEdge Opposite"]
48["SweepEdge Adjacent"] 48["SweepEdge Adjacent"]
49["Plane<br>[2770, 2819, 0]"] 49["Plane<br>[2758, 2807, 0]"]
56["Sweep Extrusion<br>[3026, 3079, 0]"] 56["Sweep Extrusion<br>[3014, 3067, 0]"]
57[Wall] 57[Wall]
58["Cap Start"] 58["Cap Start"]
59["Cap End"] 59["Cap End"]
60["SweepEdge Opposite"] 60["SweepEdge Opposite"]
61["SweepEdge Adjacent"] 61["SweepEdge Adjacent"]
62["StartSketchOnPlane<br>[663, 727, 0]"] 62["StartSketchOnPlane<br>[663, 727, 0]"]
63["StartSketchOnPlane<br>[2756, 2820, 0]"] 63["StartSketchOnPlane<br>[2744, 2808, 0]"]
1 --- 2 1 --- 2
1 --- 5 1 --- 5
2 --- 3 2 --- 3

File diff suppressed because it is too large Load Diff

View File

@ -169,32 +169,14 @@ description: Operations executed ball-bearing.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "X"
"axis": {
"type": "String",
"value": "X"
}
}
}, },
"sourceRange": [ "sourceRange": [
1340, 1360,
1354, 1363,
0
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1356,
1367,
0 0
] ]
} }
@ -202,11 +184,23 @@ description: Operations executed ball-bearing.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
1332, 1332,
1368, 1364,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1340,
1351,
0
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -225,8 +219,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
1413, 1409,
1416, 1412,
0 0
] ]
}, },
@ -276,8 +270,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
1432, 1428,
1441, 1437,
0 0
] ]
}, },
@ -327,8 +321,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
1459, 1455,
1468, 1464,
0 0
] ]
}, },
@ -347,8 +341,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
1489, 1485,
1495, 1491,
0 0
] ]
}, },
@ -358,16 +352,16 @@ description: Operations executed ball-bearing.kcl
"value": true "value": true
}, },
"sourceRange": [ "sourceRange": [
1519,
1523, 1523,
1527,
0 0
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
1374, 1370,
1534, 1530,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -379,8 +373,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
1374, 1370,
1534, 1530,
0 0
] ]
} }
@ -393,16 +387,16 @@ description: Operations executed ball-bearing.kcl
"value": "XY" "value": "XY"
}, },
"sourceRange": [ "sourceRange": [
1612,
1616, 1616,
1620,
0 0
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
1602, 1598,
1621, 1617,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -419,8 +413,8 @@ description: Operations executed ball-bearing.kcl
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
"sourceRange": [ "sourceRange": [
1731, 1727,
1749, 1745,
0 0
] ]
}, },
@ -429,44 +423,38 @@ description: Operations executed ball-bearing.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "X"
"axis": {
"type": "String",
"value": "X"
}
}
},
"sourceRange": [
1993,
2007,
0
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
}, },
"sourceRange": [ "sourceRange": [
2009, 2009,
2020, 2012,
0 0
] ]
} }
}, },
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
1985, 1981,
2021, 2013,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1989,
2000,
0
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -485,8 +473,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2066, 2058,
2069, 2061,
0 0
] ]
}, },
@ -536,8 +524,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
2085, 2077,
2094, 2086,
0 0
] ]
}, },
@ -587,8 +575,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
2112, 2104,
2121, 2113,
0 0
] ]
}, },
@ -607,8 +595,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2142, 2134,
2148, 2140,
0 0
] ]
}, },
@ -618,16 +606,16 @@ description: Operations executed ball-bearing.kcl
"value": true "value": true
}, },
"sourceRange": [ "sourceRange": [
2176, 2168,
2180, 2172,
0 0
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
2027, 2019,
2187, 2179,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -639,8 +627,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2027, 2019,
2187, 2179,
0 0
] ]
} }
@ -653,16 +641,16 @@ description: Operations executed ball-bearing.kcl
"value": "XZ" "value": "XZ"
}, },
"sourceRange": [ "sourceRange": [
2273, 2265,
2277, 2269,
0 0
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
2259, 2251,
2278, 2270,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -670,51 +658,52 @@ description: Operations executed ball-bearing.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "angle": {
"value": { "value": {
"type": "Object", "type": "Number",
"value": { "value": 36.0,
"angle": { "ty": {
"type": "Number", "type": "Unknown"
"value": 36.0,
"ty": {
"type": "Unknown"
}
},
"axis": {
"type": "String",
"value": "Y"
}
} }
}, },
"sourceRange": [ "sourceRange": [
2476, 2500,
2512, 2512,
0 0
] ]
}, },
"sketches": { "axis": {
"value": { "value": {
"type": "Sketch", "type": "String",
"value": { "value": "Y"
"artifactId": "[uuid]"
}
}, },
"sourceRange": [ "sourceRange": [
2514, 2487,
2524, 2490,
0 0
] ]
} }
}, },
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
2468, 2460,
2525, 2513,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2468,
2478,
0
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -733,8 +722,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2570, 2558,
2573, 2561,
0 0
] ]
}, },
@ -784,8 +773,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
2589, 2577,
2598, 2586,
0 0
] ]
}, },
@ -835,8 +824,8 @@ description: Operations executed ball-bearing.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
2616, 2604,
2625, 2613,
0 0
] ]
}, },
@ -855,8 +844,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2646, 2634,
2652, 2640,
0 0
] ]
}, },
@ -866,16 +855,16 @@ description: Operations executed ball-bearing.kcl
"value": true "value": true
}, },
"sourceRange": [ "sourceRange": [
2680, 2668,
2684, 2672,
0 0
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
2531, 2519,
2691, 2679,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -887,8 +876,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2531, 2519,
2691, 2679,
0 0
] ]
} }
@ -904,16 +893,16 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2797, 2785,
2818, 2806,
0 0
] ]
} }
}, },
"name": "offsetPlane", "name": "offsetPlane",
"sourceRange": [ "sourceRange": [
2770, 2758,
2819, 2807,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -923,8 +912,8 @@ description: Operations executed ball-bearing.kcl
"value": "XY" "value": "XY"
}, },
"sourceRange": [ "sourceRange": [
2782, 2770,
2786, 2774,
0 0
] ]
} }
@ -937,16 +926,16 @@ description: Operations executed ball-bearing.kcl
"artifact_id": "[uuid]" "artifact_id": "[uuid]"
}, },
"sourceRange": [ "sourceRange": [
2770, 2758,
2819, 2807,
0 0
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
2756, 2744,
2820, 2808,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -962,8 +951,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
2911, 2899,
3006, 2994,
0 0
] ]
}, },
@ -975,16 +964,16 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
3008, 2996,
3009, 2997,
0 0
] ]
} }
}, },
"name": "hole", "name": "hole",
"sourceRange": [ "sourceRange": [
2906, 2894,
3010, 2998,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1007,16 +996,16 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
3062, 3050,
3078, 3066,
0 0
] ]
} }
}, },
"name": "extrude", "name": "extrude",
"sourceRange": [ "sourceRange": [
3026, 3014,
3079, 3067,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1028,8 +1017,8 @@ description: Operations executed ball-bearing.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
3034, 3022,
3051, 3039,
0 0
] ]
} }

File diff suppressed because it is too large Load Diff

View File

@ -93,58 +93,58 @@ flowchart LR
185[Solid2d] 185[Solid2d]
end end
subgraph path195 [Path] subgraph path195 [Path]
195["Path<br>[2246, 2292, 3]"] 195["Path<br>[2239, 2285, 3]"]
196["Segment<br>[2298, 2350, 3]"] 196["Segment<br>[2291, 2343, 3]"]
197["Segment<br>[2356, 2463, 3]"] 197["Segment<br>[2349, 2456, 3]"]
198["Segment<br>[2469, 2506, 3]"] 198["Segment<br>[2462, 2499, 3]"]
199["Segment<br>[2512, 2568, 3]"] 199["Segment<br>[2505, 2561, 3]"]
200["Segment<br>[2574, 2581, 3]"] 200["Segment<br>[2567, 2574, 3]"]
201[Solid2d] 201[Solid2d]
end end
subgraph path212 [Path] subgraph path212 [Path]
212["Path<br>[3099, 3146, 3]"] 212["Path<br>[3085, 3132, 3]"]
213["Segment<br>[3154, 3494, 3]"] 213["Segment<br>[3140, 3480, 3]"]
214["Segment<br>[3502, 3534, 3]"] 214["Segment<br>[3488, 3520, 3]"]
215["Segment<br>[3542, 3886, 3]"] 215["Segment<br>[3528, 3872, 3]"]
216["Segment<br>[3894, 3950, 3]"] 216["Segment<br>[3880, 3936, 3]"]
217["Segment<br>[3958, 3965, 3]"] 217["Segment<br>[3944, 3951, 3]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path235 [Path] subgraph path235 [Path]
235["Path<br>[3099, 3146, 3]"] 235["Path<br>[3085, 3132, 3]"]
236["Segment<br>[3154, 3494, 3]"] 236["Segment<br>[3140, 3480, 3]"]
237["Segment<br>[3502, 3534, 3]"] 237["Segment<br>[3488, 3520, 3]"]
238["Segment<br>[3542, 3886, 3]"] 238["Segment<br>[3528, 3872, 3]"]
239["Segment<br>[3894, 3950, 3]"] 239["Segment<br>[3880, 3936, 3]"]
240["Segment<br>[3958, 3965, 3]"] 240["Segment<br>[3944, 3951, 3]"]
241[Solid2d] 241[Solid2d]
end end
subgraph path258 [Path] subgraph path258 [Path]
258["Path<br>[4494, 4589, 3]"] 258["Path<br>[4480, 4575, 3]"]
259["Segment<br>[4595, 4628, 3]"] 259["Segment<br>[4581, 4614, 3]"]
260["Segment<br>[4634, 4685, 3]"] 260["Segment<br>[4620, 4671, 3]"]
261["Segment<br>[4691, 4724, 3]"] 261["Segment<br>[4677, 4710, 3]"]
262["Segment<br>[4730, 4780, 3]"] 262["Segment<br>[4716, 4766, 3]"]
263["Segment<br>[4786, 4827, 3]"] 263["Segment<br>[4772, 4813, 3]"]
264["Segment<br>[4833, 4882, 3]"] 264["Segment<br>[4819, 4868, 3]"]
265["Segment<br>[4888, 4921, 3]"] 265["Segment<br>[4874, 4907, 3]"]
266["Segment<br>[4927, 4961, 3]"] 266["Segment<br>[4913, 4947, 3]"]
267["Segment<br>[4967, 5001, 3]"] 267["Segment<br>[4953, 4987, 3]"]
268["Segment<br>[5007, 5059, 3]"] 268["Segment<br>[4993, 5045, 3]"]
269["Segment<br>[5065, 5099, 3]"] 269["Segment<br>[5051, 5085, 3]"]
270["Segment<br>[5105, 5181, 3]"] 270["Segment<br>[5091, 5167, 3]"]
271["Segment<br>[5187, 5220, 3]"] 271["Segment<br>[5173, 5206, 3]"]
272["Segment<br>[5226, 5302, 3]"] 272["Segment<br>[5212, 5288, 3]"]
273["Segment<br>[5308, 5342, 3]"] 273["Segment<br>[5294, 5328, 3]"]
274["Segment<br>[5348, 5422, 3]"] 274["Segment<br>[5334, 5408, 3]"]
275["Segment<br>[5428, 5462, 3]"] 275["Segment<br>[5414, 5448, 3]"]
276["Segment<br>[5468, 5519, 3]"] 276["Segment<br>[5454, 5505, 3]"]
277["Segment<br>[5525, 5587, 3]"] 277["Segment<br>[5511, 5573, 3]"]
278["Segment<br>[5593, 5644, 3]"] 278["Segment<br>[5579, 5630, 3]"]
279["Segment<br>[5650, 5684, 3]"] 279["Segment<br>[5636, 5670, 3]"]
280["Segment<br>[5690, 5723, 3]"] 280["Segment<br>[5676, 5709, 3]"]
281["Segment<br>[5729, 5762, 3]"] 281["Segment<br>[5715, 5748, 3]"]
282["Segment<br>[5768, 5775, 3]"] 282["Segment<br>[5754, 5761, 3]"]
283[Solid2d] 283[Solid2d]
end end
subgraph path334 [Path] subgraph path334 [Path]
@ -324,7 +324,7 @@ flowchart LR
176["Sweep Extrusion<br>[1572, 1606, 3]"] 176["Sweep Extrusion<br>[1572, 1606, 3]"]
177["Sweep Extrusion<br>[1572, 1606, 3]"] 177["Sweep Extrusion<br>[1572, 1606, 3]"]
178["Plane<br>[1760, 1779, 3]"] 178["Plane<br>[1760, 1779, 3]"]
186["Sweep Revolve<br>[2109, 2135, 3]"] 186["Sweep Revolve<br>[2109, 2128, 3]"]
187[Wall] 187[Wall]
188[Wall] 188[Wall]
189[Wall] 189[Wall]
@ -332,8 +332,8 @@ flowchart LR
191["SweepEdge Adjacent"] 191["SweepEdge Adjacent"]
192["SweepEdge Adjacent"] 192["SweepEdge Adjacent"]
193["SweepEdge Adjacent"] 193["SweepEdge Adjacent"]
194["Plane<br>[2221, 2240, 3]"] 194["Plane<br>[2214, 2233, 3]"]
202["Sweep Revolve<br>[2587, 2613, 3]"] 202["Sweep Revolve<br>[2580, 2599, 3]"]
203[Wall] 203[Wall]
204[Wall] 204[Wall]
205[Wall] 205[Wall]
@ -342,8 +342,8 @@ flowchart LR
208["SweepEdge Adjacent"] 208["SweepEdge Adjacent"]
209["SweepEdge Adjacent"] 209["SweepEdge Adjacent"]
210["SweepEdge Adjacent"] 210["SweepEdge Adjacent"]
211["Plane<br>[3068, 3091, 3]"] 211["Plane<br>[3054, 3077, 3]"]
219["Sweep Extrusion<br>[4013, 4059, 3]"] 219["Sweep Extrusion<br>[3999, 4045, 3]"]
220[Wall] 220[Wall]
221[Wall] 221[Wall]
222[Wall] 222[Wall]
@ -358,8 +358,8 @@ flowchart LR
231["SweepEdge Adjacent"] 231["SweepEdge Adjacent"]
232["SweepEdge Opposite"] 232["SweepEdge Opposite"]
233["SweepEdge Adjacent"] 233["SweepEdge Adjacent"]
234["Plane<br>[3068, 3091, 3]"] 234["Plane<br>[3054, 3077, 3]"]
242["Sweep Extrusion<br>[4013, 4059, 3]"] 242["Sweep Extrusion<br>[3999, 4045, 3]"]
243[Wall] 243[Wall]
244[Wall] 244[Wall]
245[Wall] 245[Wall]
@ -374,8 +374,8 @@ flowchart LR
254["SweepEdge Adjacent"] 254["SweepEdge Adjacent"]
255["SweepEdge Opposite"] 255["SweepEdge Opposite"]
256["SweepEdge Adjacent"] 256["SweepEdge Adjacent"]
257["Plane<br>[4469, 4488, 3]"] 257["Plane<br>[4455, 4474, 3]"]
284["Sweep Revolve<br>[5781, 5807, 3]"] 284["Sweep Revolve<br>[5767, 5786, 3]"]
285[Wall] 285[Wall]
286[Wall] 286[Wall]
287[Wall] 287[Wall]
@ -425,7 +425,7 @@ flowchart LR
331["SweepEdge Adjacent"] 331["SweepEdge Adjacent"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["Plane<br>[708, 734, 6]"] 333["Plane<br>[708, 734, 6]"]
345["Sweep Revolve<br>[1184, 1210, 6]"] 345["Sweep Revolve<br>[1184, 1203, 6]"]
346[Wall] 346[Wall]
347[Wall] 347[Wall]
348[Wall] 348[Wall]
@ -445,7 +445,7 @@ flowchart LR
362["SweepEdge Adjacent"] 362["SweepEdge Adjacent"]
363["SweepEdge Adjacent"] 363["SweepEdge Adjacent"]
364["Plane<br>[486, 505, 5]"] 364["Plane<br>[486, 505, 5]"]
384["Sweep Revolve<br>[2247, 2303, 5]"] 384["Sweep Revolve<br>[2247, 2299, 5]"]
385[Wall] 385[Wall]
386[Wall] 386[Wall]
387[Wall] 387[Wall]
@ -500,7 +500,7 @@ flowchart LR
436["SweepEdge Opposite"] 436["SweepEdge Opposite"]
437["SweepEdge Adjacent"] 437["SweepEdge Adjacent"]
438["Plane<br>[462, 481, 7]"] 438["Plane<br>[462, 481, 7]"]
455["Sweep Revolve<br>[1462, 1497, 7]"] 455["Sweep Revolve<br>[1462, 1493, 7]"]
456[Wall] 456[Wall]
457[Wall] 457[Wall]
458[Wall] 458[Wall]

View File

@ -25,7 +25,7 @@ description: Result of parsing car-wheel-assembly.kcl
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 199, "end": 198,
"path": { "path": {
"type": "Kcl", "type": "Kcl",
"filename": "car-rotor.kcl" "filename": "car-rotor.kcl"
@ -33,18 +33,18 @@ description: Result of parsing car-wheel-assembly.kcl
"selector": { "selector": {
"type": "None", "type": "None",
"alias": { "alias": {
"end": 199, "end": 198,
"name": "carRotor", "name": "carRotor",
"start": 191, "start": 190,
"type": "Identifier" "type": "Identifier"
} }
}, },
"start": 165, "start": 164,
"type": "ImportStatement", "type": "ImportStatement",
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 242, "end": 241,
"path": { "path": {
"type": "Kcl", "type": "Kcl",
"filename": "brake-caliper.kcl" "filename": "brake-caliper.kcl"
@ -52,18 +52,18 @@ description: Result of parsing car-wheel-assembly.kcl
"selector": { "selector": {
"type": "None", "type": "None",
"alias": { "alias": {
"end": 242, "end": 241,
"name": "brakeCaliper", "name": "brakeCaliper",
"start": 230, "start": 229,
"type": "Identifier" "type": "Identifier"
} }
}, },
"start": 200, "start": 199,
"type": "ImportStatement", "type": "ImportStatement",
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 273, "end": 272,
"path": { "path": {
"type": "Kcl", "type": "Kcl",
"filename": "lug-nut.kcl" "filename": "lug-nut.kcl"
@ -71,18 +71,18 @@ description: Result of parsing car-wheel-assembly.kcl
"selector": { "selector": {
"type": "None", "type": "None",
"alias": { "alias": {
"end": 273, "end": 272,
"name": "lugNut", "name": "lugNut",
"start": 267, "start": 266,
"type": "Identifier" "type": "Identifier"
} }
}, },
"start": 243, "start": 242,
"type": "ImportStatement", "type": "ImportStatement",
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 306, "end": 305,
"path": { "path": {
"type": "Kcl", "type": "Kcl",
"filename": "car-tire.kcl" "filename": "car-tire.kcl"
@ -90,18 +90,18 @@ description: Result of parsing car-wheel-assembly.kcl
"selector": { "selector": {
"type": "None", "type": "None",
"alias": { "alias": {
"end": 306, "end": 305,
"name": "carTire", "name": "carTire",
"start": 299, "start": 298,
"type": "Identifier" "type": "Identifier"
} }
}, },
"start": 274, "start": 273,
"type": "ImportStatement", "type": "ImportStatement",
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 341, "end": 340,
"path": { "path": {
"type": "Kcl", "type": "Kcl",
"filename": "globals.kcl" "filename": "globals.kcl"
@ -111,30 +111,30 @@ description: Result of parsing car-wheel-assembly.kcl
"items": [ "items": [
{ {
"alias": null, "alias": null,
"end": 322, "end": 321,
"name": { "name": {
"end": 322, "end": 321,
"name": "lugCount", "name": "lugCount",
"start": 314, "start": 313,
"type": "Identifier" "type": "Identifier"
}, },
"start": 314, "start": 313,
"type": "ImportItem" "type": "ImportItem"
} }
] ]
}, },
"start": 307, "start": 306,
"type": "ImportStatement", "type": "ImportStatement",
"type": "ImportStatement" "type": "ImportStatement"
}, },
{ {
"end": 391, "end": 390,
"expression": { "expression": {
"body": [ "body": [
{ {
"end": 351, "end": 350,
"name": "carRotor", "name": "carRotor",
"start": 343, "start": 342,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
@ -143,17 +143,17 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 376, "end": 375,
"name": "translate", "name": "translate",
"start": 367, "start": 366,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"elements": [ "elements": [
{ {
"end": 381, "end": 380,
"raw": "0", "raw": "0",
"start": 380, "start": 379,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -162,9 +162,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 386, "end": 385,
"raw": "0.5", "raw": "0.5",
"start": 383, "start": 382,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -173,9 +173,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 389, "end": 388,
"raw": "0", "raw": "0",
"start": 388, "start": 387,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -184,56 +184,56 @@ description: Result of parsing car-wheel-assembly.kcl
} }
} }
], ],
"end": 390, "end": 389,
"start": 379, "start": 378,
"type": "ArrayExpression", "type": "ArrayExpression",
"type": "ArrayExpression" "type": "ArrayExpression"
} }
} }
], ],
"callee": { "callee": {
"end": 366, "end": 365,
"name": "translate", "name": "translate",
"start": 357, "start": 356,
"type": "Identifier" "type": "Identifier"
}, },
"end": 391, "end": 390,
"start": 357, "start": 356,
"type": "CallExpressionKw", "type": "CallExpressionKw",
"type": "CallExpressionKw", "type": "CallExpressionKw",
"unlabeled": null "unlabeled": null
} }
], ],
"end": 391, "end": 390,
"start": 343, "start": 342,
"type": "PipeExpression", "type": "PipeExpression",
"type": "PipeExpression" "type": "PipeExpression"
}, },
"start": 343, "start": 342,
"type": "ExpressionStatement", "type": "ExpressionStatement",
"type": "ExpressionStatement" "type": "ExpressionStatement"
}, },
{ {
"end": 400, "end": 399,
"expression": { "expression": {
"end": 400, "end": 399,
"name": "carWheel", "name": "carWheel",
"start": 392, "start": 391,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
"start": 392, "start": 391,
"type": "ExpressionStatement", "type": "ExpressionStatement",
"type": "ExpressionStatement" "type": "ExpressionStatement"
}, },
{ {
"end": 564, "end": 563,
"expression": { "expression": {
"body": [ "body": [
{ {
"end": 407, "end": 406,
"name": "lugNut", "name": "lugNut",
"start": 401, "start": 400,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
@ -242,15 +242,15 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 447, "end": 446,
"name": "arcDegrees", "name": "arcDegrees",
"start": 437, "start": 436,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"end": 453, "end": 452,
"raw": "360", "raw": "360",
"start": 450, "start": 449,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -262,17 +262,17 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 464, "end": 463,
"name": "axis", "name": "axis",
"start": 460, "start": 459,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"elements": [ "elements": [
{ {
"end": 469, "end": 468,
"raw": "0", "raw": "0",
"start": 468, "start": 467,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -281,9 +281,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 472, "end": 471,
"raw": "1", "raw": "1",
"start": 471, "start": 470,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -292,9 +292,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 475, "end": 474,
"raw": "0", "raw": "0",
"start": 474, "start": 473,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -303,8 +303,8 @@ description: Result of parsing car-wheel-assembly.kcl
} }
} }
], ],
"end": 476, "end": 475,
"start": 467, "start": 466,
"type": "ArrayExpression", "type": "ArrayExpression",
"type": "ArrayExpression" "type": "ArrayExpression"
} }
@ -312,17 +312,17 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 489, "end": 488,
"name": "center", "name": "center",
"start": 483, "start": 482,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"elements": [ "elements": [
{ {
"end": 494, "end": 493,
"raw": "0", "raw": "0",
"start": 493, "start": 492,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -331,9 +331,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 497, "end": 496,
"raw": "0", "raw": "0",
"start": 496, "start": 495,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -342,9 +342,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 500, "end": 499,
"raw": "0", "raw": "0",
"start": 499, "start": 498,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -353,8 +353,8 @@ description: Result of parsing car-wheel-assembly.kcl
} }
} }
], ],
"end": 501, "end": 500,
"start": 492, "start": 491,
"type": "ArrayExpression", "type": "ArrayExpression",
"type": "ArrayExpression" "type": "ArrayExpression"
} }
@ -362,15 +362,15 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 517, "end": 516,
"name": "instances", "name": "instances",
"start": 508, "start": 507,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"end": 528, "end": 527,
"name": "lugCount", "name": "lugCount",
"start": 520, "start": 519,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
} }
@ -378,15 +378,15 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 551, "end": 550,
"name": "rotateDuplicates", "name": "rotateDuplicates",
"start": 535, "start": 534,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"end": 559, "end": 558,
"raw": "false", "raw": "false",
"start": 554, "start": 553,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": false "value": false
@ -394,35 +394,35 @@ description: Result of parsing car-wheel-assembly.kcl
} }
], ],
"callee": { "callee": {
"end": 430, "end": 429,
"name": "patternCircular3d", "name": "patternCircular3d",
"start": 413, "start": 412,
"type": "Identifier" "type": "Identifier"
}, },
"end": 564, "end": 563,
"start": 413, "start": 412,
"type": "CallExpressionKw", "type": "CallExpressionKw",
"type": "CallExpressionKw", "type": "CallExpressionKw",
"unlabeled": null "unlabeled": null
} }
], ],
"end": 564, "end": 563,
"start": 401, "start": 400,
"type": "PipeExpression", "type": "PipeExpression",
"type": "PipeExpression" "type": "PipeExpression"
}, },
"start": 401, "start": 400,
"type": "ExpressionStatement", "type": "ExpressionStatement",
"type": "ExpressionStatement" "type": "ExpressionStatement"
}, },
{ {
"end": 617, "end": 616,
"expression": { "expression": {
"body": [ "body": [
{ {
"end": 577, "end": 576,
"name": "brakeCaliper", "name": "brakeCaliper",
"start": 565, "start": 564,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
@ -431,17 +431,17 @@ description: Result of parsing car-wheel-assembly.kcl
{ {
"type": "LabeledArg", "type": "LabeledArg",
"label": { "label": {
"end": 602, "end": 601,
"name": "translate", "name": "translate",
"start": 593, "start": 592,
"type": "Identifier" "type": "Identifier"
}, },
"arg": { "arg": {
"elements": [ "elements": [
{ {
"end": 607, "end": 606,
"raw": "0", "raw": "0",
"start": 606, "start": 605,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -450,9 +450,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 612, "end": 611,
"raw": "0.5", "raw": "0.5",
"start": 609, "start": 608,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -461,9 +461,9 @@ description: Result of parsing car-wheel-assembly.kcl
} }
}, },
{ {
"end": 615, "end": 614,
"raw": "0", "raw": "0",
"start": 614, "start": 613,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
@ -472,50 +472,50 @@ description: Result of parsing car-wheel-assembly.kcl
} }
} }
], ],
"end": 616, "end": 615,
"start": 605, "start": 604,
"type": "ArrayExpression", "type": "ArrayExpression",
"type": "ArrayExpression" "type": "ArrayExpression"
} }
} }
], ],
"callee": { "callee": {
"end": 592, "end": 591,
"name": "translate", "name": "translate",
"start": 583, "start": 582,
"type": "Identifier" "type": "Identifier"
}, },
"end": 617, "end": 616,
"start": 583, "start": 582,
"type": "CallExpressionKw", "type": "CallExpressionKw",
"type": "CallExpressionKw", "type": "CallExpressionKw",
"unlabeled": null "unlabeled": null
} }
], ],
"end": 617, "end": 616,
"start": 565, "start": 564,
"type": "PipeExpression", "type": "PipeExpression",
"type": "PipeExpression" "type": "PipeExpression"
}, },
"start": 565, "start": 564,
"type": "ExpressionStatement", "type": "ExpressionStatement",
"type": "ExpressionStatement" "type": "ExpressionStatement"
}, },
{ {
"end": 625, "end": 624,
"expression": { "expression": {
"end": 625, "end": 624,
"name": "carTire", "name": "carTire",
"start": 618, "start": 617,
"type": "Identifier", "type": "Identifier",
"type": "Identifier" "type": "Identifier"
}, },
"start": 618, "start": 617,
"type": "ExpressionStatement", "type": "ExpressionStatement",
"type": "ExpressionStatement" "type": "ExpressionStatement"
} }
], ],
"end": 626, "end": 625,
"innerAttrs": [ "innerAttrs": [
{ {
"end": 127, "end": 127,
@ -553,8 +553,8 @@ description: Result of parsing car-wheel-assembly.kcl
"nonCodeNodes": { "nonCodeNodes": {
"5": [ "5": [
{ {
"end": 343, "end": 342,
"start": 341, "start": 340,
"type": "NonCodeNode", "type": "NonCodeNode",
"value": { "value": {
"type": "newLine" "type": "newLine"

View File

@ -1339,32 +1339,14 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "y"
"axis": {
"type": "String",
"value": "y"
}
}
}, },
"sourceRange": [ "sourceRange": [
2117, 2124,
2131, 2127,
3
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2133,
2134,
3 3
] ]
} }
@ -1372,11 +1354,23 @@ description: Operations executed car-wheel-assembly.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
2109, 2109,
2135, 2128,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2109,
2128,
3
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -1386,16 +1380,16 @@ description: Operations executed car-wheel-assembly.kcl
"value": "XY" "value": "XY"
}, },
"sourceRange": [ "sourceRange": [
2235, 2228,
2239, 2232,
3 3
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
2221, 2214,
2240, 2233,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1403,58 +1397,52 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "y"
"axis": {
"type": "String",
"value": "y"
}
}
}, },
"sourceRange": [ "sourceRange": [
2595, 2595,
2609, 2598,
3
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2611,
2612,
3 3
] ]
} }
}, },
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
2587, 2580,
2613, 2599,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2580,
2599,
3
]
}
}, },
{ {
"type": "UserDefinedFunctionCall", "type": "UserDefinedFunctionCall",
"name": "spoke", "name": "spoke",
"functionSourceRange": [ "functionSourceRange": [
2766, 2752,
4338, 4324,
3 3
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
"sourceRange": [ "sourceRange": [
4340, 4326,
4383, 4369,
3 3
] ]
}, },
@ -1642,16 +1630,16 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
3082, 3068,
3090, 3076,
3 3
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
3068, 3054,
3091, 3077,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1674,16 +1662,16 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4030,
4044, 4044,
4058,
3 3
] ]
} }
}, },
"name": "extrude", "name": "extrude",
"sourceRange": [ "sourceRange": [
4013, 3999,
4059, 4045,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1695,8 +1683,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4021, 4007,
4033, 4019,
3 3
] ]
} }
@ -1718,8 +1706,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4201, 4187,
4204, 4190,
3 3
] ]
}, },
@ -1769,8 +1757,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
4102, 4088,
4111, 4097,
3 3
] ]
}, },
@ -1820,8 +1808,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
4131, 4117,
4144, 4130,
3 3
] ]
}, },
@ -1840,8 +1828,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4167, 4153,
4177, 4163,
3 3
] ]
}, },
@ -1851,16 +1839,16 @@ description: Operations executed car-wheel-assembly.kcl
"value": true "value": true
}, },
"sourceRange": [ "sourceRange": [
4234, 4220,
4238, 4224,
3 3
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
4067, 4053,
4247, 4233,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -1872,8 +1860,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4067, 4053,
4247, 4233,
3 3
] ]
} }
@ -1885,15 +1873,15 @@ description: Operations executed car-wheel-assembly.kcl
"type": "UserDefinedFunctionCall", "type": "UserDefinedFunctionCall",
"name": "spoke", "name": "spoke",
"functionSourceRange": [ "functionSourceRange": [
2766, 2752,
4338, 4324,
3 3
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
"sourceRange": [ "sourceRange": [
4384, 4370,
4430, 4416,
3 3
] ]
}, },
@ -2081,16 +2069,16 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
3082, 3068,
3090, 3076,
3 3
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
3068, 3054,
3091, 3077,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -2113,16 +2101,16 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4030,
4044, 4044,
4058,
3 3
] ]
} }
}, },
"name": "extrude", "name": "extrude",
"sourceRange": [ "sourceRange": [
4013, 3999,
4059, 4045,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -2134,8 +2122,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4021, 4007,
4033, 4019,
3 3
] ]
} }
@ -2157,8 +2145,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4201, 4187,
4204, 4190,
3 3
] ]
}, },
@ -2208,8 +2196,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
4102, 4088,
4111, 4097,
3 3
] ]
}, },
@ -2259,8 +2247,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
4131, 4117,
4144, 4130,
3 3
] ]
}, },
@ -2279,8 +2267,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4167, 4153,
4177, 4163,
3 3
] ]
}, },
@ -2290,16 +2278,16 @@ description: Operations executed car-wheel-assembly.kcl
"value": true "value": true
}, },
"sourceRange": [ "sourceRange": [
4234, 4220,
4238, 4224,
3 3
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
4067, 4053,
4247, 4233,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -2311,8 +2299,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
4067, 4053,
4247, 4233,
3 3
] ]
} }
@ -2328,16 +2316,16 @@ description: Operations executed car-wheel-assembly.kcl
"value": "XY" "value": "XY"
}, },
"sourceRange": [ "sourceRange": [
4483, 4469,
4487, 4473,
3 3
] ]
} }
}, },
"name": "startSketchOn", "name": "startSketchOn",
"sourceRange": [ "sourceRange": [
4469, 4455,
4488, 4474,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -2345,58 +2333,52 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "y"
"axis": {
"type": "String",
"value": "y"
}
}
}, },
"sourceRange": [ "sourceRange": [
5789, 5782,
5803, 5785,
3
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
5805,
5806,
3 3
] ]
} }
}, },
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
5781, 5767,
5807, 5786,
3 3
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
5767,
5786,
3
]
}
}, },
{ {
"type": "UserDefinedFunctionCall", "type": "UserDefinedFunctionCall",
"name": "lug", "name": "lug",
"functionSourceRange": [ "functionSourceRange": [
666, 666,
1300, 1293,
6 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
"sourceRange": [ "sourceRange": [
1302, 1295,
1342, 1335,
6 6
] ]
}, },
@ -2595,32 +2577,14 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "Y"
"axis": {
"type": "String",
"value": "Y"
}
}
}, },
"sourceRange": [ "sourceRange": [
1192, 1199,
1206, 1202,
6
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1208,
1209,
6 6
] ]
} }
@ -2628,11 +2592,23 @@ description: Operations executed car-wheel-assembly.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
1184, 1184,
1210, 1203,
6 6
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1184,
1203,
6
]
}
}, },
{ {
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
@ -2654,8 +2630,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
450, 449,
453, 452,
0 0
] ]
}, },
@ -2705,8 +2681,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
467, 466,
476, 475,
0 0
] ]
}, },
@ -2756,8 +2732,8 @@ description: Operations executed car-wheel-assembly.kcl
] ]
}, },
"sourceRange": [ "sourceRange": [
492, 491,
501, 500,
0 0
] ]
}, },
@ -2776,8 +2752,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
520, 519,
528, 527,
0 0
] ]
}, },
@ -2787,16 +2763,16 @@ description: Operations executed car-wheel-assembly.kcl
"value": false "value": false
}, },
"sourceRange": [ "sourceRange": [
554, 553,
559, 558,
0 0
] ]
} }
}, },
"name": "patternCircular3d", "name": "patternCircular3d",
"sourceRange": [ "sourceRange": [
413, 412,
564, 563,
0 0
], ],
"type": "StdLibCall", "type": "StdLibCall",
@ -2808,8 +2784,8 @@ description: Operations executed car-wheel-assembly.kcl
} }
}, },
"sourceRange": [ "sourceRange": [
413, 412,
564, 563,
0 0
] ]
} }
@ -2839,45 +2815,34 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "angle": {
"value": { "value": {
"type": "Object", "type": "Number",
"value": { "value": -70.0,
"angle": { "ty": {
"type": "Number", "type": "Default",
"value": -70.0, "len": {
"ty": { "type": "Inches"
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}, },
"axis": { "angle": {
"type": "String", "type": "Degrees"
"value": "Y"
} }
} }
}, },
"sourceRange": [ "sourceRange": [
2255, 2295,
2282, 2298,
5 5
] ]
}, },
"sketches": { "axis": {
"value": { "value": {
"type": "Sketch", "type": "String",
"value": { "value": "Y"
"artifactId": "[uuid]"
}
}, },
"sourceRange": [ "sourceRange": [
2284, 2282,
2302, 2285,
5 5
] ]
} }
@ -2885,11 +2850,23 @@ description: Operations executed car-wheel-assembly.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
2247, 2247,
2303, 2299,
5 5
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
2255,
2273,
5
]
}
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -2916,32 +2893,14 @@ description: Operations executed car-wheel-assembly.kcl
}, },
{ {
"labeledArgs": { "labeledArgs": {
"data": { "axis": {
"value": { "value": {
"type": "Object", "type": "String",
"value": { "value": "Y"
"axis": {
"type": "String",
"value": "Y"
}
}
}, },
"sourceRange": [ "sourceRange": [
1470, 1489,
1484, 1492,
7
]
},
"sketches": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1486,
1496,
7 7
] ]
} }
@ -2949,10 +2908,22 @@ description: Operations executed car-wheel-assembly.kcl
"name": "revolve", "name": "revolve",
"sourceRange": [ "sourceRange": [
1462, 1462,
1497, 1493,
7 7
], ],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [
1470,
1480,
7
]
}
} }
] ]

View File

@ -39,7 +39,7 @@ DATA;
#23 = VERTEX_POINT('NONE', #22); #23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #24 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#25 = VERTEX_POINT('NONE', #24); #25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.011810999999999978, 0, -0.007619999999999995)); #26 = CARTESIAN_POINT('NONE', (0.011810999999999981, 0, -0.0076199999999999974));
#27 = VERTEX_POINT('NONE', #26); #27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.0037719, 0, -0)); #28 = CARTESIAN_POINT('NONE', (0.0037719, 0, -0));
#29 = VERTEX_POINT('NONE', #28); #29 = VERTEX_POINT('NONE', #28);
@ -95,7 +95,7 @@ DATA;
#63 = AXIS2_PLACEMENT_3D('NONE', #62, #61, #60); #63 = AXIS2_PLACEMENT_3D('NONE', #62, #61, #60);
#64 = CIRCLE('NONE', #63, 0.00762); #64 = CIRCLE('NONE', #63, 0.00762);
#65 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288)); #65 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#66 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202)); #66 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274202));
#67 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004)); #67 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#68 = ( #68 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -106,18 +106,18 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#69 = DIRECTION('NONE', (-0.8660254037844387, 0, -0.49999999999999967)); #69 = DIRECTION('NONE', (-0.8660254037844388, 0, -0.4999999999999997));
#70 = DIRECTION('NONE', (0, 1, 0)); #70 = DIRECTION('NONE', (0, 1, 0));
#71 = CARTESIAN_POINT('NONE', (-0.005808633250155917, -0, 0.010172700000000003)); #71 = CARTESIAN_POINT('NONE', (-0.0058086332501559165, -0, 0.010172700000000003));
#72 = AXIS2_PLACEMENT_3D('NONE', #71, #70, #69); #72 = AXIS2_PLACEMENT_3D('NONE', #71, #70, #69);
#73 = CIRCLE('NONE', #72, 0.007620000000000003); #73 = CIRCLE('NONE', #72, 0.007620000000000002);
#74 = DIRECTION('NONE', (-0.3420201433256678, 0, 0.9396926207859089)); #74 = DIRECTION('NONE', (-0.3420201433256678, 0, 0.9396926207859089));
#75 = DIRECTION('NONE', (0, 1.0000000000000002, -0)); #75 = DIRECTION('NONE', (0, 1.0000000000000002, -0));
#76 = CARTESIAN_POINT('NONE', (-0.004068275783674349, 0.0381, -0.023072338489143286)); #76 = CARTESIAN_POINT('NONE', (-0.004068275783674349, 0.0381, -0.023072338489143286));
#77 = AXIS2_PLACEMENT_3D('NONE', #76, #75, #74); #77 = AXIS2_PLACEMENT_3D('NONE', #76, #75, #74);
#78 = CIRCLE('NONE', #77, 0.012725399999999994); #78 = CIRCLE('NONE', #77, 0.012725399999999994);
#79 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #79 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#80 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532)); #80 = CARTESIAN_POINT('NONE', (-0.006681894987404388, 0.01905, -0.01585590553916532));
#81 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989)); #81 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#82 = ( #82 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -128,18 +128,18 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#83 = DIRECTION('NONE', (0.8660254037844382, 0, -0.5000000000000007)); #83 = DIRECTION('NONE', (0.8660254037844384, 0, -0.5000000000000007));
#84 = DIRECTION('NONE', (0, -0.9999999999999998, 0)); #84 = DIRECTION('NONE', (0, -1.0000000000000002, 0));
#85 = CARTESIAN_POINT('NONE', (-0.023428266500311844, -0, 0.00000000000000001687538997430238)); #85 = CARTESIAN_POINT('NONE', (-0.02342826650031185, -0, 0.00000000000000001865174681370263));
#86 = AXIS2_PLACEMENT_3D('NONE', #85, #84, #83); #86 = AXIS2_PLACEMENT_3D('NONE', #85, #84, #83);
#87 = CIRCLE('NONE', #86, 0.012725399999999994); #87 = CIRCLE('NONE', #86, 0.012725400000000001);
#88 = DIRECTION('NONE', (-0.6427876096865395, 0, -0.766044443118978)); #88 = DIRECTION('NONE', (-0.6427876096865395, 0, -0.766044443118978));
#89 = DIRECTION('NONE', (0, -1.0000000000000002, -0)); #89 = DIRECTION('NONE', (0, -1.0000000000000002, -0));
#90 = CARTESIAN_POINT('NONE', (0.009009495250442175, 0.0381, -0.0074868578761104415)); #90 = CARTESIAN_POINT('NONE', (0.009009495250442175, 0.0381, -0.0074868578761104415));
#91 = AXIS2_PLACEMENT_3D('NONE', #90, #89, #88); #91 = AXIS2_PLACEMENT_3D('NONE', #90, #89, #88);
#92 = CIRCLE('NONE', #91, 0.007620000000000001); #92 = CIRCLE('NONE', #91, 0.007620000000000001);
#93 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261)); #93 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#94 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #94 = CARTESIAN_POINT('NONE', (0.011837890161758855, 0.01905, -0.0125903677404439));
#95 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994)); #95 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#96 = ( #96 = (
BOUNDED_CURVE() BOUNDED_CURVE()
@ -150,19 +150,19 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#97 = DIRECTION('NONE', (0.8660254037844388, -0, -0.49999999999999956)); #97 = DIRECTION('NONE', (0.866025403784439, -0, -0.4999999999999996));
#98 = DIRECTION('NONE', (0, 0.9999999999999999, 0)); #98 = DIRECTION('NONE', (0, 1, 0));
#99 = CARTESIAN_POINT('NONE', (-0.005808633250155936, 0, -0.010172699999999996)); #99 = CARTESIAN_POINT('NONE', (-0.0058086332501559364, 0, -0.010172699999999996));
#100 = AXIS2_PLACEMENT_3D('NONE', #99, #98, #97); #100 = AXIS2_PLACEMENT_3D('NONE', #99, #98, #97);
#101 = CIRCLE('NONE', #100, 0.007620000000000001); #101 = CIRCLE('NONE', #100, 0.00762);
#102 = DIRECTION('NONE', (-0.6427876096865413, 0, -0.7660444431189763)); #102 = DIRECTION('NONE', (-0.6427876096865413, 0, -0.7660444431189763));
#103 = DIRECTION('NONE', (0, 0.9999999999999999, 0)); #103 = DIRECTION('NONE', (0, 0.9999999999999999, 0));
#104 = CARTESIAN_POINT('NONE', (0.022087266284558753, 0.0381, 0.008098622736922445)); #104 = CARTESIAN_POINT('NONE', (0.022087266284558753, 0.0381, 0.008098622736922445));
#105 = AXIS2_PLACEMENT_3D('NONE', #104, #103, #102); #105 = AXIS2_PLACEMENT_3D('NONE', #104, #103, #102);
#106 = CIRCLE('NONE', #105, 0.012725400000000064); #106 = CIRCLE('NONE', #105, 0.012725400000000064);
#107 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #107 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));
#108 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961)); #108 = CARTESIAN_POINT('NONE', (0.01720848815479078, 0.01905, 0.0021652289743796134));
#109 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995)); #109 = CARTESIAN_POINT('NONE', (0.011810999999999981, -0, -0.0076199999999999974));
#110 = ( #110 = (
BOUNDED_CURVE() BOUNDED_CURVE()
B_SPLINE_CURVE(2, (#107, #108, #109), .UNSPECIFIED., .F., .F.) B_SPLINE_CURVE(2, (#107, #108, #109), .UNSPECIFIED., .F., .F.)
@ -172,11 +172,11 @@ DATA;
RATIONAL_B_SPLINE_CURVE((1, 1, 1)) RATIONAL_B_SPLINE_CURVE((1, 1, 1))
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
); );
#111 = DIRECTION('NONE', (-0.000000000000002373054384915535, 0, 1)); #111 = DIRECTION('NONE', (-0.0000000000000018146886472883515, 0, 1));
#112 = DIRECTION('NONE', (-0, -1, 0)); #112 = DIRECTION('NONE', (-0, -1, 0));
#113 = CARTESIAN_POINT('NONE', (0.011811000000000009, -0, -0.02034540000000004)); #113 = CARTESIAN_POINT('NONE', (0.011811000000000004, -0, -0.020345400000000034));
#114 = AXIS2_PLACEMENT_3D('NONE', #113, #112, #111); #114 = AXIS2_PLACEMENT_3D('NONE', #113, #112, #111);
#115 = CIRCLE('NONE', #114, 0.012725400000000046); #115 = CIRCLE('NONE', #114, 0.012725400000000036);
#116 = DIRECTION('NONE', (0, 1, -0)); #116 = DIRECTION('NONE', (0, 1, -0));
#117 = VECTOR('NONE', #116, 1); #117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (0.0037719, -0, 0)); #118 = CARTESIAN_POINT('NONE', (0.0037719, -0, 0));
@ -256,14 +256,14 @@ DATA;
); );
#177 = CARTESIAN_POINT('NONE', (0.0007904803266815029, -0, 0.013982700000000004)); #177 = CARTESIAN_POINT('NONE', (0.0007904803266815029, -0, 0.013982700000000004));
#178 = CARTESIAN_POINT('NONE', (-0.0030195196733185, -0, 0.02058181357683743)); #178 = CARTESIAN_POINT('NONE', (-0.0030195196733185, -0, 0.02058181357683743));
#179 = CARTESIAN_POINT('NONE', (-0.009618633250155922, -0, 0.01677181357683742)); #179 = CARTESIAN_POINT('NONE', (-0.009618633250155923, -0, 0.01677181357683742));
#180 = CARTESIAN_POINT('NONE', (-0.01621774682699334, -0, 0.012961813576837417)); #180 = CARTESIAN_POINT('NONE', (-0.01621774682699334, -0, 0.012961813576837417));
#181 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004)); #181 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#182 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891662)); #182 = CARTESIAN_POINT('NONE', (-0.010343463710053215, 0.01905, 0.013844340424891662));
#183 = CARTESIAN_POINT('NONE', (-0.01917915036563614, 0.01905, 0.017060267366826944)); #183 = CARTESIAN_POINT('NONE', (-0.01917915036563614, 0.01905, 0.017060267366826944));
#184 = CARTESIAN_POINT('NONE', (-0.02239507730757142, 0.01905, 0.008224580711244014)); #184 = CARTESIAN_POINT('NONE', (-0.022395077307571426, 0.01905, 0.008224580711244014));
#185 = CARTESIAN_POINT('NONE', (-0.025611004249506707, 0.01905, -0.000611105944338923)); #185 = CARTESIAN_POINT('NONE', (-0.025611004249506707, 0.01905, -0.000611105944338923));
#186 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274202)); #186 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274202));
#187 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547)); #187 = CARTESIAN_POINT('NONE', (-0.01363300589983399, 0.0381, 0.0032065415281829547));
#188 = CARTESIAN_POINT('NONE', (-0.020793463670222608, 0.0381, 0.0006003480360413621)); #188 = CARTESIAN_POINT('NONE', (-0.020793463670222608, 0.0381, 0.0006003480360413621));
#189 = CARTESIAN_POINT('NONE', (-0.018187270178081014, 0.0381, -0.00656010973434726)); #189 = CARTESIAN_POINT('NONE', (-0.018187270178081014, 0.0381, -0.00656010973434726));
@ -278,12 +278,12 @@ DATA;
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
SURFACE() SURFACE()
); );
#193 = CARTESIAN_POINT('NONE', (-0.012407746826993344, -0, 0.006362700000000004)); #193 = CARTESIAN_POINT('NONE', (-0.012407746826993343, -0, 0.006362700000000004));
#194 = CARTESIAN_POINT('NONE', (-0.00873424026922052, -0, -0.000000000000000004726054498244314)); #194 = CARTESIAN_POINT('NONE', (-0.008734240269220523, -0, -0.000000000000000004726054498244314));
#195 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989)); #195 = CARTESIAN_POINT('NONE', (-0.012407746826993356, -0, -0.006362699999999989));
#196 = CARTESIAN_POINT('NONE', (-0.016775317593923766, 0.01905, -0.003827032886274204)); #196 = CARTESIAN_POINT('NONE', (-0.016775317593923773, 0.01905, -0.003827032886274204));
#197 = CARTESIAN_POINT('NONE', (-0.008256169858566881, 0.019050000000000004, -0.006927749083260438)); #197 = CARTESIAN_POINT('NONE', (-0.008256169858566887, 0.019050000000000004, -0.006927749083260438));
#198 = CARTESIAN_POINT('NONE', (-0.006681894987404381, 0.01905, -0.01585590553916532)); #198 = CARTESIAN_POINT('NONE', (-0.006681894987404388, 0.01905, -0.01585590553916532));
#199 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288)); #199 = CARTESIAN_POINT('NONE', (-0.008420618915550801, 0.0381, -0.011114374012594288));
#200 = CARTESIAN_POINT('NONE', (-0.0015166849060552505, 0.0381, -0.008601547533799802)); #200 = CARTESIAN_POINT('NONE', (-0.0015166849060552505, 0.0381, -0.008601547533799802));
#201 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #201 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
@ -298,14 +298,14 @@ DATA;
); );
#203 = CARTESIAN_POINT('NONE', (-0.012407746826993355, -0, -0.006362699999999989)); #203 = CARTESIAN_POINT('NONE', (-0.012407746826993355, -0, -0.006362699999999989));
#204 = CARTESIAN_POINT('NONE', (-0.016217746826993354, -0, -0.012961813576837412)); #204 = CARTESIAN_POINT('NONE', (-0.016217746826993354, -0, -0.012961813576837412));
#205 = CARTESIAN_POINT('NONE', (-0.009618633250155937, -0, -0.01677181357683742)); #205 = CARTESIAN_POINT('NONE', (-0.009618633250155936, -0, -0.01677181357683742));
#206 = CARTESIAN_POINT('NONE', (-0.003019519673318509, -0, -0.020581813576837412)); #206 = CARTESIAN_POINT('NONE', (-0.0030195196733185095, -0, -0.020581813576837412));
#207 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994)); #207 = CARTESIAN_POINT('NONE', (0.0007904803266814893, -0, -0.013982699999999994));
#208 = CARTESIAN_POINT('NONE', (-0.006681894987404382, 0.01905, -0.01585590553916532)); #208 = CARTESIAN_POINT('NONE', (-0.006681894987404389, 0.01905, -0.01585590553916532));
#209 = CARTESIAN_POINT('NONE', (-0.0050491260880436714, 0.019049999999999997, -0.02511579811374694)); #209 = CARTESIAN_POINT('NONE', (-0.005049126088043679, 0.019049999999999997, -0.02511579811374694));
#210 = CARTESIAN_POINT('NONE', (0.0042107664865379535, 0.01905, -0.02348302921438623)); #210 = CARTESIAN_POINT('NONE', (0.0042107664865379466, 0.01905, -0.02348302921438623));
#211 = CARTESIAN_POINT('NONE', (0.01347065906111957, 0.019049999999999997, -0.02185026031502552)); #211 = CARTESIAN_POINT('NONE', (0.013470659061119567, 0.019049999999999997, -0.02185026031502552));
#212 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #212 = CARTESIAN_POINT('NONE', (0.011837890161758855, 0.01905, -0.0125903677404439));
#213 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054)); #213 = CARTESIAN_POINT('NONE', (0.004111453664630743, 0.0381, -0.013324116532677054));
#214 = CARTESIAN_POINT('NONE', (0.009948712321197359, 0.0381, -0.018222158118488478)); #214 = CARTESIAN_POINT('NONE', (0.009948712321197359, 0.0381, -0.018222158118488478));
#215 = CARTESIAN_POINT('NONE', (0.014846753907008787, 0.0381, -0.012384899461921867)); #215 = CARTESIAN_POINT('NONE', (0.014846753907008787, 0.0381, -0.012384899461921867));
@ -320,12 +320,12 @@ DATA;
REPRESENTATION_ITEM('NONE') REPRESENTATION_ITEM('NONE')
SURFACE() SURFACE()
); );
#219 = CARTESIAN_POINT('NONE', (0.0007904803266814876, -0, -0.013982699999999994)); #219 = CARTESIAN_POINT('NONE', (0.0007904803266814854, -0, -0.013982699999999997));
#220 = CARTESIAN_POINT('NONE', (0.0044639868844543245, -0, -0.007620000000000015)); #220 = CARTESIAN_POINT('NONE', (0.004463986884454323, -0, -0.007620000000000017));
#221 = CARTESIAN_POINT('NONE', (0.011810999999999978, -0, -0.007619999999999995)); #221 = CARTESIAN_POINT('NONE', (0.011810999999999981, -0, -0.0076199999999999974));
#222 = CARTESIAN_POINT('NONE', (0.011837890161758862, 0.01905, -0.0125903677404439)); #222 = CARTESIAN_POINT('NONE', (0.011837890161758858, 0.01905, -0.012590367740443899));
#223 = CARTESIAN_POINT('NONE', (0.010263615290596393, 0.019049999999999994, -0.0036622112845390324)); #223 = CARTESIAN_POINT('NONE', (0.01026361529059639, 0.019049999999999994, -0.0036622112845390306));
#224 = CARTESIAN_POINT('NONE', (0.017208488154790785, 0.01905, 0.00216522897437961)); #224 = CARTESIAN_POINT('NONE', (0.01720848815479078, 0.01905, 0.0021652289743796134));
#225 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261)); #225 = CARTESIAN_POINT('NONE', (0.013907536836253597, 0.0381, -0.0016495992195438261));
#226 = CARTESIAN_POINT('NONE', (0.00827939826556762, 0.038099999999999995, 0.0030729697793334247)); #226 = CARTESIAN_POINT('NONE', (0.00827939826556762, 0.038099999999999995, 0.0030729697793334247));
#227 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516)); #227 = CARTESIAN_POINT('NONE', (0.009555193704377126, 0.0381, 0.01030836525700516));

View File

@ -161,20 +161,20 @@ DATA;
#145 = VERTEX_POINT('NONE', #144); #145 = VERTEX_POINT('NONE', #144);
#146 = CARTESIAN_POINT('NONE', (-0.0186055, 0.3859187599240827, -0.2649386954314825)); #146 = CARTESIAN_POINT('NONE', (-0.0186055, 0.3859187599240827, -0.2649386954314825));
#147 = VERTEX_POINT('NONE', #146); #147 = VERTEX_POINT('NONE', #146);
#148 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #148 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#149 = DIRECTION('NONE', (0, 1, -0)); #149 = DIRECTION('NONE', (0, 1, -0));
#150 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0, 0.024039844328695128)); #150 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0, 0.02403984432869508));
#151 = AXIS2_PLACEMENT_3D('NONE', #150, #149, #148); #151 = AXIS2_PLACEMENT_3D('NONE', #150, #149, #148);
#152 = CIRCLE('NONE', #151, 0.007737689870496104); #152 = CIRCLE('NONE', #151, 0.007737689870496156);
#153 = DIRECTION('NONE', (0, 1, 0)); #153 = DIRECTION('NONE', (0, 1, 0));
#154 = VECTOR('NONE', #153, 1); #154 = VECTOR('NONE', #153, 1);
#155 = CARTESIAN_POINT('NONE', (0.11484587524256575, 0, 0.029967258656566655)); #155 = CARTESIAN_POINT('NONE', (0.11484587524256575, 0, 0.029967258656566655));
#156 = LINE('NONE', #155, #154); #156 = LINE('NONE', #155, #154);
#157 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #157 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#158 = DIRECTION('NONE', (0, 1, -0)); #158 = DIRECTION('NONE', (0, 1, -0));
#159 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0.003175, 0.024039844328695128)); #159 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0.003175, 0.02403984432869508));
#160 = AXIS2_PLACEMENT_3D('NONE', #159, #158, #157); #160 = AXIS2_PLACEMENT_3D('NONE', #159, #158, #157);
#161 = CIRCLE('NONE', #160, 0.007737689870496104); #161 = CIRCLE('NONE', #160, 0.007737689870496156);
#162 = DIRECTION('NONE', (0, 1, 0)); #162 = DIRECTION('NONE', (0, 1, 0));
#163 = VECTOR('NONE', #162, 1); #163 = VECTOR('NONE', #162, 1);
#164 = CARTESIAN_POINT('NONE', (0.10922000000000001, 0, 0.031750000000000014)); #164 = CARTESIAN_POINT('NONE', (0.10922000000000001, 0, 0.031750000000000014));
@ -1183,11 +1183,11 @@ DATA;
#1103 = EDGE_CURVE('NONE', #145, #147, #987, .T.); #1103 = EDGE_CURVE('NONE', #145, #147, #987, .T.);
#1104 = EDGE_CURVE('NONE', #145, #145, #992, .T.); #1104 = EDGE_CURVE('NONE', #145, #145, #992, .T.);
#1105 = EDGE_CURVE('NONE', #147, #147, #997, .T.); #1105 = EDGE_CURVE('NONE', #147, #147, #997, .T.);
#1106 = CARTESIAN_POINT('NONE', (0.10987218406621378, 0.0015874999999999997, 0.024039844328695128)); #1106 = CARTESIAN_POINT('NONE', (0.10987218406621377, 0.0015874999999999997, 0.02403984432869508));
#1107 = DIRECTION('NONE', (0, 1, -0)); #1107 = DIRECTION('NONE', (0, 1, -0));
#1108 = DIRECTION('NONE', (-0.08428666399522529, 0, 0.9964415478454097)); #1108 = DIRECTION('NONE', (-0.0842866639952229, 0, 0.99644154784541));
#1109 = AXIS2_PLACEMENT_3D('NONE', #1106, #1107, #1108); #1109 = AXIS2_PLACEMENT_3D('NONE', #1106, #1107, #1108);
#1110 = CYLINDRICAL_SURFACE('NONE', #1109, 0.007737689870496104); #1110 = CYLINDRICAL_SURFACE('NONE', #1109, 0.007737689870496156);
#1111 = CARTESIAN_POINT('NONE', (0.12954000000000004, 0.0015874999999999997, 0.04747903462626646)); #1111 = CARTESIAN_POINT('NONE', (0.12954000000000004, 0.0015874999999999997, 0.04747903462626646));
#1112 = DIRECTION('NONE', (0, -1.0000000000000002, -0)); #1112 = DIRECTION('NONE', (0, -1.0000000000000002, -0));
#1113 = DIRECTION('NONE', (-0.6427876096865407, 0, -0.766044443118977)); #1113 = DIRECTION('NONE', (-0.6427876096865407, 0, -0.766044443118977));

View File

@ -131,9 +131,9 @@ DATA;
#115 = VERTEX_POINT('NONE', #114); #115 = VERTEX_POINT('NONE', #114);
#116 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577)); #116 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577));
#117 = VERTEX_POINT('NONE', #116); #117 = VERTEX_POINT('NONE', #116);
#118 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104229)); #118 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104227));
#119 = VERTEX_POINT('NONE', #118); #119 = VERTEX_POINT('NONE', #118);
#120 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0.0035, -0.013002775465104229)); #120 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0.0035, -0.013002775465104227));
#121 = VERTEX_POINT('NONE', #120); #121 = VERTEX_POINT('NONE', #120);
#122 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0.0035, -0.02299722453489577)); #122 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0.0035, -0.02299722453489577));
#123 = VERTEX_POINT('NONE', #122); #123 = VERTEX_POINT('NONE', #122);
@ -778,20 +778,20 @@ DATA;
#762 = VECTOR('NONE', #761, 1); #762 = VECTOR('NONE', #761, 1);
#763 = CARTESIAN_POINT('NONE', (-0.055, 0.0035, -0.005000000000000004)); #763 = CARTESIAN_POINT('NONE', (-0.055, 0.0035, -0.005000000000000004));
#764 = LINE('NONE', #763, #762); #764 = LINE('NONE', #763, #762);
#765 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #765 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#766 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #766 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#767 = CARTESIAN_POINT('NONE', (-0.024999999999999998, -0, -0.017999999999999995)); #767 = CARTESIAN_POINT('NONE', (-0.025, -0, -0.01799999999999999));
#768 = AXIS2_PLACEMENT_3D('NONE', #767, #766, #765); #768 = AXIS2_PLACEMENT_3D('NONE', #767, #766, #765);
#769 = CIRCLE('NONE', #768, 0.005000000000000003); #769 = CIRCLE('NONE', #768, 0.005000000000000007);
#770 = DIRECTION('NONE', (0, 1, 0)); #770 = DIRECTION('NONE', (0, 1, 0));
#771 = VECTOR('NONE', #770, 1); #771 = VECTOR('NONE', #770, 1);
#772 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104229)); #772 = CARTESIAN_POINT('NONE', (-0.025166574151163194, 0, -0.013002775465104227));
#773 = LINE('NONE', #772, #771); #773 = LINE('NONE', #772, #771);
#774 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #774 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#775 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #775 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#776 = CARTESIAN_POINT('NONE', (-0.024999999999999998, 0.0035, -0.017999999999999995)); #776 = CARTESIAN_POINT('NONE', (-0.025, 0.0035, -0.01799999999999999));
#777 = AXIS2_PLACEMENT_3D('NONE', #776, #775, #774); #777 = AXIS2_PLACEMENT_3D('NONE', #776, #775, #774);
#778 = CIRCLE('NONE', #777, 0.005000000000000003); #778 = CIRCLE('NONE', #777, 0.005000000000000007);
#779 = DIRECTION('NONE', (0, 1, 0)); #779 = DIRECTION('NONE', (0, 1, 0));
#780 = VECTOR('NONE', #779, 1); #780 = VECTOR('NONE', #779, 1);
#781 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577)); #781 = CARTESIAN_POINT('NONE', (-0.0248334258488368, 0, -0.02299722453489577));
@ -1209,11 +1209,11 @@ DATA;
#1193 = DIRECTION('NONE', (0, 0, 1)); #1193 = DIRECTION('NONE', (0, 0, 1));
#1194 = AXIS2_PLACEMENT_3D('NONE', #1192, #1193, $); #1194 = AXIS2_PLACEMENT_3D('NONE', #1192, #1193, $);
#1195 = PLANE('NONE', #1194); #1195 = PLANE('NONE', #1194);
#1196 = CARTESIAN_POINT('NONE', (-0.024999999999999998, 0.00175, -0.017999999999999995)); #1196 = CARTESIAN_POINT('NONE', (-0.025, 0.00175, -0.01799999999999999));
#1197 = DIRECTION('NONE', (0, -1.0000000000000002, 0)); #1197 = DIRECTION('NONE', (0, -0.9999999999999999, 0));
#1198 = DIRECTION('NONE', (0.033314830232639266, 0, -0.9994449069791544)); #1198 = DIRECTION('NONE', (0.033314830232639946, 0, -0.9994449069791542));
#1199 = AXIS2_PLACEMENT_3D('NONE', #1196, #1197, #1198); #1199 = AXIS2_PLACEMENT_3D('NONE', #1196, #1197, #1198);
#1200 = CYLINDRICAL_SURFACE('NONE', #1199, 0.005000000000000003); #1200 = CYLINDRICAL_SURFACE('NONE', #1199, 0.005000000000000007);
#1201 = CARTESIAN_POINT('NONE', (-0.04016657415116319, 0.00175, -0.013502775465104222)); #1201 = CARTESIAN_POINT('NONE', (-0.04016657415116319, 0.00175, -0.013502775465104222));
#1202 = DIRECTION('NONE', (0.033314830232638176, -0, -0.9994449069791543)); #1202 = DIRECTION('NONE', (0.033314830232638176, -0, -0.9994449069791543));
#1203 = AXIS2_PLACEMENT_3D('NONE', #1201, #1202, $); #1203 = AXIS2_PLACEMENT_3D('NONE', #1201, #1202, $);

View File

@ -10,118 +10,118 @@ flowchart LR
8[Solid2d] 8[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[993, 1037, 0]"] 18["Path<br>[986, 1030, 0]"]
19["Segment<br>[1043, 1062, 0]"] 19["Segment<br>[1036, 1055, 0]"]
20["Segment<br>[1068, 1102, 0]"] 20["Segment<br>[1061, 1095, 0]"]
21["Segment<br>[1108, 1192, 0]"] 21["Segment<br>[1101, 1185, 0]"]
22["Segment<br>[1198, 1250, 0]"] 22["Segment<br>[1191, 1243, 0]"]
23["Segment<br>[1256, 1340, 0]"] 23["Segment<br>[1249, 1333, 0]"]
24["Segment<br>[1346, 1398, 0]"] 24["Segment<br>[1339, 1391, 0]"]
25["Segment<br>[1404, 1486, 0]"] 25["Segment<br>[1397, 1479, 0]"]
26["Segment<br>[1492, 1532, 0]"] 26["Segment<br>[1485, 1525, 0]"]
27["Segment<br>[1538, 1557, 0]"] 27["Segment<br>[1531, 1550, 0]"]
28["Segment<br>[1563, 1616, 0]"] 28["Segment<br>[1556, 1609, 0]"]
29["Segment<br>[1622, 1704, 0]"] 29["Segment<br>[1615, 1697, 0]"]
30["Segment<br>[1710, 1800, 0]"] 30["Segment<br>[1703, 1793, 0]"]
31["Segment<br>[1806, 1890, 0]"] 31["Segment<br>[1799, 1883, 0]"]
32["Segment<br>[1896, 1986, 0]"] 32["Segment<br>[1889, 1979, 0]"]
33["Segment<br>[1992, 2076, 0]"] 33["Segment<br>[1985, 2069, 0]"]
34["Segment<br>[2082, 2138, 0]"] 34["Segment<br>[2075, 2131, 0]"]
35["Segment<br>[2144, 2151, 0]"] 35["Segment<br>[2137, 2144, 0]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path89 [Path] subgraph path89 [Path]
89["Path<br>[2419, 2499, 0]"] 89["Path<br>[2412, 2492, 0]"]
90["Segment<br>[2419, 2499, 0]"] 90["Segment<br>[2412, 2492, 0]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path98 [Path] subgraph path98 [Path]
98["Path<br>[2600, 2630, 0]"] 98["Path<br>[2593, 2623, 0]"]
99["Segment<br>[2636, 2655, 0]"] 99["Segment<br>[2629, 2648, 0]"]
100["Segment<br>[2661, 2744, 0]"] 100["Segment<br>[2654, 2737, 0]"]
101["Segment<br>[2750, 2806, 0]"] 101["Segment<br>[2743, 2799, 0]"]
102["Segment<br>[2812, 2819, 0]"] 102["Segment<br>[2805, 2812, 0]"]
103[Solid2d] 103[Solid2d]
end end
subgraph path117 [Path] subgraph path117 [Path]
117["Path<br>[3058, 3089, 0]"] 117["Path<br>[3051, 3082, 0]"]
118["Segment<br>[3095, 3140, 0]"] 118["Segment<br>[3088, 3133, 0]"]
119["Segment<br>[3146, 3236, 0]"] 119["Segment<br>[3139, 3229, 0]"]
120["Segment<br>[3242, 3288, 0]"] 120["Segment<br>[3235, 3281, 0]"]
121["Segment<br>[3294, 3347, 0]"] 121["Segment<br>[3287, 3340, 0]"]
122["Segment<br>[3353, 3378, 0]"] 122["Segment<br>[3346, 3371, 0]"]
123["Segment<br>[3384, 3440, 0]"] 123["Segment<br>[3377, 3433, 0]"]
124["Segment<br>[3446, 3453, 0]"] 124["Segment<br>[3439, 3446, 0]"]
125[Solid2d] 125[Solid2d]
end end
subgraph path140 [Path] subgraph path140 [Path]
140["Path<br>[3544, 3571, 0]"] 140["Path<br>[3530, 3557, 0]"]
141["Segment<br>[3577, 3597, 0]"] 141["Segment<br>[3563, 3583, 0]"]
142["Segment<br>[3603, 3646, 0]"] 142["Segment<br>[3589, 3632, 0]"]
143["Segment<br>[3652, 3670, 0]"] 143["Segment<br>[3638, 3656, 0]"]
144["Segment<br>[3676, 3696, 0]"] 144["Segment<br>[3662, 3682, 0]"]
145["Segment<br>[3702, 3722, 0]"] 145["Segment<br>[3688, 3708, 0]"]
146["Segment<br>[3728, 3776, 0]"] 146["Segment<br>[3714, 3762, 0]"]
147["Segment<br>[3782, 3838, 0]"] 147["Segment<br>[3768, 3824, 0]"]
148["Segment<br>[3844, 3851, 0]"] 148["Segment<br>[3830, 3837, 0]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path166 [Path] subgraph path166 [Path]
166["Path<br>[3966, 4046, 0]"] 166["Path<br>[3945, 4025, 0]"]
167["Segment<br>[3966, 4046, 0]"] 167["Segment<br>[3945, 4025, 0]"]
168[Solid2d] 168[Solid2d]
end end
subgraph path169 [Path] subgraph path169 [Path]
169["Path<br>[4057, 4094, 0]"] 169["Path<br>[4036, 4073, 0]"]
170["Segment<br>[4057, 4094, 0]"] 170["Segment<br>[4036, 4073, 0]"]
171[Solid2d] 171[Solid2d]
end end
subgraph path178 [Path] subgraph path178 [Path]
178["Path<br>[4236, 4274, 0]"] 178["Path<br>[4215, 4253, 0]"]
179["Segment<br>[4236, 4274, 0]"] 179["Segment<br>[4215, 4253, 0]"]
180[Solid2d] 180[Solid2d]
end end
subgraph path192 [Path] subgraph path192 [Path]
192["Path<br>[4546, 4584, 0]"] 192["Path<br>[4525, 4563, 0]"]
193["Segment<br>[4546, 4584, 0]"] 193["Segment<br>[4525, 4563, 0]"]
194[Solid2d] 194[Solid2d]
end end
subgraph path203 [Path] subgraph path203 [Path]
203["Path<br>[4837, 4910, 0]"] 203["Path<br>[4816, 4889, 0]"]
204["Segment<br>[4837, 4910, 0]"] 204["Segment<br>[4816, 4889, 0]"]
205[Solid2d] 205[Solid2d]
end end
subgraph path213 [Path] subgraph path213 [Path]
213["Path<br>[5159, 5203, 0]"] 213["Path<br>[5138, 5182, 0]"]
214["Segment<br>[5209, 5249, 0]"] 214["Segment<br>[5188, 5228, 0]"]
215["Segment<br>[5255, 5274, 0]"] 215["Segment<br>[5234, 5253, 0]"]
216["Segment<br>[5280, 5299, 0]"] 216["Segment<br>[5259, 5278, 0]"]
217["Segment<br>[5305, 5324, 0]"] 217["Segment<br>[5284, 5303, 0]"]
218["Segment<br>[5330, 5355, 0]"] 218["Segment<br>[5309, 5334, 0]"]
219["Segment<br>[5361, 5501, 0]"] 219["Segment<br>[5340, 5480, 0]"]
220["Segment<br>[5507, 5563, 0]"] 220["Segment<br>[5486, 5542, 0]"]
221["Segment<br>[5569, 5576, 0]"] 221["Segment<br>[5548, 5555, 0]"]
222[Solid2d] 222[Solid2d]
end end
subgraph path239 [Path] subgraph path239 [Path]
239["Path<br>[5717, 5746, 0]"] 239["Path<br>[5689, 5718, 0]"]
240["Segment<br>[5752, 5773, 0]"] 240["Segment<br>[5724, 5745, 0]"]
241["Segment<br>[5779, 5810, 0]"] 241["Segment<br>[5751, 5782, 0]"]
242["Segment<br>[5816, 5847, 0]"] 242["Segment<br>[5788, 5819, 0]"]
243["Segment<br>[5853, 5885, 0]"] 243["Segment<br>[5825, 5857, 0]"]
244["Segment<br>[5891, 5913, 0]"] 244["Segment<br>[5863, 5885, 0]"]
245["Segment<br>[5919, 5940, 0]"] 245["Segment<br>[5891, 5912, 0]"]
246["Segment<br>[5946, 5971, 0]"] 246["Segment<br>[5918, 5943, 0]"]
247["Segment<br>[5977, 6008, 0]"] 247["Segment<br>[5949, 5980, 0]"]
248["Segment<br>[6014, 6046, 0]"] 248["Segment<br>[5986, 6018, 0]"]
249["Segment<br>[6052, 6084, 0]"] 249["Segment<br>[6024, 6056, 0]"]
250["Segment<br>[6090, 6111, 0]"] 250["Segment<br>[6062, 6083, 0]"]
251["Segment<br>[6117, 6173, 0]"] 251["Segment<br>[6089, 6145, 0]"]
252["Segment<br>[6179, 6186, 0]"] 252["Segment<br>[6151, 6158, 0]"]
253[Solid2d] 253[Solid2d]
end end
1["Plane<br>[241, 260, 0]"] 1["Plane<br>[241, 260, 0]"]
9["Sweep Revolve<br>[676, 715, 0]"] 9["Sweep Revolve<br>[676, 708, 0]"]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
12[Wall] 12[Wall]
@ -129,8 +129,8 @@ flowchart LR
14["SweepEdge Adjacent"] 14["SweepEdge Adjacent"]
15["SweepEdge Adjacent"] 15["SweepEdge Adjacent"]
16["SweepEdge Adjacent"] 16["SweepEdge Adjacent"]
17["Plane<br>[964, 987, 0]"] 17["Plane<br>[957, 980, 0]"]
37["Sweep Extrusion<br>[2157, 2179, 0]"] 37["Sweep Extrusion<br>[2150, 2172, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]
@ -181,14 +181,14 @@ flowchart LR
85["SweepEdge Adjacent"] 85["SweepEdge Adjacent"]
86["SweepEdge Opposite"] 86["SweepEdge Opposite"]
87["SweepEdge Adjacent"] 87["SweepEdge Adjacent"]
88["Plane<br>[2383, 2412, 0]"] 88["Plane<br>[2376, 2405, 0]"]
92["Sweep Extrusion<br>[2514, 2548, 0]"] 92["Sweep Extrusion<br>[2507, 2541, 0]"]
93[Wall] 93[Wall]
94["Cap Start"] 94["Cap Start"]
95["Cap End"] 95["Cap End"]
96["SweepEdge Opposite"] 96["SweepEdge Opposite"]
97["SweepEdge Adjacent"] 97["SweepEdge Adjacent"]
104["Sweep Extrusion<br>[2967, 3002, 0]"] 104["Sweep Extrusion<br>[2960, 2995, 0]"]
105[Wall] 105[Wall]
106[Wall] 106[Wall]
107[Wall] 107[Wall]
@ -198,10 +198,10 @@ flowchart LR
111["SweepEdge Adjacent"] 111["SweepEdge Adjacent"]
112["SweepEdge Opposite"] 112["SweepEdge Opposite"]
113["SweepEdge Adjacent"] 113["SweepEdge Adjacent"]
114["Sweep Extrusion<br>[2967, 3002, 0]"] 114["Sweep Extrusion<br>[2960, 2995, 0]"]
115["Sweep Extrusion<br>[2967, 3002, 0]"] 115["Sweep Extrusion<br>[2960, 2995, 0]"]
116["Plane<br>[3033, 3052, 0]"] 116["Plane<br>[3026, 3045, 0]"]
126["Sweep Revolve<br>[3459, 3485, 0]"] 126["Sweep Revolve<br>[3452, 3471, 0]"]
127[Wall] 127[Wall]
128[Wall] 128[Wall]
129[Wall] 129[Wall]
@ -214,8 +214,8 @@ flowchart LR
136["SweepEdge Adjacent"] 136["SweepEdge Adjacent"]
137["SweepEdge Adjacent"] 137["SweepEdge Adjacent"]
138["SweepEdge Adjacent"] 138["SweepEdge Adjacent"]
139["Plane<br>[3519, 3538, 0]"] 139["Plane<br>[3505, 3524, 0]"]
150["Sweep Revolve<br>[3857, 3883, 0]"] 150["Sweep Revolve<br>[3843, 3862, 0]"]
151[Wall] 151[Wall]
152[Wall] 152[Wall]
153[Wall] 153[Wall]
@ -230,40 +230,40 @@ flowchart LR
162["SweepEdge Adjacent"] 162["SweepEdge Adjacent"]
163["SweepEdge Adjacent"] 163["SweepEdge Adjacent"]
164["SweepEdge Adjacent"] 164["SweepEdge Adjacent"]
165["Plane<br>[3927, 3959, 0]"] 165["Plane<br>[3906, 3938, 0]"]
172["Sweep Extrusion<br>[4113, 4147, 0]"] 172["Sweep Extrusion<br>[4092, 4126, 0]"]
173[Wall] 173[Wall]
174["Cap Start"] 174["Cap Start"]
175["Cap End"] 175["Cap End"]
176["SweepEdge Opposite"] 176["SweepEdge Opposite"]
177["SweepEdge Adjacent"] 177["SweepEdge Adjacent"]
181["Sweep Extrusion<br>[4422, 4457, 0]"] 181["Sweep Extrusion<br>[4401, 4436, 0]"]
182[Wall] 182[Wall]
183["SweepEdge Opposite"] 183["SweepEdge Opposite"]
184["SweepEdge Adjacent"] 184["SweepEdge Adjacent"]
185["Sweep Extrusion<br>[4422, 4457, 0]"] 185["Sweep Extrusion<br>[4401, 4436, 0]"]
186["Sweep Extrusion<br>[4422, 4457, 0]"] 186["Sweep Extrusion<br>[4401, 4436, 0]"]
187["Sweep Extrusion<br>[4422, 4457, 0]"] 187["Sweep Extrusion<br>[4401, 4436, 0]"]
188["Sweep Extrusion<br>[4422, 4457, 0]"] 188["Sweep Extrusion<br>[4401, 4436, 0]"]
189["Sweep Extrusion<br>[4422, 4457, 0]"] 189["Sweep Extrusion<br>[4401, 4436, 0]"]
190["Sweep Extrusion<br>[4422, 4457, 0]"] 190["Sweep Extrusion<br>[4401, 4436, 0]"]
191["Sweep Extrusion<br>[4422, 4457, 0]"] 191["Sweep Extrusion<br>[4401, 4436, 0]"]
195["Sweep Extrusion<br>[4732, 4767, 0]"] 195["Sweep Extrusion<br>[4711, 4746, 0]"]
196[Wall] 196[Wall]
197["SweepEdge Opposite"] 197["SweepEdge Opposite"]
198["SweepEdge Adjacent"] 198["SweepEdge Adjacent"]
199["Sweep Extrusion<br>[4732, 4767, 0]"] 199["Sweep Extrusion<br>[4711, 4746, 0]"]
200["Sweep Extrusion<br>[4732, 4767, 0]"] 200["Sweep Extrusion<br>[4711, 4746, 0]"]
201["Sweep Extrusion<br>[4732, 4767, 0]"] 201["Sweep Extrusion<br>[4711, 4746, 0]"]
202["Plane<br>[4812, 4831, 0]"] 202["Plane<br>[4791, 4810, 0]"]
206["Sweep Extrusion<br>[5006, 5047, 0]"] 206["Sweep Extrusion<br>[4985, 5026, 0]"]
207[Wall] 207[Wall]
208["Cap Start"] 208["Cap Start"]
209["Cap End"] 209["Cap End"]
210["SweepEdge Opposite"] 210["SweepEdge Opposite"]
211["SweepEdge Adjacent"] 211["SweepEdge Adjacent"]
212["Plane<br>[5134, 5153, 0]"] 212["Plane<br>[5113, 5132, 0]"]
223["Sweep Revolve<br>[5582, 5608, 0]"] 223["Sweep Revolve<br>[5561, 5580, 0]"]
224[Wall] 224[Wall]
225[Wall] 225[Wall]
226[Wall] 226[Wall]
@ -278,8 +278,8 @@ flowchart LR
235["SweepEdge Adjacent"] 235["SweepEdge Adjacent"]
236["SweepEdge Adjacent"] 236["SweepEdge Adjacent"]
237["SweepEdge Adjacent"] 237["SweepEdge Adjacent"]
238["Plane<br>[5663, 5710, 0]"] 238["Plane<br>[5635, 5682, 0]"]
254["Sweep Extrusion<br>[6200, 6245, 0]"] 254["Sweep Extrusion<br>[6172, 6217, 0]"]
255[Wall] 255[Wall]
256[Wall] 256[Wall]
257[Wall] 257[Wall]
@ -318,12 +318,12 @@ flowchart LR
290["SweepEdge Adjacent"] 290["SweepEdge Adjacent"]
291["SweepEdge Opposite"] 291["SweepEdge Opposite"]
292["SweepEdge Adjacent"] 292["SweepEdge Adjacent"]
293["StartSketchOnPlane<br>[2369, 2413, 0]"] 293["StartSketchOnPlane<br>[2362, 2406, 0]"]
294["StartSketchOnFace<br>[2562, 2594, 0]"] 294["StartSketchOnFace<br>[2555, 2587, 0]"]
295["StartSketchOnPlane<br>[3913, 3960, 0]"] 295["StartSketchOnPlane<br>[3892, 3939, 0]"]
296["StartSketchOnFace<br>[4198, 4230, 0]"] 296["StartSketchOnFace<br>[4177, 4209, 0]"]
297["StartSketchOnFace<br>[4508, 4540, 0]"] 297["StartSketchOnFace<br>[4487, 4519, 0]"]
298["StartSketchOnPlane<br>[5649, 5711, 0]"] 298["StartSketchOnPlane<br>[5621, 5683, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

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