From dcfcdc98ce63ba7c21dcb72d1d356ebec7d6eb6a Mon Sep 17 00:00:00 2001 From: Kevin Nadro Date: Tue, 25 Feb 2025 13:18:59 -0600 Subject: [PATCH 01/23] Feature: Show runtime errors within files that are being imported (#5500) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: dumping progress * chore: saving progress * fix: Got a working example of filenames piped from Rust to TS * fix: cleaning up debugging code * fix: TS type for filenames * fix: rust linter errors * fix: cargo fmt * fix: testing code, updating KCLError class for filenames * fix: auto fixes * feat: display badge in project folder if there is an error in another file * chore: skeleton ideas for badge notifications from errors in imported files * fix: more skeleton code to test some potential implementations * fix: addressing PR comments * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * fix: fixing the rust struct? * fix: cargo fmt * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * feat: skeleton workflow for showing runtime errors * chore: showBadge, adding more props * fix: new application state to reset errors from previous execution if parse fails first * fix: cleanup * fix: better UI * fix: adding comment for future * fix: revert for production * fix: removing unused comment * chore: swapping JS object to typed Map --------- Co-authored-by: github-actions[bot] --- src/components/FileMachineProvider.tsx | 2 ++ src/components/FileTree.tsx | 24 +++++++++++-- .../ModelingSidebar/ModelingPanes/index.tsx | 24 ++++++++++++- .../ModelingSidebar/ModelingSidebar.tsx | 32 ++++++++++++----- src/lang/KclSingleton.ts | 7 ++++ src/lang/errors.ts | 36 ++++++++++++++++++- src/wasm-lib/Cargo.toml | 2 +- 7 files changed, 113 insertions(+), 14 deletions(-) diff --git a/src/components/FileMachineProvider.tsx b/src/components/FileMachineProvider.tsx index bce232ff58..3357be28cb 100644 --- a/src/components/FileMachineProvider.tsx +++ b/src/components/FileMachineProvider.tsx @@ -130,6 +130,8 @@ export const FileMachineProvider = ({ navigateToFile: ({ context, event }) => { if (event.type !== 'xstate.done.actor.create-and-open-file') return if (event.output && 'name' in event.output) { + // TODO: Technically this is not the same as the FileTree Onclick even if they are in the same page + // What is "Open file?" commandBarActor.send({ type: 'Close' }) navigate( `..${PATHS.FILE}/${encodeURIComponent( diff --git a/src/components/FileTree.tsx b/src/components/FileTree.tsx index 7aa82254b7..25b9648298 100644 --- a/src/components/FileTree.tsx +++ b/src/components/FileTree.tsx @@ -23,6 +23,8 @@ import { FileEntry } from 'lib/project' import { useFileSystemWatcher } from 'hooks/useFileSystemWatcher' import { normalizeLineEndings } from 'lib/codeEditor' import { reportRejection } from 'lib/trap' +import { useKclContext } from 'lang/KclProvider' +import { kclErrorsByFilename, KCLError } from 'lang/errors' function getIndentationCSS(level: number) { return `calc(1rem * ${level + 1})` @@ -158,6 +160,7 @@ const FileTreeItem = ({ level = 0, treeSelection, setTreeSelection, + runtimeErrors, }: { parentDir: FileEntry | undefined project?: IndexLoaderData['project'] @@ -177,6 +180,7 @@ const FileTreeItem = ({ level?: number treeSelection: FileEntry | undefined setTreeSelection: Dispatch> + runtimeErrors: Map }) => { const { send: fileSend, context: fileContext } = useFileContext() const { onFileOpen, onFileClose } = useLspContext() @@ -186,6 +190,8 @@ const FileTreeItem = ({ const isFileOrDirHighlighted = treeSelection?.path === fileOrDir?.path const itemRef = useRef(null) + const hasRuntimeError = runtimeErrors.has(fileOrDir.path) + // Since every file or directory gets its own FileTreeItem, we can do this. // Because subtrees only render when they are opened, that means this // only listens when they open. Because this acts like a useEffect, when @@ -292,7 +298,7 @@ const FileTreeItem = ({ > {!isRenaming ? ( ) : ( ) )} @@ -660,6 +677,8 @@ export const FileTreeInner = ({ const loaderData = useRouteLoaderData(PATHS.FILE) as IndexLoaderData const { send: fileSend, context: fileContext } = useFileContext() const { send: modelingSend } = useModelingContext() + const { errors } = useKclContext() + const runtimeErrors = kclErrorsByFilename(errors) const [lastDirectoryClicked, setLastDirectoryClicked] = useState< FileEntry | undefined @@ -769,6 +788,7 @@ export const FileTreeInner = ({ key={fileOrDir.path} treeSelection={treeSelection} setTreeSelection={setTreeSelection} + runtimeErrors={runtimeErrors} /> ) )} diff --git a/src/components/ModelingSidebar/ModelingPanes/index.tsx b/src/components/ModelingSidebar/ModelingPanes/index.tsx index 26cf6e89a7..27aee30024 100644 --- a/src/components/ModelingSidebar/ModelingPanes/index.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/index.tsx @@ -18,6 +18,7 @@ import { editorManager } from 'lib/singletons' import { ContextFrom } from 'xstate' import { settingsMachine } from 'machines/settingsMachine' import { FeatureTreePane } from './FeatureTreePane' +import { kclErrorsByFilename } from 'lang/errors' export type SidebarType = | 'code' @@ -30,8 +31,10 @@ export type SidebarType = | 'variables' export interface BadgeInfo { - value: (props: PaneCallbackProps) => boolean | number + value: (props: PaneCallbackProps) => boolean | number | string onClick?: MouseEventHandler + className?: string + title?: string } /** @@ -152,6 +155,25 @@ export const sidebarPanes: SidebarPane[] = [ }, keybinding: 'Shift + F', hide: ({ platform }) => platform === 'web', + showBadge: { + value: (context) => { + // Only compute runtime errors! Compilation errors are not tracked here. + const errors = kclErrorsByFilename(context.kclContext.errors) + return errors.size > 0 ? 'x' : '' + }, + onClick: (e) => { + e.preventDefault() + // TODO: When we have generic file open + // If badge is pressed + // Open the first error in the array of errors + // Then scroll to error + // Do you automatically open the project files + // editorManager.scrollToFirstErrorDiagnosticIfExists() + }, + className: + 'absolute m-0 p-0 bottom-4 left-4 w-3 h-3 flex items-center justify-center text-[9px] font-semibold text-white bg-red-600 rounded-full border border-red-300 dark:border-red-800 z-50 hover:cursor-pointer hover:scale-[2] transition-transform duration-200', + title: 'Project files have runtime errors', + }, }, { id: 'variables', diff --git a/src/components/ModelingSidebar/ModelingSidebar.tsx b/src/components/ModelingSidebar/ModelingSidebar.tsx index b1ffe3f3e0..0a0c5e4c87 100644 --- a/src/components/ModelingSidebar/ModelingSidebar.tsx +++ b/src/components/ModelingSidebar/ModelingSidebar.tsx @@ -27,8 +27,10 @@ interface ModelingSidebarProps { } interface BadgeInfoComputed { - value: number | boolean + value: number | boolean | string onClick?: MouseEventHandler + className?: string + title?: string } function getPlatformString(): 'web' | 'desktop' { @@ -116,6 +118,8 @@ export function ModelingSidebar({ paneOpacity }: ModelingSidebarProps) { acc[pane.id] = { value: pane.showBadge.value(paneCallbackProps), onClick: pane.showBadge.onClick, + className: pane.showBadge.className, + title: pane.showBadge.title, } } return acc @@ -125,6 +129,7 @@ export function ModelingSidebar({ paneOpacity }: ModelingSidebarProps) { // Clear any hidden panes from the `openPanes` array useEffect(() => { const panesToReset: SidebarType[] = [] + sidebarPanes.forEach((pane) => { if ( pane.hide === true || @@ -339,22 +344,31 @@ function ModelingPaneButton({

1 ? 's' : '' - }`} + title={ + showBadge.title + ? showBadge.title + : `Click to view ${showBadge.value} notification${ + Number(showBadge.value) > 1 ? 's' : '' + }` + } >  has  - {typeof showBadge.value === 'number' ? ( + {typeof showBadge.value === 'number' || + typeof showBadge.value === 'string' ? ( {showBadge.value} ) : ( a )} - -  notification{Number(showBadge.value) > 1 ? 's' : ''} - + {typeof showBadge.value === 'number' && ( + +  notification{Number(showBadge.value) > 1 ? 's' : ''} + + )}

)} diff --git a/src/lang/KclSingleton.ts b/src/lang/KclSingleton.ts index 97042f360f..05ea0db984 100644 --- a/src/lang/KclSingleton.ts +++ b/src/lang/KclSingleton.ts @@ -293,6 +293,13 @@ export class KclManager { return null } + // GOTCHA: + // When we safeParse this is tied to execution because they clicked a new file to load + // Clear all previous errors and logs because they are old since they executed a new file + // If we decouple safeParse from execution we need to move this application logic. + this._kclErrorsCallBack([]) + this._logsCallBack([]) + this.addDiagnostics(complilationErrorsToDiagnostics(result.errors)) this.addDiagnostics(complilationErrorsToDiagnostics(result.warnings)) if (result.errors.length > 0) { diff --git a/src/lang/errors.ts b/src/lang/errors.ts index 64ec02d610..3748ce0aaa 100644 --- a/src/lang/errors.ts +++ b/src/lang/errors.ts @@ -1,4 +1,7 @@ -import { KclError as RustKclError } from '../wasm-lib/kcl/bindings/KclError' +import { + KclError, + KclError as RustKclError, +} from '../wasm-lib/kcl/bindings/KclError' import { CompilationError } from 'wasm-lib/kcl/bindings/CompilationError' import { Diagnostic as CodeMirrorDiagnostic } from '@codemirror/lint' import { posToOffset } from '@kittycad/codemirror-lsp-client' @@ -334,3 +337,34 @@ export function complilationErrorsToDiagnostics( } }) } + +// Create an array of KCL Errors with a new formatting to +// easily map SourceRange of an error to the filename to display in the +// side bar UI. This is to indicate an error in an imported file, it isn't +// the specific code mirror error interface. +export function kclErrorsByFilename( + errors: KCLError[] +): Map { + const fileNameToError: Map = new Map() + errors.forEach((error: KCLError) => { + const filenames = error.filenames + const sourceRange: SourceRange = error.sourceRange + const fileIndex = sourceRange[2] + const modulePath: ModulePath | undefined = filenames[fileIndex] + if (modulePath) { + let stdOrLocalPath = modulePath.value + if (stdOrLocalPath) { + // Build up an array of errors per file name + const value = fileNameToError.get(stdOrLocalPath) + if (!value) { + fileNameToError.set(stdOrLocalPath, [error]) + } else { + value.push(error) + fileNameToError.set(stdOrLocalPath, [error]) + } + } + } + }) + + return fileNameToError +} diff --git a/src/wasm-lib/Cargo.toml b/src/wasm-lib/Cargo.toml index 2a3d11cb6d..9131eb9aa5 100644 --- a/src/wasm-lib/Cargo.toml +++ b/src/wasm-lib/Cargo.toml @@ -106,4 +106,4 @@ path = "tests/modify/main.rs" # Local development only. Placeholder to speed up development cycle #[package.metadata.wasm-pack.profile.release] -#wasm-opt = false \ No newline at end of file +#wasm-opt = false From f6b06520eef5dac5df569f0de583c49543c70335 Mon Sep 17 00:00:00 2001 From: Frank Noirot Date: Tue, 25 Feb 2025 14:35:19 -0500 Subject: [PATCH 02/23] Bugfix: wait for settings loading before onboarding redirect check (#5470) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bugfix: wait for settings loading before onboarding redirect check If you refresh the app while viewing a file, the settingsActor could not have loaded the user settings before checking the onboardingStatus setting. This uses a subscription on the settingsActor to await the "init" state, after the user settings have loaded. * Adjust approach to not use routeLoaders * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- ...-via-command-bar-1-Google-Chrome-linux.png | Bin 55465 -> 37944 bytes src/Router.tsx | 12 +------ src/components/RouteProvider.tsx | 33 +++++++++++++++++- src/lib/routeLoaders.ts | 24 ------------- 4 files changed, 33 insertions(+), 36 deletions(-) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png index 2f31ab10bd2bbbaaf96b27cca068157386b1d4af..6b8666a2a3e456988c13c95d0cb35fb1d05fdce9 100644 GIT binary patch literal 37944 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 II;Vst00NlIQUCw| literal 55465 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 U_D@@GEe8pCy85}Sb4q9e0JuEeF8}}l diff --git a/src/Router.tsx b/src/Router.tsx index a341565ccf..240d06395d 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -24,12 +24,7 @@ import ModelingMachineProvider from 'components/ModelingMachineProvider' import FileMachineProvider from 'components/FileMachineProvider' import { MachineManagerProvider } from 'components/MachineManagerProvider' import { PATHS } from 'lib/paths' -import { - fileLoader, - homeLoader, - onboardingRedirectLoader, - telemetryLoader, -} from 'lib/routeLoaders' +import { fileLoader, homeLoader, telemetryLoader } from 'lib/routeLoaders' import LspProvider from 'components/LspProvider' import { KclContextProvider } from 'lang/KclProvider' import { ASK_TO_OPEN_QUERY_PARAM, BROWSER_PROJECT_NAME } from 'lib/constants' @@ -113,11 +108,6 @@ const router = createRouter([ { id: PATHS.FILE + 'SETTINGS', children: [ - { - loader: onboardingRedirectLoader, - index: true, - element: <>, - }, { path: makeUrlPathRelative(PATHS.SETTINGS), element: , diff --git a/src/components/RouteProvider.tsx b/src/components/RouteProvider.tsx index f306c57555..d20c357302 100644 --- a/src/components/RouteProvider.tsx +++ b/src/components/RouteProvider.tsx @@ -4,11 +4,12 @@ import { useLocation, useNavigate, useRouteLoaderData, + redirect, } from 'react-router-dom' import { PATHS } from 'lib/paths' import { markOnce } from 'lib/performance' import { useAuthNavigation } from 'hooks/useAuthNavigation' -import { useAuthState } from 'machines/appMachine' +import { useAuthState, useSettings } from 'machines/appMachine' import { IndexLoaderData } from 'lib/types' import { getAppSettingsFilePath } from 'lib/desktop' import { isDesktop } from 'lib/isDesktop' @@ -16,6 +17,9 @@ import { trap } from 'lib/trap' import { useFileSystemWatcher } from 'hooks/useFileSystemWatcher' import { loadAndValidateSettings } from 'lib/settings/settingsUtils' import { settingsActor } from 'machines/appMachine' +import makeUrlPathRelative from 'lib/makeUrlPathRelative' +import { OnboardingStatus } from 'wasm-lib/kcl/bindings/OnboardingStatus' +import { SnapshotFrom } from 'xstate' export const RouteProviderContext = createContext({}) @@ -29,6 +33,7 @@ export function RouteProvider({ children }: { children: ReactNode }) { const navigation = useNavigation() const navigate = useNavigate() const location = useLocation() + const settings = useSettings() const authState = useAuthState() useEffect(() => { @@ -43,6 +48,32 @@ export function RouteProvider({ children }: { children: ReactNode }) { markOnce('code/willLoadHome') } else if (isFile) { markOnce('code/willLoadFile') + + /** + * TODO: Move to XState. This block has been moved from routerLoaders + * and is borrowing the `isFile` logic from the rest of this + * telemetry-focused `useEffect`. Once `appMachine` knows about + * the current route and navigation, this can be moved into settingsMachine + * to fire as soon as the user settings have been read. + */ + const onboardingStatus: OnboardingStatus = + settings.app.onboardingStatus.current || '' + // '' is the initial state, 'completed' and 'dismissed' are the final states + const needsToOnboard = + onboardingStatus.length === 0 || + !(onboardingStatus === 'completed' || onboardingStatus === 'dismissed') + const shouldRedirectToOnboarding = isFile && needsToOnboard + + if ( + shouldRedirectToOnboarding && + settingsActor.getSnapshot().matches('idle') + ) { + navigate( + (first ? location.pathname : navigation.location?.pathname) + + PATHS.ONBOARDING.INDEX + + onboardingStatus.slice(1) + ) + } } setFirstState(false) }, [navigation]) diff --git a/src/lib/routeLoaders.ts b/src/lib/routeLoaders.ts index 9dd99ac5d3..3697d8f7c8 100644 --- a/src/lib/routeLoaders.ts +++ b/src/lib/routeLoaders.ts @@ -23,30 +23,6 @@ export const telemetryLoader: LoaderFunction = async ({ return null } -// Redirect users to the appropriate onboarding page if they haven't completed it -export const onboardingRedirectLoader: ActionFunction = async (args) => { - const settings = getSettings() - const onboardingStatus: OnboardingStatus = - settings.app.onboardingStatus.current || '' - const notEnRouteToOnboarding = !args.request.url.includes( - PATHS.ONBOARDING.INDEX - ) - // '' is the initial state, 'completed' and 'dismissed' are the final states - const hasValidOnboardingStatus = - onboardingStatus.length === 0 || - !(onboardingStatus === 'completed' || onboardingStatus === 'dismissed') - const shouldRedirectToOnboarding = - notEnRouteToOnboarding && hasValidOnboardingStatus - - if (shouldRedirectToOnboarding) { - return redirect( - makeUrlPathRelative(PATHS.ONBOARDING.INDEX) + onboardingStatus.slice(1) - ) - } - - return null -} - export const fileLoader: LoaderFunction = async ( routerData ): Promise => { From ded97eda614a3ad0fcc320ef84887f9df06981cf Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 25 Feb 2025 15:54:05 -0500 Subject: [PATCH 03/23] Fix kcl-samples URL and other minor things (#5508) * Fix kcl-samples URL * Delete debug files --- exp | 1 - got | 1 - package.json | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 exp delete mode 100644 got diff --git a/exp b/exp deleted file mode 100644 index c22583f9b3..0000000000 --- a/exp +++ /dev/null @@ -1 +0,0 @@ -sketch001=startSketchOn('XZ')|>startProfileAt([75.8,317.2],%)//[$startCapTag,$EndCapTag]|>angledLine([0,268.43],%,$rectangleSegmentA001)|>angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)|>angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)|>line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)|>close()extrude001=extrude(sketch001,length=100)|>chamfer(length=30,tags=[getOppositeEdge(seg01)],tag=$seg03)|>chamfer(length=30,tags=[seg01],tag=$seg04)|>chamfer(length=30,tags=[getNextAdjacentEdge(seg02)],tag=$seg05)|>chamfer(length=30,tags=[getNextAdjacentEdge(yo)],tag=$seg06)sketch004=startSketchOn(extrude001,seg05)profile003=startProfileAt([82.57,322.96],sketch004)|>angledLine([0,11.16],%,$rectangleSegmentA004)|>angledLine([segAng(rectangleSegmentA004)-90,103.07],%)|>angledLine([segAng(rectangleSegmentA004),-segLen(rectangleSegmentA004)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch003=startSketchOn(extrude001,seg04)profile002=startProfileAt([-209.64,255.28],sketch003)|>angledLine([0,11.56],%,$rectangleSegmentA003)|>angledLine([segAng(rectangleSegmentA003)-90,106.84],%)|>angledLine([segAng(rectangleSegmentA003),-segLen(rectangleSegmentA003)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch002=startSketchOn(extrude001,seg03)profile001=startProfileAt([205.96,254.59],sketch002)|>angledLine([0,11.39],%,$rectangleSegmentA002)|>angledLine([segAng(rectangleSegmentA002)-90,105.26],%)|>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close() \ No newline at end of file diff --git a/got b/got deleted file mode 100644 index 82032deda4..0000000000 --- a/got +++ /dev/null @@ -1 +0,0 @@ -sketch001=startSketchOn('XZ')|>startProfileAt([75.8,317.2],%)//[$startCapTag,$EndCapTag]|>angledLine([0,268.43],%,$rectangleSegmentA001)|>angledLine([segAng(rectangleSegmentA001)-90,217.26],%,$seg01)|>angledLine([segAng(rectangleSegmentA001),-segLen(rectangleSegmentA001)],%,$yo)|>line(endAbsolute=[profileStartX(%),profileStartY(%)],tag=$seg02)|>close()extrude001=extrude(sketch001,length=100)|>chamfer(length=30,tags=[getOppositeEdge(seg01)],tag=$seg03)|>chamfer(length=30,tags=[seg01],tag=$seg04)|>chamfer(length=30,tags=[getNextAdjacentEdge(seg02)],tag=$seg05)|>chamfer(length=30,tags=[getNextAdjacentEdge(yo)],tag=$seg06)sketch005=startSketchOn(extrude001,seg06)profile004=startProfileAt([-23.43,19.69],sketch005)|>angledLine([0,9.1],%,$rectangleSegmentA005)|>angledLine([segAng(rectangleSegmentA005)-90,84.07],%)|>angledLine([segAng(rectangleSegmentA005),-segLen(rectangleSegmentA005)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch004=startSketchOn(extrude001,seg05)profile003=startProfileAt([82.57,322.96],sketch004)|>angledLine([0,11.16],%,$rectangleSegmentA004)|>angledLine([segAng(rectangleSegmentA004)-90,103.07],%)|>angledLine([segAng(rectangleSegmentA004),-segLen(rectangleSegmentA004)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch003=startSketchOn(extrude001,seg04)profile002=startProfileAt([-209.64,255.28],sketch003)|>angledLine([0,11.56],%,$rectangleSegmentA003)|>angledLine([segAng(rectangleSegmentA003)-90,106.84],%)|>angledLine([segAng(rectangleSegmentA003),-segLen(rectangleSegmentA003)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close()sketch002=startSketchOn(extrude001,seg03)profile001=startProfileAt([205.96,254.59],sketch002)|>angledLine([0,11.39],%,$rectangleSegmentA002)|>angledLine([segAng(rectangleSegmentA002)-90,105.26],%)|>angledLine([segAng(rectangleSegmentA002),-segLen(rectangleSegmentA002)],%)|>line(endAbsolute=[profileStartX(%),profileStartY(%)])|>close() \ No newline at end of file diff --git a/package.json b/package.json index b456d3fc09..bd16916c66 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages", "fetch:wasm": "./scripts/get-latest-wasm-bundle.sh", "fetch:wasm:windows": "./scripts/get-latest-wasm-bundle.ps1", - "fetch:samples": "echo \"Fetching latest KCL samples...\" && curl -o public/kcl-samples-manifest-fallback.json https://raw.githubusercontent.com/KittyCAD/next/manifest.json", + "fetch:samples": "echo \"Fetching latest KCL samples...\" && curl -o public/kcl-samples-manifest-fallback.json https://raw.githubusercontent.com/KittyCAD/kcl-samples/next/manifest.json", "build:wasm-dev": "yarn wasm-prep && (cd src/wasm-lib && wasm-pack build --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt", "build:wasm:nocopy": "yarn wasm-prep && cd src/wasm-lib && wasm-pack build --release --target web --out-dir pkg && cargo test -p kcl-lib export_bindings", "build:wasm": "yarn build:wasm:nocopy && cp src/wasm-lib/pkg/wasm_lib_bg.wasm public && yarn fmt", From 18f4a1303c83a93a1cfd06581761ec3dc4badef4 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Wed, 26 Feb 2025 14:06:51 +1100 Subject: [PATCH 04/23] Multiple prompt-to-edit selection, plus direct editor selections (#5478) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add multiple selections and editor selections for promptToEdit * remove unused * re-enable prompt to edit tests * add test for manual code selection * at test for multi-selection * clean up * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * typo --------- Co-authored-by: github-actions[bot] --- e2e/playwright/fixtures/editorFixture.ts | 18 ++ e2e/playwright/prompt-to-edit.spec.ts | 154 +++++++++++++++++- ...ode-color-goober-1-Google-Chrome-linux.png | Bin 148918 -> 148932 bytes src/components/CommandBar/CommandBar.tsx | 4 +- .../CommandBar/CommandBarArgument.tsx | 9 + .../CommandBar/CommandBarHeader.tsx | 3 +- .../CommandBarSelectionMixedInput.tsx | 135 +++++++++++++++ .../modelingCommandConfig.ts | 6 +- src/lib/commandTypes.ts | 35 ++++ src/lib/createMachineCommand.ts | 10 ++ src/lib/promptToEdit.ts | 38 ++++- src/lib/selections.ts | 4 +- src/machines/commandBarMachine.ts | 3 +- 13 files changed, 409 insertions(+), 10 deletions(-) create mode 100644 src/components/CommandBar/CommandBarSelectionMixedInput.tsx diff --git a/e2e/playwright/fixtures/editorFixture.ts b/e2e/playwright/fixtures/editorFixture.ts index ecd768c8eb..b8c5e2d824 100644 --- a/e2e/playwright/fixtures/editorFixture.ts +++ b/e2e/playwright/fixtures/editorFixture.ts @@ -171,4 +171,22 @@ export class EditorFixture { { text, placeCursor } ) } + async selectText(text: string) { + // First make sure the code pane is open + const wasPaneOpen = await this.checkIfPaneIsOpen() + if (!wasPaneOpen) { + await this.openPane() + } + + // Use Playwright's built-in text selection on the code content + // it seems to only select whole divs, which works out to align with syntax highlighting + // for code mirror, so you can probably select "sketch002 = startSketchOn('XZ')" + // but less so for exactly "sketch002 = startS" + await this.codeContent.getByText(text).first().selectText() + + // Reset pane state if needed + if (!wasPaneOpen) { + await this.closePane() + } + } } diff --git a/e2e/playwright/prompt-to-edit.spec.ts b/e2e/playwright/prompt-to-edit.spec.ts index 23d6de648c..7950b2d172 100644 --- a/e2e/playwright/prompt-to-edit.spec.ts +++ b/e2e/playwright/prompt-to-edit.spec.ts @@ -36,7 +36,7 @@ extrude003 = extrude(sketch003, length = 20) ` test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { - test.fixme('Check the happy path, for basic changing color', () => { + test.describe('Check the happy path, for basic changing color', () => { const cases = [ { desc: 'User accepts change', @@ -70,7 +70,7 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { body1CapCoords.y ) const yellow: [number, number, number] = [179, 179, 131] - const green: [number, number, number] = [108, 152, 75] + const green: [number, number, number] = [128, 194, 88] const notGreen: [number, number, number] = [132, 132, 132] const body2NotGreen: [number, number, number] = [88, 88, 88] const submittingToast = page.getByText( @@ -109,7 +109,7 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { }) await test.step('verify initial change', async () => { - await scene.expectPixelColor(green, greenCheckCoords, 15) + await scene.expectPixelColor(green, greenCheckCoords, 20) await scene.expectPixelColor(body2NotGreen, body2WallCoords, 15) await editor.expectEditor.toContain('appearance(') }) @@ -142,7 +142,7 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { } }) - test(`bad edit prompt`, async ({ + test('bad edit prompt', async ({ context, homePage, cmdBar, @@ -195,4 +195,150 @@ test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { await expect(failToast).toBeVisible() }) }) + + test(`manual code selection rename`, async ({ + context, + homePage, + cmdBar, + editor, + page, + scene, + }) => { + const body1CapCoords = { x: 571, y: 351 } + + await context.addInitScript((file) => { + localStorage.setItem('persistCode', file) + }, file) + await homePage.goToModelingScene() + await scene.waitForExecutionDone() + + const submittingToast = page.getByText('Submitting to Text-to-CAD API...') + const successToast = page.getByText('Prompt to edit successful') + const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' }) + + await test.step('wait for scene to load and select code in editor', async () => { + // Find and select the text "sketch002" in the editor + await editor.selectText('sketch002') + + // Verify the selection was made + await editor.expectState({ + highlightedCode: '', + activeLines: ["sketch002 = startSketchOn('XZ')"], + diagnostics: [], + }) + }) + + await test.step('fire off edit prompt', async () => { + await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15) + await cmdBar.openCmdBar('promptToEdit') + await page + .getByTestId('cmd-bar-arg-value') + .fill('Please rename to mySketch') + await page.waitForTimeout(100) + await cmdBar.progressCmdBar() + await expect(submittingToast).toBeVisible() + await expect(submittingToast).not.toBeVisible({ + timeout: 2 * 60_000, + }) + await expect(successToast).toBeVisible() + }) + + await test.step('verify rename change and accept it', async () => { + await editor.expectEditor.toContain('mySketch = startSketchOn') + await editor.expectEditor.not.toContain('sketch002 = startSketchOn') + await editor.expectEditor.toContain( + 'extrude002 = extrude(mySketch, length = 50)' + ) + + await acceptBtn.click() + await expect(successToast).not.toBeVisible() + }) + }) + + test('multiple body selections', async ({ + context, + homePage, + cmdBar, + editor, + page, + scene, + }) => { + const body1CapCoords = { x: 571, y: 351 } + const body2WallCoords = { x: 620, y: 152 } + const [clickBody1Cap] = scene.makeMouseHelpers( + body1CapCoords.x, + body1CapCoords.y + ) + const [clickBody2Cap] = scene.makeMouseHelpers( + body2WallCoords.x, + body2WallCoords.y + ) + const grey: [number, number, number] = [132, 132, 132] + + await context.addInitScript((file) => { + localStorage.setItem('persistCode', file) + }, file) + await homePage.goToModelingScene() + await scene.waitForExecutionDone() + + const submittingToast = page.getByText('Submitting to Text-to-CAD API...') + const successToast = page.getByText('Prompt to edit successful') + const acceptBtn = page.getByRole('button', { name: 'checkmark Accept' }) + + await test.step('select multiple bodies and fire prompt', async () => { + // Initial color check + await scene.expectPixelColor(grey, body1CapCoords, 15) + + // Open command bar first (without selection) + await cmdBar.openCmdBar('promptToEdit') + + // Select first body + await page.waitForTimeout(100) + await clickBody1Cap() + + // Hold shift and select second body + await editor.expectState({ + highlightedCode: '', + activeLines: ['|>startProfileAt([-73.64,-42.89],%)'], + diagnostics: [], + }) + await page.keyboard.down('Shift') + await page.waitForTimeout(100) + await clickBody2Cap() + await editor.expectState({ + highlightedCode: + 'line(end=[121.13,56.63],tag=$seg02)extrude(profile001,length=200)', + activeLines: [ + '|>line(end=[121.13,56.63],tag=$seg02)', + '|>startProfileAt([-73.64,-42.89],%)', + ], + diagnostics: [], + }) + await page.keyboard.up('Shift') + await page.waitForTimeout(100) + await cmdBar.progressCmdBar() + + // Enter prompt and submit + await page + .getByTestId('cmd-bar-arg-value') + .fill('make these neon green please, use #39FF14') + await page.waitForTimeout(100) + await cmdBar.progressCmdBar() + + // Wait for API response + await expect(submittingToast).toBeVisible() + await expect(submittingToast).not.toBeVisible({ + timeout: 2 * 60_000, + }) + await expect(successToast).toBeVisible() + }) + + await test.step('verify code changed', async () => { + await editor.expectEditor.toContain('appearance(') + + // Accept changes + await acceptBtn.click() + await expect(successToast).not.toBeVisible() + }) + }) }) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png index 15105d98a93d9f6bb661d5fc690583b98b9069b9..51f2107b1cbf4b60cd9374a6a819ea79a85ae7be 100644 GIT binary patch delta 26475 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 wvo63I$K;$VaHY?fD`RF?nVb}|k delta 26419 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 G<^KbWqZ0N2 diff --git a/src/components/CommandBar/CommandBar.tsx b/src/components/CommandBar/CommandBar.tsx index 8523f3e3f1..93fd576d4b 100644 --- a/src/components/CommandBar/CommandBar.tsx +++ b/src/components/CommandBar/CommandBar.tsx @@ -17,7 +17,9 @@ export const CommandBar = () => { const { context: { selectedCommand, currentArgument, commands }, } = commandBarState - const isSelectionArgument = currentArgument?.inputType === 'selection' + const isSelectionArgument = + currentArgument?.inputType === 'selection' || + currentArgument?.inputType === 'selectionMixed' const WrapperComponent = isSelectionArgument ? Popover : Dialog // Close the command bar when navigating diff --git a/src/components/CommandBar/CommandBarArgument.tsx b/src/components/CommandBar/CommandBarArgument.tsx index 792c45f62e..2251ac629a 100644 --- a/src/components/CommandBar/CommandBarArgument.tsx +++ b/src/components/CommandBar/CommandBarArgument.tsx @@ -1,6 +1,7 @@ import CommandArgOptionInput from './CommandArgOptionInput' import CommandBarBasicInput from './CommandBarBasicInput' import CommandBarSelectionInput from './CommandBarSelectionInput' +import CommandBarSelectionMixedInput from './CommandBarSelectionMixedInput' import { CommandArgument } from 'lib/commandTypes' import CommandBarHeader from './CommandBarHeader' import CommandBarKclInput from './CommandBarKclInput' @@ -84,6 +85,14 @@ function ArgumentInput({ onSubmit={onSubmit} /> ) + case 'selectionMixed': + return ( + + ) case 'kcl': return ( diff --git a/src/components/CommandBar/CommandBarHeader.tsx b/src/components/CommandBar/CommandBarHeader.tsx index 0fbf018df9..1fe4ebb8a6 100644 --- a/src/components/CommandBar/CommandBarHeader.tsx +++ b/src/components/CommandBar/CommandBarHeader.tsx @@ -124,7 +124,8 @@ function CommandBarHeader({ children }: React.PropsWithChildren<{}>) { {argValue ? ( - arg.inputType === 'selection' ? ( + arg.inputType === 'selection' || + arg.inputType === 'selectionMixed' ? ( getSelectionTypeDisplayText(argValue as Selections) ) : arg.inputType === 'kcl' ? ( roundOff( diff --git a/src/components/CommandBar/CommandBarSelectionMixedInput.tsx b/src/components/CommandBar/CommandBarSelectionMixedInput.tsx new file mode 100644 index 0000000000..5c46a0d48a --- /dev/null +++ b/src/components/CommandBar/CommandBarSelectionMixedInput.tsx @@ -0,0 +1,135 @@ +import { useEffect, useMemo, useRef, useState } from 'react' +import { CommandArgument } from 'lib/commandTypes' +import { + Selections, + canSubmitSelectionArg, + getSelectionCountByType, + getSelectionTypeDisplayText, +} from 'lib/selections' +import { useSelector } from '@xstate/react' +import { commandBarActor, useCommandBarState } from 'machines/commandBarMachine' + +const selectionSelector = (snapshot: any) => snapshot?.context.selectionRanges + +export default function CommandBarSelectionMixedInput({ + arg, + stepBack, + onSubmit, +}: { + arg: CommandArgument & { inputType: 'selectionMixed'; name: string } + stepBack: () => void + onSubmit: (data: unknown) => void +}) { + const inputRef = useRef(null) + const commandBarState = useCommandBarState() + const [hasSubmitted, setHasSubmitted] = useState(false) + const [hasAutoSkipped, setHasAutoSkipped] = useState(false) + const selection: Selections = useSelector(arg.machineActor, selectionSelector) + + const selectionsByType = useMemo(() => { + return getSelectionCountByType(selection) + }, [selection]) + + const canSubmitSelection = useMemo(() => { + if (!selection) return false + const isNonZeroRange = selection.graphSelections.some((sel) => { + const range = sel.codeRef.range + return range[1] - range[0] !== 0 // Non-zero range is always valid + }) + if (isNonZeroRange) return true + return canSubmitSelectionArg(selectionsByType, arg) + }, [selectionsByType, selection]) + + useEffect(() => { + inputRef.current?.focus() + }, [selection, inputRef]) + + // Only auto-skip on initial mount if we have a valid selection + // different from the component CommandBarSelectionInput in the the dependency array + // is empty + useEffect(() => { + if (!hasAutoSkipped && canSubmitSelection && arg.skip) { + const argValue = commandBarState.context.argumentsToSubmit[arg.name] + if (argValue === undefined) { + handleSubmit() + setHasAutoSkipped(true) + } + } + }, []) + + function handleChange() { + inputRef.current?.focus() + } + + function handleSubmit(e?: React.FormEvent) { + e?.preventDefault() + + if (!canSubmitSelection) { + setHasSubmitted(true) + return + } + + onSubmit(selection) + } + + const isMixedSelection = arg.inputType === 'selectionMixed' + const allowNoSelection = isMixedSelection && arg.allowNoSelection + const showSceneSelection = + isMixedSelection && arg.selectionSource?.allowSceneSelection + + return ( +
+ +
+ ) +} diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 5b16b1d057..a9f0d54e3d 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -666,7 +666,7 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< icon: 'chat', args: { selection: { - inputType: 'selection', + inputType: 'selectionMixed', selectionTypes: [ 'solid2d', 'segment', @@ -678,6 +678,10 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< ], multiple: true, required: true, + selectionSource: { + allowSceneSelection: true, + allowCodeSelection: true, + }, skip: true, }, prompt: { diff --git a/src/lib/commandTypes.ts b/src/lib/commandTypes.ts index ce99e42d27..0bb8ee5795 100644 --- a/src/lib/commandTypes.ts +++ b/src/lib/commandTypes.ts @@ -16,6 +16,7 @@ const INPUT_TYPES = [ 'text', 'kcl', 'selection', + 'selectionMixed', 'boolean', ] as const export interface KclExpression { @@ -156,6 +157,23 @@ export type CommandArgumentConfig< context: CommandBarContext }) => Promise } + | { + inputType: 'selectionMixed' + selectionTypes: Artifact['type'][] + multiple: boolean + allowNoSelection?: boolean + validation?: ({ + data, + context, + }: { + data: any + context: CommandBarContext + }) => Promise + selectionSource?: { + allowSceneSelection?: boolean + allowCodeSelection?: boolean + } + } | { inputType: 'kcl' createVariableByDefault?: boolean @@ -252,6 +270,23 @@ export type CommandArgument< context: CommandBarContext }) => Promise } + | { + inputType: 'selectionMixed' + selectionTypes: Artifact['type'][] + multiple: boolean + allowNoSelection?: boolean + validation?: ({ + data, + context, + }: { + data: any + context: CommandBarContext + }) => Promise + selectionSource?: { + allowSceneSelection?: boolean + allowCodeSelection?: boolean + } + } | { inputType: 'kcl' createVariableByDefault?: boolean diff --git a/src/lib/createMachineCommand.ts b/src/lib/createMachineCommand.ts index 126f511643..c89cdd4488 100644 --- a/src/lib/createMachineCommand.ts +++ b/src/lib/createMachineCommand.ts @@ -187,6 +187,16 @@ export function buildCommandArgument< selectionTypes: arg.selectionTypes, validation: arg.validation, } satisfies CommandArgument & { inputType: 'selection' } + } else if (arg.inputType === 'selectionMixed') { + return { + inputType: arg.inputType, + ...baseCommandArgument, + multiple: arg.multiple, + selectionTypes: arg.selectionTypes, + validation: arg.validation, + allowNoSelection: arg.allowNoSelection, + selectionSource: arg.selectionSource, + } satisfies CommandArgument & { inputType: 'selectionMixed' } } else if (arg.inputType === 'kcl') { return { inputType: arg.inputType, diff --git a/src/lib/promptToEdit.ts b/src/lib/promptToEdit.ts index bb3eb025df..1578a428e9 100644 --- a/src/lib/promptToEdit.ts +++ b/src/lib/promptToEdit.ts @@ -43,15 +43,33 @@ export async function submitPromptToEditToQueue({ projectName, }: { prompt: string - selections: Selections + selections: Selections | null code: string projectName: string token?: string artifactGraph: ArtifactGraph }): Promise { + // If no selection, use whole file + if (selections === null) { + const body: Models['TextToCadIterationBody_type'] = { + original_source_code: code, + prompt, + source_ranges: [], // Empty ranges indicates whole file + project_name: + projectName !== '' && projectName !== 'browser' + ? projectName + : undefined, + kcl_version: kclManager.kclVersion, + } + return submitToApi(body, token) + } + + // Handle manual code selections and artifact selections differently const ranges: Models['TextToCadIterationBody_type']['source_ranges'] = selections.graphSelections.flatMap((selection) => { const artifact = selection.artifact + + // For artifact selections, add context const prompts: Models['TextToCadIterationBody_type']['source_ranges'] = [] if (artifact?.type === 'cap') { @@ -153,8 +171,17 @@ See later source ranges for more context. about the sweep`, } } } + if (!artifact) { + // manually selected code is more likely to not have an artifact + // an example might be highlighting the variable name only in a variable declaration + prompts.push({ + prompt: '', + range: convertAppRangeToApiRange(selection.codeRef.range, code), + }) + } return prompts }) + const body: Models['TextToCadIterationBody_type'] = { original_source_code: code, prompt, @@ -163,6 +190,15 @@ See later source ranges for more context. about the sweep`, projectName !== '' && projectName !== 'browser' ? projectName : undefined, kcl_version: kclManager.kclVersion, } + + return submitToApi(body, token) +} + +// Helper function to handle API submission +async function submitToApi( + body: Models['TextToCadIterationBody_type'], + token?: string +): Promise { const url = VITE_KC_API_BASE_URL + '/ml/text-to-cad/iteration' const data: Models['TextToCadIteration_type'] | Error = await crossPlatformFetch( diff --git a/src/lib/selections.ts b/src/lib/selections.ts index 4c9f94520c..308abdcc8a 100644 --- a/src/lib/selections.ts +++ b/src/lib/selections.ts @@ -481,7 +481,9 @@ export function getSelectionTypeDisplayText( export function canSubmitSelectionArg( selectionsByType: 'none' | Map, - argument: CommandArgument & { inputType: 'selection' } + argument: CommandArgument & { + inputType: 'selection' | 'selectionMixed' + } ) { return ( selectionsByType !== 'none' && diff --git a/src/machines/commandBarMachine.ts b/src/machines/commandBarMachine.ts index e2fe6089fe..95e91600b7 100644 --- a/src/machines/commandBarMachine.ts +++ b/src/machines/commandBarMachine.ts @@ -295,7 +295,8 @@ export const commandBarMachine = setup({ if ( context.currentArgument && context.selectedCommand && - argConfig?.inputType === 'selection' && + (argConfig?.inputType === 'selection' || + argConfig?.inputType === 'selectionMixed') && argConfig?.validation ) { argConfig From aac95e1e2e08916d9ddb602734ca1dcf6f851c84 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 25 Feb 2025 23:04:10 -0500 Subject: [PATCH 05/23] Fix to add revolve about edge to the artifact graph (#5511) --- ...ld-be-stable--YZ-1-Google-Chrome-linux.png | Bin 50361 -> 50365 bytes ...uld-be-stable-XY-1-Google-Chrome-linux.png | Bin 54733 -> 54735 bytes src/lang/std/artifactGraph.ts | 2 +- src/wasm-lib/kcl/src/execution/artifact.rs | 5 +- src/wasm-lib/kcl/src/simulation_tests.rs | 21 + .../revolve_about_edge/artifact_commands.snap | 571 ++++++++++++++++++ .../artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 34 ++ .../kcl/tests/revolve_about_edge/ast.snap | 376 ++++++++++++ .../kcl/tests/revolve_about_edge/input.kcl | 9 + .../kcl/tests/revolve_about_edge/ops.snap | 107 ++++ .../revolve_about_edge/program_memory.snap | 343 +++++++++++ .../revolve_about_edge/rendered_model.png | Bin 0 -> 95436 bytes 13 files changed, 1472 insertions(+), 2 deletions(-) create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/artifact_commands.snap create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap.md create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/ast.snap create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/input.kcl create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/ops.snap create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/program_memory.snap create mode 100644 src/wasm-lib/kcl/tests/revolve_about_edge/rendered_model.png diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png index 57aece587ca1bcd5d201f4969b25c048fbb9b5b0..ec3faefb4ed1b5ba04e8d7ed1000f7492802f77c 100644 GIT binary patch delta 29255 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Ǿ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 Vr>n4??D;8)&*YvzDUvmL`#;hj4mSV* delta 29252 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� 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 diff --git a/src/lang/std/artifactGraph.ts b/src/lang/std/artifactGraph.ts index 5f3fcd734a..a5caeaf5a6 100644 --- a/src/lang/std/artifactGraph.ts +++ b/src/lang/std/artifactGraph.ts @@ -79,7 +79,7 @@ interface SegmentArtifactRich extends BaseArtifact { interface SweepArtifactRich extends BaseArtifact { type: 'sweep' - subType: 'extrusion' | 'revolve' | 'loft' | 'sweep' + subType: 'extrusion' | 'revolve' | 'revolveAboutEdge' | 'loft' | 'sweep' path: PathArtifact surfaces: Array edges: Array diff --git a/src/wasm-lib/kcl/src/execution/artifact.rs b/src/wasm-lib/kcl/src/execution/artifact.rs index 18dcdc4143..51dce04e15 100644 --- a/src/wasm-lib/kcl/src/execution/artifact.rs +++ b/src/wasm-lib/kcl/src/execution/artifact.rs @@ -165,6 +165,7 @@ pub struct Sweep { pub enum SweepSubType { Extrusion, Revolve, + RevolveAboutEdge, Loft, Sweep, } @@ -751,10 +752,12 @@ fn artifacts_to_update( } ModelingCmd::Extrude(kcmc::Extrude { target, .. }) | ModelingCmd::Revolve(kcmc::Revolve { target, .. }) + | ModelingCmd::RevolveAboutEdge(kcmc::RevolveAboutEdge { target, .. }) | ModelingCmd::Sweep(kcmc::Sweep { target, .. }) => { let sub_type = match cmd { ModelingCmd::Extrude(_) => SweepSubType::Extrusion, ModelingCmd::Revolve(_) => SweepSubType::Revolve, + ModelingCmd::RevolveAboutEdge(_) => SweepSubType::RevolveAboutEdge, ModelingCmd::Sweep(_) => SweepSubType::Sweep, _ => unreachable!(), }; @@ -885,7 +888,7 @@ fn artifacts_to_update( let path_sweep_id = path.sweep_id.ok_or_else(|| { KclError::Internal(KclErrorDetails { message:format!( - "Expected a sweep ID on the path when processing Solid3dGetExtrusionFaceInfo command, but we have none: {id:?}, {path:?}" + "Expected a sweep ID on the path when processing last path's Solid3dGetExtrusionFaceInfo command, but we have none: {id:?}, {path:?}" ), source_ranges: vec![range], }) diff --git a/src/wasm-lib/kcl/src/simulation_tests.rs b/src/wasm-lib/kcl/src/simulation_tests.rs index 4619e5e031..55f2fdaa20 100644 --- a/src/wasm-lib/kcl/src/simulation_tests.rs +++ b/src/wasm-lib/kcl/src/simulation_tests.rs @@ -1018,6 +1018,27 @@ mod sketch_on_face { super::execute(TEST_NAME, true).await } } +mod revolve_about_edge { + const TEST_NAME: &str = "revolve_about_edge"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} mod poop_chute { const TEST_NAME: &str = "poop_chute"; diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_commands.snap b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_commands.snap new file mode 100644 index 0000000000..89e5552163 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_commands.snap @@ -0,0 +1,571 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands revolve_about_edge.kcl +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 31, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 65, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 65, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 65, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -25.0, + "y": 25.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71, + 107, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -50.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 120, + 139, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 145, + 190, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 145, + 190, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 145, + 190, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -40.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 145, + 190, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -50.0, + "y": 0.0 + }, + "radius": 10.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 145, + 190, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 196, + 270, + 0 + ], + "command": { + "type": "revolve_about_edge", + "target": "[uuid]", + "edge_id": "[uuid]", + "angle": { + "unit": "degrees", + "value": 90.0 + }, + "tolerance": 0.0000001 + } + }, + { + "cmdId": "[uuid]", + "range": [ + 196, + 270, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 196, + 270, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 196, + 270, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 196, + 270, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap new file mode 100644 index 0000000000..eae7867bd4 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact graph flowchart revolve_about_edge.kcl +extension: md +snapshot_kind: binary +--- diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap.md b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap.md new file mode 100644 index 0000000000..f4a58e3729 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/artifact_graph_flowchart.snap.md @@ -0,0 +1,34 @@ +```mermaid +flowchart LR + subgraph path2 [Path] + 2["Path
[37, 65, 0]"] + 3["Segment
[71, 107, 0]"] + end + subgraph path5 [Path] + 5["Path
[145, 190, 0]"] + 6["Segment
[145, 190, 0]"] + 7[Solid2d] + end + 1["Plane
[12, 31, 0]"] + 4["Plane
[120, 139, 0]"] + 8["Sweep RevolveAboutEdge
[196, 270, 0]"] + 9[Wall] + 10["Cap Start"] + 11["Cap End"] + 12["SweepEdge Opposite"] + 13["SweepEdge Adjacent"] + 1 --- 2 + 2 --- 3 + 4 --- 5 + 5 --- 6 + 5 ---- 8 + 5 --- 7 + 6 --- 9 + 6 --- 12 + 6 --- 13 + 8 --- 9 + 8 --- 10 + 8 --- 11 + 8 --- 12 + 8 --- 13 +``` diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/ast.snap b/src/wasm-lib/kcl/tests/revolve_about_edge/ast.snap new file mode 100644 index 0000000000..2a8c7ceca7 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/ast.snap @@ -0,0 +1,376 @@ +--- +source: kcl/src/simulation_tests.rs +description: Result of parsing revolve_about_edge.kcl +--- +{ + "Ok": { + "body": [ + { + "declaration": { + "end": 107, + "id": { + "end": 9, + "name": "sketch001", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "end": 30, + "raw": "'XY'", + "start": 26, + "type": "Literal", + "type": "Literal", + "value": "XY" + } + ], + "callee": { + "end": 25, + "name": "startSketchOn", + "start": 12, + "type": "Identifier" + }, + "end": 31, + "start": 12, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "elements": [ + { + "argument": { + "end": 56, + "raw": "25", + "start": 54, + "type": "Literal", + "type": "Literal", + "value": { + "value": 25.0, + "suffix": "None" + } + }, + "end": 56, + "operator": "-", + "start": 53, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "end": 60, + "raw": "25", + "start": 58, + "type": "Literal", + "type": "Literal", + "value": { + "value": 25.0, + "suffix": "None" + } + } + ], + "end": 61, + "start": 52, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + { + "end": 64, + "start": 63, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + ], + "callee": { + "end": 51, + "name": "startProfileAt", + "start": 37, + "type": "Identifier" + }, + "end": 65, + "start": 37, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "argument": { + "end": 80, + "raw": "50", + "start": 78, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + }, + "end": 80, + "operator": "-", + "start": 77, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "end": 83, + "start": 82, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + }, + { + "end": 106, + "start": 85, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + } + ], + "callee": { + "end": 76, + "name": "yLine", + "start": 71, + "type": "Identifier" + }, + "end": 107, + "start": 71, + "type": "CallExpression", + "type": "CallExpression" + } + ], + "end": 107, + "start": 12, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 107, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 270, + "id": { + "end": 117, + "name": "sketch002", + "start": 108, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "end": 138, + "raw": "'XY'", + "start": 134, + "type": "Literal", + "type": "Literal", + "value": "XY" + } + ], + "callee": { + "end": 133, + "name": "startSketchOn", + "start": 120, + "type": "Identifier" + }, + "end": 139, + "start": 120, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "end": 186, + "properties": [ + { + "end": 171, + "key": { + "end": 160, + "name": "center", + "start": 154, + "type": "Identifier" + }, + "start": 154, + "type": "ObjectProperty", + "value": { + "elements": [ + { + "argument": { + "end": 167, + "raw": "50", + "start": 165, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + }, + "end": 167, + "operator": "-", + "start": 164, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "end": 170, + "raw": "0", + "start": 169, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 171, + "start": 163, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "end": 184, + "key": { + "end": 179, + "name": "radius", + "start": 173, + "type": "Identifier" + }, + "start": 173, + "type": "ObjectProperty", + "value": { + "end": 184, + "raw": "10", + "start": 182, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + } + } + ], + "start": 152, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + { + "end": 189, + "start": 188, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + ], + "callee": { + "end": 151, + "name": "circle", + "start": 145, + "type": "Identifier" + }, + "end": 190, + "start": 145, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "end": 266, + "properties": [ + { + "end": 223, + "key": { + "end": 218, + "name": "angle", + "start": 213, + "type": "Identifier" + }, + "start": 213, + "type": "ObjectProperty", + "value": { + "end": 223, + "raw": "90", + "start": 221, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + } + }, + { + "end": 259, + "key": { + "end": 236, + "name": "axis", + "start": 232, + "type": "Identifier" + }, + "start": 232, + "type": "ObjectProperty", + "value": { + "end": 259, + "name": "rectangleSegmentB001", + "start": 239, + "type": "Identifier", + "type": "Identifier" + } + } + ], + "start": 204, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + { + "end": 269, + "start": 268, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + ], + "callee": { + "end": 203, + "name": "revolve", + "start": 196, + "type": "Identifier" + }, + "end": 270, + "start": 196, + "type": "CallExpression", + "type": "CallExpression" + } + ], + "end": 270, + "start": 120, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 108, + "type": "VariableDeclarator" + }, + "end": 270, + "kind": "const", + "start": 108, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "end": 271, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/input.kcl b/src/wasm-lib/kcl/tests/revolve_about_edge/input.kcl new file mode 100644 index 0000000000..e2123e4a49 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/input.kcl @@ -0,0 +1,9 @@ +sketch001 = startSketchOn('XY') + |> startProfileAt([-25, 25], %) + |> yLine(-50, %, $rectangleSegmentB001) +sketch002 = startSketchOn('XY') + |> circle({ center = [-50, 0], radius = 10 }, %) + |> revolve({ + angle = 90, + axis = rectangleSegmentB001 + }, %) diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/ops.snap b/src/wasm-lib/kcl/tests/revolve_about_edge/ops.snap new file mode 100644 index 0000000000..b84e3be23e --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/ops.snap @@ -0,0 +1,107 @@ +--- +source: kcl/src/simulation_tests.rs +description: Operations executed revolve_about_edge.kcl +--- +[ + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XY" + }, + "sourceRange": [ + 26, + 30, + 0 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 12, + 31, + 0 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XY" + }, + "sourceRange": [ + 134, + 138, + 0 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 120, + 139, + 0 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "data": { + "value": { + "type": "Object", + "value": { + "angle": { + "type": "Number", + "value": 90.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "axis": { + "type": "TagIdentifier", + "value": "rectangleSegmentB001", + "artifact_id": "[uuid]" + } + } + }, + "sourceRange": [ + 204, + 266, + 0 + ] + }, + "sketch": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [ + 268, + 269, + 0 + ] + } + }, + "name": "revolve", + "sourceRange": [ + 196, + 270, + 0 + ], + "type": "StdLibCall", + "unlabeledArg": null + } +] diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/program_memory.snap b/src/wasm-lib/kcl/tests/revolve_about_edge/program_memory.snap new file mode 100644 index 0000000000..ce01c834a1 --- /dev/null +++ b/src/wasm-lib/kcl/tests/revolve_about_edge/program_memory.snap @@ -0,0 +1,343 @@ +--- +source: kcl/src/simulation_tests.rs +description: Variables in memory after executing revolve_about_edge.kcl +--- +{ + "rectangleSegmentB001": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "rectangleSegmentB001", + "info": { + "type": "TagEngineInfo", + "id": "[uuid]", + "sketch": "[uuid]", + "path": { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 71, + 107, + 0 + ] + }, + "from": [ + -25.0, + 25.0 + ], + "tag": { + "end": 106, + "start": 85, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "to": [ + -25.0, + -25.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + "surface": null + }, + "__meta": [ + { + "sourceRange": [ + 85, + 106, + 0 + ] + } + ] + }, + "sketch001": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 71, + 107, + 0 + ] + }, + "from": [ + -25.0, + 25.0 + ], + "tag": { + "end": 106, + "start": 85, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "to": [ + -25.0, + -25.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "units": { + "type": "Mm" + }, + "__meta": [] + }, + "start": { + "from": [ + -25.0, + 25.0 + ], + "to": [ + -25.0, + 25.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 37, + 65, + 0 + ] + } + }, + "tags": { + "rectangleSegmentB001": { + "type": "TagIdentifier", + "value": "rectangleSegmentB001", + "info": { + "type": "TagEngineInfo", + "id": "[uuid]", + "sketch": "[uuid]", + "path": { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 71, + 107, + 0 + ] + }, + "from": [ + -25.0, + 25.0 + ], + "tag": { + "end": 106, + "start": 85, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "to": [ + -25.0, + -25.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + "surface": null + }, + "__meta": [ + { + "sourceRange": [ + 85, + 106, + 0 + ] + } + ] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + }, + "__meta": [ + { + "sourceRange": [ + 37, + 65, + 0 + ] + } + ] + } + }, + "sketch002": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [ + 145, + 190, + 0 + ], + "tag": null, + "type": "extrudeArc" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 145, + 190, + 0 + ] + }, + "ccw": true, + "center": [ + -50.0, + 0.0 + ], + "from": [ + -40.0, + 0.0 + ], + "radius": 10.0, + "tag": null, + "to": [ + -40.0, + 0.0 + ], + "type": "Circle", + "units": { + "type": "Mm" + } + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "units": { + "type": "Mm" + }, + "__meta": [] + }, + "start": { + "from": [ + -40.0, + 0.0 + ], + "to": [ + -40.0, + 0.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 145, + 190, + 0 + ] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + }, + "__meta": [ + { + "sourceRange": [ + 145, + 190, + 0 + ] + } + ] + }, + "height": 0.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Mm" + }, + "__meta": [ + { + "sourceRange": [ + 145, + 190, + 0 + ] + } + ] + } + } +} diff --git a/src/wasm-lib/kcl/tests/revolve_about_edge/rendered_model.png b/src/wasm-lib/kcl/tests/revolve_about_edge/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..7df45c7edbacfb52619fb174524838fb52c16d4a GIT binary patch literal 95436 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

aj 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 SQ5yblz-@Q+Uv}&8C;l&lCxK)D literal 0 HcmV?d00001 From 5ef5c6280c1dae8ac56c74596226f8ffbcc94883 Mon Sep 17 00:00:00 2001 From: Kevin Nadro Date: Tue, 25 Feb 2025 22:15:01 -0600 Subject: [PATCH 06/23] Fix: revert the red color for runtime error back to the hue shift color (#5509) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: don't use red for runtime error, use hue shift like the original error icon * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * fix: decrease font size for better layout * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- src/components/FileTree.tsx | 2 +- src/components/ModelingSidebar/ModelingPanes/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/FileTree.tsx b/src/components/FileTree.tsx index 25b9648298..87ddd4d39b 100644 --- a/src/components/FileTree.tsx +++ b/src/components/FileTree.tsx @@ -309,7 +309,7 @@ const FileTreeItem = ({ {hasRuntimeError && (

diff --git a/src/components/ModelingSidebar/ModelingPanes/index.tsx b/src/components/ModelingSidebar/ModelingPanes/index.tsx index 27aee30024..92ba51cd60 100644 --- a/src/components/ModelingSidebar/ModelingPanes/index.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/index.tsx @@ -171,7 +171,7 @@ export const sidebarPanes: SidebarPane[] = [ // editorManager.scrollToFirstErrorDiagnosticIfExists() }, className: - 'absolute m-0 p-0 bottom-4 left-4 w-3 h-3 flex items-center justify-center text-[9px] font-semibold text-white bg-red-600 rounded-full border border-red-300 dark:border-red-800 z-50 hover:cursor-pointer hover:scale-[2] transition-transform duration-200', + 'absolute m-0 p-0 bottom-4 left-4 w-3 h-3 flex items-center justify-center text-[9px] font-semibold text-white bg-primary hue-rotate-90 rounded-full border border-chalkboard-10 dark:border-chalkboard-80 z-50 hover:cursor-pointer hover:scale-[2] transition-transform duration-200', title: 'Project files have runtime errors', }, }, From 1f217ef50b55f186a370f20189a8616ef9d05798 Mon Sep 17 00:00:00 2001 From: max Date: Wed, 26 Feb 2025 14:28:41 +0100 Subject: [PATCH 07/23] Fix Second-Body Extrude Selection (#5456) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * getSweepArtifactFromSelection * update getPathToExtrudeForSegmentSelection * update shell * add tests and update selection * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * add support for wall and cap * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * fmt * add CallExpressionKw * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- src/lang/modifyAst/addEdgeTreatment.test.ts | 76 +++++++++++++++++++-- src/lang/modifyAst/addEdgeTreatment.ts | 36 ++-------- src/lang/modifyAst/addShell.ts | 16 +---- src/lang/std/artifactGraph.ts | 42 ++++++++++++ src/machines/modelingMachine.ts | 7 -- 5 files changed, 119 insertions(+), 58 deletions(-) diff --git a/src/lang/modifyAst/addEdgeTreatment.test.ts b/src/lang/modifyAst/addEdgeTreatment.test.ts index ea41324fc3..1651d86bc2 100644 --- a/src/lang/modifyAst/addEdgeTreatment.test.ts +++ b/src/lang/modifyAst/addEdgeTreatment.test.ts @@ -116,7 +116,11 @@ const runGetPathToExtrudeForSegmentSelectionTest = async ( } if (!extrudeInSketchPipe) { const init = expectedExtrudeNode.init - if (init.type !== 'CallExpression' && init.type !== 'PipeExpression') { + if ( + init.type !== 'CallExpression' && + init.type !== 'CallExpressionKw' && + init.type !== 'PipeExpression' + ) { return new Error( 'Expected extrude expression is not a CallExpression or PipeExpression' ) @@ -129,25 +133,33 @@ const runGetPathToExtrudeForSegmentSelectionTest = async ( // ast const ast = assertParse(code) - // selection + // range const segmentRange = topLevelRange( code.indexOf(selectedSegmentSnippet), code.indexOf(selectedSegmentSnippet) + selectedSegmentSnippet.length ) - const selection: Selection = { - codeRef: codeRefFromRange(segmentRange, ast), - } // executeAst and artifactGraph await kclManager.executeAst({ ast }) const artifactGraph = engineCommandManager.artifactGraph + // find artifact + const maybeArtifact = [...artifactGraph].find(([, artifact]) => { + if (!('codeRef' in artifact && artifact.codeRef)) return false + return isOverlap(artifact.codeRef.range, segmentRange) + }) + + // build selection + const selection: Selection = { + codeRef: codeRefFromRange(segmentRange, ast), + artifact: maybeArtifact ? maybeArtifact[1] : undefined, + } + // get extrude expression const pathResult = getPathToExtrudeForSegmentSelection( ast, selection, - artifactGraph, - dependencies + artifactGraph ) if (err(pathResult)) return pathResult const { pathToExtrudeNode } = pathResult @@ -234,6 +246,56 @@ extrude003 = extrude(sketch003, length = -15)` expectedExtrudeSnippet ) }) + it('should return the correct paths for a (piped) extrude based on the other body (face)', async () => { + const code = `sketch001 = startSketchOn('XY') + |> startProfileAt([-25, -25], %) + |> yLine(50, %) + |> xLine(50, %) + |> yLine(-50, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = 50) +sketch002 = startSketchOn(sketch001, 'END') + |> startProfileAt([-15, -15], %) + |> yLine(30, %) + |> xLine(30, %) + |> yLine(-30, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = 30)` + const selectedSegmentSnippet = `xLine(30, %)` + const expectedExtrudeSnippet = `extrude(length = 30)` + await runGetPathToExtrudeForSegmentSelectionTest( + code, + selectedSegmentSnippet, + expectedExtrudeSnippet + ) + }) + it('should return the correct paths for a (non-piped) extrude based on the other body (face)', async () => { + const code = `sketch001 = startSketchOn('XY') + |> startProfileAt([-25, -25], %) + |> yLine(50, %) + |> xLine(50, %) + |> yLine(-50, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude001 = extrude(sketch001, length = 50) +sketch002 = startSketchOn(extrude001, 'END') + |> startProfileAt([-15, -15], %) + |> yLine(30, %) + |> xLine(30, %) + |> yLine(-30, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude002 = extrude(sketch002, length = 30)` + const selectedSegmentSnippet = `xLine(30, %)` + const expectedExtrudeSnippet = `extrude002 = extrude(sketch002, length = 30)` + await runGetPathToExtrudeForSegmentSelectionTest( + code, + selectedSegmentSnippet, + expectedExtrudeSnippet + ) + }) it('should not return any path for missing extrusion', async () => { const code = `sketch001 = startSketchOn('XY') |> startProfileAt([-30, 30], %) diff --git a/src/lang/modifyAst/addEdgeTreatment.ts b/src/lang/modifyAst/addEdgeTreatment.ts index ed5bcaca41..ab1c0cc9b4 100644 --- a/src/lang/modifyAst/addEdgeTreatment.ts +++ b/src/lang/modifyAst/addEdgeTreatment.ts @@ -10,7 +10,6 @@ import { Program, VariableDeclaration, VariableDeclarator, - sketchFromKclValue, } from '../wasm' import { createCallExpressionStdLib, @@ -35,11 +34,11 @@ import { sketchLineHelperMap, sketchLineHelperMapKw, } from '../std/sketch' -import { err, trap } from 'lib/trap' +import { err } from 'lib/trap' import { Selection, Selections } from 'lib/selections' import { KclCommandValue } from 'lib/commandTypes' import { isArray } from 'lib/utils' -import { Artifact, getSweepFromSuspectedPath } from 'lang/std/artifactGraph' +import { Artifact, getSweepArtifactFromSelection } from 'lang/std/artifactGraph' import { Node } from 'wasm-lib/kcl/bindings/Node' import { findKwArg } from 'lang/util' import { KclManager } from 'lang/KclSingleton' @@ -121,8 +120,7 @@ export function modifyAstWithEdgeTreatmentAndTag( const result = getPathToExtrudeForSegmentSelection( clonedAstForGetExtrude, selection, - artifactGraph, - dependencies + artifactGraph ) if (err(result)) return result const { pathToSegmentNode, pathToExtrudeNode } = result @@ -279,39 +277,19 @@ function insertParametersIntoAst( export function getPathToExtrudeForSegmentSelection( ast: Program, selection: Selection, - artifactGraph: ArtifactGraph, - dependencies: { - kclManager: KclManager - engineCommandManager: EngineCommandManager - editorManager: EditorManager - codeManager: CodeManager - } + artifactGraph: ArtifactGraph ): { pathToSegmentNode: PathToNode; pathToExtrudeNode: PathToNode } | Error { const pathToSegmentNode = getNodePathFromSourceRange( ast, selection.codeRef?.range ) - const varDecNode = getNodeFromPath( - ast, - pathToSegmentNode, - 'VariableDeclaration' - ) - if (err(varDecNode)) return varDecNode - const sketchVar = varDecNode.node.declaration.id.name - - const sketch = sketchFromKclValue( - dependencies.kclManager.variables[sketchVar], - sketchVar - ) - if (trap(sketch)) return sketch - - const extrusion = getSweepFromSuspectedPath(sketch.id, artifactGraph) - if (err(extrusion)) return extrusion + const sweepArtifact = getSweepArtifactFromSelection(selection, artifactGraph) + if (err(sweepArtifact)) return sweepArtifact const pathToExtrudeNode = getNodePathFromSourceRange( ast, - extrusion.codeRef.range + sweepArtifact.codeRef.range ) if (err(pathToExtrudeNode)) return pathToExtrudeNode diff --git a/src/lang/modifyAst/addShell.ts b/src/lang/modifyAst/addShell.ts index 0a87f82cfa..54cab93634 100644 --- a/src/lang/modifyAst/addShell.ts +++ b/src/lang/modifyAst/addShell.ts @@ -13,36 +13,23 @@ import { createLiteral, createIdentifier, findUniqueName, - createCallExpressionStdLib, - createObjectExpression, createArrayExpression, createVariableDeclaration, createCallExpressionStdLibKw, createLabeledArg, } from 'lang/modifyAst' import { KCL_DEFAULT_CONSTANT_PREFIXES } from 'lib/constants' -import { KclManager } from 'lang/KclSingleton' -import { EngineCommandManager } from 'lang/std/engineConnection' -import EditorManager from 'editor/manager' -import CodeManager from 'lang/codeManager' export function addShell({ node, selection, artifactGraph, thickness, - dependencies, }: { node: Node selection: Selections artifactGraph: ArtifactGraph thickness: Expr - dependencies: { - kclManager: KclManager - engineCommandManager: EngineCommandManager - editorManager: EditorManager - codeManager: CodeManager - } }): Error | { modifiedAst: Node; pathToNode: PathToNode } { const modifiedAst = structuredClone(node) @@ -55,8 +42,7 @@ export function addShell({ const extrudeLookupResult = getPathToExtrudeForSegmentSelection( clonedAstForGetExtrude, graphSelection, - artifactGraph, - dependencies + artifactGraph ) if (err(extrudeLookupResult)) { return new Error("Couldn't find extrude") diff --git a/src/lang/std/artifactGraph.ts b/src/lang/std/artifactGraph.ts index a5caeaf5a6..f479ff64c4 100644 --- a/src/lang/std/artifactGraph.ts +++ b/src/lang/std/artifactGraph.ts @@ -18,6 +18,7 @@ import { } from 'lang/wasm' import { Models } from '@kittycad/lib' import { getNodePathFromSourceRange } from 'lang/queryAstNodePathUtils' +import { Selection } from 'lib/selections' import { err } from 'lib/trap' import { Cap, Plane, Wall } from 'wasm-lib/kcl/bindings/Artifact' import { CapSubType } from 'wasm-lib/kcl/bindings/Artifact' @@ -455,6 +456,47 @@ export function getSweepFromSuspectedPath( ) } +export function getSweepArtifactFromSelection( + selection: Selection, + artifactGraph: ArtifactGraph +): SweepArtifact | Error { + let sweepArtifact: Artifact | null = null + if (selection.artifact?.type === 'sweepEdge') { + const _artifact = getArtifactOfTypes( + { key: selection.artifact.sweepId, types: ['sweep'] }, + artifactGraph + ) + if (err(_artifact)) return _artifact + sweepArtifact = _artifact + } else if (selection.artifact?.type === 'segment') { + const _pathArtifact = getArtifactOfTypes( + { key: selection.artifact.pathId, types: ['path'] }, + artifactGraph + ) + if (err(_pathArtifact)) return _pathArtifact + if (!_pathArtifact.sweepId) return new Error('Path does not have a sweepId') + const _artifact = getArtifactOfTypes( + { key: _pathArtifact.sweepId, types: ['sweep'] }, + artifactGraph + ) + if (err(_artifact)) return _artifact + sweepArtifact = _artifact + } else if ( + selection.artifact?.type === 'cap' || + selection.artifact?.type === 'wall' + ) { + const _artifact = getArtifactOfTypes( + { key: selection.artifact.sweepId, types: ['sweep'] }, + artifactGraph + ) + if (err(_artifact)) return _artifact + sweepArtifact = _artifact + } + if (!sweepArtifact) return new Error('No sweep artifact found') + + return sweepArtifact +} + export function getCodeRefsByArtifactId( id: string, artifactGraph: ArtifactGraph diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index cf6a6b3b59..92dcf64aa4 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -1995,12 +1995,6 @@ export const modelingMachine = setup({ // Extract inputs const ast = kclManager.ast const { selection, thickness } = input - const dependencies = { - kclManager, - engineCommandManager, - editorManager, - codeManager, - } // Insert the thickness variable if it exists if ( @@ -2026,7 +2020,6 @@ export const modelingMachine = setup({ 'variableName' in thickness ? thickness.variableIdentifierAst : thickness.valueAst, - dependencies, }) if (err(shellResult)) { return err(shellResult) From 8896d06028ba8d8ef9c8cd147b3220c4f9789bdd Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Wed, 26 Feb 2025 09:07:57 -0600 Subject: [PATCH 08/23] Release KCL 39 (#5518) --- src/wasm-lib/Cargo.lock | 6 +++--- src/wasm-lib/derive-docs/Cargo.toml | 2 +- src/wasm-lib/kcl-test-server/Cargo.toml | 2 +- src/wasm-lib/kcl/Cargo.toml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index 7262ec3b72..1f3c9c43bd 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -730,7 +730,7 @@ dependencies = [ [[package]] name = "derive-docs" -version = "0.1.38" +version = "0.1.39" dependencies = [ "Inflector", "anyhow", @@ -1724,7 +1724,7 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.38" +version = "0.2.39" dependencies = [ "anyhow", "approx 0.5.1", @@ -1791,7 +1791,7 @@ dependencies = [ [[package]] name = "kcl-test-server" -version = "0.1.38" +version = "0.1.39" dependencies = [ "anyhow", "hyper 0.14.32", diff --git a/src/wasm-lib/derive-docs/Cargo.toml b/src/wasm-lib/derive-docs/Cargo.toml index 16ddb20d86..086a382dba 100644 --- a/src/wasm-lib/derive-docs/Cargo.toml +++ b/src/wasm-lib/derive-docs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "derive-docs" description = "A tool for generating documentation from Rust derive macros" -version = "0.1.38" +version = "0.1.39" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/src/wasm-lib/kcl-test-server/Cargo.toml b/src/wasm-lib/kcl-test-server/Cargo.toml index 2b0bd8134a..c1060394d6 100644 --- a/src/wasm-lib/kcl-test-server/Cargo.toml +++ b/src/wasm-lib/kcl-test-server/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-test-server" description = "A test server for KCL" -version = "0.1.38" +version = "0.1.39" edition = "2021" license = "MIT" diff --git a/src/wasm-lib/kcl/Cargo.toml b/src/wasm-lib/kcl/Cargo.toml index 9860960354..7052489f00 100644 --- a/src/wasm-lib/kcl/Cargo.toml +++ b/src/wasm-lib/kcl/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib" description = "KittyCAD Language implementation and tools" -version = "0.2.38" +version = "0.2.39" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" From 5743b9ced005b5aa99cbfeedc314134bd2df8481 Mon Sep 17 00:00:00 2001 From: 49fl Date: Wed, 26 Feb 2025 11:12:08 -0500 Subject: [PATCH 09/23] Correct hovering highlights on HiDPI screens + correct 2 flakey tests (#5510) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix hover highlights on HiDPI screens * Fix flakey tests with new toolbar.exitSketch * tsc && lint && fmt * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Disable pw electron thing again * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- e2e/playwright/fixtures/toolbarFixture.ts | 10 +++++ e2e/playwright/point-click.spec.ts | 8 ++-- ...ld-be-stable--XY-1-Google-Chrome-linux.png | Bin 50174 -> 50179 bytes ...ld-be-stable--XZ-1-Google-Chrome-linux.png | Bin 56428 -> 56431 bytes e2e/playwright/testing-selections.spec.ts | 2 +- src/clientSideScene/CameraControls.ts | 13 +++++- src/components/Stream.tsx | 6 ++- src/hooks/useSetupEngineManager.ts | 5 +-- src/lang/std/engineConnection.ts | 40 +++++++++--------- src/lib/selections.ts | 19 +++++---- src/lib/utils.ts | 31 ++++++-------- 11 files changed, 75 insertions(+), 59 deletions(-) diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index daf4385337..96c7815e0a 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -82,6 +82,16 @@ export class ToolbarFixture { startSketchPlaneSelection = async () => doAndWaitForImageDiff(this.page, () => this.startSketchBtn.click(), 500) + exitSketch = async () => { + await this.exitSketchBtn.click() + await expect( + this.page.getByRole('button', { name: 'Start Sketch' }) + ).toBeVisible() + await expect( + this.page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() + } + editSketch = async () => { await this.editSketchBtn.first().click() // One of the rare times we want to allow a arbitrary wait diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index 1e3ca7de16..d00dce4618 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -170,8 +170,7 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { }) await test.step('Clean up so that `_sketchOnAChamfer` util can be called again', async () => { - await toolbar.exitSketchBtn.click() - await scene.waitForExecutionDone() + await toolbar.exitSketch() }) await test.step('Check there is no errors after code created in previous steps executes', async () => { await editor.expectState({ @@ -202,7 +201,9 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { }, file) await page.setBodyDimensions({ width: 1000, height: 500 }) await homePage.goToModelingScene() - await scene.waitForExecutionDone() + await expect( + page.getByTestId('model-state-indicator-receive-reliable') + ).toBeVisible() const sketchOnAChamfer = _sketchOnAChamfer(page, editor, toolbar, scene) @@ -390,6 +391,7 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) }, file) await page.setBodyDimensions({ width: 1000, height: 500 }) await homePage.goToModelingScene() + await scene.waitForExecutionDone() const sketchOnAChamfer = _sketchOnAChamfer(page, editor, toolbar, scene) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png index 2f95e2b4b9704b69801a61e8fb96d2e390d95421..2f43ee3596738625237f7000a885b9b4015fbdba 100644 GIT binary patch delta 30316 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 KJS{-zzyE)D@y#9p diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png index aaf889c1032a2271fa1b5e33fbfcc96dfea56033..b886f4bcac81c93aaf037fdc9cfd1ca88db28d1d 100644 GIT binary patch delta 26189 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ɨa7d=>W#5Xd_`)xzo{-4PFcof-`QWMRU;1Ks<` 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 Uo$!;A-(R?{s;yF@eCMD40!|S;UjP6A delta 26178 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%0AXLP9X|$Qxa0YhLtVcz9S! zT3Y6Mh&i~BNQd98@BAX%@d2%vlDHVLwj=%?V5s)@L-dD? { overallState === NetworkHealthState.Ok || overallState === NetworkHealthState.Weak + engineCommandManager.elVideo = videoRef.current + /** * Execute code and show a "building scene message" * in Stream.tsx in the meantime. @@ -272,7 +274,7 @@ export const Stream = () => { if (btnName(e.nativeEvent).left) { // eslint-disable-next-line @typescript-eslint/no-floating-promises - sendSelectEventToEngine(e, videoRef.current) + sendSelectEventToEngine(e) } } @@ -294,7 +296,7 @@ export const Stream = () => { return } - sendSelectEventToEngine(e, videoRef.current) + sendSelectEventToEngine(e) .then(({ entity_id }) => { if (!entity_id) { // No entity selected. This is benign diff --git a/src/hooks/useSetupEngineManager.ts b/src/hooks/useSetupEngineManager.ts index 1b41ee5a2d..80b47ed815 100644 --- a/src/hooks/useSetupEngineManager.ts +++ b/src/hooks/useSetupEngineManager.ts @@ -101,10 +101,7 @@ export function useSetupEngineManager( streamRef?.current?.offsetWidth ?? 0, streamRef?.current?.offsetHeight ?? 0 ) - engineCommandManager.handleResize({ - streamWidth: width, - streamHeight: height, - }) + engineCommandManager.handleResize(engineCommandManager.streamDimensions) }, 500) const onOnline = () => { diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 85f4765884..b294fd9c84 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1447,11 +1447,17 @@ export class EngineCommandManager extends EventTarget { commandId: string } settings: SettingsViaQueryString - width: number = 1337 - height: number = 1337 + + streamDimensions = { + // Random defaults that are overwritten pretty much immediately + width: 1337, + height: 1337, + } + + elVideo: HTMLVideoElement | null = null /** - * Export intent traxcks the intent of the export. If it is null there is no + * Export intent tracks the intent of the export. If it is null there is no * export in progress. Otherwise it is an enum value of the intent. * Another export cannot be started if one is already in progress. */ @@ -1554,15 +1560,14 @@ export class EngineCommandManager extends EventTarget { return } - this.width = width - this.height = height + this.streamDimensions = { + width, + height, + } // If we already have an engine connection, just need to resize the stream. if (this.engineConnection) { - this.handleResize({ - streamWidth: width, - streamHeight: height, - }) + this.handleResize(this.streamDimensions) return } @@ -1858,27 +1863,22 @@ export class EngineCommandManager extends EventTarget { return } - handleResize({ - streamWidth, - streamHeight, - }: { - streamWidth: number - streamHeight: number - }) { + handleResize({ width, height }: { width: number; height: number }) { if (!this.engineConnection?.isReady()) { return } - this.width = streamWidth - this.height = streamHeight + this.streamDimensions = { + width, + height, + } const resizeCmd: EngineCommand = { type: 'modeling_cmd_req', cmd_id: uuidv4(), cmd: { type: 'reconfigure_stream', - width: streamWidth, - height: streamHeight, + ...this.streamDimensions, fps: 60, }, } diff --git a/src/lib/selections.ts b/src/lib/selections.ts index 308abdcc8a..5b5e28330d 100644 --- a/src/lib/selections.ts +++ b/src/lib/selections.ts @@ -646,16 +646,17 @@ export function codeToIdSelections( } export async function sendSelectEventToEngine( - e: MouseEvent | React.MouseEvent, - el: HTMLVideoElement + e: React.MouseEvent ) { - const { x, y } = getNormalisedCoordinates({ - clientX: e.clientX, - clientY: e.clientY, - el, - streamWidth: engineCommandManager.width, - streamHeight: engineCommandManager.height, - }) + // No video stream to normalise against, return immediately + if (!engineCommandManager.elVideo) + return Promise.reject('video element not ready') + + const { x, y } = getNormalisedCoordinates( + e, + engineCommandManager.elVideo, + engineCommandManager.streamDimensions + ) const res = await engineCommandManager.sendSceneCommand({ type: 'modeling_cmd_req', cmd: { diff --git a/src/lib/utils.ts b/src/lib/utils.ts index f051a6f005..f03a9d7355 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -161,25 +161,20 @@ export function toSync>( } } -export function getNormalisedCoordinates({ - clientX, - clientY, - streamWidth, - streamHeight, - el, -}: { - clientX: number - clientY: number - streamWidth: number - streamHeight: number - el: HTMLElement -}) { - const { left, top, width, height } = el?.getBoundingClientRect() - const browserX = clientX - left - const browserY = clientY - top +export function getNormalisedCoordinates( + e: PointerEvent | React.MouseEvent, + elVideo: HTMLVideoElement, + streamDimensions: { + width: number + height: number + } +) { + const { left, top, width, height } = elVideo?.getBoundingClientRect() + const browserX = e.clientX - left + const browserY = e.clientY - top return { - x: Math.round((browserX / width) * streamWidth), - y: Math.round((browserY / height) * streamHeight), + x: Math.round((browserX / width) * streamDimensions.width), + y: Math.round((browserY / height) * streamDimensions.height), } } From 615b7feabb473c26c40fd5c30376547e68c663b7 Mon Sep 17 00:00:00 2001 From: 49fl Date: Wed, 26 Feb 2025 12:09:38 -0500 Subject: [PATCH 10/23] Don't toss logs on successful snapshot tests (#5522) --- .github/workflows/e2e-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 9b7a4e38e7..2cea2aa995 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -142,7 +142,7 @@ jobs: # TODO: break this in its own job, for now it's not slowing down the overall execution as ubuntu is the quickest, # but we could do better. This forces a large 1/1 shard of all 20 snapshot tests that runs in about 3 minutes. run: | - PLATFORM=web yarn playwright test --config=playwright.config.ts --retries="3" --update-snapshots --grep=@snapshot --shard=1/1 + PLATFORM=web yarn playwright test --config=playwright.config.ts --retries="3" --update-snapshots --grep=@snapshot --trace=on --shard=1/1 env: CI: true NODE_ENV: development @@ -153,7 +153,7 @@ jobs: - uses: actions/upload-artifact@v4 if: ${{ !cancelled() && (success() || failure()) }} with: - name: playwright-report-${{ matrix.os }}-snapshot-${{ matrix.shardIndex }}-${{ github.sha }} + name: playwright-report-snapshots-${{ matrix.os }}-snapshot-${{ matrix.shardIndex }}-${{ github.sha }} path: playwright-report/ include-hidden-files: true retention-days: 30 From 725c4d95f89741336fd6e968e8c42378dd05e047 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Thu, 27 Feb 2025 05:44:40 +1100 Subject: [PATCH 11/23] prompt-to-edit API request snapshot testing infrastructure (#5514) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * POC write output to json * move to cmd bar * write files * clean up * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * tweak * tweak * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * update fmt ignore etc * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- .eslintignore | 1 + .github/workflows/e2e-tests.yml | 4 +- .prettierignore | 1 + e2e/playwright/fixtures/cmdBarFixture.ts | 73 ++++++++++++- .../prompt-to-edit-snapshot-tests.spec.ts | 98 ++++++++++++++++++ ...y-Grid-turned-on-1-Google-Chrome-linux.png | Bin 52704 -> 52706 bytes ...e-with-none-z-up-1-Google-Chrome-linux.png | Bin 77998 -> 78055 bytes ...ode-color-goober-1-Google-Chrome-linux.png | Bin 148932 -> 148936 bytes ...hot-tests-spec-ts--change-colour.snap.json | 33 ++++++ 9 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 e2e/playwright/prompt-to-edit-snapshot-tests.spec.ts create mode 100644 e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json diff --git a/.eslintignore b/.eslintignore index 3c630f997f..3260d9aace 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ src/wasm-lib/* *.typegen.ts packages/codemirror-lsp-client/dist/* +e2e/playwright/snapshots/prompt-to-edit/* diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 2cea2aa995..c5a1897339 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -167,7 +167,7 @@ jobs: shell: bash id: git-check run: | - git add e2e/playwright/snapshot-tests.spec.ts-snapshots + git add e2e/playwright/snapshot-tests.spec.ts-snapshots e2e/playwright/snapshots if git status | grep -q "Changes to be committed" then echo "modified=true" >> $GITHUB_OUTPUT else echo "modified=false" >> $GITHUB_OUTPUT @@ -176,7 +176,7 @@ jobs: if: steps.git-check.outputs.modified == 'true' shell: bash run: | - git add e2e/playwright/snapshot-tests.spec.ts-snapshots + git add e2e/playwright/snapshot-tests.spec.ts-snapshots e2e/playwright/snapshots git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git diff --git a/.prettierignore b/.prettierignore index 2a20cfcf40..d469dbc633 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,6 +10,7 @@ target src/wasm-lib/pkg src/wasm-lib/kcl/bindings e2e/playwright/export-snapshots +e2e/playwright/snapshots/prompt-to-edit # XState generated files diff --git a/e2e/playwright/fixtures/cmdBarFixture.ts b/e2e/playwright/fixtures/cmdBarFixture.ts index 82d23d7dfb..d21ed69083 100644 --- a/e2e/playwright/fixtures/cmdBarFixture.ts +++ b/e2e/playwright/fixtures/cmdBarFixture.ts @@ -1,5 +1,7 @@ -import type { Page, Locator } from '@playwright/test' -import { expect } from '@playwright/test' +import type { Page, Locator, Route, Request } from '@playwright/test' +import { expect, TestInfo } from '@playwright/test' +import * as fs from 'fs' +import * as path from 'path' type CmdBarSerialised = | { @@ -187,4 +189,71 @@ export class CmdBarFixture { selectOption = (options: Parameters[1]) => { return this.page.getByRole('option', options) } + + /** + * Captures a snapshot of the request sent to the text-to-cad API endpoint + * and saves it to a file named after the current test. + * + * The snapshot file will be saved in the specified directory with a filename + * derived from the test's full path (including describe blocks). + * + * @param testInfoInOrderToGetTestTitle The TestInfo object from the test context + * @param customOutputDir Optional custom directory for the output file + */ + async captureTextToCadRequestSnapshot( + testInfoInOrderToGetTestTitle: TestInfo, + customOutputDir = 'e2e/playwright/snapshots/prompt-to-edit' + ) { + // First sanitize each title component individually + const sanitizedTitleComponents = [ + ...testInfoInOrderToGetTestTitle.titlePath.slice(0, -1), // Get all parent titles + testInfoInOrderToGetTestTitle.title, // Add the test title + ].map( + (component) => + component + .replace(/[^a-z0-9]/gi, '-') // Replace non-alphanumeric chars with hyphens + .toLowerCase() + .replace(/-+/g, '-') // Replace multiple consecutive hyphens with a single one + .replace(/^-|-$/g, '') // Remove leading/trailing hyphens + ) + + // Join the sanitized components with -- as a clear separator + const sanitizedTestName = sanitizedTitleComponents.join('--') + + // Create the output path + const outputPath = path.join( + customOutputDir, + `${sanitizedTestName}.snap.json` + ) + + // Create a handler function that saves request bodies to a file + const requestHandler = (route: Route, request: Request) => { + try { + const requestBody = request.postDataJSON() + + // Ensure directory exists + const dir = path.dirname(outputPath) + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }) + } + + // Write the request body to the file + fs.writeFileSync(outputPath, JSON.stringify(requestBody, null, 2)) + + console.log(`Saved text-to-cad API request to: ${outputPath}`) + } catch (error) { + console.error('Error processing text-to-cad request:', error) + } + + // Use void to explicitly mark the promise as ignored + void route.continue() + } + + // Start monitoring requests + await this.page.route('**/ml/text-to-cad/iteration', requestHandler) + + console.log( + `Monitoring text-to-cad API requests. Output will be saved to: ${outputPath}` + ) + } } diff --git a/e2e/playwright/prompt-to-edit-snapshot-tests.spec.ts b/e2e/playwright/prompt-to-edit-snapshot-tests.spec.ts new file mode 100644 index 0000000000..0d28f79024 --- /dev/null +++ b/e2e/playwright/prompt-to-edit-snapshot-tests.spec.ts @@ -0,0 +1,98 @@ +import { test, expect } from './zoo-test' +/* eslint-disable jest/no-conditional-expect */ + +/** + * Snapshot Tests for Text-to-CAD API Requests + * + * These tests are primarily designed to capture the requests sent to the Text-to-CAD API + * rather than to verify application behavior. Unlike regular tests, these tests: + * + * 1. Don't assert much about the application's response or state changes + * 2. Focus on setting up specific scenarios and triggering API requests + * 3. Use the captureTextToCadRequestSnapshot() method to save request payloads to snapshot files + * + * The main purpose is to maintain a collection of real-world API request examples that can be: + * - Used for regression testing the (AI) API + * - Referenced when making changes to the Text-to-CAD integration, particularly the meta-prompts + * the frontend adds to the user's prompt + * + * These tests intentionally don't wait for or verify responses, as we're primarily + * interested in capturing the outgoing requests for documentation and analysis. + * + */ + +const file = `sketch001 = startSketchOn('XZ') +profile001 = startProfileAt([57.81, 250.51], sketch001) + |> line(end = [121.13, 56.63], tag = $seg02) + |> line(end = [83.37, -34.61], tag = $seg01) + |> line(end = [19.66, -116.4]) + |> line(end = [-221.8, -41.69]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude001 = extrude(profile001, length = 200) +sketch002 = startSketchOn('XZ') + |> startProfileAt([-73.64, -42.89], %) + |> xLine(173.71, %) + |> line(end = [-22.12, -94.4]) + |> xLine(-156.98, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude002 = extrude(sketch002, length = 50) +sketch003 = startSketchOn('XY') + |> startProfileAt([52.92, 157.81], %) + |> angledLine([0, 176.4], %, $rectangleSegmentA001) + |> angledLine([ + segAng(rectangleSegmentA001) - 90, + 53.4 + ], %, $rectangleSegmentB001) + |> angledLine([ + segAng(rectangleSegmentA001), + -segLen(rectangleSegmentA001) + ], %, $rectangleSegmentC001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude003 = extrude(sketch003, length = 20) +` + +test( + `change colour`, + { tag: '@snapshot' }, + async ({ context, homePage, cmdBar, editor, page, scene }) => { + await context.addInitScript((file) => { + localStorage.setItem('persistCode', file) + }, file) + await homePage.goToModelingScene() + await scene.waitForExecutionDone() + + const body1CapCoords = { x: 571, y: 351 } + const [clickBody1Cap] = scene.makeMouseHelpers( + body1CapCoords.x, + body1CapCoords.y + ) + const yellow: [number, number, number] = [179, 179, 131] + const submittingToast = page.getByText('Submitting to Text-to-CAD API...') + + await test.step('wait for scene to load select body and check selection came through', async () => { + await scene.expectPixelColor([134, 134, 134], body1CapCoords, 15) + await clickBody1Cap() + await scene.expectPixelColor(yellow, body1CapCoords, 20) + await editor.expectState({ + highlightedCode: '', + activeLines: ['|>startProfileAt([-73.64,-42.89],%)'], + diagnostics: [], + }) + }) + + await test.step('fire off edit prompt', async () => { + await cmdBar.captureTextToCadRequestSnapshot(test.info()) + await cmdBar.openCmdBar('promptToEdit') + // being specific about the color with a hex means asserting pixel color is more stable + await page + .getByTestId('cmd-bar-arg-value') + .fill('make this neon green please, use #39FF14') + await page.waitForTimeout(100) + await cmdBar.progressCmdBar() + await expect(submittingToast).toBeVisible() + }) + } +) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png index 81506ea18f8ed37551b144ad5b1157c7dcb8344e..239e7f0b809a8656c794dc70e9a7e9f07558a95c 100644 GIT binary patch delta 26434 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 delta 26422 zcmY&=WmHse)bA)EEeO&L(k0z7G)Oa~fJjPr!x0!-Iwhs0y9GoIBKQfM< znT?yWZp6rqsXB4^g)fl$)F5!;#N;T#HA4wuIDOCbR+Qc_bJLG(@6OO^H+;l%fJ8H9D4-R67C8v6wrv9rp;CF)Ia~GG$pXTftQGR{R{Fy5%_~#W93xiF#G5fhuvybic z!t^mk>p*$Yr%_`n7j{+gWTO)gCQ)G?7Y37ypBt*`HKWTVr~Q_G8@OoONoTBh4^M5$9_Rh{gYj>vq)--OSo>zG?+c?3PWx#MMH~SibrrQS#;^WK^^=DUOIi^E z=i|=rdCJ9Ol1O=4_ex8Dr2jI{_Pg+pZ(I%oU3{1eUc=r2X0w%Wt$_ey zfd6f?*QnY&6dUfY+%`5mEG`(M|3zVxx&1zWK>d6|3Q*9BO|^i>WU^w?^hbjg^+fttFyx#^WjhrFaHC|h?mIi~E^s4Gz@OBy~i%%79? zn9o$Da4peMl8J{)q9li`@yEwD!&R}R(8e_D5Q+zsrygZ8*94-Hs^FgjD6b#<6k|8` zjGhE{bg)P3=SOY1rWOru1z>kHeL%-+5zia*a-cQ2<f_!sLllxz$QbUR?W zF~6?PbyABB<++G^1Yz*oZA^hCfdITQ+E@$U+&EG2~*ZNTVO*uy<6*uEEgm-p0 zRrDj&f{lY~OxPOke5fd}g2>4n8N;9dEDoB4`HYEn$vSpKPZIl%YoDXOO^e()>(qO~ zVgnu<;~wRUqD$1?ezBVXx{o%ICcc|Og3Sm$AJ2{)+ziIz2}^ozWK0$>{x&Rn?cMp4 zLsCXYoa$xen5Wa#O*R&Fwy_Y*i!Wu7AI+LPCts=X5@wi{RY(D?%tRFWo|UTGHwFCH z#iSIvs{(kesFEnLzbgB0FZT5H^m0bFpMa~gEQH}YpKo>fZ{{gB`3)n(;$CGh*q!lu zz9bj?UY|x!HmGE1AI}h;t(xLO*>LARBzm`&Y(z)a#VX?z^z=9dU_!+1N1~}mh#}#k zH+XFZkPi*Xo~?_LA%-->L0(uXPw{d3`ue|CB1m~QydaPmGORm-Opp5@z{kJo4WLAG zLu4X>{P{shbZT_=baQ(9=TAt-2kcRXK+m!FEY5&wJl9B=GZ3%v{>f!YlmvY*5?1rC z%#${G2p>N@`AKxQd9D5~{l@z(m-Zllj8&AZ2Z6$nlC0;zio$dK{ZLU8q4XPen5(Ym zR8gjGs+A+;L(QB_#rv-r>9k}$0P8DMsuvJ(eE8p)zn*3=h-(OyM6Px@-qzMg4W%v* zTi=ZS=lU!f2*zd5-n`wcGF~!$Ppao`M|*UUb_5LXhkYO(Kn5JU?Xz%i zYf2aM`7pqgR!T1PpZZoZD&$KD9Xv#f;tCPBPRPp_rHB0ub^ZxE`wGK;0 zMn;~Agq*jIq@UF$akeCo=8C*FF_qfw_2}$4_VnSxJ(D{nz3C6}>Ctg@2>}&UPI25Y zVG@X7Y56~JU5J#di{Y*K>IjKPhU?Z!^b_ffGNGXqqMpCR_+RCv}#^i4G&Go zv)G0=P0mP`$Sjs~`D3(29K+~z2NL9(;mB=_(}%iMPahjD&LIw{eE77wZfZ|?ET_2l z%3`AbstNWv(xG#~VrWM};b|{7dNNF1=4EuupDJXoj*h^pM+zn$KL5od?qIIm3s2%i7u&cU)vDWS;v&<~@;pWduks)6>(%U$RP)X<7{-N6(G<=B2r? zpjXcAcZkQh;GyRN98`Hk-Hx@9@3n&@R~A~_4OIqjtiwx|gf!*&fyk4X$Ni;gQ{(?A>_8e(#@p4eJuE+WwvE5QNHfp z^W*h|b#wcz9fqT7mSMCCcx*&4YsVah*?r#GOFnQ6poJ8dloTnTO#D>N5T2Qwy4hp9K-W0oY|CljJ@-CxkDP}Chk6);muzbUEiad zV9E#xxB?+tr6W~1&;(`{mid;3Kr`L;_O!Tk&A zPMDWpHC_B${FbvNe$;fAPG5m5L-Wk1vX>gm**i>NkN>Q66I= zEkH~RC5}no#4J!4Rbxr+&}8hEP4>eAV_R^?lRmlefhk)6fSBzY{<<8Pk@Sv~n=+L-c+^V&3;zAJB7#c=W+`B%$Rl{2#-<^$oF23D~-ueE#rftX!Xe``z zLKJHzZRWidS}aqsFCAh2*?Wy1F`To09h#m#xm7_=)|0Ulnds!CC;x@@f%{)X?Ra>2 z!c#Mh@)~$pR|ua!x*mVa`ZG-!e8TIw^FAIGV%Ly1I}O6Tj7|;)zBlsqP9(N{oUj## zlv&e>qpK23y)mH;h7OL>r6a(oy=_!aQ%W#N|GQ$sgI_y0&&Jse8alczlb9>Yh>7{S zY374k@CfTk`i6Ug?oNDinDNEUWd_&Co5RPY|7xr8Mmv7cakd~qRayQ;Yy8ouZh&)>0qM|46P7c2;cf!+AU^@})-|poA#G~7*3^B;-@z@xlH!tp)>hKQuYm)0eSiO=4hv#M z?4D9~?Md59uJ8x~8Fe9fhfkdqZc6^BK zs;GH0nO{c{C0IU64cwS33E51=A+ zd@lJT4JJ^Lt^M}?2vZka;pOkO5M@#V7caD zg8%rOo?SL03GDj?zpSCDnVFk~Bfn&q_b6(SW?vIrJQbSzO?5E}B4@e`4U)n}Hn^Hg zF-Q&M2bhW&J+;zbzgUYklH@E1uFWCnfMaKSCp7~^N9=Q=?fH%Cb!S_Fxl{78wUA(A z(Hh^hesTC@SB_gq=Zb@B%edCT3K0gPysZBuVz=YKz`(O_Cw}l8hX1A?M(41u@RqAC(J_tKy6dYK6G|=UR+>`QsnyrcsS6K=eSV#q3*zpE>HtJsrqb&*x!e{utZqd ze!{#wmwT&lMpQGi@4!Fq$LcaEzHJnvtEwt)+tv%=a2e9UMf9I#%ViSnooZw_;6a1L z%KbLwR%;n?gyJn8VG56qDom8yxlVk~VF;ik6?Qze^10kmD!*Kf>&jF)v&ROYmI549 zQrnqz?)EP_Il80BG)xtqw3Y~krzP#L2I=fIRKA6{;3;N%lDFQ{Y4}wt z&-x%keq~pdr7s@Ss-Ynw*zx6`y<((LM1jOtO|u($52%~YOjSkC;_^VZ+5RgfOJC}f zj0(SrjZ$F(6b#1^yt3S%fO}m-Ny*zCmbRib((eYg=n%Gsh*KOOA*ArOF_1bkB^vPD zA{Nyl{?3R-rnrKaJZRy;ROi1hBci!H2%fr|M6J?Y2TD{$X!1RF|57ep#DgG~Q zIKT61`LWufT?1F`;-tK+oM5;#YQWEv_wfy3E|d|g{F!UpWZ(gPeX~Ds=olGAr=j9B z(~sP}K&Cop#LH8!!@AQDs^5w-dirZ!p;D8;8|17dP*PG7^}`qLLaBJtD3aiQR6Dot z>+5^ACs#Wn1(gGCuo$A&EDhs}WVYQ#TIe*$ZY>%{(yFV`(y1`)?k;I?L zy|r2DiY_-K@vW>H(bn5dZ+d%>T5pL1&BDr`!bZtfDXjdqEWY)OtncV)zIkE4m_9_GDBO4pXIp(e)hDE>^&AsL# z(E=P!J_7ps%ypQNCRI9Dv3AyKYO>v;5&1DL{3zKIQlBm$RJH0e)ff=qe!6@>uv3Ue z`(lroqPR5Aw0^?Y#?3oyL5q}?y*@EM%1o_p@lRXZu%wc{4iozzLNjZ1srV6XitdI;fX9yvP=PBX!>Jty=kYH)C{ zIBqn8fL$T%Yd}B%9s(X6Tw1GS!A=M`^pTKwwgc$kC)#r>j3z{xu?C$lqJSfwb9_qn zYz_sYF*e36%OCGeGsn)rz>t!|r<^n~a?kr*9B5oRIC&>O%9*M7g;uFaggi5s&lc0aq=bDY)&mkE zK;Zn=8m+6OBg<#EuW-?`A$fH&19H4yGequrhq7T!W^Is(Yp>DDF@4}jg2(R&U!=@! z`lT(HY5Mw@VrQ`My4xVZ{`Nb&)Y*$s8{V-e|JoT_+cI1F#Y1z#;90>HhHkOzP=AYIR$1Q#HM>uUE zDIK~K<@w2W5V%iNd)va7-m4sl`#XlMg&k4e$=E)V37mCMQqd@g+)}7yci9 z!q%wCy2ua%p4sEJmYI#alr-?^{5SmbQ38&0javUEB|Y5a9%M~e6uqqWPzsANUtwp5 zre0lawb?ON|0ArqE#D`A#YIsL4msNmrLvDr^K2J%B0CO;Ki4kdx6r)YMuhkgDbF-5 zr4NL`|KyuXc+9Nb_cQeIb3Q4g&vNiJkK*oE#RAz&M-4hGWMpI@TSZx5otF%a34T2^ zaO=~?nh3jpedy#usN-dS!e5e}R?H{-bbkh_NeOygP7{s49spzM*rJSm*&DBso0gh> z^BP+91v4pJJZUv&)?Trs9ERd1eA_DxJ7(1q>0fM7yAu~3;+6UNT`QHc)Cu)J)gWx= zL1?F^KNbs?K3(3nJWvov<^@7S>6(2El;2u&RNwjxZ&ls;OvVgtpXvnS;7KbhGydI4 zdlKP$Ltm(Vq6Ww*;h^G!^M|{%y1F_)KZv4nbYcR@rQxZ(q)f;o^fJkXw`IVFH{=$| zZRDoWX6W+RV(HfKX8tp-O!b*_;~ER+Ht_9ewXyxw{77AP|TT9?5d0O_mg2}e8PCGFiBe4CY1mf z+`0fNL{u5?%$_z}7k@IQVyGtH+yun1&cDQ+QY~isZQBcP(Oyy25(Z)*At3<|i50uA zYL-MCq2Gi^?)xuoIVJA|-$}=|DjD9ozbqbG4D_emVL1G0-eAz`l<0zY6;+~LK6?Q0 zTJ1?QWv($UWhawAQvp_qchQ@y-p{$)h}{gzgTTq^eZt}?#lxS+!dX2%(Pdfi2o3^# zPlU!xYA#u-DJ+2_pEzJUN-#?LxYdoX-^Bz5{HfV5S&M#4F}-!X%f%=esEi0D%aXL!_DBkfioN{2^o9M}+mA12CItoF^70&4K%ZU$1-Y{E8rsP{$OQR4 ze~U`SMslG~5gG_$@wg@elflp{poh_0%D8%p_Awe9;xWNJkZOro%<%jBcok8Yjqlq1 z4cAop$d7Ogh?~t44!^5H_(pd}%h}-5q!p+Q*mro&MB6oh= z?%K3F-a;qdutlOz!MDu@LW6pT6WP(9L#rkonya@~t$v^hAc~)W{0M72H<3x!SiUVQ zT{SnGQ50&hTeu|vP6*B@Zu;8q`w9vQx-z5Ni%~xP1Z)|zhPFz|%fn?t5Ja9OO~gj* z4UQXlo>$n9D=aCywpu1c$3?9U;z?(>e<^y6(FszYURj)C5cw>)(I}^0t)7zFGdGMF z(XI>lxw*NWnR|gPA;5q6_}IbMH*jc+h728Qt*Dk#nuA=k*KppHzxq?9kjB2(+4{O$ zIWrPal3n~4ahA57+e1=^dLe^*o3zXA`KRQ*3k%@VV)yBO(7jCq)MGkcP_SJ3c&SXH zWOLWq3YJuU>Gv7YJ8fAkLpZq>YkgF_rT2n0vr#F; zu*6eLWtFRTORqxWR8I=5pTF^s%wp9v)BZoCzY= zP%3Qu$=av*5Cvj%P#(8i{Bd&yJYBV)WgK}3XWIL$kvKa$M~F~>9jErUx~Tx*ung&| z_5=8KbPjE{1~YsTrlho%9lf{NO*k=3YGyX+%g5RNYFuGkQ9DYPL`9zxGntPH2sw&o zuI*4LrYyd*tiwN;YpAHK{D)4;ID_62X52X`rkdw0tZrl#tkQgqrs5fhNCt?bZ=DrW zBL{uaOmtTNhDqhr)Hu)8+XCd#h2WQP&%KO*dk zvt>E3`v-arpBz(_Z0l69;ep*zdkPAVkBTaj5w%%rIC`Rhj6Ju#hn~DLda_|AE_*zt zx$+N|_qSDX3H>CQ=I4q7Pw!}7sfb*RkEw`d$k8VGDJihiVMDX>?8q>JepwAfo_6K9 zy1IsZrx5;bb;&zsM6SsUH?PsfeXX6gfFC9$C+pv{EMUmoWX*y7?#LtWD?|9M4s_Ii zUbnGbj1WT)VEMnc)$Rx9NurX=A!R@QfmT%U?)>DOch2pZ89zRh&JJysw%kp1{u|&N z^zk6feLR>;%x12j5E1QE7jacJUtS@b(?!a`!OUZODZC60O>D?}JAwxivI$se>UKzx zz{tvXx}=ZAlAPQ)#d_|p-j)>>OyRGvf`INne<&8K49q{nKEoIc-ezj1pg$yw5|fpD zI`^B|nB^By5~PM7hO@Pg>fEgNSBi-?qnU)4VI38eEzQ?nq-k|CeX)s*zU==(+E+1O z*jMqRFZtKMI4kk+$+v|$cz7lj%KTraym`}gadC0}l3bIAmv_JjF3+VM8S$t(0l-Q@ zhiHq(K}cL5QKB-@`rAG-BwJOEIs5j(&wh;Q{ns)cX|;Pl0K8d8mbJgytd=?*(=M!mboe&$PxSuAwk!>s+BE>#7dT`5s1X+`P73-pyU=Q zE&SH?BDv`I@8TbeuM{P%wP>giKZDanb6xx9b#!N(uPi~XKRP=6P(N|7Hz^5UKCZdB zS+2X9<>26ebm-HYf2hvOJ5aBv$@8E8cR+#yvx^pb6=u0=FhMGT{iQ(VtXuSqR*jSB z(-CVzTPyGi1$kC)Zu@94om_ExbQUTYV}^{JYRv31f^uy&_>JADnh~ zi+?PW@u8I~1QJ2y6as73TK`;lf7W%}lK}ZePB;c-4TMG9*==%Ze~I19j7-ok-9@wS zW6d0|&Gfghj=-J#vRIVDuvC4o*6&)OadJ;B#ee`tr)9pkg_nJ1XLh8eXH<08$5g_^ zY~?-KbE#sh+^Uf(F3&p928pzs@8wGI3r+64~&8i zuw>T5RKt_TZB5k-&w<}{Mn)17-j(mRPgf*nz(GO!uCrx!4piA#tj5$Lx<+SakCgx8$3 zGSLysk2@JzHTCL`rpp)2K&`lX8rbIz>C8@ioib}RD}Ogh7rDl-%)CZAjvD}u&R$vQ z!|O5e8B7QS>YH6v<#_R1Q2=Qg-S^><%L4Pwo2QEr**&SSN7tt9$KRU?=KAC*#Da(= zts5(X4VIJcRTd-fPsY>|#>a=VNv#jUiTf>=p}5(1kz=~L1_rMqWdb`WfgPQsE=$hI zsZZv|-}K1G6}CvEV;9Kzx}EiQMsgU!gGaRoMpSc0&Zn=O^aXarlcZT&)C_6UvkdMY z9(Rka%6!Og@9uI(R)T|(vxW*2y%D$l;x#U3J{>Ntub&sUpL)<%eu%An8o$zNg`z;5 zoV-%S;xw9VZSC%mFid#U zcr?jP3ALP=Ie4Z%Y94HtfU2hDn`f#gYKsSM*7=<=dZT$wa{TS}1#YAZO&SO$sLww9 zhnmTIr(zax2YMfNAq`C8uy93@9I%TsRyokq7M4wU#6;s;CC{du=+Q}1o zwGAfh_y8&n%oNF~kNj&?`2n=>L~ePt=qOV5`L5XHxekPb%SX6j-}&^^&fRK_G;&zv zU77OsYu$>Tr@cO-$MlZlKR0If_l|CQp7`fo7bg zCAj@ypjkqjKVEBo*vclWPOPqeV$+Av=UL5L&X3bfaqZK#Tg)U%JR#Mbvv|JHnY9lBqSG-6~a z@u#!Fu&$Xa=Ck#AyxHQZp1^_p+&KAhf7(~=_MEL@t_1{63?Fi5NFz`6P<6~Hk*fPY z-%{){{uGCArKbMS141u@QHDT$Ib*b^*a@1@e;z6Y~)r7VHLAM5oZUWLJfpO+Uq8MgW8GCv#IAReEU1~-U2 zv`F5PVCZ&rX_fuxgv7|vuAW?j9&D~!_*kNTWK>jrL&FOm&f)~)l&Y#K(5wXYV31i( z&D2;l0Q|*ZfmHw9U35cS~x#G0UP0~p$;@EDBM+a3WOLJi{8M| z#W`Ya95()I{r1zuhl(Gk&X_zxCm!==W*fxBNhlES%Y9U21Wk5?JGi~?o<4iqHNrph zGZp*!&j|KM%Hj<8@r*^*!S3$puzl8oowe1e)px)A$IFYWkUMV9ESZC?T8klaOkWO{ z@O@jWTc3v{UotZP2B0jlg=CxD1mLiL7fw-jp|;t!qPMSD-GKPPc8Cj<8Ia>~K`eyQ ztc&_15d+fYTqBxg-*=1l*gJ9c{MiR?E{ua%TOs8uP@eZcMNBeIIk)RCTik3|^3!KN zss?w0NtkAWGG=_O>us{G~OHA1%B-pFOd=4 zr@y@mJbx2Aw-%-JhkG2rghlG=KS)3O+~s{w)ZzHP*`EGk>cMJn5X|CB%UtA=q~dXZ zBE2x({LEF}DZ9zvh0uo&E)+XS1qJ`Dacw9M%UITN=;8-Y0i_6k?NyQA6Mw%yph&mfc@KshuS71&>olw&5bEyF80L z50R^xI}onO$H0g5_V)1*)CBh%X;^T64gFL7v9(pA48unyYyNqMxJIt|rposl7$xEN ziV|>^qk&6YLs;!vTAJ61t=WC`)|m6iHeHKp;iRPf|rUmv&r_{+*}=x$3G6EeY@Bc+-PtZ<95kj^iC#T z>yrJGnxNVW|Dfr(4wL~UXY=ExfFYiA+JcN=%U#onUw( z4kD-u*}l=XimhyF@_c;ndW(c05kHcb*q}%DY<3RVnf_WMWK(Y;S~HN4poDH92+-8_ zx_G|RQghn1LdG)l*vUB@-?kOVexbn5P1ex1ZUZ(?#%40 zps;XhSy>=t+4hutRIh(GN_HS|7Tlu2pE3ls9{B`N`#HizlyF9+f`AZiR?oj^b1}S> zpVY04WmQ#-eC5$W-w(kTO8ROx328eatj85qqjo7oCYt17HF5krPsvjv#9?AuOjEr-d3-4a|_ zm}_kBcv;zgob!6}GO8lWVqllcRB3on`(RS7GnqG4_!Qs8mO8`umr*OLeOmj390O{t-1_iI z<#*QJz6(tA99hL6GKyhV_cJ1dm6f&7OZgLu%M^-v985%+`Q(~A#RRA4ue(s z2m=K4!9a9Za$8n^_%5U@3EEOr{$r$#bFmyjgA)&j!?5-{@`|@H=#~-Gc#qPT1Nev7foOLhVc_)0F*9Pp~ z0!u9}Cr9j;L%rzxzY@1-Co3(Xq3s$dW}*M9%H@jqf2J#^ALZuuIOZj9kagaWh%6_7 zg{}Sq-j5WgiG{05{&OMUo8*c*1#zu;=i)8a(nBQH6$yD z@4{|!adQfN4Gru#HflSwII969Aluv1XB&l?@5=;NihDlJP}n~7--G*3ZB3424SW+U zI`j$gqpw~=L58L0{73UN8}0uy`G`yUO9EejwD=>q6s2b~zH`~gGh3q3;#rC>pOe?b zh-EdSfG0h0;P<8LW41#Nc%=*^>0(I^I~&PXSt@G4P`H=Y_?~p@;~G$L0GPY%f3fo~ z8OG~;Y`)uGe|O*UN5<$=ku#m>QwfVKM}iCb=faO_PoMzJe71 znAgnIrgX3Nqt?FjNnmf7p~i`Fp=2JTI9zJ=ZrBuE-_`k*G@10~4-#WIi@e5E{H`89 z&s^{C@fWSnySlp2{p7LX<&p+Qce7k%WOshooyo{+CrDYr!wbViX!tfvXTy>&*)Cbh z$h@)0gng2`2RJzt6yEL}@gjM9#2QiX0QC2B#|M464lk*ozX|b(Adl-+853MwVjgQs zeo~4WFDANj$Q!n9wz9w$AMTmf>YFXfTK>U>pVYqnfp>>N>zy+}uU@jERn|q#r zQBn~}Nh_fX*?G9+M1XKG$=j0()mwB&Ej`WFEIoE_J^P@Z<4w>Bb0m$KwSyg z=%}T5xbA8ZK9pkt=vW>-w#r+4G7{sqq`*X>E-*P-1ljtdgV@kXIJLE9N}^!R%76P8 z*W9VC15fuuPo>!r_1y8mNM4ho&&A@iZtK#`z)(=C%Pq3uz@D$McnPuG`%R4kWx%tt zw$=aG1@HLA_x0T_8FyfZ>dJRga-z)4q)m|yRdw~a_zZX7)!X%Tr#afix6YYgGrvB2 z!{@$YW&>_Qu+n$Wjn`J>u1y4{-Ydet)6r|+lKnMhBF}2->(n~~H0Zi5_xtw^+LR?G z4;th~xxR&>z4IwF^Iq8MN%97xNZfTJaDuwhrzzHuNOOl4-g&STo(zV zBdax;lJhPFK+E*KoN>7RsHiyi5;zakWXhjhX}g`UczU`#6c!F=TA;WtDmENb6tuQ@ zgX&MakND~r6K&|1Mu_CkjT{7q@LaKq?_8W~oKb-^joDFx-}_q;1mA1o#XL)VW1Pr} zN`>76?P;@bebcJ_@W@aQ8N)pzl;|TCJtQm-yC`bl0;m@3vz!+j>gz9i6Xz*yRegMX zz@-^GJ2t9@6xMqc-swkl3dJfsX@few2Us!6+|WSB4lkpr%m|OG>3UqFT58^I^q?6I zwA2si|r2=~U+B(cNyA5gmNq_qdxp%GvBO zqZ(@x$jG#_u@E6<)vDK*+Pa+~mqCD#g@uOd)LA8tSPG`o{U{4mNaSQ>-06v>$;8U* zVV?@I9yScI-S| zz!{%KhXVxPMH+=xb$WhASNAt(8tUriLzx*dF)?v*PII;m0=o6tD+Kn2O}uA>$bnP` z4yk{~Ur|s{5aEohQ6T&r(vd}HZLX?7rCQ&sXs^;M+IlC~Ij1 zi8BcnCKZ)h+}xLpveD?mD8x@YzQi6Q26&&YpMXT{Ee7suqQtm#r^kCwv8T`9d$yxw z;^jO#wS8lw{UtC3X&uk1qR(woX?(B%sbxk$EyNc#*|LA_4=;PLx-(=TX3xs9w8y`A>gp} zfpCe{rcKMmS=rK&KWcKywoPk%5J3uU)$+iSn-&i7{kRdHsMeXw$;rixbp4oVFU-(b z{PG9N{NXu=(`dWsx8jJx(r&Er4eKCqTHyX-UZC_GQL~*Hsna z%i45rZ*hPBI|_;{Sc%rf=u3ppSyVRdJ!o0Dsk7I&d-l9`9xY2IKafP}$ALMU@~1_1 z77y;+2R{45@Q;f!7g5KgD}Us*yf>ow7oYx>eBMn&Mn_;Mi77-|jpV zy`ia)xM+!nh2_M#dV4$Tc?KN*NO6wEu5WCdw&bRxrzgP(o}Hcj`BQw>mMz_vO21-i zC{v`RsY$nREGQ%-qHC2#cGSt4ebH^sRyKmIC*zTWbQhWcWnSWTu2 zJFYbeoTMBS*=;ThE*>OEFPsE+eA9Hj4mPL6T|F<@Q=!h%LbbFT z4zgEF;pFQY;CU7HyAM!giGx4E8bW|7E5T?M|O7hU}M7Iu;{F5wVhN^02=l~N5~xI+3l;Rnc@@^ z9^wI`BOs=JR#eEZ^sBKjnRYU2!wDr7EkA7vwz>iAU`M=Ja(hoYk}elqn;EOZppuDK z3*8VzT96%?5TN0w)d}seNbi$VR<^r~x7VMDe-hNAvu0pxWBO>vugvhPx>R}U>mcq_ zp=i2teN|B#P*t?(`fJDKbSYI2qW~X@;+RoZ$etFiXhOy12;X%soK=AUDhN3(d+vFpJ!#uR*J)W(gqzgB>NU% zCvQ9oK0`l6(yP)K?f_HrKH$EI(Rty$ED_H=ZtVsE{FQKd6afuo8? zGbISHx{_sdV}LbxGZ&ZN`G9a~@FT@wNx5UmpWRV``e~)15Md`OW;mv@vQotR(nB!D z4h<7^fIoR6ZysLb?jd0$3*nHGl9IuoAcw(Vti!A6R&`zqs|iD5PxE8`E-$*P!T{8; zkTEQ8@K~$*W++wMC{L&&)w(J;tIEOzV3(PP<=zYHLqFzxegzHBdB3w1OCx*OdbN1} zv2pMM>oKFjvOe_ zh)UJ%2%CU8Iy!>1#egfFDw}EoHW8pxw8$&hY6!5cz3-h*SZHxOlLc)2jdNwAdB9p`<#3 zqau6L|96=H&A@^Wzla(?tt9$#$3P~Ebfj?2Jy;6Yn#GN;Gx~uX()wZKR}i;kVPT=` z>a4%qx5yU;M}R#Y{kwk$D(u`5Z7XRh%-trQa_fj0#!eu-_!b@>URkNCB0Hjlbc2*l z1;xxfTE!+Hpbxb7qq zlEKM-CuNz0}wM&czKJ)sV?g8#cgzU3mwX{?TxK7G|yT^NR}=6(My) zm?VRqgL5GGRz>8CIW~q@NotO{qL0@m|3ay9tP039)+m|q2~+!AKDu`S-uO2ma7h#n z0t2ts#jz?EqO9Qp+QQ=nJ5y0ncubX_9u%ds%B!`l_FB)^w>6#`jvY(`$ENRk1qH|( zkJ?eFY$%2phT#tnM}A@gRBZB*GHoaq0e5OmT53_-3!d*R<8Oz4#2@?7Z4>*WS4~?^QVJ znO*zCrDp>@9UU?vVxzL}%|`MAuA%EdqzHU-QPlm<7a|-S9B%2o3*c6xP}$7X6eBu3 zmCHi;362;Ty`V#_C4F^az-IVk+|C=dWa4&UP?Y_EO)IjJBx1oRkO=zOPF;vJHWue< zC}m`J{64zX8;I9nBwZa!-PxsC%Za>j6QAJ#?V;sDB84`PUtt2k}ND=v? zN=i%9InBbsgIz<50B4O&^YlLKZH*rO+;MQMd7J)FVUhlYkG zAVQ`^?71RpHPA;aF*0%`G7kp8vs68QX)P(d) z=Gl>Dp(w*jqQnEmi6w+38^^}k_zf;R*ykd2EjT#ec|z& z0#`u;xB9`|Z4%>(txwV2d}fMIFizpnLl>RT8!xS2pT>Wx1Pz= zPYQpv+rj`Dx*h0z`I3S>@#|MznC_e3W$fi31)@{NlWuy{WuHEOj;{`!A`?;hhp0uo#)Z@)i1(|@8RN>ge={UP#@oD)wm@&84xA$Hrt9~dL z$VB0lNw;H$9e+VudgX~!sI#lAmT_H)j7lX=Fie^)aJqzw8c{bJaS^$c)lNBIX2i!$ zzP^PV#3PxK62q`<6OR1~A0MEb55s}>d>_e066uu3fj(?4T?}*w{rbSc08{Aj{kHaz zgYeg{U&3V4(Rqc1^mMddg5ig2%u&q>HMI`}9RTa94o-J*I&b2b%&s+el%L*LdGP(y zSzD*VwP4i0X-37I;iu?(*6JoE6d9b-z18aYSuhC#oiryDn!S)+&W}J<3W!FHe}8LobjdyY);4>dRlF+P3z1S+p5 zCnvEuIGI>45Q7VV(ELrf@OFLM9fv9lzPG0*t3f?28yoNcAexgC+^&y~6bn(R3Br~I z`J0FfP4rTz4<-ViAM@O%4ZRPB!jPTKV2O*!Ms6BAo;5FXn)H-hs3b;ZI>Ut~!6B7e$Ho7%{B2BA0VwH{>5>i+N$KubQc@b}kdW?%i-NR-gh&X8l(2M3E2SVMv80G} zch`5;zrUI9j^hBkx6XOvdEVl-3(8w3efka^mr4qbVcg05AZZQ@Td&n@v)L%!>`%vC z&X(%Z87;_nvrJgHc{=@lf~_`v3Z=4F)lz>@O9)&AW^DGcqub3bI;vNU`rBZa?`vv7 zfrl&ai}lLJMzfAR`0krAJ|2!ruJY_ro@$x$|FkNg9)9a42{D&-2lS0#QKtZS8rfm~ z_qa9~<}81d?)dsH-V-6OlwRSnQ7+Ok&5qH3)^r3>*>86yfZ}%jE!&NH?&frS&1!vu zit$gq>j450q4?RoO3F%<dj|=R-Cjuk#vvq?;SZlcZqLXw3dTar{2MU(;~G8r{62FwR5Fa~1?U=7eph z(7o*yr^djbVgFIf%{6FSBOMwa6@{seeiJ4RcO6UlIiq=fyMpzT9@>uq&T<0;0ANBH z&B-`XNeP5d>*M@4#>B|Q!%`o*+psU$%(3_>PuS?#R2{Gv%_35lcFe^*rVdS+;5j11 z9;6Cd#JQShglZOiNyFNlZ*yV6L0uD`?2G43@a<9|Xc&h;pYicse(*$8Hb#&+sOvX4~xA)q3&*MI9P&9)*Z>b@% zC!#ZEq-;4CIAElMfGAaeEjl%B!Gy!F`nk>baRc8jk`k1Ecrs-oW=j0P*28XxXZ_^H zpKK!_@6Ac0g8ASho)q4-DlTkVT2+K)BgfO-f8db!6k1tWah6aA24043Y&cX+IMf&* zAl>2#2hgPw1pfFwj!jdZId`jSB&$|%*#nAy-+co%c-_<6+aCVPzGiaGPTL0^rmo3) zFO}{#S-?i0u$p_b#dx!dWmq0vE|bjSGAYW1I5?ByUpxfYYi2 zZa^|<;2Z4HuO?O~b9#EGSqC2WfvjxjPPMFMLv5xznZFQ4O3cmR`@65?o12K=MB4O0mcyi}N?t_$ zLyvMF0HKiv82n!Hz0mmI+4t4E!FBXpT<`_(Z({rLsZLPzr}Z2~G|!LF>qU*ypG%@u zc*h)nOMc)PQ{+*Hn1k3!K?CZNwS?yK7(l-!R>(v+FFc@TOlo1qCcV;SYE`~KYb7Uo_P15J|CT3lR| zmX<9Z9UBAc4c;HL|CW0T({3o&>}{zPuwR2BXT&DedWw8UNS%Q(eGzKy1K7TbYt)YzG2rDi@cuP=zVE9FNsF+|^uUJ~cw^+S! z9rDLPdmFNOiKGK-nDYngHEWU*N@r!>>Qc&L6qS@5pfqBZx!)Qg?o=d7uPgU>WT-N@ zC?mJismYqx$g@_L=&PrvSb|=JJ~g|poYn)*#)^)~BugF=tqjBf&zE(;VuQIffHLPe zDCMO-u!x<<7|kEkMbBEi1@jp0gVcr6Ap8$NpJT}m7y`>yD@++)}H`)heD zNq9wJ-dcPvsG|~sD_&n1OM|*Mcph>cL}NhTWys6w(NX4Q80_*jCwEU7qzenCi_I6R zt@--Xz`RIU$(DsdbLTk?y9W2({RF?;?3zP__vk=a@o9KMReFXO{gmdHRYU#87w*;g zV`o`8XZ&u!@7)I$E0o?3?*FLi;%)(b(&}uyN6g-WH4Yibu}~~X$%e4dw zLIgQ%BH}3}w}OLF`*nkt44bOg&(}N*A0{S6NxWe23GnbID6MKc2vdTmYb)V+$=;HJ z<{tw6%2Dxa#}Q|;ZEC#E$mZ(_2wDg}f2-A366 zax1zHc!X@u&Y=f0jH{YC=?hx{-#aDdwJ`WgHd8cmm=r#0cguHa2XY6QVF$bjU1f}+ z^#jzKWGkRPiq}Zli-LcRd>QgpoEj5`&7BeILKsq!n*VCZ4jYzjjC$1Z6A0G~GY^dE z`Kz}Py3vHWFfOue4q6xnnJSfhAieSwvEAJ{+0c26#T}0)Fs^Y|K04VV+-JgLw#<3E z=0MlTLGVy&r>D2)E}gVAu;@U5<$(ToS1@y9!a`su1rkf+8BCI%yQe6`3GNeeQ(<3A z3Pz33LQIhcjjM#AsVm%s4Qly(xdr zDN7kjn0x;rRX51Aet*Uj-VVCoSXo(B7!ybB4n2%$Na7DT=#iBI&8ptt^Ur^dWvp`{ zeMJgO6N=llrFTuPh=}K~v=e%7I(X{gm2BC~c(Sswl?*(%4O=12usw@eeH^I{k*hLB z{Sk_#4}C)134L)7oKonP#t7oxR?tW?(G-TRE-d=g0l}T`Xvm}LHfNGsK0It?iMvks z+?R^A1doA-{%fGGFONlLx%>7CMAiMAFAY@Bk&=+;>goB5WW0cvW)cXwD{GBq#dMnb zilqD^mRNQD9#M1VuFg+Py9NaqM3BQ_WY|F>r&^XWd~|{>tLP^as#wxEKR=!BgD8_) zhLBU?=$q?mBG^jIqtnmtac}%45sHnDi8c{4I~DCEFUN62gW+}*=N zIf3yMBT*R&A;&?RkkI(z@b~!V0|#+wQ}3b^@Nc5Nh|NmX{hC%%f{Cen_ysoG3*Nes zO#RJO=CjAXlaS1>NLo+pZ9X8U;0Tsx;NU3D&W4?%O<^kf)v>Irhd9rgDX``HO^qJs zE(iMcX5a(;1V`I%0K2Sso~o*l+QdOWz)~rW2$VMTvlq*Jee0BFT{v%nxd25l*(;Cq5Jm8N4L5fThSbuP&Wm4eFX=~ zFexslF%p6&aWbSpYh3U00$)>4ug-P83rwG~zrMN@$=pKJ{SrZ?sXn{o(TJrcB`qv3 z*F7K3rxx`>b%5gYKp?{xP8*bpzt>4>N+lVTflo+5aW-xlCnqNde0R`pC+P)9jJoxu z@y~a?e#Fi$?!9HCqVhv@yQ#`^7(<*gt|6lq

GYeO0tt$J60ngRE8}8p^;SH%YMtZ>Avnb( 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 Nd2ROe!&4V;_+J+U$Cdy9 literal 0 HcmV?d00001 From 8d9bba02d69a3ee517d0dac343f64e6c565a5307 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 26 Feb 2025 17:23:27 -0800 Subject: [PATCH 16/23] add pattern3d tests that now work that were being used for debugging (#3862) * more samples for useOriginal Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle --------- Signed-off-by: Jess Frazelle --- docs/kcl/patternCircular3d.md | 2 +- docs/kcl/patternLinear3d.md | 69 ++++++++++++++++++ docs/kcl/std.json | 6 +- src/wasm-lib/kcl/src/std/patterns.rs | 53 ++++++++++++++ ...rial_test_example_pattern_circular_3d0.png | Bin 103706 -> 103731 bytes ...serial_test_example_pattern_linear_3d1.png | Bin 0 -> 65058 bytes ...serial_test_example_pattern_linear_3d2.png | Bin 0 -> 53404 bytes 7 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d1.png create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d2.png diff --git a/docs/kcl/patternCircular3d.md b/docs/kcl/patternCircular3d.md index 585d7de7a0..31acd1e9ae 100644 --- a/docs/kcl/patternCircular3d.md +++ b/docs/kcl/patternCircular3d.md @@ -46,6 +46,6 @@ example = extrude(exampleSketch, length = -5) ) ``` -![Rendered example of patternCircular3d 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGU4UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpvdc011zz4tV/7td/rxV/8xV/7zJkzD77mmmsefN999936D//wD79933333fqjP/qjn8NVV1111VVXXXXVVVf921C56qqrrrrqqquuuuq/3DXXXPPg137t136vd3qnd/psno9rrrnmwX3fv/cwDLcC/OiP/ujncNWL7JprrnkwD3DffffdylVXXXXVVVddddX/T1Suuuqqq6666qqrrvov82Iv9mKv/eEf/uHfdc011zyYZ9rf3+fxj388t99+O894xjNordFaYxxHNjY2Hvze7/3en/0P//APv/MP//APv81Vz+Gaa6558JkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq/NA9x33323XnPNNQ8GuO+++249e/bsrX//93//2//wD//wO//wD//w21x11VVXXXXVVVf934ce9KAHcdVVV1111VVXXXXVf64Xe7EXe+13eqd3+qwXe7EXe22Aw8ND7r77bh7+8Iezv7/P933f99Fao7VGa43WGtM0MY4jh4eHt+7v77/OfffddytXcc011zz4tV/7td/rxV/8xV/7xV7sxV6b52N/fx8A2wDs7Ozw3P7hH/7ht3/kR37kc/7hH/7ht7nqqquuuuqqq676vws96EEP4qqrrrrqqquuuuqq/xzXXHPNgz/8wz/8u17sxV7stQFWqxXPeMYz+Ju/+Ru6ruMN3uAN2Nra4olPfCK//uu/TmuNzKS1xjRNTNPEOI4Mw/DdT3ziE9+H/8de53Ve571f7MVe7LVe53Ve5715gOVyye23384999zDxYsXuXjxItM0MY4jrTVaa7TW2Nra4qabbuKmm27iJV/yJbnfj/zIj3z2j/7oj34OV1111VVXXXXVVf83oQc96EFcddVVV1111VVXXfUf65prrnnwa7/2a7/XO73TO302QGuN8+fP85SnPIWDgwOOjo5YrVbMZjPe5m3eBoCf+Zmf4fbbbyczaa3RWmOaJqZpYj6f85d/+Zevs16vf5v/Z97xHd/xs17ndV7nva+55poH80y33nor6/Wae+65h2maGIaB9XrNer1mGAaGYWCaJqZporVGa43MpLVGa43t7W0+/MM/nPt9/dd//fv81m/91ndz1VVXXXXVVVdd9X8P5fjx41x11VVXXXXVVVdd9R/nxV7sxV77K77iK/7qxV/8xV8bwDZ7e3vs7+/TWqO1RmZim/V6TWuN6667jhtvvJFbb72VYRh4buv1mvl8/tp7e3s/Y3uX/wde7MVe7LU/93M/97de6ZVe6a03NzePHx0d8fSnP52/+Iu/YG9vj6OjIyQBYJvMJDPJTGxjG9vczza2AVitVtx8880cP36cixcv8lqv9Vpvffbs2Wfceuutf81VV1111VVXXXXV/y2U48ePc9VVV1111VVXXXXVv98111zz4Pd5n/f5qvd93/f9aoCIYLFYEBEA2Ka1RmbSWiMzyUz29/c5fvw4p06d4syZMzzhCU/g+SmlHLd9/PDw8Gf4P+yaa6558Cd90if91Du90zt99ubm5vGDgwP+4i/+gr/4i7/g4sWLlFIopRARSALANrbJTDKTzMQ2mYltbGMb2wDYZnd3l5d6qZditVrxC7/wC7zpm77pS//CL/zC13DVVVddddVVV131fwvl+PHjXHXVVVddddVVV1317/NiL/Zir/0VX/EVf/WQhzzkpQEksVgsKKUQEdwvM8lMMpPWGpnJer3m7rvv5uabb+bUqVNEBHfddRfPz3w+f+lhGFitVr/D/0Gv8zqv896f+7mf+1vXXHPNg/f39/n7v/97fuu3fovd3V0igoggIiilEBFIQhIAtslMMpPMxDa2sY1tbGMbANvY5pGPfCQnTpzgD//wD7n++uuP33333b9z9uzZW7nqqquuuuqqq676v4Ny/Phxrrrqqquuuuqqq676t3vHd3zHz/qIj/iI7waYpond3V0iglIKpRQiAkkA2CYzaa2RmWQmtlmv1yyXS2655Ra2t7c5f/48+/v7PD+11gcfHBz8TWvtVv4P+fAP//Dveqd3eqfPBrjzzjv5sR/7Me655x4kIQlJRASlFEopRAQRgSQAbJOZZCaZSWZiG9vYxjYAtrHNarWi73se/OAHc+LECX7jN36Dm2+++dZ/+Id/+B2uuuqqq6666qqr/u+gHD9+nKuuuuqqq6666qqr/m0+93M/97de53Ve570B7r77bu666y4kERGUUogISilEBJIAsE1rjcyktUZmkplcuHCB1hoPetCDuPHGG/m7v/s77icJ20iilHJ8sVi89sWL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EUFEUEqh1srx48df+8SJE5/F/yD33XffrQD33nsvmUlmYpvMxDa2sY1tAGxjG9vYxja2sY1tMpPMpLVGa43MJDOxjSQiglIKtVZqrZRSKKUQEUgiIogIJCEJSUQEv/d7vwfAQx/6UDY3N1+bq6666qqrrrrqqv/dCK666qqrrrrqqquuepYP//AP/y6Av/qrv+LpT386tslMbJOZ2CYzyUwyk8wkM2mtkZlkJplJa41pmmit0VpjmiamaWIYBtbrNavVitVqxWq1YhgGMpOIoOs6FosFm5ubbG5usrGxwWKxoO97uq5jtVrxB3/wBwA86lGP4qabbiIiiAgigoiglEIphdOnT7933/evzf8g9913363jODJNE5lJZmIb29jGNgC2sY1tbGMbANvYJjOxTWuNzCQzaa2RmdhGEhFBKYVSCqUUSilEBBFBRCAJSUhCEpKQxN7eHrfeeivHjx/nlV/5lR+8vb393lx11VVXXXXVVVf970Vw1VVXXXXVVVddddVlL/ZiL/baL/ZiL/baAD/xEz9Ba43MJDPJTGyTmWQmtslMbJOZZCatNVprtNZordFao7VGa43WGtM0MU0T4ziyWq1YLpcsl0vW6zXjOAJQa2U2m7GxscHW1habm5ssFgvm8zmz2Yyu6zh//jx//dd/zfb2Nq/7uq9LRBARRASlFCKCWisbGxsPvvnmm7+L/yHOnj17K8AjHvEIpmmitUZmYpvMJDOxjW1sYxvb2AbANraxjW0yE9u01mit0VojM8lMbCOJUgq1Vmqt1FoppVBKISKICCQhCUlEBJKQxN/+7d8C8LIv+7KcOXPms7jqqquuuuqqq67634ty/Phxrrrqqquuuuqqq66C13md13mvF3/xF3/tP/uzP+Nxj3sckgCQhCQkASCJ+0kCQBKSkASAJCQhCUkASEISkpCEJCQREZRSiAgiAkncLzPJTFprZCaZSWayt7fHiRMnOHXqFDs7Ozz96U/ngWwDUEo5LunBh4eHP8N/s8PDw93Nzc3jp06deu0nPelJ1FoppRARRASSkIQkJCGJiEASkpCEJCQhCUlEBBFBRFBKISIopVBKISIAsE1mkplkJplJZmIb29jGNgC2sc1yueQVX/EVOXHiBLfffvvx22677Xdaa7dy1VVXXXXVVVdd9b8P5fjx41x11VVXXXXVVVddBR/+4R/+3Zub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SUhCEpIAkEREEBFIIiKQhG1sk5lkJplJZmKb/f19Tpw4walTp9jZ2eHpT38695PE/UopxyU9+PDw8Gf4TzRN06XZbPbepRRKKUQEEYEkJCEJSUhCEpKQhCQkIQlJRASSkEREEBHUWqm1UkqhlIIkADKTzKS1RmbSWiMzsY1tbGMbANvYxjaPfOQjOX78OLfddtvxO+6443emabqVq6666qqrrrrqqv9elOPHj3PVVVddddVVV1111X88SbvTNP1O13UfHRFIQhKSkIQkJCEJAEkASAJAEpKQhCQkIQkASUgiIpBERCAJSUgCQBKSiAgigoggIpAEgG0yk8yktUZmYpv1es3dd9/NYx7zGE6fPs3BwQHnzp3j+ZnP5y+9Xq9Zr9e/w3+SiLjV9mt3XffgUgqlFCQREUhCEpKQhCQkIYmIQBKSkIQkJBERRASlFEoplFKotVJKISIAsE1rjcxkmiYyk8wkM8lM7mcb29hmtVoxm8140IMexIkTJ/j7v//7B1+6dOl7uOqqq6666qqrrvrvRTl+/DhXXXXVVVddddVVV/3nkLS7XC6fMZvN3joikASAJCQhCUkASEISAJIAkASAJAAkIQlJSEISkpBERCAJSQBIQhKSiAgigoggIpAEgG0yk8wkM7FNZrJer9nb2+OWW27h9OnT3HrrrazXa56bbbque/ClS5d+xvYu/0mmaVLf929da6WUQkQQEUhCEhGBJCQhiYhAEpKQhCQkERFIIiKICEoplFIopVBrpZSCJGxjm9YamUlrjdYamYltbGMb29jGNra5ePEir/iKr4gk/uqv/urBe3t7vzNN061cddVVV1111VVX/fehHD9+nKuuuuqqq6666qqr/vNI+mvbr9113YMjAklIQhKSkIQkACQBIAkASdxPEgCSAJCEJCICSUgiIpCEJCQhCUlEBBFBKQVJSEIStrFNZpKZZCaZiW0uXLjAxsYG119/PQ996EP527/9W56fUsrxjY2Nt7548eLX8J/E9m7XdR9da6WUQkQgiYhAEpKQhCQiAklIQhKSkIQkJBERRAQRQURQa6XWSimFUgoRAYBtMpPWGq01WmtkJraxjW1sYxvbAKxWK2655Rauu+46bHPrrbdycHDwM1x11VVXXXXVVVf996EcP36cq6666qqrrrrqqqv+c43j+DsR8da11uOSAJBERHA/SUhC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AEncTxL3k4QkJCGJiEASEUFEIAlJAEhCEpKICCICSQDYxjaZSWaSmdjGNuv1mtYaD3rQg7jxxhv5u7/7O56bJGwzn89fe29v72ds7/IfJDP/pu/7j661EhGUUogIIgJJSEISkpCEJCICSUhCEpKQREQgiYiglEIphVorpRRKKUQEkrBNa43WGq01WmtkJrbJTABsA2Ab26xWK3Z2drjuuusAeNzjHketFUlIQhKSkIQkACRxP0ncTxIAtnkg29gGwDa2eepTn8pLvdRLHX/Uox714N/6rd/6Hq666qqrrrrqqv/PKMePH+eqq6666qqrrrrqqv8+rbVnAC9da31wRCAJSUhCEpKQhCQkcT9JSOJ+kpCEJCQhCUlIIiKQhCQkIQlJSEISkogIIoKIQBIAtrFNZpKZZCaZiW0ODg44fvw4p06dYmdnh6c//encTxK2ASilHO+67qX39va+h/8gknaB1661PrjWSkQQEUgiIpCEJCQhiYhAEpKQhCQkIQlJRAQRQURQSqHWSq2VWisRgSRsk5m01mit0VojM8lMbGMbANvYxja2ueeee3jFV3xFFosFf/RHf0StFQBJSEISkpAEgCSemySem22em21sk5nceuutvNqrvRq/8Au/8DVcddVVV1111VX/n1GOHz/OVVddddVVV1111VX/fSTtjuP4O33ff3REIAkASUhCEpKQhCQAJAEgCQBJAEhCEgCSkIQkJBERRASSiAgkIQlJSEISkogIJCEJANtkJplJZpKZZCbr9Zq7776bxz72sZw+fRpJ3HXXXTw/Xdc9eBgGVqvV7/AfZBxHzWazt661UkohIogIJCEJSUgiIpCEJCQREUhCEpKQREQQEUQEpRRKKdRaqbVSSkESAJlJa41pmmit0VojM7FNZmIb29jGNgCr1YpbbrmF6667jt3dXe666y5KKQBIQhKSAJCEJB5IEi+IbWwDYJv7ZSbr9ZrXeq3XOv7Upz71d86ePXsrV1111VVXXXXV/1eU48ePc9VVV1111VVXXXXVfy9Ju8vl8hmz2eytI4KIQBIRgSQkIQlJAEgCQBKSAJAEgCQkIQlJSEISEYEkIgJJSEIS95NERBARRASSkASAbTKT1hq2sU1mMgwDe3t73HLLLezs7HD+/Hn29/d5fmqtDz48PPyb1tqt/Aewvdv3/UeXUiilEBFEBJKQhCQkIQlJSEISkpCEJCQhCUlIIiKICEop1FqptVJrJSKQhG1aa7TWaK3RWiMzyUxsYxvb2AbANraxzaMe9Sjm8zl/+Zd/Sa0VSTyQJCQhiedHEvezzQPZ5n62sQ3Ai7/4i3PixAn+9E//9Ge46qqrrrrqqqv+vyK46qqrrrrqqquuAl7ndV7nvT/8wz/8u7jqv42k7z44OPjtcRyZponWGtM00VojM8lMMhPbZCa2yUwyk8wkM8lMWmu01pimiWmamKaJaZoYx5FpmpimidYamUlmkpm01hjHkWEYGMeRzEQStVb6vmc+n7NYLFgsFsxmM/q+p+s6aq08/elP5ylPeQrb29u83uu9HhFBRBARRASlFEopbGxsPPjGG2/8Lv6DRMSty+Xyt6dpIjPJTDIT29jGNgC2sY1tAGxjG9tkJraxTWbSWqO1RmuNaZqYponMBCAiKKXQdR1d11FrpdZKKYWIICKICCQhCUlIQhK33XYbAA95yEN4yEMewjRN/GtI4oEkIQkASUhCEgCSkIRtfuM3foMXe7EXe22uuuqqq6666qr/zyjHjx/nqquuuuqqq676/+uaa6558Cd90if91Ju/+Zt/tKSX3tnZeW9Jf3P27Nlbueq/3DiOv1NKeetSyvGIQBKSkIQkJCEJAEkASEISAJKQhCQAJCEJSUhCEhGBJCICSUhCEgCSkEREIAlJSALANrbJTDKTzCQzsc358+e5+eab2d7e5tixYzztaU/j+YmI45IefHh4+DP8B2itPaPruveutVJKISKQREQgCUlIQhIRgSQkIQlJSEISkpBERBARlFIopVBrpdZKKYWIQBKZSWuN1hqtNVprZCaZSWZyP9vYxjar1YqdnR2uu+46AB73uMdRa0USkpCEJCQhiftJ4l9iG9vYBsA2tslMIoI3eqM3Ov4P//APv3P27Nlbueqqq6666qqr/j+iHD9+nKuuuuqqq6666v+na6655sGf8zmf81vr9fqlu67jt37rt3ja0552fLVavfbu7u7P2N7lqv9SknaPjo4uzefzt44IJAEgCUlIQhKSAJAEgCQAJCEJAElIAkASkpBERCAJSUQEkpAEgCQAJBERRASSkASAbTKT1hq2yUxss16vecYznsFjH/tYTp8+zV133cX+/j7PTRLz+fylDw8PnzGO41/z72QbSS/ddd2DSylEBBFBRCAJSUgi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affg4OAZ8/n8rSOCiABAEhGBJCQhCUkASAJAEgCSAJAEgCQkIYmIQBKSiAgiAklIQhIAkgCICCQhCUkA2CYzyUwyk8zENsMwcNddd/HYxz6W06dPc3BwwLlz53hukpjNZi89jiOr1ep3+Fcax/HBs9nstWutlFKICCICSUhCEpKQREQgCUlIQhKSkEREIImIoJRCKYXNzU2uvfZarrnmGra3t+n7nlorAMMwcPbsWe655x5uv/12zp07x7lz59jd3WVvb4+9vT0uXrzI7u4u9913H7u7u6xWK+bzOZubmzzoQQ9iPp9z++23IwlJAEjigSTx3GwDYJsHso1tbLNarXjYwx7GOI63/sM//MPvcNVVV1111VVX/X9AOX78OFddddVVV1111f8d3/zN3/x0gP39fdbrNev1mtVqRdd1lFKICFpr2CYikEQphYiglEIphYggIogIJBERSEISAJKQhCQkASAJSUhCEpKQREQwTRM7Ozuvvb29/d67u7t/Y/tWrvp3i4i/nqbpwV3XvbQkIgJJSEISkpCEJAAkASCJ+0kCQBKSkIQkJCEJSUQEkpCEJCQhCQBJAEgiIpAEgG1sY5vMJDOxjW3W6zV7e3s86EEP4vTp09x6662s12sAJGGb+3Vd9+DDw8O/aa3dyr+C7Wd0XffRtVZKKUQEkogIJCEJSUQEkpCEJCQhCUlIQhKSiAi2trZ4yEMewou92IuxublJRDAMA/fddx/33HMPt912G2fPnuXw8JBhGLifJO4niftJorXGarVif3+fzOTUqVMA7O3tsbe3hyQAJPGisA2AbWxjGwDb2Abg1KlTPPShD+W3fuu3voerrrrqqquuuur/A8rx48e56qqrrrrqqqv+b/jcz/3c37rmmmse3FpjtVohCYDWGsMwAND3PRGBJFprSEISpRQigoiglEIphYggIpCEJCQhCUncTxKSAJCEJCQhCUkARASS6Pv++M7OzmvbPr5cLn+Hq/7dpmn6m4h461rr8YhAEgCSkIQkJAEgCUkASOJ+krifJCQhCUlIIiKICCKCiEASkpAEgCQkERFIQhKSsI1tMhPbZCa2sc358+e55pprOHXqFGfOnOGJT3wi99vZ2eHlX/7lefCDH8zbvd3bHX/TN33T977lllsefOutt/7N4eHhLi8CSbuZ+dp93z+41kpEEBFEBJKQhCQkIQlJ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V1111VVXXfV/260HBwevc+HChc9erVas12vGcWSaJlprtNbITFprtNZordFao7VGa43WGq01Wmu01mit0VqjtcY0TUzTxDRNjOPIOI6s12uOHTvGqVOnAPjMz/zM1+Gqq/4F9957L5mJbWxjG9sA2AbANg9km3+JJCTxQJK4nyQkIQlJSAJge3v7s7nqqquuuuqqq/6vILjqqquuuuqqq676P872ra21zzl//vxDDg8Pb12v14zjyDRNtNaYponMJDNprdFao7VGa43WGq01Wmu01mit0VqjtUZrjdYa0zQxTRPjODKbzXid13kdAH7rt37ru//hH/7ht7nqqn9BZpKZ2MY2tgGwzQPZxja2eUEk8dwkASAJAElIQhIAkpCEJCKCzHzQ1tbWa3PVVVddddVVV/1fQDl+/DhXXXXVVVddddVV/0/sDsPwM+v1erfW+to8F9tIAsA2/xq2AXiDN3gDtre3ue+++279rM/6rNfhqqv+BWfOnHnwmTNnXvsv//IvKaUQEUhCEhGBJAAkIQlJSEISkpAEgCQAJPH8SAJAEv+ScRxZLBbs7+//DFddddVVV1111f92BFddddVVV1111VX/v9w6TdPnnD9//iGHh4e3rtdrxnFkmiZaa0zTRGuNzKS1RmuN1hqtNVprtNZordFao7VGa43WGq01Hv7wh3P99dcD8PVf//Xvw1VXvQj+4R/+4XfOnDlDa43MxDb3s41t/jNIQhKSAJCEJCQREZRSXpurrrrqqquuuur/AoKrrrrqqquuuuqq/59u3dvbe50LFy589mq1YhgGxnGktcY0TbTWyEwyk9YarTVaa7TWaK3RWqO1RmuN1hqbm5u83uu9HgC/9Vu/9d3/8A//8NtcddWL4OzZs7dee+21TNOEbWxjG9vY5n62+feSBIAkHkgSAJKQREQwTdODT5w48d5cddVVV1111VX/2xFcddVVV1111VVX/f916zRNn3PhwoWHHBwc3LperxmGgWmamKaJaZporZGZZCatNVprtNZordFao7VGa403eIM3AOC+++679eu//uvfh6uuehHdd999t547d+63T5w4QWuNzMQ2tgGwjW0AbPOvIQlJPJAkACQhCUlIQhKSkEREAHDs2LHP4qqrrrrqqquu+t+Ocvz4ca666qqrrrrqqqv+n9sdhuFn1uv1bq31tXkmSdjmgWzz3F7iJV6Cl3/5lwfgS77kS97m7Nmzt3LVVf8K99133zNe7uVe7r2f+MQnUmslIpCEJCICSQBIAkASkpAEgCQkASCJ+0kCQBKSuJ8knh/bPJfjmfk7wzDcylVXXXXVVVdd9b8VwVVXXXXVVVddddVVALdO0/Q5Fy5ceMjBwcGtwzAwDAPTNDFNE601WmtkJplJa43WGtvb27zZm70ZAL/1W7/13f/wD//w21x11b/S2bNnb73++ut/u7VGZpKZ2MY2trHNA9nGNrZ5QSTx3CTxQJKQhCQkIQlJSEIS4zhy7Nix9+Kqq6666qqrrvrfjHL8+HGuuuqqq6666qqrrnqW3WEYfmYYht1SymvzALZ5INu88zu/M8ePH+e+++679bM+67Neh6uu+jc4PDzcPTo6uvXUqVPvvbu7SymFiCAikEREIAkASUhCEpKQhCQkASAJAEk8P5IAkMS/xDa11uOXLl36Gq666qqrrrrqqv+tKMePH+eqq6666qqrrrrqquewm5m/s1qtfgd47Yg4zvPxkIc8hNd93dcF4Eu+5Eve5uzZs7dy1VX/RmfPnn1GZj54vV6/dCmFiCAiiAgkIQlJAEhCEpKQhCQkASAJAEm8IJK4nyRemNba8VrrM1ar1V9z1VVXXXXVVVf9b0Rw1VVXXXXVVVddddXzZfu39/f3X+fChQufvVqtGIaBaZqYponWGu/3fu8HwI/8yI989j/8wz/8Nldd9e909uzZ75mmCdvYxja2+c8iiecmCUlIQhK2OX78+Gdx1VVXXXXVVVf9b0Vw1VVXXXXVVVddddULc+s4jp9z/vz51zk4OLh1vV4zjiMf8AEfAMA//MM//PaP/uiPfg5XXfUfQNKtrTUyE9vYxja2sY1tAGzzryWJB5IEgCQkIQlJSEISkpBERNBae/D29vZrc9VVV1111VVX/W9EcNVVV1111VVXXXXVv8j2b+/v77/OhQsXPvuWW27h4Q9/OAA/8iM/8jlcddV/kIi4dZqm326tkZnYBsA2z802D2SbF0QSAJKQxP0k8fxIQhIRQUQwDAPHjh17L6666qqrrrrqqv+NqFx11VVXXXXVVVdd9aK6dRzHz7l06RL33Xffe//Wb/3Wd//DP/zDb3PVVf+xvqe19tq2sY1tAGxjG9tIAsA295PE8yOJ5yYJ29xPEg9kG0lIQhIRQSnldbjqqquuuuqqq/43Qg960IO46qqrrrrqqquuuupf55prrnnwfffddytXXfUfLDMfXEp5+ubmJn3fU2ullEIphYggIpBERCAJSUhCEpKQBIAkACTxQMePHwfg+PHjAFy8eJHjx4/ztKc9DYDMxDa2yUxaa7TWsM1qtXqf8+fPfzdXXXXVVVddddX/JuhBD3oQV1111VVXXXXVVVddddX/HJn5W1tbW6/d9z1d11FKoZRCRBARRAQRgSQkIQlJSEISAJIAOHHiBC/zMi/Dgx/8YB7ykIfwQLu7uxw/fhyAixcvAvD0pz+dpz3tafzZn/0ZtmmtkZmM48hisbj1aU972kO46qqrrrrqqqv+N0EPetCDuOqqq6666qqrrrrqqqv+55im6bM2Nzc/ez6f03UdpRRKKZRSiAgiAklEBJKQhCQkIQmAl33Zl+V1X/d1OX78OA+0XC4BODo64oFOnTrFA128eJGnPvWp/Nmf/RlPfvKTmaaJWisXL158nb29vd/mqquuuuqqq6763wI96EEP4qqrrrrqqquuuuqqq676n6O19tqz2ey3FosFXdfRdR2lFCKCiCAiiAgkERFIQhKSeN3XfV1e7/Vej/stl0tuv/12lssld9xxBwCSeG6SWCwWnDx5klOnTnHjjTdyvz/7sz/jl37pl7jvvvuotX737bff/j5cddVVV1111VX/W6AHPehBXHXVVVddddVVV1111VX/c2TmgyPi6Zubm/R9T9d1lFIopRARRAQRgSQkERGcPHmSt3/7t+chD3kIAEdHR9xxxx08+clP5rlJ4rlJ4oEWiwU33XQTD3/4wwG4ePEif/zHf8yv//qv33rrrbc+hKuuuuqqq6666n8LyvHjx7nqqquuuuqqq6666qqr/ueQtDtN02t3XffgWiuSiAgkIQlJSEISknjoQx/KR37kR3LixAmOjo74h3/4B/7mb/6GCxcu8Nwk8dwk8dxaa1y4cIE777yTaZq48cYbecQjHsG5c+eO33fffc9YLpd/zVVXXXXVVVdd9b8B5fjx41x11VVXXXXVVVddddVV/7Nkpkopb11rJSKICCQREUhCEgAv//Ivz3u+53sCcPvtt/PHf/zH7O3tASCJ5yaJ5yaJ5yYJgGmauHDhAgAnT57kJV/yJTk4OHjpxz3ucV/DVVddddVVV131vwHl+PHjXHXVVVddddVVV1111VX/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mdgmM8lMMpPMpLVGZtJao7XGNE201mitMU0TrTVaa0zTRGuN1hqtNVprtNZorZGZtNbITDKTzCQzyUwyk8zENpmJbTIT29jGNraxjW1sYxvb2MY2tgGwjW1sA2Ab29gGwDa2sQ2AbWxjG9vYxja2sY1tbJOZ2Ga1Wt0KcOnSpd8+ODj4nWEYbh2G4be56qqr/ttdc801D36xF3ux13qd13md936xF3ux1+aFuO+++2695pprHnzffffd+lu/9Vvf/du//dvfc999993KVVddddVVV131fwV60IMexFVXXXXVVVf9f/I6r/M67/3hH/7h39Vao7VGRCAJSUgCQBIAtgGwjW1sk5lkJplJZtJao7VGa43WGq01WmtM00RrjWmaaK3RWmOaJlprtNZordFao7VGZtJaIzNprZGZZCaZiW0yk8zENpmJbWyTmdjGNraxjW1sYxvb2AbANraxDYBtbGMbANvYxjYAtrGNbWxjG9vYxja2sY1tbJOZRASHh4e37u3t/fbh4eHvrNfrW4dh+G2uuuqq/zbXXHPNgwFe7MVe7LUBnzlz5sE809mzZ59x3333Pf0f/uEffoerrrrqqquuuur/KvSgBz2Iq6666qqrrvr/5MM//MO/67GPfex7b21tMU0TEUEphYhAEhFBRCAJSUhCEg9kGwDbZCa2yUwyk9YamUlrjdYarTWmaaK1RmuNaZporTFNE601pmmitUZrjdYarTVaa7TWyExaa2QmmUlmkplkJpmJbTIT22QmtrFNZmIb29jGNraxjW0AbGMb29gGwDa2AbCNbWwDYBvb2MY2tgGwjW1sY5vMxDa2yUxss1qtbt3f3//t5XJ569HR0e+s1+tbJd3KVVddddVVV1111VVXXfWfjcpVV1111VVX/T/zYi/2Yq99zTXXcN9995GZRAQRQUQQEUQEEUFEEBFEBBFBRCAJSUhCEgClFO5nG9vYJjPJTDKTzKS1RmuN1hqtNVprTNNEa41pmmitMU0TrTVaa0zTRGuN1hqtNVprtNbITFprZCatNTKTzCQzsU1mkpnYJjOxjW1sY5vMxDa2sQ2AbWxjG9vYBsA2trENgG1sYxsA29jGNgC2sY1tbGMb2/R9/+Ctra33tk1mArBcLm8dx/HWw8PDWw8ODn5ntVrdmpm/zVVXXXXVVVddddVVV131H4nKVVddddVVV/0/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7e0xDAP7+/uUUiilEBGUUiilUEqhlEIphYiglEIphVIKEUEphVIKEUFEEBFEBBFBRBARSEISkpCEJJ4f2wDYxja2sU1mYpvMxDaZSWZim8zENrbJTGwDkJkAtNaQBIAkJBERRASSiAgigoiglEJEIImIICKQhCQkERE8kG0AMhPbZCaZSWbSWiMzmaaJ1hqtNaZporXGNE1M08Q0TbTWmKaJaZporTFNE601Wmu01mit0VqjtUZm0lojM8lMMpPMxDaZSWZiG9tkJrbZ3t4G4B/+4R9+h6uuuuqqq6666qqrrvr/hcpVV1111VVX/T9wzTXXPBjg7NmzLJdLNjY2OH36NADXXXcd1113HfdbrVbs7u6yt7fHMAzs7+8TEZRSKKVQSqGUQimFiKCUQimFUgqlFEoplFKICEopRASlFCKCiCAiiAgkERFIQhKSAIgInpttAGxjG9vYJjOxTWZim8wkM8lMbJOZ2MY2trGNbWyTmdxPEpKICCQREUQEEUFEEBFEBBFBRCCJiEASkgAopXA/2wBkJrbJTDKTzCQzaa3RWqO1xjRNtNaYpolpmmitMU0T0zQxTROtNaZporXGNE201mit0VqjtUZm0lojM8lMWmtkJrbJTBaLBff7h3/4h9/mqquuuuqqq6666qqr/n+hctVVV1111VX/D5w5c+ZBAPfccw9///d/T0SwtbXF1tYWm5ubXHPNNWxsbHD69Gnm8znXXXcd1113HfdbrVasVivW6zX7+/uM48je3h6lFEopRASlFEoplFIopVBKoZRCKYVSCqUUSilEBKUUIoKIoJRCRCCJiEASEYEkJAEQETw32wDYxja2sU1mYpvMJDOxTWaSmWQmtslMbGMb29gmM8lMACQBIImIQBIRQUQQEUQEEUFEEBFIIiKQhCQkIYlSCvezjW1sY5vMJDPJTDKT1hqtNVprtNaYpolpmmitMU0T0zQxTROtNaZpYpomWmu01pimidYarTUyk9YarTUykxtvvJH73Xfffbdy1VVXXXXVVVddddVV/79Queqqq6666qr/B6655poHA1y6dIlhGJDEOI7s7u4iiSc/+clEBFtbW0jimmuu4ZprrmFjY4PTp08zn8+Zz+cAXHvttQCsVitWqxXr9Zr9/X3GcWRvb49SCqUUSimUUiilUEqhlEIphVIKpRRKKZRSKKUQEZRSKKUQ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wOHh4a2Hh4ffwzPVWh88m81eq+/7B994443vDTz4vvvuu5WrrvpP9A//8A+//Q//8A/f/U7v9E7v/Zmf+Zm8MLaxTURw3333AdD3PQC2+bewzQPZ5oFs869xzTXXPJirrrrqqquuuur/OipXXXXVVVddddVV/wtN03TrNE23Hh4e8mVf9mWfc8011zyYq676L/CjP/qjn/NN3/RN7/3ar/3a/NZv/RaSuJ8kbAMgCdtkJrY5e/Yss9mM52abF8Q2/x62eUHm8zkA9913361cddVVV1111VX/lxFcddVVV1111VVX/R9w33333XrffffdylVX/Se77777bv36r//693nnd35nHvvYx5KZ2MY2trGNbWxjG9vcd999AMxmM2zzgtjmBbHNA9nmgWzzrzGfz7nvvvtuve+++27lqquuuuqqq676v4zgqquuuuqqq6666qqrrvpX+a3f+q3v/q3f+q3P/siP/EhOnz5NZpKZZCa2sY1tbGOb++67D4DZbMZsNuN+tnlBbPMfzTYA1113HQD/8A//8NtcddVVV1111VX/1xFcddVVV1111VVXXXXVVf9qP/qjP/o5v/3bv/3ZX/AFX8CpU6fITDKTzMQ2trGNbWxz9uxZAGazGc+PbV5UtvmX2OYFOXbsGAD33XffrVx11VVXXXXVVf/XUY4fP85VV1111VVXXXXVVVdd9a/3D//wD7+zubnJB3/wB7/2fD7nb//2b3lBJPEKr/AKzGYzzp07h21eENs8kG1eGNv8azz84Q+n1so3fMM3vM/h4eEuV1111VVXXXXV/2UEV1111VVXXXXVVVddddW/2Y/+6I9+zqd92qc95KVe6qV++3u+53t4zGMeQ2uNzCQzsY1t/v7v/x6A2WzGzs4OD2Sb/0i2eW62AbjuuuuYz+f8wz/8w2/fd999t3LVVVddddVVV/1fRzl+/DhXXXXVVVddddVVV1111b/d4eHh7m/91m99z8HBwa1v9VZvdfwVX/EVH/yEJzyBw8NDbANweHjIi7/4i3P99dcDcPHiRZ4f2zyQbR7INg9km3+Nhz3sYcznc370R3/0c2699da/5qqrrrrqqquu+r+Ocvz4ca666qqrrrrqqquuuuqqf79bb731b37rt37re57ylKd8zyu8wivsHj9+nNtvv/3BPNM//MM/8Iqv+IocO3aMo6Mj1us1tvnPZhuAa6+9lptuuol/+Id/+O3v+q7v+hiuuuqqq6666qr/DyjHjx/nqquuuuqqq6666qqrrvqPc3h4uPuUpzzld+6+++7vmc/n352Zu6211z48PGRra4uXeqmXYjabcfbsWR7INg9kmweyzQPZ5rnZ5vmZz+e89Eu/NABf//Vf/z5nz569lauuuuqqq6666v8Dgquuuuqqq6666qqrrrrqP804js+IiM+Zz+cPaa399q/92q9x3333sbOzw4033sh/lUc96lEA/MM//MNv/8M//MNvc9VVV1111VVX/X9BOX78OFddddVVV1111VVXXXXVfy7bu6WU7+n7/hn/8A//8NKv93qvd/zYsWMA7O3tYZsHss0D2eZfYpvnZpuXeqmX4vjx49x33323fvzHf/zLcNVVV1111VVX/X9COX78OFddddVVV1111VVXXXXVf431ev3XBwcHP33fffftPuhBD3rtG264AYC9vT3+NWzzL5nP57zYi70Yx48f57777rv1Qz7kQx7CVVddddVVV131/w3l+PHjXHXVVVddddVVV1111VX/dVprl572tKf9zubmJi/+4i/+2seOHQNgb28PANs8kG3+tebzOS/5ki/J1tYW9913361f//Vf/z5nz569lauuuuqqq6666v8byvHjx7nqqquuuuqqq6666qqr/uv9wz/8w+8ASOLhD3/4g6+55hpKKezt7fHC2Oa52QZgPp9z44038mIv9mLUWrnvvvtu/ZAP+ZCHnD179lauuuqqq6666qr/j9CDHvQgrrrqqquuuuqqq6666qr/Ptdcc82DP+dzPue3AK655poHr9drbrvtNu677z5s89xs89xmsxnXXnstD3rQg7jfj/zIj3z2j/7oj34OV1111VVXXXXV/2foQQ96EFddddVVV1111VVXXXXVf68zZ8486HVe53Xe+8Vf/MVf+8Ve7MVeG2C9XrNarVitVly6dIn1eo1t7nfs2DEArr32WubzOff7h3/4h9/+uq/7uvc+e/bsM7jqqquuuuqqq/6/Qw960IO46qqrrrrqqquuuuqqq/5nuOaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM61WK+bzOS/Ifffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111VVXoAc96EFcddVVV1111VVXXXXVVf/znDlz5kEv/uIv/jov9mIv9loA11xzzYN5pvvuu+/W++6771aAf/iHf/jtf/iHf/gdrrrqqquuuuqqq54XetCDHsRVV1111VVXXXXVVVddddVVV1111VVXXfV/EpWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+Kcvz4ca666qqrrrrqqqv+L3mxF3ux15bE5ubm8cPDw12uuuqqq6666qqrrrrq/y8qV1111VVXXXXVVf9HRMSDX/zFX/y1P+RDPuSzNjY2Hnx0dHTrb/3Wb333j/7oj34OV1111VVXXXXVVVdd9f8Tlauuuuqqq6666qr/ZSLiwaWUBy8Wi9eaz+cP7rruwdvb268tibd8y7fkmmuu4W/+5m8AHvxO7/ROn3327Nln/NZv/dZ3c9VVV1111VVXXXXVVf//ULnqqquuuuqqq676HyoiHlxKefBisXit+Xz+kK7rHrS9vf3akpBERCAJSUhCEi/zMi8DwN/+7d8CsLW1xTu90zt99m/91m99N1ddddVVV1111VVXXfX/D5Wrrrrqqquuuuqq/2YR8eBSyoMXi8VrzWazB89ms4dsbW29liQkERFIQhKSkIQkJAEgCUm85Eu+JABPfepTud/f/u3f8jZv8zYPesd3fMfP+tEf/dHP4aqrrrrqqquuuuqqq/5/oXLVVVddddVVV131XyQiHlxKefBisXit2Wz24L7vH7y1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++xSChFBRCAJSUhCEpKQhCQAJAEgiReVJF5UknhhDg8Pue+++7jmmmse9GIv9mKv9Q//8A+/zVVXXXXVVVddddVV/5GoXHXVVVddddVV/6J/+Id/+O0f/dEf/ZwP//AP/66XeZmX4elPfzpPf/rTeX7GcbzVNkdHR789DMOth4eHvzNN063jON7KVf+pIuLBx44d++xjx469VymFiCAiiAgkERFIQhKSkIQkJAEgCUlIAkASkgCQBIAkACQBIIm9vT329vbY2dlhc3OTw8NDXhhJ/EvOnj0LwIu92Iu99ou92Iu99j/8wz/8Ni9AKeW1z5w581sRQUQQEUQEkpCEJCQhCQBJAEhCEve7ePEiJ06cYHNzk8PDQ54fSbyoJPEvkcTf//3f87qv+7q8zuu8znv/6I/+6Odw1VVXXXXVVVddddV/JCpXXXXVVVddddWL5Ld+67e++8yZMw968Rd/8dd+m7d5m9f+q7/6K57+9Kfz4Ac/mB/90R/97MPDw99ZLpe/zVX/5ebz+WedOHHivefz+YMjglIKEYEkIgJJSEISkpCEJCQhCQBJSAJAEpIAkASAJAAkASAJAEkA7O3tsbOzw+bmJoeHh7wgkviXSOLw8JBbb72VBz/4wbzO67zOe/3DP/zDb/NcJD342LFj37VYLF47IogIIgJJSEISkpCEJCQBIAkASQBIAuDpT386J06cYGtri8PDQ56bJF4UknhRSALg8PAQgGuuuebB11xzzYPvu+++W7nqqquuuuqqq6666j8K5fjx41x11VVXXXXVVS+af/iHf/idf/iHf/idU6dOHb/22mt3+77/7d/+7d/+mGc84xnfM03TrVz1X0bSgzc3Nz/qhhtu+O2dnZ3Xns1mx2ut1FqJCEopRAQRQUQQEUQEEUFEEBFIQhIRgSQkERFIQhKSkIQkJCEJSUhCEpKQhCR2dna46aabODw85L777uO5SUIS/xJJ3G93d5dHPvKRbG5uHv+FX/iFr+EB5vP5Z506deqnZ7PZg2utRASlFCKCiCAiiAgkIQlJAEgCQBIAkrjfYx/7WK6//noODg647777uJ8kJPGikMS/RBKSuN84jlxzzTVsbm5y6623/s2tt97611x11VVXXXXVVVdd9R+FylVXXXXVVVdd9a9y33333fr1X//178NV/y0i4sGbm5vvdfLkyc8upVBKISKQ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1VVXXfWfCT3oQQ/iqquuuuqqq6666rldc801D/6cz/mc37rmmmsefPHiRb7pm76J3d1dJCEJgIhAEpKQxMmTJ3md13kdXvqlX5r7Xbp0ib/927/lt37rt249f/78d99xxx2fw1VXXXXVVVddddVVV131XwU96EEP4qqrrrrqqquuuur5OXPmzIM+4iM+4rvPnDnz4K7rHvwXf/EX/MZv/AaSkIQkTp48ycu8zMvwMi/zMhw/fpz7/d7v/R5/93d/x7lz52698847P+fcuXPfzVVXXXXVVVddddVVV131Xw096EEP4qqrrrrqqquuuuoFueaaax782q/92u/1Tu/0Tp8NsLu7y2/+5m9y66238jIv8zK8zuu8Dvfb3d3l7/7u7/j7v/97Sim//du//dvvs16vb+Wqq6666qqrrrrqqquu+u+CHvSgB3HVVVddddVVV131L3mxF3ux136nd3qnz3qxF3ux1+b5+L3f+z1uv/12HvSgB3H8+PHf/szP/MzX4aqrrrrqqquuuuqqq67670Y5fvw4V1111VVXXXXVVf+Ss2fP3voP//APv3Prrbf+9ebm5vFrrrnmwTzAgx70ICLit5/ylKd899d//de/D1ddddVVV1111VVXXXXV/wToQQ96EFddddVVV1111VX/Fi/2Yi/22lzhs2fPPuO+++67lauuuuqqq6666qqrrrrqfxL0oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/Kv4Rn9NJO1dk+20AAAAASUVORK5CYII=) +![Rendered example of patternCircular3d 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGU+klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpvdc011zz4tV/7td/rxV/8xV/7zJkzD77mmmsefN999936D//wD79933333fqjP/qjn8NVV1111VVXXXXVVVf921C56qqrrrrqqquuuuq/3DXXXPPg137t136vd3qnd/psno9rrrnmwX3fv/cwDLcC/OiP/ujncNWL7JprrnkwD3DffffdylVXXXXVVVddddX/T1Suuuqqq6666qqrrvov82Iv9mKv/eEf/uHfdc011zyYZ9rf3+fxj388t99+O894xjNordFaYxxHNjY2Hvze7/3en/0P//APv/MP//APv81Vz+Gaa6558JkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq/NA9x33323XnPNNQ8GuO+++249e/bsrX//93//2//wD//wO//wD//w21x11VVXXXXVVVf934ce9KAHcdVVV1111VVXXXXVf64Xe7EXe+0P//AP/65rrrnmwQCHh4fcfffdPPzhD2d/f5/v+77vo7VGa43WGq01pmliHEc2NjZ42tOe9pD77rvvVq7immuuefBrv/Zrv9eLv/iLv/aLvdiLvTbPx/7+PgC2AdjZ2eG5/cM//MNv/8iP/Mjn/MM//MNvc9VVV1111VVXXfV/F3rQgx7EVVddddVVV1111VX/Oa655poHf/iHf/h3vdiLvdhrA6xWK57xjGfwN3/zN3Rdxxu8wRuwtbXFE5/4RH7913+d1hqZSWuNaZqYpolxHBmG4buf+MQnvg//j73O67zOe7/O67zOe73Yi73Ya9933323XnPNNQ8GWC6X3H777dxzzz1cvHiRixcvMk0T4zjSWqO1RmuNra0tbrrpJm666SZe8iVfkvv9yI/8yGf/6I/+6Odw1VVXXXXVVVdd9X8TetCDHsRVV1111VVXXXXVVf+xrrnmmge/9mu/9nu90zu902cDtNY4f/48T3nKUzg4OODo6IjVasVsNuNt3uZtAPiZn/kZbr/9djKT1hqtNaZpYpom5vM5f/mXf/k66/X6t/l/5nVe53Xe+x3f8R0/65prrnkwz3TrrbeyXq+55557mKaJYRhYr9es12uGYWAYBqZpYpomWmu01shMWmu01tje3ubDP/zDud/Xf/3Xv89v/dZvfTdXXXXVVVddddVV//dQjh8/zlVXXXXVVVddddVV/3Fe7MVe7LW/4iu+4q9e/MVf/LUBbLO3t8f+/j6tNVprZCa2Wa/XtNa47rrruPHGG7n11lsZhoHntl6vmc/nr723t/cztnf5f+DFXuzFXvtzP/dzf+t1Xud13ntzc/P40dERT3/60/mLv/gL9vb2ODo6QhIAtslMMpPMxDa2sc39bGMbgNVqxc0338zx48e5ePEir/Var/XWZ8+efcatt97611x11VVXXXXVVVf930I5fvw4V1111VVXXXXVVVf9+11zzTUPfp/3eZ+vet/3fd+vBogIFosFEQGAbVprZCatNTKTzGR/f5/jx49z6tQpzpw5wxOe8ASen1LKcdvHDw8Pf4b/w6655poHf9InfdJPvdM7vdNnb25uHj84OOAv/uIv+Iu/+AsuXrxIKYVSChGBJABsY5vMJDPJTGyTmdjGNraxDYBtdnd3eamXeilWqxW/8Au/wJu+6Zu+9C/8wi98DVddddVVV1111VX/t1COHz/OVVddddVVV1111VX/Pi/2Yi/22p/0SZ/0Uy/+4i/+2gCSWCwWlFKICO6XmWQmmUlrjcxkvV5z9913c/PNN3Pq1CkigrvuuovnZz6fv/QwDKxWq9/h/6DXeZ3Xee/P/dzP/a1rrrnmwfv7+/z93/89v/Vbv8Xu7i4RQUQQEZRSiAgkIQkA22QmmUlmYhvb2MY2trENgG1s88hHPpITJ07wh3/4h1x//fXH77777t85e/bsrVx11VVXXXXVVVf930E5fvw4V1111VVXXXXVVVf9273jO77jZ33ER3zEd29ubh6fpond3V0iglIKpRQiAkkA2CYzaa2RmWQmtlmv1yyXS2655Ra2t7c5f/48+/v7PD+11gcfHBz8TWvtVv4P+fAP//Dveqd3eqfPBrjzzjv5sR/7Me655x4kIQlJRASlFEopRAQRgSQAbJOZZCaZSWZiG9vYxjYAtrHNarWi73se/OAHc+LECX7jN36Dm2+++dZ/+Id/+B2uuuqqq6666qqr/u+gHD9+nKuuuuqqq6666qqr/m0+93M/97de53Ve570B7r77bu666y4kERGUUogISilEBJIAsE1rjcyktUZmkplcuHCB1hoPetCDuPHGG/m7v/s77icJ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V1111VVXXfW/D+X48eNcddVVV1111VVXXQUf/uEf/t2bm5vHv/M7v5PVaoUkJCEJSUhCEveTBIAkACQBIAkASUgCQBKSkIQkJAEgiYggIogISilEBBHB/TKTzKS1RmaSmazXa+6++24e85jHcPr0aQ4ODjh37hzPz2w2e+nlcvmMYRj+mv9mZ8+efcabvumbvvXv//7vH6+1UkohIogIJCEJSUgiIpCEJCQhCUlIQhKSkEREEBFEBKUUSilEBBGBJABsk5m01shMbJOZ2OZ+trGNbVarFTs7O1x33XUAPOUpT3nw3t7e93DVVVddddVVV131vw/BVVddddVVV1111VWXXXPNNQ9+0pOexNmzZ5mmidYarTUyk8wkM8lMMhPbZCaZSWaSmWQmmUlrjcwkM2mt0VqjtUZrjdYa0zQxjiPjOLJer1kulyyXS9brNeM4kplEBLPZjMViwebmJhsbG2xsbDCfz5nNZnRdx3K55A/+4A8AeIVXeAWOHTtGRBARRASlFEopdF3Hdddd91mllAfz3+y+++679bM/+7MfcuzYsVunaaK1RmaSmdjGNraxjW1sYxvb2AbANraxTWaSmbTWaK3RWiMzsY1tJBERlFIopVBrpZRCRBARRASSkIQkJBERRAS/93u/B8BDH/pQ+r5/MFddddVVV1111VX/O1GOHz/OVVddddVVV1111f9311xzzYNf8RVf8a1//dd//fidd96JJCQREUhCEpKQhCTuJwkASQBIQhIAkpCEJCQBIAlJRAQAkpCEJCKCUgqlFCICSUgCwDaZSWuN1hqZiW3Onz/PxsYG119/PQ996EP5u7/7O56fUsrxjY2Nt7548eLX8D/A7u7upb7v37rWSimFiCAikIQkJCEJSUhCEhGBJCQhCYCIQBIRQSmFiKCUQkRQSiEikIRtbNNaIzPJTGxjG9vYxja2AbDNarXilltu4brrrmNvb+/4nXfeyXK5/B2uuuqqq6666qqr/nehHD9+nKuuuuqqq6666qr/7w4PD3cf8pCHvPTZs2df+s4770QSkgCQhCQkIQlJAEjifpIAkIQkJAEgCUlIQhKSkIQkJCEJSUgiIogISilEBBFBRABgm8yktUZmkpnYJjM5f/48N998M9vb20jirrvu4vmJiOPjOLJarX6H/367Xdd9dK2VUgqlFCQREUgiIpCEJCICSUhCEpKQhCQigohAEhFBRFBKoZRCKYWIQBIAmUlmkplkJpmJbTIT29gGwDa2sc3Fixd5qZd6KW644Qb+7M/+7MEXL178Gq666qqrrrrqqqv+d6EcP36cq6666qqrrrrqqqvg8PDw0s0338xTn/rUl5aEJCQhCUlIQhKSAJAEgCQAJAEgCUlIQhIAkpCEJCQhCUlIQhIAkpBERFBKISKICCQBYJvMJDNprZGZZCbr9Zpz587x8Ic/nO3tbc6fP8/+/j4AkrANgCRqrQ8+PDz8m9barfw3krQ7TdODu6576VorpRQkIYmIQBKSkIQkJCEJSUhCEpKQhCQkERFEBKUUSilEBKUUIoL7ZSatNTKTzCQzsY1tAGxjG9vYxjaPfOQjOX78OLfddtvxO+6443emabqVq6666qqrrrrqqv89KMePH+eqq6666qqrrrrqKjh79uyt586d+5v77rvvb+bz+VtLQhIAkpCEJCQhCQBJAEjifpKQhCQAJCEJSUgCQBKSiAgAJCEJSUiilEIphYggIpCEbWyTmWQmmUlmYpuDgwNaazzoQQ/ixhtv5O/+7u94fkopx+fz+WtfvHjxa/hv1lq71Pf9e9daiQhKKUQEEYEkJBERSEISkpCEJCQhCUlEBBFBRBARRASlFEopRAQRgSQAMpPMpLVGZpKZ2CYzsY1tbGMbgNVqRd/3PPjBDwbgKU95yoP39va+h6uuuuqqq6666qr/PSjHjx/nqquuuuqqq6666qorDg8PdyPir6dpenDf9y8dEUhCEpKQhCQkASAJAEkASAJAEpKQBIAkJCEJSUhCEpKQhCQkIQlJRASlFEopRAQRgSRsY5vWGplJaw3bZCZ7e3ucOHGCU6dOsbOzw9Of/nRs89wi4rikBx8eHv4M/40i4lbbr9113YNrrUQEEYEkJCEJSUhCEpKICCQhCUlIQhKSiAgkERGUUiilUGslIogIAGyTmWQmmUlmkpnYxja2sY1tAGyzu7vLK77iK7JYLPjDP/xDlsvl30zTdCtXXXXVVVddddVV/ztQjh8/zlVXXXXVVVddddVVz2mapr/puu6tI+K4JAAkEREASAJAEpIAkMT9JCEJSUgCQBIAkpCEJCQhCUlIAkASkogIIoJSChGBJCRhm8wkM8lMWmtkJuv1mrvvvpvHPOYxnD59GkncddddPD+z2eylx3FktVr9Dv+NWmvquu6ta62UUogIIgJJSEISkpBERCAJSUhCEpKQREQgiYiglEJEUEqhlEIphYhAErbJTDKT1hqtNTIT29jGNrYBsI1tVqsVt9xyC9dddx2llONPetKTbl0ul7/DVVddddVVV1111f8OlOPHj3PVVVddddVVV1111XOStLter3+m67qPLqUQEQBIIiIAiAgAJAEgCQBJAEhCEpKQhCQkIQlJAEgiIpCEJCQhCUlIopRCRFBKQRKSALBNa43WGplJZmKb1WrF3t4et9xyCzs7O9x6660Mw8Bzk0St9cEHBwd/01q7lf8mtne7rvvoUgq1ViKCiEASkpCEJCICSUhCEpKICCQhCUlIIiKICCKCUgq1VkopRASSALBNa43MpLWGbTKTzOR+trGNbWxz8eJFXuqlXooTJ07wZ3/2Zw++ePHi13DVVVddddVVV131vwPl+PHjXHXVVVddddVVV131vCTtLpdL5vP5a0siIpCEJCQBIAlJSAJAEveThCQAJAEgCUkASEISkpCEJCQBIAlJRASlFCKCiEASkrCNbTKT1hqZSWZim/Pnz7OxscH111/PQx/6UP7u7/6O56eUcnyxWLz2xYsXv4b/JpJ2M/O1u657cK2ViCAiiAgkIQlJSEISkpCEJCQhCUlIIiKQREQQEZRSKKUQEZRSiAgAbJOZtNbITFprZCa2sY1tbGMb2wDY5pprruG6667jtttuO3777bf/zjRNt3LVVVddddVVV131Px/l+PHjXHXVVVddddVVV131/Nl+hu2X7rruwRGBJAAkIQlJSEISAJIAkASAJO4nCQBJSEISkpCEJCQhCUlIQhKSiAgigoggIogIAGxjm9YarTUyk8zENufPn+fmm29me3ubnZ0dnv70p/P8RMRx4MGHh4c/w3+T1tozuq57767rKKUQEUgiIpBERCAJSUgiIpCEJCQhCUlIQhKSKKUQEZRSKKVQSiEikARAZpKZtNbITGyTmdjGNraxDYBtVqsVtnnUox7FiRMn+Lu/+7sH7+3tfQ9XXXXVVVddddVV//NRjh8/zlVXXXXVVVddddVVz5+k3XEcf6fruo+OCCQhCUlIQhKSkIQkACRxP0lI4n6SAJCEJAAkIYmIQBKSkIQkJBERRAQRQSmFiEASALbJTDKTzCQzyUzW6zXPeMYzeMxjHsPp06e5++672d/fB0AS95PE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kIQkACQhCQBJSEISEYEkJCEJSQBIIiKICCKCiEASALaxTWuNzCQzsU1mcuHCBa655hpOnTrFmTNneOITn8jzU0o5vrGx8dYXL178Gv6TSdrNzNfuuu7BtVYigoggIpCEJCQREUhCEpKQREQgCUlIIiKICCKCiKCUQimFUgqlFEopSMI2mUlrjcyktUZmkpnYxja2sQ2AbVarFbZ50IMehCSe8pSnPPjSpUvfw1VXXXXVVVddddX/DJTjx49z1VVXXXXVVVddddV/nGma/iYi3rrWelwSkpCEJCQhCUlIAkASAJIAkIQkJCEJSUhCEpKICCQREUhCEpIAkIQkJBERRAQRgSQAbJOZZCatNTKTzMQ2d911FzfffDOnTp1CEnfeeSfPzTa11uPjOLJarX6H/2TjOKrv+7fuuo5SChGBJCICSUhCEpKQhCQkIQlJSEISkogIJBERRAS1VkoplFKICCIC22QmmUlrjdYamYltbGOb+9nGNra5ePEir/iKr8hiseCP/uiPWC6XfzNN061cddVVV1111VVX/fejHD9+nKuuuuqqq6666qqr/uNI2l2v13/T9/17RwSSAJCEJCQhCUlIAkASAJIAkIQkACQhCYCIQBIRgSQiAklIQhIAkpBERBARSCIikASAbTKTzCQzyUwyk/V6zblz53j4wx/Ozs4O58+fZ39/nweShG26rnvw4eHh37TWbuU/127XdR9da6XWSkQQEUgiIpCEJCQhCUlEBJKQhCQkIQlJRAQRQSmFUgq1VmqtlFKICABs01qjtUZrjcwkM7FNZmIb29jGNgDL5ZJbbrmF6667jv39/ePPeMYzbl0ul7/DVVddddVVV1111X8/yvHjx7nqqquuuuqqq6666j+WpFvX6zWz2ey1IwJJSCIikIQkJCEJAEkASAJAEpKQBIAkJCEJSUhCEpKICCQBIAkASUgiIogIIoKI4H62yUxaa2QmtslM9vf3yUwe9KAHceONN/J3f/d3PD+llOPz+fy1L168+DX8J5K0O03Tg7uue+laKxFBRBARSEISkpBERCAJSUhCEpIAiAgkERFEBBFBKYVSCrVWaq1EBJIAyExaa7TWaK2RmWQmtrGNbWxjm/tdvHiRl3qpl+L666/nz//8zx984cKFr+Gqq6666qqrrrrqvx/l+PHjXHXVVVddddVVV131Hy8zn2H7pbuue3BEIAkASUhCEpKQBIAkACQBIAlJSAJAEpKQhCQiAklIQhKSkIQkJAEgiYggIpBERCAJ29gmM8lMMpPMxDb7+/ucOHGCU6dOsbOzw9Of/nTuJ4n7lVKOS3rw4eHhz/CfaJqmS7PZ7L1LKZRSiAgiAklIQhKSkIQkJCEJSUhCEpKICCQhiYggIqi1UmullEIpBUkAZCaZSWuNzKS1RmZiG9vYxjYAtrGNbR75yEdy/PhxbrvttuN33HHH70zTdCtXXXXVVVddddVV/70ox48f56qrrrrqqquuuuqq/3iSdqdp+p2u6z46IpCEJCQhCUlIQhIAkgCQBIAkJCEJSUhCEgCSkEREIImIQBKSkASAJCQREUQEEUFEIAkA22QmmUlrjczENuv1mrvvvpvHPOYxnD59moODA86dO8fzM5vNXnoYBtbr9e/wnyQibrX92l3XPbjWSikFSUQEkpBERCAJSUhCEhGBJCQhCUlIIiKICEoplFIopVBrpZRCRABgm9Yamck0TWQmmUlmkpkA2AbANrZZrVbMZjMe9KAHceLECf7+7//+wZcuXfoerrrqqquuuuqqq/57UY4fP85VV1111VVXXXXVVf85JO0ul8tnzGazt44IJAEgCUlIQhIAkpAEgCQAJAEgCQBJSEISkpCEJCQREUhCEgCSkIQkIoKIICKICCQBYJvMJDPJTGyTmazXa/b29rjllls4ffo0t956K+v1muen67oHX7p06Wds7/KfZJom9X3/1l3XUUohIogIJCEJSUhCEpKICCQhCUlIQhIRgSQigoiglEIphVIKtVZKKUjCNrZprZGZtNZorZGZ2MY2ALaxjW1sc/HiRV7xFV8RSTz96U9/8H333fc70zTdylVXXXXVVVddddV/H8rx48e56qqrrrrqqquuuuo/j6S/tv3aXdc9OCKQhCQkIQlJSAJAEgCSAJDE/SQBIAkASUgiIpCEJCICSUhCEpKQREQQEZRSkIQkJGEb22QmmUlmkpnY5sKFC2xsbHD99dfz0Ic+lL/927/l+SmlHN/Y2Hjrixcvfg3/SWzvdl330bVWSilEBJKICCQhCUlIIiKQhCQkIQlJSEISEUFEEBFEBLVWaq2UUiilEBEA2CYzaa3RWqO1RmZiG9vYxja2sQ3AarXilltu4brrrmO5XHLrrbdycHDwM1x11VVXXXXVVVf996EcP36cq6666qqrrrrqqqv+c43j+DsR8da11uOSAJBERHA/SUhCEgCSAJDE/SQBIAlJSEISkpCEJCQhCUlIQhIAEUFEEBFEBJIAsI1tMpPMJDOxTWZy/vx5br75Zra3t5HEnXfeyfMTEcclPfjw8PBn+E8gaTczX7vrugfXWimlEBFEBJKQhCQiAklIQhKSiAgkIQlJSCIiiAgiglIKpRRqrZRSiAgkAdBaIzNprZGZZCaZSWZiG9vYBsA2ttnd3eUlX/IlOXHiBH/yJ39y/MKFC1/Dv9I111zz4Ac/+MEvfc011zz4mmuuefA111zzYEkcHh7uctVVV1111VVXXfWvQ+Wqq6666qqrrrrqqv90EXHr/v7++/R9/1sRQUQwTRMRgSQkIQlJSAJAEgCSAJBEaw1JtNaICCKCaZqICKZpIiKICCKCiEASEUFEUEohIpBE13VEBF3XMZ/PmaaJcRyZpolpmshMMpPVasUf/MEf8EZv9EY8+tGP5s477+SOO+7ANraxTSmFWiunT59+793d3e9Zr9e/zX+CcRw/Z5qm126tkZlkJplJRGAb29jGNraxDYBtbGMb22QmmUlrjdYarTWmaaK1RmZim4iglELXddRaqbVSSqGUQkQQEUQEmYkkJCEJSdx222084xnP4EEPehCPetSjHnzfffe9997e3nfzAlxzzTUPfrEXe7HXPnPmzINe/MVf/LVf7MVe7LV5Ae67775bz549e+t9991362/91m99zz/8wz/8NlddddVVV1111VUvHOX48eNcddVVV1111VVXXfWfT9Kt6/Wa2Wz22pKICAAkIQlJSEISkgCQBIAkACQBIAlJAEhCEpKQhCQiAklIQhIAkpBERBARRAQRgSQAbJOZZCaZSWZim/39fTKTBz3oQdx444383d/9Hc9NEgDz+fy19/b2fsb2Lv/BbCPppbuue3AphYggIpBERCAJSUhCEhGBJCQhCUlIQhKSiAgigoig1kophVorpRQiAgDbZCatNVprtNbITDIT29gGwDa2sY1tMpNHPepRHD9+nL/5m785funSpe/hubzYi73Ya7/TO73TZ334h3/4d7/iK77iW7/4i7/4a19zzTUPBrh06RLr9Zr77ruPS5cucenSJQBOnTp1/JprrnnwQx7ykJd+ndd5nfd+ndd5nffe3Nw8/g//8A+/w1VXXXXVVVdd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JCQBIIn7SeK52QbANs/NNrbJTNbrNQ972MMYhuHWf/iHf/gdrrrqqquuuuqq/0uoXHXVVVddddVV/6O92Iu92GudO3eOZzzjGbTWsE1EAGAb29jGNraxjW1sYxvb2MY2trFNZpKZ2MY2mUlm0lqjtcY0TUzTxDRNtNaYponWGplJ3/d0XUcphYiglEJEEBGUUogIIoJpmlgul6xWK06cOEEpha2tLZbLJev1mogAYDabERFEBBFBKYVSCqUUSilEBBFBRDBNE5KQRGsNSbTWkIQkJCEJSUgiItje3n7wYrH47NOnT7/30572tNdprd3KVUTEd+/v779WKeW9IwJJRASSkMT9JPEu7/Iu3HTTTRwdHfHnf/7nnD17ln/JxsYGL//yL8+ZM2f4+q//+vf5rd/6re/mf4j77rvv1s/8zM98nQ//8A//rtd5ndd57wc96EE86EEPYrVacenSJQBWqxUPNJ/Pmc/nHDt2jOd233333fpbv/Vb3/3bv/3b33PffffdyguwWq1+e7FYvLZtbGMb29jGNraxjSTuZxtJANhGEv8akrCNJGwDIAkASUgiIrDN05/+dF78xV/8tX/0R3/0c7jqqquuuuqqq/4voXLVVVddddVVV/2P9mIv9mKvffr0ab7lW76F1hr3s41tbGMb29jGNraxjW1sYxvb2MY2EYFtbJOZZCaZSWaSmbTWaK3RWqO1xjRNtNZordFaIzPp+55aKxFBRBARRASlFEopjONIRDBNE7u7u8xmM7a2tlgsFsxmMw4PD7FNRND3PRFBKYVSCqUUSimUUiilsF6viQgigohgmiYk0VpDEq01JCEJSUhCEpmJJCSxvb394Ec84hG/de+99373xYsXP4erWK/Xn7NcLl87Ih4sCUlIQhKSkMS7v/u7c/PNN3N0dMQv/dIv8aJ4zGMew2Mf+1juu+++Wz/kQz7kde67775b+R/o67/+69/nH/7hH37ndV7ndd7rzJkzD77mmmsePJ/P+Zfcd999t/7DP/zDb9933323/vZv//b33HfffbfyIhjH8bdba6+dmdjGNgC2eW62kcRzs839JPH8SOJ+tpGEbSQhCdtIQhKSkERm8vSnP50Xe7EXezBXXXXVVVddddX/NVSuuuqqq6666qr/8c6fP899991HKQXbRASlFGxjG9vYxja2sY1tbGMb29jGNraxjW1s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XXXV/2aU48ePc9VVV1111VVX/Z916zAMPzMMw24p5bX5F9jmX8M2tgGwjW1sk5nYxjaZSWaSmbTWsE1mYpsHkkREEBFEBBFBRBARRASSsM0wDNim73u6rmM+nyOJYRiICCKCiCAiiAgiAklEBJKICAAkIQkASUgCQBKSkIQkJCEJSUhCEn3fH9/e3n7r1trx1Wr1O1x11b/SNE2az+dvXWullEIpBUlEBJKICCQBIAkASbzaq70ab/M2b8PNN9/MbDZjGAbOnz/P2bNnuffee7l06RJHR0csl0umaWKaJqZpYpompmliGAaGYeDw8JDd3V0ODw/JTObzOddddx0PechDWCwWPP3pT+fUqVM85CEP4bd+67e+h6uuuuqqq6666n8zyvHjx7nqqquuuuqqq/5P283M31mtVs+Q9NIRcZx/gW3+NWxzP9vYxja2yUwyk8wkM8lMWmvYJjOxzQNJIiKICEoplFKICEopSEIS4zhyeHhIrZWu65jNZgAMw4AkJBERRASSiAgiAklIQhKSkMT9JCEJSQBIQhKSkIQkJCGJiKDWevzYsWOvvb29/d6XLl36Gdu7XHXVi2637/uPrrVSSiEikIQkIgJJSEISknjQgx7Eh3zIh3DLLbcAMAwDd999N3feeSeHh4eM44gkJAEgCUlIAkASkpCEJAAkYZv1es3R0RGZyfHjx3noQx/K8ePHuffee3n0ox/NL/zCL3wNV1111VVXXXXV/2aU48ePc9VVV1111VVX/b/w16vV6meGYdittb42/8FsA2Ab2wBkJraxTWZim8wkM2mtYZvMxDYAkpCEJCKCiCAiKKUQEZRSiAgkYZujoyNs0/c9s9mMjY0NJDEMA5KQREQQEUQEEYEkIgIASUhCEpKQBIAkACQhCUlIQhKSAIgIJNF13fHt7e23zszjq9Xqd7jqqheBpN1a62d3XUcphYggIogIJBERSEISr/Ear8FbvMVbADAMA7feeit33303q9UKSQBIQhKSAJCEJCQBIAlJSEISAJKQhCRss16vOTo6YrFYcNNNNzGfz7npppuO/8M//MPvnD179lauuuqqq6666qr/rSjHjx/nqquuuuqqq676/0HSbmb+ztHR0TMi4qUj4jj/gWxjGwDb2MY2tslMMhPbtNbITFpr2CYzyUxscz9JSCIiiAhKKZRSiAgigohAEuM4cnh4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ddVVV1111VX/VxBcddVVV1111VVX/d9268HBwetcuHDhs1erFev1mnEcmaaJ1hqtNTKT1hqtNVprtNZordFao7VGa43WGq01Wmu01mitMU0T0zQxTRPjODKOI+v1mhtuuIFTp04B8PVf//Xvw1VX/QvuvfdeMhPb2MY2tgGwDYBtHsg2/xJJSOKBJHE/SUhCEpKQBMDOzs5nc9VVV1111VVX/V9BcNVVV1111VVXXfV/nO1bW2ufc/78+YccHh7eul6vGceRaZporTFNE5lJZtJao7VGa43WGq01Wmu01mit0VqjtUZrjdYarTWmaWKaJsZxZDab8Yqv+IoA/NZv/dZ3/8M//MNvc9VV/4LMJDOxjW1sA2CbB7KNbWzzgkjiuUkCQBIAkpCEJAAkIQlJRASttQdtbW29NlddddVVV1111f8FlOPHj3PVVVddddVVV131/8TuMAw/s16vd2utr81zsY0kAGzzr2EbgDd4gzdge3ub++6779bP+qzPeh2uuupfcObMmQefOXPmtf/yL/+SUgoRgSQkERFIAkASkpCEJCQhCUkASAJAEs+PJAAk8S8Zx5HFYsH+/v7PcNVVV1111VVX/W9HcNVVV1111VVXXfX/y63TNH3OhQsXHnJ4eHjrer1mHEemaaK1xjRNtNbITFprtNZordFao7VGa43WGq01Wmu01mit0Vrj4Q9/ONdffz0AX//1X/8+XHXVi+Af/uEffufMmTO01rCNbe5nG9v8Z5CEJCQBIAlJSCIiKKW8NlddddVVV1111f8FBFddddVVV1111VX/D9m+dW9v73UuXLjw2avVimEYGMeR1hrTNNFaIzPJTFprtNZordFao7VGa43WGq01Wmtsbm7yeq/3egD81m/91nf/wz/8w29z1VUvgrNnz9567bXXMk0TmYltbGMb29zPNv9ekgCQxANJAkASkogIpml68IkTJ96bq6666qqrrrrqfzuCq6666qqrrrrqqv+/bp2m6XMuXLjwkIODg1vX6zXDMDBNE9M0MU0TrTUyk8yktUZrjdYarTVaa7TWaK3xBm/wBhwcHHDffffd+vVf//Xvw1VXvYjuu+++W8+dO/fbJ06coLVGZmIb2wDYxjYAtvnXkIQkHkgSAJKQhCQkIQlJSCIiADh27NhncdVVV1111VVX/W9HOX78OFddddVVV1111VX/z+0O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j7Mr6aNrrZRSiAgiAklIQhJv+IZvyBu+4RsC8Nd//dc8+clP5oEk8dwk8UCSeG6SeG4XL15kmiauueYaHvGIRxzf29vjKU95yu9w1VVXXXXVVVf9T0c5fvw4V1111VVXXXXVVVddddX/LJJ2W2uv3XXdg0spRAQRQUQgiYc//OG88zu/MwB/9Ed/xL333ssDSeK5SeK5SeK5SeKBJAGwv7/ParXimmuu4eabb37wM57xjL+57777buWqq6666qqrrvqfjHL8+HGuuuqqq6666qqrrrrqqv95WmsPrrW+dimFiCAikMQjHvEIPuzDPgyAP/zDP+TChQs8N0k8N0k8N0k8kCSemyTut7+/jyRuvvnm49dcc81Dfuu3fuu7ueqqq6666qqr/icjuOqqq6666qqrrrrqqqv+R5L029M0kZnYxja2eeM3fmMAbr/9ds6fP8+LQhLPTRL/Ekk8kCTuuusuLly4wIu92Iu91uu8zuu8N1ddddVVV1111f9kBFddddVVV1111VVXXXXV/0illN+xTWZiG9u84iu+Ig9/+MM5Ojrir//6r5HEc5PEv4UkXhTL5ZK77roLgHd8x3f8LK666qqrrrrqqv/JCK666qqrrrrqqquuuuqq/7Gmafrt1hqZiW3e9E3fFIC//uu/5t9DEv8SSTyQJO538eJFLl68yDXXXPPgF3uxF3ttrrrqqquuuuqq/6kIrrrqqquuuuqqq6666qr/sWx/TmuNzOQRj3gEp06d4vz585w/f54XlST+JZL411gul1y4cAGAF3uxF3strrrqqquuuuqq/6kIrrrqqquuuuqqq6666qr/sSTdOk0TmcmrvMqrAHD77bcDIInnJol/iST+JZJ4IEk8kCQuXrwIwOu8zuu8N1ddddVVV1111f9UBFddddVVV1111VVXXXXV/1gRcWtr7bczk1d91VcF4Pbbb+c/kiT+LZbLJQBnz569lauuuuqqq6666n8qgquuuuqqq6666qqrrrrqf7TW2m+/2qu9GgC33347/xqS+NeSxANJ4oEkAbBarVgul7zYi73Ya19zzTUP5qqrrrrqqquu+p+I4Kqrrrrqqquuuuqqq676H62U8j2PfvSjATg6OuIFkcS/RBJXXXXVVVddddX/KwRXXXXVVVddddVVV1111f9oEXGr7d8GWC6XAEjiP4IkHkgSDySJB5LEVVddddVVV131vwqVq6666qqrrrrqqquuuup/vGuuuYazZ89ydHTEi0oS/5kkcdVVV1111VVX/Y9HcNVVV1111VVXPcs111zzYK666qqr/oc6c+YML4gk/iWSeCBJPJAkHkgSDySJ57ZYLLjvvvtuve+++27lqquuuuqqq676n4jgqquuuuqqq656ls/5nM/5rS/4gi94+ou92Iu9NlddddVVV71Akrj++usBOHv27K1cddVVV1111VX/UxFcddVVV1111VVcc801D/6mb/qmp19zzTUP/tEf/dEHj+P4XY94xCOeft11133X9vb2e/d9/9pcddVVV/03+vu///vfBjh16hSS+JdI4oEk8a8hiQeSxHNbLBYA/NZv/db3cNVVV1111VVX/U9F5aqrrrrqqquu4sM//MO/65prrnnw3/3d39H3PV3XPdg229vb7237vTMT26xWq1v39vZ++/Dw8HfW6/WtwzD8NlddddVV/4VOnz7Nk5/8ZP69JPFAknhRSQLg+uuvB+C+++67lauuuuqqq6666n8qKlddddVVV131/9yLvdiLvfaLvdiLvTbAr/3ar9F1HbaxDYBtbJOZdF334K2trfe2/d6ZiW1Wq9Wt6/X61uVyeeve3t7vDMNwa2b+NlddddVV/4F++7d/+3te/MVf/LUf8pCHvDbPRRL/kSTxQJJ4btdffz2LxQKAf/iHf/htrrrqqquuuuqq/6moXHXVVVddddX/c6/zOq/zXvfeey8XLlyg1optbANgG9vYxjYAtrGNbWzT9/2DM/PBtrn++uvf2zar1erW9Xp962q1uvXg4OB3hmG4dRzH3+aqq6666t/ovvvuuxVgY2ODU6dOcf78eV4QSTyQJB5IEg8kiReVJABuuOEGAH7kR37ks7nqqquuuuqqq/4no3LVVVddddVV/8+9zuu8znsD/Oqv/iq1VmxjGwDb2MY2ALaxjW0AbGMb29jGNrbp+/7Bth+cmdh+78xkvV7fCnDp0qXfPjg4+J1hGG4dhuG3ueqqq656Ef393//9bz/kIQ957Uc+8pH80R/9Ef8VJPHcrr/+ek6cOME//MM//M6P/uiPfg5XXXXVVVddddX/ZFSuuuqqq6666v+x13md13lvgCc96UmsVitqrdjGNrYBsI1tbANgG9sA2MY2tgGwjW1sYxvb2MY2fd8/2Dabm5vvnZnvbZvVanVrZrK/v//bh4eHv7Ner28dhuG3ueqqq656Pn77t3/7e17ndV7nva+55poHnzp1ivPnzyOJfw9JPJAkXhBJzOdzXuzFXgyA3/qt3/purrrqqquuuuqq/+moXHXVVVddddX/Y6/zOq/zXgBnz56l1optbANgG9vYxja2AbCNbWwDYBvb2AbANrYBsI1tbGMb29gGIDPpuu7Bttne3n7vzHxv29hmtVrdur+//9vL5fLWo6Oj3xmG4be56qqr/t+77777bv2t3/qt736d13md936pl3qpB//mb/4mz00SDySJB5LEi0oSz+3FXuzFAPiHf/iH3/6t3/qt7+aqq6666qqrrvqfDj3oQQ/iqquuuuqqq/6/+omf+AkD/NAP/RC2yUxsYxvb2MY2trGNbWxjG9sA2MY2trENgG1sA2Ab29gGwDa2sY1tAGxjG9vYxjaZiW0yE9usVqtbh2G49ejo6Nb9/f3fWa/Xt2bmb3PVVVf9v/O5n/u5v/ViL/Zir3377bfzt3/7tzyQJB5IEg8kiQeSxP0k8UCSuJ8kXu7lXo4TJ05w33333fohH/IhD+Gqq6666qqrrvrfgMpVV1111VVX/T/1Oq/zOu8NcPvtt7NYLMhMMhPbZCa2yUxsY5vMxDa2sY1tbGMb29gGwDa2sY1tAGxjGwDb2MY2ALaxjW0AbGMb29jGNrbp+/7BmfngEydOYPu9M5PVanXrer2+dbVa3XpwcPA7wzDcOo7jb3PVVVf9n/aZn/mZr/MTP/ETvvnmm1kulzz5yU/mRSGJB5LECyKJB3q5l3s5Tpw4AcDXf/3Xvw9XXXXVVVddddX/FlSuuuqqq6666v+p13md13kvgIODA7a2tmitkZlkJplJZpKZZCaZiW0yE9tkJraxjW0yE9vYxja2AbCNbWxjG9sA2MY2tgGwjW0AbGMb2wDYxja2sY1tbGObvu8fbPvBtsnM985M1uv1rQCXLl367YODg98ZhuHWYRh+m6uuuur/lM/8zM98nc/93M/9rUc+8pFI4klPehKSeCBJvKgk8fwsFgte7MVejBMnTnDffffd+lmf9Vmvc999993KVVddddVVV131vwV60IMexFVXXXXVVVf9f/QTP/ETBviLv/gLWmu01shMWmu01mitkZlkJq01MpPMJDPJTGyTmdgmM7FNZmIb29jGNraxjW1sYxvb2MY2ALaxjW0AbGMb2wDYxja2AbCNbWxjG9vYxja2sY1tbJOZRAQHBwe37u/v//bh4eHvrNfrW4dh+G2uuuqq/9Ve53Ve570//MM//LsAlsslf/zHf8xyueR+knggSdxPEg8kiQeSxEMf+lAe9rCHAXDffffd+vVf//Xv8w//8A+/zVVXXXXVVVdd9b8JetCDHsRVV1111VVX/X/zOq/zOu/94R/+4d91eHjIvffeS2uN1hqtNVprtNZordFao7VGa43WGq01MpPWGplJZpKZZCaZSWZim8wkM7GNbTIT29jGNraxjW1sYxvb2AbANraxDYBtbGMbANvYxjYAtrGNbWwDYBvb2MY2mYltbJOZ2Ga1Wt26v7//28vl8tajo6PfWa/Xt0q6lauuuup/jWuuuebBn/M5n/Nb11xzzYOXyyV33HEHd9xxB8vlEkncTxIPJIkHksT9Hvawh3HDDTewWCwA+JEf+ZHP/tEf/dHP4aqrrrrqqquu+t8IPehBD+Kqq6666qqr/r/58A//8O967GMf+947Ozssl0syk9YarTVaa7TWaK3RWmOaJlprtNZordFao7VGa43WGq01MpPWGplJZpKZZCaZSWaSmWQmtslMbGMb22QmtrGNbWxjG9sA2MY2trGNbQBsYxsA29jGNgC2sY1tbANgG9vYxja2sU1mYpvMBGC5XN46DMOtR0dHtx4cHPzOarW6NTN/m6uuuup/rDNnzjzodV7ndd77dV7ndd77mmuuefByueTChQucP3+eO++8EwBJPJAk7rexscF8PufkyZM87GEP43733XffrV//9V//Pv/wD//w21x11VVXXXXVVf9boQc96EFcddVVV1111f833/RN3/T0a6655sHTNJGZZCa2yUwyk9YamUlrjdYarTVaa7TWmKaJ1hqtNaZporVGa43WGq01Wmu01shMWmtkJq01MpPMJDPJTGyTmWQmtslMbGMb29jGNpmJbQBsYxvb2MY2tgGwjW1sA2Ab2wDYxja2sQ2AbWxjG9vYxja2sU1mYpvMZLVa3bper29drVa3Hhwc/M4wDLeO4/jbXHXVVf+jXHPNNQ9+x3d8x896ndd5nffmAZbLJRcuXABguVxyv8ViwcbGBidOnOCB7rvvvlu//uu//n3+4R/+4be56qqrrrrqqqv+t0MPetCDuOqqq6666qr/b37iJ37C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EdzPNraxjW1sk5lkJq01Wmu01mit0VpjmiZaa0zTxDRNtNaYpolpmpimidYa0zTRWqO1RmuN1hqtNVprZCatNTKTzCQzyUwyE9tkJpmJbWxjm8zENraxjW1sYxvbANjGNraxDYBtbGMbANvYxjY7OztcddVVV1111VVXXXXV/1NUrrrqqquuuur/maOjIw4PDymlEBGUUogISilEBBFBRBARRAQRgSQiAkkASCIiAJDEA9kGwDa2AchMbGMb22QmtrFNZmIb29jGNraxjW0AWmsASEISkogIIoKIICKICCKCiCAiiAgigohAEpKQhCQiggeyjW1sk5lkJplJZtJao7VGa43WGtM00VpjmiamaWKaJlprTNPENE1M00RrjdYa0zTRWqO1RmuNzKS1RmbSWiMzyUwyE9tkJpmJbTIT29jGNpmJbWxjG9vYBsA2trGNbWwDYBvb3HLLLdzvvvvuu5Wrrrrqqquuuuqqq676/4PKVVddddVVV/0/8WIv9mKvDXDu3Dlaa0QEpRRKKUQEpRRKKZRSiAhKKUQEpRQigoggIogIIgJJRASSkIQkJCEJSTw32wDYxja2yUxsY5vMxDaZiW1sk5nYxja2sY1tbJOZAEhCEpKQREQQEUQEEUFEEBFEBBFBRBARSEISkpBERABQSgHANraxjW0yk8yktUZm0lqjtcY0TbTWmKaJaZporTFNE9M0MU0TrTWmaaK1xjRNtNZordFao7VGa43MpLVGZpKZZCaZSWaSmWQmtrFNZmIb29jGNpmJbWwDYBvb2MY2N998MwA/8iM/8tlcddVVV1111VVXXXXV/y9Urrrqqquuuur/iWuuuebBAF3XYZuDgwMiglIKpRQiglIKpRRKKZRSiAhKKZRSiAhKKZRSiAhKKUQEEUFEEBFIIiKQhCQkIQlJPD+2AbCNbWxjm8zENpmJbTIT22QmtslMbGMb29gmMwGQBIAkJCGJiCAikEQphYggIogIIoKIQBIRgSQkIYmI4IFsYxvb2CYzyUwyk9YarTVaa7TWmKaJ1hrTNDFNE601pmlimiamaaK1xjRNtNaYponWGq01WmtkJq01WmtkJplJZpKZZCaZiW0yE9tkJraxjW1sYxvb2OaGG27gqquuuuqqq6666qqr/p+ictVVV1111VX/D7zYi73Ya/NMj3zkIwFYLpdIYnd3l729PYZhYH9/n1IKpRQiglIKpRRKKZRSKKUQEZRSKKVQSiEiKKVQSiEiiAgigoggIogIIgJJSEISkpDE82MbANvYxja2yUxsk5nYJjPJTGyTmdjGNpmJbQAyE4DWGpIAkIQkIoKIQBIRQUQQEZRSiAgkERFEBJKQhCQiggeyDUBmYpvMJDPJTFprZCbTNNFao7XGNE201pimiWmamKaJ1hrTNDFNE601pmmitUZrjdYarTVaa7TWyExaa2QmmUlmkpnYJjPJTGxjm8zENtvb2wCcPXv2GVx11VVXXXXVVVddddX/L1Suuuqqq6666v+Ba6655sEAZ8+eZblcsrGxwenTpwG47rrruO6667jfarVid3eXvb09hmFgf3+fiKCUQimFUgqlFEopRASlFEoplFIopVBKoZRCRFBKISIopRARRAQRQUQgiYhAEpKQBEBE8NxsA2Ab29jGNpmJbTIT22QmmUlmYpvMxDa2sY1tbGObzOR+kpBERCCJiCAiiAgigoggIogIIgJJRASSkARAKYX72QYgM7FNZpKZZCaZSWuN1hqtNaZporXGNE1M00RrjWmamKaJaZporTFNE601pmmitUZrjdYarTUyk9YamUlm0lrDNplJZnL69Gnu9w//8A+/zVVXXXXVVVddddVVV/3/QuWqq6666qqr/h84c+bMgwDuuece/v7v/56IYGtri62tLTY3N7nmmmvY2Njg9OnTzOdzrrvuOq677jrut1qtWK1WrNdr9vf3GceRvb09SimUUogISimUUiilUEqhlEIphVIKpRRKKZRSiAhKKUQEEUEphYhAEhGBJCICSUgCICJ4brYBsI1tbGObzMQ2mUlmYpvMJDPJTGyTmdjGNraxTWaSmQBIAkASEYEkIoKIICKICCKCiCAikEREIAlJSEISpRTuZxvb2MY2mUlmkplkJq01Wmu01mitMU0T0zTRWmOaJqZpYpomWmtM08Q0TbTWaK0xTROtNVprZCatNTKT1honTpzgfvfdd9+tXHXVVVddddVVV1111f8vVK666qqrrrrq/4FrrrnmwQCXLl1iGAYkMY4ju7u7SOLJT34yEcHW1haSuOaaa7jmmmvY2Njg9OnTzOdz5vM5ANdeey0Aq9WK1WrFer1mf3+fcRzZ29ujlEIphVIKpRRKKZRSKKVQSqGUQimFUgqlFEopRASlFEopRAQRQUQQEUgiIpCEJCQhiYjgudkGwDa2sU1mYhvbZCaZSWZim8wkM8lMMhPb2MY2trFNa437SQIgIpBERCCJiCAiiAgigoggIpBERCAJSUhCEgClFABsYxvbZCaZSWaSmbTWaK3RWqO1xjRNtNaYpolpmpimidYa0zQxTROtNaZporVGa43WGtdddx0A//AP//DbXHXVVVddddVVV1111f8/VK666qqrrrrq/4FrrrnmwQC7u7uM44gkJCEJSUhCEuM4Iond3V2e/OQnExFIYmtri2uvvZYzZ86wsbHBxsYGGxsbzOdzAK699loAVqsVAHt7e+zt7TGOI3t7e5RSiAhKKZRSqLVSSqGUQimFUgqlFEoplFIopVBKISIopRARRAQRQUQQEUgiIpCEJCQhCUnczzYAtgGwjW0yE9tkJrbJTDKTzCQzyUwyE9tkJrbJTGwD0FrjfpIAkEREIImIICKICCQREUQEEUFEIAlJSEISkogISinYBsA2mYltMpPMJDNprdFao7VGa41pmmitMU0T0zTRWmOaJqZporXGyZMnAbjvvvtu5aqrrrrqqquuuuqqq/7/oXLVVVddddVV/w+cOXPmwQC7u7tM04QkACQhCUlIQhKSkIQkJBERXLx4kd3dXZ70pCcREUhia2uLra0tNjc3OXPmDJubm5w6dQqA+XzONddcw/1WqxV7e3vs7e0xjiPL5ZLWGqUUSimUUiilUEqhlEKtlVIKpRRKKZRSKKVQSiEiKKUQEZRSiAgiAklEBJKQhCQkIYnnxza2sY1tbGObzCQzyUxsk5lkJplJZpKZZCa2yUxsYxvbTNMEgCQAJCGJiEASEUFEEBFEBJKICCICSUhCEpKQRCmF+9nGNraxTWaSmbTWyExaa7TWaK0xTROtNaZpou97AP7hH/7hd7jqqquuuuqqq6666qr/f6hcddVVV1111f8D11xzzYMBLl68iCQkIQkASUhCEgCSkIQkJCEJSUhCEpKICC5evMju7i6SeMpTnoIktra22NraYnNzkzNnzrC5ucmpU6eYz+fM53OuueYa7rdarViv1wzDwP7+PtM0cXBwQCmFUgqlFGqtlFIopVBKoZRCrZVSCqUUSilEBKUUSilEBKUUIoKIICKQREQgCUlIAiAieCDbANjGNraxTWZim8wkM8lMMpPMJDPJTDKTzMQ2mYltbGMb22Qm95OE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nDjBbbfd9mCe6R/+4R94xVd8RY4dO8bR0RHr9Rrb/GezDcC1117LTTfdxD/8wz/89nd913d9DFddddVVV1111f8HlOPHj3PVVVddddVVV1111VVX/cc5PDzcfcpTnvI7d9999/fM5/Pvzszd1tprHx4esrW1xUu91Esxm804e/YsD2SbB7LNA9nmgWzz3Gzz/Mznc176pV8agK//+q9/n7Nnz97KVVddddVVV131/wHBVVddddVVV1111VVXXfWfZhzHZ0TE58zn84e01n7713/917nvvvvY2dnhxhtv5L/Kox71KAD+4R/+4bf/4R/+4be56qqrrrrqqqv+v6AcP36cq6666qqrrrrqqquuuuo/l+3dUsr3dF33jH/4h3946dd7vdc7fuzYMQD29vawzQPZ5oFs8y+xzXOzzUu91Etx/Phx7rvvvls//uM//mW46qqrrrrqqqv+P6EcP36cq6666qqrrrrqqquuuuq/xnq9/uuDg4OfnqZp98Vf/MVf+9ixYwDs7e3xr2Gbf8l8PufFXuzFOH78OPfdd9+tH/IhH/IQrrrqqquuuuqq/28ox48f56qrrrrqqquuuuqqq676r9Nau/QP//APvwNwzTXXPPiGG244DrC3tweAbR7INv9a8/mcl3zJl2Rra4v77rvv1q//+q9/n7Nnz97KVVddddVVV131/w3l+PHjXHXVVVddddVVV1111VX/9f7hH/7hdzY3N49L4uEPf/iDr7nmGqZp4vDwkBfGNs/NNgDz+Zwbb7yRF3uxF6PWyj/8wz/89sd//Me/zNmzZ2/lqquuuuqqq676/wg96EEP4qqrrrrqqquuuuqqq67673PNNdc8+HM+53N+C+Caa6558Hq95rbbbuO+++7DNs/NNs9tNptx7bXX8qAHPYj7/ciP/Mhn/+iP/ujncNVVV1111VVX/X+GHvSgB3HVVVddddVVV1111VVX/fc6c+bMg17ndV7nvV/8xV/8tV/sxV7stQHW6zWr1YrVasWlS5dYr9fY5n7Hjh0D4EEPehAP9A//8A+//XVf93Xvffbs2Wdw1VVXXXXVVVf9f4ce9KAHcdVVV1111VVXXXXVVVf9z3DNNdc8+MVe7MVe+3Ve53Xe68Ve7MVemxfRfffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111VVXoAc96EFcddVVV1111VVXXXXVVf8zvc7rvM57v9iLvdhrAVxzzTUP5pnuu+++W++7775bAf7hH/7ht//hH/7hd7jqqquuuuqqq656XuhBD3oQV1111VVXXXXVVVddddVVV1111VVXXXXV/0lUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVV/8e82Iu92GsDnD179tb77rvvVq666qqrrrrqqquuuur/LypXXXXVVVddddVV/0dExINf/MVf/LU/67M+67t4ph/5kR/57B/90R/9HK666qqrrrrqqquuuur/JypXXXXVVVddddVV/8tExINLKQ9eLBavNZ/PH9x13YO3t7dfWxJv+ZZvycHBAU996lMBeKd3eqfPPnv27DN+67d+67u56qqrrrrqqquuuuqq/3+oXHXVVVddddVVV/0PFREPLqU8eLFYvNZ8Pn9I13UP2t7efm1JSCIikIQkJCGJl3mZlwHgb//2b7nfO73TO332b/3Wb303V1111VVXXXXVVVdd9f8Plauuuuqqq6666qr/ZhHx4FLKgxeLxWvN5/MH933/kK2trdeShCQiAklIQhKSkIQkACQhiZd8yZcE4KlPfSr3e9rTnsZLvdRLPegd3/EdP+tHf/RHP4errrrqqquuuuqqq676/4XKVVddddVVV1111X+RiHhwKeXBi8XitWaz2YP7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P5J4oGc84xns7u5y+vRpXvEVX5E//dM/5SEPeQi/9Vu/9d333XffrVz1H+6+++67FWAcRx71qEfxxCc+kfvZ5rnZ5oFsI4kXxjb/Ets80Gw2o+97+r5nGAYe97jH8TVf8zW87Mu+LA960IO45ZZb2NzcBODBD34wL8g//MM//PZv/dZvfc9v/dZvfTdXXXXVVVddddVV/7NRueqqq6666qqrnuW+++67FWBzc5P5fM7BwQH3sw2AbQBsA2AbANsA2AbANgC2sQ2AbQBsA2AbANsA2AbANrYBsA2Abe5nGwDbANgGwDYAtrmfbQBsA2AbANvczzYAtgGwzf1sA7Czs8OxY8e45ZZbAHjQgx7Egx70IF6Q3d1dAP7mb/4GgFtvvZVnPOMZ/Esk8YJI4gWRxPMjCYCf//mf583f/M15yEMewkMe8hAAvv7rv/57+E92zTXXPBjgvvvuu5X/A17sxV7stV/sxV7sta655pqHXHPNNQ+67777bgX4h3/4h9+57777bv2Hf/iH3+aZ/v7v//633+md3um1X+VVXoUnPOEJPJBtHsg2z802/xq2eW62KaUwm83o+56u6+i6jlorXddRa2UYBv78z/+cv/qrv+LEiRPcfPPN3HjjjUhie3ubc+fO3Xrffff99n333XcrwG//9m9/z3333XcrV1111VVXXXXVVf87ULnqqquuuuqqq57DP/zDP/z2i73Yi732fD7n0qVL2AbANgC2AbANgG0AbANgGwDbANjGNgC2AbANgG0AbANgm/vZBsA2ALYBsA2Abe5nGwDbANjmfrYBsA2Abe5nGwDbANjm2LFj3HLLLRw7dozjx49z7NgxHvSgB/GC7O7usru7yzOe8QwAbr31Vp7xjGfwopLECyOJ50cSL4gkAIZhuBVgf3//t++6665b//RP//R33vu93/u9fuu3fut7rrnmmgf9wz/8w2/zn+Caa6558Du+4zt+1uu8zuu89z/8wz/89pkzZx4M8A//8A+//Vu/9Vvf8w//8A+/zf8i11xzzYNf+7Vf+73e6Z3e6bN5Li/2Yi8GwOu8zuu893333XcrwG/91m999z/8wz/8zm//9m9/z+u8zuu896Me9agH2+a52ebfyjbPj23u13Uds9mMruvo+55aK13XUWul1kqtlVortVZKKdRamaaJ22+/nbvvvpsnPvGJn/20pz3t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P9vc76lPfSoAj370o7n22mvp+5777ruPF0QSknhhJHG/V3u1V2N3d/fW7/qu7/qYs2fP3spVV1111VVXXXXVVf+RKMePH+eqq6666qqrrrrqRRURD97c3Pyo66677qe3trZeu+s6aq3UWimlEBFEBKUUIgJJRAQRQUQQEUhCEhGBJCQhCUlIQhKSkIQkJCEJAEkASEISAJKQBIAkJHE/SUji38I297PN/WwDYBsA2wDYBsA2tgF4xjOewSu8witw/Phxjo6O2N3d5blJ4oWRxI033sjx48d53OMex9133839JPGiss1zs80D2QbANvezzdOe9jQuXLjAy7zMy7C5uUnf99x33308N0n8SyRxv9d+7dfmxIkT/MIv/MLX/NZv/dZ3c9VVV1111VVXXXXVfzTK8ePHueqqq6666qqrrvqXlFJe+/rrr/+t48ePf/bW1tZr11qptVJKISKICEopRAQRQUQgiYggIogIJCGJiEASkpCEJCQhCUlIQhKSkASAJCQBIIn7SeJ+knggSfxr2eZ+trmfbQBsA2AbANsA2AbANrYBsM1yueTSpUs86lGP4vjx49x1112M4wiAJCTxwkgC4KVe6qU4ODjgL//yL9nd3eV+knhBbPOC2OZ+trmfbQBsA2AbANvcdddd2OYxj3kM11xzDddccw333Xcf4zgCIIl/iSTu94qv+IrceOON3Hfffbd+13d918ccHh7uctVVV1111VVXXXXVfzTK8ePHueqqq6666qqrrnpu11xzzYOPjo6OLxaLjzp9+vR3nzx58qP7vj9ea6XWSimFiKCUQkQQEUQEEYEkJBERRASSkEREIAlJSEISkpCEJCQhCQBJAEhCEgCSkASAJCRxP0k8N0n8S2zzQLa5n20AbANgGwDbANgGwDa2sY1tbGMb29jmnnvuAeARj3gEN9xwA3fddRfTNPEvkcT9XuqlXorVasUf/uEfslqt+LewzQPZ5n62AbANgG0AbANgG9s89alP5SlPeQoPf/jDOX36NDfddBN933P27FleGElIAmBzc5NXe7VX48Ybb+Qf/uEffvu7vuu7PubWW2/9a6666qqrrrrqqquu+s+AHvSgB3HVVVddddVVV10F8GIv9mKv/Tqv8zrvJenBh4eHr/2rv/qr1FqJCCKCiEASEYEkJCEJSUhCEgCSkASAJCQBIAkASQBIAkAS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N2GbB7INgG3uZxsA2wDYBsA2ALYBsI1tAGxjG9sA2MY2trENgCQkASCJiEASkogITpw4wUu/9EvzWq/1Wtzv0qVL/P3f/z2//du/fevZs2e/+7777vvu9Xr9DP6LnTlz5kEf8REf8d0v9mIv9toXLlzg67/+6zl//jwAtrENgG1sYxsA25RSqLVSa6XWSimFWiulFEop1FoppVBrpZTCiRMneOxjH8vLvuzL8iM/8iOf/du//dvfc999993KVVddddVVV1111VVXPS/0oAc9iKuuuuqqq6666v+va6655sGf8zmf81vXXHPNg3/gB36AZzzjGdzPNvezDYBtAGwDYBsA2wDYxjYAtrENgG1sYxvb2MY2kpCEJCQhCUlIIiKQxGu/9mvzMi/zMhw7doz7Xbp0iT/4gz/gr/7qr249d+7cd992222fw3+za6655sEf/uEf/l0v9mIv9toXLlzga7/2azl//jwAtrGNbQBsExHUWqm1UmullEKtlVIKtVZKKZRSqLVSSuHEiRM89rGP5eVe7uX4h3/4h9/++q//+ve57777buWqq6666qqrrrrqqqteMPSgBz2Iq6666qqrrrrq/7fXeZ3Xee8P//AP/65nPOMZfP/3fz/3s839bANgGwDb2AbANgC2sQ2AbWxjGwDb2MY2tpGEJCQhCUlIIiKQxIkTJ3iZl3kZXuu1Xov7Xbp0ib/7u7/jH/7hH3j84x//2ffdd993r9frZ/A/yDXXXPPgd3zHd/ys13md13nvCxcu8Md//Mf8wi/8ArYBsI0kaq3UWqm1Ukqh1kophVorpRRKKdRaKaVQa+WVX/mVebmXeznuu+++W7/+67/+ff7hH/7ht7nqqquuuuqqq6666qp/GXrQgx7EVVddddVVV131/9s111zz4M/5nM/5rWuuuebB3/d938cznvEMAGwDYBsA2wDYxjYAtgGwjW1sA2Ab29jGNrYBkIQkJCEJSUQEkpDEy77sy/LgBz+Yl3qpl+J+ly5d4u/+7u/47d/+7VvPnTv33bfffvvn8D/YNddc8+AXe7EXe+0P//AP/y6A8+fP873f+7086UlPotZKrZVaK7VWSimUUqi1UkqhlEKtlVIKtVZuueUWXvd1X5ejo6Nbf/RHf/Szf+u3fut7uOqqq6666qqrrrrqqhcdetCDHsRVV1111VVXXXXV67zO67z3h3/4h3/X7u4uX/d1X4dtAGwDYBsA29gGwDa2AbCNbWwDYBvb2EYSAJKQhCQiAklI4uTJk7z0S780r/3ar839Ll26xN/93d/xD//wD5w9e/bWO+6447PPnj37Pfwv8jqv8zrv9Y7v+I6ffc011zwY4MKFC/zqr/4qf/3Xf00phVIKtVZKKZRSqLVSSqHWyokTJ3i913s9Sim3/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVVf966EEPehBXXXXVVVddddVVZ86cedBHfMRHfPeLvdiLvfZf//Vf8zM/8zPYBsA2ALaxDYBtbANgG9vYxja2AZCEJAAkERFIQhIRwYkTJ3id13kdXuqlXor7Xbp0ib/7u7/jt37rt249f/78d589e/Z7VqvVrfwvdc011zz4tV/7td/rnd7pnT6bB9jd3eUZz3gGt99+OwcHB0QEpRRuueUWHv3oR7O9vc2P/MiPfPaP/uiPfg5XXXXVVVddddVVV131b4ce9KAHcdVVV1111VVXXQVwzTXXPPibvumbng7wUz/1U/z1X/81tgGwjW0AbGMb29jGNgC2AZCEJCQhCUlIIiI4ceIEL/MyL8NLv/RLc/z4ce73d3/3d/zd3/0dT3va0249e/bsd99xxx2fw/8h11xzzYNf7MVe7LVf53Ve573OnDnz4GuuuebBPMB999136zXXXPPg++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrq3w896EEP4qqrrrrqqquuuup+r/M6r/PeH/7hH/5du7u7fMd3fAcXL14EwDa2AbCNbWxjG9tIQhKSkIQkJBERSOLEiRO8zMu8DK/92q/N/S5dusTf/u3f8lu/9Vu3nj9//rvPnj37Pev1+lb+j7vmmmseDPBiL/Zirw1w33333QrwD//wD7/NVVddddVVV1111VVX/cdCD3rQg7jqqquuuuqqq656oA//8A//rtd5ndd5793dXb7927+dCxcuYBvb2MY2tpEEgCQkIQlJRASSkMTrvM7r8DIv8zIcP36c+126dInf//3f5y//8i9vPXfu3Hffcccdn8NVV1111VVXXXXVVVdd9Z8BPehBD+Kqq6666qqrrrrqga655poHf/iHf/h3nTlz5sFd1z34W7/1W7lw4QK2sY0kJAEgCUlEBJKQxIkTJ3jZl31ZXvu1X5v7Xbp0ib/927/l7/7u73jiE5/42WfPnv2e9Xp9K1ddddVVV1111VVXXXXVfyb0oAc9iKuuuuqqq6666qrnds011zz4cz7nc37rmmuuefDFixf5pm/6JnZ3d5GEJAAiAklIQhInT57kdV7ndXjpl35p7nfp0iX+9m//lt/6rd+69fz58999xx13fA5XXXXVVVddddVVV1111X8V9KAHPYirrrrqqquuuuqq5+fMmTMP+oiP+IjvPnPmzIO7rnvwX/zFX/Abv/EbSEISkjh58iQv8zIvw8u8zMtw/Phx7vd7v/d7/N3f/R3nzp279c477/ycc+fOfTdXXXXVVVddddVVV1111X819KAHPYirrrrqqquuuuqqF+Saa6558Gu/9mu/1zu90zt9NsDu7i6/+Zu/ya233srLvMzL8Dqv8zrcb3d3l7/7u7/j7//+7yml/PZv//Zvv896vb6Vq6666qqrrrrqqquuuuq/C3rQgx7EVVddddVVV1111b/kxV7sxV77nd7pnT7rxV7sxV6b5+P3fu/3uP3223nQgx7E8ePHf/szP/MzX4errrrqqquuuuqqq6666r8b5fjx41x11VVXXXXVVVf9S86ePXvrP/zDP/zOrbfe+tebm5vHr7nmmgfzAA960IOIiN9+ylOe8t1f//Vf/z5cddVVV1111VVXXXXVVf8ToAc96EFcddVVV1111VVX/Vu82Iu92Gtzhc+ePfuM++6771auuuqqq6666qqrrrrqqv9J0IMe9CCuuuqqq6666qqrrrrqqquuuuqqq6666qr/k6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6v4R6tyAaCtYv31AAAAAElFTkSuQmCC) diff --git a/docs/kcl/patternLinear3d.md b/docs/kcl/patternLinear3d.md index f7a277329a..b72853f79d 100644 --- a/docs/kcl/patternLinear3d.md +++ b/docs/kcl/patternLinear3d.md @@ -8,6 +8,8 @@ Repeat a 3-dimensional solid along a linear path, with a dynamic amount of distance between each repetition, some specified number of times. +/// + ```js patternLinear3d(solidSet: SolidSet, instances: integer, distance: number, axis: [number], useOriginal?: bool) -> [Solid] ``` @@ -44,4 +46,71 @@ example = extrude(exampleSketch, length = 1) ![Rendered example of patternLinear3d 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAACqVklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVf9r3TNNdc8+LVf+7Xf68Vf/MVf++///u9/G+BHf/RHP4errrrqqquuejb0oAc9iKuuuuqqq6666qqrrrrqqqv+d7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvvbu7y1/+5V/ykIc8hIc85CHcd999t37WZ33W69x33323ctVVV1111VWAHvSgB3HVVVddddVVV1111VVXXXXV/1zXXHPNg1/7tV/7vV7ndV7nva+55poH7+7u8pd/+Zfs7u7yV3/1VwBI4nVe53V4ndd5He67775bf+u3fuu7f/RHf/RzuOqqq6666v879KAHPYirrrrqqquuuuqqq6666qqr/me55pprHvzar/3a7/U6r/M6733NNdc8eHd3l7/8y79kd3eXv/7rv+YFefCDH8z7vu/7AvD1X//17/Nbv/Vb381VV1111VX/n6EHPehBXHXVVVddddVVV1111VVXXfXf75prrnnwa7/2a7/X67zO67z3Nddc8+Dd3V3+6q/+iqc//enceuutvCDHjx/nZV7mZXiZl3kZjh8/zv3uu+++Wz/kQz7kIVx11VVXXfX/GZWrrrrqqquuuuqqq6666qqr/ttcc801D37t137t93qd13md977mmmsevLu7y1/91V/x8z//89x66628IMePH+dlXuZleJmXeRmOHz/O/Y6OjnjGM57BYx7zGK666qqrrroKoHLVVVddddVVV1111VVXXXXVf6lrrrnmwa/92q/9Xq/zOq/z3tdcc82Dd3d3+au/+it+/ud/nltvvZUX5Pjx47zMy7wML/MyL8Px48e539HREc94xjM4e/Ys586d4/Tp0zzmMY/h7Nmzt3LVVVddddX/d1Suuuqqq6666qqrrrrqqquu+k93zTXXPPi1X/u13+ud3umdPhtgd3eXv/qrv+Lnf/7nufXWW3lBjh8/zsu8zMvwOq/zOjzQ0dERz3jGMzh37hxnz57lgTY3NwG47777buWqq6666qr/76hcddVVV1111VVXXXXVVVdd9Z/immuuefBrv/Zrv9c7vdM7fTbA7u4uv/Vbv8XTn/50br31Vl6QEydO8NIv/dK8zuu8Dg90dHTEM57xDM6dO8e5c+d4QRaLBQD33XffrVx11VVXXfX/HZWrrrrqqquuuuqqq6666qqr/sNcc801D37t137t93qnd3qnzwbY3d3lt37rt/irv/ordnd3eW6SADh+/Dgv/dIvzeu8zuvwQEdHR9x2222cO3eOs2fP8txs80C22dzcBODs2bPP4Kqrrrrqqv/vqFx11VVXXXXVVVddddVVV13173LNNdc8+LVf+7Xf653e6Z0+G2B3d5ff+q3f4q/+6q/Y3d3lfpJ4oAc/+ME8+MEP5nVe53V4oKOjI2677TZuu+02jo6OeEFs8/xsbGxw1VVXXXXVVc9E5aqrrrrqqquuuuqqq6666qp/tRd7sRd77Rd7sRd7rXd6p3f6bIDd3V1+67d+i7/6q79id3cXSQBI4oEe/OAH8+AHP5jXeZ3X4YGOjo647bbbuP322zk8POS52eaBbPPcbAOwubkJwD/8wz/8NlddddVVV/1/R+Wqq6666qqrrrrqqquuuuqqF8mLvdiLvfaLvdiLvdY7vdM7fTbA7u4uv/Vbv8Vf//Vfs7u7y/0kcb/jx4/z0i/90gC8zuu8Dg90dHTEbbfdxu23387R0REviG3+Jba538bGBgD33XffrVx11VVXXfX/HZWrrrrqqquuuuqqq6666qqrnq9rrrnmwa/92q/9XgDv9E7v9NkAu7u7/NZv/Ra//du/zQty/PhxXvqlX5oTJ07w0i/90jzQ0dERt99+O7fffjuHh4c8N9s8kG2em22uuuqqq6666kVE5aqrrrrqqquuuuqqq6666qpnueaaax782q/92u91zTXXPPh1Xud13htgd3eX3/qt3+K3f/u3eUGOHz/OS7/0S3PixAle+qVfmgc6Ojri9ttv54lPfCIvjG3+JbZ5bra535kzZwD4h3/4h9/mqquuuuqqq4DKVVddddVVV1111VVXXXXV/3PXXHPNg1/7tV/7va655poHv87rvM57A+zu7vJbv/Vb/PZv/zYvyPHjx3npl35pHvKQh/DgBz+YBzo6OuL222/nSU96ErZ5brZ5INs8N9s8kG2em20eaGNjA4D77rvvVq666qqrrroKqFx11VVXXXXVVVddddVVV/0/dM011zz4tV/7td/rxV/8xV/7xV7sxV4bYHd3l9/6rd/it3/7t3lBjh8/zku/9EvzkIc8hAc/+ME80NHREbfffjtPetKTeGFs8y+xzb/ENs/NNlddddVVV131AFSuuuqqq6666qqrrrrqqqv+H3md13md936d13md93qxF3ux1wa49dZb+a3f+i1++7d/mxfkxIkTvPRLvzQPfvCDefCDH8wDnT9/nvPnz/OkJz0J2zw32zyQbZ6bbR7INs/NNv8S25w5cwaAf/iHf/gdrrrqqquuugqoXHXVVVddddVVV1111VVX/T/xYi/2Yq/9Oq/zOu/1Yi/2Yq/913/91/zUT/0Uz00SAMePH+elX/qlefCDH8yDH/xgHuj8+fOcP3+eJz3pSdzPNs/NNg9km+dmm3+JbZ6bba666qqrrrrqRUDlqquuuuqqq6666qqrrrrq/4lrrrnmwS/2Yi/22gAPfvCDOX78OJcuXeJ+x48f56Vf+qV56Zd+aY4fP879lsslR0dHnD9/nic/+cnY5l9im3+JbZ6bbR7INs/NNs/NNgBnzpwB4B/+4R9+m6uuuuqqq64CKlddddVVV1111VVXXXXVVf9PnDlz5kG7u7vs7u7y4Ac/mPd5n/fhp3/6p3nwgx/MS7/0S3P8+HHut1wuueOOOzg6OuKOO+7gfrZ5brZ5INs8N9s8kG2em23+JbZ5bra56qqrrrrqqheAylVXXXXVVVddddVVV1111f8T11xzzYOf8Yxn8Du/8zu81Eu9FK/1Wq/Fe7/3e3O/5XLJHXfcwXK55I477sA2/xLb/Ets8y+xzXOzzb/ENg+0ubkJwH333XcrV1111VVXXQVUrrrqqquuuuqqq6666qqr/p/Z3d3lb//2b3mpl3opjh8/zpOf/GTOnz/PhQsXuJ9tnpttHsg2z802D2Sb52abB7LNc7PNc7PNC7OxsQHAfffddytXXXXVVVdddQXBVVddddVVV1111VVXXXXV/xMv9mIv9tq7u7sA7O7ucvz4cQDuuOMOLly4wAtjmweyzXOzzQPZ5rnZ5l9im+dmm+dmmwc6c+YMAP/wD//w21x11VVXXXXVFVSuuuqqq6666qqrrrrqqqv+H9nd3eW5LZdLHsg2D2SbB7LNc7PNv8Q2z802D2Sb52ab52abq6666qqrrnoRULnqqquuuuqqq6666qqrrvp/4pprrnkwz3T8+HEAlsslD2SbB7LNA9nmudnmudnmgWzz3Gzzb2Gb52abjY0NAO67775bueqqq6666qorqFx11VVXXXXVVVddddVVV/0/8oxnPAOAY8eOAXB0dMT9bPNAtvmX2Oa52eaBbPPcbPPcbPPcbPOi2tzcBODs2bPP4KqrrrrqqquuoHLVVVddddVVV1111VVXXfX/wDXXXPNgHuD48eMALJdLAGzzQLZ5brZ5INs8N9v8S2zz3Gzz3Gzz3Gzz3GwDsLm5CcB99913K1ddddVVV111BZWrrrrqqquuuuqqq6666qr/B86cOfNggN3dXZ6bbR7INs/NNv8S2zw32zyQbZ6bbZ6bbZ6bbZ6bbe63sbEBwNmzZ2/lqquuuuqqq66gctVVV1111VVXXXXVVVdd9f/ANddc82CeSRLHjh0D4OjoiAeyzXOzzXOzzQPZ5rnZ5l9im+dmm+dmm+dmmwfa3NwE4L777ruVq6666qqrrrqCylVXXXXVVVddddVVV1111f8Tu7u73O/48eMALJdLXhjbPDfbPJBtnpttnptt/iW2eW62+Zdsbm4CcN99993KVVddddVVVz0blauuuuqqq6666qqrrrrqqv8HXuzFXuy1dnd3eWFs80C2eW62+ZfY5rnZ5rnZ5t/KNg+0sbEBwNmzZ2/lqquuuuqqq56NylVXXXXVVVddddVVV1111f8Tly5d4n4PetCDADh//jwAtnkg2zw32zw32zyQbZ6bbZ6bbZ6bbZ6bbZ6bbZ7bxsYGAPfdd9+tXHXVVVddddWzEVx11VVXXXXVVVddddVVV/0/cM011zyYF8A2D2Sb52ab52abB7LNc7PNc7PNc7PNc7PNc7PNc7PN5uYmAPfdd9+tXHXVVVddddWzEVx11VVXXXXVVVddddVVV/0/cObMmQfv7u5yv+PHjwNwdHTEA9nmudnmudnmX2Kb52ab52ab52ab52abF2RzcxOAs2fPPoOrrrrqqquuejYqV1111VVXXXXVVVddddVV/0/s7u7ywtjmudnmudnmudnmX2Kb52ab52ab52ab58c2ABsbG1x11VVXXXXV80Hlqquuuuqqq6666qqrrrrq/4FrrrnmwTzT8ePHATg6OuJ+tnlutnlutnlutnlutvnPZpv7bW5uAvAP//APv81VV1111VVXPRuVq6666qqrrrrqqquuuuqq/yee8YxnAHDs2DEAlsslL4htnpttnpttnpttnpttnpttnpttnpttnpttHmhzcxOA++6771auuuqqq6666tmoXHXVVVddddVVV1111VVX/R/3Yi/2Yq/NAxw/fhyAo6MjAGzzL7HNc7PNc7PNc7PNc7PNc7PNc7PNc7PNVVddddVVV72IqFx11VVXXXXVVVddddVVV/0fd8011zwYYHd3l+dmm+dmmweyzXOzzXOzzXOzzXOzzXOzzXOzzXOzzXM7c+YMAP/wD//w21x11VVXXXXVc6Jy1VVXXXXVVVddddVVV131/8yDHvQgAI6Ojnhutnkg2zw32zw32zw32zw32zw32zw327yoNjc3Abjvvvtu5aqrrrrqqqueE5Wrrrrqqquuuuqqq6666qr/486cOfOg3d1dnttyueSBbPNAtnlutnlutnlutnlutnlutnlR2ea52eaqq6666qqrXggqV1111VVXXXXVVVddddVV/8ddc801D97d3eV+x48fB+Do6Ij72eaBbPPcbPPcbPPcbPPcbPPcbPP82Oa52ea52QbgzJkzAPzDP/zD73DVVVddddVVz4nKVVddddVVV1111VVXXXXV/wOXLl3ifseOHQNguVwCYJt/iW2em22em22em21eVLZ5bra56qqrrrrqqn8jgquuuuqqq6666qqrrrrqqv/jrrnmmgfv7u7y/NjmudnmgWzz3Gzz3GzzorLNc7PNc7PN82Ob+11zzTUA/MM//MNvc9VVV1111VXPieCqq6666qqrrrrqqquuuur/uDNnzjx4d3eX+x0/fhyAw8NDnpttHsg2z802LyrbPDfbPDfbPDfbPD+2ueqqq6666qoXEZWrrrrqqquuuuqqq6666qr/R06cOAHA0dERz802/1a2eW62eW62eW62eVHZ5rltbm4CcN99993KVVddddVVVz0nKlddddVVV1111VVXXXXVVf/HXXPNNQ/e3d0F4NixYwAcHR3xQLZ5brZ5brZ5brZ5brZ5brZ5brZ5fmzz3Gzz3DY3NwG47777buWqq6666qqrnheVq6666qqrrrrqqquuuuqq/8OuueaaBwNcunQJgOPHjwOwXC65n22em22em22em22em22em22em22eH9s8N9s8P2fOnAHgH/7hH36bq6666qqrrnpeVK666qqrrrrqqquuuuqqq/4PO3PmzIN5IWzz3Gzz3Gzz3Gzz3Gzz3GzzorLNi8o2V1111VVXXfUvoHLVVVddddVVV1111VVXXfV/2DXXXPNggN3dXQCOHTsGwNHREbZ5brZ5brZ5brZ5brZ5brZ5fmzz3Gzz/NjmudkGYHNzE4D77rvvVq666qqrrrrqeVG56qqrrrrqqquuuuqqq676P253d5f7HT9+HICjoyOem22em22em22em22em22eH9s8N9s8P7Z5bra53+bmJgBnz559BlddddVVV131vKhcddVVV1111VVXXXXVVVf9H7e7u8u/xDbPzTbPzTbPzTbPzTbPj22em22eH9v8SzY3NwG47777buWqq6666qqrnhfBVVddddVVV1111VVXXXXV/2H/8A//8NsPfvCDea3Xei0Ajh8/DsDR0RH3s81zs81zs81zs82LyjbPzTbPj22eH9s80ObmJgBnz569lauuuuqqq656XgRXXXXVVVddddVVV1111VX/h9133323/siP/Mhnv9RLvRSv9VqvxbFjxwA4OjoCwDbPzTbPzTbPzTbPj22em21eVLZ5fmzz3DY3NwG47777buWqq6666qqrnheVq6666qqrrrrqqquuuuqq/+N+9Ed/9HMA3uiN3uizjx8/DsDR0RG2eW62eW62eW62eX5s89xs8/zY5rnZ5vmxzXPb3Nzkqquuuuqqq/4FBFddddVVV1111VVXXXXVVf8P/PZv//b33Hnnnb/NM73My7wMp0+f5oFs89xs89xs8/zY5rnZ5vmxzXOzzfNjm+dnY2MDgH/4h3/4ba666qqrrrrq+aMcP36cq6666qqrrrrqqquuuuqq/+sODw93/+Ef/uF3Dg8Pd1/8xV/8tY8dO8Ytt9zCLbfcwrFjxxiGgaOjIx7INs/NNs+PbZ6bbZ4f27yobPP82Oaaa67hpptu4h/+4R9++0//9E9/hquuuuqqq656XpTjx49z1VVXXXXVVVddddVVV131/8Hh4eHuP/zDP/zOb//2b3/P4eHhriRuvPHGBx87dowHPehBPOhBD+L48eOM48jh4SHPzTbPj22em22eH9s8P7Z5brZ5fmwDcNNNN3Httdfyp3/6pz/9D//wD7/DVVddddVVVz0vyvHjx7nqqquuuuqqq6666qqrrvr/5PDwcPcf/uEffue3fuu3vue3f/u3v+fw8HD3mmuuefDx48ePHzt2jAc96EE86EEPous6AI6OjrDN82Ob52ab58c2z49tXlS2ud9DH/pQTpw4wW//9m9/z6233vrXXHXVVVddddXzohw/fpyrrrrqqquuuuqqq6666qr/rw4PD3f/4R/+4Xd+4Rd+4Wt++7d/+3sODw93r7nmmgcfP378+JkzZ3jQgx7Egx70ILquQxJHR0fczzbPzTbPj22eH9s8P7b5l9x0002cOHGCP/3TP/2ZW2+99a+56qqrrrrqqueFHvSgB3HVVVddddVVV1111VVXXXXVc7rmmmse/I7v+I6f9Tqv8zrvzQMcHR1x6623cvbsWc6ePcsD2eb5sc3zY5vnxzbPj20e6C3f8i3Z3NzkQz7kQx5y33333cpVV1111VVXPS/0oAc9iKuuuuqqq6666qqrrrrqqquev2uuuebBZ86cefDrvM7rvNfrvM7rvDcPcHh4yDOe8QxuvfVWjo6OsM1zs83zY5vnxzbPj22e27u8y7sA8HZv93biqquuuuqqq54/9KAHPYirrrrqqquuuuqqq6666qqr/mXXXHPNg1/sxV7stV/sxV7stV7ndV7nvXmAw8NDbr31Vh73uMdxP9s8P7Z5fmzz/Njm+XmXd3kXAN7u7d5OXHXVVVddddXzhx70oAdx1VVXXXXVVVddddVVV1111b/ONddc8+AXe7EXe+0Xe7EXe63XeZ3XeW+e6fDwkKOjI57+9Kdz66238txs8/zY5vmxzfNz5swZXv/1X59/+Id/+O3P/MzPfB2uuuqqq6666vmjHD9+nKuuuuqqq6666qqrrrrqqqv+dQ4PD3dvvfXWv/7TP/3Tn/nt3/7t77n11lv/5vDwcPeRj3zkS29ubnLjjTfy4Ac/mBMnTtB1Hbu7u9jm+bHN82Ob58c21157LTfddBP/8A//8Nt/+qd/+jNcddVVV1111fNHOX78OFddddVVV1111VVXXXXVVVf92x0eHu7eeuutf/2nf/qnP/Pbv/3b33Prrbf+zebm5vEbb7zxwcePH+fGG2/kwQ9+MMePH6fve3Z3d7mfbZ4f2zw/tgE4ceIEN910E7feeutf/+mf/unPcNVVV1111VXPH+X48eNcddVVV1111VVXXXXVVVdd9R/j8PBw99Zbb/3r3/qt3/qe3/7t3/6eW2+99W82NzeP33jjjQ8+ceIEN954Iw95yEM4fvw4Xdexu7vLc7PN82Ob+z3qUY/ixIkT/MIv/MLX3HrrrX/NVVddddVVVz1/VK666qqrrrrqqquuuuqqq676T3Hffffdet999333b/3Wb333Nddc8+AXe7EXe+3XeZ3Xea8Xe7EXe+2HPOQhPOQhD+HFX/zFue+++3j605/Offfdh22uuuqqq6666j8QetCDHsRVV1111VVXXXXVVVddddVV/3WuueaaB7/2a7/2e734i7/4a7/Yi73Ya/NMh4eH3HfffTztaU/jvvvu44Fs80Bv9VZvxebmJh/yIR/ykPvuu+9Wrrrqqquuuur5Qw960IO46qqrrrrqqquuuuqqq6666r/HNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6fDwkPvuu4+nPe1p3HvvvTy3t3qrt2Jzc5MP+ZAPech99913K1ddddVVV131/KEHPehBXHXVVVddddVVV1111VVXXfXf75prrnnwa7/2a7/Xi7/4i7/2i73Yi702z3R4eMi9997L0572NO677z4A3vVd3xWAt3u7txNXXXXVVVdd9YKhBz3oQVx11VVXXXXVVVddddVVV131P8s111zz4Nd+7dd+r9d5ndd572uuuebBPNPh4SH33nsvD33oQ7nvvvtu/ZAP+ZCHcNVVV1111VUvGOX48eNcddVVV1111VVXXXXVVVf9d7jmmmse/GZv9mYf9bmf+7m/fc011zz4wQ9+8Ev/wz/8w+9wFYeHh7v/8A//8Du/8Au/8DW//du//T2Hh4e711xzzYNPnDhx/MSJEwD86Z/+6U//6Z/+6c9w1VVXXXXVVS8YetCDHsRVV1111VVXXXXVVVddddV/hWuuuebBZ86cefCLvdiLvdY7vdM7fTbA7u4uf/3Xf81Lv/RLc/z4cX7kR37ks3/0R3/0c7jq+brmmmse/I7v+I6f9Q//8A+/81u/9VvfzVVXXXXVVVe9cOhBD3oQV1111VVXXXXVVVddddVV/1muueaaB7/2a7/2e11zzTUPfp3XeZ33Btjd3eWv//qvecYznsGtt94KwEu/9EvzVm/1Vtx33323fv3Xf/37/MM//MNvc9VVV1111VVX/XuhBz3oQVx11VVXXXXVVVddddVVV/1Huuaaax782q/92u/14i/+4q/9Yi/2Yq8NsLu7y1//9V/zN3/zN+zu7vL8vNZrvRav/dqvzX333Xfrh3zIhzyEq6666qqrrrrq34vKVVddddVVV1111VVXXXXVf4Brrrnmwa/92q/9Xi/+4i/+2i/2Yi/22gC7u7v89m//Nn/zN3/D7u4uz48kAI4fP86lS5cAuOaaax58zTXXPPi+++67lauuuuqqq6666t8DPehBD+Kqq6666qqrrrrqqquuuurf4pprrnnwa7/2a7/X67zO67z3Nddc82CA3d1d/vqv/5rf+Z3f4blJ4oGOHz/OS73US3H8+HFe6qVeigf6rd/6re/++q//+vfhqquuuuqqq67696By1VVXXXXVVVddddVVV131r3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwwK233spv//Zv8zu/8zvcTxLPz/Hjx3mpl3opHvSgB/HgBz+YBzo6OuLo6IjTp09z1VVXXXXVVVf9h6By1VVXXXXVVVddddVVV131L7jmmmse/Nqv/drv9U7v9E6fDbC7u8tf//Vf87jHPY7f+Z3fAUASknh+jh8/zku91EvxoAc9iAc/+ME80NHREbfddhtPeMITAHj0ox/N6dOnue+++27lqquuuuqqq67696Jy1VVXXXXVVVddddVVV131fFxzzTUPfu3Xfu33eqd3eqfPBtjd3eW3f/u3ecYznsEznvEM7ieJ5+f48eO81Eu9FC/1Ui/F8ePHeaBz585x7tw5nvjEJwJgm/ttbGwAcPbs2Wdw1VVXXXXVVVf9e1G56qqrrrrqqquuuuqqq64CrrnmmgefOXPmwS/2Yi/2Wu/0Tu/02QC7u7v8zu/8DrfeeivPeMYz+JccP36cl3qpl+KlXuqlOH78OPc7OjritttuY7lcctttt3E/21x11VVXXXXVVf+pqFx11VVXXXXVVVddddVV/29dc801D37t137t97rmmmse/Dqv8zrvDbC7u8vv/M7vcOutt/KMZzyDf8nx48d5qZd6KV7rtV6LBzo6OuL222/n3LlznDt3judmm+fn9OnTANx33323ctVVV1111VVX/XtRueqqq6666qqrrrrqqqv+X7nmmmse/Nqv/drv9eIv/uKv/WIv9mKvDbC7u8vv/M7v8Dd/8zfs7u7yL3nQgx7Egx/8YF7rtV6LBzo6OuL222/n3LlznD9/Hts8P7Z5fmxzv7Nnz97KVVddddVVV13170Xlqquuuuqqq6666qqrrvo/75prrnnwa7/2a7/Xi7/4i7/2i73Yi702wO7uLr/zO7/D3/zN37C7u8sLc/z4cV7qpV4KgNd6rdfigY6Ojrj99tu5/fbbOTo6AsA2z49tXhDbAGxsbABw33333cpVV1111VVXXfXvReWqq6666qqrrrrqqquu+j/pmmuuefBrv/Zrv9frvM7rvPc111zzYIDd3V1+53d+h9/5nd/hX3L8+HFe6qVeigc/+ME86EEP4oGOjo64/fbbuf322zk6OuKBbPP82Ob5sc1VV1111VVXXfWfhspVV1111VVXXXXVVVdd9X/GNddc8+DXfu3Xfq/XeZ3Xee9rrrnmwQC33norv/M7v8Pv/M7v8C85ceIEL/mSL8mDH/xgHvSgB/FAR0dH3H777TzxiU/k+bHNC2Kb58c2D7SxsQHAfffddytXXXXVVVddddV/BCpXXXXVVVddddVVV1111f9q11xzzYNf+7Vf+73e6Z3e6bMBdnd3+Zu/+Rse//jH8zu/8zu8IJIAOH78OC/5ki/Jgx/8YB70oAfxQOfPn+fcuXM86UlPAsA2z49tnh/bvCC2eW4bGxsAnD179lauuuqqq6666qr/CFSuuuqqq6666qqrrrrqqv+1PvdzP/e3XuzFXuy1d3d3+Z3f+R1uvfVWnvGMZ/DcJPFAx48f5yVf8iV5qZd6KY4fP879jo6OOH/+PEdHRzzpSU/ifrZ5QWzz/Njm+bHNC7KxsQHAfffddytXXXXVVVddddV/BCpXXXXVVVddddVVV1111f9K7/iO7/hZL/ZiL/bat956K9/7vd/LA0niuR0/fpyXfMmX5LVe67V4oKOjI26//XaWyyW33347z802z49tXhDbPD+2eX5sc9VVV1111VVX/aegctVVV1111VVXXXXVVVf9r/TiL/7irw1w/PhxTpw4we7uLs/t+PHjvORLviSv9VqvxQMdHR1xxx13cO7cOc6fP8/zY5sXxDbPj21eENs8P7a538bGBgD33XffrVx11VVXXXXVVf8RqFx11VVXXXXVVVddddVV/6sdP36c13zN1+Rnf/ZnOX78OMeOHeNBD3oQr/Var8UDHR0dcccdd3D+/HnOnTvHC2Ob58c2L4htnh/bvCC2eaCNjQ2uuuqqq6666qr/UFSuuuqqq6666qqrrrrqqv+Vzpw58+C//Mu/5GVf9mV50IMexFu+5VvyUi/1UjzQ0dERd9xxB7fffjvL5RIA27wgtnlBbPP82OYFsc3zY5sX5uzZs8/gqquuuuqqq676j0Dlqquuuuqqq6666qqrrvpf66/+6q84ceIED3nIQzh+/DgAR0dH3HHHHdx+++0sl0vuZ5sXxDYviG1eENs8P7Z5QWzzgmxsbHDVVVddddVVV/2HonLVVVddddVVV1111VVX/a90zTXXPBjg4sWLPOQhD+H222/nb/7mb3hutnlhbPOC2Ob5sc0LYpsXxDbPj20ANjc3AfiHf/iH3+aqq6666qqrrvqPQOWqq6666qqrrrrqqquu+l/r4sWL3O/8+fM8N9u8ILZ5QWzzgtjmBbHN82ObF8Q2V1111VVXXXXVfxoqV1111VVXXXXVVVddddX/aidOnABguVxyP9u8MLZ5QWzz/NjmBbHNC2KbF8Q2D7SxsQHAfffddytXXXXVVVddddV/BCpXXXXVVVddddVVV1111f8611xzzYMBdnd3OX78OABHR0fY5oWxzQtimxfENi+IbV4Q2zw/trnqqquuuuqqq/5LULnqqquuuuqqq6666qqr/s+zzQtimxfENi+IbV4Q27wgtnl+NjY2ALjvvvtu5aqrrrrqqquu+o9C5aqrrrrqqquuuuqqq676X+fMmTMP5kVgmxfGNi+IbV4Q27wgtnlBbPOCbGxsAHD27Nlbueqqq6666qqr/qNQueqqq6666qqrrrrqqqv+17nmmmsefPHiRQBOnDgBwNHREQ9kmxfENi+IbV4Q27wgtnlBbPOC2AZgY2MDgPvuu+9Wrrrqqquuuuqq/yhUrrrqqquuuuqqq6666qr/U2zzgtjmhbHNC2KbF8Q2L4htXhDbXHXVVVddddVV/6moXHXVVVddddVVV1111VX/K+3u7nL8+HEAjo6OsM0LY5sXxDYviG1eENu8MLZ5QWzzQJubmwDcd999t3LVVVddddVVV/1HoXLVVVddddVVV1111VVX/a9z5syZB128eJEXhW1eENu8MLZ5QWzzgtjmBbHN87OxsQHA2bNnn8FVV1111VVXXfUfhcpVV1111VVXXXXVVVdd9b/WiRMnADg6OuK52eaFsc0LYpsXxjYviG1eENtcddVVV1111VX/pahcddVVV1111VVXXXXVVf/rXHPNNQ/mhbDNC2KbF8Y2L4htXhDbvCC2eWFss7m5CcB99913K1ddddVVV1111X8UKlddddVVV1111VVXXXXV/0q7u7scP34cgOVyCYBtXhDbvDC2eUFs88LY5gWxzQtim/ttbGwAcPbs2Vu56qqrrrrqqqv+o1C56qqrrrrqqquuuuqqq/7Xs41tXhDbvCC2eWFs84LY5oWxzQtim6uuuuqqq6666j8dwVVXXXXVVVddddVVV131v84111zz4IsXL3LixAkAjo6OeH5sY5sXxDYviG1s84LY5gWxjW1eENs8t83NTQDuu+++W7nqqquuuuqqq/6jEFx11VVXXXXVVVddddVV/+ucOXPmwbwQtrHNC2Ib27wgtnlBbGObF8Q2L4htbHPVVVddddVVV/2XoXLVVVddddVVV1111VVX/a91/PhxAJbLJfezzQtimxfGNi+MbV4Q27wwtnlBNjY2ALjvvvtu5aqrrrrqqquu+o9E5aqrrrrqqquuuuqqq676X2l3d5cHss0LY5sXxjYviG1eGNu8MLZ5QWyzsbEBwNmzZ2/lqquuuuqqq676j0Tlqquuuuqqq6666qqrrvpf55prrnnwxYsXuZ9tXhDbvDC2eWFs88LY5gWxzQtjG4DNzU0A7rvvvlu56qqrrrrqqqv+I1G56qqrrrrqqquuuuqqq/7XOnHiBABHR0c8N9u8MLZ5YWzzwtjmhbHNC2Kbq6666qqrrrrqvwSVq6666qqrrrrqqquuuup/lWuuuebBPNPx48cBODo64oFs88LY5oWxzQtjmxfENi+MbZ7b5uYmAPfdd9+tXHXVVVddddVV/5GoXHXVVVddddVVV1111VX/K+3u7vLcbPPC2OaFsc0LY5sXxjYvjG2en83NTQDOnj37DK666qqrrrrqqv9IVK666qqrrrrqqquuuuqq/1XOnDnzYJ6LbWzzgtjmX2KbF8Y2L4htXhjbvDC2ueqqq6666qqr/lNQueqqq6666qqrrrrqqqv+17l48SIAJ06cAODo6IgXxDYvjG1eGNu8MLZ5YWzzwthmc3MTgPvuu+9Wrrrqqquuuuqq/0hUrrrqqquuuuqqq6666qr/Va655poH8yKwzQtjmxfGNi+MbV4Y27wwtrnf5uYmAGfPnr2Vq6666qqrrrrqPxKVq6666qqrrrrqqquuuup/nd3dXY4fPw7A0dERD2Sbf4ltXhjbvDC2eWFs88LY5qqrrrrqqquu+i9B5aqrrrrqqquuuuqqq676X+XMmTMP4vmwzb/ENi+MbV4Y2/xLbPPC2Oa5bW5uAnDffffdylVXXXXVVVdd9R+J4Kqrrrrqqquuuuqqq676X+Uf/uEffuf48eOcOHECgKOjI2zzwtjGNi+MbV4Y27wwtrHNC2Ib21x11VVXXXXVVf+lqFx11VVXXXXVVVddddVV/6ucPXv21hMnTvCQhzwEANu8MLZ5YWzzwtjmX2KbF8Y2L8jm5iYA9913361cddVVV1111VX/0Qiuuuqqq6666qqrrrrqqv9V7rvvvlv/4R/+4bdf5mVeBoCjoyOeH9vY5oWxzQtjmxfGNrZ5QWxjmxfENhsbGwCcPXv2Vq666qqrrrrqqv9oBFddddVVV1111VVXXXXV/zo/8iM/8jknTpzg+bGNbV4Y29jmBbGNbV4Y27wwtnlhbAOwubkJwH333XcrV1111VVXXXXVfzSCq6666qqrrrrqqquuuup/nX/4h3/47X/4h3/4bZ7p9OnT2MY2L4xtbPPC2OaFsY1tXhjbvDC2ueqqq6666qqr/ktQjh8/zlVXXXXVVVddddVVV131v8999933jBd7sRd77RtvvPH4gx70IB784AfTdR2SODo64rnZ5oWxzb/ENi+MbV4Y2zy3m266iWuuuYY//dM//el/+Id/+B2uuuqqq6666qr/SJTjx49z1VVXXXXVVVddddVVV/3vc/bs2VuPjo4uHR4e7j7kIQ956a7rOHPmDA960IN48IMfTNd1SOLw8JB/iW1eGNv8S2zzwtjm+XnIQx7CiRMn+O3f/u3vufXWW/+aq6666qqrrrrqPxLl+PHjXHXVVVddddVVV1111VX/O916661//ad/+qc/89u//dvfc+utt/7N4eHh7kMe8pCX7rqOM2fO8KAHPYgHPehB9H0PwNHREQ9km3+JbV4Y2/xLbPOC3HTTTZw4cYI//dM//Zlbb731r7nqqquuuuqqq/4joQc96EFcddVVV1111VVXXXXVVf93XHPNNQ8+c+bMg1/ndV7nvV7ndV7nvXmAw8NDzp49y6233srZs2d5YWzzL7HNC2Obf8nrvu7rcs011/CZn/mZr/MP//APv81VV1111VVXXfUfCT3oQQ/iqquuuuqqq6666qqrrvq/6ZprrnnwmTNnHvxiL/Zir/U6r/M6733NNdc8mGc6PDzk7Nmz3HrrrZw9e5YHss0LY5t/iW1eGNsAvOVbviWbm5t8yId8yEPuu+++W7nqqquuuuqqq/4joQc96EFcddVVV1111VVXXXXVVf8/XHPNNQ9+7dd+7fd6ndd5nfe+5pprHswzHR4ecvbsWZ7+9Kdz9uxZXhjb/Ets88LY5n5v+ZZvyebmJh/yIR/ykPvuu+9Wrrrqqquuuuqq/0joQQ96EFddddVVV1111VVXXXXV/z/XXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmw8NDzp49y9Of/nTOnj3L/WzzL7HNv8Q2D/Qu7/IuALzd272duOqqq6666qqr/qOhBz3oQVx11VVXXXXVVVddddVV/79dc801D37t137t93rxF3/x136xF3ux1+aZDg8POXv2LPfddx9Pf/rTeWFs88LY5vl5l3d5FwDe7u3eTlx11VVXXXXVVf/R0IMe9CCuuuqqq6666qqrrrrqqqvud8011zz4tV/7td/rxV/8xV/7xV7sxV6bZzo8POS+++7j7NmzPP3pT+d+tvmX2Ob52dzc5C3f8i257777bv2QD/mQh3DVVVddddVVV/1Hoxw/fpyrrrrqqquuuuqqq6666qr7HR4e7v7DP/zD7/zWb/3W9/z2b//29xweHu5K4sYbb3zwiRMnuPHGG3nIQx7C8ePH6bqO3d1dXhjbvCAnTpzgoQ99KLfeeutf/9Zv/db3cNVVV1111VVX/UejHD9+nKuuuuqqq6666qqrrrrqqufn8PBw9x/+4R9+57d+67e+57d/+7e/59Zbb/2bzc3N4zfeeOODT5w4wU033cRDHvIQTpw4Qd/37O7ucj/b/EuuueYabrrpJv7hH/7ht//0T//0Z7jqqquuuuqqq/6jUbnqqquuuuqqq6666qqrrnoR3Hfffbfed9993/1bv/Vb333NNdc8+MVe7MVe+3Ve53Xe68Ve7MVe+yEPeQgPechDePEXf3EODw952tOextOf/nReGNtcddVVV1111VX/6ahcddVVV1111VVXXXXVVVf9K91333233nfffd/9W7/1W999zTXXPPjFXuzFXvt1Xud13uvFXuzFXntzc5NrrrmGl3iJl+Dw8JCnPe1pPP3pT+d+trnf5uYmAPfdd9+tXHXVVVddddVV/xmoXHXVVVddddVVV1111VX/aa655poH33fffbfyf9h9991363333ffdv/Vbv/Xd11xzzYNf7MVe7LVf53Ve571e7MVe7LU3Nze55ppreOVXfmUODw952tOextOe9jQODw8B2NzcBODs2bPP4Kqrrrrqqquu+s9A5aqrrrrqqquuuuqqq676D3XNNdc8+LVf+7Xf63Ve53Xe+5prrnnwb/3Wb333b/3Wb33PP/zDP/w2/8fdd999t953333f/Vu/9Vvffc011zz4xV7sxV77xV7sxV7rdV7ndd57c3OTl3iJl+AlXuIlODw85GlPexqbm5tcddVVV1111VX/qdCDHvQgrrrqqquuuuqqq6666qp/n2uuuebBr/3ar/1e7/RO7/TZPNPu7i6XLl3iQQ96ED/yIz/y2T/6oz/6Ofw/dc011zz4xV7sxV77xV7sxV7rdV7ndd6b5/KZn/mZ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VVddddVVV1111VX/wx0/fpxP+7RP44GOjo649dZbOXfuHGfPngXANv8etvm3sM1VV1111VVXXXXV/1BUrrrqqquuuuqqq6666n+oa6655sEAx44dA+Do6Ihbb72VZzzjGRwdHQFgm38P2/xb2eaqq6666qqrrrrqfzgqV1111VVXXXXVVVdd9b/AT/zET3A/2/x72ebfyjb/GpubmwDcd999t3LVVVddddVVV131X4vKVVddddVVV1111VVX/Q93dHSEbf4j2Obfyjb/Wra56qqrrrrqqquu+m9E5aqrrrrqqquuuuqqq/6Hs82/h23+PWzzr2Wbq6666qqrrrrqqv8BqFx11VVXXXXVVVddddX/Ubb5t7LNv4VtHmhzcxOA++6771auuuqqq6666qqr/utRueqqq6666qqrrrrqqv9DbPPvYZt/C9tcddVVV1111VVX/Q9E5aqrrrrqqquuuuqqq/4Huuaaax7MMx0dHfHC2Obfyzb/FrZ5YTY3NwE4e/bsrVx11VVXXXXVVVf916Ny1VVXXXXVVVddddVV/wvZ5j+Cbf6tbHPVVVddddVVV131PxyVq6666qqrrrrqqquu+l/ENv8RbPNvZZsX1ebmJgD33XffrVx11VVXXXXVVVf916Ny1VVXXXXVVVddddVV/wvY5t/LNv8etvnXss1VV1111VVXXXXVfyMqV1111VVXXXXVVVdd9X+cbf49bPNvYZurrrrqqquuuuqq/2ZUrrrqqquuuuqqq6666n+gM2fOPJhnOjw85N/CNv8etvm3sM39Njc3Abjvvvtu5aqrrrrqqquuuuq/HpWrrrrqqquuuuqqq676P8Q2/162+bewzVVXXXXVVVddddX/MFSuuuqqq6666qqrrrrq/wDb/HvZ5t/CNi/I5uYmV1111VVXXXXVVf+NqFx11VVXXXXVVVddddX/Urb5j2CbfyvbvCjOnj37DK666qqrrrrqqqv+61G56qqrrrrqqquuuuqq/2Vs8x/BNv9Wtrnqqquuuuqqq676X4DKVVddddVVV1111VVX/Q90zTXXPJgHsM1/FNv8W9nmqquuuuqqq6666n8RKlddddVVV1111VVXXfU/3OHhIf8RbPNvZZt/i83NTQDuu+++W7nqqquuuuqqq676r0flqquuuuqqq6666qqr/o+zzb+Hbf4tbHPVVVddddVVV13134zKVVddddVVV1111VVX/R9lm38P2/xb2OZ+m5ubAJw9e/ZWrrrqqquuuuqqq/7rUbnqqquuuuqqq6666qr/Q2zz72WbfyvbXHXVVVddddVVV/0PQuWqq6666qqrrrrqqqv+D7DNv5dt/q1s8/xsbm5y1VVXXXXVVVdd9d+IylVXXXXVVVddddVVV/0PdObMmQfxTIeHh7wgtvmPYJt/K9v8S+67775bueqqq6666qqrrvqvR+Wqq6666qqrrrrqqqv+F7LNfwTb/FvZ5qqrrrrqqquuuup/OCpXXXXVVVddddVVV131v4ht/iPY5t/DNv+Szc1Nrrrqqquuuuqqq/6bUbnqqquuuuqqq6666qr/gc6ePfsMHsA2/xFs8+9hm3+t++6771auuuqqq6666qqr/ntQueqqq6666qqrrrrqqv+B7rvvvlv5D2abfw/bXHXVVVddddVVV/0vQ+Wqq6666qqrrrrqqqv+j7PNv4dt/i02NjYAOHv27K1cddVVV1111VVX/fegctVVV1111VVXXXXVVf8DnT179lae6fDwkH8L2/x72ebfwjZXXXXVVVddddVV/wNQueqqq6666qqrrrrqqv+B7rvvvlv5N7LNv5dt/q1sA7C1tQXAfffddytXXXXVVVddddVV/z0Irrrqqquuuuqqq6666n+of/iHf/htgAc/+ME85CEP4UVhm38v2/xb2MY2V1111VVXXXXVVf+DULnqqquuuuqqq6666qr/oT7zMz/zdb7pm77p6Q95yEMe/JCHPIQXe7EXA+DpT386Z8+e5b777uN+tvn3ss2/lW2uuuqqq6666qqr/geiHD9+nKuuuuqqq6666qqrrvqf6s/+7M9+5tZbb/2bzc3N4zfeeOOD+77nmmuu4SEPeQgPechD6LoOgMPDQ/49bPNvZZvn56abbuLaa6/lT//0T3/6H/7hH36Hq6666qqrrrrqqv96VK666qqrrrrqqquuuup/sPvuu+/W++6777t/67d+67uvueaaB7/Yi73Ya7/Yi73Ya73O67zOe29ubvLiL/7iABweHnLffffx9Kc/nfvuu48XlW3+PWxz1VVXXXXVVVdd9T8Y5fjx41x11VVXXXXVVVddddX/BoeHh7u33nrrX//pn/7pz/z2b//29/zpn/7pzwBsbm4eP3HixPETJ07wkIc8hIc85CGcOHGCvu/Z3d3lBbHNv5Vt/iUPfehDOXHiBL/927/9Pbfeeutfc9VVV1111VVXXfVfj8pVV1111VVXXXXVVVf9L3Tffffdet999936D//wD78NcM011zz4tV/7td/rxV/8xV/7xV7sxV77IQ95CA95yEN48Rd/ce677z7uu+8+nv70p3M/2/xb2eaqq6666qqrrrrqfwnK8ePHueqqq6666qqrrrrqqv/tDg8Pd//hH/7hd37rt37re377t3/7e2699da/2dzcPH7jjTc++MSJE9x00028+Iu/OA95yEPoug6Aw8ND/rVs86K66aabOHHiBH/6p3/6M7feeutfc9VVV1111VVXXfVfj8pVV1111VVXXXXVVVf9H3Pffffdet999333b/3Wb333Nddc8+AXe7EXe+0Xe7EXe63XeZ3Xee/NzU1e4iVeAoDDw0Oe9rSncd9993HffffxL7HNv8bm5iYA9913361cddVVV1111VVX/fegHD9+nKuuuuqqq6666qqrrvq/6vDwcPfWW2/96z/90z/9md/+7d/+nltvvfVvDg8Pdx/ykIe8dN/3XHvttTz0oQ/loQ99KCdOnGAYBg4PD3lutvnXeuhDH8rW1ha/9Vu/9T1nz569lauuuuqqq6666qr/euhBD3oQV1111VVXXXXVVVdd9f/NNddc8+AzZ8486HVe53Xe+8Ve7MVe+5prrnkwz3R4eMh9993Hvffey9Of/nRs82/xVm/1VmxubvIhH/IhD7nvvvtu5aqrrrrqqquuuuq/HpWrrrrqqquuuuqqq676f+i+++679b777rv1H/7hH34H4Jprrnnwa7/2a7/Xi7/4i7/2i73Yi732Qx7yEB7ykIfwEi/xEhweHvK0pz2Ne++9l8PDQ14Utrnqqquuuuqqq676HwA96EEP4qqrrrrqqquuuuqqq656tmuuuebBL/ZiL/bar/M6r/NeL/ZiL/baPMDh4SFPe9rTuPfee7nvvvt4fmwD8NZv/dZsbm7yIR/yIQ+57777buWqq6666qqrrrrqvx560IMexFVXXXXVVVddddVVV/17XHPNNQ9+7dd+7ff6h3/4h9/5h3/4h9/m/5BrrrnmwS/2Yi/2Wi/2Yi/22q/zOq/z3jzA4eEhT3va07j33nu57777ALDN/d7t3d4NgLd7u7cTV1111VVXXXXVVf890IMe9CCuuuqqq6666qqrrrrqX+vFXuzFXvvFXuzFXuud3umdPptnuu+++279h3/4h9/++q//+vfh/6BrrrnmwS/2Yi/22i/2Yi/2Wq/zOq/z3jzA4eEh9957L0972tO49957AXi3d3s3AN7u7d5OXHXVVVddddVVV/33QA960IO46qqrrrrqqquuuuqqf8k111zz4Nd+7dd+r2uuuebBr/M6r/PePNPu7i5/+7d/y+7uLm/5lm/Jb/3Wb33313/9178P/8edOXPmQddcc81DXuzFXuy1XvzFX/y1X+zFXuy1eabDw0PuvfdeHvrQhwLwdm/3duKqq6666qqrrrrqvweVq6666qqrrrrqqquuegGuueaaB7/2a7/2e734i7/4a7/Yi73YawPs7u7yN3/zN1y6dInf/d3f5X4PetCDALjmmmsezP8DZ8+efcbZs2ef8Q//8A+//aM/+qOfc8011zz4tV/7td/rxV/8xV/7xV7sxV77oQ99KAD/8A//8DtcddVVV1111VVX/fehctVVV1111VVXXXXVVQ9wzTXXPPi1X/u13+t1Xud13vuaa655MMDu7i6/+7u/yzOe8Qye8YxncNXzuu+++2790R/90c/50R/90c+55pprHvxiL/Zir33mzJkH/eiP/ujncNVVV1111VVXXfXfh8pVV1111VVXXXXVVf+vXXPNNQ8+c+bMg1/sxV7std7pnd7ps3mm3d1dfvd3f5e//du/ZXd3l3/JpUuXADhz5syD+X/uvvvuu/W+++77bq666qqrrrrqqqv++1G56qqrrrrqqquuuur/nWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNPu7i5/+7d/y+/+7u/yopIEwPHjx7nqqquuuuqqq6666n8cKlddddVVV1111VVX/b9wzTXXPPi1X/u13+vFX/zFX/vFXuzFXhtgd3eX3/3d3wXgd3/3d3lRSOJ+D3rQg7jlllt4zdd8Te53zTXXPJirrrrqqquuuuqqq/6noHLVVVddddVVV1111f9Z11xzzYNf+7Vf+71e53Ve572vueaaBwPs7u7yu7/7uzzjGc/gGc94Bv8SSdzv2LFjvORLviTHjx/nJV/yJXmgw8NDNjc3ueqqq6666qqrrrrqfxQqV1111VVXXXXVVVf9n3HNNdc8+MVe7MVe+8yZMw96p3d6p8/mmXZ3d/nd3/1d/vZv/5bd3V3+JZK437Fjx3jJl3xJHvSgB/GgBz2IBzo8POTpT386T3/60wF4i7d4C+67775bueqqq6666qqrrrrqfwoqV1111VVXXXXVVVf9r3bNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVem2d6xjOewTOe8Qx+93d/l3+JJB7o2LFjvORLviQv9VIvxbFjx3ig++67j/vuu4+///u/54E2Nze56qqrrrrqqquuuup/HCpXXXXVVVddddVVV/2vc8011zz4tV/7td/rxV/8xV/7xV7sxV4bYHd3l9/93d9ld3eXv/3bv+VfIon7HTt2jOPHj3PLLbfwmq/5mjzQ4eEhT3/60zk6OuLpT386ALa56qqrrrrqqquuuup/BSpXXXXVVVddddVVV/2vcM011zz4tV/7td/rnd7pnT6bZ9rd3eV3f/d3ecYznsEznvEMXhhJPNCxY8d4yZd8SR70oAfxoAc9iAc6PDzk6U9/OmfPnuW+++7jfra56qqrrrrqqquuuup/FSpXXXXVVVddddVVV/2PdM011zz4tV/7td8L4J3e6Z0+m2fa3d3lb//2b/nbv/1bdnd3eWEk8UDHjh3jJV/yJXnQgx7Egx70IB7o8PCQpz/96dx6660cHh7yQLa56qqrrrrqqquuuup/JSpXXXXVVVddddVVV/2P8jqv8zrv/Tqv8zrv9WIv9mKvDbC7u8sznvEMnvGMZ/C7v/u7vDCSeG7Hjh3jJV/yJXnN13xNHujw8JDDw0Puu+8+/uEf/oEXxDZXXXXVVVddddVVV/2vReWqq6666qqrrrrqqv8xXuzFXuy1X+d1Xue9brzxxtf+3d/9XZ7xjGfwjGc8gxdGEg907NgxXvIlXxKA13zN1+SBDg8PefrTn87Zs2e57777eGFsc9VVV1111VVXXXXV/3pUrrrqqquuuuqqq676H+Oaa6558Iu92Iu99t/8zd/wu7/7u7wgknigY8eO8ZIv+ZI86EEP4kEPehAPdHh4yNOf/nTOnj3Lfffdx4vCNlddddVVV1111VVX/Z9A5aqrrrrqqquuuuqq/zHOnDnzIIBLly7xQJJ4bseOHeMlX/IleamXeimOHTvGAx0eHvL0pz+df/iHf+BfwzZXXXXVVVddddVVV/2fQuWqq6666qqrrrrqqv8xrrnmmgcD7O7uIonn9qAHPYhbbrmF13zN1+SBDg8PefrTnw7AP/zDP/CvZZurrrrqqquuuuqqq/5PonLVVVddddVVV1111f84kgA4duwYL/mSL8nx48d5yZd8SR7o8PCQpz/96Zw9e5b77ruPfyvb/EfY3NwE4OzZs7dy1VVXXXXVVVddddX/FFSuuuqqq6666qqrrvof5yVf8iV5yZd8SR70oAfxQIeHhzz96U/n6U9/OoeHh0ji38o2V1111VVXXXXVVVf9n0flqquuuuqqq6666qr/cR70oAdxv/vuu4/77ruPv//7v+e52QZAEv8atrnqqquuuuqqq6666v8FKlddddVVV1111VVX/Y9xzTXXPBjg6U9/Ovfddx9Pf/rTeVHYBkASL4xtrrrqqquuuuqqq676f4XKVVddddVVV1111VX/4zz96U/nvvvu41/LNveTxP1sc9VVV1111VVXXXXV/0tUrrrqqquuuuqqq676P8k2V1111VVXXXXVVVf9v0flqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqqv+z5HE82Obq6666qqrrrrqqqv+X6Fy1VVXXXXVVVddddX/KZJ4QSQBYJv/aJubmwDcd999t3LVVVddddVVV1111f8UBFddddVVV1111VVX/Y9x33333QqwubnJv5YkJPGikIQkrrrqqquuuuqqq676P4/KVVddddVVV1111VX/60ni30ISALa56qqrrrrqqquuuur/JCpXXXXVVVddddVVV/2vJYn/CJIAsM1VV1111VVXXXXVVf+nULnqqquuuuqqq6666n8lSfxHkwSAba666qqrrrrqqquu+j+BylVXXXXVVVddddVV/6tI4j+bJGxz1VVXXXXVVVddddX/elSuuuqqq6666qqrrvpfQxL/VSQBYJurrrrqqquuuuqqq/7XonLVVVddddVVV1111f94kvjvIgkA21x11VVXXXXVVVdd9b8Olauuuuqqq6666qqr/keTxP8EkgCwzVVXXXXVVVddddVV/2sQXHXVVVddddVVV131P5Yk/qeRxFVXXXXVVVddddVV/2tQueqqq6666qqrrrrqf4z77rvvVoDNzU0k8T+VJABsc9VVV1111VVXXXXV/2hUrrrqqquuuuqqq6666t9IEgC22dzcBOC+++67lauuuuqqq6666qqr/qegctVVV1111VVXXXXVVf9Okrjqqquuuuqqq6666n8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq676D7C5uQnA2bNnn8FVV1111VVXXXXVVf9TEFx11VVXXXXVVVdd9T/G2bNnnwFwzTXXcNVVV1111VVXXXXVVf8BqFx11VVXXXXVVVdd9T/GP/zDP/z2P/zDP/z2i73Yi732m7/5m3N4eMh9993H2bNnue+++7jqqquuuuqqq6666qp/JSpXXXXVVVddddVVV/2Pcd999936Iz/yI5/zTu/0TrzYi73Ya29ubnLNNdcAcHh4yH333cett97Kfffdx/Mjif8otrnqqquuuuqqq6666n89KlddddVVV1111VVX/Y/yD//wD7/9mZ/5mb99zTXXPPjFXuzFXvvFXuzFXut1Xud13ntzc5OHPOQhPOQhD+Hw8JCzZ89y3333ceutt/KfQRLPzTZXXXXVVVddddVVV/2vQuWqq6666qqrrrrqqv+R7rvvvlvvu+++7/6t3/qt7/7RH/3Rzzlz5syDXuzFXuy1X/zFX/y1X+zFXuy1Nzc3efCDH8yLvdiLcXh4yNmzZ7nvvvs4e/Ys/1kk8UC2ueqqq6666qqrrrrqfzQqV1111VVXXXXVVVf9j3fffffdet999936D//wD7/zoz/6o59zzTXXPPjFXuzFXvt1Xud13uvFXuzFXntzc5NrrrmGF3uxF+Pw8JCzZ8/y9Kc/nbNnz/KfSRJXXXXVVVddddVVV/2PRuWqq6666qqrrrrqqv917rvvvlvvu+++7/6t3/qt777mmmse/GIv9mKv/WIv9mKv9Tqv8zrvvbm5yebmJg9+8IM5PDzk7Nmz3Hfffdx66638Z5LEVVddddVVV1111VX/41C56qqrrrrqqquuuup/tfvuu+/W++6777t/67d+67t/9Ed/9HNs+3Ve53Xe+8Vf/MVf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6qqrrrrqqqv+D5HECyOJf4kk/iWSuOqqq6666qqrrrrqqv8FqFx11VVXXXXVVVf9LyGJF0YSL4wk/iWS+JdI4gU5c+bMg7nqqquuuuqqq6666qr/OQiuuuqqq6666qqr/ge57777bgXY3NzkgSTxwkjihZHEv0QSL4wkJHHVVVddddVVV1111VX/i1C56qqrrrrqqquu+h9OEi+MJF4YSbwwkviXSOKqq6666qqrrrrqqqv+FyK46qqrrrrqqquu+h/k7NmztwJsbm4CIIkXRhIvjCReGEn8SyTxLzk8POSqq6666qqrrrrqqqv+B6Jy1VVXXXXVVVdd9b+UJF4YSbwwknhhJPEvkcRVV1111VVXXXXVVVf9D0blqquuuuqqq6666n8oSbwgknhhJPHCSOKFkcQLI4mrrrrqqquuuuqqq676X4Dgqquuuuqqq6666n+Q++6771aAra0t/q0k8cJI4gWRhCReGEm8INdcc82Dueqqq6666qqrrrrqqv85qFx11VVXXXXVVVf9LyOJF0QSL4wkXhBJvDCSuOqqq6666qqrrrrqqv9lCK666qqrrrrqqqv+B7nvvvtuBdjc3OT5kcQLIokXRBKSeEEk8cJI4oU5Ojriqquuuuqqq6666qqr/geictVVV1111VVXXfW/hCReEEm8IJJ4YSTxgkjihZHEVVddddVVV1111VVX/Q9G5aqrrrrqqquuuup/AUm8IJJ4QSTxgkjihZHECyOJq6666qqrrrrqqquu+h+O4Kqrrrrqqquuuup/kLNnzz4DYHNzk/tJ4gWRxAsiiRdEEi+IJCTxgkhCEi/INddc82Cuuuqqq6666qqrrrrqfwYqV1111VVXXXXVVf+DSeIFkcQLIokXRBIviCReGElcddVVV1111VVXXXXV/yJUrrrqqquuuuqqq/4Hue+++24F2Nzc5IWRxAsiiRdEEi+IJF4QSbwwkrjqqquuuuqqq6666qr/gahcddVVV1111VVX/Q8liedHEi+IJF4QSbwgknhBJPGCSALg6OiIq6666qqrrrrqqquu+h+IylVXXXXVVVddddX/EZJ4QSTx/EjiBZHECyKJq6666qqrrrrqqquu+l+A4Kqrrrrqqquuuup/kLNnz94KsLm5yfMjiedHEi+IJJ4fSbwgknhBJPHCnDlz5sFcddVVV1111VVXXXXV/wxUrrrqqquuuuqqq/6XkMTzI4nnRxIviCSeH0m8IJK46qqrrrrqqquuuuqq/2WoXHXVVVddddVVV/0vIInnRxLPjyReEEk8P5J4QSTxgkjiqquuuuqqq6666qqr/oeictVVV1111VVXXfU/yH333XcrwObmJveTxPMjiedHEi+IJJ4fSTw/knhBJHG/o6Mjrrrqqquuuuqqq6666n8gKlddddVVV1111VX/g0ni+ZHE8yOJ50cSz48kXhBJPD+SuOqqq6666qqrrrrqqv8lCK666qqrrrrqqqv+h7nvvvtuBdja2uL5kcTzI4nnRxLPjySeH0lI4vmRxFVXXXXVVVddddVVV/0vQnDVVVddddVVV131P9SLvdiLcebMGR5IEs+PJJ4fSTw/knh+JPH8SEISz48kHuiaa655MFddddVVV1111VVXXfU/A5Wrrrrqqquuuuqq/2E+8zM/87W/+Zu/+dYHP/jBPPjBD+bw8JCzZ89y9uxZDg8POXv2LA8kiedHEs+PJJ4fSTw/knh+JHHVVVddddVVV1111VX/w1G56qqrrrrqqquu+h/oMz/zM1/nxV7sxV7rxV/8xV/7xV7sxV57c3OTBz/4wQAcHh5y9uxZbr31Vs6dO8fzI4nnRxLPTRLPjySeH0lcddVVV1111VVXXXXV/xJUrrrqqquuuuqqq/6HOXv27DPOnj37jH/4h3/47R/90R/9nGuuuebBL/ZiL/ZaL/ZiL/bar/M6r/Pem5ubbG5u8uAHP5jDw0POnj3L2bNnOXv2LEdHR0jiuUni+ZHE8yOJ50cSz89yueSqq6666qqrrrrqqqv+B6Jy1VVXXXXVVVdd9T/cfffdd+t9991362/91m99z4/+6I9+zpkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq+9ubnJgx/8YACOjo44e/Ysz3jGMzh79iwAknh+JPH8SOK5SeL5kcRVV1111VVXXXXVVVf9D0blqquuuuqqq6666n+R++6779b77rvv1n/4h3/47R/90R/9nGuuuebBL/ZiL/baL/ZiL/Zar/M6r/PeGxsbPOhBD+JBD3oQR0dHnD17lnPnznH27FmOjo64nySemySeH0k8P5K46qqrrrrqqquuuuqq/+Eox48f56qrrrrqqquuuup/q8PDw91bb731r//0T//0Z377t3/7e/70T//0p++7775bJXHjjTc++Pjx49xwww08/OEP50EPehDHjh1jmiaOjo54IEk8N0lI4rlJQhIPdOzYMa6//noAnv70p//1P/zDP/wOV1111VVXXXXVVVdd9d8PPehBD+Kqq6666qqrrrrq/6JrrrnmwS/2Yi/22i/2Yi/2Wq/zOq/z3jzA0dER586d4+zZs5w/f56joyMeSBLPjySemyRuvvlmXvqlXxqAr//6r3+f3/qt3/purrrqqquuuuqqq6666r8fetCDHsRVV1111VVXXXXVf6Rrrrnmwffdd9+t/A9yzTXXPPjMmTMPfrEXe7HXevEXf/HXfrEXe7HX5gGOjo44d+4ct912G+fPn+e5SeL5kQTAqVOneNVXfVUAvv7rv/59fuu3fuu7ueqqq6666qqrrrrqqv9+6EEPehBXXXXVVVddddVV/x7XXHPNg1/sxV7stc+cOfOgd3qnd/rs++6779Yf/dEf/Zzf+q3f+m7+hzpz5syDXvzFX/x1XuzFXuy1Xud1Xue9eYCjoyPOnTvH+fPnOXfuHMvlkucmiQc6deoUr/qqrwrAZ37mZ77OP/zDP/w2V1111VVXXXXVVVdd9d8PPehBD+Kqq6666qqrrrrqX+uaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns/H273d24n/Ba655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8wNHREefPn+e2227j/PnzSOK5nT59mld5lVcB4EM+5EMect99993KVVddddVVV1111VVX/fdDD3rQg7jqqquuuuqqq656UVxzzTUPfu3Xfu33ep3XeZ33vuaaax7MM+3u7vI3f/M3/M3f/A0PetCDeKu3eisA3u7t3k78L3TNNdc8+MVe7MVe+8Ve7MVe63Ve53Xemwc4Ojri/PnznD9/nvPnz3N0dIQkTp06xau8yqsA8HZv93biqquuuuqqq6666qqr/mdAD3rQg7jqqquuuuqqq656fq655poHv/Zrv/Z7XXPNNQ9+ndd5nffmmXZ3d/mbv/kbAH7nd36HB3qrt3orXuqlXgqAD/mQD3nIfffddyv/i505c+ZB11xzzUNe7MVe7LVe/MVf/LVf7MVe7LV5gKOjI86fP89yueSRj3wkAG/3dm8nrrrqqquuuuqqq6666n8GKlddddVVV1111VUPcM011zz4tV/7td/rxV/8xV/7xV7sxV6bZ9rd3eVv/uZvuPXWW3nGM57BC/KgBz2I/0vOnj37jLNnzz7jH/7hH377R3/0Rz/nmmuuefCLvdiLvdaLvdiLvfbrvM7rvPfGxgYbGxvc77777ruVq6666qqrrrrqqquu+p+DylVXXXXVVVdd9f/aNddc8+AXe7EXe+0zZ8486J3e6Z0+mwe49dZbecYznsHv/M7v8KI6fvw49ztz5syD77vvvlv5P+S+++679b777rv1t37rt77nR3/0Rz/nzJkzD36xF3ux13rxF3/x1wb4+q//+vfhqquuuuqqq6666qqr/uegctVVV1111VVX/b9zzTXXPPi1X/u13+vFX/zFX/vFXuzFXptn2t3d5W/+5m+49dZbecYznsG/hiRe6qVeCoC/+Zu/4UEPehD/191333233nfffbf+wz/8w2//6I/+6Odw1VVXXXXVVVddddVV//NQueqqq6666qqr/l94sRd7sdd+sRd7sdd6p3d6p8/mAXZ3d/mbv/kb/vqv/5pLly7xryUJgOPHj/NSL/VSAFy6dImrrrrqqquuuuqqq6666n8EKlddddVVV1111f9J11xzzYNf+7Vf+71e/MVf/HVe7MVe7LV4pt3dXf76r/8aSfzO7/wO/xaSOH78OMeOHeNBD3oQr/Var8UDXbp0iUuXLnHNNdc8+B/+4R+46qqrrrrqqquuuuqqq/7bULnqqquuuuqqq/7PuOaaax782q/92u/1Oq/zOu99zTXXPJhn2t3d5a//+q95xjOewTOe8Qz+rU6cOMFLvuRL8uAHP5gHPehBPNDh4SEAm5ub3O/MmTMP4qqrrrrqqquuuuqqq67670Tlqquuuuqqq676X+uaa6558Gu/9mu/F8A7vdM7fTbPtLu7y6233sqtt97K7/zO7wAgiX+L48eP81Iv9VK81Eu9FMePH+eBDg8PefrTn87Tn/50jo6OeLEXezFe/MVfnGPHjnHVVVddddVVV1111VVX/Y9A5aqrrrrqqquu+l/lmmuuefBrv/Zrv9eLv/iLv86LvdiLvRbPtLu7y1//9V/zjGc8g1tvvRUASUjiX+P48eO81Eu9FMePH+elXuqleKDDw0Oe/vSnA/D3f//33E8SDySJS5cucdVVV1111VVXXXXVVVf9t6Ny1VVXXXXVVVf9r/BiL/Zir/25n/u5v8UD7O7u8td//df8zd/8Dbu7u9xPEv8ax48f56Ve6qV40IMexIMf/GAe6PDwkKc97Wncd999nD17ln+Na6655sFcddVVV1111VVXXXXVVf+dqFx11VVXXXXVVf/jvdiLvdhrv9M7vdNn7e7u8td//dcA/M7v/A7PTRIviuPHj/OgBz2I48eP81qv9Vo80OHhIYeHh9x77738/d//PQ8kiecmifsdHR0BcOzYMS5dusQ111zzYK666qqrrrrqqquuuuqq/05Urrrqqquuuuqq//Fe53Ve571e7MVe7LV/5md+hr/+67/mgSTxojh+/Dgv9VIvxYMe9CAe/OAH80CHh4c87WlP49577+W+++5DEs9NEs9NEg90eHgIwLFjx7h06RJXXXXVVVddddVVV1111X87KlddddVVV1111f94L/ZiL/baALfeeiv3k8S/5EEPehAPfvCDea3Xei2e2+HhIU972tN42tOexuHhIfeTxHOTxHOTxAsiiUuXLnHy5Emuuuqqq6666qqrrrrqqv9WVK666qqrrrrqqv/RXud1Xue9r7nmmgcD7O7uIokX5Pjx47zUS70UD3rQg3jwgx/MAx0eHvLUpz6Vw8NDnva0pyGJ/2xnzpx5MFddddVVV1111VVXXXXVfycqV1111VVXXXXV/2gv9mIv9loAf/M3f4Mkntvx48d5qZd6KV7qpV6K48eP80AHBwc87WlP47777uPee+/lXyKJ5yaJ5yaJ5yaJo6MjAI4dO8alS5e46qqrrrrqqquuuuqqq/7bUbnqqquuuuqqq/5He7EXe7HXBvjrv/5rAI4fP85LvdRLAfBar/VaPNDBwQGHh4fce++9/O3f/i2SeH4k8dwk8dwk8dwk8dwk8dwkcdVVV1111VVXXXXVVVf9t6Ny1VVXXXXVVVf9j3bNNdc8GODBD34wr/Var8WDH/xgHujg4ICnPe1p3Hvvvdx77738SyTxH0kS9zs8PATg2LFjXLp0iWuuuebBXHXVVVddddVVV1111VX/nahcddVVV1111VX/Y73O67zOe/NMr/Var8X97r33Xu655x6e9rSncXh4yPMjiReVJJ6bJJ6bJP61rrnmmgffd999t3LVVVddddVVV1111VVX/XegctVVV1111VVX/Y93cHDAU5/6VO69917uvfdeHkgSLypJPDdJPDdJPDdJPDdJPLfDw0M2Nzc5duwYV1111VVXXXXVVVddddV/O4Krrrrqqquuuup/rDNnzjwI4KlPfSp/+7d/y7333ssDSeL5kcR/Nkk8N0ncb29vD4AzZ848mKuuuuqqq6666qqrrrrqvwvBVVddddVVV131P9bZs2efAbC1tcVzk8TzI4nnRxLPTRLPTRLPTRL/EkkAHB0dAXDs2DGuuuqqq6666qqrrrrqqv92VK666qqrrrrqqv+x7rvvvlsBtra2+PeQxHOTxHOTxHOTxHOTxANJ4vm5dOkSV1111VVXXXXVVVddddV/K4Krrrrqqquuuup/HUk8P5L4zyaJF9WlS5e45pprHsxVV1111VVXXXXVVVdd9d+F4Kqrrrrqqquu+h/r7NmztwJsbm7ybyWJ5yaJ5yaJ5yaJB5LEc5PEAx0eHgJw7Ngxrrrqqquuuuqqq6666qr/dlSuuuqqq6666qr/VSTx/Eji30oSz00S/xJJPJAkjo6OADh27BgAZ86ceRBXXXXVVVddddVVV1111X8XKlddddVVV1111f9Y9913360AW1tb/FtI4rlJ4t9CEg8kiX/J3t4eV1111VVXXXXVVVddddV/K4Krrrrqqquuuup/tPvuu+9WgK2tLSTx/EjiuUniuUniuUniuUnigSTxL5HE83PNNdc8mKuuuuqqq6666qqrrrrqvwvBVVddddVVV131P9rZs2dvBdjc3OT5kcR/JEn8SyTxQJK43+HhIQDHjh3j0qVLXHXVVVddddVVV1111VX/rQiuuuqqq6666qr/FSTxopLEc5PEc5PEv0QSDySJB5LEAy2XSwCOHTsGwDXXXPNgrrrqqquuuuqqq6666qr/LgRXXXXVVVddddX/aPfdd9+tAJubmzw3SfxbSeK5SeKBJPHvsbe3x1VXXXXVVVddddVVV13134rKVVddddVVV131P9p99913K8DW1hYvCkk8N0n8SyTxL5HEA0nigSTx3M6cOfNgrrrqqquuuuqqq6666qr/LlSuuuqqq6666qr/lSTx3CTx3CTx3CTxL5HEA0nigSTxQJIAODw8BODYsWPs7e1x1VVXXXXVVVddddVVV/23onLVVVddddVVV/2Pdvbs2WcAbG5u8h9BEs9NEg8kiQeSxAsjiauuuuqqq6666qqrrrrqfyQqV1111VVXXXXV/2j33XffrQBbW1vcTxLPTRLPTRL/Ekn8a0niBTk6OgJgZ2cHSVxzzTUP5qqrrrrqqquuuuqqq67670Llqquuuuqqq676P0kSz00S/xJJPJAkHkgSDySJB5LE/S5dusRVV1111VVXXXXVVVdd9d+K4Kqrrrrqqquu+h/t7NmztwJsbm4CIInnJol/iSSemyQeSBIPJIkHksQDSeKBJAFwdHQEwLFjxwC45pprHsxVV1111VVXXXXVVVdd9d+BylVXXXXVVVdd9b+GJJ6bJJ6bJP4lkviPJInntre3x1VXXXXVVVddddVVV13134rgqquuuuqqq676H+2+++67FWBra4t/K0n8SyTxQJJ4IEk8kCRekKOjIwB2dnYAOHPmzIO56qqrrrrqqquuuuqqq/47EFx11VVXXXXVVf/j3XfffbcCbG5u8kCSeG6S+JdI4oEk8UCSeCBJPJAkHkgS95PEA+3t7XHVVVddddVVV1111VVX/bchuOqqq6666qqr/se77777bgXY2trihZHEc5PEA0ni30MSDySJf8k111zzYK666qqrrrrqqquuuuqq/w5Urrrqqquuuuqq/5Uk8S+RxL9EEg8kiQeSxAsiiQeSBMDR0REAx44dY29vj6uuuuqqq6666qqrrrrqvw2Vq6666qqrrrrqf7yzZ8/eCrC5uQmAJJ6bJP4lknggSTyQJB5IEg8kiRdEEvc7PDwEYGdnB4AzZ848iKuuuuqqq6666qqrrrrqvwPBVVddddVVV131P9599913K8C1117Ltddey4tCEg8kiX8PSTyQJO4niQeSxFVXXXXVVVddddVVV131PwKVq6666qqrrrrqf7x/+Id/+J1/+Id/+O0Xe7EXe+2HPvShHB4ecu+993Lfffdx7733cnR0xANJ4l8iiQeSxANJ4gWRxAsiiftJYm9vj6uuuuqqq6666qqrrrrqvw3l+PHjXHXVVVddddVV/7OdPXv2VkCHh4e7R0dHuzfeeOODT5w4wU033cSjH/1oHvrQh3LixAmGYeDw8BBJPJAkHkgSDySJB5LEA0nigSRxP0ncTxIAGxsbXH/99ezt7bG3t8dsNrv1T//0T3+Gq6666qqrrrrqqquuuuq/GpWrrrrqqquuuup/hd/6rd/67t/6rd/6boBrrrnmwS/2Yi/2Wi/2Yi/22q/zOq/z3pubmzzkIQ/hIQ95CIeHhxweHnLfffdx3333cd999/GvIYkHksQDSeJ+knh+jo6OANjZ2WFvb49rrrnmwVx11VVXXXXVVVddddVV/x2oXHXVVVddddVV/+vcd999t9533323/tZv/db3/OiP/ujnnDlz5sEv9mIv9lov/uIv/tov9mIv9tqbm5tcc801ABweHnLfffdx9uxZnv70pyOJB5LEi0oSL4gk7ieJq6666qqrrrrqqquuuup/BPSgBz2Iq6666qqrrrrq/45rrrnmwS/2Yi/22i/2Yi/2Wi/2Yi/22tdcc82DeYDDw0POnj3L05/+dM6dO8cDSeKBJHE/STyQJO4niftJ4vTp07zaq70ad9xxB49//OOptX7313/9178PV1111VVXXXXVVVddddV/NSpXXXXVVVddddX/Kffdd9+t991333f/1m/91ncDnDlz5kEv/uIv/jqv8zqv814v9mIv9tqbm5tsbm7y4Ac/mMPDQ46Ojrj11ls5Ojri7Nmz3E8SL4gk7ieJ53Z0dATAzs4ON910E/fccw9XXXXVVVddddVVV1111X8L9KAHPYirrrrqqquuuuo/3zXXXPPg137t136vH/3RH/0c/ptcc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eYDDw0POnj3LuXPneMYznsH9JHE/STyQJO4nCYCNjQ3e4A3egL29PQC+93u/931+67d+67u56qqrrrrqqquuuuqqq/6roQc96EFcddVVV1111VX/8a655poHnzlz5sEv9mIv9lrv9E7v9Nk802/91m9992/91m99zz/8wz/8Nv/Nrrnmmge/2Iu92Gu/2Iu92Gu9zuu8znvzXI6OjnjGM57B2bNnOXfuHACSuJ8k7ieJ+0niLd/yLbnfh3zIhzzkvvvuu5Wrrrrqqquuuuqqq6666r8aetCDHsRVV1111VVXXfUf45prrnnwa7/2a7/Xi7/4i7/Oi73Yi70Wz7S7uwvA8ePHAfjMz/zM1/mHf/iH3+Z/mGuuuebBL/ZiL/bar/M6r/NeL/ZiL/baPMDR0RHnzp3j7NmzHB0dcf78eR5IEveTxFu+5Vtyv7d7u7cTV1111VVXXXXVVVddddV/BypXXXXVVVddddW/2TXXXPPgM2fOPPjFXuzFXuud3umdPpsH2N3d5a//+q+59dZbufXWW3npl35p3vqt3xqAa6655sH/8A//wP80991336333Xffd//Wb/3Wd19zzTUPPnPmzINe53Ve572vueaaB7/Yi73Ya99yyy3ccsstABwdHXHu3DnOnTvH7bffzv0kAXB0dMTGxgZXXXXVVVddddVVV1111X8rKlddddVVV1111b/KNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22eaXd3l93dXZ7+9KfzO7/zOzy3137t1+Z+Z86ceRD/w91333233nfffbf+wz/8w+8AXHPNNQ9+sRd7sdd+sRd7sdd6ndd5nffe2Njglltu4ZZbbuHRj340R0dHnD9/nnPnznH+/Hnu91u/9VvfzVVXXXXVVVddddVVV13134XKVVddddVVV131Ql1zzTUPPnPmzINf7MVe7LXe6Z3e6bN5gN3dXf7qr/6KW2+9lVtvvRVJvCDHjx8H4O677+aaa655MP/L3Hfffbfed9993/1bv/Vb3/31X//173PNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVee2Njg9OnT/OoRz2Ko6MjNjY2ALjvvvtu5aqrrrrqqquuuuqqq67670Llqquuuuqqq656Htdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eYBbb72Vpz/96fz1X/81u7u7AEhCEi/IS7/0SwPwpCc9CYBrrrnmwfwvd9999936oz/6o5/zoz/6o59z5syZB734i7/467zYi73Ya11zzTUPfrEXe7HXBviHf/iH3/6Hf/iH3+Gqq6666qqrrrrqqquu+u9C5aqrrrrqqquuuuzFXuzFXvvFXuzFXut1Xud13vuaa655MM+0u7vLX/3VX3Hrrbdy66238kCSeFE8+MEPBuDuu+9me3ub2WzG/yVnz559xm/91m9992/91m99N8A111zz4Bd7sRd7rd/6rd/6Hq666qqrrrrqqquuuuqq/05Urrrqqquuuur/qWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPMDu7i5/9Vd/xV//9V+zu7vLc5PEi+r48eO89Eu/NAB3330329vbnDlz5sH8H3bffffdet99993KVVddddVVV1111VVXXfXfjcpVV1111VVX/T9yzTXXPPi1X/u13+t1Xud13vuaa655MM+0u7vLX/3VX3Hrrbdy66238oJI4kVx/PhxXvqlX5qXfumX5vjx4wDs7+9zcHDA3XffzU033cRVV1111VVXXXXVVVddddV/ASpXXXXVVVdd9X/YNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe20eYHd3l7/6q7/ir//6r9nd3eWFkcQLc/z4cV76pV+aBz/4wTz4wQ/mgQ4ODtja2kIS97vmmmsezFVXXXXVVVddddVVV1111X8+KlddddVVV131f8w111zz4Nd+7dd+r9d5ndd572uuuebBPNPu7i5/9Vd/xe7uLn/913/Ni0ISL8jx48d56Zd+aV76pV+a48eP80AHBwc89alP5d577+Xw8JC3eZu3AUASBwcHAFxzzTUPvu+++27lqquuuuqqq6666qqrrrrqPw+Vq6666qqrrvo/4nVe53Xe+8M//MO/iwfY3d3lr/7qr/jrv/5rdnd3eVFI4vk5fvw4L/3SL82DH/xgHvzgB/NABwcH3HvvvRwcHPC3f/u3PJAkALa2tnigM2fOPPi+++67lauuuuqqq6666qqrrrrqqv88VK666qqrrrrq/4DXeZ3Xee93eqd3+uzd3V3+6q/+CoDf/u3f5l9DEs/t+PHjvPRLvzQv/dIvzfHjx3mgg4MDnvrUp3LPPfdw7733AiCJ5+fg4ICtrS22trY4ODjgqquuuuqqq6666qqrrrrqvwiVq6666qqrrvo/4B3f8R0/68yZMw/6ru/6Lm699Vb+tSQBcPz4cV76pV+aBz/4wTz4wQ/mgQ4ODjg4OOCee+7hb//2b3luknhukgA4PDxka2uL7e1tDg8POTg44JprrnnwP/zDP3DVVVddddVVV1111VVXXfWfiMpVV1111VVX/S/3Oq/zOu99zTXXPBjg1ltv5V9DEsePH+elX/qleemXfmmOHz/OAx0cHPCUpzyFe++9l3vuuYf7SeJfIokXZH9/nzNnzjyIq6666qqrrrrqqquuuuqq/1xUrrrqqquuuup/uRd7sRd7LYC//uu/5kVx/PhxXuZlXobjx4/z0i/90jzQwcEBBwcH3HPPPfz1X/81knhuknhuknhhDg4OuPbaa9ne3uaee+4B4JprrnkwV1111VVXXXXVVVddddVV/7moXHXVVVddddX/cq/zOq/z3gC/9Vu/xQty/PhxXvqlX5qXeZmX4fjx4zzQwcEBT3nKU7jnnnu45557uJ8k/q0k8UCHh4cAbG1tIYnDw0OuueaaB3PVVVddddVVV1111VVXXfWfi8pVV1111VVX/S/2Oq/zOu8NcOutt7K7u8v9jh8/zku/9Etz4sQJXvqlX5oHOjg44ODggLvvvpu//uu/RhIvKkk8N0n8Sw4ODgDY3t4GYH9/n77vueqqq6666qqrrrrqqquu+k9G5aqrrrrqqqv+F3ud13md9wL4q7/6K44fP85Lv/RL8zIv8zIcP36cBzo4OODJT34y99xzD/fccw//Ekm8KCTx3CTx3I6OjgDY2toC4ODggEc96lEP5qqrrrrqqquuuuqqq6666j8Xlauuuuqqq676X+zFXuzFXhvgbd7mbXigg4MD9vf3ueeee/irv/orACTx7yGJ/wiSODw85Kqrrrrqqquuuuqqq6666r8Alauuuuqqq676X+rFXuzFXpsHODg44ElPehL33HMP99xzDy8KSTw3STw3STw3STw3STw3SRwcHACwtbXF/a655poHc9VVV1111VVXXXXVVVdd9Z+LylVXXXXVVVf9L3dwcMCP/MiPACCJ50cS/xNsbW0BcHBwAMA111zz4Pvuu+9Wrrrqqquuuuqqq6666qqr/nMQXHXVVVddddX/U5J4bpJ4bpJ4bpJ4bpJ4bpIAODw85H7b29tIAuCaa655MFddddVVV1111VVXXXXVVf95CK666qqrrrrqf6mzZ8/eyotAEv8dJPFA9957LwBbW1scHBwAcObMmQdz1VVXXXXVVVddddVVV131n4fKVVddddVVV/0vdd99990KsLW1BYAkXlSSeG6SeG6SeG6SeG6S+Nc6ODjgzJkzD+Kqq6666qqrrrrqqquuuuo/D8FVV1111VVX/S/2D//wD78NcP311/P8SOK/gySe2+HhIQBbW1tI4uDggKuuuuqqq6666qqrrrrqqv9kVK666qqrrrrq/xlJPDdJPDdJPDdJPDdJ/EskcXh4CMDW1hb3u+aaax7CVVddddVVV1111VVXXXXVfx6Cq6666qqrrvpf7L777rsVYHt7m/8OknhuknhRHB4ecs011zyYq6666qqrrrrqqquuuuqq/zwEV1111VVXXfW/2H333XcrwNbWFs9NEs9NEs9NEs9NEs9NEv8WkgA4PDwEYGtrC0kcHBxw1VVXXXXVVVddddVVV131n4zgqquuuuqqq/4X+4d/+IffAbjuuuv4ryaJ5yaJB5LE/Q4ODgDY2toC4PDwkGuuuebBXHXVVVddddVVV1111VVX/eehctVVV1111VX/B0niuUniRSGJ5yaJf6/Dw0MANjc3ATg8POTMmTMP4qqrrrrqqquuuuqqq6666j8PwVVXXXXVVVf9L3b27NlbAba3t/m3kMS/hSSemyQeSBIPJIn7SeJ+11xzzYO56qqrrrrqqquuuuqqq676z0Fw1VVXXXXVVf+L3XfffbcCbG1tcT9J/FtJ4rlJ4l8iiX/J4eEhAFtbWwAcHBwAcObMmQdz1VVXXXXVVVddddVVV131n4Pgqquuuuqqq/6Xu++++24F2Nra4gWRxHOTxL+FJP4lknggSQAcHh4CsLm5yVVXXXXVVVddddVVV1111X8Bgquuuuqqq676X+7s2bO3AmxvbyOJfytJPDdJ/Esk8aI6PDwEYHt7m6OjIwCuueaaB3PVVVddddVVV1111VVXXfWfg+Cqq6666qqr/pe77777bgXY2tri+ZHEc5PEv4Uk/iWSeCBJvCD33nsvZ86ceRBXXXXVVVddddVVV1111VX/OahcddVVV1111f9y9913360AW1tb/FtJ4rlJ4l8iiQeSxAtzeHgIwObmJpK46qqrrrrqqquuuuqqq676T0blqquuuuqqq/6XO3v27DMAtre3eW6SeG6S+LeQxL+WJB7o8PAQgK2tLQAODw+55pprHsxVV1111VVXXXXVVVddddV/DipXXXXVVVdd9b/cfffddyvA1tYW/xaSeG6S+JdI4oEk8UCSeCBJ3G9zcxOAw8NDrrnmmgdz1VVXXXXVVVddddVVV131n4PKVVddddVVV/0vd/bs2VsBtra2eCBJPDdJ/FtI4j/CfffdB8Dm5iaSADhz5syDueqqq6666qqrrrrqqquu+s9B5aqrrrrqqquueg6S+JdI4oEk8UCSeCBJPJAkAA4PD7nqqquuuuqqq6666qqrrvpPRHDVVVddddVV/8vdd999t9533323bm1tsbW1BYAknpsknpsk/iWS+I9yeHgIwObmJgCHh4dcc801D+aqq6666qqrrrrqqquuuuo/B8FVV1111VVX/R9w9uzZWwG2trb495DEA0niuUnigSTxQJJ4IEk8P5I4OjoC4JprrnkwV1111VVXXXXVVVddddVV//EIrrrqqquuuur/kOuuu47rrruO5yaJ5yaJfy1J/GtI4oGOjo4A2Nzc5IHOnDnzYK666qqrrrrqqquuuuqqq/7jUbnqqquuuuqq/wN+5Ed+5HPe8R3fkZd5mZd5bYCDgwPuuece7rnnHg4ODrj33nv5l0jigSTxL5HEA0niX3J4eMjm5iabm5scHR1x1VVXXXXVVVddddVVV131n4hy/Phxrrrqqquuuup/u7Nnz94qicPDw93Nzc3jJ06cOH7y5EluueUWHv7wh/Pwhz+ckydPMpvNuHDhApJ4bpJ4IEk8kCSemyTuJ4kHksQDSQLgxhtvZHNzk7vuuovDw0Me8pCH8OQnP/l3br311r/mqquuuuqqq6666qqrrrrqPxaVq6666qqrrvo/4rd+67e+57d+67e+B+Caa6558Iu92Iu99ou92Iu91uu8zuu899bWFg9/+MN5+MMfzqu92qtxcHDAvffey1Oe8hTuvfdeJPFAkviXSOLfY3NzE4DDw0POnDnzIK666qqrrrrqqquuuuqqq/7jUbnqqquuuuqq/4Puu+++W++7777v/q3f+q3v/tEf/dHPAXixF3ux136d13md93qxF3ux197a2mJra4uHPexhHBwccHh4yD333MO9997Lvffey3OTxANJ4oEk8UCSeCBJ3O++++7jmmuuYWNjA0lsbm5y9uzZZ3DVVVddddVVV1111VVXXfUfj8pVV1111VVX/R9333333Qpw3333ffdv/dZvffeZM2cedM011zzkxV7sxV7rxV/8xV/7xV7sxV57a2uLa6+9FoCDgwPuvfde7r33Xg4PD7n33nv595DEA0kCQBIAm5ub3Hfffbdy1VVXXXXVVVddddVVV131Hw896EEP4qqrrrrqqqv+P7vmmmse/GIv9mKv9WIv9mKvfc011zz4xV7sxV6bBzg8POTee+/l3nvv5WlPexqSeCBJPJAkHkgS95PEgx/8YF7xFV+RW2+9lfvuu49XfMVX5O3e7u3EVVddddVVV1111VVXXXXVfzz0oAc9iKuuuuqqq6666tmuueaaB7/Yi73Ya7/Yi73Ya73O67zOe/NcDg8Puffee7nvvvt42tOehiQeSBL3k8QDSeLMmTO8zuu8Dvfddx9HR0c8/elP/+6v//qvfx+uuuqqq6666qqrrrrqqqv+46EHPehBXHXVVVddddVVL9g111zz4Bd7sRd77dd5ndd5rxd7sRd7bR7g8PAQgKc97Wncd999nD17lgeSxP0kAbC5ucmbvdmbcXh4CMB3fdd3vc9v/dZvfTdXXXXVVVddddVVV1111VX/8dCDHvQgrrrqqquuuuqqF82ZM2cedM011zzkxV7sxV7rxV/8xV/7xV7sxV6bBzg8POTw8JCnP/3pHB0dcd9993E/SQBsbm7yZm/2ZhweHrK5ucmHfMiHPOS+++67lauuuuqqq6666qqrrrrqqv946EEPehBXXXXVVVddddW/zTXXXPPgF3uxF3utF3uxF3vta6655sEv9mIv9to8wOHhIffddx9nz57l8PCQs2fPAvCO7/iO3O/t3u7txFVXXXXVVVddddVVV1111X8O9KAHPYirrrrqqquuuuo/xjXXXPPgF3uxF3vtF3uxF3utF3uxF3vta6655sE8wOHhIWfPnuXMmTNsbm7yW7/1W9/z9V//9e/NVVddddVVV1111VVXXXXVfw70oAc9iKuuuuqqq6666j/HNddc8+AXe7EXe+0Xe7EXe63XeZ3XeW+ey9d//de/z2/91m99N1ddddVVV1111VVXXXXVVf850IMe9CCuuuqqq6666qr/Gtdcc82DX+zFXuy1X+d1Xue9fuRHfuRz/uEf/uG3ueqqq6666qqrrrrqqquu+s+DHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9X8Y80lIzVmDNlXAAAAABJRU5ErkJggg==) +```js +// Pattern a whole sketch on face. +size = 100 +case = startSketchOn('XY') + |> startProfileAt([-size, -size], %) + |> line(end = [2 * size, 0]) + |> line(end = [0, 2 * size]) + |> tangentialArcTo([-size, size], %) + |> close(%) + |> extrude(length = 65) + +thing1 = startSketchOn(case, 'end') + |> circle({ + center = [-size / 2, -size / 2], + radius = 25 + }, %) + |> extrude(length = 50) + +thing2 = startSketchOn(case, 'end') + |> circle({ + center = [size / 2, -size / 2], + radius = 25 + }, %) + |> extrude(length = 50) + + // We pass in the "case" here since we want to pattern the whole sketch. +// And the case was the base of the sketch. +patternLinear3d( + case, + axis = [1, 0, 0], + distance = 250, + instances = 2, +) +``` + +![Rendered example of patternLinear3d 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD96UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV/2fd8011zyYZzpz5syDr7nmmgfzTGfOnHkQD3DNNdc8mH+j++6771ae6ezZs8/gme67775bAc6ePXsrwH333XcrV131/9Q111zzYIAzZ848GOCaa655MM905syZB/EA11xzzYN50QgwD3Dffffdevbs2WecOXPmQWfPnn0Gz3TffffdCnD27NlbAe67775bueqqq6666qqr/i+jctVVV1111VVX/a90zTXXPBjgzJkzD36xF3ux1wK45pprHnzNNdc8GODMmTMPvuaaax7Mf4ALFy7wQCdPnuTf67777rsV4OzZs7fed999twLcd999t549e/YZ9913361nz5699b777ruVq676X+Kaa6558JkzZx58zTXXPPjMmTMPArjmmmsefM011zz4zJkzD77mmmsezH+ACxcucL+TJ0/yH+G+++67FeDs2bO3Atx3333PuO+++55+9uzZZwDcd999t549e/bW++6771auuuqqq6666qr/bdCDHvQgrrrqqquuuuqq/3muueaaB585c+bB11xzzYMBXuzFXuy1rrnmmgefOXPmwddcc82DeQEuXLgAwMWLF7lw4QIAFy5cAODixYsAXLhwgftdvHgRgAsXLvDvdfLkSR7oxIkTAJw8eZL7nThxgpMnTwJw8uRJTpw4wcmTJ3lB7rvvvlvPnj1763333Xfrfffdd+vZs2efcd999936D//wD7/NVVf9F7rmmmseDPBiL/Zir33mzJkHXXPNNQ8GeJ3XeZ335gW4cOECABcuXADgwoULXLhwAYALFy4AcOHCBe534cIFAC5cuMCLyjbPz8mTJ3mgkydPAnDy5EkATp48CcCpU6cAOHnyJCdPngTg5MmTvCD33XffrWfPnr31vvvuuxXQP/zDP/z2fffdd+vZs2dvve+++27lqquuuuqqq676nwY96EEP4qqrrrrqqquu+u9zzTXXPPjFXuzFXvvMmTMPuuaaax58zTXXPPjFXuzFXpvn48KFC1y8eJELFy5w4cIFAJ761KcCcPHiRS5cuMD/VidPngTgxIkTnDx5EoCHPexhnDx5EoCHPexhPLf77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zVVX/Ttdc801D36xF3ux1z5z5syDXvzFX/y1X+zFXuy1eT4uXLjAhQsXeMpTngLAhQsXuHDhAhcuXODChQv8d7PNv9XJkycBOHnyJCdPnuTkyZOcOnWKkydPcvLkSU6ePMlzu++++26VpL//+7//LYB/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqv8u6EEPehBXXXXVVVddddV/vmuuuebBZ86cefCLvdiLvdY111zz4GuuuebBL/ZiL/baPJcLFy7w1Kc+lQsXLnDx4kUuXLjAU5/6VK6CkydPcuLECU6ePMnDHvYwTp48ycMe9jAe6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq656Aa655poHv/Zrv/Z7Abz4i7/4a7/Yi73Ya/MAFy5c4MKFCzzlKU8B4KlPfSoXLlzgwoUL/GvY5n8a2/x7nDx5kpMnT3Ly5Eke8YhHAHDy5Eke/vCH80Bnz559hm3/wz/8w2//wz/8w+/cd999t549e/bW++6771auuuqqq6666qr/bOhBD3oQV1111VVXXXXVf6xrrrnmwWfOnHnwi73Yi73Wi7/4i7/2i73Yi702z+XChQs89alP5eLFizz1qU/lqU99Klf925w4cYKTJ09y4sQJHvawh3Hy5Eke9rCHcb/77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVf9vXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdfmAS5cuMBTnvIULly4wFOf+lSe8pSn8F/FNv+T2Obf4+TJk5w8eZKTJ0/yiEc8gpMnT/Lwhz+cB7rvvvtuPXv27K333Xffrb/1W7/1Pf/wD//w21x11VVXXXXVVf/R0IMe9CCuuuqqq6666qp/n2uuuebBr/3ar/1eAO/0Tu/02TzAhQsXuHjxIk996lMBeOpTn8pTn/pUrvrPdeLECU6ePMmJEyd4hVd4BR72sIdxv/vuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81V/2ddc801D37t137t93rxF3/x136xF3ux1+aZLly4wIULF3jqU5/KU57yFJ761Kdim/+pbPM/iW3+LU6ePMnDH/5wHvGIR3Dy5Eke/vCHc7+zZ88+w7b/4R/+4bf/4R/+4Xfuu+++W//hH/7ht7nqqquuuuqqq/490IMe9CCuuuqqq6666qp/nWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPMCFCxf48z//cwD+7M/+jIsXL3LV/wwnTpzgYQ97GA972MN4hVd4Be5333333foP//APv/0P//APv/Nbv/Vb381V/+u92Iu92Gu/2Iu92Gu90zu902fzTBcuXODChQs89alP5SlPeQpPfepT+bewzf9Etvmfwjb/GidPnuThD384j3jEIzh58iQPf/jDud/Zs2ef8fd///e/9Q//8A+/c9999936D//wD7/NVVddddVVV131r4Ee9KAHcdVVV1111VVXvXDXXHPNg1/7tV/7vQDe6Z3e6bN5pgsXLgDw53/+5zz1qU/lqU99Klf973DixAkAXuEVXoGHPexhPOxhDwPgvvvuu/Uf/uEffvsf/uEffue3fuu3vpur/td4x3d8x88CeKd3eqfP5pkuXLjAn/3Zn/GUpzyFpz71qfxXsc3/NLb572abF8XJkyc5efIkD3/4w3nEIx7Bwx/+cO5333333foP//APv/MP//APv/0P//APv33ffffdylVXXXXVVVdd9cKgBz3oQVx11VVXXXXVVc/rmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTbPdOHCBf78z/+cpz71qTz1qU/lv4Mk/i+xzX+3EydO8LCHPYxXeIVX4GEPexgA9913363/8A//8Nu/9Vu/9T3/8A//8Ntc9T/ONddc8+DXfu3Xfq93eqd3+mye6cKFC/zZn/0Zv/Irv8L/VLb5n8Q2/91s84KcPHmSkydP8vCHP5xHPOIRPPzhD+d+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VXPDT3oQQ/iqquuuuqqq6664sVe7MVe+8Ve7MVe653e6Z0+m2e6cOECf/7nf87TnvY0nvrUp3LV/33Hjx/nYQ97GK/wCq/Awx72MADuu+++W3/rt37ru3/7t3/7e+67775bueq/zTXXXPPg137t136v13md13nva6655sEAFy5c4M/+7M/41V/9VV5Utvmfyjb/U9jmv5ttHujkyZM8/OEP5xGPeAQnT57k4Q9/OAD33Xffrf/wD//w2//wD//wO7/1W7/13Vx11VVXXXXVVQDoQQ96EFddddVVV131/9mLvdiLvfaLvdiLvdY7vdM7fTbPdPHiRf7sz/6MP//zP+fixYtc9f/XiRMnePmXf3le4RVegRMnTnDffffd+g//8A+//Vu/9Vvf8w//8A+/zVX/Za655poHv+M7vuNnvc7rvM57A1y4cIE/+7M/41d/9Vf5z2Kb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Ng8kCds8kCRs80CSsM0DScI2DyQJ2zyQJGzzQJKwzQNJwjYPJAnbPJAkbPNAkrDNVf/zHTt2DID77rvvVq666qqrrvqfjspVV1111VX/4/3Wb/3W9wC8zuu8zntz1VVX/Z/wIz/yI5/9D//wD7/N/xO//du//T0A7/RO7/TZXHXVVf8n/NZv/dZ3/+iP/ujncNVVV1111f906EEPehBXXXXVVVf9z3fNNdc8mP8kti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUn33Xffrfw/c8011zwYwLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYlCeC+++67lauuuuqqq/43QA960IO46qqrrrrqqquuuuqqq6666qqrrrrqqqv+T6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r+IfAdCwJMO1SDrVAAAAAElFTkSuQmCC) + +```js +// Pattern an object on a face. +size = 100 +case = startSketchOn('XY') + |> startProfileAt([-size, -size], %) + |> line(end = [2 * size, 0]) + |> line(end = [0, 2 * size]) + |> tangentialArcTo([-size, size], %) + |> close(%) + |> extrude(length = 65) + +thing1 = startSketchOn(case, 'end') + |> circle({ + center = [-size / 2, -size / 2], + radius = 25 + }, %) + |> extrude(length = 50) + +// We pass in `thing1` here with `useOriginal` since we want to pattern just this object on the face. +patternLinear3d( + thing1, + axis = [1, 0, 0], + distance = size, + instances = 2, + useOriginal = true, +) +``` + +![Rendered example of patternLinear3d 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADQY0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXbhwAYALFy4AcOHCBe534cIFHujixYs8PxcuXOCFOXnyJM/PiRMnuN/Jkyd5oJMnTwJw8uRJAE6ePMm/xn333XcrwNmzZ2+97777bgX4h3/4h98BuO+++249e/bsrffdd9+tXHXVVVddddVVV13174Ue9KAHcdVVV1111VVXXXXVv+yaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3DhwgUALly4wMWLF7lw4QIAFy5c4MKFCwBcvHiRCxcu8L+RbU6ePAnAyZMnATh58iQAJ06c4OTJk5w8eRKAkydPcvLkSV6Y++6771aAs2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zVVXXXXVVVddddVVLwr0oAc9iKuuuuqqq6666qqrnu2aa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx4cIFAJ761Kdy4cIFAJ7ylKcA8NSnPpWrnr+TJ08C8LCHPQyAhz/84QCcOHGCkydPcvLkSV6Q++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVQ+EHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egAsXLnDhwgWe+tSnAvCUpzyFixcvcuHCBa76z3Hy5EkATpw4wcmTJ3n4wx/OiRMnAHj4wx/O83Pffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3ueqqq6666qqrrvr/CT3oQQ/iqquuuuqqq6666v+Da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB8XLlzgqU99KhcuXOApT3kKFy9e5MKFC1z1P8vJkycBeNjDHgbAwx/+cE6cOMHDH/5wntt99913K8A//MM//PY//MM//M5999136z/8wz/8NlddddVVV1111VX/96EHPehBXHXVVVddddVVV/1fc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+a5XLhwgYsXL/KUpzyFixcvcuHCBZ761Kfyv5Ftrnq2kydP8rCHPYyHP/zhnDhxgpMnT3Ly5Eke6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq6666qqrrrrqqv9b0IMe9CCuuuqqq6666qqr/re75pprHvzar/3a7wXwTu/0Tp/Nc7lw4QIXL17kKU95Ck996lN56lOfylX/9Wzz3+XkyZOcOHGChz/84TzsYQ/j4Q9/OM/tvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m6uuuuqqq6666qr/3dCDHvQgrrrqqquuuuqqq/63ueaaax782q/92u/14i/+4q/9Yi/2Yq/Nc7lw4QJ/9md/BsCv/uqvctX/D7b51zh58iQPe9jDePjDH86JEyd4+MMfzgPdd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111f9011xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7LhQsX+LM/+zOe+tSn8tSnPpWrrvq3OHnyJCdOnOBhD3sYD3/4w3nYwx7GA9133323/sM//MNv/8M//MPv/NZv/dZ3c9VVV1111VVXXfU/H3rQgx7EVVddddVVV1111f9E11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gAsXLvBnf/ZnPPWpT+WpT30qV131n+HkyZOcOHGChz3sYTz84Q/nYQ97GPe77777bgX4rd/6re/+h3/4h9/5h3/4h9/mqquuuuqqq6666n8e9KAHPYirrrrqqquuuuqq/ymuueaaB7/2a7/2e73O67zOe19zzTUP5pkuXLjAn//5nwPwq7/6q1z1H8s2V/3LTp48ycMe9jAe9rCH8Qqv8Ao80H333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXXXVVf8zoAc96EFcddVVV1111VVX/Xe65pprHvzar/3a7/VO7/ROn80DXLhwgT//8z/nqU99Kk996lO56v8u2/xvdPLkSV7+5V+ehz/84TzsYQ/jfvfdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV/33QQ960IO46qqrrrrqqquu+q92zTXXPPi1X/u13+ud3umdPpsHuHDhAn/+53/Or/7qr3LVVf8RbPNf4eTJkzzsYQ/jFV7hFXjYwx7G/e67775b/+Ef/uG3f+u3fut7/uEf/uG3ueqqq6666qqrrvqvhR70oAdx1VVXXXXVVVdd9V/hmmuuefBrv/Zrv9frvM7rvPc111zzYJ7pwoUL/Pmf/zm/+qu/ylVX/U9lmxfVyZMnedjDHsYrvMIr8LCHPYz73Xfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV131nw896EEP4qqrrrrqqquuuuo/0zXXXPPgd3zHd/ys13md13lvnunChQv8+Z//OX/2Z3/GxYsXueqq/6tOnDjBK7zCK/Cwhz2Mhz3sYQDcd999t/7DP/zDb//DP/zD7/zWb/3Wd3PVVVddddVVV131nwc96EEP4qqrrrrqqquuuuo/2jXXXPPg137t136vd3qnd/psnunChQv8+Z//OX/2Z3/GxYsX+beSxFX/fra56r/WiRMneIVXeAXe8A3fkPvdd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666j/KNddc8+DXfu3Xfq93eqd3+mye6eLFi/zZn/0Zv/Zrv8ZVVz2Qbf4/OnHiBA972MN4hVd4BR72sIcBcN999936W7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111X8M9KAHPYirrrrqqquuuuqqf68Xe7EXe+13eqd3+qwXe7EXe22e6Vd/9Vf58z//cy5evMhVV/1Xs83/BidOnOAVXuEVeMM3fEPud9999936oz/6o5/zW7/1W9/NVVddddVVV1111b8PetCDHsRVV1111VVXXXXVv9U7vuM7ftbrvM7rvPc111zzYICLFy/yZ3/2Z/zar/0aV131f4Ft/iucOHGCV3iFV+DlX/7lOXnyJAD33Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVf926AHPehBXHXVVVddddVVV/1rveM7vuNnvc7rvM57X3PNNQ8GuHjxIn/2Z3/Gr/3ar3HVVVc9m23+NU6cOMHDHvYw3vAN35CTJ08CcN999936W7/1W9/9oz/6o5/DVVddddVVV1111b8OetCDHsRVV1111VVXXXXVi+rFXuzFXvvDP/zDv+uaa655MMDFixf5sz/7M37t136Nfy9JXPU/i22u+u9x/PhxHvawh/EKr/AKPOxhDwPgvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqqFw160IMexFVXXXXVVVddddW/5Jprrnnwh3/4h3/Xi73Yi702wMWLF/nzP/9zfu3Xfo2rrvqPZJurntPLv/zL84Zv+IacOHECgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq1449KAHPYirrrrqqquuuuqqF+Saa6558Gu/9mu/1zu90zt9NsDFixf58z//c37t136Nq67638I2/9udOHGChz3sYbzhG74hJ06cAOC3fuu3vvtHf/RHP+e+++67lauuuuqqq6666qrnDz3oQQ/iqquuuuqqq6666vl5x3d8x896p3d6p8/mmX7t136NX/u1X+Oqq/4/ss3/BCdOnODlX/7lecM3fEMA7rvvvlt/+7d/+3t+5Ed+5LO56qqrrrrqqquuel7oQQ96EFddddVVV1111VUPdM011zz4wz/8w7/rxV7sxV4b4KlPfSo/+qM/ysWLF7nqqqv+9WzzH+3EiRO8/Mu/PG/4hm8IwH333XfrZ33WZ73OfffddytXXXXVVVddddVVz4Ye9KAHcdVVV1111VVXXXW/d3zHd/ysd3qn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V1111VXPD3rQgx7EVVddddVVV131vF7ndV7nvT/8wz/8uwC+6qu+in8tSfxfs7Ozw0033cTOzg433XQTN910Ew+0t7cHwJ133sne3h77+/scHBywt7fHwcEBAJKQBIAkACQhCUlIQhKSkIQkJLG1tYUktra2uO666wC47rrrOHPmDM/P3t4ej3vc4wD4kz/5E/4/sM1V/zo7OzvcdNNN3HTTTezs7HDTTTfx3Pb399nf32d/f5+7776b/f19AA4ODtjf3+cFkYQkJCEJSUhCEpKQxNbWFtvb22xtbbG5ucnW1habm5tcc8013G9vb4+dnR329vb4h3/4B+644w7uuOMO/qPY5n8q2/xL3vEd35Gbb76Zz/qsz3qdv//7v/9trrrqqquuuuqq50blqquuuuqqq656vl7sxV7stQD+6I/+iAeSxP9Xe3t7PO5xj+N+Ozs73HTTTdx0000APPaxjwVgZ2eH52d/f5/77e/vAyAJ20jifpIA2NraYmtrixdkb28PgL29Pfb29rjjjju44447uPPOO/n/SBL/FWzzf8Xe3h6Pe9zjeNzjHgfAzs4OOzs77OzscNNNN7Gzs8POzg433HADAI961KN4bvv7+wDs7+8jCdsASAJAEraRBMDW1hZbW1u8MHt7e+zt7XH77bezt7fH4x73OP6zSOIFsc1/J0k8P7a53+23387NN9/Ma7/2a7/X3//93/82V1111VVXXXXVc0MPetCDuOqqq6666qqrntdP/MRPGOA7v/M72dvb4/8bSfxb7OzsAHDjjTdy0003AbCzs8POzg47Ozv8a+3t7QGwt7cHwB133AHA/v4+ly5d4s477+Sq/31s87/Fzs4OADfddBMAN910EwA7Ozvs7Oyws7PDi2pvb4+dnR329vYA2NvbY29vj9tvv52dnR3uuOMO7rjjDv6ns83/FDs7O7z/+78/Z8+efcYHf/AHP5irrrrqqquuuuq5Ubnqqquuuuqqq57H67zO67w3wOMe9zj29vb430wS/5X29vYA2Nvb4/GPfzzPz87ODv+Svb09rvq/SxL/Vrb5r7S3twfA4x73OAAe97jH8fzs7OzwL9nb2+NfIokHss3/NJJ4QWzzX2lvb4/bb7+dm2+++UGv8zqv896/9Vu/9d1cddVVV1111VUPROWqq6666qqrrnoer/M6r/NeAHfccQf/k0ji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V1111f9T9913360AOzs7/FvZxja2+e9kG9vYxjb/09nGNraxjW1sY5urrvrvZhvb2MY2trGNbf4ns41tbGMb2/x3sI1tbGOb/wq2sY1tbPP83Hfffbdy1VVXXXXVVf8/Ubnqqquuuuqq/6fuu+++WwG2t7f5j2CbB5LEfxfbPD+S+J/ONi+MJK666t/DNv/b2eZ/Ctv8d7DNi2J7exuA++6771auuuqqq6666v8nKlddddVVV131/9z29jb/GWzz3CTx38k2z00S/5vY5l8iiav+f7LN/zW2+Z/ENv9dbPOvtbOzA8DZs2efwVVXXXXVVVf9/0Tlqquuuuqqq/6f+od/+IffAdje3ua/im0eSBL/3Wzz3CTxv5ltXlSSuOp/Ptv8X2eb/4ls89/FNlddddVVV1111b8blauuuuqqq676f25nZwfbAEjiv5JtHkgS/xPY5vmRxP81tvnXksRV/za2uQps8z+Vbf472eY/0o033gjAP/zDP/w2V1111VVXXfX/E5Wrrrrqqquu+n/q7Nmzt/JcbHM/SfxXs81zk8T/FLZ5fiTx/4lt/qNJ4n8i21z1b2Ob/+ls89/NNlddddVVV1111X8qKlddddVVV131/9R99913K8D29jbPj20eSBL/HWzzQJL4n8Y2L4gkrvqX2eaq/51s87+Fbf672ea/0vb2NgD33XffrVx11VVXXXXV/08EV1111VVXXfX/2H333XcrwM7ODv8S29jGNrb572Ib29jGNrb5n8w2trGNbWxjG9tcddX/FraxjW1sYxvb2OZ/KtvYxja2sc1/F9vYxjb/VWyztbUFwH333XcrV1111VVXXfX/F8FVV1111VVX/T929uzZWwG2t7f517KNbWxjm/9OtrGNbWxjm/8NbGMb29jGNraxzVVX/VeyjW1sYxvb2MY2tvmfzja2sY1tbPPfyTa2sY1t/qvYxja2AdjZ2QHg7Nmzt3LVVVddddVV/39Rueqqq6666qqr2N7e5t/LNg8kif9Otnlukvjfwjb/EklcddWLwjb/V9jmfxrb/HewzQuzvb0NwH333XcrV1111VVXXfX/F8FVV1111VVX/T/293//978NsL29zX8029jGNrb5n8A2trGNbWzzv5ltbGMb29jGNraxjW1sc9X/XbaxjW1sYxvb2MY2trHN/1a2sY1tbGOb/wlsYxvb2Oa/km1sY5t/yc7ODlddddVVV111FVSuuuqqq6666qr/ErZ5IEn8T2Cb50cS/1fY5kUliav+e9nm/xvb/E9mm/8utvm32t7eBuAf/uEffoerrrrqqquu+v+L4Kqrrrrqqqv+H/uHf/iH3wG48cYb+a9mG9vYxja2+Z/ENraxjW1sY5v/62xjG9vYxja2sY1tbGMb29jGNraxjW2uAtvYxja2sY1tbGMb29jGNraxjW1sY5v/y2xjG9vYxja2+Z/ENraxjW1s81/NNraxzVVXXXXVVVdd9e9G5aqrrrrqqquuusw295PEfwfbPJAk/qexzfMjiavANlddZZv/LWzz3802/xluvPFGAO67775bueqqq6666qr/v6hcddVVV1111f9jZ8+evRVgZ2eHB7LNA0niv4Ntnpsk/ieyzQsiiauu+r/INv+b2OZ/Ctv8Vzl79uytXHXVVVddddX/X1Suuuqqq6666v+x++6771aA7e1tXhjbPJAk/rvY5rlJ4n8y27wgkrjqqv+pbPO/lW3+J7HNf7WdnR0A7rvvvlu56qqrrrrqqv+/CK666qqrrrrq/7n77rvvVoDt7W1eVLaxjW1s89/NNraxjW1s87+FbWxjG9vYxja2sc1VV/1nso1tbGMb29jGNrb538I2trGNbWzz3802trGNbf6r2eaqq6666qqrrrqM4Kqrrrrqqqv+nzt79uytADs7O/xb2cY2trHN/wS2sY1tbGOb/41sYxvb2MY2trGNbWxz1VUviG1sYxvb2MY2trHN/0a2sY1tbGOb/wlsYxvb2Oa/g21sY5sbb7wRgH/4h3/4ba666qqrrrrq/zcqV1111VVXXXXVfzjbPJAk/iewzXOTxP92tnlRSOKq//1s8/+Fbf6nss1/N9u8IDs7OwDcd999t3LVVVddddVV/78RXHXVVVddddX/c3//93//2wA33ngj/1lsYxvb2OZ/EtvYxja2sY1t/i+yjW1sYxvb2MY2trGNbWxjG9tc9Z/PNraxjW1sYxvb2MY2trGNbf4vso1tbGMb29jmfwrb2MY2trHNfxfb2MY2V1111VVXXXXVi4TKVVddddVVV131X842z00S/5PY5vmRxP8ntvmPIIn/a2xz1b+Obf43sM3/FLb5t9je3gbgvvvuu5Wrrrrqqquu+v+NylVXXXXVVVf9P3f27NlnANx44438d7LNA0nifyLbvCCSuOr5s81V/3/Y5n8L2/xPY5t/r52dHQDOnj37DK666qqrrrrq/zcqV1111VVXXfX/3H333Xcrz2QbAEn8d7PNc5PE/2S2eUEkcdVV/5fY5n8j2/xPY5v/aDs7OwDcd999t3LVVVddddVV/79Rueqqq6666qr/586ePXsrwPb2NvezzQNJ4n8C2zw3SfxvYJsXRBJXXfU/jW3+t7PN/0S2+c+2vb0NwNmzZ2/lqquuuuqqq/5/o3LVVVddddVVV/2LbPNAkvifwjbPTRL/m9jmhZHEVVf9R7PN/yW2+Z/KNv/VdnZ2ALjvvvtu5aqrrrrqqqv+f6Ny1VVXXXXVVf/P3XfffbcC7OzssLOzw97eHv8S2zyQJP4nsc1zk8T/VrZ5UUjiqqsAbPN/mW3+J7PNfyfbXHXVVVddddVVz0Jw1VVXXXXVVVfx93//978NsL29zb+FbWxjG9v8T2Qb29jGNraxzf8ltrGNbWxjG9vYxja2sc1V/zvZxja2sY1tbGMb29jGNrb5v8I2trGNbWxjm/9pbGMb29jmv5ptbGMb29x4440AnD179hlcddVVV1111VVUrrrqqquuuuqq/3C2eSBJ/E9lm+dHEv9X2ebfQhJX/cewzVXPZpv/TWzz3802L8jOzg4Af//3f//bXHXVVVddddVVVK666qqrrrrqKs6ePXsrwM7ODnfeeSf/0Wzz3CTxP5ltnh9J/H9lm/9okvifzjZX/cewzf9GtvnvZpurrrrqqquuuurfhMpVV1111VVXXcV99913K8D29jb/VWzzQJL438A2z48krvrXs81V//fY5n8r2/xPYZt/i52dHQDuu+++p3PVVVddddVVV1G56qqrrrrqqqs4e/bsrQA7Ozv8d7HNc5PE/xa2eUEkcdVV/9fY5n872/xPYpv/CDs7OwCcPXv2GVx11VVXXXXVVVSuuuqqq6666iruu+++WwG2t7exzf0k8d/JNs9NEv/b2OaFkcRVV/1PY5v/a2zzP4lt/jNsb29z1VVXXXXVVVc9C5Wrrrrqqquuuor77rvvVoCdnR0eyDYPJIn/brZ5bpL438w2L4wkrrrqP5pt/i+zzf80tvmvsLOzA8A//MM//DZXXXXVVVdddRWVq6666qqrrrrqRWabB5LE/wS2eW6S+L/CNi8KSVx1lW3+P7HN/1S2+e+ws7PDVVddddVVV131LFSuuuqqq6666irOnj37DICdnR3+NWzzQJL4n8I2z48k/q+yzYtKElf972Gbq8A2/5PZ5r+bbe5333333cpVV1111VVXXUVw1VVXXXXVVVdddt99990KcOONN/JvZRvb2MY2tvmfxja2sY1tbGOb/29sYxvb2MY2trGNbWxjG9vYxja2uerfxza2sY1tbGMb29jGNraxjW1sY5v/b2xjG9vYxja2+Z/GNraxjW3+O9jGNraxzc7ODgD33XffrVx11VVXXXXVVQBUrrrqqquuuuqqy86ePXvrNddc82D+g9nmgSTxP5Ftnh9JXPVstvnPIon/CWxz1X8N2/xvYZv/KWzzgtx0000AnD179lauuuqqq6666ioAgquuuuqqq6666rL77rvvVoCdnR3+M9nGNraxjW3+J7ONbWxjG9vY5qr/eLaxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trHNVf/xbGMb29jGNrb5n8w2trGNbf472cY2trHNi+K+++67lauuuuqqq666CoDKVVddddVVV1112X333XcrwM7ODv/VbPNAkvifzjYviCSuuur/G9v8b2Wb/0ls82+1vb0NwH333XcrV1111VVXXXUVAJWrrrrqqquuuuo5bG9v89/NNs9NEv9b2OYFkcRVV/1vZZv/7WzzP41t/qPs7OwAcPbs2Wdw1VVXXXXVVVcBULnqqquuuuqqqy77h3/4h98B2NnZwTYPJIn/brZ5bpL438Y2L4wkrrrqv4tt/i+xzf9Etrnqqquuuuqqq/7LULnqqquuuuqqq57Dzs4Oz802DySJ/wls8/xI4n8r2/xLJHHVVf9atvm/zDb/U9nmv8pNN90EwD/8wz/8NlddddVVV111FQCVq6666qqrrrrqsrNnz97Ki8g2DySJ/0ls89wk8X+FbV5Ukrjq/zbb/H9im//pbHPVVVddddVVV/2PQeWqq6666qqrrrrsvvvuuxVgZ2eHfy3bPJAk/qexzfMjif/LbPOvIYmr/vvY5qpns83/Brb5n8A2Ozs7ANx33323ctVVV1111VVXAVC56qqrrrrqqque5b777rv1mmuuefDOzg57e3v8W9nmuUnifyLbPD+S+P/INv9ekvj/yDZX/dvY5n8L2/xPYZsH2tnZAeC+++67lauuuuqqq6666n5UrrrqqquuuuqqZzl79uyt11xzzYN3dnbY29vjP5JtHkgS/5PZ5vmRxFUvnG2uuuq52eZ/I9v8T2KbF2RnZweAs2fP3spVV1111VVXXXU/KlddddVVV1111fPY2dnhP5ttnpsk/qezzQsiiauu+v/ONv9b2eZ/Gtu8qHZ2dgC47777buWqq6666qqrrrofwVVXXXXVVVdd9Sx///d//9sA29vb/HewjW1sYxvb/G9iG9vYxja2sY1tbHPVVf8X2MY2trGNbWxjG9v8b2Eb29jGNrb5n8A2trGNbf41dnZ2uOqqq6666qqrngeVq6666qqrrrrqfzTbPDdJ/G9kmxdGEldd9d/NNv/X2OZ/Ktv8R9nZ2QHgH/7hH36Hq6666qqrrrrqfgRXXXXVVVddddWz/MM//MPvANx0003Yxja2sc3/JLaxjW1sY5v/C2xjG9vYxja2sY1tbHPVVf8etrGNbWxjG9vYxja2+d/ONraxjW1s8z+JbWxjG9tcddVVV1111VX/6ahcddVVV1111VUvEts8kCT+J7HN8yOJ/0ts86KQxFX/f9jm/yPb/E9nm/8qN910EwD33XffrVx11VVXXXXVVfejctVVV1111VVXPcvZs2dvBdjZ2eFfYpvnJon/aWzz/Eji/zLb/GtI4qr/OWxz1bPZ5n8D2/xPcPbs2Vu56qqrrrrqqqvuR+Wqq6666qqrrnqW++6771aAnZ0d/i1s80CS+J/KNs+PJP4/ss2/lySuAttc9W9jm/9NbPM/hW12dnYAuO+++27lqquuuuqqq666H5Wrrrrqqquuuuo53Hfffbdec801D97Z2WFvb49/D9s8N0n8T2ab50cSV71wtrnqqn+Jbf43ss3/NLa56qqrrrrqqqv+RQRXXXXVVVddddVzOHv27K0AOzs7/GewjW1sY5v/LWxjG9vYxja2sc1VV131vGxjG9vYxja2+d/CNraxjW3+J7CNbWxjmwe66aabAPiHf/iH3+aqq6666qqrrnogKlddddVVV1111X8r2zw3SfxvYpsXRBJXXfV/kW3+r7DN/0S2eVHt7OwAcN99993KVVddddVVV131QARXXXXVVVddddVz+Pu///vfBrjpppv472Ib29jGNrb538o2trGNbWxjG9vY5qqr/qeyjW1sYxvb2MY2tvnfyja2sY1tbPM/hW1sYxvbXHXVVVddddVV/yGoXHXVVVddddVVz5dt/iexzfMjif/NbPMvkcRVV/1Hs83/dbb5n8w2/1F2dnYAuO+++27lqquuuuqqq656IIKrrrrqqquuuuo5nD179hkAN998M7axjW1s8z+RbWxjG9vY5v8a29jGNraxjW1sYxvb2OaqqwBsYxvb2MY2trGNbWxjm/9LbGMb29jGNrb5n8Y2trGNbf4jHTt2DICzZ88+g6uuuuqqq6666oGoXHXVVVddddVVz+G+++67lRfANg8kif+JbPP8SOL/Mtv8a0jiqv/5bHPVFbb538I2/5W2t7cBuO+++27lqquuuuqqq656ICpXXXXVVVddddVzOHv27K0AOzs7/Ets89wk8T+VbZ4fSfx/ZJt/D0lc9S+zzVX/Orb538Y2/52OHTsGwNmzZ2/lqquuuuqqq656ICpXXXXVVVddddV/KNs8N0n8T2ab50cSV71gtrnqqn8P2/xvZJv/aXZ2dgC47777buWqq6666qqrrnoggquuuuqqq6666jncd999t95333237uzssLOzw38E29jGNrb538I2trGNbWxjG9tcddVVLxrb2MY2trGNbWzzv4VtbGMb2/xPYBvb2MY2V1111VVXXXXVC0Rw1VVXXXXVVVc9j7Nnz94KsLOzw38G29jGNraxzf82trGNbWxjG9vYxjZXXfX/iW1sYxvb2MY2tvnfxja2sY1tbPM/gW1sYxvbPNBNN90EwH333XcrV1111VVXXXXVc6Ny1VVXXXXVVVf9j2Cb5yaJ/61s84JI4qqr/jexzf9FtvmfyjYvqmPHjgHwD//wD7/NVVddddVVV1313Aiuuuqqq6666qrncd99990KsLOzw38n29jGNraxjW3+t7ONbWxjG9vYxja2sc1VV/1Xso1tbGMb29jGNrb5v8A2trGNbWzzP4ltbGMb21x11VVXXXXVVf9hqFx11VVXXXXVVc/jvvvuuxVgZ2eH/4ls89wk8X+JbV4UkrjqqhfENv/f2OZ/A9v8R9nZ2QHgvvvuu5Wrrrrqqquuuuq5Ubnqqquuuuqqq57H2bNnnwGws7ODbR5IEv8T2eb5kcT/ZbZ5UUniqv/9bHPVFbb538I2/1l2dnYAOHv27DO46qqrrrrqqqueG5Wrrrrqqquuuup53HfffbcC7Ozs8Nxs80CS+J/MNs+PJP6/sc2/lSSu+o9jm6tedLb538Q2/5V2dna46qqrrrrqqqteICpXXXXVVVddddXzOHv27K0Ax44d419im+cmif/pbPP8SOKq52Wb/yyS+J/INlf917HN/1a2+e907NgxAP7hH/7ht7nqqquuuuqqq54blauuuuqqq6666j+cbZ6bJP43sM0LIomr/uPZ5qr/P2zzv5lt/qfZ2dnhqquuuuqqq656gahcddVVV1111VXP47777rsVYGdnh/8otnlukvjfxDYviCSuuuqqK2zzf4Ft/qeyzXO77777buWqq6666qqrrnpuBFddddVVV1111fN133333Qpw00038Z/FNraxjW1s87+VbWxjG9vYxja2sc1VV/1fYhvb2MY2trGNbWzzv5FtbGMb29jmfxLb2MY2trnfzs4OAGfPnn0GV1111VVXXXXV80Nw1VVXXXXVVVc9X/fdd9+t/DewjW1sYxvb/F9gG9vYxja2sY1tbHPVVf+T2MY2trGNbWxjG9v8b2cb29jGNrb5n8Y2trGNbV6Qm2++GYD77rvvVq666qqrrrrqqueH4Kqrrrrqqquuer7Onj17K8CxY8f472Yb29jGNrb5v8Y2trGNbWxjG9vYxja2ueqqfw/b2MY2trGNbWxjG9vY5v8S29jGNraxzf9EtrGNbWzzr3XffffdylVXXXXVVVdd9fxQueqqq6666qqrnq/77rvvVoCdnR3+J7LN8yOJ/8ts86KQxFX/P9jmKrDN/ya2+Y+ws7MDwH333fd0rrrqqquuuuqq54fKVVddddVVV131fJ09e/ZWgJ2dHWzzQJL4n8o2z48k/j+xzb+FJK7672Obq1442/xvY5v/LMeOHQPg7Nmzz+Cqq6666qqrrnp+qFx11VVXXXXVVc/XfffddyvAzs4Oz802DySJ/+ls8/xI4qpns81/BEn8f2Gbq/7j2eZ/K9tcddVVV1111VX/Y1C56qqrrrrqqqteqGPHjvEvsc1zk8T/BrZ5QSRx1b+Nba666kVhm//NbPPf6eabbwbgH/7hH36bq6666qqrrrrq+aFy1VVXXXXVVVc9X/fdd9+t/DvY5rlJ4n8T27wgkrjqqqteNLb5v8A2V1111VVXXXXV/zpUrrrqqquuuuqq5+vs2bPPANjZ2eE/im2emyT+N7LNCyKJq676/8Q2/9fY5n8y2wDs7OwAcN99993KVVddddVVV131/BBcddVVV1111VUv0H333XcrwM7ODv9ZbGMb29jGNv/b2cY2trGNbWxjG9vY5qqr/jexjW1sYxvb2MY2tvnfzja2sY1tbPM/jW1sYxvbAOzs7ABw33333cpVV1111VVXXfWCEFx11VVXXXXVVS/Q2bNnbwU4duwY/5VsYxvb2MY2/9fYxja2sY1tbGMb29jmqqv+K9jGNraxjW1sYxvb2Ob/EtvYxja2sc3/RLaxjW1s8/wcO3YMgLNnz97KVVddddVVV131glC56qqrrrrqqqv+RTs7O/x3s83zI4n/q2zzopDEVVc9N9v8f2ab/01s86+1s7MDwH333XcrV1111VVXXXXVC0Jw1VVXXXXVVVe9QH//93//2wA7Ozv8T2Ub29jGNraxzf8ntrGNbWxjG9vYxja2sY1tbHPV/062sY1tbGMb29jGNraxjW1s8/+JbWxjG9vY5n8y29jGNraxzb/FsWPHuOqqq6666qqr/kVUrrrqqquuuuqqF4lt7ieJ/+ls8/xI4v872/x7SOKqfz3bXPXvY5v/jWzzn2FnZweAf/iHf/gdrrrqqquuuuqqF4TKVVddddVVV131Av3DP/zD7wDcfPPNPJBtnpsk/jewzfMjiateNLb57ySJfwvbXPU/n23+N7PNVVddddVVV131PwqVq6666qqrrrrqRfJiL/Zi/GtI4v8KSVx11VX/cWzzf4Vt/rvcfPPNANx33323ctVVV1111VVXvSBUrrrqqquuuuqqF+js2bO3/sM//MNvv9iLvdhr33zzzVx11VVXXfU/y2/91m9999mzZ2/lqquuuuqqq656QdCDHvQgrrrqqquuuuqqF+yaa6558Du+4zt+FlddddVVV/2P86M/+qOfc999993KVVddddVVV131gqAHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9V/CNZ1lgMnNOdoQAAAABJRU5ErkJggg==) + diff --git a/docs/kcl/std.json b/docs/kcl/std.json index aeb4ee6152..1e987a33a1 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -187689,7 +187689,7 @@ { "name": "patternLinear3d", "summary": "Repeat a 3-dimensional solid along a linear path, with a dynamic amount", - "description": "of distance between each repetition, some specified number of times.", + "description": "of distance between each repetition, some specified number of times.\n\n///", "tags": [], "keywordArguments": true, "args": [ @@ -197414,7 +197414,9 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 2])\n |> line(end = [3, 1])\n |> line(end = [0, -4])\n |> close()\n\nexample = extrude(exampleSketch, length = 1)\n |> patternLinear3d(axis = [1, 0, 1], instances = 7, distance = 6)" + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 2])\n |> line(end = [3, 1])\n |> line(end = [0, -4])\n |> close()\n\nexample = extrude(exampleSketch, length = 1)\n |> patternLinear3d(axis = [1, 0, 1], instances = 7, distance = 6)", + "// Pattern a whole sketch on face.\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close(%)\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n // We pass in the \"case\" here since we want to pattern the whole sketch.\n// And the case was the base of the sketch.\npatternLinear3d(\n case,\n axis = [1, 0, 0],\n distance = 250,\n instances = 2,\n)", + "// Pattern an object on a face.\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close(%)\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We pass in `thing1` here with `useOriginal` since we want to pattern just this object on the face.\npatternLinear3d(\n thing1,\n axis = [1, 0, 0],\n distance = size,\n instances = 2,\n useOriginal = true,\n)" ] }, { diff --git a/src/wasm-lib/kcl/src/std/patterns.rs b/src/wasm-lib/kcl/src/std/patterns.rs index b0e0910006..7a80bf4aa9 100644 --- a/src/wasm-lib/kcl/src/std/patterns.rs +++ b/src/wasm-lib/kcl/src/std/patterns.rs @@ -808,6 +808,59 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result /// distance = 6 /// ) /// ``` +/// +/// /// +/// ```no_run +/// // Pattern a whole sketch on face. +/// let size = 100 +/// const case = startSketchOn('XY') +/// |> startProfileAt([-size, -size], %) +/// |> line(end = [2 * size, 0]) +/// |> line(end = [0, 2 * size]) +/// |> tangentialArcTo([-size, size], %) +/// |> close(%) +/// |> extrude(length = 65) +/// +/// const thing1 = startSketchOn(case, 'end') +/// |> circle({center = [-size / 2, -size / 2], radius = 25}, %) +/// |> extrude(length = 50) +/// +/// const thing2 = startSketchOn(case, 'end') +/// |> circle({center = [size / 2, -size / 2], radius = 25}, %) +/// |> extrude(length = 50) +/// +/// // We pass in the "case" here since we want to pattern the whole sketch. +/// // And the case was the base of the sketch. +/// patternLinear3d(case, +/// axis= [1, 0, 0], +/// distance= 250, +/// instances=2, +/// ) +/// ``` +/// +/// ```no_run +/// // Pattern an object on a face. +/// let size = 100 +/// const case = startSketchOn('XY') +/// |> startProfileAt([-size, -size], %) +/// |> line(end = [2 * size, 0]) +/// |> line(end = [0, 2 * size]) +/// |> tangentialArcTo([-size, size], %) +/// |> close(%) +/// |> extrude(length = 65) +/// +/// const thing1 = startSketchOn(case, 'end') +/// |> circle({ center =[-size / 2, -size / 2], radius = 25}, %) +/// |> extrude(length = 50) +/// +/// // We pass in `thing1` here with `useOriginal` since we want to pattern just this object on the face. +/// patternLinear3d(thing1, +/// axis = [1, 0, 0], +/// distance = size, +/// instances =2, +/// useOriginal = true +/// ) +/// ``` #[stdlib { name = "patternLinear3d", feature_tree_operation = true, diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_circular_3d0.png index 8640491e5ce1b177bafe916f6572321291241b70..d09f964932cb74d6809f95035aa411dee52414d3 100644 GIT binary patch literal 103731 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

0rKPa>FIDGVO0$+Kb9IGiltEL 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 z%0D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

N_Fres1>!qjr5 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 UH7py+;lIYuty%f_XE%KBKfKA&w*UYD literal 0 HcmV?d00001 diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d2.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pattern_linear_3d2.png new file mode 100644 index 0000000000000000000000000000000000000000..82a4c3098a0134cd26ba75acd12bde8b3092b09c GIT binary patch literal 53404 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 b&wu~>8$La-^sf&57c>0nVXJ=m!dw3rW}lJX literal 0 HcmV?d00001 From 12edb6375d649e908520be6220fe70c417233f85 Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Thu, 27 Feb 2025 15:46:41 +1300 Subject: [PATCH 17/23] Fix a units bug in multi-module projects (#5529) Signed-off-by: Nick Cameron --- src/lang/errors.ts | 12 +- src/wasm-lib/kcl/src/execution/exec_ast.rs | 112 ++++++++---------- src/wasm-lib/kcl/src/execution/mod.rs | 12 +- src/wasm-lib/kcl/src/execution/state.rs | 10 +- src/wasm-lib/kcl/src/modules.rs | 6 +- src/wasm-lib/kcl/tests/add_lots/ops.snap | 1 - .../artifact_commands.snap | 36 ------ .../tests/assembly_non_default_units/ops.snap | 49 +++++++- .../basic_fillet_cube_next_adjacent/ops.snap | 1 - .../kcl/tests/fillet-and-shell/ops.snap | 1 - src/wasm-lib/kcl/tests/i_shape/ops.snap | 1 - .../tests/import_function_not_sketch/ops.snap | 68 ++++++++++- .../kcl/tests/import_side_effect/ops.snap | 26 +++- src/wasm-lib/kcl/tests/import_whole/ops.snap | 67 +++++++++++ 14 files changed, 282 insertions(+), 120 deletions(-) diff --git a/src/lang/errors.ts b/src/lang/errors.ts index 3748ce0aaa..df6d6b3718 100644 --- a/src/lang/errors.ts +++ b/src/lang/errors.ts @@ -351,16 +351,16 @@ export function kclErrorsByFilename( const sourceRange: SourceRange = error.sourceRange const fileIndex = sourceRange[2] const modulePath: ModulePath | undefined = filenames[fileIndex] - if (modulePath) { - let stdOrLocalPath = modulePath.value - if (stdOrLocalPath) { + if (modulePath && modulePath.type === 'Local') { + let localPath = modulePath.value + if (localPath) { // Build up an array of errors per file name - const value = fileNameToError.get(stdOrLocalPath) + const value = fileNameToError.get(localPath) if (!value) { - fileNameToError.set(stdOrLocalPath, [error]) + fileNameToError.set(localPath, [error]) } else { value.push(error) - fileNameToError.set(stdOrLocalPath, [error]) + fileNameToError.set(localPath, [error]) } } } diff --git a/src/wasm-lib/kcl/src/execution/exec_ast.rs b/src/wasm-lib/kcl/src/execution/exec_ast.rs index 0c9b13ffd8..31161678d6 100644 --- a/src/wasm-lib/kcl/src/execution/exec_ast.rs +++ b/src/wasm-lib/kcl/src/execution/exec_ast.rs @@ -93,8 +93,14 @@ impl ExecutorContext { exec_state: &mut ExecState, exec_kind: ExecutionKind, preserve_mem: bool, - ) -> Result<(Option, EnvironmentRef), KclError> { + path: &ModulePath, + ) -> Result<(Option, EnvironmentRef, Vec), KclError> { + crate::log::log(format!("enter module {path}")); + let old_units = exec_state.length_unit(); + let original_execution = self.engine.replace_execution_kind(exec_kind).await; + let mut local_state = ModuleState::new(&self.settings, path.std_path()); + std::mem::swap(&mut exec_state.mod_local, &mut local_state); let no_prelude = self .handle_annotations(program.inner_attrs.iter(), crate::execution::BodyType::Root, exec_state) @@ -103,7 +109,6 @@ impl ExecutorContext { if !preserve_mem { exec_state.mut_memory().push_new_root_env(!no_prelude); } - let original_execution = self.engine.replace_execution_kind(exec_kind).await; let result = self .exec_block(program, exec_state, crate::execution::BodyType::Root) @@ -115,12 +120,16 @@ impl ExecutorContext { } else { exec_state.mut_memory().pop_env() }; + std::mem::swap(&mut exec_state.mod_local, &mut local_state); + if !exec_kind.is_isolated() && new_units != old_units { self.engine.set_units(old_units.into(), Default::default()).await?; } self.engine.replace_execution_kind(original_execution).await; - result.map(|result| (result, env_ref)) + crate::log::log(format!("leave {path}")); + + result.map(|result| (result, env_ref, local_state.module_exports)) } /// Execute an AST's program. @@ -436,31 +445,24 @@ impl ExecutorContext { source_range: SourceRange, ) -> Result<(Option, EnvironmentRef, Vec), KclError> { exec_state.global.mod_loader.enter_module(path); - let mut local_state = ModuleState::new(&self.settings, path.std_path()); - std::mem::swap(&mut exec_state.mod_local, &mut local_state); - - let result = self.exec_module_body(program, exec_state, exec_kind, false).await; - - std::mem::swap(&mut exec_state.mod_local, &mut local_state); + let result = self.exec_module_body(program, exec_state, exec_kind, false, path).await; exec_state.global.mod_loader.leave_module(path); - result - .map_err(|err| { - if let KclError::ImportCycle(_) = err { - // It was an import cycle. Keep the original message. - err.override_source_ranges(vec![source_range]) - } else { - KclError::Semantic(KclErrorDetails { - message: format!( - "Error loading imported file. Open it to view more details. {}: {}", - path, - err.message() - ), - source_ranges: vec![source_range], - }) - } - }) - .map(|(val, env)| (val, env, local_state.module_exports)) + result.map_err(|err| { + if let KclError::ImportCycle(_) = err { + // It was an import cycle. Keep the original message. + err.override_source_ranges(vec![source_range]) + } else { + KclError::Semantic(KclErrorDetails { + message: format!( + "Error loading imported file. Open it to view more details. {}: {}", + path, + err.message() + ), + source_ranges: vec![source_range], + }) + } + }) } #[async_recursion] @@ -1033,7 +1035,7 @@ impl Node { // before running, and we will likely want to use the // return value. The call takes ownership of the args, // so we need to build the op before the call. - exec_state.mod_local.operations.push(op); + exec_state.global.operations.push(op); } result }?; @@ -1055,20 +1057,17 @@ impl Node { .iter() .map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range))) .collect(); - exec_state - .mod_local - .operations - .push(Operation::UserDefinedFunctionCall { - name: Some(fn_name.clone()), - function_source_range: func.function_def_source_range().unwrap_or_default(), - unlabeled_arg: args - .kw_args - .unlabeled - .as_ref() - .map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)), - labeled_args: op_labeled_args, - source_range: callsite, - }); + exec_state.global.operations.push(Operation::UserDefinedFunctionCall { + name: Some(fn_name.clone()), + function_source_range: func.function_def_source_range().unwrap_or_default(), + unlabeled_arg: args + .kw_args + .unlabeled + .as_ref() + .map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)), + labeled_args: op_labeled_args, + source_range: callsite, + }); let return_value = func .call_fn_kw(args, exec_state, ctx.clone(), callsite) @@ -1092,10 +1091,7 @@ impl Node { })?; // Track return operation. - exec_state - .mod_local - .operations - .push(Operation::UserDefinedFunctionReturn); + exec_state.global.operations.push(Operation::UserDefinedFunctionReturn); Ok(result) } @@ -1174,7 +1170,7 @@ impl Node { // before running, and we will likely want to use the // return value. The call takes ownership of the args, // so we need to build the op before the call. - exec_state.mod_local.operations.push(op); + exec_state.global.operations.push(op); } result }?; @@ -1190,17 +1186,14 @@ impl Node { let func = exec_state.memory().get(fn_name, source_range)?.clone(); // Track call operation. - exec_state - .mod_local - .operations - .push(Operation::UserDefinedFunctionCall { - name: Some(fn_name.clone()), - function_source_range: func.function_def_source_range().unwrap_or_default(), - unlabeled_arg: None, - // TODO: Add the arguments for legacy positional parameters. - labeled_args: Default::default(), - source_range: callsite, - }); + exec_state.global.operations.push(Operation::UserDefinedFunctionCall { + name: Some(fn_name.clone()), + function_source_range: func.function_def_source_range().unwrap_or_default(), + unlabeled_arg: None, + // TODO: Add the arguments for legacy positional parameters. + labeled_args: Default::default(), + source_range: callsite, + }); let return_value = func .call_fn(fn_args, exec_state, ctx.clone(), source_range) @@ -1224,10 +1217,7 @@ impl Node { })?; // Track return operation. - exec_state - .mod_local - .operations - .push(Operation::UserDefinedFunctionReturn); + exec_state.global.operations.push(Operation::UserDefinedFunctionReturn); Ok(result) } diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index bf846fb39c..f94b53c261 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -724,7 +724,7 @@ impl ExecutorContext { KclErrorWithOutputs::new( e, - exec_state.mod_local.operations.clone(), + exec_state.global.operations.clone(), exec_state.global.artifact_commands.clone(), exec_state.global.artifact_graph.clone(), module_id_to_module_path, @@ -760,7 +760,13 @@ impl ExecutorContext { .await?; let exec_result = self - .exec_module_body(program, exec_state, ExecutionKind::Normal, preserve_mem) + .exec_module_body( + program, + exec_state, + ExecutionKind::Normal, + preserve_mem, + &ModulePath::Main, + ) .await; // Move the artifact commands and responses to simplify cache management @@ -782,7 +788,7 @@ impl ExecutorContext { ) { Ok(artifact_graph) => { exec_state.global.artifact_graph = artifact_graph; - exec_result.map(|(_, env_ref)| env_ref) + exec_result.map(|(_, env_ref, _)| env_ref) } Err(err) => { // Prefer the exec error. diff --git a/src/wasm-lib/kcl/src/execution/state.rs b/src/wasm-lib/kcl/src/execution/state.rs index 895dc9b1cf..a3e921ac4b 100644 --- a/src/wasm-lib/kcl/src/execution/state.rs +++ b/src/wasm-lib/kcl/src/execution/state.rs @@ -49,6 +49,9 @@ pub(super) struct GlobalState { pub artifact_responses: IndexMap, /// Output artifact graph. pub artifact_graph: ArtifactGraph, + /// Operations that have been performed in execution order, for display in + /// the Feature Tree. + pub operations: Vec, /// Module loader. pub mod_loader: ModuleLoader, /// Errors and warnings. @@ -62,9 +65,6 @@ pub(super) struct ModuleState { pub pipe_value: Option, /// Identifiers that have been exported from the current module. pub module_exports: Vec, - /// Operations that have been performed in execution order, for display in - /// the Feature Tree. - pub operations: Vec, /// Settings specified from annotations. pub settings: MetaSettings, } @@ -119,7 +119,7 @@ impl ExecState { .find_all_in_env(main_ref, |_| true) .map(|(k, v)| (k.clone(), v.clone())) .collect(), - operations: self.mod_local.operations, + operations: self.global.operations, artifacts: self.global.artifacts, artifact_commands: self.global.artifact_commands, artifact_graph: self.global.artifact_graph, @@ -224,6 +224,7 @@ impl GlobalState { artifact_commands: Default::default(), artifact_responses: Default::default(), artifact_graph: Default::default(), + operations: Default::default(), mod_loader: Default::default(), errors: Default::default(), }; @@ -252,7 +253,6 @@ impl ModuleState { ModuleState { pipe_value: Default::default(), module_exports: Default::default(), - operations: Default::default(), settings: MetaSettings { default_length_units: exec_settings.units.into(), default_angle_units: Default::default(), diff --git a/src/wasm-lib/kcl/src/modules.rs b/src/wasm-lib/kcl/src/modules.rs index 82ee355760..f17057d5f9 100644 --- a/src/wasm-lib/kcl/src/modules.rs +++ b/src/wasm-lib/kcl/src/modules.rs @@ -122,6 +122,8 @@ pub enum ModuleRepr { #[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize, Hash, ts_rs::TS)] #[serde(tag = "type")] pub enum ModulePath { + // The main file of the project. + Main, Local { value: PathBuf }, Std { value: String }, } @@ -136,8 +138,8 @@ impl ModulePath { pub(crate) fn std_path(&self) -> Option { match self { - ModulePath::Local { value: _ } => None, ModulePath::Std { value: p } => Some(p.clone()), + _ => None, } } @@ -152,6 +154,7 @@ impl ModulePath { }) }) .map(str::to_owned), + ModulePath::Main => unreachable!(), } } @@ -179,6 +182,7 @@ impl ModulePath { impl fmt::Display for ModulePath { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { + ModulePath::Main => write!(f, "main"), ModulePath::Local { value: path } => path.display().fmt(f), ModulePath::Std { value: s } => write!(f, "std::{s}"), } diff --git a/src/wasm-lib/kcl/tests/add_lots/ops.snap b/src/wasm-lib/kcl/tests/add_lots/ops.snap index a2efd7a370..372906bf89 100644 --- a/src/wasm-lib/kcl/tests/add_lots/ops.snap +++ b/src/wasm-lib/kcl/tests/add_lots/ops.snap @@ -1,7 +1,6 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed add_lots.kcl -snapshot_kind: text --- [ { diff --git a/src/wasm-lib/kcl/tests/assembly_non_default_units/artifact_commands.snap b/src/wasm-lib/kcl/tests/assembly_non_default_units/artifact_commands.snap index 72ca95cd6a..27c40336dd 100644 --- a/src/wasm-lib/kcl/tests/assembly_non_default_units/artifact_commands.snap +++ b/src/wasm-lib/kcl/tests/assembly_non_default_units/artifact_commands.snap @@ -305,18 +305,6 @@ description: Artifact commands assembly_non_default_units.kcl "unit": "in" } }, - { - "cmdId": "[uuid]", - "range": [ - 0, - 33, - 5 - ], - "command": { - "type": "set_scene_units", - "unit": "in" - } - }, { "cmdId": "[uuid]", "range": [ @@ -435,18 +423,6 @@ description: Artifact commands assembly_non_default_units.kcl "path_id": "[uuid]" } }, - { - "cmdId": "[uuid]", - "range": [ - 0, - 0, - 0 - ], - "command": { - "type": "set_scene_units", - "unit": "mm" - } - }, { "cmdId": "[uuid]", "range": [ @@ -576,17 +552,5 @@ description: Artifact commands assembly_non_default_units.kcl "type": "close_path", "path_id": "[uuid]" } - }, - { - "cmdId": "[uuid]", - "range": [ - 0, - 0, - 0 - ], - "command": { - "type": "set_scene_units", - "unit": "mm" - } } ] diff --git a/src/wasm-lib/kcl/tests/assembly_non_default_units/ops.snap b/src/wasm-lib/kcl/tests/assembly_non_default_units/ops.snap index 05db3b2676..fa216c6cc8 100644 --- a/src/wasm-lib/kcl/tests/assembly_non_default_units/ops.snap +++ b/src/wasm-lib/kcl/tests/assembly_non_default_units/ops.snap @@ -2,4 +2,51 @@ source: kcl/src/simulation_tests.rs description: Operations executed assembly_non_default_units.kcl --- -[] +[ + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XZ" + }, + "sourceRange": [ + 186, + 190, + 3 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 172, + 191, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XZ" + }, + "sourceRange": [ + 103, + 107, + 4 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 89, + 108, + 4 + ], + "type": "StdLibCall", + "unlabeledArg": null + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/ops.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/ops.snap index 3d45dba7a9..53208dd677 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/ops.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/ops.snap @@ -1,7 +1,6 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed basic_fillet_cube_next_adjacent.kcl -snapshot_kind: text --- [ { diff --git a/src/wasm-lib/kcl/tests/fillet-and-shell/ops.snap b/src/wasm-lib/kcl/tests/fillet-and-shell/ops.snap index 372d488ba3..35b745330e 100644 --- a/src/wasm-lib/kcl/tests/fillet-and-shell/ops.snap +++ b/src/wasm-lib/kcl/tests/fillet-and-shell/ops.snap @@ -1,7 +1,6 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed fillet-and-shell.kcl -snapshot_kind: text --- [ { diff --git a/src/wasm-lib/kcl/tests/i_shape/ops.snap b/src/wasm-lib/kcl/tests/i_shape/ops.snap index 71e949d6f8..00f0c3497d 100644 --- a/src/wasm-lib/kcl/tests/i_shape/ops.snap +++ b/src/wasm-lib/kcl/tests/i_shape/ops.snap @@ -1,7 +1,6 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed i_shape.kcl -snapshot_kind: text --- [ { diff --git a/src/wasm-lib/kcl/tests/import_function_not_sketch/ops.snap b/src/wasm-lib/kcl/tests/import_function_not_sketch/ops.snap index 3cf43fb789..276dfb0e37 100644 --- a/src/wasm-lib/kcl/tests/import_function_not_sketch/ops.snap +++ b/src/wasm-lib/kcl/tests/import_function_not_sketch/ops.snap @@ -1,6 +1,70 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed import_function_not_sketch.kcl -snapshot_kind: text --- -[] +[ + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XY" + }, + "sourceRange": [ + 66, + 70, + 3 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 52, + 71, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "data": { + "value": { + "type": "Object", + "value": { + "axis": { + "type": "String", + "value": "y" + } + } + }, + "sourceRange": [ + 312, + 326, + 3 + ] + }, + "sketch": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [ + 328, + 329, + 3 + ] + } + }, + "name": "revolve", + "sourceRange": [ + 304, + 330, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": null + } +] diff --git a/src/wasm-lib/kcl/tests/import_side_effect/ops.snap b/src/wasm-lib/kcl/tests/import_side_effect/ops.snap index d6327de12f..378a448052 100644 --- a/src/wasm-lib/kcl/tests/import_side_effect/ops.snap +++ b/src/wasm-lib/kcl/tests/import_side_effect/ops.snap @@ -2,4 +2,28 @@ source: kcl/src/simulation_tests.rs description: Operations executed import_side_effect.kcl --- -[] +[ + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XY" + }, + "sourceRange": [ + 95, + 99, + 3 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 81, + 100, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": null + } +] diff --git a/src/wasm-lib/kcl/tests/import_whole/ops.snap b/src/wasm-lib/kcl/tests/import_whole/ops.snap index edd1dce530..85053a7707 100644 --- a/src/wasm-lib/kcl/tests/import_whole/ops.snap +++ b/src/wasm-lib/kcl/tests/import_whole/ops.snap @@ -3,6 +3,73 @@ source: kcl/src/simulation_tests.rs description: Operations executed import_whole.kcl --- [ + { + "labeledArgs": { + "data": { + "value": { + "type": "String", + "value": "XY" + }, + "sourceRange": [ + 50, + 54, + 3 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 36, + 55, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 10.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [ + 127, + 129, + 3 + ] + } + }, + "name": "extrude", + "sourceRange": [ + 110, + 130, + 3 + ], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [ + 0, + 0, + 0 + ] + } + }, { "labeledArgs": { "faces": { From 89bc93e4cd3f138e460de1721d4d321aad4f1280 Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Thu, 27 Feb 2025 15:58:58 +1300 Subject: [PATCH 18/23] Add default planes to std (#5433) * Type ascription Signed-off-by: Nick Cameron * Support negation of planes Signed-off-by: Nick Cameron * Add default planes to std Signed-off-by: Nick Cameron * Don't double wrap docs files in const_ Signed-off-by: Nick Cameron --------- Signed-off-by: Nick Cameron --- docs/kcl/angledLine.md | 2 +- docs/kcl/angledLineOfXLength.md | 2 +- docs/kcl/angledLineOfYLength.md | 2 +- docs/kcl/angledLineThatIntersects.md | 2 +- docs/kcl/angledLineToX.md | 2 +- docs/kcl/angledLineToY.md | 2 +- docs/kcl/arc.md | 2 +- docs/kcl/arcTo.md | 2 +- docs/kcl/bezierCurve.md | 2 +- docs/kcl/close.md | 4 +- docs/kcl/const_E.md | 32 - docs/kcl/const_PI.md | 28 - docs/kcl/const_QUARTER_TURN.md | 15 - docs/kcl/const_TAU.md | 32 - docs/kcl/const_THREE_QUARTER_TURN.md | 15 - docs/kcl/{const_ZERO.md => const_std-XY.md} | 4 +- .../{const_HALF_TURN.md => const_std-XZ.md} | 4 +- docs/kcl/const_std-YZ.md | 15 + docs/kcl/hole.md | 6 +- docs/kcl/index.md | 3 + docs/kcl/line.md | 4 +- docs/kcl/profileStart.md | 2 +- docs/kcl/profileStartX.md | 2 +- docs/kcl/profileStartY.md | 2 +- docs/kcl/startProfileAt.md | 6 +- docs/kcl/startSketchOn.md | 6 +- docs/kcl/std.json | 1390 ++++++++++++++++- docs/kcl/tangentialArc.md | 2 +- docs/kcl/tangentialArcTo.md | 2 +- docs/kcl/tangentialArcToRelative.md | 2 +- docs/kcl/types/PlaneType.md | 12 + docs/kcl/xLine.md | 2 +- docs/kcl/xLineTo.md | 2 +- docs/kcl/yLine.md | 2 +- docs/kcl/yLineTo.md | 2 +- src/wasm-lib/kcl/src/execution/exec_ast.rs | 158 +- src/wasm-lib/kcl/src/execution/geometry.rs | 107 +- src/wasm-lib/kcl/src/execution/kcl_value.rs | 121 +- src/wasm-lib/kcl/src/execution/mod.rs | 46 +- src/wasm-lib/kcl/src/parsing/ast/digest.rs | 28 +- src/wasm-lib/kcl/src/parsing/ast/mod.rs | 1 + src/wasm-lib/kcl/src/parsing/ast/types/mod.rs | 199 ++- src/wasm-lib/kcl/src/parsing/parser.rs | 70 +- .../kcl/src/parsing/token/tokeniser.rs | 7 +- src/wasm-lib/kcl/src/std/args.rs | 16 +- src/wasm-lib/kcl/src/std/sketch.rs | 105 +- src/wasm-lib/kcl/src/unparser.rs | 68 +- src/wasm-lib/kcl/src/walk/ast_node.rs | 6 + src/wasm-lib/kcl/src/walk/ast_visitor.rs | 3 + src/wasm-lib/kcl/std/prelude.kcl | 21 + 50 files changed, 2136 insertions(+), 434 deletions(-) delete mode 100644 docs/kcl/const_E.md delete mode 100644 docs/kcl/const_PI.md delete mode 100644 docs/kcl/const_QUARTER_TURN.md delete mode 100644 docs/kcl/const_TAU.md delete mode 100644 docs/kcl/const_THREE_QUARTER_TURN.md rename docs/kcl/{const_ZERO.md => const_std-XY.md} (62%) rename docs/kcl/{const_HALF_TURN.md => const_std-XZ.md} (50%) create mode 100644 docs/kcl/const_std-YZ.md diff --git a/docs/kcl/angledLine.md b/docs/kcl/angledLine.md index ced898d9ed..a8fc677be1 100644 --- a/docs/kcl/angledLine.md +++ b/docs/kcl/angledLine.md @@ -29,7 +29,7 @@ angledLine(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> yLineTo(15, %) |> angledLine({ angle = 30, length = 15 }, %) diff --git a/docs/kcl/angledLineOfXLength.md b/docs/kcl/angledLineOfXLength.md index 9e9c1e5fef..d6b01cae96 100644 --- a/docs/kcl/angledLineOfXLength.md +++ b/docs/kcl/angledLineOfXLength.md @@ -29,7 +29,7 @@ angledLineOfXLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) - ### Examples ```js -sketch001 = startSketchOn('XZ') +sketch001 = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1) |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2) diff --git a/docs/kcl/angledLineOfYLength.md b/docs/kcl/angledLineOfYLength.md index 2c6607e7e3..b547ee6392 100644 --- a/docs/kcl/angledLineOfYLength.md +++ b/docs/kcl/angledLineOfYLength.md @@ -29,7 +29,7 @@ angledLineOfYLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) - ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> angledLineOfYLength({ angle = 45, length = 10 }, %) diff --git a/docs/kcl/angledLineThatIntersects.md b/docs/kcl/angledLineThatIntersects.md index d6d08b6663..9162f1f183 100644 --- a/docs/kcl/angledLineThatIntersects.md +++ b/docs/kcl/angledLineThatIntersects.md @@ -29,7 +29,7 @@ angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch: Sketch, tag ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(endAbsolute = [5, 10]) |> line(endAbsolute = [-10, 10], tag = $lineToIntersect) diff --git a/docs/kcl/angledLineToX.md b/docs/kcl/angledLineToX.md index 28110c10ec..2536c8930d 100644 --- a/docs/kcl/angledLineToX.md +++ b/docs/kcl/angledLineToX.md @@ -29,7 +29,7 @@ angledLineToX(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sk ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLineToX({ angle = 30, to = 10 }, %) |> line(end = [0, 10]) diff --git a/docs/kcl/angledLineToY.md b/docs/kcl/angledLineToY.md index e92996c82d..63a341e26f 100644 --- a/docs/kcl/angledLineToY.md +++ b/docs/kcl/angledLineToY.md @@ -29,7 +29,7 @@ angledLineToY(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sk ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLineToY({ angle = 60, to = 20 }, %) |> line(end = [-20, 0]) diff --git a/docs/kcl/arc.md b/docs/kcl/arc.md index e4cba62a26..fe508c8ea9 100644 --- a/docs/kcl/arc.md +++ b/docs/kcl/arc.md @@ -31,7 +31,7 @@ arc(data: ArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> arc({ diff --git a/docs/kcl/arcTo.md b/docs/kcl/arcTo.md index 139904e29a..8c2b97dd69 100644 --- a/docs/kcl/arcTo.md +++ b/docs/kcl/arcTo.md @@ -29,7 +29,7 @@ arcTo(data: ArcToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> arcTo({ end = [10, 0], interior = [5, 5] }, %) |> close() diff --git a/docs/kcl/bezierCurve.md b/docs/kcl/bezierCurve.md index 4ae77e8194..948d88a550 100644 --- a/docs/kcl/bezierCurve.md +++ b/docs/kcl/bezierCurve.md @@ -29,7 +29,7 @@ bezierCurve(data: BezierData, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [0, 10]) |> bezierCurve({ diff --git a/docs/kcl/close.md b/docs/kcl/close.md index de568f7605..6919769d53 100644 --- a/docs/kcl/close.md +++ b/docs/kcl/close.md @@ -28,7 +28,7 @@ close(sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -startSketchOn('XZ') +startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [10, 10]) |> line(end = [10, 0]) @@ -39,7 +39,7 @@ startSketchOn('XZ') ![Rendered example of close 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADXc0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqq/zeuueaaB7/jO77jZ3HVVVf9h/vRH/3Rz7nvvvtu5aqrrrrqqqv+Z0EPetCDuOqqq6666qqrrrrq/74P//AP/64Xe7EXe+1rrrnmwVx11VX/oe67775bAb7+67/+ff7hH/7ht7nqqquuuuqq/znQgx70IK666qqrrrrqqquu+r/twz/8w7/rdV7ndd6bZ/qMz/gM/qPY5v8y2/xvZpv/LWzzP5ltXpDXf/3X5/Vf//W57777bv2sz/qs17nvvvtu5aqrrrrqqqv+ZyC46qqrrrrqqquuuur/tM/93M/9rdd5ndd57x//8R/nP4MkJCEJSUhCEpKQhCQkIQlJSOJ/E0lIQhKSkIQkJCEJSUhCEv8TSUISkpCEJCQhCUlI4n8KSUhCEpKQhCQkIYn/bpKQhCQkIQlJSOI3fuM3+PVf/3WuueaaB3/O53zO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/uf86I/+KACS+JdI4rlJ4l8iiecmiecmiecmiecmiecmiecmiReVJF6YBz3oQdzvTd7kTbjqqquu+ve65pprHmybq6666qqr/kejctVVV1111VVXXfW/zOu8zuu894d/+Id/15//+Z/zoz/6owBI4rlJ4oEk8dwk8dwk8S+RxHOTxHOTxHOTxHOTxItKEs9NEs+PJAAe9KAH8e7v/u4AnD17lsPDQ656wWzzv41t/rPZ5n8K2/xPYJv/DLb5n8A299ve3uaGG27gge67775bz549eytXXXXVVVf9T0blqquuuuqqq6666n+R13md13nvD//wD/+uP//zP+dHf/RHAZDEc5PEv0QSz00Sz00S/xaS+PeQxHOTxHOTxPMjCYCXfMmX5C3e4i0A+Id/+Ace97jH8b+Rbf4z2OY/gm3+rWzzb2Gbfy3b/GvZ5l/DNv8atnlR2eZfwzYvKtu8qGzzorLNi8o2Lyrb/GvY5kVlm/ttb2/zyEc+kkc96lHc77777rv1t37rt777R3/0Rz+Hq6666qqr/qejctVVV1111VVXXfW/xOu8zuu894d/+Id/15//+Z/zoz/6o7wgknhuknggSTw3STw3STw3STw3SbwoJPHcJPHcJPHcJPHcJPH8SALgJV/yJXmLt3gLAP7sz/6MW2+9lf+pbPOfzTb/UWzz72Gbfwvb/FvY5l/DNv9atvnXsM2/hm1eVLZ5UdnmRWWbF5Vt/jVs86KyzYvKNv8atgHY3t7m5V7u5XjUox7F/e67775bf/RHf/Rzfuu3fuu7ueqqq6666n8LKlddddVVV1111VX/C3z4h3/4d73O67zOe//ar/0av/Zrv8b9JPFAknhukviXSOK5SeK5SeK5SeK5SeK5SeK5SeK5SeK5SeJFJQmAt3iLt+AlX/IlAfizP/szbr31Vv472ea/km3+I9nm38s2/xa2+bewzb+Wbf61bPOvYZt/Ddu8qGzzorLNv4ZtXlS2eVHZ5kVlm38N27yobAPwci/3cjzqUY9ie3ub+/3Ij/zIZ//2b//299x33323ctVVV1111f82VK666qqrrrrqqqv+h/vwD//w73qd13md9/7RH/1R/vzP/5z7SeKBJPHcJPHcJPFAknhuknhuknhuknhuknhuknhuknhuknhRSeK5SQLgLd7iLXjJl3xJAH77t3+bs2fP8h/NNv9T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/dzP/a2nPOUpfOM3fiOSeCBJPDdJPJAknpsk/iWSeG6SeG6S+LeQxHOTxHOTxL/kwQ9+MO/1Xu8FwN13383P//zP80C2eUEkcdX/Hbb5n8Q2/17b29s88pGP5OVe7uW433333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVf92VK666qqrrrrqqv82L/ZiL/ban/u5n/tbT3nKU/jGb/xGJPFAknhukviXSOK5SeJfIonnJonnJonnJon/SJK434Mf/GDe673eC4C7776bn//5n+dfwzYvjCSu+p/DNv9T2eY/0vb2Ni/3ci/HIx/5SO73D//wD7/9W7/1W9/zW7/1W9/NVVddddVVV1111b8flauuuuqqq6666r/Fi73Yi732537u5/7WU57yFL7xG78RSfxLJPHcJPFAknhuknhuknggSTw3STw3STw3STw3STw3STw3STw3SdzvwQ9+MO/1Xu8FwN13383P//zP8x/NNi8KSVz1b2eb/01s85/l5V7u5XjkIx/J9vY2APfdd9+tv/Vbv/Xdv/3bv/099913361cddVVV1111VVX/cehctVVV1111VVX/Zd7sRd7sdf+3M/93N96ylOewjd+4zciiecmiX+JJP4lknhukviXSOK5SeK5SeK5SeK5SeK5SeK5SeJ+D37wg3mv93ovAJ70pCfxO7/zO/x3ss2/hST+L7HN/yW2+a+wvb3NIx/5SF7u5V6O+9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXfWfg8pVV1111VVXXfVf6sVe7MVe+3M/93N/6ylPeQrf+I3fyPMjiecmiQeSxHOTxANJ4rlJ4rlJ4l8iiecmiecmiecmiecmiecmifu99Eu/NG/1Vm8FwF/8xV/wl3/5l/xvZZur/mewzX+17e1tHvnIR/JyL/dy3O++++679bd+67e++0d/9Ec/h6uuuuqqq6666qr/XFSuuuqqq6666qr/Mq/zOq/z3h/+4R/+XU95ylP4xm/8RgAk8UCSeG6S+JdI4l8iiecmiecmif9OL/3SL81bvdVbAfDbv/3bPOlJT+IFkcRVVz2Qbf4nuP7663nt135ttre3ud9v/dZvffeP/uiPfs599913K1ddddVVV1111VX/NahcddVVV1111VX/JV7ndV7nvT/8wz/8u/7sz/6MH/qhHwJAEg8kiecmiecmiQeS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PYrt7W3u9yM/8iOf/du//dvfc999993KVVddddVVV1111VXPjcpVV1111VVXXfV8XXPNNQ/+8A//8O96sRd7sdf+hm/4Bp7ylKcAIIkHksS/RBLPTRIPJInnJonnJol/iSSemySemySemySemySemyQA3vu935sHP/jBAPzMz/wMd911F/8ZbPOCSOKq/7u2t7d51KMexcu//Mtzv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq656YahcddVVV1111VXP45prrnnwh3/4h3/X9ddf/9rf8A3fwFOe8hQAJPFAknhukviXSOJfIonnJonnJol/iSSemySemySemySemyQA3vu935sHP/jB7O/v85u/+Zvcdddd/HewzQsjiav+99ne3uZRj3oUL//yL8/97rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquuuupFQeWqq6666qqrrnoO11xzzYM//MM//Luuv/761/6hH/ohnvKUpwAgiX+JJJ6bJB5IEs9NEv8SSTw3STw3SfxnO378OG/91m/Ngx/8YPb39/mN3/gN7r77bv6nss2LQhJX/dexzfNzww038Aqv8ArccMMN3O8f/uEffvvrv/7r3+e+++67lauuuuqqq6666qqr/jWoXHXVVVddddVVz3LNNdc8+MM//MO/6/rrr3/tH/qhH+IpT3kKAJJ4bpJ4IEk8N0n8SyTx3CTxL5HEc5PEc5PEc5PEc5PEc5PEcztx4gRv/dZvzYMf/GD29/f5vu/7Pl4QSfxvYpt/DUlc9Wy2+bfa3t7mUY96FI9+9KPZ3t4G4L777rv1t37rt777t3/7t7/nvvvuu5Wrrrrqqquuuuqqq/4tqFx11VVXXXXVVZddc801D/7wD//w77r++utf+4d+6Id4ylOewgsiiQeSxHOTxHOTxANJ4rlJ4rlJ4oEk8dwk8dwk8dwk8dwk8dwk8dxOnDjBe7/3e3P8+HH29/f5vu/7Pl4Y2zw/kvi/wDb/kSTxX8k2/922t7d51KMexSu8witwv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq67696Jy1VVXXXXVVVdxzTXXPPhzPudzfqvW+uAf+qEf4ilPeQr3k8QDSeJfIonnJol/iSSemyT+LSTx3CTx3CTx3CTx3E6cOMFHf/RHA3DnnXfyMz/zM/xb2eb5kcT/Z7b5/2J7e5tXeIVX4FGPehT3u++++2790R/90c/5rd/6re/mqquuuuqqq6666qr/KFSuuuqqq6666v+5a6655sHf9E3f9PQLFy7wDd/wDVy4cIH7SeKBJPHcJPEvkcRzk8QDSeK5SeK5SeK5SeLfQhLPTRLP7SEPeQjv/d7vDcCdd97Jz/zMz/CfwTYviCSu+t/v5V/+5Xn0ox/N9vY29/uRH/mRz/6t3/qt7z579uwzuOqqq6666qqrrrrqPxqVq6666qqrrvp/7JprrnnwN33TNz39woULfN7nfR4PJIl/iSSemyQeSBLPTRL/Ekk8N0k8N0k8N0k8N0n8Wzz4wQ/mvd/7vQG48847+Zmf+Rn+O9jmBZHEVf9zbW9v86hHPYpXeIVX4H733Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVdd9Z+JylVXXXXVVVf9P3XNNdc8+Ju+6ZuefuHCBT7v8z6PB5LEc5PEA0niuUniXyKJ5yaJf4kknpsknpsknpsknpsknpskHujBD34w7/M+7wPAnXfeyc/8zM/wP5Ft/iWSuOq/1vb2No961KN4hVd4Be5333333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVVf8VqFx11VVXXXXV/0PXXHPNg7/pm77p6RcuXODzPu/z+JdI4l8iiecmiX+JJJ6bJP4lknhuknhuknhuknhuknigBz/4wbzP+7wPAE94whP4jd/4DZ4fSfxvYJsXhSSu+vfZ3t7mFV7hFXjUox7F/e67775bf/RHf/Rzfuu3fuu7ueqqq6666qqrrrrqvxKVq6666qqrrvp/5sVe7MVe+3M/93N/68KFC3zu534uknggSTyQJJ6bJP4lknhuknggSTw3STw3SfxbSOK5SeK5SeKBXvqlX5q3eZu3AeAJT3gCv/Ebv8ELYpvnRxL/G9nmX0sS/1/Z5n6v8AqvwKMf/Wi2t7e534/8yI989m//9m9/z3333XcrV1111VVXXXXVVVf9d6By1VVXXXXVVf+PvNiLvdhrf+7nfu5vPeUpT+Hrv/7rkcQDSeJfIonnJokHksRzk8S/RBLPTRLPTRLPTRL/EV76pV+at3mbtwHgN37jN3jCE57Av4Vtnh9J/F9jm/9qknh+bPNfaXt7m0c/+tG8wiu8Ave77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqv9uVK666qqrrrrq/4kXe7EXe+3P/dzP/a2nPOUpfP3Xfz2SeCBJPDdJPJAknpsk/iWSeG6S+JdI4rlJ4rlJ4rlJ4rlJ4rlJ4n6v/dqvzeu8zusA8Bu/8Rs84QlP4D+abZ4fSVz1orPNf6ft7W0e/ehH8wqv8Arc77777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqqv+p6By1VVXXXXVVf8PXHPNNQ/+3M/93N96ylOewtd//dcjiX+JJB5IEs9NEs9NEg8kiecmiecmiX+JJJ6bJJ6bJJ6bJJ6bJO73Nm/zNrz0S780AD/90z/NnXfeyX8l27wgkrjqf4bt7W1e4RVegUc/+tHc7x/+4R9++0d+5Ec+5x/+4R9+m6uuuuqqq6666qqr/qehctVVV1111VX/D7zjO77jZz3lKU/h67/+65HEc5PEA0niXyKJ5yaJf4kknpsknpsk/iWSeG6SeG6SeG6SuN/7vM/78OAHPxiAn/7pn+bOO+/kfxLbvCCSuOo/3yu8wivw6Ec/mu3tbQDuu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrrrqfyoqV1111VVXXfV/3Iu92Iu99uu8zuu89w/+4A/y/EjigSTx3CTxL5HEc5PEv0QSz00Sz00S/xne533ehwc/+MEA/NRP/RR33nknDySJ/8ls8y+RxFX/etvb2zz60Y/mFV7hFbjffffdd+tv/dZvffeP/uiPfg5XXXXVVVddddVVV/1vQOWqq6666qqr/o97ndd5nfcC+NM//VMk8UCS+JdI4rlJ4l8iiecmiX+JJJ6bJJ6bJJ6bJJ6bJJ6bJADe533ehwc/+MHs7e3xG7/xG9x55508N9s8P5L438I2LwpJXAXb29s8+tGP5hVe4RW433333Xfrj/7oj37Ob/3Wb303V1111VVXXXXVVVf9b0Llqquuuuqqq/6Pe53XeZ33/uVf/mUk8UCSeG6SeCBJPDdJPDdJPJAknpsknpsk/iWSeG6SeG6SeG6SeG6SAHif93kfHvzgB7O3t8dv/MZvcOedd/KvYZvnJon/zWzzryWJ/yse/ehH8wqv8Apsb29zvx/5kR/57N/6rd/67rNnzz6Dq6666qqrrrrqqqv+N6Jy1VVXXXXVVf+HveM7vuNnAfzZn/0Z/xJJ/Esk8dwk8S+RxHOTxHOTxL9EEs9NEs9NEs9NEsePH+dt3uZtePCDH8ze3h6/8Ru/wZ133sl/BNs8P5L4v8o2/9Uk8fzY5l9re3ubRz/60TzmMY9he3sbgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq676347KVVddddVVV/0f9jqv8zrv/ad/+qdcuHCBB5LEA0niuUniXyKJ5yaJB5LEc5PEc5PEc5PEf6Tjx4/zNm/zNjz4wQ9mb2+P7/3e7+W/gm2eH0lc9a9nm3+v7e1tHv3oR/OKr/iK3O++++679bd+67e++0d/9Ec/h6uuuuqqq6666qqr/q+gctVVV1111VX/R73O67zOe19zzTUP/rEf+zEeSBL/Ekk8N0k8kCSemyT+JZJ4bpJ4bpJ4bpJ4bpJ4bpJ4bidOnOBjPuZjANjb2+N7v/d7+e9mmxdEElf9x9ve3uYVX/EVefSjH8397rvvvlt/9Ed/9HN+67d+67u56qqrrrrqqquuuur/GipXXXXVVVdd9X/U67zO67zXU57yFJ7ylKdwP0k8N0k8kCSemyT+JZJ4bpL4l0jiuUniuUniuUniuUniuZ04cYKP+ZiPAeDOO+/kp37qp/ifzjYviCSu+td5hVd4BR7zmMewvb3N/X7kR37ks3/7t3/7e+67775bueqqq6666qqrrrrq/yoqV1111VVXXfV/0Iu92Iu99ou92Iu99g/90A/xwkjigSTx3CTx3CTxL5HEc5PEv4UknpsknpsknttDHvIQ3ud93geAO++8k5/8yZ/k+ZHE/xa2+ZdI4v+77e1tHv3oR/OKr/iK3O++++679bd+67e++0d/9Ec/h6uuuuqqq6666qqr/j+gctVVV1111VX/B73O67zOewH86Z/+KfeTxANJ4t9CEs9NEg8kiecmiecmiecmif8oD37wg3mf93kfAO68805+8id/khfENs9NEv9b2eZFIYn/a7a3t3n0ox/NK77iK3K/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrvr/hMpVV1111VVX/R/0Oq/zOu/9Qz/0Q9xPEg8kiecmiecmiQeSxHOTxL9EEs9NEs9NEs9NEs9NEs9NEg/04Ac/mPd93/cF4PGPfzy//uu/zr+WbZ4fSfxfYZt/DUn8T7W9vc0rvuIr8uhHP5r7/cM//MNv/8iP/Mjn/MM//MNvc9VVV1111VVXXXXV/0dUrrrqqquuuur/mHd8x3f8LICnPOUpAEjiXyKJ5yaJf4kknpsk/iWSeG6SeG6SeG6SeG6SeKAHP/jBvO/7vi8Aj3/84/n1X/91/iPZ5rlJ4v8D2/xHk8S/xyu8wivwmMc8hu3tbQDuu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrrrq/zMqV1111VVXXfV/zOu8zuu895/+6Z9y4cIFJPHcJPFAknhuknhuknggSTw3STw3SfxLJPHcJPHcJPHcJPFAL/MyL8PbvM3bAPAnf/In/Omf/in/FWzz/EjiqhfONv9a29vbPOYxj+EVX/EVud99991362/91m9994/+6I9+DlddddVVV1111VVXXXUFlauuuuqqq676P+R1Xud13vuaa6558I/92I/x/EjiXyKJ5yaJf4kknpsknpsk/qNI4oFe53Veh9d5ndcB4Nd//dd5/OMfz38327wgkrjqX2d7e5vHPOYxvOIrviL3u++++2790R/90c/5rd/6re/mqquuuuqqq6666qqrnhOVq6666qqrrvo/5HVe53Xe6ylPeQpPecpTkMQDSeK5SeJfIonnJol/iSSemySemySemySemyRemLd5m7fhZV7mZQD4tV/7NR7/+MdzP0n8T2SbF0QSVz3box/9aF7plV6J7e1t7vcjP/Ijn/1bv/Vb33327NlncNVVV1111VVXXXXVVc8flauuuuqqq676P+LFXuzFXvvFXuzFXvsbvuEbkMS/RBLPTRL/Ekk8N0n8SyTx3CTx3CTx3CTx3CRxv7d5m7fhZV7mZQD4iZ/4Ce68804eyDbPTRL/k9nmBZHE/wfb29s85jGP4dGPfjQ7OzsA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVV/zIqV1111VVXXfV/xOu8zuu8F8BTn/pUnpskHkgSz00Sz00SDySJ5yaJ5yaJf4kknpsknpsknpsk7vc+7/M+POQhDwHgJ37iJ7jzzjt5UdjmuUnifwPb/Esk8b/V9vY2j3nMY3jFV3xF7nfffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVVV73oqFx11VVXXXXV/xGv8zqv894/9EM/xHOTxL9EEs9NEv8SSTw3STw3SfxbSOK5SeJ+7/M+78NDHvIQAH7iJ36CO++8k38P2zw3SfxvZJsXhST+p9je3uYVX/EVecxjHsP97rvvvlt/9Ed/9HN+67d+67u56qqrrrrqqquuuuqqfz0qV1111VVXXfV/wId/+Id/F8Cf/dmf8UCSeG6S+JdI4rlJ4l8iiecmiecmiecmiX+N93mf9+EhD3kIe3t7/Nqv/Rp33nkn/xls89wk8X+Fbf4tJPEf5RVf8RV59KMfzc7ODvf7kR/5kc/+7d/+7e+57777buWqq6666qqrrrrqqqv+7ahcddVVV1111f8Br/M6r/Pef/Znf8a/RBLPTRIPJInnJonnJol/iSSemySemySemySemySOHz/O27zN2/CQhzyEvb09fu3Xfo0777yT/0q2eX4k8f+Fbf49dnZ2ePSjH80rvdIrcb/77rvv1t/6rd/67h/90R/9HK666qqrrrrqqquuuuo/BpWrrrrqqquu+l/udV7ndd4b4Fd+5Vd4IEk8kCSemyT+JZJ4bpJ4bpL4l0jiuUniuUniuUni+PHjvM3bvA0PechD2Nvb4yd/8ifZ29vjfwrbPD+SuOqKnZ0dHv3oR/NKr/RK3O++++679bd+67e++0d/9Ec/h6uuuuqqq6666qqrrvqPReWqq6666qqr/pd7x3d8x8/6sz/7My5cuMD9JPFAknhuknhukviXSOK5SeK5SeLfQhLPTRLHjx/nbd7mbXjIQx7C3t4e3/Vd38Vzk8T/RLZ5QSTx/8HOzg6v+IqvyGMe8xjud9999936oz/6o5/zW7/1W9/NVVddddVVV1111VVX/eegctVVV1111VX/i73O67zOe19zzTUP/rEf+zHuJ4l/C0k8N0n8SyTx3CTx3CTx3CTxojh+/Dgf+7EfC8Add9zBT/zET/D82Oa5SeJ/Mtu8IJL43+4VX/EVecxjHsPOzg73+5Ef+ZHP/u3f/u3vue+++27lqquuuuqqq6666qqr/nNRueqqq6666qr/xV7ndV7nvS5cuMBTn/pUACTx3CTx3CTxQJJ4bpJ4bpL4l0jiuUniuUniuUniuT3kIQ/hfd/3fQG44447+Imf+An+NWzz3CTxv4Ft/iWS+J9mZ2eHRz/60bzSK70S97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq/7rULnqqquuuuqq/6WuueaaB7/Yi73Ya//QD/0QL4gknpsk/iWSeG6SeG6S+JdI4rlJ4rlJ4rk95CEP4X3f930BuOOOO/iJn/gJ/iPY5rlJ4n8j2/xLJPFfYWdnh0c/+tG80iu9Eve77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqqv+61G56qqrrrrqqv+l3vEd3/GzAP7sz/4MAEk8kCSemySemyT+JZJ4bpJ4bpL4t5DEc3vIQx7C+77v+wJwxx138BM/8RP8Z7LNc5PE/wW2eVFJ4l/rxhtv5A3e4A3Y3t7mfr/1W7/13T/yIz/y2WfPnn0GV1111VVXXXXVVVdd9d+HylVXXXXVVVf9L/U6r/M67/1nf/ZnAEji30ISz00SDySJ5yaJ5yaJ5yaJ5yaJf8lDHvIQ3vd93xeAxz3ucfzar/0a/x1s8/xI4v8q27wodnZ2eMxjHsNjHvMYdnZ2ALjvvvtu/a3f+q3v/u3f/u3vue+++27lqquuuuqqq6666qqr/vtRueqqq6666qr/hV7ndV7nvQF+5Vd+BUk8N0k8N0k8kCSemyT+JZJ4bpJ4bpJ4bpJ4bpJ4oJd5mZfhbd/2bQF43OMex6/+6q8iif9JbPP8SOL/up2dHR7zmMfwSq/0Stzvvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqqq676n4XKVVddddVVV/0v9I7v+I6f9Wd/9mdcuHABSTyQJJ6bJP4lknhukvi3kMRzk8Rzk8QDvczLvAxv+7ZvC8Af//Ef88d//McA2OaBJPE/kW2eH0n8b7ezs8MrvdIr8ZjHPIb73Xfffbf+6I/+6Of81m/91ndz1VVXXXXVVVddddVV/zNRueqqq6666qr/ZV7ndV7nva+55poH/9iP/RiSeCBJPDdJPDdJ/Esk8dwk8dwk8W8hiQd6ndd5HV73dV8XgF/91V/lcY97HC+IbZ6bJP6nss0LIon/yV7plV6JxzzmMezs7HC/H/mRH/ns3/7t3/6e++6771auuuqqq6666qqrrrrqfzYqV1111VVXXfW/zOu8zuu814ULF3ja057Gv0QSz00Sz00SDySJ5yaJ5yaJ5yaJ5yaJF+Zt3/ZteZmXeRkAfvzHf5w77riDfy3bPJAk/jewzQsjif9qOzs7POYxj+GVXumVuN99991362/91m9994/+6I9+DlddddVVV1111VVXXfW/B5Wrrrrqqquu+l/kmmuuefCLvdiLvfYP//AP89wk8S+RxHOTxL9EEs9NEs9NEs9NEs9NEvd73/d9Xx7ykIcA8OM//uPccccd/EewzXOTxP82tnlhJPEfZWdnh8c85jG80iu9Eve77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqqv+96Fy1VVXXXXVVf+LvOM7vuNnAfzZn/0ZDySJ5yaJf4kknpsk/i0k8dwk8dwkcb/3fd/35SEPeQgAP/7jP84dd9zBfybbPDdJ/G9mmxeFJF6QnZ0dXumVXonHPOYx3O++++679Ud/9Ec/57d+67e+m6uuuuqqq6666qqrrvrfi8pVV1111VVX/S/yOq/zOu/9Z3/2ZzyQJJ6bJJ6bJB5IEs9NEs9NEs9NEv8Wkrjf+77v+/KQhzyEvb09fvVXf5U77riD/w62eX4k8X+JbZ7bK73SK/HYxz6WnZ0d7vcjP/Ijn/3bv/3b33PffffdylVXXXXVVVddddVVV/3vR+Wqq6666qqr/pd4ndd5nfcG+NVf/VVeGEk8N0n8SyTx3CTx3CTx3CTx3CTxgrzv+74vD3nIQ9jb2+NXfuVXuOOOO5DE/yS2eW6S+N9uZ2eHxzzmMbzyK78y97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq/5voXLVVVddddVV/0u84zu+42f92Z/9GRcuXOB+kviXSOK5SeJfIonnJonnJonnJonnJonjx4/ztm/7tjzkIQ9hb2+PX/mVX+GOO+4AwDYPJIn/aWzzgkjif7KdnR0e85jH8Mqv/Mrc77777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquu+r+JylVXXXXVVVf9L/A6r/M6733NNdc8+Md//Me5nySemyT+JZJ4bpL4t5DEc5PEc5PE8ePHedu3fVse8pCHsLe3x3d8x3fwwtjmgSTxP5ltnh9J/He66aabeKVXeiVuuukm7vdbv/Vb3/0jP/Ijn3327NlncNVVV1111VVXXXXVVf+3Ubnqqquuuuqq/wVe53Ve572e+tSn8tSnPhUASTw3STw3STyQJJ6bJJ6bJJ6bJP4tJHH8+HE+7uM+DoC9vT2+4zu+g38t2zw3SfxPZ5sXRBL/GXZ2dnjMYx7DYx/7WHZ2dgC47777bv2t3/qt7/7t3/7t77nvvvtu5aqrrrrqqquuuuqqq/5/oHLVVVddddVV/8O92Iu92Gu/2Iu92Gv/8A//MACSeG6SeG6S+JdI4rlJ4rlJ4rlJ4rlJ4rkdP36cj/u4jwPgjjvu4Md+7Mf4j2Kb5yaJ/y1s88JI4l9jZ2eHxzzmMbzyK78y97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq/7/oXLVVVddddVV/8O9zuu8znsB/Nmf/RkvKkk8N0n8SyTx3CTx3CTx3CTx3B760Ifyvu/7vgDccccd/NiP/Rj/2Wzz3CTxv5FtXhhJAOzs7PBKr/RKPPaxj+V+9913360/+qM/+jm/9Vu/9d1cddVVV1111VVXXXXV/19Urrrqqquuuup/uNd5ndd57z/7sz8DQBLPTRIPJInnJonnJol/C0k8N0k8t4c+9KG87/u+LwB33HEHP/ZjP8Z/F9s8N0n8b/dKr/RKPPaxj2VnZ4f7/ciP/Mhn//Zv//b33Hfffbdy1VVXXXXVVVddddVVV1G56qqrrrrqqv/BXud1Xue9AX71V38VSTw3SfxLJPHcJPHcJPHcJPFv8dCHPpT3fd/3BeD222/nx37sx5DE/yS2eW6S+J9uZ2eHxz72sbzyK78y97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq656ICpXXXXVVVdd9T/YO77jO37Wn/3Zn3Hx4kWemySemyT+JZJ4bpJ4bpJ4bpJ4bpJ4oIc85CG87/u+LwD/8A//wK/8yq8AYJsHksT/NLZ5fiTx321nZ4fHPvaxvPIrvzL3u++++279rd/6re/+0R/90c/hqquuuuqqq6666qqrrnp+qFx11VVXXXXV/1Cv8zqv897XXHPNg3/8x3+cF4Uknpsk/iWSeG6SeG6SeG6SeKCXeZmX4e3e7u0A+KM/+iP+6I/+iBfENg8kif+pbPP8SOI/287ODq/8yq/MYx/7WO5333333fqjP/qjn/Nbv/Vb381VV1111VVXXXXVVVdd9cJQueqqq6666qr/oV7ndV7nvZ761KfytKc9jecmiQeSxHOTxHOTxL+FJJ6bJB7oZV7mZXi7t3s7AH7lV36Ff/iHf+BfwzbPTRL/k9nmBZHEv8crv/Ir89jHPpadnR3u9yM/8iOf/du//dvfc999993KVVddddVVV1111VVXXfWioHLVVVddddVV/wO92Iu92Gu/2Iu92Gv/8A//MM9NEv8SSTw3STw3STw3Sfxrve3bvi0v+7IvC8Cv/Mqv8A//8A/8R7DNA0nifwvbvCCSeH52dnZ47GMfyyu/8itzv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666qp/LSpXXXXVVVdd9T/Q67zO67wXwJ//+Z/zQJJ4bpL4l0jiuUniuUniuUniuUnifm/7tm/Ly77sywLwoz/6o9xxxx38Z7HNc5PE/za2eaCdnR0e+9jH8iqv8irc77777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquuuurfispVV1111VVX/Q/0Oq/zOu/9q7/6q/xLJPHcJPEvkcRzk8Rzk8Rzk8T93u/93o+HPOQhAPzoj/4od9xxB//VbPPcJPG/wU033cSLvdiL8djHPpb7/cM//MNvf93Xfd17nz179hlcddVVV1111VVXXXXVVf9eVK666qqrrrrqf5h3fMd3/CyAP/uzP+OBJPFAknhuknhukvi3kMRzk8T93u/93o+HPOQhAPzoj/4od9xxB/9T2Oa5SeJ/gp2dHR772MfyYi/2Yuzs7ABw33333fpbv/Vb3/3bv/3b33PffffdylVXXXXVVVddddVVV131H4XKVVddddVVV/0P8zqv8zrv/Wd/9mdcvHiR+0niXyKJ5yaJ5yaJ5yaJf433e7/34yEPeQh7e3v88i//MrfffjsPJIn/aWzz/Ejiv8LOzg6PfexjeZVXeRXud9999936W7/1W9/9oz/6o5/DVVddddVVV1111VVXXfWfgcpVV1111VVX/Q/yOq/zOu99zTXXPPgnfuInuJ8knpsk/iWSeG6SeG6SeG6SeG6SOH78OG/3dm/HQx7yEPb29vjlX/5lbr/9dp6bbZ6bJP4nss1zk8R/lJ2dHR772MfyKq/yKtzvvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqqq6666j8Tlauuuuqqq676H+R1Xud13uupT30qT33qU3lBJPHcJPEvkcRzk8Rzk8Rzk8Tx48d5u7d7Ox7ykIewt7fHL//yL3P77bfzorLNA0nifyrbPD+SeFE99rGP5VVe5VXY2dnhfj/yIz/y2b/927/9Pffdd9+tXHXVVVddddVVV1111VX/FahcddVVV1111f8QL/ZiL/baL/ZiL/baP/zDP8z9JPFAknhuknhukvi3kMRzk8Tx48d5u7d7Ox7ykIewt7fHt33bt/HvZZsHksT/dLZ5QSSxs7PDYx/7WF7lVV6F+9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVVVf9V6Ny1VVXXXXVVf9DvM7rvM57Afz5n/85AJL4l0jiuUniuUniuUniRXH8+HE+/uM/HoDbb7+dH/3RH+U/g22emyT+N9jZ2eHFXuzFeJVXeRXud9999936W7/1W9/9oz/6o5/DVVddddVVV1111VVXXfXfhcpVV1111VVX/Q/xOq/zOu/9wz/8wwBI4rlJ4l8iiecmiecmiecmied24sQJPv7jPx6A22+/nR/90R/lv5Jtnpsk/qfY2dnhVV7lVXixF3sx7nfffffd+qM/+qOf81u/9VvfzVVXXXXVVVddddVVV131343KVVddddVVV/0P8OEf/uHfBfDUpz6V50cSz00S/xJJPDdJPDdJPLeHPvShvN/7vR8At99+Oz/6oz/K/wS2eW6S+K/0Kq/yKrzYi70YOzs73O9HfuRHPvu3f/u3v+e+++67lauuuuqqq6666qqrrrrqfwoqV1111VVXXfU/wIu92Iu99p/92Z9x8eJFJPFAknhuknhukvi3kMRze+hDH8r7vd/7AXD77bfzIz/yI9xPEv/T2Oa5SeI/0s7ODi/2Yi/Gq7zKq3C/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrqqv+JqFx11VVXXXXVf7PXeZ3Xee9rrrnmwT/xEz+BJP4lknhuknhuknhukviXPOQhD+H93u/9APj7v/97fvmXf5kHss0DSeJ/Its8N0n8a+3s7PBiL/ZivMqrvAr3u++++279rd/6re/+0R/90c/hqquuuuqqq6666qqrrvqfjMpVV1111VVX/Td7ndd5nff6sz/7M572tKfx3CTxL5HEc5PEc5PEc5PEA73sy74sb/d2bwfA3//93/PLv/zL/Ets80CS+J/KNs+PJJ7bzs4Or/Iqr8KLvdiLcb9/+Id/+O0f+ZEf+Zx/+Id/+G2uuuqqq6666qqrrrrqqv8NqFx11VVXXXXVf6MXe7EXe+0Xe7EXe+1v+qZv4rlJ4rlJ4l8iiecmiecmiQd62Zd9Wd7u7d4OgD/8wz/kD//wD/m3sM1zk8T/ZLa536u8yqvw4i/+4uzs7ABw33333fpbv/Vb3/3bv/3b33PffffdylVXXXXVVVddddVVV131vwmVq6666qqrrvpv9E7v9E6fBfC0pz2NB5LEc5PEc5PEv4UkHuh1X/d1eb3Xez0AfumXfol/+Id/4D+SbR5IEv+T7Ozs8GIv9mK86qu+Kve77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqquu+t+KylVXXXXVVVf9N3qxF3ux1/6RH/kR/iWSeG6SeG6SeG6SeGHe7u3ejpd92ZcF4Ed+5Ee4/fbb+c9mm+cmif9qOzs7vNiLvRiv+qqvyv3uu+++W3/0R3/0c37rt37ru7nqqquuuuqqq6666qqr/rejctVVV1111VX/TT78wz/8uwD+/M//nAeSxL9EEs9NEs9NEs9NEvd7u7d7O172ZV8WgB/5kR/h9ttv57+LbR5IEv9ZXuzFXoxXfdVXZWdnh/v9yI/8yGf/9m//9vfcd999t3LVVVddddVVV1111VVX/V9B5aqrrrrqqqv+m7zO67zOe//5n/85DySJ5yaJfwtJPDdJ3O/93//9echDHgLAD//wD3P77bcjif8pbPPcJPFvtbOzw4u92Ivx4i/+4uzs7ABw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVVVdd9X8Rlauuuuqqq676b/A6r/M67w3wq7/6q9xPEs9NEs9NEs9NEv8a7//+789DHvIQAH74h3+Y22+/HQDb3E8S/9PY5rlJ4oXZ2dnhxV7sxXjVV31V7nfffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVVV131fxmVq6666qqrrvpv8I7v+I6f9ed//udcvHiRF0QSz00Sz00Sz00Sz00SAO///u/PQx7yEC5dusQv/dIvcfvtt/P82OaBJPE/kW2emyR2dnZ41Vd9VV7sxV6M+9133323/uiP/ujn/NZv/dZ3c9VVV1111VVXXXXVVVf9f0Dlqquuuuqqq/6Lvc7rvM57X3PNNQ/+yZ/8Se4niX+JJJ6bJJ6bJJ6bJE6cOMHbvd3b8ZCHPIRLly7xS7/0S9x+++28qGzz3CTxP82rvuqr8mIv9mIcO3aM+/3Ij/zIZ//2b//299x33323ctVVV1111VVXXXXVVVf9f0Llqquuuuqqq/6Lvc7rvM57Xbx4kac+9akASOK5SeLfQhLPTRInTpzg7d7u7XjIQx7CpUuX+NZv/Vb+I9jmgSTx32FnZ4cXf/EX51Vf9VW533333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVVddddX/V1Suuuqqq6666r/QNddc8+AXe7EXe+0f+ZEfAUASz00Sz00Sz00SL4oTJ07wfu/3fpw4cYJLly7xrd/6rfxnsc0DSeI/087ODi/+4i/Oq77qq3K/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrqqv/vqFx11VVXXXXVf6F3fMd3/CyAP//zP+f5kcRzk8Rzk8Rzk8RzO3nyJB//8R8PwO23384P//AP81/JNs9NEv9eOzs7vNqrvRov9mIvxv3+4R/+4bd/67d+67t/67d+63u46qqrrrrqqquuuuqqq666gspVV1111VVX/Rd6ndd5nff+8z//cwAk8W8hiecmief20Ic+lPd///cH4Pbbb+eHf/iH+Z/ANg8kiRfVq77qq/JiL/ZiHDt2DID77rvv1t/6rd/67t/+7d/+nvvuu+9Wrrrqqquuuuqqq6666qqrnhOVq6666qqrrvov8jqv8zrvDfCrv/qrSOK5SeK5SeJfIonn9tCHPpT3f//3B+C2227jh3/4h7mfJP4nsc1zk8T9dnZ2ePEXf3Fe9VVflfvdd999t/7Wb/3Wd//oj/7o53DVVVddddVVV1111VVXXfWCUbnqqquuuuqq/yLv+I7v+Fl//ud/zu7uLs9NEs9NEs9NEv+ShzzkIbz/+78/ALfddhs//MM/zAPZ5oEk8T+NbY4dO8aLvdiL8Wqv9mrc77777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquuuuqqfxmVq6666qqrrvov8Dqv8zrvfc011zz4J3/yJ3lRSOK5SeK5SeKBHvKQh/ABH/ABAPz93/89v/iLv8i/xDYPJIn/TjfffDNv8iZvwrFjx7jfb/3Wb333j/7oj37OfffddytXXXXVVVddddVVV1111VUvOipXXXXVVVdd9V/gdV7ndd7rqU99Kk972tN4bpL4l0jiuUnigV72ZV+Wt3/7twfg7//+7/nFX/xF/i1s80CS+M927NgxXuzFXowXf/EX59ixYwDcd999t/7Wb/3Wd//oj/7o53DVVVddddVVV1111VVXXfVvQ+Wqq6666qqr/pNdc801D36xF3ux1/7RH/1Rnpsknpsk/rVe9mVflrd/+7cH4Bd/8Rf5+7//e/6j2OaBJPEf5dixY7zYi70Yr/Zqr8b97rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquuuuqqq67696Fy1VVXXXXVVf/J3vEd3/GzAP78z/+cB5LEc5PEc5PEc5PE/V7v9V6P13u91wPgF3/xF/n7v/97/jPZ5oEk8a917NgxXvVVX5UXf/EX53733XffrT/6oz/6Ob/1W7/13Vx11VVXXXXVVVddddVVV/3HoHLVVVddddVV/8le53Ve573//M//nH+JJJ6bJJ6bJO739m//9rzsy74sAD/0Qz/E7bffzn812zw3STw/r/qqr8qLv/iLc+zYMe73Iz/yI5/927/9299z33333cpVV1111VVXXXXVVVddddV/LCpXXXXVVVdd9Z/odV7ndd4b4Nd+7dd4IEn8SyTx3CRxv/d///fnoQ99KAA/9EM/xO23387/FLa537Fjx3jxF39xXu3VXo373Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVVV131n4fKVVddddVVV/0nesd3fMfP+vM//3MuXrzI/STx3CTxr/H+7//+PPShDwXgh37oh7jtttt4IEn8dzt27Bgv/uIvzqu92qtxv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666qqr/vNRueqqq6666qr/JK/zOq/z3tdcc82Df/Inf5L7SeK5SeK5SeK5SQLg/d///XnoQx/KpUuX+MVf/EVuu+02npttHkgS/1WOHTvGq73aq/HiL/7i3O++++679Ud/9Ec/+7d+67e+h6uuuuqqq6666qqrrrrqqv86VK666qqrrrrqP8nrvM7rvNdTn/pUnva0p/GCSOK5SeK5SeLEiRO83du9HQ996EO5dOkSv/iLv8htt93Gi8I2DySJ/2iv9mqvxou/+Itz7Ngx7vcjP/Ijn/3bv/3b33PffffdylVXXXXVVVddddVVV1111X89KlddddVVV131n+DFXuzFXvvFXuzFXvtHf/RHuZ8k/iWSeG6SOHHiBG/3dm/HQx/6UC5dusQv/uIvctttt/FvZZsHksS/xbFjx3jxF39xXu3VXo373Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVVV13134vKVVddddVVV/0neJ3XeZ33AvjzP/9zACTx3CTxojhx4gRv93Zvx0Mf+lAuXbrEN3/zN/MfzTYPJIkX5tixY7z4i784r/Zqr8b97rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquuuuqqq676n4HKVVddddVVV/0neJ3XeZ33/rVf+zUAJPHcJPHcJPHcTp48ySd8wicAcOnSJb75m7+Z/wq2eSBJANx888282qu9Grfccgv3+63f+q3v/tEf/dHPue+++27lqquuuuqqq6666qqrrrrqfxYqV1111VVXXfUf7HVe53XeC+DP//zPeX4k8dwk8dxOnjzJJ3zCJwBw22238UM/9EP8dzh27Bgv/uIvzku8xEtw7NgxAO67775bf+u3fuu7f/u3f/t77rvvvlu56qqrrrrqqquuuuqqq676n4nKVVddddVVV/0He8d3fMfP/vM//3MuXryIJP4tHvrQh/IBH/ABANx222384A/+IJL4r3Ts2DFe/MVfnFd/9Vfnfvfdd9+tv/Vbv/XdP/qjP/o5XHXVVVddddVVV1111VVX/c9H5aqrrrrqqqv+A73O67zOe19zzTUP/smf/Ekk8dwk8dwk8UAPfehD+YAP+AAAbrvtNn7wB38QANvcTxL/WY4dO8arvdqr8RIv8RLc77777rv1R3/0Rz/nt37rt76bq6666qqrrrrqqquuuuqq/z2oXHXVVVddddV/oNd5ndd5r6c+9ak8/elP57lJ4rlJ4oEe+tCH8gEf8AEA/N3f/R2/8Au/wPNjmweSxL/Xq73aq/ESL/ESHDt2jPv9yI/8yGf/9m//9vfcd999t3LVVVddddVVV1111VVXXfW/D5Wrrrrqqquu+g/yYi/2Yq/9Yi/2Yq/9oz/6ozw3STw3STzQQx/6UD7gAz4AgL/7u7/jF37hF3hR2eaBJPGiOHbsGC/+4i/Oq7/6q3O/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrqqqv+d6Ny1VVXXXXVVf9BXud1Xue9AP7iL/6Cf62Xe7mX4+3f/u0B+P3f/31+//d/n38P2zyQJB7o2LFjvPiLvziv/uqvzv3uu+++W3/rt37ru3/0R3/0c7jqqquuuuqqq6666qqrrvq/gcpVV1111VVX/Qd5ndd5nff+tV/7NZ6bJJ6bJO73eq/3erz+678+AL/wC7/A3/3d3/EfzTYAx44d49Vf/dV5iZd4Ce5333333fqjP/qjn/1bv/Vb38NVV1111VVXXXXVVVddddX/LVSuuuqqq6666j/AO77jO34WwF/8xV/wQJJ4bpK439u//dvzci/3cgD8wi/8An/3d3/Hf4ZXf/VX5yVe4iU4duwY9/uRH/mRz/7t3/7t77nvvvtu5aqrrrrqqquuuuqqq6666v8mKlddddVVV131H+B1Xud13vsv/uIvuHjxIi+MJO739m//9rzcy70cAD/4gz/Ibbfdxn+kY8eO8RIv8RK8+qu/Ove77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqquuuur/PipXXXXVVVdd9e/0Oq/zOu99zTXXPPinfuqneCBJvCAf8AEfwEMf+lAAfuAHfoDbbrsNSfxHOHbsGC/xEi/Bq7/6q3O/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrqqqv+/6By1VVXXXXVVf9Or/M6r/NeT3va03ja057G/STx3CQB8AEf8AE89KEPBeAHfuAHuO222wCwzf0k8a91yy238Oqv/urccsst3O8f/uEffvvrv/7r3+e+++67lauuuuqqq6666qqrrrrqqv9/qFx11VVXXXXVv8OLvdiLvfaLvdiLvfaP/uiPcj9JPDdJAHzAB3wAD33oQ7l06RI///M/z2233cbzY5sHksTzc+zYMV7iJV6Cl3iJl+DYsWMA3Hfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV1111VVXXfX/F5Wrrrrqqquu+nd4ndd5nfcC+Iu/+AtemBMnTvD2b//2PPShD+XSpUv8/M//PLfddhsvKts80PHjx3mJl3gJXv3VX5373Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVVV111FQCVq6666qqrrvp3eJ3XeZ33/tEf/VHuJ4nndvLkSd7+7d+ehz70oVy6dIkf+IEf4NKlS/xbHDt2jNd4jdfgJV7iJbjffffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddVVV1111VVXPRCVq6666qqrrvo3+vAP//DvAnja054GgCSe28mTJ3n7t397HvrQh3Lp0iW+8Ru/kX+LV3/1V+clX/IlOXbsGPf7kR/5kc/+7d/+7e+57777buWqq6666qqrrrrqqquuuuqq54fKVVddddVVV/0bvdiLvdhr/8Vf/AUXL15EEs/t5MmTfOInfiIAt912Gz/wAz/Av8axY8d4iZd4CV7jNV6D+9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVVVddddW/hMpVV1111VVX/Ru8zuu8zntfc801D/7O7/xOnp+HPvShfOAHfiAAt912Gz/wAz/Ai+rYsWO8xEu8BK/xGq/B/e67775bf+u3fuu7f/RHf/RzuOqqq6666qqrrrrqqquuuupFReWqq6666qqr/g1e53Ve573+4i/+gosXLyKJB3roQx/KB37gBwLwjGc8gx/4gR9AEv+SY8eO8Rqv8Rq8xEu8BPe77777bv3RH/3Rz/6t3/qt7+Gqq6666qqrrrrqqquuuuqqfy0qV1111VVXXfWv9GIv9mKv/WIv9mKv/S3f8i1I4oEe+tCH8oEf+IEAPOMZz+AHfuAHALDNA0nifq/+6q/OS77kS3Ls2DHu9yM/8iOf/du//dvfc999993KVVddddVVV1111VVXXXXVVf9WVK666qqrrrrqX+md3umdPgvgaU97GpK430Mf+lA+8AM/EIC//du/5ed//ud5QXZ2dnjJl3xJXuM1XoP73Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVVV1111X8EKlddddVVV131r/RiL/Zir/2jP/qjSOJ+L/dyL8c7vMM7APC3f/u3/PzP/zzPz7Fjx3jJl3xJXuM1XoP73Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddVVV1111X8kKlddddVVV131r/DhH/7h3wXwl3/5l9zv5V7u5XiHd3gHAH7+53+ev/3bv+W5HTt2jNd4jdfgJV/yJbnfP/zDP/z2j/zIj3zOP/zDP/w2V1111VVXXXXVVVddddVVV/1noHLVVVddddVV/wqv8zqv895/8Rd/wf1e//Vfn9d//dcH4Od//uf527/9Wx7oNV7jNXjJl3xJjh07BsB9991362/91m9992//9m9/z3333XcrV1111VVXXXXVVVddddVVV/1nonLVVVddddVVL6LXeZ3XeS+AX//1XwfgHd7hHXi5l3s5AL7/+7+f2267DYBjx47xki/5krzGa7wG97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq6666qr/KlSuuuqqq6666kX0ju/4jp/9F3/xF1y8eJEP/MAP5KEPfSgA3//9389tt93GsWPHeMmXfEle4zVeg/vdd999t/7oj/7o5/zWb/3Wd3PVVVddddVVV1111VVXXXXVfzUqV1111VVXXfUieJ3XeZ33vuaaax780z/903zgB34gD33oQwH4/u//fo4fP85bvMVbcOzYMe73Iz/yI5/927/9299z33333cpVV1111VVXXXXVVVddddVV/12oXHXVVVddddWL4HVe53Xe6+LFi7z+678+D33oQwF4xjOewVu8xVtw7NgxAO67775bf+u3fuu7f/RHf/RzuOqqq6666qqrrrrqqquuuup/AipXXXXVVVdd9S+45pprHvxiL/Zirw1w4sQJ7vegBz0IgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666qqrrvqfhMpVV1111VVX/Qve8R3f8bN4Pu67775bf/RHf/Szf+u3fut7uOqqq6666qqrrrrqqquuuup/IipXXXXVVVdd9S94ndd5nffmAX7kR37ks3/7t3/7e+67775bueqqq6666qqrrrrqqquuuup/MvSgBz2Iq6666qqrrnphrrnmmgd/zud8zm/91m/91nf/6I/+6Odw1VVXXXXVVVddddVVV1111f8W6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/AhLvJ18DdoOGAAAAAElFTkSuQmCC) ```js -exampleSketch = startSketchOn('-XZ') +exampleSketch = startSketchOn(-XZ) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> line(end = [0, 10]) diff --git a/docs/kcl/const_E.md b/docs/kcl/const_E.md deleted file mode 100644 index 33857f791b..0000000000 --- a/docs/kcl/const_E.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "E" -excerpt: "The value of Euler’s number `e`." -layout: manual ---- - -The value of Euler’s number `e`. - - - -```js -E: number = 2.71828182845904523536028747135266250_ -``` - -### Examples - -```js -exampleSketch = startSketchOn("XZ") - |> startProfileAt([0, 0], %) - |> angledLine({ - angle = 30, - length = 2 * E ^ 2, - }, %) - |> yLineTo(0, %) - |> close() - -example = extrude(exampleSketch, length = 10) -``` - -![Rendered example of E 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADq+klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/inL8+HGuuuqqq6666qqrrrrqqqv+t7vmmmse/D7v8z5fdXh4eEkSh4eHu1x11VVXXXXVVehBD3oQV1111VVXXXXVVVddddVV/1tdc801D37t137t93qnd3qnz+aZ7rvvvls/5EM+5CFcddVVV1111VWU48ePc9VVV1111VVXXXXVVVdd9b/NNddc8+A3e7M3+6hP+qRP+ukXf/EXf22A3/zN3wTgpptuOn7NNdc8+E//9E9/hquuuuqqq676/41y/Phxrrrqqquuuuqqq6666qqr/jd5x3d8x8/6pE/6pJ9+8Rd/8dcG+M3f/E1+4id+gsc//vE8/elP51Vf9VV5yEMe8tIA//AP//A7XHXVVVddddX/X5Tjx49z1VVXXXXVVVddddVVV131v8E7vuM7ftaHf/iHf/crvdIrvTXA05/+dL7jO76Dxz/+8axWKwBWqxUXL17ksY99LNdcc82Db7311r85e/bsrVx11VVXXXXV/0/oQQ96EFddddVVV1111VVXXXXVVf+TvdiLvdhrf/iHf/h3XXPNNQ8GuHjxIj/5kz/J05/+dJ6bJABe53Veh9d93dflvvvuu/VDPuRDHsJVV1111VVX/f9EOX78OFddddVVV1111VVXXXXVVf8TXXPNNQ/+pE/6pJ96p3d6p8/e3Nw8fvHiRX7xF3+Rn/zJn2R3d5cHkoQk7re7u8v111/PTTfddPyaa6558J/+6Z/+DFddddVVV131/w/l+PHjXHXVVVddddVVV1111VVX/U9yzTXXPPh93ud9vurDP/zDv/uaa6558MWLF/mjP/ojfvAHf5B77rmHB5KEJJ7barXi6U9/Oo997GN5zGMe89IA//AP//A7XHXVVVddddX/L5Tjx49z1VVXXXXVVVddddVVV131P8E111zz4Dd7szf7qE/6pE/66Yc85CEvDfCbv/mb/OAP/iBPf/rTeW6SeGFWqxX33HMPL/MyL8M111zz4FtvvfVvzp49eytX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QhL/FpL413rrt35rXvqlX5r77rvv1g/5kA95CFddddVVV131vxPl+PHjXHXVVVddddVVV1111VX/f11zzTUPfp/3eZ+v+vAP//Dvvuaaax588eJF/uiP/ogf/MEf5J577uEFkYQk/rUk8a8lCUn8a0lCEv8W9957L49+9KM5derU8WuuuebBf/qnf/ozXHXVVVddddX/PuhBD3oQV1111VVXXXXVVVddddX/P9dcc82DX/u1X/u93umd3umzAS5evMhf/dVf8Zu/+Zv8SyTxryWJfwtJ/FtI4t9CEvc7fvw4H/VRHwXA13/917/Pb/3Wb303V1111VVXXfW/C3rQgx7EVVddddVVV1111VVXXfX/xzXXXPPg137t136vd3qnd/psnuk3f/M3+c3f/E3+JZL415LEv4Uk/i0k8W8hiefnpV/6pXmrt3or7rvvvls/67M+63Xuu+++W7nqqquuuuqq/z3Qgx70IK666qqrrrrqqquuuuqq/x/e8R3f8bPe6Z3e6bN5pt/8zd/kL//yL9nd3eWFkcS/hST+tSTxbyGJfwtJ/Eve6q3eipd+6Zfmvvvuu/VDPuRDHsJVV1111VVX/e9BOX78OFddddVVV1111VVXXXXV/23v+I7v+Fmf+7mf+9sv/uIv/toAT3/60/mO7/gOHv/4x7NarXhhJPGvJQlJ/GtIQhL/WpKQxL+WJCTxorj33nt59KMfzalTp45fc801D/7TP/3Tn+Gqq6666qqr/negHD9+nKuuuuqqq6666qqrrrrq/6YXe7EXe+3P/dzP/a1XeqVXemuAixcv8oM/+IP85m/+JqvVihdGEpL415CEJP61JPFvIYl/C0n8a6xWK574xCfyyq/8yjzkIQ956bNnzz7j1ltv/Wuuuuqqq6666n8+9KAHPYirrrrqqquuuuqqq6666v+Wa6655sEf/uEf/l0v9mIv9toAFy9e5Dd/8zf5q7/6K/4lkvjXksS/hST+LSTxbyGJfwtJALzUS70Ub/VWb8V9991362d91me9zn333XcrV1111VVXXfU/G3rQgx7EVVddddVVV1111VVXXfV/wzXXXPPgd3zHd/ys13md13lvgIsXL/JXf/VX/OZv/iYvCkn8a0niX0sS/xaS+LeQxL+VJB7ord7qrXipl3op7rvvvls/5EM+5CFcddVVV1111f9slOPHj3PV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rbfyopDEi0ISLypJvKgk8aKSxItKEi8qSbyoJPH8vPqrvzqv8Rqvwf329vb4lV/5Fe644w7+L7DNv5UkrnpOtrnqX882/5vY5n8S2/x3ss1/lptvvhmA++6771auuuqqq6666l+HylVXXXXVVVf9L/I6r/M67wXwV3/1V7woJPGikMSLShIvKkm8KCTxryGJF5UkXlSSeG6v/uqvzmu8xmtwv729PX7lV36FO+64g6uusM1VV/1r2OZ/I9v8T2Ob/062+a909uzZZ3DVVVddddVV/zpUrrrqqquuuup/kRd7sRd7bYBbb72VF0YSLypJvKgk8aKSxItCEv8aknhRSeJFIYnn9uqv/uq8xmu8Bvfb29vjl3/5l7njjjuQxFVXXfUvs83/Zrb5n8Y2/91s81/t5ptvBuAf/uEffpurrrrqqquu+tehctVVV1111VX/S7zO67zOewP89V//Nbu7u7wgknhRSeJFJYkXhSReVJL415DEi0ISLypJPNCrv/qr8xqv8Rrcb29vj1/+5V/mjjvu4H62eUEkcdVV/5/Y5v8C2/xPZZv/brb572AbgGPHjgFw33333cpVV1111VVX/etQueqqq6666qr/Jd7xHd/xswD+6q/+ihdEEi8qSbwoJPGiksSLShIvKkm8qCTxopLE/V791V+d13iN1+B+e3t7/OEf/iGPe9zj+NewzQsiiauu+t/INv/X2OZ/Ktv8T2Cb/w62ueqqq6666qr/QFSuuuqqq6666n+B13md13nva6655sEAt956K8+PJF4UknhRSeJFJYkXlSReVJJ4UUniRSUJgFd/9VfnNV7jNbjf3t4ef/RHf8Q//MM/8B/NNi+MJK666r+Lbf6vss3/ZLb5n8I2/x1s84LcfPPNAPzDP/zDb3PVVVddddVV/3pUrrrqqquuuup/gRd7sRd7LYDf+q3f4vmRxItCEi8qSbyoJPGiksSLShIvKkm8qCTx6q/+6rzGa7wG99vb2+OP/uiP+Id/+Af+u9jmhZHEVVf9W9jm/wvb/G9gm/8JbPPfxTYvimPHjgFw33333cpVV1111VVX/etRueqqq6666qr/BV7ndV7nvQH++q//mgeSxItKEi8qSbyoJPGikMS/hiReVJJ4UUji1V/91XmN13gN7re3t8cf/dEf8Q//8A/8T2ebF4Ukrvr/wzb/X9nmfwvb/E9h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STzTfffddytXXXXVVVdd9R8PPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KfwQul2P7hK2iWwAAAABJRU5ErkJggg==) - - diff --git a/docs/kcl/const_PI.md b/docs/kcl/const_PI.md deleted file mode 100644 index 4ae14b6f2d..0000000000 --- a/docs/kcl/const_PI.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "PI" -excerpt: "The value of `pi`, Archimedes’ constant (π)." -layout: manual ---- - -The value of `pi`, Archimedes’ constant (π). - - - -```js -PI: number = 3.14159265358979323846264338327950288_ -``` - -### Examples - -```js -circumference = 70 - -exampleSketch = startSketchOn("XZ") - |> circle({ center = [0, 0], radius = circumference/ (2 * PI) }, %) - -example = extrude(exampleSketch, length = 5) -``` - -![Rendered example of PI 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE8jklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXfV/3jXXXPNgno/77rvvVq666qqrrrrqqquu+r+MylVXXXXVVVddddVV/6Ndc801Dz5z5syDAa655poHnzlz5kEA11xzzYOvueaaB/NMZ86ceTDANddc82D+He67775beaazZ8/eCnDffffdCnDffffdevbs2WcA3HfffbeePXv21vvuu+9Wrrrqqquuuuqqq676nwo96EEP4qqrrrrqqquuuuqq/x7XXHPNgwFe7MVe7LXPnDnzIIAXf/EXf22AF3uxF3ttXoDd3V0Adnd32d3d5X4XL17kue3u7vKiOH78OAAnTpzgfsePHwfg+PHjABw/fpzn57777rsV4OzZs7fed999t/7DP/zD7wDcd999t/7DP/zDb3PVVVddddVVV1111X8X9KAHPYirrrrqqquuuuqqq/5zXXPNNQ8+c+bMg1/sxV7stQBe/MVf/LVf7MVe7LV5Lru7u+zu7rK7u8vFixcBuPXWWwHY3d1ld3cXAEn8e9nm3+L48eMAHD9+nOPHjwPw4Ac/GIDjx49z4sQJjh8/zgPdd999t549e/bW++6779Z/+Id/+J377rvv1rNnz95633333cpVV1111VVXXXXVVf+Z0IMe9CCuuuqqq6666qqrrvqPc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+YBdnd32d3d5elPfzoAt956K7u7u+zu7nI/Sfx3s82/lm3ud/z4cY4fP86JEyd48IMfzPHjxzlx4gTHjx/nfvfdd9+tZ8+evfW+++679R/+4R9+57777rv1H/7hH36bq6666qqrrrrqqqv+o6AHPehBXHXVVVddddVVV131b3PNNdc8+MyZMw9+sRd7sdd68Rd/8dd+sRd7sdfmmXZ3d9nd3eXpT386ALfeeiu33norDySJ/01s869hm+d2/PhxAB7ykIfw4Ac/mOPHj/OQhzyE+9133323nj179tb77rvv1n/4h3/4nd/6rd/6bq666qqrrrrqqquu+rdCD3rQg7jqqquuuuqqq6666kVzzTXXPPi1X/u13wvgdV7ndd77mmuueTDA7u4uu7u7PP3pT+fWW2/l1ltv5fmRxH8kSfxr2OY/km1eFLZ5YWxz/PhxHvKQh/CQhzyE48eP85CHPIT73Xfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb3PVVVddddVVV1111YsCPehBD+Kqq6666qqrrrrqqufvmmuuefCLvdiLvfaZM2ce9E7v9E6fzTPt7u7y9Kc/nd3dXW699VZuvfVWXhBJ/FtI4r+Dbf6tbPMvsc0LY5v7HT9+nIc85CE85CEP4fjx4zzkIQ8B4L777rv1H/7hH377H/7hH37nt37rt76bq6666qqrrrrq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RxLPTRLPjySemySemySemyQeSBIPJInnJokHksQDSeJ+knggSdxPEg8kiftJ4oEkcT9J3E8S95MEgCTuJ4n7SQJAEveTBIAk7icJAEncTxIAkgCQBIAkACRxP0kASAJAEgCSAJCEJAAkASAJAEkASEISAJIAmM/nXHvttdxyyy080I/8yI989m//9m9/z3333XcrV1111VVXXXXVVf+zoAc96EFcddVVV1111VVX/U91zTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuvPOO3n84x/P4x//eB5IEi+IJJ4fSTw/knhuknh+JPHcJPHcJPHcJPFAknggSTw3STyQJB5IEveTxANJ4n6SeCBJ3E8S95PE/SRxP0ncTxL3k8T9JHE/SQBI4n6SAJDE/SQBIAkASdxPEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJADzoQQ/i+PHjHDt2jPvdd999t/7Wb/3Wd//oj/7o53DVVVddddVVV131Pxd60IMexFVXXXXVVVddddX/Btdcc82D3/Ed3/GzXud1Xue9eaa9vT3uvPNOHv/4x3PnnXciiRdEEs+PJJ4fSTw/knhuknhuknhuknhuknggSTyQJJ6bJB5IEveTxANJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJ4n7SeJ+kgCQxP0kcT9JAEgCQBL3kwSAJO4nCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkgCQxHw+57rrruNBD3oQD/QjP/Ijn/0P//APv/MP//APv81VV1111VVXXXXV/3zoQQ96EFddddVVV1111VX/m1xzzTUPfrEXe7HXfrEXe7HXfp3XeZ334pn29vZ4whOewJ133smdd97Jc5PE8yOJ50cSz48knpsknpsknpsknpskHkgSDySJ5yaJB5LE/STxQJJ4IEncTxIPJIn7SeJ+krifJO4niftJ4n6SuJ8kACRxP0kASOJ+kgCQxP0kASAJAEkASOJ+kgCQBIAkACQBIAkASQBIAkASkgCQBMBiseC6667jwQ9+MACr1Yr5fM59991362/91m9994/+6I9+DlddddVVV1111VX/u6AHPehBXHXVVVddddVVV/1vdc011zz4tV/7td/rdV7ndd77mmuueTDPtLe3xxOe8ATuvPNO7rzzTgAk8YJI4rlJ4vmRxHOTxHOTxHOTxHOT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HkgSDySJB5LE/STxQJK4nyQeSBL3k8T9JHE/SdxPEveTxP0kASCJ+0kCYGNjg62tLTY2Ntjc3GRjY4ONjQ3OnDnDC3Lffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVddddVVV1111VX/FuhBD3oQV1111VVXXXXVVVf9x7jmmmseDPBiL/Zir/1iL/Zir3XNNdc8+MyZMw++5pprHswLcHBwgG0ODg7Y398H4J577uHg4ACA/f19Dg8PeSBJPJAk7ieJB5LE/STxQJK4nyTuJ4n7SeJ+krifJDY3NwHY3NzkmmuuAWBzc5PNzU02NjbY3NzkhbnvvvtuPXv27K1///d//9sA//AP//A7//AP//DbXHXVVVddddVVV131HwU96EEP4qqrrrrqqquuuuqq/1zXXHPNgwFe7MVe7LXOnDnz4GuuuebB11xzzYPPnDnz4GuuuebBvAgODg6438HBAQcHB9zv4OAAgIODAyRxv4ODAx5IEveTxP02NzeRBMDm5iaSuN/W1hYAm5ubAGxubrK5ucmL6r777rsV4B/+4R9++7777rv17Nmzt953333P+Id/+Iff5qqrrrrqqquuuuqq/2zoQQ96EFddddVVV1111VVX/fc5c+bMgyTpzJkzD77mmmsefObMmQddc801D77mmmseDHDmzJkHX3PNNQ++7777br3mmmsezP8g9913360AZ8+evfW+++679b777rsV4B/+4R9+5+zZs7fed999t3LVVVddddVVV1111X8n9KAHPYirrrrqqquuuuqqq/7nO3PmzIMkCeDMmTMPvuaaax4MGNCZM2ceBHDNNdc8mAe45pprHswLcd999916zTXXPPi+++67lWe67777buUBzp49eyug++6771aAs2fP3nrffffdylVXXXXVVVddddVV/xugBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hHGC1SPkIqmNIAAAAASUVORK5CYII=) - - diff --git a/docs/kcl/const_QUARTER_TURN.md b/docs/kcl/const_QUARTER_TURN.md deleted file mode 100644 index 73972db5d7..0000000000 --- a/docs/kcl/const_QUARTER_TURN.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "QUARTER_TURN" -excerpt: "" -layout: manual ---- - - - - - -```js -QUARTER_TURN: number(deg) = 90deg -``` - - diff --git a/docs/kcl/const_TAU.md b/docs/kcl/const_TAU.md deleted file mode 100644 index dccea43ab2..0000000000 --- a/docs/kcl/const_TAU.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "TAU" -excerpt: "The value of `tau`, the full circle constant (τ). Equal to 2π." -layout: manual ---- - -The value of `tau`, the full circle constant (τ). Equal to 2π. - - - -```js -TAU: number = 6.28318530717958647692528676655900577_ -``` - -### Examples - -```js -exampleSketch = startSketchOn("XZ") - |> startProfileAt([0, 0], %) - |> angledLine({ - angle = 50, - length = 10 * TAU, - }, %) - |> yLineTo(0, %) - |> close() - -example = extrude(exampleSketch, length = 5) -``` - -![Rendered example of TAU 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD0aklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666v+oF3uxF3vtF3uxF3uta6655sFf//Vf/z5cddVVV1111f8/6EEPehBXXXXVVVddddVVV1111VX/11xzzTUP/qZv+qan80z33XffrR/yIR/yEK666qqrrrrq/xeCq6666qqrrrrqqquuuuqq/2OuueaaB3/TN33T05/+9KfzlV/5lezu7nLNNdc8+Ju+6ZuezlVXXXXVVVf9/0Jw1VVXXXXVVVddddVVV131f8g111zz4A//8A//rqc//el813d9F7u7u3znd34nu7u7XHPNNQ/+pm/6pqdz1VVXXXXVVf9/EFx11VVXXXXVVVddddVVV/0f8uEf/uHftbGx8drf9V3fxf12d3f5ru/6LnZ3d7nmmmse/E3f9E1P56qrrrrqqqv+fyC46qqrrrrqqquuuuqqq676P+JzP/dzf+vGG2987e/6ru/igSSxu7vLd33Xd7G7u8s111zz4G/6pm96OlddddVVV131fx/BVVddddVVV1111VVXXXXV/wGf+7mf+1s33njja3/lV34l95OEJO63u7vLd3/3d7O7u8s111zz4G/6pm96OlddddVVV131fxvBVVddddVVV1111VVXXXXV/3If/uEf/l033njja//kT/4k95PEc5PE7u4u3/3d383u7i7XXHPNg7/pm77p6Vx11VVXXXXV/10EV1111VVXXXXVVVddddVV/4t9+Id/+He9zuu8znv/5E/+JLfeeisAknhukrjf7u4u3/M938Pu7i7XXHPNg7/pm77p6Vx11VVXXXXV/00EV1111VVXXXXVVVddddVV/0u9zuu8znu/zuu8znt/53d+J7feeisAknggSUjigSSxu7vL93zP97C7u8s111zz4G/6pm96OlddddVVV131fw/BVVddddVVV1111VVXXXXV/0Iv9mIv9tof/uEf/l3f+Z3fya233gqAJB5IEs9NEvfb3d3le77ne7jfNddc82Cuuuqqq6666v8Wgquuuuqqq6666qqrrrrqqv9lXuzFXuy1P/dzP/e3vvM7v5Nbb70VSUjigSTx3CTxQJJ47dd+bQCuueaaB7/2a7/2e3HVVVddddVV/7dQueqqq6666qqrrrrqqquu+l/kxV7sxV77cz/3c3/rp37qp7j11luRxHOTxANJ4rlJ4rVe67V4qZd6Ke539uzZZ3DVVVddddVV/7cQXHXVVVddddVVV1111VVX/S/xYi/2Yq/9uZ/7ub/1W7/1W/zVX/0VknggSUjigSTx3CTxUi/1UrzWa70WAEdHR1x11VVXXXXV/1EEV1111VVXXXXVVVddddVV/wtcc801D/7cz/3c33r605/Ob/3WbyGJB5LEc5PEc5PEgx70IN7qrd4KgD/4gz/gfv/wD//w21x11VVXXXXV/y1Urrrqqquuuuqqq6666qqr/oe75pprHvzhH/7h3/X0pz+d7/qu70ISDySJ5yaJB5IEwIMe9CDe673eC4C/+qu/4vz581x11VVXXXXV/2FUrrrqqquuuuqqq6666qqr/of78A//8O/a2Nh47e/+7u9GEg8kiQeSxHOTBMCDHvQg3uu93guAJz7xidx+++3YZmNjA4D77rvvVq666qqrrrrq/xYqV1111VVXXXXVVVddddVV/4N97ud+7m9tbGy89nd/93fz3CTxQJJ4bpIAeNCDHsR7vdd7AXD77bfzxCc+EdtcddVVV1111f9xBFddddVVV1111VVXXXXVVf9Dfe7nfu5v3Xjjja/93d/93TyQJCTxQJJ4bpIAOH78OO/1Xu8FwLlz5/irv/orbAOwsbEBwH333XcrV1111VVXXfV/D5Wrrrrqqquuuuqqq6666qr/gT73cz/3t2688cbX/q7v+i4eSBLPTRIPJIn7HT9+nI/8yI8E4Ny5c/zhH/4htrnf6dOnATh79uytXHXVVVddddX/PVSuuuqqq6666qqrrrrqqqv+h/nwD//w77rxxhtf+6d+6qfY3d3lfpJ4IEk8N0nc7/jx47zlW74lAOfOneMP//APsc0D2Qbgvvvuu5Wrrrrqqquu+r+H4Kqrrrrqqquuuuqqq6666n+Qd3zHd/ys13md13nvn/qpn+LWW2/lfpJ4IEk8N0k80Fu+5Vvy4Ac/mHPnzvGHf/iH2OaBbLOxsQHAfffddytXXXXVVVdd9X8Plauuuuqqq6666qqrrrrqqv8hXud1Xue93+md3umzv+u7votbb70VAEk8N0k8kCSe23u913vxoAc9iKOjI/7wD/8Q2zyQbQA2NjYAOHv27DO46qqrrrrqqv97qFx11VVXXXXVVVddddVVV/0P8GIv9mKv/eEf/uHf9V3f9V3ceuutAEjiuUnigSTx3N7rvd6LBz3oQRwdHfHrv/7r2OaBbHPVVVddddVV/09Queqqq6666qqrrrrqqquu+m/2Yi/2Yq/9uZ/7ub/1Uz/1U9x6660ASOKBJPHcJPHc3uu93osHPehBHB0d8Vd/9VfY5oFs80AbGxsA3Hfffbdy1VVXXXXVVf/3ULnqqquuuuqqq6666qqrrvpv9GIv9mKv/bmf+7m/9Vu/9Vv89V//NQCSeCBJPDdJPJAk3vIt35IHPehBAPzVX/0V586d44Fs89w2NjYAOHv27K1cddVVV1111f89VK666qqrrrrqqquuuuqqq/6bXHPNNQ/+3M/93N/667/+a377t38bAEk8kCSemyQeSBJv+ZZvyUu91EsB8Ad/8AecO3eOB7LNc7PNxsYGV1111VVXXfV/GJWrrrrqqquuuuqqq6666qr/Btdcc82Dv+mbvunpt956Kz/1Uz8FgCQeSBIPJInnJomXeqmX4qVe6qUA+IM/+APOnTvHA9nmudnmge67775bueqqq6666qr/e6hcddVVV1111VVXXXXVVVf9F7vmmmse/OEf/uHfdeutt/Jd3/VdSOK5SeKBJPHcJPGgBz2It3zLtwTgD/7gDzh37hwPZJvnZhuAjY0NAO67775bueqqq6666qr/m6hcddVVV1111VVXXXXVVVf9F/vwD//w79rc3Hzt7/qu70ISDySJ5yaJB5IEwIMe9CDe8z3fE4C/+qu/4ty5c/xLbHO/jY0NAM6ePXsrV1111VVXXfV/E8FVV1111VVXXXXVVVddddV/oc/93M/9rRtvvPG1v+u7vgtJPJAknpskHkgSAA960IN4z/d8TwCe+MQnctttt/FAtrHNA9nmgTY2NgC47777buWqq6666qqr/m+ictVVV1111VVXXXXVVVdd9V/kcz/3c3/rxhtvfO2v+qqvQhIPJIkHksRzkwTAgx70IN7zPd8TgNtvv50nPOEJPJBtnpttHsg2V1111VVXXfX/AJWrrrrqqquuuuqqq6666qr/Ap/7uZ/7WzfeeONr/9RP/RSSeCBJPJAknpskAI4fP857vud7AnDu3Dn+8i//kgeyzXOzzQPZBmBjYwOA++6771auuuqqq6666v8mgquuuuqqq6666qqrrrrqqv9kH/7hH/5dL/ZiL/baP/3TP80znvEMHkgSDySJB5KEJACOHz/OR3zERwBw7tw5/uAP/oAHss1zs80D2eZ+GxsbAJw9e/YZXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+E73jO77jZ73O67zOe3/3d383t956K/eTxHOTxANJ4n7Hjx/nLd/yLQE4d+4cf/AHf8AD2ea52eaBbHPVVVddddVV/89Queqqq6666qqrrrrqqquu+k/yYi/2Yq/9Tu/0Tp/93d/93dx6663cTxLPTRIPJIkHesu3fEse9KAHce7cOf7gD/6AB7LNc7PNA9nmuZ05cwaAf/iHf/htrrrqqquuuur/JipXXXXVVVddddVVV1111VX/CV7sxV7stT/3cz/3t777u7+bW2+9lftJ4oEk8dwk8UDv+Z7vyYMe9CCOjo74gz/4Ax7INs/NNg9km+dmm6uuuuqqq676f4DKVVddddVVV1111VVXXXXVf7AXe7EXe+3P/dzP/a2f/umf5tZbb+V+knggSTw3STzQe77ne/KgBz2Io6Mjfu3Xfo0Hss1zs80D2ea52QZgY2MDgPvuu+9Wrrrqqquuuur/JipXXXXVVVddddVVV1111VX/gV7sxV7stT/3cz/3t377t3+bv/7rv+Z+knggSTyQJJ7be77ne/KgBz2Io6Mj/uqv/ooHss1zs80D2ea52eaqq6666qqr/h+hctVVV1111VVXXXXVVVdd9R/kmmuuefDnfu7n/tZf//Vf89u//dvcTxIPJIkHksRze8/3fE8e9KAHAfBXf/VXnDt3jvvZ5rnZ5oFs89xsc78zZ84A8A//8A+/zVVXXXXVVVf930Xlqquuuuqqq6666qqrrrrqP8A111zz4M/5nM/5rVtvvZWf/umfBkASz00SDySJB5LEW7zFW/CgBz0IgD/4gz/g3Llz3M82z802D2Sb52abB1osFgDcd999t3LVVVddddVV/3dRueqqq6666qqrrrrqqquu+ne65pprHvzhH/7h33V0dPTg7/7u7wZAEg8kiecmiQeSxGu+5mvyUi/1UgD8wR/8AefOneN+tnkg2zw32zw32zyQba666qqrrrrq/wkqV1111VVXXXXVVVddddVV/04f/uEf/l2bm5uv/d3f/d0ASOKBJPFAknhuknjJl3xJXvM1XxOAP/iDP+DcuXPczzYPZJvnZpvnZpsHsg3A5uYmAPfdd9+tXHXVVVddddX/XQRXXXXVVVddddVVV1111VX/Dp/7uZ/7WzfeeONrf/d3fzcAknggSTyQJJ6bJB70oAfxlm/5lgD81V/9FefOneN+tnkg2zw32zw32zyQbe63sbEBwNmzZ5/BVVddddVVV/3fReWqq6666qqrrrrqqquuuurf6HM/93N/68Ybb3ztr/7qrwZAEg8kiQeSxANJAuBBD3oQ7/Ee7wHAX/3VX3HbbbdxP9s8kG2em22em20eyDZXXXXVVVdd9f8Qlauuuuqqq6666qqrrrrqqn+DD//wD/+uG2+88bV/+qd/GgBJPJAkHkgSDyQJgAc96EG8x3u8BwC33XYbt912GwC2eW62eW62eSDbPDfbPLfNzU0A7rvvvlu56qqrrrrqqv+7CK666qqrrrrqqquuuuqqq/6V3vEd3/GzXud1Xue9f/qnf5pnPOMZSOJ+kpDEA0nigSQBcPz4cd7jPd4DgNtuu42/+qu/AsA2z802z802D2Sb52ab52abjY0NAM6ePXsrV1111VVXXfV/F5Wrrrrqqquuuuqqq6666qp/hdd5ndd573d6p3f67O/+7u/mGc94Bg8kiQeSxHOTBMDx48f58A//cADOnTvHX/3VXwFgm+dmm+dmmweyzXOzzXOzDcDm5iYA9913361cddVVV1111f9dVK666qqrrrrqqquuuuqqq15EL/ZiL/baH/7hH/5d3/3d380znvEMHkgSDySJ5yYJgOPHj/Pu7/7uAJw7d44/+IM/AMA2z802D2Sb52ab52ab52abq6666qqrrvp/hspVV1111VVXXXXVVVddddWL4MVe7MVe+3M/93N/67u/+7t5xjOewQNJ4oEk8UCSuN/x48d5i7d4C44fP865c+f4gz/4AwBs89xs80C2eW62eW62eW62ud/m5iYA9913361cddVVV1111f9tVK666qqrrrrqqquuuuqqq/4FL/ZiL/ban/u5n/tbP/3TP80znvEMHkgSDySJB5LEA73FW7wFD3rQgzg6OuIP/uAPALDNA9nmudnmudnmudnmudnmgTY2NgA4e/bsrVx11VVXXXXV/21Urrrqqquuuuqqq6666qqrXohrrrnmwZ/7uZ/7W3/913/N3/zN3/BAknggSTyQJB7oPd7jPXjQgx7E0dERv/Zrv4ZtnpttnpttnpttnpttnpttntvGxgYA9913361cddVVV1111f9tVK666qqrrrrqqquuuuqqq16Aa6655sHf9E3f9PRbb72Vn/mZn+GBJPFAknggSTzQe7zHe/CgBz2Io6Mj/uqv/grbPDfbPDfbPDfbPDfbPDfbPDfbXHXVVVddddX/I1Suuuqqq6666qqrrrrqqquej2uuuebBH/7hH/5dt956K9/zPd/D/STxQJJ4bpJ4oPd4j/fgQQ96EAB/9Vd/xdmzZ3lutnlutnlutnlutnlutnlutgHY3NwE4L777ruVq6666qqrrvq/jcpVV1111VVXXXXVVVddddXz8eEf/uHftbm5+drf8z3fw/0k8UCSeCBJPLe3fMu35EEPehAAf/AHf8DZs2d5brZ5brZ5INs8N9s8N9s8N9s80ObmJgBnz559BlddddVVV131fxuVq6666qqrrrrqqquuuuqq5/K5n/u5v7W5ufna3/M938P9JPFAknggSTy313zN1+QlX/IlAfj93/99zp07xwPZ5rnZ5rnZ5rnZ5rnZ5rnZ5rltbGwAcN99993KVVddddVVV/3fRnDVVVddddVVV1111VVXXfUAn/u5n/tbN95442t/z/d8D/eTxANJ4oEk8dxe6qVeitd8zdcE4Pd///c5d+4cD2Sb52ab52ab52ab52ab52ab52abzc1NAM6ePXsrV1111VVXXfV/G5Wrrrrqqquuuuqqq6666qpn+tzP/dzfuvHGG1/7e77ne7ifJB5IEg8kiQeSxIMe9CDe4i3eAoDf//3f59y5czyQbZ6bbZ6bbZ6bbZ6bbZ6bbZ6bba666qqrrrrq/xmCq6666qqrrrrqqquuuuoq4MM//MO/68Ve7MVe+2d+5mfY3d0FQBIPJIkHksQDSeJBD3oQ7/7u7w7AX/7lX3Lu3DkeyDbPzTbPzTbPzTbPzTbPzTbPzTb329zcBOC+++67lauuuuqqq676v43KVVddddVVV1111VVXXfX/3ju+4zt+1uu8zuu89/d8z/dw6623AiCJ+0nigSTx3CTxoAc9iHd/93cH4AlPeAK33XYb97PNc7PN82Ob52ab52ab52ab52ab+21ubgJw33333cpVV1111VVX/d9H5aqrrrrqqquuuuqqq676f+11Xud13vud3umdPvt7vud7uPXWW5HEA0nigSTx3CTxoAc9iHd/93cH4LbbbuMJT3gC97PNc7PNc7PNc7PN82Ob52ab52abB9rc3ATg7Nmzt3LVVVddddVV//dRueqqq6666qqrrrrqqqv+33qxF3ux1/7wD//w7/qe7/kebr31ViTxQJJ4IEk8N0kcO3aMd3/3dwfg3Llz/OVf/iX3s81zs81zs81zs81zs83zY5vnZpvntrGxAcB99913K1ddddVVV131fx+Vq6666qqrrrrqqquuuur/pRd7sRd77c/93M/9rZ/5mZ/h1ltvRRIPJIkHksQDSQLg2LFjvMd7vAcA586d4/d///e5n22em22em22em22em22eH9s8N9s8N9tcddVVV1111f8zVK666qqrrrrqqquuuuqq/3de7MVe7LU/93M/97d++7d/m7/+679GEg8kiQeSxANJAuDYsWO8xVu8BceOHePcuXP8/u//PgC2eW62eX5s89xs89xs89xs8/zY5rnZBmBzcxOA++6771auuuqqq6666v8+KlddddVVV1111VVXXXXV/yvXXHPNgz/3cz/3t/76r/+a3/md30ESDySJB5LEA0nifm/xFm/Bgx70II6Ojvj93/99AGzz3Gzz3Gzz/Njmudnmudnmudnm+bHN/TY3NwE4e/bsM7jqqquuuuqq//uoXHXVVVddddVVV1111VX/b1xzzTUP/qZv+qan33rrrfzMz/wMknggSTyQJB5IEvd793d/dx70oAdxdHTEr/7qrwJgm+dmm+dmm+dmm+fHNs/NNs/NNs+Pba666qqrrrrq/zEqV1111VVXXXXVVVddddX/C9dcc82DP/zDP/y7br31Vr7ne74HSdxPEg8kiecmifu9+7u/Ow960IM4Ojri93//97HN82Ob52ab52ab52ab58c2z802z49tnts111wDwH333XcrV1111VVXXfV/H5Wrrrrqqquuuuqqq6666v+FD//wD/+uzc3N1/6e7/keJHE/STyQJB5IEg/07u/+7jzoQQ/i6OiIv/zLv+Tw8JDnZpvnxzbPzTbPzTbPj22em22em22eH9vc7+zZs7dy1VVXXXXVVf/3EVx11VVXXXXVVVddddVV/+d97ud+7m/deOONr/293/u9SOJ+knggSTyQJB7oLd7iLXjQgx4EwF/+5V9y9uxZnpttnpttbPPcbPPcbPPcbGOb52ab52ab58c2AJubmwDcd999t3LVVVddddVV//dRueqqq6666qqrrrrqqqv+T/vcz/3c37rxxhtf+2u/9mt5IEk8kCQeSBIP9Jqv+Zq85Eu+JAC/93u/x7lz53hutnlutnlutnl+bPPcbPP82Oa52eb5sc1VV1111VVX/T9F5aqrrrrqqquuuuqqq676P+vDP/zDv+vGG2987Z/5mZ/hgSTxQJJ4IEk80Eu91EvxGq/xGgD83u/9HufOneOBbPP82Oa52eb5sc1zs81zs83zY5vnZpsH2tzcBOC+++67lauuuuqqq676/4Hgqquuuuqqq6666qqrrvo/6cM//MO/63Ve53Xe+2d+5md4xjOewf0k8UCSeCBJPNCDHvQg3vzN3xyA3/u93+PcuXM8kG2em21s89xs89xsY5vnZpvnZpvnxzbPzTbPbXNzE4CzZ8/eylVXXXXVVVf9/0Dlqquuuuqqq6666qqrrvo/53Ve53Xe+3Ve53Xe+3u+53t4xjOewf0k8UCSeCBJPNCDHvQg3v3d3x2Av/iLv+DcuXM8kG2em22eH9s8N9s8P7Z5brZ5fmzz3Gzz/GxubgJw33333cpVV1111VVX/f9A5aqrrrrqqquuuuqqq676P+XFXuzFXvvDP/zDv+t7vud7eMYznsH9JHE/STw3STzQgx70IN793d8dgMc//vHcdttt3M82z49tnpttnh/bPDfbPD+2eW62eX5s8/zYZnNzk6uuuuqqq676f4bKVVddddVVV1111VVXXfV/xou92Iu99ud+7uf+1vd8z/fwjGc8g/tJ4n6SeCBJPJAkbrnlFt793d8dgNtuu40nPOEJ3M82z802z49tnpttnh/bPD+2eW62eX5s8/zYBmBzcxOAf/iHf/gdrrrqqquuuur/BypXXXXVVVddddVVV1111f8JL/ZiL/ban/u5n/tbP/MzP8MznvEMACTxQJJ4IEk8kCSOHTvGu7/7uwNw7tw5/uIv/gIA2zw/tnl+bPPcbPP82Oa52eb5sc3zY5vnZpurrrrqqquu+n+OylVXXXXVVVddddVVV131v96LvdiLvfbnfu7n/tbv/M7v8Dd/8zcASOKBJPFAknggSRw7dowP+7APA+DcuXP83u/9HgC2eX5s89xs8/zY5rnZ5vmxzfNjm+dmm+fHNs9tc3MTgPvuu+9Wrrrqqquuuur/BypXXXXVVVddddVVV1111f9q11xzzYM/93M/97duvfVWfud3fgcASTyQJB5IEg8kiWPHjvHmb/7mAJw7d47f+73fwzbPj22eH9s8N9s8P7Z5fmzz/Njmudnm+bHN87O1tQXA2bNnb+Wqq6666qqr/n+gctVVV1111VVXXXXVVVf9r3XNNdc8+MM//MO/69Zbb+V7v/d7AZDEA0nigSTxQJIAePM3f3Me9KAHce7cOX7v934P2zw/tnlutnl+bPP82Ob5sc1zs83zY5vnxzbPj22uuuqqq6666v8hKlddddVVV1111VVXXXXV/1of/uEf/l2bm5uv/b3f+70ASOKBJPFAknggSQC827u9Gw960IM4Ojri937v97DNc7PN82Ob58c2z49tnpttnh/bPD+2eX5s89xsc7/NzU0A7rvvvlu56qqrrrrqqv8fqFx11VVXXXXVVVddddVV/yt97ud+7m9tbm6+9vd+7/cCIIkHksQDSeJ+krjfu73bu/GgBz2Io6MjfvmXf5nnxzbPj22em22eH9s8P7Z5fmzz/Njmudnm+bHN/TY3NwG47777buWqq6666qqr/v8guOqqq6666qqrrrrqqqv+1/ncz/3c37rxxhtf+3u/93sBkMQDSeJ+kpDE/SRxv3d7t3fjQQ96EEdHR/z5n/85z802tnlutrHNc7PN82Ob58c2z802tnlutrHNc7PN82ObB9ra2gLg7Nmzt3LVVVddddVV/39Queqqq6666qqrrrrqqqv+V/ncz/3c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A2AbANsA2MY297ONbWwDYBsA29gGwDYAtrHN/WxjGwDbANgGwDa2uZ9tAGwDYJv72QbANgC2eSDbANgGwDbPzTYAtgGwzfNjm/vZ5n62eX5scz/bPJBtXhjbPJBtHsg2/xLbPDfbPD+2+dewzfNjmxfENv8etvmX2Abg+PHjXHXVVVddddVV/2WoXHXVVVddddVV/yXOnj176zXXXPNggFd6pVfilV7plbjqqquu+v/qvvvuu/W+++67lauuuuqqq6666j8betCDHsRVV1111VVXXfWf78Ve7MVe653e6Z0+m6uuuuqqq/j6r//697nvvvtu5aqrrrrqqquu+s+GHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPVHysMWorl+IAAAAASUVORK5CYII=) - - diff --git a/docs/kcl/const_THREE_QUARTER_TURN.md b/docs/kcl/const_THREE_QUARTER_TURN.md deleted file mode 100644 index 4e8da0ac7f..0000000000 --- a/docs/kcl/const_THREE_QUARTER_TURN.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "THREE_QUARTER_TURN" -excerpt: "" -layout: manual ---- - - - - - -```js -THREE_QUARTER_TURN: number(deg) = 270deg -``` - - diff --git a/docs/kcl/const_ZERO.md b/docs/kcl/const_std-XY.md similarity index 62% rename from docs/kcl/const_ZERO.md rename to docs/kcl/const_std-XY.md index 2c867ab95a..83333627f8 100644 --- a/docs/kcl/const_ZERO.md +++ b/docs/kcl/const_std-XY.md @@ -1,5 +1,5 @@ --- -title: "ZERO" +title: "std::XY" excerpt: "" layout: manual --- @@ -9,7 +9,7 @@ layout: manual ```js -ZERO: number = 0 +std::XY ``` diff --git a/docs/kcl/const_HALF_TURN.md b/docs/kcl/const_std-XZ.md similarity index 50% rename from docs/kcl/const_HALF_TURN.md rename to docs/kcl/const_std-XZ.md index c4406d02b7..05ce1162da 100644 --- a/docs/kcl/const_HALF_TURN.md +++ b/docs/kcl/const_std-XZ.md @@ -1,5 +1,5 @@ --- -title: "HALF_TURN" +title: "std::XZ" excerpt: "" layout: manual --- @@ -9,7 +9,7 @@ layout: manual ```js -HALF_TURN: number(deg) = 180deg +std::XZ ``` diff --git a/docs/kcl/const_std-YZ.md b/docs/kcl/const_std-YZ.md new file mode 100644 index 0000000000..c899098cae --- /dev/null +++ b/docs/kcl/const_std-YZ.md @@ -0,0 +1,15 @@ +--- +title: "std::YZ" +excerpt: "" +layout: manual +--- + + + + + +```js +std::YZ +``` + + diff --git a/docs/kcl/hole.md b/docs/kcl/hole.md index 18e0acd685..12acfc0db0 100644 --- a/docs/kcl/hole.md +++ b/docs/kcl/hole.md @@ -28,7 +28,7 @@ hole(holeSketch: SketchSet, sketch: Sketch) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XY') +exampleSketch = startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [0, 5]) |> line(end = [5, 0]) @@ -44,7 +44,7 @@ example = extrude(exampleSketch, length = 1) ```js fn squareHoleSketch() { - squareSketch = startSketchOn('-XZ') + squareSketch = startSketchOn(-XZ) |> startProfileAt([-1, -1], %) |> line(end = [2, 0]) |> line(end = [0, 2]) @@ -53,7 +53,7 @@ fn squareHoleSketch() { return squareSketch } -exampleSketch = startSketchOn('-XZ') +exampleSketch = startSketchOn(-XZ) |> circle({ center = [0, 0], radius = 3 }, %) |> hole(squareHoleSketch(), %) example = extrude(exampleSketch, length = 1) diff --git a/docs/kcl/index.md b/docs/kcl/index.md index 719593796f..52df855a01 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -19,6 +19,9 @@ layout: manual * [`HALF_TURN`](kcl/const_std-HALF_TURN) * [`QUARTER_TURN`](kcl/const_std-QUARTER_TURN) * [`THREE_QUARTER_TURN`](kcl/const_std-THREE_QUARTER_TURN) + * [`XY`](kcl/const_std-XY) + * [`XZ`](kcl/const_std-XZ) + * [`YZ`](kcl/const_std-YZ) * [`ZERO`](kcl/const_std-ZERO) * [`abs`](kcl/abs) * [`acos`](kcl/acos) diff --git a/docs/kcl/line.md b/docs/kcl/line.md index cbb3b214b3..ba6b39d427 100644 --- a/docs/kcl/line.md +++ b/docs/kcl/line.md @@ -30,7 +30,7 @@ line(sketch: Sketch, endAbsolute?: [number], end?: [number], tag?: TagDeclarator ### Examples ```js -triangle = startSketchOn("XZ") +triangle = startSketchOn(XZ) |> startProfileAt([0, 0], %) // The 'end' argument means it ends at exactly [10, 0]. // This is an absolute measurement, it is NOT relative to @@ -41,7 +41,7 @@ triangle = startSketchOn("XZ") |> close() |> extrude(length = 5) -box = startSketchOn("XZ") +box = startSketchOn(XZ) |> startProfileAt([10, 10], %) // The 'to' argument means move the pen this much. // So, [10, 0] is a relative distance away from the current point. diff --git a/docs/kcl/profileStart.md b/docs/kcl/profileStart.md index c0118f2c61..41457561aa 100644 --- a/docs/kcl/profileStart.md +++ b/docs/kcl/profileStart.md @@ -27,7 +27,7 @@ profileStart(sketch: Sketch) -> [number] ### Examples ```js -sketch001 = startSketchOn('XY') +sketch001 = startSketchOn(XY) |> startProfileAt([5, 2], %) |> angledLine({ angle = 120, length = 50 }, %, $seg01) |> angledLine({ diff --git a/docs/kcl/profileStartX.md b/docs/kcl/profileStartX.md index 5e6e230cf8..39e38ab688 100644 --- a/docs/kcl/profileStartX.md +++ b/docs/kcl/profileStartX.md @@ -27,7 +27,7 @@ profileStartX(sketch: Sketch) -> number ### Examples ```js -sketch001 = startSketchOn('XY') +sketch001 = startSketchOn(XY) |> startProfileAt([5, 2], %) |> angledLine([-26.6, 50], %) |> angledLine([90, 50], %) diff --git a/docs/kcl/profileStartY.md b/docs/kcl/profileStartY.md index b3228ded5a..e54f0af0bd 100644 --- a/docs/kcl/profileStartY.md +++ b/docs/kcl/profileStartY.md @@ -27,7 +27,7 @@ profileStartY(sketch: Sketch) -> number ### Examples ```js -sketch001 = startSketchOn('XY') +sketch001 = startSketchOn(XY) |> startProfileAt([5, 2], %) |> angledLine({ angle = -60, length = 14 }, %) |> angledLineToY({ angle = 30, to = profileStartY(%) }, %) diff --git a/docs/kcl/startProfileAt.md b/docs/kcl/startProfileAt.md index b85b1a097d..9d352416ec 100644 --- a/docs/kcl/startProfileAt.md +++ b/docs/kcl/startProfileAt.md @@ -29,7 +29,7 @@ startProfileAt(to: [number], sketchSurface: SketchSurface, tag?: TagDeclarator) ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> line(end = [0, 10]) @@ -42,7 +42,7 @@ example = extrude(exampleSketch, length = 5) ![Rendered example of startProfileAt 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFToklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddX/IC/2Yi/22tdcc82D3/Ed3/GzuOqqq6666qr/ZX7rt37ruwF+9Ed/9HO46qqrrrrqqv8ZqFx11VVXXXXV/xDv+I7v+Flv+IZv+Nm/+Zu/yc/93M9x1VVXPZttrrrqX2Kbq/57nThx4rPf/u3fHoAf/dEf/Ryuuuqqq6666r8fetCDHsRVV1111VVX/Xe65pprHvzhH/7h33XDDTe89nd8x3ewu7vLVVdd9T+bba76/8E2V/3rnDhxgvd///dnHMdbP+uzPut17rvvvlu56qqrrrrqqv8+lOPHj3PVVVddddVV/11e7MVe7LW/4iu+4q/+/u///sE/+IM/yGq14qqrrvqfTxKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSVz1X0sSkpCEJCQhCUlIQhKS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sM0DScI2DyQJ2zyQJGwDIIn/DJKwzQNJwjYPJAnbPJAkbHM/SfxHk4RtHkgStnkgSdhGEv8RJGGbB5KEbQAk8a8hCds8kCRscz9JvKgkYZsHkoRtJPHCSMI2DyQJ2wBI4l9DErYBkMQLIgnbPJAk/i0k8aKSxL+FJF5UkrCNJP61JPFvJQnbAEjiP4MkbPNAkrBN13UA3Hfffbdy1VVXXXXVVf990IMe9CCuuuqqq6666r/bN33TNz2dq6666qqrrvo/5kM+5EMewlVXXXXVVVf990IPetCDuOqqq6666qqrrrrqqquuuuqqq6666qqr/k+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r+IfAYf4H6R1Hj7xAAAAAElFTkSuQmCC) ```js -exampleSketch = startSketchOn('-XZ') +exampleSketch = startSketchOn(-XZ) |> startProfileAt([10, 10], %) |> line(end = [10, 0]) |> line(end = [0, 10]) @@ -55,7 +55,7 @@ example = extrude(exampleSketch, length = 5) ![Rendered example of startProfileAt 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFET0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddX/IC/2Yi/22tdcc82D3/Ed3/GzuOqqq6666qr/ZX7rt37ruwF+9Ed/9HO46qqrrrrqqv8ZqFx11VVXXXXV/xDv+I7v+Flv+IZv+Nm/8Ru/wc/8zM9w1f99krjqqhdEEldd9b/N8ePHP/t1X/d1AfjRH/3Rz+Gqq6666qqr/vuhBz3oQVx11VVXXXXVf6drrrnmwR/+4R/+XYvF4rW/7du+jX8tSVz1n0MSV/3fJImrrrrqP8fx48d5u7d7OzY3N2/9rM/6rNe57777buWqq6666qqr/vtQjh8/zlVXXXXVVVf9d3mxF3ux1/6Kr/iKv/q7v/u7B//ET/wEkpCEJCQhCUlIQhKSkIQkJCGJq0ASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/uNJQhKSkIQkJCEJSUhCEpKQ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uuqqq6666l/jmmuuefCHf/iHf9fGxsZrf+d3fidXvWgkcdV/H0lcddX/NZK46v++48eP89Iv/dI89rGPvfWzPuuzXue+++67lauuuuqqq6560aEHPehBXHXVVVddddWL6nVe53Xe+8M//MO/6zd/8zf5rd/6Lf6vk8RV//kkcdVV/xqSuOqq/29e+7Vfm8c+9rG3/tZv/dZ3/+iP/ujncNVVV1111VUvGvSgBz2Iq6666qqrrnpRfPiHf/h3vczLvMx7/+RP/iRPf/rT+Z9MElf9x5LEVf+3SeKqq676n+348eO893u/N7/yK7/y2T/6oz/6OVx11VVXXXXVvww96EEP4qqrrrrqqqtemGuuuebBH/7hH/5dGxsbr/2d3/md/GeTxFX/PpK46n8PSVx11VVXvaiOHz/OS7/0S/PYxz721s/6rM96nfvuu+9WrrrqqquuuuoFoxw/fpyrrrrqqquuekFe53Ve570/93M/97f+/u///sE/9VM/xb9EEpKQhCQkIQlJSEISkpCEJCQhCUlIQhL/H0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRV/zaSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSVx11VVX/WusVituvfVWNjc3j7/jO77jW29ubh7/h3/4h9/hqquuuuqqq54/9KAHPYirrrrqqquuen4+93M/97duvPHG1/7Jn/xJbr31Vq56TpK46r+OJK666j+TJK666n+b48eP817v9V78yq/8ymf/6I/+6Odw1VVXXXXVVc8LPehBD+Kqq6666qqrHuiaa6558Od8zuf81uHh4YO/67u+i/9rJHHVfzxJXPX/kySuuuqq/z7Hjx/npV7qpXjsYx9762d91me9zn333XcrV1111VVXXfVslOPHj3PVVVddddVV93ud13md9/7cz/3c3/rTP/3T4z/1Uz/F/zSSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrgKJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJX/deQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlcddVV/71WqxXPeMYz2NzcPP6O7/iOb725uXn8H/7hH36Hq6666qqrrroCPehBD+Kqq6666qqrAD73cz/3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AEn8Z7DN/STxn8k2DySJ/0q2eW6S+J/KNi+MJK666v8z21wFW1tbANx33323ctVVV1111VVXEFx11VVXXXXVM/393//9bwNsbW1hm/8otrHNfxTb2OY/km1s8x/NNrb5j2Yb29jmP4ttbGOb/wq2sY1t/rvYxja2sY1t/rewjW1sYxvb2MY2trHNVVf9b2Ab29jGNraxjW1sYxvb2MY2trHNVVdsbW0BcN99993KVVddddVVV11BcNVVV1111VXPdPbs2WcA3HDDDQDY5j+SbWzzH8U2tvmPZBvb/EezjW3+M9jGNrb5z2Ib29jmv4JtbGMb2/x3so1tbGMb2/xvZRvb2MY2trGNbWxjG9tcddW/l21sYxvb2MY2trGNbWxjG9vYxja2uerfZ2trC4CzZ88+g6uuuuqqq666gspVV1111VVXPdN99913K8/FNgCS+I9iG0n8R7ENgCT+o9jmfpL4j2Kb+0niP5pt7ieJ/wy2eSBJ/GezzQNJ4r+TbZ6bJP6vsM2/hiSu+r/DNlf973XttdcCcN99993KVVddddVVV11B5aqrrrrqqque6ezZs7cCbG9v89xsAyCJ/wi2AZDEfxTbAEjiP5JtACTxH8k2AJL4z2AbAEn8Z7LN/STxX8E2DySJ/262eX4k8X+dbf69JHHVv55trrrq+Tl79uytXHXVVVddddUVVK666qqrrrrqme67775bAba3t3lBbAMgif8ItgGQxH8U2wBI4j+SbQAk8R/JNveTxH8029xPEv+ZbHM/SfxXsc0DSeJ/Cts8P5K46tlsc9VVV/37bW1tAXDffffdylVXXXXVVVddQXDVVVddddVVD/AP//APvw1www038MLYxjb/UWxjm/9ItrGNbf4j2cY2/xlsY5v/LLaxjW3+s9nGNraxzX8l29jGNraxzf80trGNbWxjG9tcddVVV/1bXXvttQDcd999t3LVVVddddVVz0blqquuuuqqq/4dbAMgif8ItgGQxH8k2wBI4j+Kbe4nif9ItrmfJP4z2OZ+kvjPZpv7SeK/mm0eSBL/E9nmBZHEVVddddULsrW1BcA//MM//DZXXXXVVVdd9WwEV1111VVXXfUAf//3f//bANdffz3/Grb5j2Qb2/xHs41t/qPZxjb/GWxjG9v8Z7GNbWzzX8E2trGNbf472MY2trGNbf6ns41tbGMb29jG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FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q/iHwFenYalbh0N6wAAAABJRU5ErkJggg==) ```js -exampleSketch = startSketchOn('-XZ') +exampleSketch = startSketchOn(-XZ) |> startProfileAt([-10, 23], %) |> line(end = [10, 0]) |> line(end = [0, 10]) diff --git a/docs/kcl/startSketchOn.md b/docs/kcl/startSketchOn.md index adb39ee6b1..a7c0db3535 100644 --- a/docs/kcl/startSketchOn.md +++ b/docs/kcl/startSketchOn.md @@ -36,7 +36,7 @@ startSketchOn(data: SketchData, tag?: FaceTag) -> SketchSurface ### Examples ```js -exampleSketch = startSketchOn("XY") +exampleSketch = startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> line(end = [0, 10]) @@ -67,7 +67,7 @@ example003 = extrude(exampleSketch003, length = 5) ![Rendered example of startSketchOn 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEr30lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX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m/9pbHPVfyxJ/GtJ4t9KEv8ekpDEfwZJSEISkvjvtFgsADh79uytXHXVVVddddVV/xMRXHXVVVddddVV/+/Y5r+Kbf4nss2/hm3+s9nmfytJ/GtI4j+bJP4tJCGJfw9J/EeThCQkcdVVV1111VVXXfWvQHDVVVddddVVV/2PdN99990KsLm5yQtjm38L2/xr2ea/gm3+tWxz1X8cSfxPIon/CpL495CEJP6jSEISkvifaj6fA3DffffdylVXXXXVVVdd9T8RwVVXXXXVVVdd9T/WfffddyvA5uYmL4xt/qvY5l/LNv9atvnPZpt/Ddv8a9jmqucliX8NSfxrSeJfSxL/VpKQxH8ESUhCElddddVVV1111VX/AahcddVVV1111VX/J9hGEv8atpHE/xW2kcT/F7aRxH83SfxPIol/LUn8W0niP4Ik/jtJ4l9rPp8DcN99993KVVddddVVV131PxXBVVddddVVV131P9bZs2dvBdjY2OA/i23+tWzzr2Wbfy3bXPX/myT+NSTxryWJfwtJSOLfQxKSkMR/NklIQhKSkIQkJCGJf4v5fA7A2bNnb+Wqq6666qqrrvqfiuCqq6666qqrrvo/wzb/Frb517LNv5Zt/rPZ5l/DNv8atrnq304S/1kk8a8liX8LSfx7SEIS/1kkIQlJSEIS/xnm8zkA9913361cddVVV1111VX/UxFcddVVV1111VX/Y9133323AmxubvKiss3/Jbb538w2/xq2ueoKSfxnksS/liQk8W8lCUn8R5OEJCQhiauuuuqqq6666qoHILjqqquuuuqqq/7Huu+++24F2Nzc5F/DNv9atvnXss2/lm3+s9nmX8M2Vz2bJF5UknhRSeJFJYl/DUn8a0jiX0sS/1aSkMR/FElIQhKS+O8yn88BuO+++27lqquuuuqqq676n4rgqquuuuqqq6666pls869lm38t2/xr2OZ/Ettc9T+HJP41JPGvJYl/C0lI4j+CJCQhif8pFosFAGfPnn0GV1111VVXXXXV/1RUrrrqqquuuuqq/7HOnj37DICNjQ3+tWwjif+vbCOJq66QxH8nSbyoJPGiksS/hiT+NSTxbyWJfy9J/E8iiauuuuqqq6666n8dKlddddVVV1111f9Y9913360Am5ub/FvYRhL/GraRxL+GbSTxr2EbSbyobCOJ/yy2kcRVLzpJ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4gWRxAsiiecmiecmiecmiecmiecmiecmiecmCQBJPDdJAEgCQBIAknh+JAEgCQBJAEgCQBLPTRLPTRL3k8T9JHE/SdxPEg8kiQeSRGYCcN99993KVVddddVVV131H4Xgqquuuuqqq676D3PffffdCnDttdfyX0ES/x9I4vmRxItKEle9aCTxn0ES/xUkASCJF0QSL4gknpsknpsknpsknpsk7icJAEk8N0k8N0k8N0kASOIFkQSAJAAkASAJAEkASOIFkQSAJO4nCQBJ3E8S95PE/SRxP0ncTxKSuJ8kJHHVVVddddVVV/2noXLVVVddddVVV/2Hue+++27l/xBJ/F8miecmiecmiX+JJP49JPFvIYn/SSTxL5HEfwZJ/Esk8YJI4rlJ4rlJ4rlJ4rlJ4kUhiecmiecmiRdEEgCS+LeQBIAkACTx3CQBIIn7SeJ+krifJO4niftJ4oEk8UCZCcB99913K1ddddVVV1111X8UKlddddVVV1111X+Ys2fPPgNga2uLfy9J/F8kif8PJPFAknggSbyoJPGikMS/hiTuJ4kXRhLPTRIviCT+JZIAkASAJP41JAEgiX+JJF4QSTw3STw3STw3STw3STw3SdxPEgCSuJ8kACRxP0kASOK5SQJAEs9NEgCSAJAEgCQAJAEgCQBJAEjiuUkCQBLPTRL3k8T9JHE/SdxPEveTxANJAiAzATh79uwzuOqqq6666qqr/qNQueqqq6666qqr/sPcd999twJsbW3xP4EkXhhJ/FtJ4gWRxH8XSVwFkrifJO4nif/pJAEgCQBJAEgCQBIvKkm8IJL4t5LEc5PEc5PE/STx3CTx3CTx3CQBIInnJgkASfxHkASAJAAkcT9JAEjifpK4nyTuJ4n7SeJ+knggSdwvMwG47777buWqq6666qqrrvqPQuWqq6666qqrrvoPc/bs2VsBNjc3eUEkcdXzksS/hiT+u0jiP5MkXhBJ/FeRxHOTxHOTxAsiif8OknhBJPGCSOK5SeKFkcRzk8QLI4nnJonnJonnJgkASTw3SQBIAkASAJIAkASAJAAkASAJAEkASOK5SQJAEveTxP0kcT9J3E8S95PEA0nigTITgLNnz97KVVddddVVV131H4XKVVddddVVV1111f9gkvj3ksSLQhJX/eeQxH8mSQBI4gWRxAsiiecmiecmiRdGEs9NEveTxHOTxHOTxHOTxHOTBIAkXlSSAJAEgCReEEkASOK5SeJ+krifJO4niftJ4n6SeCBJALTWuOqqq6666qqr/sNRueqqq6666qqr/sPcd999twJsbW1x1f9sknhRSOJfIol/D0n8W0jiP5ok/q0k8S+RBIAk/iNI4l8iiRdEEs9NEs9NEs9NEveTxHOTxP0k8dwk8dwk8dwk8dwk8YJIAkASAJIAkMQLIwkASQBI4rlJAkAS95PE/SRxP0ncTxL3k8QDSeK53Xfffbdy1VVXXXXVVVf9RyG46qqrrrrqqqv+Q9133323Alx77bX8Z5LEfyZJ/EeTxP8HknggSTyQJF5UknhRSOJfQxL3k8QLI4nnJokXRBIvKkkASOJFIQkASfxLJPGCSOLfShIvjCReGEk8N0k8N0k8N0k8N0kASOIFkQSAJAAkASAJAEkASOK5SQJAEs9NEveTxP0kcT9J3E8SDySJ+7XWALjvvvtu5aqrrrrqqquu+o9EcNVVV1111VVX/Yc6e/bsrfwfJ4n/iSRxFUjifpK4nyT+p5MEgCQAJAEgiReVJF4QSbwgknhukrifJJ6bJF4YSdxPEs9NEs9NEveTBIAk7icJAEk8N0kASAJAEv8WkgCQBIAk7icJAEncTxL3k8T9JHE/SdxPEpK4nySmaQLg7Nmzt3LVVVddddVVV/1HIrjqqquuuuqqq/5D3XfffbcCbG1t8W8liX8vSbwwkvjPIIl/LUn8a0jiv4sk/jNJ4gWRxH8VSbwoJPGCSOK/kiT+LSTx3CTxwkjiuUnifpJ4YSTx3CRxP0k8N0k8N0kASOIFkQSAJAAkASAJAEkASAJAEi+IJJ6bJO4niftJ4n6SuJ8kHkgSD3TffffdylVXXXXVVVdd9R+JylVXXXXVVVdd9R/qvvvuuxVgc3OTq/59JPHvJYnnJonnJomrXjhJ/FtI4j+TJP4lknhuknhuknhuknhhJPHCSOKFkcT9JPHcJPHcJPHcJAEgCQBJ/HtIAkASAJK4nyQAJHE/SdxPEveTxP0k8UCSuF9rDYD77rvvVq666qqrrrrqqv9IBFddddVVV1111X+K6667jqv+d5PEv0QS/x6S+LeQxH80SfxbSeJfIon/SJL4l0jiuUni30oSL4wk7ieJ5yaJ+0nihZHEc5PEc5PEv0QSAJIAkASAJAAkASAJAEkASOK5SeK5SeJ+krifJO4niftJQhL3k0RmAnD27NlncNVVV1111VVX/UeictVVV1111VVX/Yf6h3/4h98BuPbaa7n22ms5PDzkX0sS/xJJvDCSeGEk8YJI4oWRxAsiiX8tSTw/knh+JPHcJPH8SOK5SeK5SeJFIYkHksQDSeKBJPFAknggSTyQJF4QSdxPEveTxANJ4n6SuJ8k7ieJ5yaJ+0kCQBL3kwSAJO4nCQBJPDdJAEgCQBIAkgCQxP0kASCJB5IEgCQkASAJAEkASAJAEveTBIAkACQBIAlJAEgCQBL3kwSAJCQBIAlJAEgCQBL3k4QkACQBIAlJAEhCEveTBIAkACQhCQBJSAJAEveTxHOTxHOTxP1sIwnb/GvZBkASAJKwjSRsAyAJ20jCNgCSsA2AJGzz3CTxQJJorbFarbjqqquuuuqqq/5TULnqqquuuuqqq/7D3Xfffbdec801D37DN3xDrrrqqqv+M9kGwDb/29133323/sM//MNvc9VVV1111VVX/UdCD3rQg7jqqquuuuqqq/5jnTlz5kGf+7mf+9tcddVVV131Ivusz/qs17nvvvtu5aqrrrrqqquu+o+EHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1X8Ix8HkjIoFM6oAAAAAElFTkSuQmCC) ```js -exampleSketch = startSketchOn("XY") +exampleSketch = startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [10, 0]) |> line(end = [0, 10], tag = $sketchingFace) @@ -98,7 +98,7 @@ example003 = extrude(exampleSketch003, length = 5) ![Rendered example of startSketchOn 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEFLklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVf9N7rmmmse/I7v+I6fxVVXXfVf5uu//uvfh6uuuuqqq6666qqr/r+gctVVV1111VX/TT73cz/3t17sxV7stbnqqqv+y33913/9+3DVVVddddVVV1111f8H6EEPehBXXXXVVVdd9V/tcz/3c3/rxV7sxV774sWL/Nqv/RoXLlzgqquu+s/3wR/8wQC83du9nbjqqquuuuqqq6666v8DKlddddVVV131X+zDP/zDv+vFXuzFXhvgR37kR3ja057GVVf9X2Kbq6666qqrrrrqqquu+h+CylVXXXXVVVf9F3rHd3zHz3qd13md9wb45m/+Zp72tKdx1VX/10jiP5Ntrrrqqquuuuqqq6666kVE5aqrrrrqqqv+i7zO67zOe7/TO73TZwN88zd/M0972tO46qqr/vUkcdVVV1111VVXXXXVVS8iKlddddVVV131X+DFXuzFXvvDP/zDvwvgW77lW3j605+OJK76/8M2V1111VVXXXXVVVddddV/OSpXXXXVVVdd9Z/sxV7sxV77cz/3c38L4Ed/9Ed52tOexlX//0jifxLbXHXVVVddddVVV1111f8DVK666qqrrrrqP9GLvdiLvfbnfu7n/hbAr/3ar/EXf/EXXHXV/wSS+K9km6uuuuqqq6666qqrrvpvQOWqq6666qqr/pO82Iu92Gt/7ud+7m8B/MVf/AW//uu/zlVX/X8lif8strnqqquuuuqqq6666qoXgMpVV1111VVX/Se45pprHvy5n/u5vwXwtKc9jR/90R/lXyKJq8A2V131ryGJq6666qqrrrrqqquuegGoXHXVVVddddV/sGuuuebB3/RN3/R0gKc97Wl867d+K5K46kUjif9vbHPVVVddddVVV1111VVX/aegctVVV1111VX/ga655poHf/iHf/h3ATztaU/jW7/1W7nqqn+JJP4nsM1VV1111VVXXXXVVVf9H0Plqquuuuqqq/4DffiHf/h3vdiLvdhrP+1pT+Nbv/Vbueqq/00k8V/FNlddddVVV1111VVXXfVfgMpVV1111VVX/Qf53M/93N96sRd7sde+ePEi3/qt38pVV131gkniP4Ntrrrqqquuuuqqq6666gGoXHXVVVddddV/gM/93M/9rRd7sRd77YsXL/IlX/IlPDdJXPWfwzZXXXU/SVx11VVXXXXVVVddddUDULnqqquuuuqqf6fP/dzP/a0Xe7EXe+2LFy/y4z/+40jiqv86kvi/yDZXXXXVVVddddVVV1111b8blauuuuqqq676d/jwD//w73qxF3ux1wb48R//cZ72tKdx1VX/ESTx3802V1111VVXXXXVVVdd9b8clauuuuqqq676N/rwD//w73qd13md9wb4tm/7Np72tKdx1VX/l0jiv4Jtrrrqqquuuuqqq6666j8Jlauuuuqqq676N3jHd3zHz3qd13md9wb4tm/7Np72tKdx1VVX/dtI4j+Dba666qqrrrrqqquu+n+PylVXXXXVVVf9K73O67zOe7/TO73TZwN827d9G0972tN4fiRx1X8v21z1/5ckrrrqqquuuuqqq676f4/KVVddddVVV/0rvNiLvdhrf/iHf/h3Afz4j/84T3/605HEVf8zSeL/AttcddVVV1111VVXXXXVVf8mVK666qqrrrrqRfRiL/Zir/25n/u5vwXw4z/+4/zlX/4lV131X0ES/51sc9VVV1111VVXXXXVVf9LUbnqqquuuuqqF8GLvdiLvfbnfu7n/hbAX/7lX/KXf/mXXHXV/xeS+M9mm6uuuuqqq6666qqrrvpPQOWqq6666qqr/gXXXHPNgz/3cz/3twD+8i//kh//8R/nqquu+o8lif8Mtrnqqquuuuqqq6666v81KlddddVVV131QlxzzTUP/qZv+qanAzztaU/jx3/8x/nXksRV/71sc9X/T5K46qqrrrrqqquuuur/NSpXXXXVVVdd9QJcc801D/6cz/mc3wJ4+tOfznd8x3cgiav+95HE/wW2ueqqq6666qqrrrrqqqv+VahcddVVV1111fNxzTXXPPjDP/zDv+uaa6558NOf/nS+/du/nauu+u8mif8utrnqqquuuuqqq6666qr/hahcddVVV1111fPx4R/+4d/1Yi/2Yq998eJFvv3bv52rrvr/ThL/2WzzX+Wbvumbns5VV131X+7rv/7r3+cf/uEffpurrrrqqquu+q+DHvSgB3HVVVddddVVD/S5n/u5v/ViL/Zir33x4kW+/Mu/nKuuuup/N9vc7wu/8Au56qqr/nv91m/91nd//dd//ftw1VVXXXXVVf81qFx11VVXXXXVA3zu537ub73Yi73Ya1+8eJGf+Imf4D+LJK76r2Gbq/5/k8Rz+6Iv+iKu+vexzf9Xtrnq3+bTPu3TeJ3XeZ33vu+++2790R/90c/hqquuuuqqq/7zUbnqqquuuuqqZ/rcz/3c33qxF3ux17548SI/+ZM/ya23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JwkA29xPEgC2uZ8kbHM/SQDY5n6SsM0DScI295OEbR5IEra5nyRs80CSsM0DScI2DyQJ29xPErZ5UUjCNg8kCds8N0nY5oEkcb/77rvvVq666qqrrrrqPw7BVVddddVVV1111VVX/R9y9uzZW3kmSUjihZGEJCQhCUlIQhL/ESQhCUlIQhKSkMQLIwlJSEISz48kJCGJ5yYJSTw3SUjiuUniuUlCEg8kiecmiecmiQeShCQeSBIPJInnJokHksRzk8QDSeK5SeK5SeJfIonnJokXlSSeH0k8t42NDQDuu+++W7nqqquuuuqq/zhUrrrqqquuuuqqq6666v+oG2+8kfV6zf81tvnXss2LyjYvCtv8S2zzL7HNv8Q2/xLb/Ets8y+xzYvCNi8q2/xLTp06BcDZs2efwVVXXXXVVVf9x6Fy1VVXXXXVVVddddVV/4fcd999t/7Ij/zIZ7/TO73TZ58+fZqrrvrf5B/+4R9++x/+4R9+m6uuuuqqq676j0Plqquuuuqqq6666qqr/o/50R/90c/hqqv+F/rt3/7t77nvvvtu5aqrrrrqqqv+46AHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q/iHwFZY/7vp4mLZgAAAABJRU5ErkJggg==) ```js -exampleSketch = startSketchOn('XY') +exampleSketch = startSketchOn(XY) |> startProfileAt([4, 12], %) |> line(end = [2, 0]) |> line(end = [0, -6]) diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 1e987a33a1..59afcb5600 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -3583,6 +3583,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -7447,6 +7454,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -8947,6 +8961,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -10551,6 +10572,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -12220,6 +12248,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -12807,7 +12842,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> yLineTo(15, %)\n |> angledLine({ angle = 30, length = 15 }, %)\n |> line(end = [8, -10])\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> yLineTo(15, %)\n |> angledLine({ angle = 30, length = 15 }, %)\n |> line(end = [8, -10])\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -13946,6 +13981,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -15550,6 +15592,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -17219,6 +17268,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -17806,7 +17862,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1)\n |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2)\n |> line(end = [0, -5])\n |> close(tag = $edge3)\n\nextrusion = extrude(sketch001, length = 10)" + "sketch001 = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1)\n |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2)\n |> line(end = [0, -5])\n |> close(tag = $edge3)\n\nextrusion = extrude(sketch001, length = 10)" ] }, { @@ -18945,6 +19001,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -20549,6 +20612,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -22218,6 +22288,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -22805,7 +22882,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> angledLineOfYLength({ angle = 45, length = 10 }, %)\n |> line(end = [0, 10])\n |> angledLineOfYLength({ angle = 135, length = 10 }, %)\n |> line(end = [-10, 0])\n |> line(end = [0, -30])\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> angledLineOfYLength({ angle = 45, length = 10 }, %)\n |> line(end = [0, 10])\n |> angledLineOfYLength({ angle = 135, length = 10 }, %)\n |> line(end = [-10, 0])\n |> line(end = [0, -30])\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -25290,6 +25367,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -26894,6 +26978,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -28297,6 +28388,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -28884,7 +28982,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(endAbsolute = [5, 10])\n |> line(endAbsolute = [-10, 10], tag = $lineToIntersect)\n |> line(endAbsolute = [0, 20])\n |> angledLineThatIntersects({\n angle = 80,\n intersectTag = lineToIntersect,\n offset = 10\n }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(endAbsolute = [5, 10])\n |> line(endAbsolute = [-10, 10], tag = $lineToIntersect)\n |> line(endAbsolute = [0, 20])\n |> angledLineThatIntersects({\n angle = 80,\n intersectTag = lineToIntersect,\n offset = 10\n }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -30008,6 +30106,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -31612,6 +31717,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -33281,6 +33393,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -33868,7 +33987,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToX({ angle = 30, to = 10 }, %)\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLineToX({ angle = 30, to = 10 }, %)\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -34992,6 +35111,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -36596,6 +36722,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -38265,6 +38398,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -38852,7 +38992,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToY({ angle = 60, to = 20 }, %)\n |> line(end = [-20, 0])\n |> angledLineToY({ angle = 70, to = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLineToY({ angle = 60, to = 20 }, %)\n |> line(end = [-20, 0])\n |> angledLineToY({ angle = 70, to = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -40241,6 +40381,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -41841,6 +41988,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -43443,6 +43597,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -45044,6 +45205,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -46750,6 +46918,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -48262,6 +48437,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -49866,6 +50048,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -51535,6 +51724,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -52122,7 +52318,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> arc({\n angleStart = 0,\n angleEnd = 280,\n radius = 16\n }, %)\n |> close()\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> arc({\n angleStart = 0,\n angleEnd = 280,\n radius = 16\n }, %)\n |> close()\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -53256,6 +53452,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -54860,6 +55063,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -56529,6 +56739,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -57116,7 +57333,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> arcTo({ end = [10, 0], interior = [5, 5] }, %)\n |> close()\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> arcTo({ end = [10, 0], interior = [5, 5] }, %)\n |> close()\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -58783,6 +59000,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -60387,6 +60611,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -62056,6 +62287,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -62643,7 +62881,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 10])\n |> bezierCurve({\n to = [10, 10],\n control1 = [5, 0],\n control2 = [5, 10]\n }, %)\n |> line(endAbsolute = [10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 10])\n |> bezierCurve({\n to = [10, 10],\n control1 = [5, 0],\n control2 = [5, 10]\n }, %)\n |> line(endAbsolute = [10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -64042,6 +64280,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -65643,6 +65888,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -67246,6 +67498,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -68869,6 +69128,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -70561,6 +70827,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -71140,6 +71413,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -72744,6 +73024,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -75231,6 +75518,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -76091,6 +76385,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -77696,6 +77997,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -80184,6 +80492,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -81866,6 +82181,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -83471,6 +83793,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -85141,6 +85470,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -85728,8 +86064,8 @@ "unpublished": false, "deprecated": false, "examples": [ - "startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 10])\n |> line(end = [10, 0])\n |> close()\n |> extrude(length = 10)", - "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 10])\n |> line(end = [10, 0])\n |> close()\n |> extrude(length = 10)", + "exampleSketch = startSketchOn(-XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -86912,6 +87248,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -88513,6 +88856,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -90478,6 +90828,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -92165,6 +92522,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -93766,6 +94130,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -95369,6 +95740,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -96989,6 +97367,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -98611,6 +98996,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -100303,6 +100695,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -108144,6 +108543,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -109818,6 +110224,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -111274,6 +111687,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -112943,6 +113363,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -114613,6 +115040,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -115200,8 +115634,8 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n |> hole(circle({ center = [1, 1], radius = .25 }, %), %)\n |> hole(circle({ center = [1, 4], radius = .25 }, %), %)\n\nexample = extrude(exampleSketch, length = 1)", - "fn squareHoleSketch() {\n squareSketch = startSketchOn('-XZ')\n |> startProfileAt([-1, -1], %)\n |> line(end = [2, 0])\n |> line(end = [0, 2])\n |> line(end = [-2, 0])\n |> close()\n return squareSketch\n}\n\nexampleSketch = startSketchOn('-XZ')\n |> circle({ center = [0, 0], radius = 3 }, %)\n |> hole(squareHoleSketch(), %)\nexample = extrude(exampleSketch, length = 1)" + "exampleSketch = startSketchOn(XY)\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n |> hole(circle({ center = [1, 1], radius = .25 }, %), %)\n |> hole(circle({ center = [1, 4], radius = .25 }, %), %)\n\nexample = extrude(exampleSketch, length = 1)", + "fn squareHoleSketch() {\n squareSketch = startSketchOn(-XZ)\n |> startProfileAt([-1, -1], %)\n |> line(end = [2, 0])\n |> line(end = [0, 2])\n |> line(end = [-2, 0])\n |> close()\n return squareSketch\n}\n\nexampleSketch = startSketchOn(-XZ)\n |> circle({ center = [0, 0], radius = 3 }, %)\n |> hole(squareHoleSketch(), %)\nexample = extrude(exampleSketch, length = 1)" ] }, { @@ -116571,6 +117005,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -118245,6 +118686,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -120159,6 +120607,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -121856,6 +122311,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -123718,6 +124180,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -125325,6 +125794,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -126931,6 +127407,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -128536,6 +129019,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -130206,6 +130696,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -130793,7 +131290,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "triangle = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n // The 'end' argument means it ends at exactly [10, 0].\n // This is an absolute measurement, it is NOT relative to\n // the start of the sketch.\n |> line(endAbsolute = [10, 0])\n |> line(endAbsolute = [0, 10])\n |> line(endAbsolute = [-10, 0], tag = $thirdLineOfTriangle)\n |> close()\n |> extrude(length = 5)\n\nbox = startSketchOn(\"XZ\")\n |> startProfileAt([10, 10], %)\n // The 'to' argument means move the pen this much.\n // So, [10, 0] is a relative distance away from the current point.\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0], tag = $thirdLineOfBox)\n |> close()\n |> extrude(length = 5)" + "triangle = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n // The 'end' argument means it ends at exactly [10, 0].\n // This is an absolute measurement, it is NOT relative to\n // the start of the sketch.\n |> line(endAbsolute = [10, 0])\n |> line(endAbsolute = [0, 10])\n |> line(endAbsolute = [-10, 0], tag = $thirdLineOfTriangle)\n |> close()\n |> extrude(length = 5)\n\nbox = startSketchOn(XZ)\n |> startProfileAt([10, 10], %)\n // The 'to' argument means move the pen this much.\n // So, [10, 0] is a relative distance away from the current point.\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0], tag = $thirdLineOfBox)\n |> close()\n |> extrude(length = 5)" ] }, { @@ -131936,6 +132433,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -133538,6 +134042,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -135138,6 +135649,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -136741,6 +137259,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -138342,6 +138867,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -140201,6 +140733,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -142639,6 +143178,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -145227,6 +145773,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -147819,6 +148372,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -151299,6 +151859,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -152709,6 +153276,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -153537,6 +154111,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -154819,6 +155400,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -156421,6 +157009,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -158027,6 +158622,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -159628,6 +160230,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -161228,6 +161837,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -162829,6 +163445,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -164505,6 +165128,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -166408,6 +167038,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -168010,6 +168647,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -169616,6 +170260,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -171222,6 +171873,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -172823,6 +173481,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -174423,6 +175088,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -176024,6 +176696,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -177704,6 +178383,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -179083,6 +179769,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -180685,6 +181378,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -182286,6 +182986,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -183892,6 +184599,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -185493,6 +186207,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -187169,6 +187890,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -189072,6 +189800,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -190674,6 +191409,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -192275,6 +193017,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -193881,6 +194630,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -195482,6 +196238,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -197162,6 +197925,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -198805,6 +199575,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -200407,6 +201184,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -202007,6 +202791,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -203608,6 +204399,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -205288,6 +206086,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -206672,6 +207477,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -208274,6 +209086,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -209874,6 +210693,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -211475,6 +212301,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -213151,6 +213984,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -214388,6 +215228,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -215992,6 +216839,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -218479,6 +219333,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -221007,6 +221868,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -224097,6 +224965,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -225911,6 +226786,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -226517,7 +227399,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle = 120, length = 50 }, %, $seg01)\n |> angledLine({\n angle = segAng(seg01) + 120,\n length = 50\n }, %)\n |> line(end = profileStart(%))\n |> close()\n |> extrude(length = 20)" + "sketch001 = startSketchOn(XY)\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle = 120, length = 50 }, %, $seg01)\n |> angledLine({\n angle = segAng(seg01) + 120,\n length = 50\n }, %)\n |> line(end = profileStart(%))\n |> close()\n |> extrude(length = 20)" ] }, { @@ -227612,6 +228494,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -228213,7 +229102,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine([-26.6, 50], %)\n |> angledLine([90, 50], %)\n |> angledLineToX({ angle = 30, to = profileStartX(%) }, %)" + "sketch001 = startSketchOn(XY)\n |> startProfileAt([5, 2], %)\n |> angledLine([-26.6, 50], %)\n |> angledLine([90, 50], %)\n |> angledLineToX({ angle = 30, to = profileStartX(%) }, %)" ] }, { @@ -229308,6 +230197,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -229909,7 +230805,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle = -60, length = 14 }, %)\n |> angledLineToY({ angle = 30, to = profileStartY(%) }, %)" + "sketch001 = startSketchOn(XY)\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle = -60, length = 14 }, %)\n |> angledLineToY({ angle = 30, to = profileStartY(%) }, %)" ] }, { @@ -231849,6 +232745,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -234937,6 +235840,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -238026,6 +238936,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -240630,6 +241547,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -243718,6 +244642,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -246306,6 +247237,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -249395,6 +250333,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -252827,6 +253772,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -254493,6 +255445,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -256186,6 +257145,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -257788,6 +258754,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -259390,6 +260363,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -260992,6 +261972,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -262599,6 +263586,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -264200,6 +265194,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -265800,6 +266801,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -267474,6 +268482,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -269203,6 +270218,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -270809,6 +271831,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -272410,6 +273439,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -274084,6 +275120,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -284796,6 +285839,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -286397,6 +287447,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -288000,6 +289057,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -289741,6 +290805,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -290340,6 +291411,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -291944,6 +293022,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -294599,6 +295684,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -295186,9 +296278,9 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([10, 10], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 23], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchOn(-XZ)\n |> startProfileAt([10, 10], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchOn(-XZ)\n |> startProfileAt([-10, 23], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" ] }, { @@ -296302,6 +297394,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -297137,6 +298236,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -298915,6 +300021,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -300691,6 +301804,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -302264,9 +303384,9 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)\n\nexampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line(end = [6, 0])\n |> line(end = [0, 6])\n |> line(end = [-6, 0])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", - "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10], tag = $sketchingFace)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)\n\nexampleSketch002 = startSketchOn(example, sketchingFace)\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close(tag = $sketchingFace002)\n\nexample002 = extrude(exampleSketch002, length = 10)\n\nexampleSketch003 = startSketchOn(example002, sketchingFace002)\n |> startProfileAt([-8, 12], %)\n |> line(end = [0, 6])\n |> line(end = [6, 0])\n |> line(end = [0, -6])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", - "exampleSketch = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line(end = [2, 0])\n |> line(end = [0, -6])\n |> line(end = [4, -6])\n |> line(end = [0, -6])\n |> line(end = [-3.75, -4.5])\n |> line(end = [0, -5.5])\n |> line(end = [-2, 0])\n |> close()\n\nexample = revolve({ axis = 'y', angle = 180 }, exampleSketch)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)", + "exampleSketch = startSketchOn(XY)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)\n\nexampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line(end = [6, 0])\n |> line(end = [0, 6])\n |> line(end = [-6, 0])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", + "exampleSketch = startSketchOn(XY)\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10], tag = $sketchingFace)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)\n\nexampleSketch002 = startSketchOn(example, sketchingFace)\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close(tag = $sketchingFace002)\n\nexample002 = extrude(exampleSketch002, length = 10)\n\nexampleSketch003 = startSketchOn(example002, sketchingFace002)\n |> startProfileAt([-8, 12], %)\n |> line(end = [0, 6])\n |> line(end = [6, 0])\n |> line(end = [0, -6])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", + "exampleSketch = startSketchOn(XY)\n |> startProfileAt([4, 12], %)\n |> line(end = [2, 0])\n |> line(end = [0, -6])\n |> line(end = [4, -6])\n |> line(end = [0, -6])\n |> line(end = [-3.75, -4.5])\n |> line(end = [0, -5.5])\n |> line(end = [-2, 0])\n |> close()\n\nexample = revolve({ axis = 'y', angle = 180 }, exampleSketch)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)", "a1 = startSketchOn({\n plane = {\n origin = { x = 0, y = 0, z = 0 },\n xAxis = { x = 1, y = 0, z = 0 },\n yAxis = { x = 0, y = 1, z = 0 },\n zAxis = { x = 0, y = 0, z = 1 }\n }\n })\n |> startProfileAt([0, 0], %)\n |> line(end = [100.0, 0])\n |> yLine(-100.0, %)\n |> xLine(-100.0, %)\n |> yLine(100.0, %)\n |> close()\n |> extrude(length = 3.14)" ] }, @@ -303362,6 +304482,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -304970,6 +306097,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -306622,6 +307756,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -308274,6 +309415,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -310257,6 +311405,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -312842,6 +313997,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -314446,6 +315608,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -316115,6 +317284,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -316702,7 +317878,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArc({ radius = 10, offset = -120 }, %)\n |> angledLine({ angle = -60, length = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArc({ radius = 10, offset = -120 }, %)\n |> angledLine({ angle = -60, length = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -317815,6 +318991,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -319419,6 +320602,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -321088,6 +322278,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -321675,7 +322872,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line(end = [10, -15])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line(end = [10, -15])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -322788,6 +323985,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -324392,6 +325596,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -326061,6 +327272,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -326648,7 +327866,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 45, length = 10 }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 45, length = 10 }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -328117,6 +329335,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -329723,6 +330948,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -331324,6 +332556,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -332998,6 +334237,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -334435,6 +335681,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -336039,6 +337292,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -337708,6 +338968,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -338295,7 +339562,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> xLine(15, %)\n |> angledLine({ angle = 80, length = 15 }, %)\n |> line(end = [8, -10])\n |> xLine(10, %)\n |> angledLine({ angle = 120, length = 30 }, %)\n |> xLine(-15, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> xLine(15, %)\n |> angledLine({ angle = 80, length = 15 }, %)\n |> line(end = [8, -10])\n |> xLine(10, %)\n |> angledLine({ angle = 120, length = 30 }, %)\n |> xLine(-15, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -339403,6 +340670,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -341007,6 +342281,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -342676,6 +343957,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -343263,7 +344551,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> xLineTo(15, %)\n |> angledLine({ angle = 80, length = 15 }, %)\n |> line(end = [8, -10])\n |> xLineTo(40, %)\n |> angledLine({ angle = 135, length = 30 }, %)\n |> xLineTo(10, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> xLineTo(15, %)\n |> angledLine({ angle = 80, length = 15 }, %)\n |> line(end = [8, -10])\n |> xLineTo(40, %)\n |> angledLine({ angle = 135, length = 30 }, %)\n |> xLineTo(10, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -344371,6 +345659,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -345975,6 +347270,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -347644,6 +348946,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -348231,7 +349540,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> yLine(15, %)\n |> angledLine({ angle = 30, length = 15 }, %)\n |> line(end = [8, -10])\n |> yLine(-5, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> yLine(15, %)\n |> angledLine({ angle = 30, length = 15 }, %)\n |> line(end = [8, -10])\n |> yLine(-5, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { @@ -349339,6 +350648,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -350943,6 +352259,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -352612,6 +353935,13 @@ "enum": [ "Custom" ] + }, + { + "description": "A custom plane which has not been sent to the engine. It must be sent before it is used.", + "type": "string", + "enum": [ + "Uninit" + ] } ] }, @@ -353199,7 +354529,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = 45 }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + "exampleSketch = startSketchOn(XZ)\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = 45 }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" ] }, { diff --git a/docs/kcl/tangentialArc.md b/docs/kcl/tangentialArc.md index 337bea3e05..7e08e6d391 100644 --- a/docs/kcl/tangentialArc.md +++ b/docs/kcl/tangentialArc.md @@ -29,7 +29,7 @@ tangentialArc(data: TangentialArcData, sketch: Sketch, tag?: TagDeclarator) -> S ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLine({ angle = 60, length = 10 }, %) |> tangentialArc({ radius = 10, offset = -120 }, %) diff --git a/docs/kcl/tangentialArcTo.md b/docs/kcl/tangentialArcTo.md index 06d6c9ff46..15fcc0e015 100644 --- a/docs/kcl/tangentialArcTo.md +++ b/docs/kcl/tangentialArcTo.md @@ -29,7 +29,7 @@ tangentialArcTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLine({ angle = 60, length = 10 }, %) |> tangentialArcTo([15, 15], %) diff --git a/docs/kcl/tangentialArcToRelative.md b/docs/kcl/tangentialArcToRelative.md index e13efae013..e14e081ed6 100644 --- a/docs/kcl/tangentialArcToRelative.md +++ b/docs/kcl/tangentialArcToRelative.md @@ -29,7 +29,7 @@ tangentialArcToRelative(delta: [number], sketch: Sketch, tag?: TagDeclarator) -> ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLine({ angle = 45, length = 10 }, %) |> tangentialArcToRelative([0, -10], %) diff --git a/docs/kcl/types/PlaneType.md b/docs/kcl/types/PlaneType.md index 499c815777..e2ccc50de4 100644 --- a/docs/kcl/types/PlaneType.md +++ b/docs/kcl/types/PlaneType.md @@ -34,6 +34,18 @@ A custom plane. +---- +A custom plane which has not been sent to the engine. It must be sent before it is used. + +**enum:** `Uninit` + + + + + + + + ---- diff --git a/docs/kcl/xLine.md b/docs/kcl/xLine.md index b9e8713604..72c46de741 100644 --- a/docs/kcl/xLine.md +++ b/docs/kcl/xLine.md @@ -29,7 +29,7 @@ xLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> xLine(15, %) |> angledLine({ angle = 80, length = 15 }, %) diff --git a/docs/kcl/xLineTo.md b/docs/kcl/xLineTo.md index 7983f9890b..bc62fc5f68 100644 --- a/docs/kcl/xLineTo.md +++ b/docs/kcl/xLineTo.md @@ -29,7 +29,7 @@ xLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> xLineTo(15, %) |> angledLine({ angle = 80, length = 15 }, %) diff --git a/docs/kcl/yLine.md b/docs/kcl/yLine.md index adcc3eb1d3..6e71e1740d 100644 --- a/docs/kcl/yLine.md +++ b/docs/kcl/yLine.md @@ -29,7 +29,7 @@ yLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn('XZ') +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> yLine(15, %) |> angledLine({ angle = 30, length = 15 }, %) diff --git a/docs/kcl/yLineTo.md b/docs/kcl/yLineTo.md index ba2c15ed78..222f5295e5 100644 --- a/docs/kcl/yLineTo.md +++ b/docs/kcl/yLineTo.md @@ -29,7 +29,7 @@ yLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch ### Examples ```js -exampleSketch = startSketchOn("XZ") +exampleSketch = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> angledLine({ angle = 50, length = 45 }, %) |> yLineTo(0, %) diff --git a/src/wasm-lib/kcl/src/execution/exec_ast.rs b/src/wasm-lib/kcl/src/execution/exec_ast.rs index 31161678d6..d86974eb22 100644 --- a/src/wasm-lib/kcl/src/execution/exec_ast.rs +++ b/src/wasm-lib/kcl/src/execution/exec_ast.rs @@ -8,21 +8,22 @@ use crate::{ execution::{ annotations, cad_op::{OpArg, OpKclValue, Operation}, - kcl_value::{FunctionSource, NumericType}, + kcl_value::{FunctionSource, NumericType, PrimitiveType, RuntimeType}, memory, state::ModuleState, - BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, TagEngineInfo, TagIdentifier, + BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, Plane, PlaneType, Point3d, + TagEngineInfo, TagIdentifier, }, modules::{ModuleId, ModulePath, ModuleRepr}, parsing::ast::types::{ Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, CallExpression, CallExpressionKw, Expr, FunctionExpression, IfExpression, ImportPath, ImportSelector, ItemVisibility, LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, Node, NodeRef, - ObjectExpression, PipeExpression, Program, TagDeclarator, UnaryExpression, UnaryOperator, + ObjectExpression, PipeExpression, Program, TagDeclarator, Type, UnaryExpression, UnaryOperator, }, source_range::SourceRange, std::{ - args::{Arg, KwArgs}, + args::{Arg, FromKclValue, KwArgs}, FunctionKind, }, CompilationError, @@ -586,11 +587,89 @@ impl ExecutorContext { // TODO this lets us use the label as a variable name, but not as a tag in most cases result } + Expr::AscribedExpression(expr) => { + let result = self + .execute_expr(&expr.expr, exec_state, metadata, &[], statement_kind) + .await?; + coerce(result, &expr.ty, exec_state).map_err(|value| { + KclError::Semantic(KclErrorDetails { + message: format!( + "could not coerce {} value to type {}", + value.human_friendly_type(), + expr.ty + ), + source_ranges: vec![expr.into()], + }) + })? + } }; Ok(item) } } +fn coerce(value: KclValue, ty: &Node, exec_state: &mut ExecState) -> Result { + let ty = RuntimeType::from_parsed(ty.inner.clone(), &exec_state.mod_local.settings).ok_or_else(|| value.clone())?; + if value.has_type(&ty) { + return Ok(value); + } + + // TODO coerce numeric types + + if let KclValue::Object { value, meta } = value { + return match ty { + RuntimeType::Primitive(PrimitiveType::Plane) => { + let origin = value + .get("origin") + .and_then(Point3d::from_kcl_val) + .ok_or_else(|| KclValue::Object { + value: value.clone(), + meta: meta.clone(), + })?; + let x_axis = value + .get("xAxis") + .and_then(Point3d::from_kcl_val) + .ok_or_else(|| KclValue::Object { + value: value.clone(), + meta: meta.clone(), + })?; + let y_axis = value + .get("yAxis") + .and_then(Point3d::from_kcl_val) + .ok_or_else(|| KclValue::Object { + value: value.clone(), + meta: meta.clone(), + })?; + let z_axis = value + .get("zAxis") + .and_then(Point3d::from_kcl_val) + .ok_or_else(|| KclValue::Object { + value: value.clone(), + meta: meta.clone(), + })?; + + let id = exec_state.global.id_generator.next_uuid(); + let plane = Plane { + id, + artifact_id: id.into(), + origin, + x_axis, + y_axis, + z_axis, + value: PlaneType::Uninit, + // TODO use length unit from origin + units: exec_state.length_unit(), + meta, + }; + + Ok(KclValue::Plane { value: Box::new(plane) }) + } + _ => Err(KclValue::Object { value, meta }), + }; + } + + Err(value) +} + impl BinaryPart { #[async_recursion] pub async fn get_result(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result { @@ -882,9 +961,19 @@ impl Node { ty: ty.clone(), }) } + KclValue::Plane { value } => { + let mut plane = value.clone(); + plane.z_axis.x *= -1.0; + plane.z_axis.y *= -1.0; + plane.z_axis.z *= -1.0; + + plane.value = PlaneType::Uninit; + plane.id = exec_state.next_uuid(); + Ok(KclValue::Plane { value: plane }) + } _ => Err(KclError::Semantic(KclErrorDetails { message: format!( - "You can only negate numbers, but this is a {}", + "You can only negate numbers or planes, but this is a {}", value.human_friendly_type() ), source_ranges: vec![self.into()], @@ -1950,6 +2039,65 @@ mod test { } } + #[tokio::test(flavor = "multi_thread")] + async fn ascription() { + let program = r#" +a = 42: number +b = a: number +p = { + origin = { x = 0, y = 0, z = 0 }, + xAxis = { x = 1, y = 0, z = 0 }, + yAxis = { x = 0, y = 1, z = 0 }, + zAxis = { x = 0, y = 0, z = 1 } +}: Plane +"#; + + let result = parse_execute(program).await.unwrap(); + let mem = result.3.memory(); + assert!(matches!( + mem.get_from("p", result.1, SourceRange::default()).unwrap(), + KclValue::Plane { .. } + )); + + let program = r#" +a = 42: string +"#; + let result = parse_execute(program).await; + assert!(result + .unwrap_err() + .to_string() + .contains("could not coerce number value to type string")); + + let program = r#" +a = 42: Plane +"#; + let result = parse_execute(program).await; + assert!(result + .unwrap_err() + .to_string() + .contains("could not coerce number value to type Plane")); + } + + #[tokio::test(flavor = "multi_thread")] + async fn neg_plane() { + let program = r#" +p = { + origin = { x = 0, y = 0, z = 0 }, + xAxis = { x = 1, y = 0, z = 0 }, + yAxis = { x = 0, y = 1, z = 0 }, + zAxis = { x = 0, y = 0, z = 1 } +}: Plane +p2 = -p +"#; + + let result = parse_execute(program).await.unwrap(); + let mem = result.3.memory(); + match mem.get_from("p2", result.1, SourceRange::default()).unwrap() { + KclValue::Plane { value } => assert_eq!(value.z_axis.z, -1.0), + _ => unreachable!(), + } + } + #[tokio::test(flavor = "multi_thread")] async fn multiple_returns() { let program = r#"fn foo() { diff --git a/src/wasm-lib/kcl/src/execution/geometry.rs b/src/wasm-lib/kcl/src/execution/geometry.rs index 24b149e699..1d9387c572 100644 --- a/src/wasm-lib/kcl/src/execution/geometry.rs +++ b/src/wasm-lib/kcl/src/execution/geometry.rs @@ -13,6 +13,7 @@ use crate::{ errors::KclError, execution::{ExecState, Metadata, TagEngineInfo, TagIdentifier, UnitLen}, parsing::ast::types::{Node, NodeRef, TagDeclarator, TagNode}, + std::sketch::PlaneData, }; type Point2D = kcmc::shared::Point2d; @@ -267,10 +268,82 @@ pub struct Plane { } impl Plane { - pub(crate) fn from_plane_data(value: crate::std::sketch::PlaneData, exec_state: &mut ExecState) -> Self { + pub(crate) fn into_plane_data(self) -> PlaneData { + if self.origin == Point3d::new(0.0, 0.0, 0.0) { + match self { + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 1.0, y: 0.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 1.0, z: 0.0 }, + z_axis: Point3d { x: 0.0, y: 0.0, z: 1.0 }, + .. + } => return PlaneData::XY, + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 1.0, y: 0.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 1.0, z: 0.0 }, + z_axis: + Point3d { + x: 0.0, + y: 0.0, + z: -1.0, + }, + .. + } => return PlaneData::NegXY, + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 1.0, y: 0.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 0.0, z: 1.0 }, + z_axis: + Point3d { + x: 0.0, + y: -1.0, + z: 0.0, + }, + .. + } => return PlaneData::XZ, + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 1.0, y: 0.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 0.0, z: 1.0 }, + z_axis: Point3d { x: 0.0, y: 1.0, z: 0.0 }, + .. + } => return PlaneData::NegXZ, + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 0.0, y: 1.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 0.0, z: 1.0 }, + z_axis: Point3d { x: 1.0, y: 0.0, z: 0.0 }, + .. + } => return PlaneData::YZ, + Self { + origin: Point3d { x: 0.0, y: 0.0, z: 0.0 }, + x_axis: Point3d { x: 0.0, y: 1.0, z: 0.0 }, + y_axis: Point3d { x: 0.0, y: 0.0, z: 1.0 }, + z_axis: + Point3d { + x: -1.0, + y: 0.0, + z: 0.0, + }, + .. + } => return PlaneData::NegYZ, + _ => {} + } + } + + PlaneData::Plane { + origin: self.origin, + x_axis: self.x_axis, + y_axis: self.y_axis, + z_axis: self.z_axis, + } + } + + pub(crate) fn from_plane_data(value: PlaneData, exec_state: &mut ExecState) -> Self { let id = exec_state.global.id_generator.next_uuid(); match value { - crate::std::sketch::PlaneData::XY => Plane { + PlaneData::XY => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -281,7 +354,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::NegXY => Plane { + PlaneData::NegXY => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -292,7 +365,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::XZ => Plane { + PlaneData::XZ => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -303,7 +376,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::NegXZ => Plane { + PlaneData::NegXZ => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -314,7 +387,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::YZ => Plane { + PlaneData::YZ => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -325,7 +398,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::NegYZ => Plane { + PlaneData::NegYZ => Plane { id, artifact_id: id.into(), origin: Point3d::new(0.0, 0.0, 0.0), @@ -336,7 +409,7 @@ impl Plane { units: exec_state.length_unit(), meta: vec![], }, - crate::std::sketch::PlaneData::Plane { + PlaneData::Plane { origin, x_axis, y_axis, @@ -344,10 +417,10 @@ impl Plane { } => Plane { id, artifact_id: id.into(), - origin: *origin, - x_axis: *x_axis, - y_axis: *y_axis, - z_axis: *z_axis, + origin, + x_axis, + y_axis, + z_axis, value: PlaneType::Custom, units: exec_state.length_unit(), meta: vec![], @@ -356,9 +429,8 @@ impl Plane { } /// The standard planes are XY, YZ and XZ (in both positive and negative) - /// Custom planes are any other plane that the user might specify. - pub fn is_custom(&self) -> bool { - matches!(self.value, PlaneType::Custom) + pub fn is_standard(&self) -> bool { + !matches!(self.value, PlaneType::Custom | PlaneType::Uninit) } } @@ -389,7 +461,6 @@ pub struct Face { /// Type for a plane. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, FromStr, Display)] #[ts(export)] -#[serde(rename_all = "camelCase")] #[display(style = "camelCase")] pub enum PlaneType { #[serde(rename = "XY", alias = "xy")] @@ -402,9 +473,11 @@ pub enum PlaneType { #[display("YZ")] YZ, /// A custom plane. - #[serde(rename = "Custom")] #[display("Custom")] Custom, + /// A custom plane which has not been sent to the engine. It must be sent before it is used. + #[display("Uninit")] + Uninit, } /// A sketch is a collection of paths. diff --git a/src/wasm-lib/kcl/src/execution/kcl_value.rs b/src/wasm-lib/kcl/src/execution/kcl_value.rs index 68d75d4d82..9d6442b996 100644 --- a/src/wasm-lib/kcl/src/execution/kcl_value.rs +++ b/src/wasm-lib/kcl/src/execution/kcl_value.rs @@ -13,7 +13,8 @@ use crate::{ }, parsing::{ ast::types::{ - DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode, + DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, + PrimitiveType as AstPrimitiveType, TagDeclarator, TagNode, Type, }, token::NumericSuffix, }, @@ -562,6 +563,51 @@ impl KclValue { Ok(*b) } + /// True if `self` has a type which is a subtype of `ty` without coercion. + pub fn has_type(&self, ty: &RuntimeType) -> bool { + let Some(self_ty) = self.ty() else { + return false; + }; + + self_ty.subtype(ty) + } + + fn ty(&self) -> Option { + match self { + KclValue::Bool { .. } => Some(RuntimeType::Primitive(PrimitiveType::Boolean)), + KclValue::Number { ty, .. } => Some(RuntimeType::Primitive(PrimitiveType::Number(ty.clone()))), + KclValue::String { .. } => Some(RuntimeType::Primitive(PrimitiveType::String)), + KclValue::Object { value, .. } => { + let properties = value + .iter() + .map(|(k, v)| v.ty().map(|t| (k.clone(), t))) + .collect::>>()?; + Some(RuntimeType::Object(properties)) + } + KclValue::Plane { .. } => Some(RuntimeType::Primitive(PrimitiveType::Plane)), + KclValue::Sketch { .. } => Some(RuntimeType::Primitive(PrimitiveType::Sketch)), + KclValue::Sketches { .. } => Some(RuntimeType::Array(PrimitiveType::Sketch)), + KclValue::Solid { .. } => Some(RuntimeType::Primitive(PrimitiveType::Solid)), + KclValue::Solids { .. } => Some(RuntimeType::Array(PrimitiveType::Solid)), + KclValue::Array { value, .. } => Some(RuntimeType::Tuple( + value + .iter() + .map(|v| v.ty().and_then(RuntimeType::primitive)) + .collect::>>()?, + )), + KclValue::Face { .. } => None, + KclValue::Helix { .. } => None, + KclValue::ImportedGeometry(..) => None, + KclValue::Function { .. } => None, + KclValue::Module { .. } => None, + KclValue::TagIdentifier(_) => None, + KclValue::TagDeclarator(_) => None, + KclValue::KclNone { .. } => None, + KclValue::Uuid { .. } => None, + KclValue::Tombstone { .. } => None, + } + } + /// If this memory item is a function, call it with the given arguments, return its val as Ok. /// If it's not a function, return Err. pub async fn call_fn( @@ -647,6 +693,79 @@ impl KclValue { } } +#[derive(Debug, Clone, PartialEq)] +pub enum RuntimeType { + Primitive(PrimitiveType), + Array(PrimitiveType), + Tuple(Vec), + Object(Vec<(String, RuntimeType)>), +} + +impl RuntimeType { + pub fn from_parsed(value: Type, settings: &super::MetaSettings) -> Option { + match value { + Type::Primitive(pt) => Some(RuntimeType::Primitive(PrimitiveType::from_parsed(pt, settings)?)), + Type::Array(pt) => Some(RuntimeType::Array(PrimitiveType::from_parsed(pt, settings)?)), + Type::Object { properties } => Some(RuntimeType::Object( + properties + .into_iter() + .map(|p| { + p.type_.and_then(|t| { + RuntimeType::from_parsed(t.inner, settings).map(|ty| (p.identifier.inner.name, ty)) + }) + }) + .collect::>>()?, + )), + } + } + + // Subtype with no coercion, including refining numeric types. + fn subtype(&self, sup: &RuntimeType) -> bool { + use RuntimeType::*; + + match (self, sup) { + // TODO arrays could be covariant + (Primitive(t1), Primitive(t2)) | (Array(t1), Array(t2)) => t1 == t2, + (Tuple(t1), Tuple(t2)) => t1 == t2, + (Tuple(t1), Array(t2)) => t1.iter().all(|t| t == t2), + // TODO record subtyping - subtype can be larger, fields can be covariant. + (Object(t1), Object(t2)) => t1 == t2, + _ => false, + } + } + + fn primitive(self) -> Option { + match self { + RuntimeType::Primitive(t) => Some(t), + _ => None, + } + } +} + +#[derive(Debug, Clone, PartialEq)] +pub enum PrimitiveType { + Number(NumericType), + String, + Boolean, + Sketch, + Solid, + Plane, +} + +impl PrimitiveType { + fn from_parsed(value: AstPrimitiveType, settings: &super::MetaSettings) -> Option { + match value { + AstPrimitiveType::String => Some(PrimitiveType::String), + AstPrimitiveType::Boolean => Some(PrimitiveType::Boolean), + AstPrimitiveType::Number(suffix) => Some(PrimitiveType::Number(NumericType::from_parsed(suffix, settings))), + AstPrimitiveType::Sketch => Some(PrimitiveType::Sketch), + AstPrimitiveType::Solid => Some(PrimitiveType::Solid), + AstPrimitiveType::Plane => Some(PrimitiveType::Plane), + _ => None, + } + } +} + #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(tag = "type")] diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index f94b53c261..29ef743ca8 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -948,7 +948,7 @@ yo = 5 + 6 abc = 3 identifierGuy = 5 -part001 = startSketchOn('XY') +part001 = startSketchOn(XY) |> startProfileAt([-1.2, 4.83], %) |> line(end = [2.8, 0]) |> angledLine([100 + 100, 3.01], %) @@ -965,7 +965,7 @@ yo2 = hmm([identifierGuy + 5])"#; #[tokio::test(flavor = "multi_thread")] async fn test_execute_with_pipe_substitutions_unary() { let ast = r#"const myVar = 3 -const part001 = startSketchOn('XY') +const part001 = startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [3, 4], tag = $seg01) |> line(end = [ @@ -980,7 +980,7 @@ const part001 = startSketchOn('XY') #[tokio::test(flavor = "multi_thread")] async fn test_execute_with_pipe_substitutions() { let ast = r#"const myVar = 3 -const part001 = startSketchOn('XY') +const part001 = startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [3, 4], tag = $seg01) |> line(end = [ @@ -1003,7 +1003,7 @@ const halfArmAngle = armAngle / 2 const arrExpShouldNotBeIncluded = [1, 2, 3] const objExpShouldNotBeIncluded = { a: 1, b: 2, c: 3 } -const part001 = startSketchOn('XY') +const part001 = startSketchOn(XY) |> startProfileAt([0, 0], %) |> yLineTo(1, %) |> xLine(3.84, %) // selection-range-7ish-before-this @@ -1024,7 +1024,7 @@ fn thing = () => { return -8 } -const firstExtrude = startSketchOn('XY') +const firstExtrude = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1045,7 +1045,7 @@ fn thing = (x) => { return -x } -const firstExtrude = startSketchOn('XY') +const firstExtrude = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1066,7 +1066,7 @@ fn thing = (x) => { return [0, -x] } -const firstExtrude = startSketchOn('XY') +const firstExtrude = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1091,7 +1091,7 @@ fn thing = (x) => { return other_thing(x) } -const firstExtrude = startSketchOn('XY') +const firstExtrude = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1105,7 +1105,7 @@ const firstExtrude = startSketchOn('XY') #[tokio::test(flavor = "multi_thread")] async fn test_execute_with_function_sketch() { let ast = r#"fn box = (h, l, w) => { - const myBox = startSketchOn('XY') + const myBox = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1124,7 +1124,7 @@ const fnBox = box(3, 6, 10)"#; #[tokio::test(flavor = "multi_thread")] async fn test_get_member_of_object_with_function_period() { let ast = r#"fn box = (obj) => { - let myBox = startSketchOn('XY') + let myBox = startSketchOn(XY) |> startProfileAt(obj.start, %) |> line(end = [0, obj.l]) |> line(end = [obj.w, 0]) @@ -1143,7 +1143,7 @@ const thisBox = box({start: [0,0], l: 6, w: 10, h: 3}) #[tokio::test(flavor = "multi_thread")] async fn test_get_member_of_object_with_function_brace() { let ast = r#"fn box = (obj) => { - let myBox = startSketchOn('XY') + let myBox = startSketchOn(XY) |> startProfileAt(obj["start"], %) |> line(end = [0, obj["l"]]) |> line(end = [obj["w"], 0]) @@ -1162,7 +1162,7 @@ const thisBox = box({start: [0,0], l: 6, w: 10, h: 3}) #[tokio::test(flavor = "multi_thread")] async fn test_get_member_of_object_with_function_mix_period_brace() { let ast = r#"fn box = (obj) => { - let myBox = startSketchOn('XY') + let myBox = startSketchOn(XY) |> startProfileAt(obj["start"], %) |> line(end = [0, obj["l"]]) |> line(end = [obj["w"], 0]) @@ -1184,7 +1184,7 @@ const thisBox = box({start: [0,0], l: 6, w: 10, h: 3}) let ast = r#" fn test2 = () => { return { - thing: startSketchOn('XY') + thing: startSketchOn(XY) |> startProfileAt([0, 0], %) |> line(end = [0, 1]) |> line(end = [1, 0]) @@ -1205,7 +1205,7 @@ x2.thing #[ignore] // ignore til we get loops async fn test_execute_with_function_sketch_loop_objects() { let ast = r#"fn box = (obj) => { -let myBox = startSketchOn('XY') +let myBox = startSketchOn(XY) |> startProfileAt(obj.start, %) |> line(end = [0, obj.l]) |> line(end = [obj.w, 0]) @@ -1227,7 +1227,7 @@ for var in [{start: [0,0], l: 6, w: 10, h: 3}, {start: [-10,-10], l: 3, w: 5, h: #[ignore] // ignore til we get loops async fn test_execute_with_function_sketch_loop_array() { let ast = r#"fn box = (h, l, w, start) => { - const myBox = startSketchOn('XY') + const myBox = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, l]) |> line(end = [w, 0]) @@ -1249,7 +1249,7 @@ for var in [[3, 6, 10, [0,0]], [1.5, 3, 5, [-10,-10]]] { #[tokio::test(flavor = "multi_thread")] async fn test_get_member_of_array_with_function() { let ast = r#"fn box = (arr) => { - let myBox =startSketchOn('XY') + let myBox =startSketchOn(XY) |> startProfileAt(arr[0], %) |> line(end = [0, arr[1]]) |> line(end = [arr[2], 0]) @@ -1335,7 +1335,7 @@ fn transform = (replicaId) => { } fn layer = () => { - return startSketchOn("XY") + return startSketchOn(XY) |> circle({ center: [0, 0], radius: 1 }, %, $tag1) |> extrude(length = 10) } @@ -1448,7 +1448,7 @@ const leg1 = 5 // inches const leg2 = 8 // inches fn thickness = () => { return 0.56 } -const bracket = startSketchOn('XY') +const bracket = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, leg1]) |> line(end = [leg2, 0]) @@ -1645,7 +1645,7 @@ const leg2 = 8 // inches const thickness_squared = distance * p * FOS * 6 / sigmaAllow const thickness = 0.56 // inches. App does not support square root function yet -const bracket = startSketchOn('XY') +const bracket = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, leg1]) |> line(end = [leg2, 0]) @@ -1679,7 +1679,7 @@ const leg1 = 5 // inches const leg2 = 8 // inches const thickness_squared = (distance * p * FOS * 6 / (sigmaAllow - width)) const thickness = 0.32 // inches. App does not support square root function yet -const bracket = startSketchOn('XY') +const bracket = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, leg1]) |> line(end = [leg2, 0]) @@ -1703,7 +1703,7 @@ const leg1 = 5 // inches const leg2 = 8 // inches const thickness_squared = distance * p * FOS * 6 / (sigmaAllow - width) const thickness = 0.32 // inches. App does not support square root function yet -const bracket = startSketchOn('XY') +const bracket = startSketchOn(XY) |> startProfileAt([0,0], %) |> line(end = [0, leg1]) |> line(end = [leg2, 0]) @@ -1738,7 +1738,7 @@ let w = f() + f() #[tokio::test(flavor = "multi_thread")] async fn kcl_test_ids_stable_between_executions() { - let code = r#"sketch001 = startSketchOn('XZ') + let code = r#"sketch001 = startSketchOn(XZ) |> startProfileAt([61.74, 206.13], %) |> xLine(305.11, %, $seg01) |> yLine(-291.85, %) @@ -1763,7 +1763,7 @@ let w = f() + f() // Get the id_generator from the first execution. let id_generator = cache::read_old_ast().await.unwrap().exec_state.global.id_generator; - let code = r#"sketch001 = startSketchOn('XZ') + let code = r#"sketch001 = startSketchOn(XZ) |> startProfileAt([62.74, 206.13], %) |> xLine(305.11, %, $seg01) |> yLine(-291.85, %) diff --git a/src/wasm-lib/kcl/src/parsing/ast/digest.rs b/src/wasm-lib/kcl/src/parsing/ast/digest.rs index 9e1007e640..9bcc4927f4 100644 --- a/src/wasm-lib/kcl/src/parsing/ast/digest.rs +++ b/src/wasm-lib/kcl/src/parsing/ast/digest.rs @@ -1,12 +1,12 @@ use sha2::{Digest as DigestTrait, Sha256}; -use super::types::{DefaultParamVal, ItemVisibility, LabelledExpression, LiteralValue, VariableKind}; use crate::parsing::ast::types::{ - Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryPart, BodyItem, CallExpression, - CallExpressionKw, ElseIf, Expr, ExpressionStatement, FnArgType, FunctionExpression, Identifier, IfExpression, - ImportItem, ImportSelector, ImportStatement, KclNone, Literal, LiteralIdentifier, MemberExpression, MemberObject, - ObjectExpression, ObjectProperty, Parameter, PipeExpression, PipeSubstitution, Program, ReturnStatement, - TagDeclarator, UnaryExpression, VariableDeclaration, VariableDeclarator, + Annotation, ArrayExpression, ArrayRangeExpression, Ascription, BinaryExpression, BinaryPart, BodyItem, + CallExpression, CallExpressionKw, DefaultParamVal, ElseIf, Expr, ExpressionStatement, FunctionExpression, + Identifier, IfExpression, ImportItem, ImportSelector, ImportStatement, ItemVisibility, KclNone, LabelledExpression, + Literal, LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, ObjectExpression, ObjectProperty, + Parameter, PipeExpression, PipeSubstitution, Program, ReturnStatement, TagDeclarator, Type, UnaryExpression, + VariableDeclaration, VariableDeclarator, VariableKind, }; /// Position-independent digest of the AST node. @@ -142,6 +142,7 @@ impl Expr { Expr::UnaryExpression(ue) => ue.compute_digest(), Expr::IfExpression(e) => e.compute_digest(), Expr::LabelledExpression(e) => e.compute_digest(), + Expr::AscribedExpression(e) => e.compute_digest(), Expr::None(_) => { let mut hasher = Sha256::new(); hasher.update(b"Value::None"); @@ -183,20 +184,20 @@ impl LiteralIdentifier { } } } -impl FnArgType { +impl Type { pub fn compute_digest(&mut self) -> Digest { let mut hasher = Sha256::new(); match self { - FnArgType::Primitive(prim) => { + Type::Primitive(prim) => { hasher.update(b"FnArgType::Primitive"); hasher.update(prim.digestable_id()) } - FnArgType::Array(prim) => { + Type::Array(prim) => { hasher.update(b"FnArgType::Array"); hasher.update(prim.digestable_id()) } - FnArgType::Object { properties } => { + Type::Object { properties } => { hasher.update(b"FnArgType::Object"); hasher.update(properties.len().to_ne_bytes()); for prop in properties.iter_mut() { @@ -409,6 +410,13 @@ impl LabelledExpression { }); } +impl Ascription { + compute_digest!(|slf, hasher| { + hasher.update(slf.expr.compute_digest()); + hasher.update(slf.ty.compute_digest()); + }); +} + impl PipeExpression { compute_digest!(|slf, hasher| { hasher.update(slf.body.len().to_ne_bytes()); diff --git a/src/wasm-lib/kcl/src/parsing/ast/mod.rs b/src/wasm-lib/kcl/src/parsing/ast/mod.rs index a4e74fc00d..0c530539a5 100644 --- a/src/wasm-lib/kcl/src/parsing/ast/mod.rs +++ b/src/wasm-lib/kcl/src/parsing/ast/mod.rs @@ -37,6 +37,7 @@ impl Expr { Expr::UnaryExpression(unary_expression) => unary_expression.module_id, Expr::IfExpression(expr) => expr.module_id, Expr::LabelledExpression(expr) => expr.expr.module_id(), + Expr::AscribedExpression(expr) => expr.expr.module_id(), Expr::None(none) => none.module_id, } } diff --git a/src/wasm-lib/kcl/src/parsing/ast/types/mod.rs b/src/wasm-lib/kcl/src/parsing/ast/types/mod.rs index 87d480adeb..0217b96f77 100644 --- a/src/wasm-lib/kcl/src/parsing/ast/types/mod.rs +++ b/src/wasm-lib/kcl/src/parsing/ast/types/mod.rs @@ -675,6 +675,7 @@ pub enum Expr { UnaryExpression(BoxNode), IfExpression(BoxNode), LabelledExpression(BoxNode), + AscribedExpression(BoxNode), None(Node), } @@ -718,6 +719,7 @@ impl Expr { Expr::PipeSubstitution(_pipe_substitution) => None, Expr::IfExpression(_) => None, Expr::LabelledExpression(expr) => expr.expr.get_non_code_meta(), + Expr::AscribedExpression(expr) => expr.expr.get_non_code_meta(), Expr::None(_none) => None, } } @@ -745,6 +747,7 @@ impl Expr { Expr::IfExpression(_) => {} Expr::PipeSubstitution(_) => {} Expr::LabelledExpression(expr) => expr.expr.replace_value(source_range, new_value), + Expr::AscribedExpression(expr) => expr.expr.replace_value(source_range, new_value), Expr::None(_) => {} } } @@ -767,6 +770,7 @@ impl Expr { Expr::UnaryExpression(unary_expression) => unary_expression.start, Expr::IfExpression(expr) => expr.start, Expr::LabelledExpression(expr) => expr.start, + Expr::AscribedExpression(expr) => expr.start, Expr::None(none) => none.start, } } @@ -789,6 +793,7 @@ impl Expr { Expr::UnaryExpression(unary_expression) => unary_expression.end, Expr::IfExpression(expr) => expr.end, Expr::LabelledExpression(expr) => expr.end, + Expr::AscribedExpression(expr) => expr.end, Expr::None(none) => none.end, } } @@ -817,6 +822,8 @@ impl Expr { Expr::TagDeclarator(_) => None, // TODO LSP hover info for tag Expr::LabelledExpression(expr) => expr.expr.get_hover_value_for_position(pos, code), + // TODO LSP hover info for type + Expr::AscribedExpression(expr) => expr.expr.get_hover_value_for_position(pos, code), // TODO: LSP hover information for symbols. https://github.com/KittyCAD/modeling-app/issues/1127 Expr::PipeSubstitution(_) => None, } @@ -847,6 +854,7 @@ impl Expr { Expr::UnaryExpression(ref mut unary_expression) => unary_expression.rename_identifiers(old_name, new_name), Expr::IfExpression(ref mut expr) => expr.rename_identifiers(old_name, new_name), Expr::LabelledExpression(expr) => expr.expr.rename_identifiers(old_name, new_name), + Expr::AscribedExpression(expr) => expr.expr.rename_identifiers(old_name, new_name), Expr::None(_) => {} } } @@ -873,6 +881,7 @@ impl Expr { Expr::UnaryExpression(unary_expression) => unary_expression.get_constraint_level(), Expr::IfExpression(expr) => expr.get_constraint_level(), Expr::LabelledExpression(expr) => expr.expr.get_constraint_level(), + Expr::AscribedExpression(expr) => expr.expr.get_constraint_level(), Expr::None(none) => none.get_constraint_level(), } } @@ -882,6 +891,7 @@ impl Expr { Expr::CallExpression(call_expression) => call_expression.has_substitution_arg(), Expr::CallExpressionKw(call_expression) => call_expression.has_substitution_arg(), Expr::LabelledExpression(expr) => expr.expr.has_substitution_arg(), + Expr::AscribedExpression(expr) => expr.expr.has_substitution_arg(), _ => false, } } @@ -910,6 +920,7 @@ impl Expr { Expr::UnaryExpression(_) => "expression", Expr::IfExpression(_) => "if expression", Expr::LabelledExpression(_) => "labelled expression", + Expr::AscribedExpression(_) => "type-ascribed expression", Expr::None(_) => "none", } } @@ -994,6 +1005,27 @@ impl LabelledExpression { } } +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(tag = "type")] +pub struct Ascription { + pub expr: Expr, + pub ty: Node, + + #[serde(default, skip_serializing_if = "Option::is_none")] + #[ts(optional)] + pub digest: Option, +} + +impl Ascription { + pub(crate) fn new(expr: Expr, ty: Node) -> Node { + let start = expr.start(); + let end = ty.end; + let module_id = expr.module_id(); + Node::new(Ascription { expr, ty, digest: None }, start, end, module_id) + } +} + #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(tag = "type")] @@ -2984,9 +3016,10 @@ impl PipeExpression { } } -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, ts_rs::TS, JsonSchema)] +#[ts(export)] #[serde(tag = "type")] -pub enum FnArgPrimitive { +pub enum PrimitiveType { /// A string type. String, /// A number type. @@ -3002,69 +3035,100 @@ pub enum FnArgPrimitive { SketchSurface, /// An solid type. Solid, + /// A plane. + Plane, } -impl FnArgPrimitive { +impl PrimitiveType { pub fn digestable_id(&self) -> &[u8] { match self { - FnArgPrimitive::String => b"string", - FnArgPrimitive::Number(suffix) => suffix.digestable_id(), - FnArgPrimitive::Boolean => b"bool", - FnArgPrimitive::Tag => b"tag", - FnArgPrimitive::Sketch => b"Sketch", - FnArgPrimitive::SketchSurface => b"SketchSurface", - FnArgPrimitive::Solid => b"Solid", + PrimitiveType::String => b"string", + PrimitiveType::Number(suffix) => suffix.digestable_id(), + PrimitiveType::Boolean => b"bool", + PrimitiveType::Tag => b"tag", + PrimitiveType::Sketch => b"Sketch", + PrimitiveType::SketchSurface => b"SketchSurface", + PrimitiveType::Solid => b"Solid", + PrimitiveType::Plane => b"Plane", } } pub fn from_str(s: &str, suffix: Option) -> Option { match (s, suffix) { - ("string", None) => Some(FnArgPrimitive::String), - ("bool", None) => Some(FnArgPrimitive::Boolean), - ("tag", None) => Some(FnArgPrimitive::Tag), - ("Sketch", None) => Some(FnArgPrimitive::Sketch), - ("SketchSurface", None) => Some(FnArgPrimitive::SketchSurface), - ("Solid", None) => Some(FnArgPrimitive::Solid), - ("number", None) => Some(FnArgPrimitive::Number(NumericSuffix::None)), - ("number", Some(s)) => Some(FnArgPrimitive::Number(s)), + ("string", None) => Some(PrimitiveType::String), + ("bool", None) => Some(PrimitiveType::Boolean), + ("tag", None) => Some(PrimitiveType::Tag), + ("Sketch", None) => Some(PrimitiveType::Sketch), + ("SketchSurface", None) => Some(PrimitiveType::SketchSurface), + ("Solid", None) => Some(PrimitiveType::Solid), + ("Plane", None) => Some(PrimitiveType::Plane), + ("number", None) => Some(PrimitiveType::Number(NumericSuffix::None)), + ("number", Some(s)) => Some(PrimitiveType::Number(s)), _ => None, } } } -impl fmt::Display for FnArgPrimitive { +impl fmt::Display for PrimitiveType { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - FnArgPrimitive::Number(suffix) => { + PrimitiveType::Number(suffix) => { write!(f, "number")?; if *suffix != NumericSuffix::None { write!(f, "({suffix})")?; } Ok(()) } - FnArgPrimitive::String => write!(f, "string"), - FnArgPrimitive::Boolean => write!(f, "bool"), - FnArgPrimitive::Tag => write!(f, "tag"), - FnArgPrimitive::Sketch => write!(f, "Sketch"), - FnArgPrimitive::SketchSurface => write!(f, "SketchSurface"), - FnArgPrimitive::Solid => write!(f, "Solid"), + PrimitiveType::String => write!(f, "string"), + PrimitiveType::Boolean => write!(f, "bool"), + PrimitiveType::Tag => write!(f, "tag"), + PrimitiveType::Sketch => write!(f, "Sketch"), + PrimitiveType::SketchSurface => write!(f, "SketchSurface"), + PrimitiveType::Solid => write!(f, "Solid"), + PrimitiveType::Plane => write!(f, "Plane"), } } } -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] #[serde(tag = "type")] -pub enum FnArgType { +pub enum Type { /// A primitive type. - Primitive(FnArgPrimitive), + Primitive(PrimitiveType), // An array of a primitive type. - Array(FnArgPrimitive), + Array(PrimitiveType), // An object type. Object { properties: Vec, }, } +impl fmt::Display for Type { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Type::Primitive(primitive_type) => primitive_type.fmt(f), + Type::Array(primitive_type) => write!(f, "{primitive_type}[]"), + Type::Object { properties } => { + write!(f, "{{")?; + let mut first = true; + for p in properties { + if first { + first = false; + } else { + write!(f, ",")?; + } + write!(f, "{}: ", p.identifier.name)?; + if let Some(ty) = &p.type_ { + write!(f, " {}", ty.inner)?; + } + } + write!(f, " }}") + } + } + } +} + /// Default value for a parameter of a KCL function. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] @@ -3092,7 +3156,7 @@ pub struct Parameter { /// The type of the parameter. /// This is optional if the user defines a type. #[serde(skip)] - pub type_: Option, + pub type_: Option>, /// Is the parameter optional? /// If so, what is its default value? /// If this is None, then the parameter is required. @@ -3142,7 +3206,7 @@ pub struct FunctionExpression { pub params: Vec, pub body: Node, #[serde(skip)] - pub return_type: Option, + pub return_type: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] #[ts(optional)] @@ -3608,11 +3672,17 @@ const cylinder = startSketchOn('-XZ') let params = &func_expr.params; assert_eq!(params.len(), 3); assert_eq!( - params[0].type_, - Some(FnArgType::Primitive(FnArgPrimitive::Number(NumericSuffix::Mm))) + params[0].type_.as_ref().unwrap().inner, + Type::Primitive(PrimitiveType::Number(NumericSuffix::Mm)) + ); + assert_eq!( + params[1].type_.as_ref().unwrap().inner, + Type::Primitive(PrimitiveType::String) + ); + assert_eq!( + params[2].type_.as_ref().unwrap().inner, + Type::Primitive(PrimitiveType::String) ); - assert_eq!(params[1].type_, Some(FnArgType::Primitive(FnArgPrimitive::String))); - assert_eq!(params[2].type_, Some(FnArgType::Primitive(FnArgPrimitive::String))); } #[tokio::test(flavor = "multi_thread")] @@ -3633,11 +3703,17 @@ const cylinder = startSketchOn('-XZ') let params = &func_expr.params; assert_eq!(params.len(), 3); assert_eq!( - params[0].type_, - Some(FnArgType::Array(FnArgPrimitive::Number(NumericSuffix::None))) + params[0].type_.as_ref().unwrap().inner, + Type::Array(PrimitiveType::Number(NumericSuffix::None)) + ); + assert_eq!( + params[1].type_.as_ref().unwrap().inner, + Type::Array(PrimitiveType::String) + ); + assert_eq!( + params[2].type_.as_ref().unwrap().inner, + Type::Primitive(PrimitiveType::String) ); - assert_eq!(params[1].type_, Some(FnArgType::Array(FnArgPrimitive::String))); - assert_eq!(params[2].type_, Some(FnArgType::Primitive(FnArgPrimitive::String))); } #[tokio::test(flavor = "multi_thread")] @@ -3659,12 +3735,12 @@ const cylinder = startSketchOn('-XZ') let params = &func_expr.params; assert_eq!(params.len(), 3); assert_eq!( - params[0].type_, - Some(FnArgType::Array(FnArgPrimitive::Number(NumericSuffix::None))) + params[0].type_.as_ref().unwrap().inner, + Type::Array(PrimitiveType::Number(NumericSuffix::None)) ); assert_eq!( - params[1].type_, - Some(FnArgType::Object { + params[1].type_.as_ref().unwrap().inner, + Type::Object { properties: vec![ Parameter { identifier: Node::new( @@ -3676,7 +3752,12 @@ const cylinder = startSketchOn('-XZ') 40, module_id, ), - type_: Some(FnArgType::Primitive(FnArgPrimitive::Number(NumericSuffix::None))), + type_: Some(Node::new( + Type::Primitive(PrimitiveType::Number(NumericSuffix::None)), + 42, + 48, + module_id + )), default_value: None, labeled: true, digest: None, @@ -3691,7 +3772,7 @@ const cylinder = startSketchOn('-XZ') 56, module_id, ), - type_: Some(FnArgType::Array(FnArgPrimitive::String)), + type_: Some(Node::new(Type::Array(PrimitiveType::String), 58, 64, module_id)), default_value: None, labeled: true, digest: None @@ -3706,15 +3787,18 @@ const cylinder = startSketchOn('-XZ') 72, module_id, ), - type_: Some(FnArgType::Primitive(FnArgPrimitive::String)), + type_: Some(Node::new(Type::Primitive(PrimitiveType::String), 75, 81, module_id)), labeled: true, default_value: Some(DefaultParamVal::none()), digest: None } ] - }) + } + ); + assert_eq!( + params[2].type_.as_ref().unwrap().inner, + Type::Primitive(PrimitiveType::String) ); - assert_eq!(params[2].type_, Some(FnArgType::Primitive(FnArgPrimitive::String))); } #[tokio::test(flavor = "multi_thread")] @@ -3736,8 +3820,8 @@ const cylinder = startSketchOn('-XZ') let params = &func_expr.params; assert_eq!(params.len(), 0); assert_eq!( - func_expr.return_type, - Some(FnArgType::Object { + func_expr.return_type.as_ref().unwrap().inner, + Type::Object { properties: vec![ Parameter { identifier: Node::new( @@ -3749,7 +3833,12 @@ const cylinder = startSketchOn('-XZ') 18, module_id, ), - type_: Some(FnArgType::Primitive(FnArgPrimitive::Number(NumericSuffix::None))), + type_: Some(Node::new( + Type::Primitive(PrimitiveType::Number(NumericSuffix::None)), + 20, + 26, + module_id + )), default_value: None, labeled: true, digest: None @@ -3764,7 +3853,7 @@ const cylinder = startSketchOn('-XZ') 34, module_id, ), - type_: Some(FnArgType::Array(FnArgPrimitive::String)), + type_: Some(Node::new(Type::Array(PrimitiveType::String), 36, 42, module_id)), default_value: None, labeled: true, digest: None @@ -3779,13 +3868,13 @@ const cylinder = startSketchOn('-XZ') 50, module_id, ), - type_: Some(FnArgType::Primitive(FnArgPrimitive::String)), + type_: Some(Node::new(Type::Primitive(PrimitiveType::String), 53, 59, module_id)), labeled: true, default_value: Some(DefaultParamVal::none()), digest: None } ] - }) + } ); } diff --git a/src/wasm-lib/kcl/src/parsing/parser.rs b/src/wasm-lib/kcl/src/parsing/parser.rs index 5a9fde8000..4b047829f0 100644 --- a/src/wasm-lib/kcl/src/parsing/parser.rs +++ b/src/wasm-lib/kcl/src/parsing/parser.rs @@ -13,7 +13,7 @@ use winnow::{ }; use super::{ - ast::types::{ImportPath, LabelledExpression}, + ast::types::{Ascription, ImportPath, LabelledExpression}, token::NumericSuffix, }; use crate::{ @@ -23,11 +23,11 @@ use crate::{ ast::types::{ Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, BoxNode, CallExpression, CallExpressionKw, CommentStyle, DefaultParamVal, ElseIf, Expr, - ExpressionStatement, FnArgPrimitive, FnArgType, FunctionExpression, Identifier, IfExpression, ImportItem, - ImportSelector, ImportStatement, ItemVisibility, LabeledArg, Literal, LiteralIdentifier, LiteralValue, - MemberExpression, MemberObject, Node, NodeList, NonCodeMeta, NonCodeNode, NonCodeValue, ObjectExpression, - ObjectProperty, Parameter, PipeExpression, PipeSubstitution, Program, ReturnStatement, Shebang, - TagDeclarator, UnaryExpression, UnaryOperator, VariableDeclaration, VariableDeclarator, VariableKind, + ExpressionStatement, FunctionExpression, Identifier, IfExpression, ImportItem, ImportSelector, + ImportStatement, ItemVisibility, LabeledArg, Literal, LiteralIdentifier, LiteralValue, MemberExpression, + MemberObject, Node, NodeList, NonCodeMeta, NonCodeNode, NonCodeValue, ObjectExpression, ObjectProperty, + Parameter, PipeExpression, PipeSubstitution, PrimitiveType, Program, ReturnStatement, Shebang, + TagDeclarator, Type, UnaryExpression, UnaryOperator, VariableDeclaration, VariableDeclarator, VariableKind, }, math::BinaryExpressionToken, token::{Token, TokenSlice, TokenType}, @@ -580,7 +580,8 @@ fn operand(i: &mut TokenSlice) -> PResult { | Expr::ArrayExpression(_) | Expr::ArrayRangeExpression(_) | Expr::ObjectExpression(_) - | Expr::LabelledExpression(..) => return Err(CompilationError::fatal(source_range, TODO_783)), + | Expr::LabelledExpression(..) + | Expr::AscribedExpression(..) => return Err(CompilationError::fatal(source_range, TODO_783)), Expr::None(_) => { return Err(CompilationError::fatal( source_range, @@ -842,7 +843,7 @@ fn object_property(i: &mut TokenSlice) -> PResult> { )) .parse_next(i)?; ignore_whitespace(i); - let expr = expression_but_not_ascription + let expr = expression .context(expected( "the value which you're setting the property to, e.g. in 'height: 4', the value is 4", )) @@ -1120,7 +1121,7 @@ fn function_expr(i: &mut TokenSlice) -> PResult { // return x // } fn function_decl(i: &mut TokenSlice) -> PResult<(Node, bool)> { - fn return_type(i: &mut TokenSlice) -> PResult { + fn return_type(i: &mut TokenSlice) -> PResult> { colon(i)?; ignore_whitespace(i); argument_type(i) @@ -1832,24 +1833,6 @@ fn return_stmt(i: &mut TokenSlice) -> PResult> { /// Parse a KCL expression. fn expression(i: &mut TokenSlice) -> PResult { - let expr = expression_but_not_ascription.parse_next(i)?; - let ty = opt((colon, opt(whitespace), argument_type)).parse_next(i)?; - - // TODO this is probably not giving ascription the right precedence, but I have no idea how Winnow is handling that. - // Since we're not creating AST nodes for ascription, I don't think it matters right now. - if let Some((colon, _, _)) = ty { - ParseContext::err(CompilationError::err( - // Sadly there is no SourceRange for the type itself - colon.into(), - "Type ascription is experimental and currently does nothing.", - )); - } - - Ok(expr) -} - -// TODO once we remove the old record instantiation syntax, we can accept types ascription anywhere. -fn expression_but_not_ascription(i: &mut TokenSlice) -> PResult { alt(( pipe_expression.map(Box::new).map(Expr::PipeExpression), expression_but_not_pipe, @@ -1859,7 +1842,7 @@ fn expression_but_not_ascription(i: &mut TokenSlice) -> PResult { } fn expression_but_not_pipe(i: &mut TokenSlice) -> PResult { - let expr = alt(( + let mut expr = alt(( binary_expression.map(Box::new).map(Expr::BinaryExpression), unary_expression.map(Box::new).map(Expr::UnaryExpression), expr_allowed_in_pipe_expr, @@ -1867,6 +1850,12 @@ fn expression_but_not_pipe(i: &mut TokenSlice) -> PResult { .context(expected("a KCL value")) .parse_next(i)?; + let ty = opt((colon, opt(whitespace), argument_type)).parse_next(i)?; + if let Some((_, _, ty)) = ty { + ParseContext::warn(CompilationError::err((&ty).into(), "Type ascription is experimental.")); + + expr = Expr::AscribedExpression(Box::new(Ascription::new(expr, ty))) + } let label = opt(label).parse_next(i)?; match label { Some(label) => Ok(Expr::LabelledExpression(Box::new(LabelledExpression::new(expr, label)))), @@ -2521,11 +2510,18 @@ fn labeled_argument(i: &mut TokenSlice) -> PResult { /// - a primitive type, e.g. 'number' or 'string' or 'bool' /// - an array type, e.g. 'number[]' or 'string[]' or 'bool[]' /// - an object type, e.g. '{x: number, y: number}' or '{name: string, age: number}' -fn argument_type(i: &mut TokenSlice) -> PResult { +fn argument_type(i: &mut TokenSlice) -> PResult> { let type_ = alt(( // Object types // TODO it is buggy to treat object fields like parameters since the parameters parser assumes a terminating `)`. - (open_brace, parameters, close_brace).map(|(_, params, _)| Ok(FnArgType::Object { properties: params })), + (open_brace, parameters, close_brace).map(|(open, params, close)| { + Ok(Node::new( + Type::Object { properties: params }, + open.start, + close.end, + open.module_id, + )) + }), // Array types ( one_of(TokenType::Type), @@ -2534,8 +2530,8 @@ fn argument_type(i: &mut TokenSlice) -> PResult { close_bracket, ) .map(|(token, uom, _, _)| { - FnArgPrimitive::from_str(&token.value, uom) - .map(FnArgType::Array) + PrimitiveType::from_str(&token.value, uom) + .map(|t| Node::new(Type::Array(t), token.start, token.end, token.module_id)) .ok_or_else(|| { CompilationError::fatal(token.as_source_range(), format!("Invalid type: {}", token.value)) }) @@ -2552,8 +2548,8 @@ fn argument_type(i: &mut TokenSlice) -> PResult { "Unit of Measure types are experimental and currently do nothing.", )); } - FnArgPrimitive::from_str(&token.value, suffix) - .map(FnArgType::Primitive) + PrimitiveType::from_str(&token.value, suffix) + .map(|t| Node::new(Type::Primitive(t), token.start, token.end, token.module_id)) .ok_or_else(|| { CompilationError::fatal(token.as_source_range(), format!("Invalid type: {}", token.value)) }) @@ -2571,7 +2567,7 @@ fn uom_for_type(i: &mut TokenSlice) -> PResult { struct ParamDescription { labeled: bool, arg_name: Token, - type_: std::option::Option, + type_: std::option::Option>, default_value: Option, } @@ -4537,11 +4533,11 @@ let myBox = box([0,0], -3, -16, -10) fn test_parse_tag_starting_with_reserved_type() { let some_program_string = r#" startSketchOn('XY') - |> line(%, $sketch) + |> line(%, $Sketch) "#; assert_err( some_program_string, - "Cannot assign a tag to a reserved keyword: sketch", + "Cannot assign a tag to a reserved keyword: Sketch", [41, 47], ); } diff --git a/src/wasm-lib/kcl/src/parsing/token/tokeniser.rs b/src/wasm-lib/kcl/src/parsing/token/tokeniser.rs index e635639a75..396802747c 100644 --- a/src/wasm-lib/kcl/src/parsing/token/tokeniser.rs +++ b/src/wasm-lib/kcl/src/parsing/token/tokeniser.rs @@ -54,9 +54,10 @@ lazy_static! { set.insert("string", TokenType::Type); set.insert("number", TokenType::Type); set.insert("bool", TokenType::Type); - set.insert("sketch", TokenType::Type); - set.insert("sketch_surface", TokenType::Type); - set.insert("solid", TokenType::Type); + set.insert("Sketch", TokenType::Type); + set.insert("SketchSurface", TokenType::Type); + set.insert("Solid", TokenType::Type); + set.insert("Plane", TokenType::Type); set }; diff --git a/src/wasm-lib/kcl/src/std/args.rs b/src/wasm-lib/kcl/src/std/args.rs index 6b1fab1e23..bacac2f24b 100644 --- a/src/wasm-lib/kcl/src/std/args.rs +++ b/src/wasm-lib/kcl/src/std/args.rs @@ -1118,10 +1118,10 @@ impl<'a> FromKclValue<'a> for super::sketch::PlaneData { // Case 0: actual plane if let KclValue::Plane { value } = arg { return Some(Self::Plane { - origin: Box::new(value.origin), - x_axis: Box::new(value.x_axis), - y_axis: Box::new(value.y_axis), - z_axis: Box::new(value.z_axis), + origin: value.origin, + x_axis: value.x_axis, + y_axis: value.y_axis, + z_axis: value.z_axis, }); } // Case 1: predefined plane @@ -1139,10 +1139,10 @@ impl<'a> FromKclValue<'a> for super::sketch::PlaneData { // Case 2: custom plane let obj = arg.as_object()?; let_field_of!(obj, plane, &KclObjectFields); - let origin = plane.get("origin").and_then(FromKclValue::from_kcl_val).map(Box::new)?; - let x_axis = plane.get("xAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; - let y_axis = plane.get("yAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; - let z_axis = plane.get("zAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; + let origin = plane.get("origin").and_then(FromKclValue::from_kcl_val)?; + let x_axis = plane.get("xAxis").and_then(FromKclValue::from_kcl_val)?; + let y_axis = plane.get("yAxis").and_then(FromKclValue::from_kcl_val)?; + let z_axis = plane.get("zAxis").and_then(FromKclValue::from_kcl_val)?; Some(Self::Plane { origin, x_axis, diff --git a/src/wasm-lib/kcl/src/std/sketch.rs b/src/wasm-lib/kcl/src/std/sketch.rs index 58a5439a05..f12b0b49f2 100644 --- a/src/wasm-lib/kcl/src/std/sketch.rs +++ b/src/wasm-lib/kcl/src/std/sketch.rs @@ -110,7 +110,7 @@ pub async fn line(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// // The 'end' argument means it ends at exactly [10, 0]. /// // This is an absolute measurement, it is NOT relative to @@ -121,7 +121,7 @@ pub async fn line(exec_state: &mut ExecState, args: Args) -> Result close() /// |> extrude(length = 5) /// -/// box = startSketchOn("XZ") +/// box = startSketchOn(XZ) /// |> startProfileAt([10, 10], %) /// // The 'to' argument means move the pen this much. /// // So, [10, 0] is a relative distance away from the current point. @@ -275,7 +275,7 @@ pub async fn x_line_to(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> xLineTo(15, %) /// |> angledLine({ @@ -330,7 +330,7 @@ pub async fn y_line_to(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> angledLine({ /// angle = 50, @@ -376,7 +376,7 @@ pub async fn x_line(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> xLine(15, %) /// |> angledLine({ @@ -426,7 +426,7 @@ pub async fn y_line(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> yLine(15, %) /// |> angledLine({ @@ -487,7 +487,7 @@ pub async fn angled_line(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> yLineTo(15, %) /// |> angledLine({ @@ -575,7 +575,7 @@ pub async fn angled_line_of_x_length(exec_state: &mut ExecState, args: Args) -> /// along some angle (in degrees) for some relative length in the 'x' dimension. /// /// ```no_run -/// sketch001 = startSketchOn('XZ') +/// sketch001 = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> angledLineOfXLength({ angle = 45, length = 10 }, %, $edge1) /// |> angledLineOfXLength({ angle = -15, length = 20 }, %, $edge2) @@ -646,7 +646,7 @@ pub async fn angled_line_to_x(exec_state: &mut ExecState, args: Args) -> Result< /// in the 'x' dimension. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> angledLineToX({ angle = 30, to = 10 }, %) /// |> line(end = [0, 10]) @@ -710,7 +710,7 @@ pub async fn angled_line_of_y_length(exec_state: &mut ExecState, args: Args) -> /// along some angle (in degrees) for some relative length in the 'y' dimension. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> angledLineOfYLength({ angle = 45, length = 10 }, %) @@ -772,7 +772,7 @@ pub async fn angled_line_to_y(exec_state: &mut ExecState, args: Args) -> Result< /// in the 'y' dimension. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> angledLineToY({ angle = 60, to = 20 }, %) /// |> line(end = [-20, 0]) @@ -850,7 +850,7 @@ pub async fn angled_line_that_intersects(exec_state: &mut ExecState, args: Args) /// segment. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> line(endAbsolute = [5, 10]) /// |> line(endAbsolute = [-10, 10], tag = $lineToIntersect) @@ -952,6 +952,7 @@ async fn inner_start_sketch_at(data: [f64; 2], exec_state: &mut ExecState, args: #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(rename_all = "camelCase", untagged)] +#[allow(clippy::large_enum_variant)] pub enum SketchData { PlaneOrientation(PlaneData), Plane(Box), @@ -962,6 +963,7 @@ pub enum SketchData { #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(rename_all = "camelCase")] +#[allow(clippy::large_enum_variant)] pub enum PlaneData { /// The XY plane. #[serde(rename = "XY", alias = "xy")] @@ -984,16 +986,16 @@ pub enum PlaneData { /// A defined plane. Plane { /// Origin of the plane. - origin: Box, + origin: Point3d, /// What should the plane’s X axis be? #[serde(rename = "xAxis")] - x_axis: Box, + x_axis: Point3d, /// What should the plane’s Y axis be? #[serde(rename = "yAxis")] - y_axis: Box, + y_axis: Point3d, /// The z-axis (normal). #[serde(rename = "zAxis")] - z_axis: Box, + z_axis: Point3d, }, } @@ -1028,7 +1030,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10]) @@ -1057,7 +1059,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10], tag = $sketchingFace) @@ -1086,7 +1088,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([4, 12], %) /// |> line(end = [2, 0]) /// |> line(end = [0, -6]) @@ -1142,15 +1144,20 @@ async fn inner_start_sketch_on( Ok(SketchSurface::Plane(plane)) } SketchData::Plane(plane) => { - // Create artifact used only by the UI, not the engine. - let id = exec_state.next_uuid(); - exec_state.add_artifact(Artifact::StartSketchOnPlane { - id: ArtifactId::from(id), - plane_id: plane.id, - source_range: args.source_range, - }); - - Ok(SketchSurface::Plane(plane)) + if plane.value == crate::exec::PlaneType::Uninit { + let plane = make_sketch_plane_from_orientation(plane.into_plane_data(), exec_state, args).await?; + Ok(SketchSurface::Plane(plane)) + } else { + // Create artifact used only by the UI, not the engine. + let id = exec_state.next_uuid(); + exec_state.add_artifact(Artifact::StartSketchOnPlane { + id: ArtifactId::from(id), + plane_id: plane.id, + source_range: args.source_range, + }); + + Ok(SketchSurface::Plane(plane)) + } } SketchData::Solid(solid) => { let Some(tag) = tag else { @@ -1238,10 +1245,10 @@ async fn make_sketch_plane_from_orientation( plane.id, ModelingCmd::from(mcmd::MakePlane { clobber, - origin: (*origin).into(), + origin: origin.into(), size, - x_axis: (*x_axis).into(), - y_axis: (*y_axis).into(), + x_axis: x_axis.into(), + y_axis: y_axis.into(), hide, }), ) @@ -1266,7 +1273,7 @@ pub async fn start_profile_at(exec_state: &mut ExecState, args: Args) -> Result< /// Start a new profile at a given point. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10]) @@ -1277,7 +1284,7 @@ pub async fn start_profile_at(exec_state: &mut ExecState, args: Args) -> Result< /// ``` /// /// ```no_run -/// exampleSketch = startSketchOn('-XZ') +/// exampleSketch = startSketchOn(-XZ) /// |> startProfileAt([10, 10], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10]) @@ -1288,7 +1295,7 @@ pub async fn start_profile_at(exec_state: &mut ExecState, args: Args) -> Result< /// ``` /// /// ```no_run -/// exampleSketch = startSketchOn('-XZ') +/// exampleSketch = startSketchOn(-XZ) /// |> startProfileAt([-10, 23], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10]) @@ -1314,7 +1321,7 @@ pub(crate) async fn inner_start_profile_at( args.flush_batch_for_solid_set(exec_state, face.solid.clone().into()) .await?; } - SketchSurface::Plane(plane) if plane.is_custom() => { + SketchSurface::Plane(plane) if !plane.is_standard() => { // Hide whatever plane we are sketching on. // This is especially helpful for offset planes, which would be visible otherwise. args.batch_end_cmd( @@ -1413,7 +1420,7 @@ pub async fn profile_start_x(_exec_state: &mut ExecState, args: Args) -> Result< /// value. /// /// ```no_run -/// sketch001 = startSketchOn('XY') +/// sketch001 = startSketchOn(XY) /// |> startProfileAt([5, 2], %) /// |> angledLine([-26.6, 50], %) /// |> angledLine([90, 50], %) @@ -1438,7 +1445,7 @@ pub async fn profile_start_y(_exec_state: &mut ExecState, args: Args) -> Result< /// value. /// /// ```no_run -/// sketch001 = startSketchOn('XY') +/// sketch001 = startSketchOn(XY) /// |> startProfileAt([5, 2], %) /// |> angledLine({ angle = -60, length = 14 }, %) /// |> angledLineToY({ angle = 30, to = profileStartY(%) }, %) @@ -1462,7 +1469,7 @@ pub async fn profile_start(_exec_state: &mut ExecState, args: Args) -> Result startProfileAt([5, 2], %) /// |> angledLine({ angle = 120, length = 50 }, %, $seg01) /// |> angledLine({ angle = segAng(seg01) + 120, length = 50 }, %) @@ -1491,7 +1498,7 @@ pub async fn close(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [10, 10]) /// |> line(end = [10, 0]) @@ -1500,7 +1507,7 @@ pub async fn close(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> line(end = [0, 10]) @@ -1625,7 +1632,7 @@ pub async fn arc(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [10, 0]) /// |> arc({ @@ -1733,7 +1740,7 @@ pub async fn arc_to(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> arcTo({ /// end = [10,0], @@ -1870,7 +1877,7 @@ pub async fn tangential_arc(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> angledLine({ /// angle = 60, @@ -2004,7 +2011,7 @@ pub async fn tangential_arc_to_relative(exec_state: &mut ExecState, args: Args) /// coordinates. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> angledLine({ /// angle = 60, @@ -2071,7 +2078,7 @@ async fn inner_tangential_arc_to( /// distance away. /// /// ```no_run -/// exampleSketch = startSketchOn('XZ') +/// exampleSketch = startSketchOn(XZ) /// |> startProfileAt([0, 0], %) /// |> angledLine({ /// angle = 45, @@ -2178,7 +2185,7 @@ pub async fn bezier_curve(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [0, 10]) /// |> bezierCurve({ @@ -2259,7 +2266,7 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([0, 0], %) /// |> line(end = [0, 5]) /// |> line(end = [5, 0]) @@ -2273,7 +2280,7 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result startProfileAt([-1, -1], %) /// |> line(end = [2, 0]) /// |> line(end = [0, 2]) @@ -2282,7 +2289,7 @@ pub async fn hole(exec_state: &mut ExecState, args: Args) -> Result circle({ center = [0, 0], radius = 3 }, %) /// |> hole(squareHoleSketch(), %) /// example = extrude(exampleSketch, length = 1) diff --git a/src/wasm-lib/kcl/src/unparser.rs b/src/wasm-lib/kcl/src/unparser.rs index a84c0afd6c..2fccff9a65 100644 --- a/src/wasm-lib/kcl/src/unparser.rs +++ b/src/wasm-lib/kcl/src/unparser.rs @@ -3,11 +3,10 @@ use std::fmt::Write; use crate::parsing::{ ast::types::{ Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, - CallExpression, CallExpressionKw, CommentStyle, DefaultParamVal, Expr, FnArgType, FormatOptions, - FunctionExpression, IfExpression, ImportSelector, ImportStatement, ItemVisibility, LabeledArg, Literal, - LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, Node, NonCodeNode, NonCodeValue, - ObjectExpression, Parameter, PipeExpression, Program, TagDeclarator, UnaryExpression, VariableDeclaration, - VariableKind, + CallExpression, CallExpressionKw, CommentStyle, DefaultParamVal, Expr, FormatOptions, FunctionExpression, + IfExpression, ImportSelector, ImportStatement, ItemVisibility, LabeledArg, Literal, LiteralIdentifier, + LiteralValue, MemberExpression, MemberObject, Node, NonCodeNode, NonCodeValue, ObjectExpression, Parameter, + PipeExpression, Program, TagDeclarator, Type, UnaryExpression, VariableDeclaration, VariableKind, }, token::NumericSuffix, PIPE_OPERATOR, @@ -281,6 +280,12 @@ impl Expr { result += &e.label.name; result } + Expr::AscribedExpression(e) => { + let mut result = e.expr.recast(options, indentation_level, ctxt); + result += ": "; + result += &e.ty.recast(options, indentation_level); + result + } Expr::None(_) => { unimplemented!("there is no literal None, see https://github.com/KittyCAD/modeling-app/issues/1115") } @@ -511,23 +516,10 @@ impl ArrayExpression { /// An expression is syntactically trivial: i.e., a literal, identifier, or similar. fn expr_is_trivial(expr: &Expr) -> bool { - match expr { - Expr::Literal(_) | Expr::Identifier(_) | Expr::TagDeclarator(_) | Expr::PipeSubstitution(_) | Expr::None(_) => { - true - } - Expr::BinaryExpression(_) - | Expr::FunctionExpression(_) - | Expr::CallExpression(_) - | Expr::CallExpressionKw(_) - | Expr::PipeExpression(_) - | Expr::ArrayExpression(_) - | Expr::ArrayRangeExpression(_) - | Expr::ObjectExpression(_) - | Expr::MemberExpression(_) - | Expr::UnaryExpression(_) - | Expr::IfExpression(_) - | Expr::LabelledExpression(_) => false, - } + matches!( + expr, + Expr::Literal(_) | Expr::Identifier(_) | Expr::TagDeclarator(_) | Expr::PipeSubstitution(_) | Expr::None(_) + ) } impl ArrayRangeExpression { @@ -801,12 +793,12 @@ impl Parameter { } } -impl FnArgType { +impl Type { pub fn recast(&self, options: &FormatOptions, indentation_level: usize) -> String { match self { - FnArgType::Primitive(t) => t.to_string(), - FnArgType::Array(t) => format!("{t}[]"), - FnArgType::Object { properties } => { + Type::Primitive(t) => t.to_string(), + Type::Array(t) => format!("{t}[]"), + Type::Object { properties } => { let mut result = "{".to_owned(); for p in properties { result += " "; @@ -2227,8 +2219,8 @@ firstExtrude = startSketchOn('XY') ); } - #[tokio::test(flavor = "multi_thread")] - async fn test_recast_math_start_negative() { + #[test] + fn test_recast_math_start_negative() { let some_program_string = r#"myVar = -5 + 6"#; let program = crate::parsing::top_level_parse(some_program_string).unwrap(); @@ -2236,8 +2228,8 @@ firstExtrude = startSketchOn('XY') assert_eq!(recasted.trim(), some_program_string); } - #[tokio::test(flavor = "multi_thread")] - async fn test_recast_math_negate_parens() { + #[test] + fn test_recast_math_negate_parens() { let some_program_string = r#"wallMountL = 3.82 thickness = 0.5 @@ -2253,12 +2245,12 @@ startSketchOn('XY') assert_eq!(recasted.trim(), some_program_string); } - #[tokio::test(flavor = "multi_thread")] - async fn test_recast_math_nested_parens() { + #[test] + fn test_recast_math_nested_parens() { let some_program_string = r#"distance = 5 -p = 3 -FOS = 2 -sigmaAllow = 8 +p = 3: Plane +FOS = { a = 3, b = 42 }: Sketch +sigmaAllow = 8: number(mm) width = 20 thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#; let program = crate::parsing::top_level_parse(some_program_string).unwrap(); @@ -2267,8 +2259,8 @@ thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))"#; assert_eq!(recasted.trim(), some_program_string); } - #[tokio::test(flavor = "multi_thread")] - async fn no_vardec_keyword() { + #[test] + fn no_vardec_keyword() { let some_program_string = r#"distance = 5"#; let program = crate::parsing::top_level_parse(some_program_string).unwrap(); @@ -2358,7 +2350,7 @@ sketch002 = startSketchOn({ #[test] fn unparse_fn_unnamed() { - let input = r#"squares_out = reduce(arr, 0, fn(i, squares) { + let input = r#"squares_out = reduce(arr, 0: number, fn(i, squares) { return 1 }) "#; diff --git a/src/wasm-lib/kcl/src/walk/ast_node.rs b/src/wasm-lib/kcl/src/walk/ast_node.rs index 61463cb55d..bdeff79c96 100644 --- a/src/wasm-lib/kcl/src/walk/ast_node.rs +++ b/src/wasm-lib/kcl/src/walk/ast_node.rs @@ -33,6 +33,7 @@ pub enum Node<'a> { IfExpression(NodeRef<'a, types::IfExpression>), ElseIf(&'a types::ElseIf), LabelledExpression(NodeRef<'a, types::LabelledExpression>), + Ascription(NodeRef<'a, types::Ascription>), Parameter(&'a types::Parameter), @@ -74,6 +75,7 @@ impl Node<'_> { Node::ElseIf(n) => n.digest, Node::KclNone(n) => n.digest, Node::LabelledExpression(n) => n.digest, + Node::Ascription(n) => n.digest, } } @@ -116,6 +118,7 @@ impl Node<'_> { Node::ElseIf(n) => *n as *const _ as *const (), Node::KclNone(n) => *n as *const _ as *const (), Node::LabelledExpression(n) => *n as *const _ as *const (), + Node::Ascription(n) => *n as *const _ as *const (), } } } @@ -156,6 +159,7 @@ impl TryFrom<&Node<'_>> for SourceRange { Node::ObjectProperty(n) => SourceRange::from(*n), Node::IfExpression(n) => SourceRange::from(*n), Node::LabelledExpression(n) => SourceRange::from(*n), + Node::Ascription(n) => SourceRange::from(*n), // This is broken too Node::ElseIf(n) => SourceRange::new(n.cond.start(), n.cond.end(), n.cond.module_id()), @@ -197,6 +201,7 @@ impl<'tree> From<&'tree types::Expr> for Node<'tree> { types::Expr::UnaryExpression(ue) => ue.as_ref().into(), types::Expr::IfExpression(e) => e.as_ref().into(), types::Expr::LabelledExpression(e) => e.as_ref().into(), + types::Expr::AscribedExpression(e) => e.as_ref().into(), types::Expr::None(n) => n.into(), } } @@ -280,6 +285,7 @@ impl_from_ref!(Node, Parameter); impl_from!(Node, IfExpression); impl_from!(Node, ElseIf); impl_from!(Node, LabelledExpression); +impl_from!(Node, Ascription); impl_from!(Node, KclNone); #[cfg(test)] diff --git a/src/wasm-lib/kcl/src/walk/ast_visitor.rs b/src/wasm-lib/kcl/src/walk/ast_visitor.rs index 95025a63ac..94cadc054a 100644 --- a/src/wasm-lib/kcl/src/walk/ast_visitor.rs +++ b/src/wasm-lib/kcl/src/walk/ast_visitor.rs @@ -130,6 +130,9 @@ impl<'tree> Visitable<'tree> for Node<'tree> { Node::LabelledExpression(e) => { vec![(&e.expr).into(), (&e.label).into()] } + Node::Ascription(e) => { + vec![(&e.expr).into()] + } Node::PipeSubstitution(_) | Node::TagDeclarator(_) | Node::Identifier(_) diff --git a/src/wasm-lib/kcl/std/prelude.kcl b/src/wasm-lib/kcl/std/prelude.kcl index 0fa8c891f2..00e7541d57 100644 --- a/src/wasm-lib/kcl/std/prelude.kcl +++ b/src/wasm-lib/kcl/std/prelude.kcl @@ -8,3 +8,24 @@ export ZERO = 0 export QUARTER_TURN = 90deg export HALF_TURN = 180deg export THREE_QUARTER_TURN = 270deg + +export XY = { + origin = { x = 0, y = 0, z = 0 }, + xAxis = { x = 1, y = 0, z = 0 }, + yAxis = { x = 0, y = 1, z = 0 }, + zAxis = { x = 0, y = 0, z = 1 }, +}: Plane + +export XZ = { + origin = { x = 0, y = 0, z = 0 }, + xAxis = { x = 1, y = 0, z = 0 }, + yAxis = { x = 0, y = 0, z = 1 }, + zAxis = { x = 0, y = -1, z = 0 }, +}: Plane + +export YZ = { + origin = { x = 0, y = 0, z = 0 }, + xAxis = { x = 0, y = 1, z = 0 }, + yAxis = { x = 0, y = 0, z = 1 }, + zAxis = { x = 1, y = 0, z = 0 }, +}: Plane From f490e7d6fe4809b637f3c09cceebf71e83ed9cea Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 26 Feb 2025 19:29:59 -0800 Subject: [PATCH 19/23] better errors from rust to lsp for execution errors (#5526) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * better errors start Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * conversions Signed-off-by: Jess Frazelle * miette update Signed-off-by: Jess Frazelle * related errrors test Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * a bit better Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * regenerate other errors Signed-off-by: Jess Frazelle * add diagnostics test Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Signed-off-by: Jess Frazelle Co-authored-by: github-actions[bot] --- docs/kcl/appearance.md | 2 +- docs/kcl/const_std-math-TAU.md | 2 +- docs/kcl/sweep.md | 2 +- ...hot-tests-spec-ts--change-colour.snap.json | 2 +- src/wasm-lib/Cargo.lock | 6 +- src/wasm-lib/derive-docs/Cargo.toml | 2 +- src/wasm-lib/kcl-test-server/Cargo.toml | 2 +- src/wasm-lib/kcl/Cargo.toml | 4 +- src/wasm-lib/kcl/src/docs/gen_std_tests.rs | 3 +- src/wasm-lib/kcl/src/errors.rs | 200 +++++++++++- src/wasm-lib/kcl/src/execution/exec_ast.rs | 8 +- src/wasm-lib/kcl/src/execution/memory.rs | 5 +- src/wasm-lib/kcl/src/execution/mod.rs | 22 +- src/wasm-lib/kcl/src/execution/state.rs | 15 +- src/wasm-lib/kcl/src/lint/rule.rs | 10 +- src/wasm-lib/kcl/src/lsp/kcl/mod.rs | 10 +- src/wasm-lib/kcl/src/lsp/mod.rs | 6 +- src/wasm-lib/kcl/src/lsp/tests.rs | 65 ++++ src/wasm-lib/kcl/src/lsp/util.rs | 4 +- src/wasm-lib/kcl/src/modules.rs | 30 +- src/wasm-lib/kcl/src/simulation_tests.rs | 35 ++- src/wasm-lib/kcl/src/std/patterns.rs | 3 +- src/wasm-lib/kcl/src/std/planes.rs | 3 +- .../tests/argument_error/execution_error.snap | 3 +- .../execution_error.snap | 3 +- .../array_elem_pop_fail/execution_error.snap | 3 +- .../array_elem_push_fail/execution_error.snap | 3 +- .../array_index_oob/execution_error.snap | 3 +- .../rendered_model.png | Bin 61132 -> 61401 bytes .../comparisons_multiple/execution_error.snap | 3 +- .../cube_with_error/execution_error.snap | 3 +- .../tests/import_cycle1/execution_error.snap | 3 +- .../artifact_commands.snap | 284 ++++++++++++++++++ .../artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 3 + .../import_file_not_exist_error/ast.snap | 39 +++ .../execution_error.snap | 13 + .../import_file_not_exist_error/input.kcl | 1 + .../import_file_not_exist_error/ops.snap | 5 + .../execution_error.snap | 8 +- .../execution_error.snap | 3 +- .../execution_error.snap | 3 +- .../invalid_index_str/execution_error.snap | 3 +- .../execution_error.snap | 3 +- .../execution_error.snap | 3 +- .../kw_fn_too_few_args/execution_error.snap | 17 +- .../execution_error.snap | 17 +- .../execution_error.snap | 3 +- .../execution_error.snap | 3 +- .../serial_test_example_appearance8.png | Bin 75086 -> 77064 bytes ...erial_test_example_const_std-math-TAU0.png | Bin 62627 -> 62614 bytes .../outputs/serial_test_example_sweep0.png | Bin 75283 -> 76622 bytes .../execution_error.snap | 3 +- .../tests/executor/outputs/global_tags.png | Bin 77330 -> 77338 bytes .../helix_defaults_negative_extrude.png | Bin 150602 -> 151490 bytes 55 files changed, 779 insertions(+), 103 deletions(-) create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_commands.snap create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap.md create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/ast.snap create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/execution_error.snap create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/input.kcl create mode 100644 src/wasm-lib/kcl/tests/import_file_not_exist_error/ops.snap diff --git a/docs/kcl/appearance.md b/docs/kcl/appearance.md index c9ccbd78a4..352cf34142 100644 --- a/docs/kcl/appearance.md +++ b/docs/kcl/appearance.md @@ -199,6 +199,6 @@ sweepSketch = startSketchOn('XY') |> appearance(color = "#ff0000", metalness = 50, roughness = 50) ``` -![Rendered example of appearance 8](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAElFUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVS+Sa6655sE805kzZx4McM011zyYZzpz5syDeC7XXHPNg3k+rrnmmgfzAtx333238gLcd999t/JMZ8+efQbPdN99993KM509e/bW++6771auuuqqq6666qqrrrrqqqsAPehBD+Kqq6666qqr/r+55pprHgxw5syZB19zzTUPPnPmzIN4pmuuuebB11xzzYMBzpw58+BrrrnmwbyIbv+rv+J+e/fcw8511/H87N1zDy/IznXXAbB3zz08t53rruOBbn6Zl+GFue+++24FOHv27K333XffrQD/8A//8DsA9913361nz5699b777ruVq6666qqrrrrqqquuuur/KvSgBz2Iq6666qqrrvq/5pprrnnwmTNnHnzNNdc8+MyZMw8CePEXf/HXPnPmzIOvueaaB/N83P5Xf8XePfcAsHf33excfz17d98NwM7117Nz3XXs3XMPe3ffzc7117Nz3XXc79j11wOwc911/GfYu+ce7rd3990A7N1zDwCX7r6bvXvu4X5799zD3t13s3P99excdx0AO9ddx7Hrrwdg57rruOllXob73XfffbcC/MM//MNvA/zDP/zD7/zDP/zDb9933323ctVVV1111VVXXXXVVVf9b4ce9KAHcdVVV1111VX/W11zzTUPPnPmzINf7MVe7LWuueaaB19zzTUPfrEXe7HX5gFu/6u/Yu+ee9i7+24Abv/rv+bYdddx6Z57OHbddexcdx0AN7/MywBw08u8DM9t7557ANi7+25uepmX4UX0RDKvbRcvHgfABsBcYRsAA9gYMFfYZnHttbwo7virvwJg5/rr2bnuOu63d8897N19N3v33MMdf/VX7N1zD3f81V9xv53rrgNg5/rr2bnuOm56mZdh57rruOllXgaA++6779Z/+Id/+O1/+Id/+J3f+q3f+m6uuuqqq6666qqrrrrqqv+N0IMe9CCuuuqqq6666n+La6655sGv/dqv/V4v/uIv/tov9mIv9to8094993DHX/0Vl+6+mzv++q8BuOOv/gqAneuu46aXeRl2rruOm1/mZbjpZV6G++3dcw8AO9ddx3Nb3nsvAlb33cf6vvtY33cfkhAwnjtHO3eOkCgR+Px5QoILFygR3Phd38UDDX/3d3928Wu+5hVaJi2TKZMpk7E1pkzG1pgyGTOZMmmZTDYtk2Yzu+YaWia2WVx3HWmzce21GNi89lo2r7sOA1vXXcfWddexfd113O9xv/RL3PQyL8POdddxx1/9FXv33MMff+d3snfPPbwgO9ddx00v8zLc9DIvw2Pf5E247777bv3RH/3Rz/mt3/qt7+aqq6666qqrrrrqqquu+t8EPehBD+Kqq6666qqr/qe65pprHvzar/3a7/XiL/7ir/1iL/Zirw2wd889/MMv/iIAd/z1X3PHX/0VD3Tsuut47Ju8CTvXX89j3+RNANi75x727r6bm17mZQA4uuceAM79zd+wvPdeJHHhb/8WAbt/93dIIiRCIiRCIiQigiJRIigSNYISQS2FGkGN4NpP/mTPHvMY8Vzuff/3p2XSMpkymTIZW2PKZGyNKZMxk5bJlMlk0zJpNs0mM2k2CaRN2tgmgbRJmwTSJoHNa69l6/rr2bruOm546Zdm+/rrueVlXoY//s7v5JXf932546/+il/7oi9i7557eGF2rruOm17mZXjMG78xf/CkJ332b//2b3/PfffddytXXXXVVVddddVVV1111f8GVK666qqrrrrqf6Brrrnmwa/92q/9Xu/0Tu/02QB//J3fyY9/y7dwx1/9Fc9NXHHTy7wMb/ipn8rOddexd8897Fx3HQCH99zD+b/+aw7vuYcnf+/3cv5v/5YAJBGAJEJCEgFIQlxhwIB5JhsksEHCPJMNgAEk8SISzyQBIJ5JApvnIIHN/QSYF2z/nnu4dM89NODvfvEXmYDN667jxpd5GS7efTcAO9ddx/499/DC7N9zD4//pV9i7+67eZNP/dTP/od/+Iffue+++27lqquuuuqqq6666qqrrvrfgMpVV1111VVX/Q/zYi/2Yq/9uZ/7ub9133333fqrX/iFPO6XfgkAAeL5e4NP/VRuepmXAWD/nnt4yi/9Ekf33MPTfuVXCCAkAgiJACwhnosNEi+IucKAAfNsBmwDMJ09e8fs0Y++iRdCPCfxvMSziSskgc2LRAKbB7p0zz1Mf/VXXLznHh76Mi/Dn3zXd/GiuPGlX5o3+NRP5fbz53+bq6666qqrrrrqqquuuup/EypXXXXVVVdd9T/M67zO67zX437pl/i1L/qiBwNI4l+yc9117Fx3HXv33MMPvuM7UiQKUCReGAMCDIjnZEA8J/O8zLPZ5uJ3fMdNm6/xGjzQuY/7uPuAa3huEs8iAYAENgCSwOaBBAgwz0uAAPFsO9ddx+Z113Hjy7wML/4mb8Kx669n7557+MmP/Eju+uu/Rjx/O9ddx6Pf5E14zJu8CTvXXcfePfewe/fd/MM//MNvc9VVV1111VVXXXXVVVf9b0Hlqquuuuqqq/6Hueaaax5806lT3PTSL82df/3XvCj+5Lu+i8W119JF8HLv8z7c+9d/zX1//dc8PwbE82dA/AtskAAwVxgwVxi4633fl523eiu23uqt2uHP/mzJS5eu4bmIK8QVApDA5oHEi27ruuvYvPZarnuZl2Hruut49Ju8Cffbu+ceHv9Lv8QTfumX2LvnHp7bznXXcePLvAzb113HY97kTdi57jr27rmHneuu486/+itu/+u/5ue+7/vgxAmuuuqqq6666qqrrrrqqv81qFx11VVXXXXV/zC/9mu/9tuvcuzYa7/d134te/fcw+N/6Ze446/+ijv/+q95Qe7867/m5z76o3nMm7wJN730S/Py7/M+HNxzDwf33MPhPfdw9m/+hqN77mF5770c3XMP/xIDArB5Fon7GTCAjW2wATDPo/DcJP4l4nltXHstabO49lo2rr2WjWuvxTbXvPRLs3XddWxddx3327vnHp7wS7/En37Xd3HnX/0Vd/71X/NAO9ddx40v8zLsXHcdN770S3Pjy7wMAHv33MP+3Xezc911HNxzD/f89V/zl3/1V/zDL/0SI6Baueqqq6666qqrrrrqqqv+V0EPetCDuOqqq6666qr/Sa655poHv+nLv/zT3+L93g+AvXvuYee669i75x7u/Ku/4s6//mv27r6b/XvuYe+ee3h+dq67jhtf5mXYvu46dq67jse8yZvwQEf33APA0b33srz3XgCW997L6t57kcTqvvsQEMDq7FkCKBFIYjx7lhJBkSgR1AhqBCWCGkEphSJx8v3fn8WrvRrt3Dl2v+zLSCBtdOoU2RrNJk6domVSTp8mbdKmv+Ya0mZ2zTVgc/IlX5Ln586/+iv27rmH/XvuAeDOv/or7vzrvwZg+7rr2LnuOravv56d664D4MaXfmlufJmX4X5799zD/t13c+PLvAwAh/fcw8E993DvX/81d//1X3PXX/0VCUzAZDMC99X62088ceJ1uOqqq6666qqrrrrqqqv+t0APetCDuOqqq6666qr/aY7fe+/TH3rttQ9+9Mu+LA9/mZfhpd70TQF4/C/9EjvXXceNL/MyAOzdcw8Ad/7VXwFw51//NQD7d9/N3j33sH/PPTzQ9nXXsXPddWxffz0AN770SwOwc911ANz4Mi/Df5c7/+qvANi/5x727rmH++3fcw/7d9/N9vXXc+df/RU7113H9vXXs33dddzvxpd+aQB2rr+e7euu437799wDwJ1/9Vc8+k3ehPsd3XMPZ//mbzi85x4O77mHp/3yL5OAbRJIoNkk0IDJZgQuRdz6N6dOPYSrrrrqqquuuuqqq6666n8L9KAHPYirrrrqqquu+p9mfu7cb107jq+9kOiBTuLUddfxoJd5GW552Zdl57rruOllXobndudf/RU3vszL8EB799zD/fbvvpu9e+7hfvv33APA3j33IJ5t/+67ud/29ddzv/277wZg+/rreWG2r7sOgP177uGBtq+7jv177gFg+7rreKCd664DYPu66wDYuf56ALavu47ntn/PPQDs3X03N77My/Dclvfey/Keezi6916O7rkHgHN/8zcc3nMPh/fcgwHbJGAgbRKwTQIJpE0DGjDZjMCliFv/5tSph3DVVVddddVVV1111VVX/W+BHvSgB3HVVVddddVV/9P058791nXj+NoLiRlQJSpQgCJRgACOXXcdIXHjy7wMAm54mZdBwNZ117F13XVsXXcd/5L9e+4BYPu66/iv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iWeRuExCPJMEABIASAAgAYAEABLPInGZBBIASDyLBIAASUhCPICEAAECBEhCXCFAgCRCoss8vjOOr318GN66n6aXPirlbxyxy1VXXXXVVVddddVVV/3/QTl+/DhXXXXVVVddddUzRezODw4+OiQEhEQAkghAABICBAiQhLhCEuIKSQAgIUASAJIQgIQASSAhQBKSABAgQBKSkIQkBIgrJCEJSVwmIQkBApAQzyYACXGFJC6TeBaJ+0niWSQAkHgWicskLpO4TOIyicskkABA4lkkACSBBAASSDyLhCQECJCEJAQIECAJSQAICEBASIREl3l8e5pe+vgwvHU/TS+9ti+1Wm/lqquuuuqqq6666qqr/u+jHD9+nKuuuuqqq6666oqI2F3X+oz5avXWAYSEgJAQIECAJAQIkIQAAUiIKyQBIAAJAZIAkIQAJCQhAAlJCEBCEpIQIECAAElIAglJCBCAhCQukwCQhHhOAiSBBIAkACQhnknifpJ4FgkASYhnkgBAAgAJACQAkEDiMonLJJAAQAJAgCSeRUKAeCYJAAECJCEJAQIESEISAAIECAiJkOjt41vj+NLXrNfvfXy1eu/W2vHlbPY7XHXVVVddddVVV1111f9dlOPHj3PVVVddddVVVz1bk3Y3Dg8/WoCAIhGAJAIQgIQAAQIkIa6QBIAAJAQgIUASAJIQgIQASSAhQBJICBAgCUlIQhLiCgECJCEJSQBIQhICJCGuECBAXCEACQFIXCYhQAAS95PEZRLPIiEAiWeRuEziMgkkAJAAQOJZJC6TQAJAEkgIQAIJAAGSQOJ+AiQhCQECBEhCEpIQICAAAUUiJPrM48fH8bVPrlbv3U/TS2drJ4au+2uuuuqqq6666qqrrrrq/xbK8ePHueqqq6666qqrni0ido8injFfr9+6ACEhICQECBCAhAABkhBXCJAEgCQABCAhQBIAkgCQhCQAJCEJAElIQhICxDNJSEISkpCEAAFISAIJAZIQV0gCCSQkIa6QBAASAEgASOJZJAQIQOJZJARI4jKJyyQuk7hM4jKJyySQAEACicskAAQgASBAEkgACJCEJO4nQBKSECBAgABJSEJAAAICCImQ6O3j2+P40qeH4a1PrFbvPZuml3ZrJ4au+2uuuuqqq6666qqrrrrqfz/K8ePHueqqq6666qqrnlOL2C2r1VtX+7iA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AAZsA2DANgAGbANgwDYA5grbmCtsA2CusA2AucIANubZDGADYJ6TeV62+Z9E/Oczz594JglszL/MPC8D2NzPPJt5JhvzbOYKA9iYKwyYK2wDYMBcYcA2AAYMGDBgwDYGDCRgIIG0SaABR6XcenY+/56L8/l3t1pv5aqrrrrqqquuuuq/HnrQgx7EVVddddVVV131r9cOD9/75KVL3zUDOqBKdECVqEABAigSAQQQEgEEEBICAgiJAASEhICQEBASAkJCQEhIIoCQkEQAISGJkAggJEIiJEIiJEIiJEIiJEIiJCQREgFIQhICJCGukMQD2QbAgG0AbGPANgZsY8A2BmxjwDYGDNjGADYGDNgGwAA25goDtgEwYBsAA7YBMICNAXOFbcwVtjFX2AbAXGEbAHOFAWzMs5lnsjHPyTwXm6v+ZeYFM8/LNg9krjCADYB5NgPYmCvMFQZsA2CuMGAbAHOFAQO2ATBgwIAB2xgwkICBBBJImwQSuHex+O6zff896/n8t7nqqquuuuqqq676r4Me9KAHcdVVV1111VVX/dt058791vYwvHYPVKCT6IAiUYEAikQAAQQQEgEEEBIBBCCJAEJCQACSCEASAUgiJASEhICQkEQAIRESkgiJkAggJEIiJEIiJEIiJEIiJEIiJCQRgCQkIUASAOI5GcDGgAFsDNjGgG0M2MaAbQwYsI0BbAwYsA2AAdsAGMDGXGHANgAGsDFgrrANgAHbABiwDYAB2wCYK2wDYMAANubZbANgns0ANvczz8lc9SKxeX7MczIPYGOezTybbQDMs9kGwFxhwDYA5goD2BgwVxjAxoC5woAB2xgwYK4wkDYGDCRgIIG0SaABR6XcevvGxuccbGx8N1ddddVVV1111VX/+dCDHvQgrrrqqquuuuqqf5tpmh584r77nj4DeqBKVKADikQBClAkAggggJAIIICQCEBASAQgiQAkEYAkApBEAJIIQBIBSCIkJBFASIRESIRESIRESIREACEREiEREiEhiZAICUkICAkASYgHkMDmfgZsA2DANgZsY8A2BrAxYBsDBmwDYMA25grbAJgrbANgrrANgAHbABjAxoC5wjYABmwDYMA2AOYK2wAYMIANgLnCNvczz2YAm/uZq/61zAPY3M88J/NMNgDmCgPYmGczV9gGwFxhG3OFucI2AAYMYGOuMGAAGwMGDBjAxoABAwYM2MZAAgYSMJBAs2nAUSm33jeff/f5ra3P4aqrrrrqqquuuuo/D3rQgx7EVVddddVVV131bzcdHr73qUuXvmsGdECVqEAFqkQBChASAQQQQEgUQBIBBBASAgIICQEhISAkBEgiAEkEIImQEBASISEgJEIiJEIiJEIiJEIiJEIiJEIiJEIiJAKQREhIQoAkBEjiBbENgAHbGLCNAWwM2MaAbQwYwMaAAdsAmGeyMVcYwMZcYQAbc4UBbAyYK2wDYMA2AAZsA2CusI25wjYA5grbAJhns839zHMygM1VLxrz/BnA5n7m2QxgA2CuMICNucJcYRsAc4VtzBUGsDFgrrANgAED2BgwVxiwjbnCgAHbGDBgwIAB2xhIwEACCaRNA45KufW++fy7L8zn35O13spVV1111VVXXXXVfyz0oAc9iKuuuuqqq6666t+nnjv3W9vD8NozoAJVogJVogIFCKBIBBBASAQQQEgEEIAkApBEAAJCQkBICAgJASEhICQkEYAkQiIkApBESIRESIRESIRESIRESIRESIRESIREAJKQREgIQEKAeCYJAGwAzBW2MYCNAQO2MWAbA9gYMGAbAAO2uZ+5wjb3M1fYBsBcYRsAc4VtAAzYBsBcYRtzhW0ADNgGwFxhGwDzbLYBMM9mmwcyV/1rGMDmgcyzGcAGwDybAWzMFQawMVcYwMaAAWzMFQZsA2DAADYGzBW2ATBgABsDBgxgY8CAucI2BgwYMJCAbQwYSCCBBNKmAUelPOPsfP5d98zn31NqvZWrrrrqqquuuuqq/xjoQQ96EFddddVVV1111b/PNE0PPn7vvU+fS3RAlahABapEAQpQgJAIoAAhEUAAISEggJAQEBICApBEAJIQEBICQkISAUgiJAKQREiERACSCImQCImQCImQKBIhERIhERKSCImQEBASkpCEAAFIiOdlABtzhW0M2MaAbQAM2AbAgG3Ms9kGwDyTjXk280w25gpzhW0AzBW2ATBX2MZcYRsAA7YBMFfYBsBcYRsA82y2uZ95TuaZbF5kEs9N/N9jm+fHPJsBbADMs9kGwFxhG3OFAWzMFbYxV9jGXGHANgAGbANgwAA2BswVtjFXGLCNucKAbcwVBgzYxoABAwbSxoCBBBJImwQacFTKrffN5999bmvrc7jqqquuuuqqq67690MPetCDuOqq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rrrqqquuuuqqq676T/GjP/qjn3Pt9dfTgAQSMGDAgIFm04C0SSBtDCSQNgnYxkACtjFgGwMGDBgwVxgwYAAbA7YBMGAbc4VtDJjnYvPcBCAhnpMASSAhQBICJCFAEpIQIEASSAgQIAnxTBICBCABIAkAAeIKSYirrrrqqquuuupFQHDVVVddddVVV1111VVX/ae47777bj1//vxvP/JlXxbbGDBgwDxb2jQgbRJImwQMGDBgGwMGDBiwjQFsDNjGgG0MYGPAXGHANvezjXk225gXnQBJSAJAABICJCFAEgIESEISAAIkIQlxhSQECEBCgLhCPJsAcdVVV1111VVXvYgIrrrqqquuuuqqq6666qr/VI9+mZchAfOcDJgrDCSQNgnYJoG0MWDANgZsY8CAAQPmCgPmCgMGsDFgGwADtjFXGLDN/WxjXjhJIHE/SUhCgCQkIQkBkpCEAAGSkIQAAUhIQoAAJAQIQEKAJARIQoCAfpoezFVXXXXVVVdd9S8huOqqq6666qqrrrrqqqv+05w9e/bWF3vZlyUBA+YFM5BAAgnYxkDaJGDAgAHbGLCNAdsYsA2AbQxgY8BcYcA29zOADYB5TgaweSDxnAQIEFdIAgkBkpCEAElIAgkBAiSBhADxTBICBCAhQFwhQDybuOqqq6666qqrXgQEV1111VVXXXXVVVddddV/mvvuu+/Wa264AXOFAfOczHOyTQIJGDBgGwO2MWDAXGEbANsYsI25woABbAyYKwwYwMaAucI25tkMmOdPABJIICEJAQIkIUASkhAgQBKSkASAAAFISEKAACQECEBCABIAkhBXXXXVVVddddWLiOCqq6666qqrrrrqqquu+k913fXXY8CAAAHmhbNNAmmTgAEDBmxjwDYGDBgwV5grbGMAGwMGsDFgABvzbLa5nwFs7mceQAIACQECBAiQhCQESEKAJCQhCQECJCEJSUhCgABJICFAABLiCgECBIirrrrqqquuuupFRHDVVVddddVVV1111VVX/ac5e/bsrQCnrr8e82ziRWPANgZsY8CAAQO2MWAbANsYsI25woABbMwz2ZgrbGMbAPNMNuY5mSsEiOclCQABSAiQhABJICEJSQAIEFdIQhIAAgQgIa6QBIAkLpMQV1111VVXXXXVi4Dgqquuuuqqq6666qqrrvpPc999990KcPr66/m3MGAg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IAlJCJCEAElIQoAASQAIEM8mCQECBIgX7BBu5aqrrrrqqquuelERXHXVVVddddVVV1111VX/aa655poHn7vnHv7TSPyLJP7dJAAEiGcTVwiQBIAkBEhCgABJSEKAJJBAQoB4JgkkXhgDy1pv5aqrrrrqqquuelERXHXVVVddddVVV1111VX/qcT/TQKQkAQSAJKQhCQkgQQS4pkkBAgQgASAeNGtar2Vq6666qqrrrrqRUXlqquuuuqqq6666qqrrvpPJ56T+F9AQlwhAAkAAQKQEFcIkIR4NgFIABgQIBskJAEgrrrqqquuuuqq/2RUrrrqqquuuuqqq6666qr/NNdcc82Dz999NwACxP984grxnARIAgkkxBWSkIQASUhCEpJ4FglsJCEbAEkAIPEvsgE4lG7lqquuuuqqq6761yC46qqrrrrqqquuuuqqq/5Tif99xANIPDdxhSTEFZIQIEASAJKQhAAknh/xAtg8t/tK+W2uuuqqq6666qp/DSpXXXXVVVddddVVV1111X+Ka6655sEA5+6+G/E/nMRzkLifeE7iCkmIKyRxmYQkBEhCPJsASUhCXCGeTbxwBsxVV1111VVXXfWvROWqq6666qqrrrrqqquu+k8l/g+QABBXSOJ+khAgQBICJCGJ52FzmcSLxMY821HErVx11VVXXXXVVf8aVK666qqrrrrqqquuuuqq/xRnzpx5MID4j2dA/McRgAQAEs9NgCQAkAAQIAkBSEhCABIA4jkJECCuEIDEc7B5fswVhxHP4Kqrrrrqqquu+tcguOqqq6666qqrrrrqqqv+U52/+27Efy7zbOaFEy+ExANJ4jlICBCABAAS4gpJCJAEEpJAAgnxwpl/WbbGVVddddVVV131r0Llqquuuuqqq6666qqrrvpPcc011zwYQFwh/ncRV4hnE88kIUASAiQhCQBJCBBXiCssgQSA+DewOYRbueqqq6666qqr/jUIrrrqqquuuuqqq6666qr/NGfvvpvnJv59zIvG/OuIF0BCgLhCEgIECJAEgABJCEACCUn8u9kAGFjWeitXXXXVVVddddW/BsFVV1111VVXXXXVVVdd9Z9GgHg28aIz//XEFQKQeBYJAEk8i8T9JCEJAUgIEFdIAgkAAUg8i82/xrLWW7nqqquuuuqqq/41CK666qqrrrrqqquuuuqq/xRnzpx50Nm77+Z5SPxbmedl/mXi+RPPSzybeDZJAAiQhABJCBDPJCEACQBxhQBxhXgBbO5nrrrqqquuuuqq/yAEV1111VVXXXXVVVddddV/GkkAiOcl/gPYPJD5F0g8i8SLQoB4PiQAkACQhAAkBEgCif8ohxG3ctVVV1111VVX/WsRXHXVVVddddVVV1111VX/Ka655poHn7v7bsQLJl4482zmv5DEZRIPJEASAgRIQoAkAAQIECBAgCQAkPj3uLeU3+aqq6666qqrrvrXIrjqqquuuuqqq6666qqr/kuI/zrm3088JwFIXCYBIEASAiSBBBJIIHE/SVx11VVXXXXVVf8tCK666qqrrrrqqquuuuqq/9EMmH8b8y8Tz0VCXCEACUkgIUCAAEk8i4QAAQIECJCEuEKAJF5U5gFsDqVbueqqq6666qqr/rUIrrrqqquuuuqqq6666qr/FNdcc82Dz911F5IQz0n89xIvOvFcJO4nCUkIQAIJSSDxb2UAmwcycBjxDK666qqrrrrqqn8tgquuuuqqq6666qqrrrrqP434z2WezfwbSDw38UwSDyRAgABJiCsEICFAXCFAEpKQhHg2AeJFYPNA2RpXXXXVVVddddW/GsFVV1111VVXXXXVVVdd9Z/izJkzDz53zz38byBAgCTuJ55NPJPE/SQhCQABkpCEJJB4DhKSeBYJJJB4HjbPzwHcylVXXXXVVVdd9a9FcNVVV1111VVXXXXVVVf9pxLPJv4HkgBA4rlJQgASkgCQhLhCgCQkcT8BAiQhrhBXiGcT/zLb3G9Z661cddVVV1111VX/WgRXXXXVVVddddVVV1111X+Ka6655sHiv565wvwrSLxAEvcTzyQhiQeShCSQkMRlEpJ4DhL/GuaKZa23ctVVV1111VVX/WsRXHXVVVddddVVV1111VX/ac7ffTcAAsR/LPMC2Dw/4kUniQcSzyQhQFwhCUlIQoAAcYUA8Vwkrrrqqquuuuqq/1JUrrrqqquuuuqqq6666qr/VOI5if94BsS/jnjhxBXiCgECkBAgQIAAAUggIQlJ3E82khDPS7wIbA6kW7nqqquuuuqqq/4tCK666qqrrrrqqquuuuqq/3DXXHPNgwEu3H03/+NIvDDimSTEFQKQABCAhCSQkIQkBIgrBAgQgAQAEgLEC2Hz/Nxbym9z1VVXXXXVVVf9WxBcddVVV1111VVXXXXVVVc9kMSzSCCBhABJAIgrxLNJQhKSQEISAOKqq6666qqrrvpvROWqq6666qqrrrrqqquu+g935syZBwOIf5n47yOek3he4jlJAglJSEISknggcYUkDEhCPJt4AJt/yYF0K1ddddVVV1111b8FwVVXXXXVVVddddVVV131n+bc3Xcj/uOZ58+8ABIviLhCPJsAAeIKAZIQVwgQVwgQIAlJSAIJSQCIf7/DiGdw1VVXXXXVVVf9WxBcddVVV1111VVXXXXVVf/hrrnmmgcDiCvEfy3z/InnTzyTxGUSz5eEAAFISAIJJARIQoC4QhLPIiGJ58vmhclMrrrqqquuuuqqfxMqV1111VVXXXXVVVddddV/irN3383/RuI5CUACQAASSAgQIECAJACQkASAbZAQIK4Q/zoG7ivlt7nqqquuuuqqq/4tCK666qqrrrrqqquuuuqq/zTi2cR/DvOfREISSAgQVwgQIAAJSUgCQBLi2QQIQOJZJP5FNthcddVVV1111VX/blSuuuqqq6666qqrrrrqqv9wZ86cedC5u+8GQDyb+B9C4nlI3E+AeC4SkpAEEkiIZ5OEAElIAsAANuIFsHkWm+dhA7Cs9Vauuuqqq6666qp/C4Krrrrqqquuuuqqq6666n8V8+8jXjABSDyQAAHi2QQIkIQkJCEJJJ6bJF5UBrB5IHHVVVddddVVV/07EFx11VVXXXXVVVddddVV/+GuueaaB5+7+27Efx3znMy/QOJZJJ4f8UwSAAIESEISAALEFQIkIQkBkrifJMS/3t0Rv81VV1111VVXXfVvRXDVVVddddVVV1111VVX/acT/3UMYPPCiGeSQAJAXCGuEFdIQoAkJIHE/SQhCUlIQhICBCBxP0k8N/EvM3Ag3cpVV1111VVXXfVvRXDVVVddddVVV1111VVX/a9l/mOI5yQJJJB4bgIESEI8k4QAAUggIUCAeACJq6666qqrrrrqvxTBVVddddVVV1111VVXXfUf7pprrnnw+bvvRoD4j2Ob/ygCBIgHkHgg8UwSAgQIkIQASUhCgCSQECBAEkgg8e9xEHErV1111VVXXXXVvxXBVVddddVVV1111VVXXfXfT+I/ncS/RDwvAQKQQAIJACQAJCEJAElIAgkAAeIK8WziBbB5bofSM7jqqquuuuqqq/6tCK666qqr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r3+f++6771auuuqqq6666qr/LuhBD3oQV1111VVXXXXVVVddddX/TNdcc82D3/Ed3/GzXud1Xue9eaZL99zD3t138/e/9Evs3XMPd/z1X1MkikQBikSRKBJFIiIoEkWiRFAlSgQ1ghpBLYWuFLpS6Eth1nX0tTLvOmZ9z3w2YzabMZ/P6edz+tmMOp/DiROsH/EIlg95CG1zk/vdd999t37913/9+/zDP/zDb3PVVVddddVVV/13Qw960IO46qqrrrrqqquuuuqqq/5nu+aaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq9933333XrNNdc8GGDvnnu446//mrv++q85uPde7v3rv6ZIFIkiUSIIiSJRIygSJYIaQY2gK4VaCn0p9LXS18qsVmZ9z7zvmfc9s/mc2TXXUB72MHTyJONjHkNubXG/++6779bf+q3f+u7f+q3f+u6zZ88+g6uuuuqqq6666n8K9KAHPYirrrrqqquuuuqqq6666n+Pa6655sEv9mIv9tov9mIv9lqv8zqv8948Hwf33svBPfdweO+93Pe3f0sAy/vuIyTWZ89SJIZz5+hKoUawdd11dKXQlcLmtdeyuPZa5tdcQy2F/hGPoDz0oTy3++6779bf+q3f+u6zZ88+47d+67e+m6uuuuqqq6666n8i9KAHPYirrrrqqquuuuqqq6666n+vM2fOPOjFX/zFX+fFXuzFXuuaa6558Iu92Iu9Nv8J7rvvvlvPnj1769///d//9j/8wz/8zj/8wz/8NlddddVVV1111f906EEPehBXXXXVVVddddVVV1111f8d11xzzYNt+8Vf/MVfB+DMmTMPuuaaax58zTXXPBjgzJkzDwa45pprHnzffffdes011zz4vvvuu5VnOnv27K333Xffrffdd9+tAP/wD//wO//wD//w21x11VVXXXXVVf8boQc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hHjzuIYkIiOSIAAAAASUVORK5CYII=) +![Rendered example of appearance 8](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEsz0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVS+Sa6655sE805kzZx4McM011zyYZzpz5syDeC7XXHPNg3k+rrnmmgfzAtx333238gLcd999t/JMZ8+efQbPdN99993KM509e/bW++6771auuuqqq6666qqrrrrqqqsAPehBD+Kqq6666qqr/r+55pprHgxw5syZB19zzTUPPnPmzIN4pmuuuebB11xzzYMBzpw58+BrrrnmwbyIbv+rv+J+e/fcw8511/H87N1zDy/IznXXAbB3zz08t53rruOBbn6Zl+GF+Yd/+IffPnPmzIPPnj1763333XcrwD/8wz/8DsB9991369mzZ2+97777buWqq6666qqrrrrqqquu+r8KPehBD+Kqq6666qqr/q+55pprHnzmzJkHX3PNNQ8GOHPmzINe/MVf/LXPnDnz4GuuuebBPB+3/9VfsXfPPQDs3X03O9dfz97dd3O/m17mZdi75x727r6bneuvZ+e667jfseuvB2Dnuuv499q75x52rruOvXvuYee66wDYu+ceHmjv7rvZu+ce7nf7X/0V99u75x727r6bneuvZ+e66wDYue46jl1/PQA7113HTS/zMtzvvvvuuxXgH/7hH34b4B/+4R9+5x/+4R9++7777ruVq6666qqrrrrqqquuuup/O/SgBz2Iq6666qqrrvrf6pprrnnwmTNnHvxiL/Zir3XNNdc8+Jprrnnwi73Yi702D3D7X/0Ve/fcw97ddwNw+1//Nceuu45L99zDseuuY+e66wC4+WVeBoCbXuZleG5799wDwN7dd3PTy7wML6p2/jwA5cSJ3Vwu7/Vy+ShzhW0ADGBjwFxhm8W11/KiuOOv/gqAneuvZ+e667jf3j33sHf33ezdcw93/NVfsXfPPdzxV3/F/Xauuw6AneuvZ+e667jpZV6Gneuu46aXeRkA7rvvvlv/4R/+4bf/4R/+4Xd+67d+67u56qqrrrrqqquuuuqqq/43Qg960IO46qqrrrrqqv8trrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GvzTHv33MMdf/VXXLr7bu74678G4I6/+isAdq67jse+yZsAcPPLvAw3vczLcL+9e+4BYOe663huy3vvRcDqvvtY33cf6/vuQxICxnPnaOfOERIlAp8/T0hw4QIlghJBSBz70A/949nLvuwr8wC3v/d7M2UyZTK2xpTJ2BpTJmMmUyYtk8mmZdJsZtdcQ8vENovrriNtNq69FgOb117L5nXXYWDruuvYuu46tq+7jvs97pd+iZte5mXYue469u65hzv+6q+446/+isf90i/xguxcdx03vczLcNPLvAyPfZM34b777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquuuup/E/SgBz2Iq6666qqrrvqf6pprrnnwi73Yi73267zO67zXi73Yi702wN499/APv/iLANzx13/NHX/1VzzQznXX8dg3eRNufpmX4aaXeRkA9u65h7277+aml3kZAI7uuQeAc3/zNyzvvRdJXPjbv0XA7t/9HZIIiZAIiZAIiYigSJQIikSNoERQS6FGUCMoEZQIQuKab/92ntv6CU/gri/8QqZMxtaYMhlbY8pkzGTKpGUy2bRMmk2zyUyaTQJpkza2SSBt0iaBtElg89pr2bz+eravu44bXvql2b7+em55mZfhcb/0Szz2Td6EO/7qr/i1L/oi9u65hxdm57rruOllXoZXep/34fbz53/7Mz/zM1+Hq6666qqrrrrqqquuuup/CypXXXXVVVdd9T/QNddc8+DXfu3Xfq93eqd3+myAP/7O7+THv+VbuOOv/ornJq646WVehld+n/fhppd5GfbuuYed664D4PCeezj/13/N4T338OTv/V7O/+3fEoAkApBESEgiAEmIZzNgnskGCWyQMM9kA2DAgAHzLxPPJAEgQAAS2DwHCWxeVPv33MOle+6hAX/3i7/IBGxedx03vszLcP1LvzQAr/w+78OvfdEX8cLs33MPj/+lX2Lv7rt5g0/91Nd+sRd7sdf+h3/4h9/mqquuuuqqq6666qqrrvrfgMpVV1111VVX/Q9zzTXXPPibvumbnv5Hv/7rv/2rX/iFPO6XfokHEs/rppd5Gd7ua7+WP/7O7+TY9dfzlF/6JY7uuYen/cqvEEBIBBASIWFA/MsMiCvMFQYMmGczYJtnsUHi+WkXL94ruJYHEM9LPB8S2AAIMC+EBDYPdOmeexj/6q94yXvu4aEv8zL8yXd9Fy+KG1/6pXmDT/1Udq67jrNnz97KVVddddVVV1111VVXXfW/BZWrrrrqqquu+h/mSz7rs57+uF/6Jf70i77otQEk8S+58WVeBoCQ+MF3fEeKRAGKxPOwQeJ52CBxPwPiX2aezTbYWALg3Ed/9IXTX/3VJ3mA89/yLddyP4lnkXgeEtiIK8QVAsyLZue669i87jpufJmX4cXf5E04dv317N1zDz/5kR/JnX/914jnb+e663j0m7wJj3mTN2Hnuuu435kzZx5833333cpVV1111VVXXXXVVVdd9b8Blauuuuqqq676H+Saa6558C/9zu989pu81mt99k0v/dLc+dd/zb9k57rr2L/nHgAe/SZvQgD3/vVfc99f/zX/EgMCDAgwIF4wA9ggAWCuMGCuMFfYJg8OTt73AR/ANd/2bQ0od73v+3I/cYW4QgASSGADIEA8JwHm+du+7jo2r72W617mZdi67joe/SZvwv327rmHx//SL/GEX/ol9u65h+e2c9113PgyL8P2ddfxmDd5E3auu469e+5h57rr2L/nHv7ou76LN/yUT+Gqq6666qqrrrrqqquu+l+FylVXXXXVVVf9D3LffffdCvD4X/ol3u5rv5a9e+7h8b/0S9zxV3/FnX/91zw/e/fcw94v/RJ3/tVf8Zg3eRNufOmX5uXf5304uOceDu65h8N77uHs3/wNR/fcw/Leezm65x7Ei8jmWSTuZ8AANrbBBsA8JwOyaefOlXL6NOX0adrZs/xLxPPauPZa0mZx7bVsXHstG9dei22ueemXZuu669i67jrut3fPPTzhl36JP/2u7+LOv/or7vzrv+aBdq67jhtf5mXYue46bnzpl+bGl3kZAPbuuYf9u+9m57rrOLjnHu7967/mL//qr/iHX/olRuCV3ud9uOaaax78D//wD1x11VVXXXXVVVddddVV/ytQueqqq6666qr/YX77t3/7e17pxhs/+/Rf/RUPe5mX4TFv8ia80vu8D3v33MOdf/VX3PnXf83e3Xezf8897N1zD/fbv+ce/vS7vguAneuu48aXeRm2r7uOneuu45U/6ZN4oKN77gHg6N57Wd57LwDLe+9lde+9SGJ1330ICEAS6/vuo0QgifHsWQCwscT9bIONAdsgUU6dQkA5fRqA2aMehU6dIluj2WycOkVmUk6fJm3Spr/mGtJmds01LK65hsW11/L83PlXf8XePfdw21/9FQB3/tVfcedf/zUA29ddB8CNL/My3PgyL8ONL/My3PjSL82NL/My3G/vnnvYv/tubnyZlwHg8J57WN5zD+f/5m/4++/5Hu76q78igQaIq6666qqrrrrqqquuuup/KfSgBz2Iq6666qqrrvqfZvvee5/+iGuvffCjX/ZledjLvAwv/aZvCsDjf+mX2LnuOm58mZcBYO+eewC486/+CoA7//qvAdi/+2727rmH/Xvu4YG2r7uOneuuY/v66wG48aVfGoCd664D4MaXeRn+u9z5V38FwP4997B3zz3cb/+ee9i/+262r7+eO//qr9i57jq2r7+e7euu4343vvRLA7Bz/fVsX3cd99u/5x4A7vyrv+LRb/Im3O/onns4vOcezv7N33B4zz087Zd/mQRsk0ACzSaBBkw2I/A2X/M1/NGTnvTZP/qjP/o5XHXVVVddddVVV1111VX/G6AHPehBXHXVVVddddX/NLNz537runF87YVED3QSJ6+7jge/zMtwy8u+LAIe8yZvwnO786/+ihtf5mV4oL177uF++3ffzd4993C//XvuAWDvnnu4n4D9u+/mftvXX8/99u++G4Dt66/nhdm+7joA9u+5hwfavu469u+5B4Dt667jgXauuw6A7euuA2Dn+usB2L7uOp7b/j33ALB3993c+DIvw3Nb3nsvAOf/5m84uuceAM79zd9wdM89HNxzDwYMpI2BtDGQNgkkkDYNaMBkMwJv8zVfwx896Umf/aM/+qOfw1VXXXXVVVddddVVV131vwGVq6666qqrrvofqAEGDBgwcOmee/j7X/olHv/Lv0wBfuMLv5Bj111HSNz4Mi+DgBte5mV4yi//MlvXXcfWddexdd117Fx3Hffbue46jt9zD5vXXcf99u+5B4Dt667jv9r+Pfewfd11vCDDffdxv/V99wGwuvdeVvfdx+ree7HN0x/3OFb33svy3ns5uuceju69F9sYSBvbGLCN+fe75pprHsxVV1111VVXXXXVVVdd9b8Flauuuuqqq676H6j1/W/nOL62eT5skADYv+ceQuJJv/RLBPDUX/5lBAQgiQC2rr+eACSxde21bF1/PQIEbF53HZLYuO46Lv3d3yEAiY1rrwVAgCQABMyvuQYkAMQVApAAEFfk+fMASOKB2vnzYGOb6dw5sNkD0ma87z7SZn32LJnJ+t57aTar++4jM2k2aWObtEkb26SNAdukzQMJMM9FApt/DQEC9u65B+Zzrrrqqquuuuqqq6666qr/NahcddVVV1111f9AA2CuMGDAPJt5/gyI53R4zz0ICImje+7h3N/+LZIIICQkERIhEUBIRARFIiSKRImgSJQIagRFokRQIygR1AhKBBFBkYgIQkIS4tkM2CYzSZu0aZm0TFommUmzaZm0TJrN/QQIMM9FApsXSAKb/yjXXHPNg7nqqquuuuqqq6666qqr/rcguOqqq6666qr/gbKUZyRgnpMB8/yZZzNXmBfOPIDNs9iY58829zNXGDCAzWU2l9k8B5sXRAASzyIh/mXi2cQLIQEgnk1cIZ5J4oEEiGe7dPfdXHXVVVddddVVV1111VX/qxBcddVVV1111f9EpdxqwIAB87wMGDBg/pVsnoONAQPmeRkwz2aezTyTDYC5wjbPl81/BPF8SDw38a8nnpcAJK666qqrrrrqqquuuuqq/1UIrrrqqquuuup/oFLrrQkYMICNedGY52SuMFeYK8yzmedkABsDBrABsI25wjyTjW0MmCvMFQbMv0z8CyT+q4gXbO+eezhz5syDueqqq6666qqrrrrqqqv+tyC46qqrrrrqqv+h0sZcYa4wYMD8y8yLyOZfywA2tjHPyTbPwcaA+a8h/mOIZxNXiKuuuuqqq6666qqrrrrqfxmCq6666qqrrvofqNZ6awK2MVeY52SeyeZ+tnlhzBXm2czzZwAbAAMGzDPZmGczV9gGwIB5LjYA5j+QxItCPCfx/IkHkHggAXt3381VV1111VVXXXXVVVdd9b8K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Zp7JBhts7mfAPJPNv8jmXyTxohDPJPHvJa666qqrrrrqqquuuuqq/8EIrrrqqquuuup/sVrrrQYMGDBXGDBXmGczz2auMFeYZzPPn3kAG2zuZxtsAMyzmedknsnmfxoBSDw3AQLEFQIEiGc7c+bMg7nqqquuuuqqq6666qqr/qchuOqqq6666qr/5cZSbjVgrjDPy4D5N7B5fgwYMGCezQA2AObZDBgwV5hnM89mHsAGwPznEM8mnpN4NvHC7d9zD1ddddVVV1111VVXXXXV/1gEV1111VVXXfW/3FjKrQYMmCvMFQaweW7mudgAmGczV5grzBUGsHkg82wGsAEwL4CNAXOFAfNMNv+hJACQAEDieUg8D4nnR1x11VVXXXXVVVddddVV/4sQXHXVVVddddX/chNgns1cYZ4/82zmCvPvZ57NADbYGDBXGDAPYPPczH888fyJF068aC7dcw/XXHPNg7nqqquuuuqqq6666qqr/qchuOqqq6666qr/5VoptxowYJ6XeTbzLzPPyzYABrB5QcyzmWeywcYANtiYZzMvmHk2828jrhAgHkDi30uAuOqqq6666qqrrrrqqqv+ByO46qqrrrrqqv/lplJuTcBcYcBcYa4wYJ6TucJcYZ6Xef4MGDBgwDybeTYD5plsHsiAAWyemwHz7yQhnpd4/sQV4rlIPD/imST27r6bM2fOPIirrrrqqquuuuqqq6666n8agquuuuqqq676X66V8gwDBsyzmX8787zMC2eezTwnAwYMmGeyuZ8BA7Z5kUm8MOJFIx5A4n7iBRPPJq666qqrrrrqqquuuuqq/8EIrrrqqquuuup/OZdyawLYmCvMs5nnYmOeyeaBzPMyD2Bjng8bbGxzPwPm+TPPxQab/yriASReFJIQDyBx1VVXXXXVVVddddVVV/2PR3DVVVddddVV/8sZSMBcYQAbAHOFeTbzbOYK8wA2ALZ5YQzYxjYPZBts7meekwFszBXmhbD5V5MQL4DEv4V4AIn7iSv27rmHa6655sFcddVVV1111VVXXXXVVf/TEFx11VVXXXXV/3K11lttY8A8m3lOBsy/zDwXG3OFef4MmGczgA02AAYMGMDmfrZ5bgaw+Q8l8RwkxLOJK8QVkrifeE7i+bvmmmsezFVXXXXVVVddddVVV131Pw3BVVddddVVV/0vV2u91YC5woB5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wKW77+bMmTMP4qqrrrrqqquuuuqqq676n4Lgqquuuuqqq/6PyVJuNWAbAHOFeQCb+5lnMw9g88LYBsA8LwO2sY0BAwYMmGeyATBXmOfP/OsJQOKFEYDEs0iIF06AeACJq6666qqrrrrqqquuuup/NIKrrrrqqquu+j9mZWOuMM/LvGjMs5lnM8+fAQPmRWOezTybecHMv48kHki8EBIPJJ5NPCdJ3O+aa655MFddddVVV1111VVXXXXV/xQEV1111VVXXfV/TJ3NficBc4UBc4W5woAB82zmCvOiM1eY52LzwtgGwAA2ANjcz1xhnsnmP5t4NvGcxPMSz2vvnnu46qqrrrrqqquuuuqqq/5HIbjqqquuuuqq/2MmwIAB82zmX888m3k28wA2z8HmgQwYMGDANg9kns08m3k283zY/IskxBXi+ROAxP0EIHE/AUg8i8TzI0DANddc82Cuuuqqq6666qqrrrrqqv8pCK666qqrrrrq/5ha6622MWCel3le5gpzhXnRmedkwIAB81xs7meezYD51zP/DhL/EvEvE8+2d889XHXVVVddddVVV1111VX/oxBcddVVV1111f9BDTBXGDAvmAFsnsXmgQxgA2Cb+5nnZMA2z5cNNvczV9jmOdiYF878K0k8BwnxnMQVApAAEP8ycYW46qqrrrrqqquuuuqqq/6HIrjqqquuuuqq/2NqrbfyTObZDJgrDBgwL5h5/gxg80DmhbABMGDAPB82z2LzQLb5jySuECAAiRdK4kUhrjhz5syDueqqq6666qqrrrrqqqv+pyC46qqrrrrqqv+DxlJuNVcYMP8yc4V5Xub5Mw9g80AGbGPAPC/bABgwYMBcYcCAbe5nAJsXlXg2SfxLBCABIJ6XAAECxPO3f889XHXVVVddddVVV1111VX/oxBcddVVV1111f9BYym3GjAPYANgnpd5/mxzP/Ns5plsHsiAAfPC2eaFssHmBTH/NuJ5iRdCAkA8k8T9JHHVVVddddVVV1111VVX/Y9HcNVVV1111VX/BzXAgAFzhQHzADYviHnRmSvMc7F5bgbMsxnABgAbAPOfROJZJC6TeBYJAPGcxAsnnm3vnnu45pprHsxVV1111VVXXXXVVVdd9T8FwVVXXXXVVVf9HzSVcqsBbADMczJgrjDPZp6XeTbzbOYBbJ6DDYABAwbMM9kAmCvM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7icJSQgQIEASkhAgQMBweMhdf/3X7N19N6cf8QjOPOIRvNibvAkv8aZvysbWFj0cz9tvf+lrVqv3Pr5avXc3ji89wKVW661cddVVV1111VVXXXXV/w2U48ePc9VVV1111VVXPaeI2B2n6cGzaXrpACQRgCQECBCAhAABkhBXCEBCABICBCAhQBIAkgCQhCQAJCEJAElIQhICBAgQgAQSkpCEJMQVkkBCgCTEFZK4nyQkASAJJACQeBYJ8UwS95OEACSeRQIACQAkBEhCgCQAkJCEAEkIECAJACSQuExCEveThCSeRUISAgQIkIQkAhAg4PxTnsLf/tiPsX/PPZx6xCPYue46bn6Zl+HF3+RNeIk3fVM2trbo4Ti33/7SZ9br9z6+Wr13N44vPcClVuutXHXVVVddddVVV1111f9e6EEPehBXXXXVVVddddXzmqbpwSfuu+/pc6ADZhIdUCUKUIAiEUABAggJAQGEhIAAJBGAJAIICQEhEYAkApBEACEhiZAIICRCIiQkERIBhERIhERIhIQkQiIASQiQhABJAIhnM4CNAQO2MWAb2xiwjYG0sY0B29gmAdsYsI0B29jGgG0MGLCNAdsYsI0BA7YxYMA2BgzYxlxhG3OFAduYKwzYxoC5woBtDBgwYGDruut41Bu/Ma/4vu/LA+3dcw//8Iu/yN/90i+xe/fdJLAs5dZLff/be133Oyvp1vV8/ttcddVVV1111VVXXXXV/x7oQQ96EFddddVVV1111Qtw8eJ3nVgu33sGdBI90EkUoAIBFIkAAgiJAAIIQBIBCAgJASERgCQCCAkBISGJAEIiAEmEREgICImQCImQCImQCIkAQiIkJBESkghAEgIkASCelwHbANjGgG0SsI1tDNgmbQzYxoBtbGMgbQzYxoBtDNjGgG0MGLCNAdsYMGAbA7YxVxiwjbnCNuYKA7YxVxgwYBsAAwYM2AbAgIGt665j67rrePSbvAmPfpM34X5799zD3t138w+/9Ev83S/9ErZJwMCylFtXpdx6GHHrfq2/M5Ry6zCf/zZXXXXVVVddddVVV131PxN60IMexFVXXXXVVVdd9fxN0/Tg4/fd9/QF0AG9RAdUiQoUICQKEEAAIRFAAJIIQEBICAggJAKQRACSCIkAJBGAJEIigJCQREiERAAhERIhERIhERKSCIkAQkISkghAEgDi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G5+zv7Hx3Vx11VVXXXXVVVf910IPetCDuOqqq6666qqr/m1Wh4fvfd2lS9/VAx1QJTqgAkWiAAUIiQIEEIAkAgggJAIICQEBhISAkBAQEgJCQkBICAgJSQQgiZAIiQAkERIhERIhERIhERIhERIhERIhEYAkQkISAiQhrpDEc7AxYAAbAwZsY8A2BmxjwDYGsDFgGwO2MWAAGwMGbANgrrCNucI2AAZsA2DANgAGbANgwDYABgxgY66wjbnCADbmCgPYAJgrzDPZmOdknovNA5l/G/F/l3nhzPOyzQOZZzOAjXk2c4VtAMwVBrAxVxgwV9jGXGHAXGEbAwYMGDCwde21bF93HTe+zMtg4B9+6ZfYvece0iaBBixLufW++fy7z21tfQ5XXXXVVVddddVV/zXQgx70IK666qqrrrrqqn+72blzv7UxDK89AypQJTqgShSgAAUIiQACCIkAAgiJAAKQRACSCCAASQQgCQEhISAkJBFASEgiAEmEREgEEBIhERIhERIhERIhERIhERKSCIkAJCGJkBBXSAJAPJu5wjYABmxjwDYGbANgGwO2MWAbAwawMWDANgAGbANgrrCNucI2AAawMWCusI25wjbmCtuYK2wDYMAANuYK2wCYKwxgY57NPJMNgHlO5rnY/KeR+F/L5oHM82cewMY8J3OFbe5nrjCAjbnCXGEbAHOFAdsAGDBX2AbAgAEDtgEwYMCAAQNb117L9vXXs33ddRj4+1/6JRJImwSOSnnGbtf91p2z2fcwn/82V1111VVXXXXVVf950IMe9CCuuuqqq6666qp/u2maHnztffc9XUAHVIkOqECVKEABQiKAAggoEgEEEBICAggJASEhICQEBCCJACQREgJCQkBISCKAkAgJSYRESAQQEiEREiEREiEREiEREiEREpIICQGSECAJ8UwSz2IDYK6wjQHbANjGgG0MGLCNAdsA2MaAucI25grbAJgrbANgrrCNucI2AAawMWCusI25wjbmCtuYKwxgY66wDYC5wgA2AObZDGBzP3PVv4Z5AJsHMs/JPJMNgLnCPJONucJcYQAbc4UBbMwVBrAxYK4wYBsAc4UB25grDBiwjQFzRQIGbLN13XXc+DIvw6V77sHAbX/1V6RNA5C4az7/7nOz2fesZ7Pf5qqrrrrqqquuuuo/HnrQgx7EVVddddVVV13177M6PHzvay9d+q4Z0AFFogMqUCUKEECRCCCAAEIigABCIoCQEBCAJAKQRACSCEASAkJCQEgEIImQkEQAIRESkgiJkAggJEIiJEIiJEIiJEIiJEJCEiEREgIkIQAJ8fwZwMaAbQAM2MaAbQzYBsA2BgxgY8CAbe5nrrANgLnCNgAGsDFXGLANgLnCNuYK25grbANgwDYA5grbAJgrbANgrjCADYB5NvNMNg9k/u3E/13mBTOAzf3Ms5lnsjFXmGeyMVcYwMaAucI2AOYK25grDGBjwFxhwDYABgxgY8CAAXOFbQwYMGDANglsX3cdN77My5DA3//SL5E2DUjgsJRn3LGx8dkHGxvfzVVXXXXVVVddddV/HPSgBz2Iq6666qqrrrrq308XL37X8eXyvXugA4pEB1SgSBSgACERQABFIoAAQiIAASERgICQEBASAkJCgCQCkEQAkggJASEREgJCIiRCIiQkERIhERJFIiRCIiQCCImQkERIhIQkBEhCEgLEM0k8i425wgA2BmxjABsDtjFgwDYABmxjnsnGXGGusM39zBW2ATBX2AbAXGEbAAO2ATCAjQEDtgEwV9gGwFxhG/NstgEwz2YAm/uZf5l5TuL/J/NMNg9knpMBbADMs9kGwIABbMwVBrAxVxiwDYC5wjbmCgO2ATBgGwBzhQHbmCsM2MZcYcCAbQwYMGDANga2rruOG1/mZdi67jpu/+u/5hl/+Zc0oAFHpdx622LxOUebm9/NVVddddVVV1111b8fetCDHsRVV1111VVXXfXvN03Tg7fPnfutjcwH90CVKEAHVIkCFCCAIhFAAEUigAAkEUAAkgggJAQICAkBISEgJASEhICQkEQAkgiJkBAQEiEREiEREiEREiEREiEREiEREiEREgJCQhIhIUASApAQz8s8k40B25grbGPANgAGbGOusI15NtsAmAewMVeYZ7IxV5grbANgrrANgAHbABiwDYC5wjbmCgPYmCsMYANgrjCADYB5Trb5H0fiP53N85B4DjbPzTwnA9gAmGezDYC5wgA25grbABgwgI0BA9gYMICNAXOFbcwVtjFXGLANgAEDtgEwYAAbAwYMGLCNAQMGDNjGwNZ113Hjy7wMN77My3Dpnnv4u1/4BS7ecw8TcFjKrU/f2nqfYT7/ba666qqrrrrqqqv+7dCDHvQgrrrqqquuuuqq/xir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gCQAkABA4n62eWHMFW0cueqqq6666qqr/lUIrrrqqquuuuqqq6666qr/NMEVAsR/DPMfTzyTxANJ4oHEFQIESEKAJCQBIAkBAiTxQALEv91hxK1cddVVV1111VX/GgRXXXXVVVddddVVV1111X+aAMR/D/MfQ1whrhCAxLNIAAiQhAAkJAEgCSTEi8DmBbJZ1XorV1111VVXXXXVvwbBVVddddVVV1111VVXXfWfJlp7MA8gQPzbmX8DiX8L8UwS4gEkBEhCgAABSAhAQlwhrhD/DjYABpa13spVV1111VVXXfWvQXDVVVddddVVV1111VVX/acRIP5zmf8Y4tkEIPEsEkhI4oEkIUASApAQIAlJIHHVVVddddVVV/23Irjqqquuuuqqq6666qqr/tOU1h4MIP5tzLOZ58Pmgcy/TLxgAsSziWcTVwiQhHgmCQBJCEDigcQzSUji3+oo4lauuuqqq6666qp/LYKrrrrqqquuuuqqq6666r+WxL+W+e8jQFwhAAkASQgQIAkAAQIkIUAAEpIQzyZA/OscSLdy1VVXXXXVVVf9axFcddVVV1111VVXXXXVVf9pamsPFs+feNGYfz1zhXkuEs8iIV4AicsknpsA8UwSSABIAglJACCBhHhOApD41zqIuJWrrrrqqquuuupfi8pVV1111VVXXXXVVVdd9Z8meDbxvMT/XOKZJAAEIHGZhCQECJCEAHGFAHGF+Y9xKN3KVVddddVVV131r0Vw1VVXXXXVVVddddVVV/2nSUAS4j+H+U8gcT8BAiSBhABJiCskIUAAEkhIAgkkACQhHkDifuIBbF4Q2xxGPIOrrrrqqquuuupfi+Cqq6666qqrrrrqqquu+k8xTdODxfMn/uOZfxvxvMTzEs8mQDyTBBICxBUCBEjiMglJiH+7No5cddVVV1111VX/alSuuuqqq6666qqrrrrqqv804n8G8QJIPDfxTBLPTRICkEBCEgIESEISkpDEA4l/JRtsHugw4lauuuqqq6666qp/LSpXXXXVVVddddVVV1111X+KaZoeDCCeTfzPJJ5J4n7i2cRzEiCukIQk7ieukMT9bHOZxIvCPK9lrbdy1VVXXXXVVVf9axFcddVVV1111VVXXXXVVf9pxH89c4V5wcQDSABIQjwnSUgCCUkIkAQSAsSzSUISSEhCPICEuEI8J/FC2NxvWeutXHXVVVddddVV/1oEV1111VVXXXXVVVddddV/imztweIKAeI/lnkBbP7VJJ6DxAsjAAlJSEISAgQIEICEAAECkBBXiBfCBsBcYUASV1111VVXXXXVvwnBVVddddVVV1111VVXXfWfQvzXMf+xxHMSIEAS4gpxhQABSCAhCSQEIIHEv5W54kC6lauuuuqqq6666t+C4Kqrrrrqqquuuuqqq676T1EBAeI5if8dxBXimSQAkJAEEpJAAgkB4goBSAgQIEC8cOYFsLkn4re56qqrrrrqqqv+LahcddVVV1111VVXXXXVVf8pcpoexP9C4pkkxBXiCgHiCgECBAiQhCQkgYQAS1wmcZnEVVddddVVV131X4rgqquuuuqqq6666qqrrvpP0UmI/1rmRSABIF4AiWeRQAIJAUggIUASSEhCEpdJCBCAhADxTBICJAEgnj/zvA6kW7nqqquuuuqqq/4tCK666qqrrrrqqquuuuqq/xRq7cH8JzEvnHle4l8mnpd4NgECJAEgrhAgCQFISEIAEgACxIvA5vk5jHgGV1111VVXXXXVvwXBVVddddVVV1111VVXXfWfIgABAsT/TOL5EyBAXCFAEgDiCgGSkAQSAiQhrhAgAAkk/j3aNHHVVVddddVVV/2bEFx11VVXXXXVVVddddVV/ynEfw3zIpB4QQQIEIDEZRLPjySQkIQkAAQIkIQASUgCCQDx73cg3cpVV1111VVXXfVvQXDVVVddddVVV1111VVX/acorT2YF4H4n0U8JwGSEFeIZxMgCUlcJnE/AZIAEM9JEi8qA8tab+Wqq6666qqrrvq3ILjqqquuuuqqq6666qqr/tMIEFeI/xjm3078K0hIAgkAJMQVAiQhiftJQoAkJIEEgCQAJCH+FWzut6z1Vq666qqrrrrqqn8LKlddddVVV1111VVXXXXVf4o6TQ/muYj/PAbEi0jieUjcT4C4QlwhAAlJSEJcIQlJSEISAsSzGUDiMonnYYPNc7C5zCa46qqrrrrqqqv+HahcddVVV1111VVXXXXVVf85JMR/HwPiX0cAEs9NEgDiASQkIUA8gAQSz2Ijnk386+xLt3LVVVddddVVV/1bEVx11VVXXXXVVVddddVV/ylqaw/mv4EBbF4Q8XxIPD/i2cQVAiQhQAASkpCEJCQhQIAASbxIbACweaC7I36bq6666qqrrrrq34rKVVddddVVV1111VVXXfWfQjyb+M9hQPwbSQAgASCuEFeIKyQhAAlJSEKAJCQhAAkBkhCAxLPYAIirrrrqqquuuuq/AcFVV1111VVXXXXVVVdd9Z/CgADxH8c2/xHEM0k8P5JAAon7iQeQuExCEgIkAYCEAAECBEgCQPzrGDiIuJWrrrrqqquuuurfiuCqq6666qqrrrrqqquu+g83TdODxf8e4pkkHkhcIQkAAZIQIAkBkpAEgCQESAKJ5yDxb3EgPYOrrrrqqquuuurfiuCqq6666qqrrrrqqquu+n9JgADxbOJ5iSskgQSAAAGSABAgCQFIAAiQBBIvkM0DmefVpomrrrrqqquuuurfjOCqq6666qqrrrrqqquu+g83TdODAcR/HPOCmedkng+JF4UAAeKZJMQVAiSBhCQAJIGEJJAQIAkkAAQIEM+feQCb53au636bq6666qqrrrrq34rgqquuuuqqq6666qqrrvpPIV4w8e9nnsnmfuY/gMT9JCEACQGSECCukIQAcYUASQAIQOIyiWeReFGYq6666qqrrrrqPwDBVVddddVVV1111VVXXfUfLlt7sAAkxBXiCvF8SACY/z6SeBYJJJ6DxP0kIQkBkpCEJCQBIAkAAUj8m9hgc1TrrVx11VVXXXXVVf9WBFddddVVV1111VVXXXXVfzgB4tnE/z4CBAgQIECAJAAESAJAEgKQkASAJADEA0i8SGwAJHHVVVddddVVV/27EFx11VVXXXXVVVddddVV/+EqV4j/GOY/l7hCgADxABLPIiFAEkgASAJAEgKQkASAJAAEICFAvOjuivgdrrrqqquuuuqqfw+Cq6666qqrrrrqqquuuuo/XE7Tg/jfROKFkYQkBCAhQIAkJCEJJCQhrpAEABIA4oWweRab+x1It3LVVVddddVVV/17EFx11VVXXXXVVVddddVV/+E6CfFfw7xgkhAgnkniuYkHkLifAEmIZ5OEACQkIQkBkhCAhCQkcT/xr2euuuqqq6666qr/IARXXXXVVVddddVVV1111X84tfZgAPGcxLOJF415XuYFM8+feF4CkAAQzyQhAAkAJARIAkCAAAECkACQhLhCgCQkcZnEC2QDgM1zO5CezlVXXXXVVVdd9e9BcNVVV1111VVXXXXVVVf9hwtAXCH+a5jnJJ6XAHGFeF4CBCAhQIAASQgQgIQkkEBCgCSQkIQkkHgg8W+zLz2Dq6666qqrrrrq34Pgqquuuuqqq6666qqrrvoPJ/5nE88k8a8iIUCAAAGSECCuECAJAQIk8Txsni+bB2rTxFVXXXXVVVdd9e9CcNVVV1111VVXXXXVVVf9hyutPVj825hnM/8JJJ6bACTuJ55JQoAASQiQBBKSkIQkJCEJSSABgAQSL5DNC2Obs13321x11VVXXXXVVf8eVK666qqrrrrqqquuuuqq/zTifygJJB5IPCcBApBAAkASAAIEiGeSQEISkgDA5oHEv4LNVVddddVVV131H4Lgqquuuuqqq6666qqrrvoPV6bpweLZxL+OAfP8mWcz/37i2SQhnkkCQIAAcYUkJIGEJCQhQDwXCQECJPFvcVTrrVx11VVXXXXVVf8eVK666qqrrrrqqquuuuqq/3gS/2tJSAJAPICEAAECJIGEJCQhCUlIAsA2SCABgIR4LjbPzVwRElddddVVV1111b8bwVVXXXXVVVddddVVV131H6629mCei/jPY64wz4fECyKeSeK5CUBCEpIQIAkkkBAgQIAkJCGeTRLiRWPAPJMNwJ3Sb3PVVVddddVVV/17Ubnqqquuuuqqq6666qqr/sOJZxP/84lnE8+fJAAECJCEJJB4FglJANjmRWbz3A6kW7nqqquuuuqqq/69CK666qqrrrrqqquuuuqq/3AGBIj/ucRzEiCuECAJAQLEFZKQhCQAJCEJSUhCEuIKAUiIF5HNA5mrrrrqqquuuuo/AMFVV1111VVXXXXVVVdd9R9qmqYHi/8c5gWw+dcQDyABgMTzkEACCQECBCAhCQABkpAEABKSQEK8CGyenwPpVq666qqrrrrqqn8vgquuuuqqq6666qqrrrrqfyXzbyOek3hOApAAECBAgCSQQEKAJCQhiftJQhIA4pkkxAPY3M88FxsA21xq7RlcddVVV1111VX/XgRXXXXVVVddddVVV1111X+oaZoeLED89zDPh4QA8fyJZ5JAQoB4NkkACBAgCQGSQEISkpAEgCSQQOIyCfGvY6666qqrrrrqqv8AVK666qqrrrrqqquuuuqq/1VW13Y87uOuI/ug32/c9LO7nPmzA+6Xnbjwkhs85d1PIcHiXOMlv+08m+cnnpsk7idAPICEAEkASEISkhCAhAABkpAEgCRsAyBA/Nvc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SEISl0lIQhJICJDE82XzLDbYPD/bL/Zi7Em3/sM//MNvc9VVV1111VVX/UcjuOqqq6666qqrrrrqqqv+w/32b//29/zDP/zDb5+47jre8dM/nf9yEvcTgMT9JHE/AQKQECBAgAABkgAQIAkBSEhCEkggIQkknofNAxnABpv7XfN6r8fZs2dvve+++27lqquuuuqqq676j0Zw1VVXXXXVVVddddVVV/2Hu++++279+q//+vcBeLk3fVNe7/3ej38r828kgQQSLxIJJAAEIAEgCSQkIQlxhSQk8UCSeB42AOY5GeivuYYzr/u6/NZv/db3cNVVV1111VVX/WcguOqqq6666qqrrrrqqqv+U9x33323fuZnfuZrA7z++70fr/t+78eLwvzrGBAgnpN4NvG8xLMJECBAEkgIECBAEgKQkIQkkEBCEkhIAkA8J/MANuaZbB7y4R8OwG/91m99N1ddddVVV1111X8Ggquuuuqqq6666qqrrrrqP80//MM//M7Xf/3Xvw/A673f+/E67/u+/IeyeSDxgolnE1cIkMRzEyAJSSAhAAkBSCAhAAkkJPFC2WBzPwPXvcM7sP1iL8aP/MiPfDZXXXXVVVddddV/Fsrx48e56qqrrrrqqquuuuqqq/7z3HrrrX999uzZZ7ziK77iWz/kZV8WJG79q79CgAABAiQhrhAgQAAS4goB4tkEICEgJEIiJCQREiEhiZAIiZAIiYggJEIiIigSJYJSCjWCEkEthVoKXSl0tVJrpdZK7TpKrUStRClEBEhg40zcGtkabZqYpok2jkyt0VqjtUZrjfmjHsVNH/Ih3Hfffbd+6Zd+6dtw1VVXXXXVVVf9ZyG46qqrrrrqqquuuuqqq/7T/dZv/dZ3f+Znfubr3Hfffbe+zvu+Lx/z4z/O8euv57mZf5n51xEPIHE/SSAhAIlnkZCEAElIAkAAEgCSkAQSSCCBBBLPweaBDOy8+qvz4E//dAC+/uu//n246qqrrrrqqqv+M1GOHz/OVVddddVVV1111VVXXfWf7+zZs7f+2Z/92c+84iu+4lufuu66449+jddgvrXFM/7qrxAgCQABAsQVkhBXiCvEFQKQEBASIRESISGJkAgJSYRESIREkQiJIhESJYKIoEZQIygRdKVQS6GWQlcrtVZq11FrpXQdUStRCopAADbOxK2RrdGmiTZNtGlimiamaaJ7+MO59iM+AoDP/MzPfJ1/+Id/+G2uuuqqq6666qr/TJTjx49z1VVXXXXVVVddddVVV/3XODw83P3TP/3Tnz48PNx9+Vd+5dd+8Mu+LMevv577nvIU1gcHAAgQIK6QhLhCXCGuEICEgJAIiZAICUmEREiEhCRCokiEREiEREiUCEoEJYIaQY2glkJXK7VWulqptVJrpXYdpVZKragUQgIJbMgkWyNbo40jbZqYpok2TXSv8Aqc+tAPBeDrv/7r3+dP//RPf5qrrrrqqquuuuo/G+X48eNcddVVV1111VVXXXXVVf91jo6OLv3DP/zD7wC8+Iu/+Gtf94hH8KjXfE1mW1vc9ld/hQAB4gpJiCvEFeIKAUgICImQCImQCAlJhERIhERIhERIFIkiUSIIiRJBLYUSQS2FWgq1FLpSqLXS1UrpOkrXUWolaiUiUAT3cybZGtkabZpo08Q0jsze8R3ZfNM35b777rv1u77ruz7mt37rt76bq6666qqrrrrqvwLl+PHjXHXVVVddddVVV1111VX/9f7hH/7hd377t3/7ew4PD3df7pVf+bUf9DIvw0u9yZsw397mtr/6K8QVkhBXiCvEs0lCQJGQREiEREiEhCRCIiIIiYggJEIiJCKCIlEiKBHUUigR1FLoaqWrlVortVZq11G7jlIrUQpRCooACWycSbZGThNtmmibm5R3fVfqi784AB//8R//Mv/wD//w21x11VVXXXXVVf9VKMePH+eqq6666qqrrrrqqquu+u9xeHi4+w//8A+/8w//8A+/82Iv9mKvfeq6644/6GVehpd8kzdhvr3NbX/1V0hCXCGuEM8mICRCIiQkERIhERIhIYmQCImQKBIhERIlgoigRFAjKBHUUqil0JVCLYWuVmrXUbuOWivRdZRaUSmEhADbOJNsjWljg/GlXxq/4zuiEyf4h3/4h9/++q//+ve59dZb/5qrrrrqqquuuuq/EuX48eNcddVVV1111VVXXXXVVf+9zp49e+uf/dmf/cytt976Nw9+8INf+tR11x2/5WVehpd4kzdhtrXFpXvuYX1wgHg2cYWAkAiJkAgJSYRESISEJEIiJIpERFAkSgQhUSIoEdQIagS1FGop1FrpaqXWSlcrpVZK11G6jqiViEARIIHNtFiwfOxjWb7Zm+FbbgHgR37kRz7767/+69/n7Nmzt3LVVVddddVVV/1XQw960IO46qqrrrrqqquuuuqqq/7nuOaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM932V3/F3//SL/EPv/RLAIgrBBSJIlEkikSRCIkiUSRKBEWiSJQISgQ1ghpBjaArha4U+lrpa2VWK7OuY973zGczZrMZs9mM2XxOP59TZzPqbEbUiiJom5scPehBHLzES3C/3/qt3/ruH/3RH/2c++6771auuuqqq6666qr/LuhBD3oQV1111VVXXXXVVVddddX/TNdcc82D3/Ed3/GzXud1Xue9eaZL99zD3t138/e/9Evs3XMPd/z1X1OAIlEkikSRKBIhUSRKBEWiSJQIagQlghpBF0Ethb4U+lrpa2XWdcy6jnnfM+t75rMZs/mc2XxON5/TzWZw8iTrRzyC5UMeQtvcBOC+++67FeDrv/7r3+cf/uEffpurrrrqqquuuuq/G3rQgx7EVVddddVVV1111VVXXfU/2zXXXPPgF3uxF3vt13md13mvF3uxF3vt++6779ZrrrnmwQB799zDHX/919z113/NwT33cO/f/A1FokgUiZAoERSJEkGRqBHUCGoEtRS6CLpa6Uuhr5VZ1zHvOmZ9z3w2Yz6bMbv2WsrDHoZOnmR8zGPIrS3ud9999936W7/1W9/9W7/1W9999uzZZ3DVVVddddVVV/1PgR70oAdx1VVXXXXVVVddddVVV/3vcc011zz4xV7sxV77xV7sxV7rdV7ndd6b5+Pg3ns5uOceDu+5h/v+7u8QsLzvPorE+uxZQmI8d44aQVcKm9ddR18KXSlsXHstG9dey+yaa6ilMHvEIygPfSjP7b777rv1t37rt7777Nmzz/it3/qt7+aqq6666qqrrvqfCD3oQQ/iqquuuuqqq6666qqrrvrf68yZMw968Rd/8dd5sRd7sde65pprHvxiL/Zir82/09Fdd7Fxww3c77777rsV4OzZs7f+/d///W//wz/8w+/8wz/8w29z1VVXXXXVVVf9T4ce9KAHcdVVV1111VVXXXXVVVf933HNNdc82Lavueaah1xzzTUPfrEXe7HXuu+++2598Rd/8dcGOHPmzIMBrrnmmgfzTP/wD//w22fOnHkwwNmzZ2+97777br3vvvtuBfiHf/iH3/mHf/iH3+aqq6666qqrrvrfCD3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/AoyBhj3nBSVUAAAAAElFTkSuQmCC) diff --git a/docs/kcl/const_std-math-TAU.md b/docs/kcl/const_std-math-TAU.md index b3e644d8d1..1a8cfe6790 100644 --- a/docs/kcl/const_std-math-TAU.md +++ b/docs/kcl/const_std-math-TAU.md @@ -27,6 +27,6 @@ exampleSketch = startSketchOn("XZ") example = extrude(exampleSketch, length = 5) ``` -![Rendered example of std::math::TAU 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD0aklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666v+oF3uxF3vtF3uxF3uta6655sFf//Vf/z5cddVVV1111f8/6EEPehBXXXXVVVddddVVV1111VX/11xzzTUP/qZv+qan80z33XffrR/yIR/yEK666qqrrrrq/xeCq6666qqrrrrqqquuuuqq/2OuueaaB3/TN33T05/+9KfzlV/5lezu7nLNNdc8+Ju+6ZuezlVXXXXVVVf9/0Jw1VVXXXXVVVddddVVV131f8g111zz4A//8A//rqc//el813d9F7u7u3znd34nu7u7XHPNNQ/+pm/6pqdz1VVXXXXVVf9/EFx11VVXXXXVVVddddVVV/0f8uEf/uHftbGx8drf9V3fxf12d3f5ru/6LnZ3d7nmmmse/E3f9E1P56qrrrrqqqv+fyC46qqrrrrqqquuuuqqq676P+JzP/dzf+vGG2987e/6ru/igSSxu7vLd33Xd7G7u8s111zz4G/6pm96OlddddVVV131fx/BVVddddVVV1111VVXXXXV/wGf+7mf+1s33njja3/lV34l95OEJO63u7vLd3/3d7O7u8s111zz4G/6pm96OlddddVVV131fxvBVVddddVVV1111VVXXXXV/3If/uEf/l033njja//kT/4k95PEc5PE7u4u3/3d383u7i7XXHPNg7/pm77p6Vx11VVXXXXV/10EV1111VVXXXXVVVddddVV/4t9+Id/+He9zuu8znv/5E/+JLfeeisAknhukrjf7u4u3/M938Pu7i7XXHPNg7/pm77p6Vx11VVXXXXV/00EV1111VVXXXXVVVddddVV/0u9zuu8znu/zuu8znt/53d+J7feeisAknggSUjigSSxu7vL93zP97C7u8s111zz4G/6pm96OlddddVVV131fw/BVVddddVVV1111VVXXXXV/0Iv9mIv9tof/uEf/l3f+Z3fya233gqAJB5IEs9NEvfb3d3le77ne7jfNddc82Cuuuqqq6666v8Wgquuuuqqq6666qqrrrrqqv9lXuzFXuy1P/dzP/e3vvM7v5Nbb70VSUjigSTx3CTxQJJ47dd+bQCuueaaB7/2a7/2e3HVVVddddVV/7dQueqqq6666qqrrrrqqquu+l/kxV7sxV77cz/3c3/rp37qp7j11luRxHOTxANJ4rlJ4rVe67V4qZd6Ke539uzZZ3DVVVddddVV/7cQXHXVVVddddVVV1111VVX/S/xYi/2Yq/9uZ/7ub/1W7/1W/zVX/0VknggSUjigSTx3CTxUi/1UrzWa70WAEdHR1x11VVXXXXV/1EEV1111VVXXXXVVVddddVV/wtcc801D/7cz/3c33r605/Ob/3WbyGJB5LEc5PEc5PEgx70IN7qrd4KgD/4gz/gfv/wD//w21x11VVXXXXV/y1Urrrqqquuuuqqq6666qqr/oe75pprHvzhH/7h3/X0pz+d7/qu70ISDySJ5yaJB5IEwIMe9CDe673eC4C/+qu/4vz581x11VVXXXXV/2FUrrrqqquuuuqqq6666qqr/of78A//8O/a2Nh47e/+7u9GEg8kiQeSxHOTBMCDHvQg3uu93guAJz7xidx+++3YZmNjA4D77rvvVq666qqrrrrq/xYqV1111VVXXXXVVVddddVV/4N97ud+7m9tbGy89nd/93fz3CTxQJJ4bpIAeNCDHsR7vdd7AXD77bfzxCc+EdtcddVVV1111f9xBFddddVVV1111VVXXXXVVf9Dfe7nfu5v3Xjjja/93d/93TyQJCTxQJJ4bpIAOH78OO/1Xu8FwLlz5/irv/orbAOwsbEBwH333XcrV1111VVXXfV/D5Wrrrrqqquuuuqqq6666qr/gT73cz/3t2688cbX/q7v+i4eSBLPTRIPJIn7HT9+nI/8yI8E4Ny5c/zhH/4htrnf6dOnATh79uytXHXVVVddddX/PVSuuuqqq6666qqrrrrqqqv+h/nwD//w77rxxhtf+6d+6qfY3d3lfpJ4IEk8N0nc7/jx47zlW74lAOfOneMP//APsc0D2Qbgvvvuu5Wrrrrqqquu+r+H4Kqrrrrqqquuuuqqq6666n+Qd3zHd/ys13md13nvn/qpn+LWW2/lfpJ4IEk8N0k80Fu+5Vvy4Ac/mHPnzvGHf/iH2OaBbLOxsQHAfffddytXXXXVVVdd9X8Plauuuuqqq6666qqrrrrqqv8hXud1Xue93+md3umzv+u7votbb70VAEk8N0k8kCSe23u913vxoAc9iKOjI/7wD/8Q2zyQbQA2NjYAOHv27DO46qqrrrrqqv97qFx11VVXXXXVVVddddVVV/0P8GIv9mKv/eEf/uHf9V3f9V3ceuutAEjiuUnigSTx3N7rvd6LBz3oQRwdHfHrv/7r2OaBbHPVVVddddVV/09Queqqq6666qqrrrrqqquu+m/2Yi/2Yq/9uZ/7ub/1Uz/1U9x6660ASOKBJPHcJPHc3uu93osHPehBHB0d8Vd/9VfY5oFs80AbGxsA3Hfffbdy1VVXXXXVVf/3ULnqqquuuuqqq6666qqrrvpv9GIv9mKv/bmf+7m/9Vu/9Vv89V//NQCSeCBJPDdJPJAk3vIt35IHPehBAPzVX/0V586d44Fs89w2NjYAOHv27K1cddVVV1111f89VK666qqrrrrqqquuuuqqq/6bXHPNNQ/+3M/93N/667/+a377t38bAEk8kCSemyQeSBJv+ZZvyUu91EsB8Ad/8AecO3eOB7LNc7PNxsYGV1111VVXXfV/GJWrrrrqqquuuuqqq6666qr/Btdcc82Dv+mbvunpt956Kz/1Uz8FgCQeSBIPJInnJomXeqmX4qVe6qUA+IM/+APOnTvHA9nmudnmge67775bueqqq6666qr/e6hcddVVV1111VVXXXXVVVf9F7vmmmse/OEf/uHfdeutt/Jd3/VdSOK5SeKBJPHcJPGgBz2It3zLtwTgD/7gDzh37hwPZJvnZhuAjY0NAO67775bueqqq6666qr/m6hcddVVV1111VVXXXXVVVf9F/vwD//w79rc3Hzt7/qu70ISDySJ5yaJB5IEwIMe9CDe8z3fE4C/+qu/4ty5c/xLbHO/jY0NAM6ePXsrV1111VVXXfV/E8FVV1111VVXXXXVVVddddV/oc/93M/9rRtvvPG1v+u7vgtJPJAknpskHkgSAA960IN4z/d8TwCe+MQnctttt/FAtrHNA9nmgTY2NgC47777buWqq6666qqr/m+ictVVV1111VVXXXXVVVdd9V/kcz/3c3/rxhtvfO2v+qqvQhIPJIkHksRzkwTAgx70IN7zPd8TgNtvv50nPOEJPJBtnpttHsg2V1111VVXXfX/AJWrrrrqqquuuuqqq6666qr/Ap/7uZ/7WzfeeONr/9RP/RSSeCBJPJAknpskAI4fP857vud7AnDu3Dn+8i//kgeyzXOzzQPZBmBjYwOA++6771auuuqqq6666v8mgquuuuqqq6666qqrrrrqqv9kH/7hH/5dL/ZiL/baP/3TP80znvEMHkgSDySJB5KEJACOHz/OR3zERwBw7tw5/uAP/oAHss1zs80D2eZ+GxsbAJw9e/YZXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+E73jO77jZ73O67zOe3/3d383t956K/eTxHOTxANJ4n7Hjx/nLd/yLQE4d+4cf/AHf8AD2ea52eaBbHPVVVddddVV/89Queqqq6666qqrrrrqqquu+k/yYi/2Yq/9Tu/0Tp/93d/93dx6663cTxLPTRIPJIkHesu3fEse9KAHce7cOf7gD/6AB7LNc7PNA9nmuZ05cwaAf/iHf/htrrrqqquuuur/JipXXXXVVVddddVVV1111VX/CV7sxV7stT/3cz/3t777u7+bW2+9lftJ4oEk8dwk8UDv+Z7vyYMe9CCOjo74gz/4Ax7INs/NNg9km+dmm6uuuuqqq676f4DKVVddddVVV1111VVXXXXVf7AXe7EXe+3P/dzP/a2f/umf5tZbb+V+knggSTw3STzQe77ne/KgBz2Io6Mjfu3Xfo0Hss1zs80D2ea52QZgY2MDgPvuu+9Wrrrqqquuuur/JipXXXXVVVddddVVV1111VX/gV7sxV7stT/3cz/3t377t3+bv/7rv+Z+knggSTyQJJ7be77ne/KgBz2Io6Mj/uqv/ooHss1zs80D2ea52eaqq6666qqr/h+hctVVV1111VVXXXXVVVdd9R/kmmuuefDnfu7n/tZf//Vf89u//dvcTxIPJIkHksRze8/3fE8e9KAHAfBXf/VXnDt3jvvZ5rnZ5oFs89xsc78zZ84A8A//8A+/zVVXXXXVVVf930Xlqquuuuqqq6666qqrrrrqP8A111zz4M/5nM/5rVtvvZWf/umfBkASz00SDySJB5LEW7zFW/CgBz0IgD/4gz/g3Llz3M82z802D2Sb52abB1osFgDcd999t3LVVVddddVV/3dRueqqq6666qqrrrrqqquu+ne65pprHvzhH/7h33V0dPTg7/7u7wZAEg8kiecmiQeSxGu+5mvyUi/1UgD8wR/8AefOneN+tnkg2zw32zw32zyQba666qqrrrrq/wkqV1111VVXXXXVVVddddVV/04f/uEf/l2bm5uv/d3f/d0ASOKBJPFAknhuknjJl3xJXvM1XxOAP/iDP+DcuXPczzYPZJvnZpvnZpsHsg3A5uYmAPfdd9+tXHXVVVddddX/XQRXXXXVVVddddVVV1111VX/Dp/7uZ/7WzfeeONrf/d3fzcAknggSTyQJJ6bJB70oAfxlm/5lgD81V/9FefOneN+tnkg2zw32zw32zyQbe63sbEBwNmzZ5/BVVddddVVV/3fReWqq6666qqrrrrqqquuuurf6HM/93N/68Ybb3ztr/7qrwZAEg8kiQeSxANJAuBBD3oQ7/Ee7wHAX/3VX3HbbbdxP9s8kG2em22em20eyDZXXXXVVVdd9f8Qlauuuuqqq6666qqrrrrqqn+DD//wD/+uG2+88bV/+qd/GgBJPJAkHkgSDyQJgAc96EG8x3u8BwC33XYbt912GwC2eW62eW62eSDbPDfbPLfNzU0A7rvvvlu56qqrrrrqqv+7CK666qqrrrrqqquuuuqqq/6V3vEd3/GzXud1Xue9f/qnf5pnPOMZSOJ+kpDEA0nigSQBcPz4cd7jPd4DgNtuu42/+qu/AsA2z802z802D2Sb52ab52abjY0NAM6ePXsrV1111VVXXfV/F5Wrrrrqqquuuuqqq6666qp/hdd5ndd573d6p3f67O/+7u/mGc94Bg8kiQeSxHOTBMDx48f58A//cADOnTvHX/3VXwFgm+dmm+dmmweyzXOzzXOzDcDm5iYA9913361cddVVV1111f9dVK666qqrrrrqqquuuuqqq15EL/ZiL/baH/7hH/5d3/3d380znvEMHkgSDySJ5yYJgOPHj/Pu7/7uAJw7d44/+IM/AMA2z802D2Sb52ab52ab52abq6666qqrrvp/hspVV1111VVXXXXVVVddddWL4MVe7MVe+3M/93N/67u/+7t5xjOewQNJ4oEk8UCSuN/x48d5i7d4C44fP865c+f4gz/4AwBs89xs80C2eW62eW62eW62ud/m5iYA9913361cddVVV1111f9tVK666qqrrrrqqquuuuqqq/4FL/ZiL/ban/u5n/tbP/3TP80znvEMHkgSDySJB5LEA73FW7wFD3rQgzg6OuIP/uAPALDNA9nmudnmudnmudnmudnmgTY2NgA4e/bsrVx11VVXXXXV/21Urrrqqquuuuqqq6666qqrXohrrrnmwZ/7uZ/7W3/913/N3/zN3/BAknggSTyQJB7oPd7jPXjQgx7E0dERv/Zrv4ZtnpttnpttnpttnpttnpttntvGxgYA9913361cddVVV1111f9tVK666qqrrrrqqquuuuqqq16Aa6655sHf9E3f9PRbb72Vn/mZn+GBJPFAknggSTzQe7zHe/CgBz2Io6Mj/uqv/grbPDfbPDfbPDfbPDfbPDfbPDfbXHXVVVddddX/I1Suuuqqq6666qqrrrrqqquej2uuuebBH/7hH/5dt956K9/zPd/D/STxQJJ4bpJ4oPd4j/fgQQ96EAB/9Vd/xdmzZ3lutnlutnlutnlutnlutnlutgHY3NwE4L777ruVq6666qqrrvq/jcpVV1111VVXXXXVVVddddXz8eEf/uHftbm5+drf8z3fw/0k8UCSeCBJPLe3fMu35EEPehAAf/AHf8DZs2d5brZ5brZ5INs8N9s8N9s8N9s80ObmJgBnz559BlddddVVV131fxuVq6666qqrrrrqqquuuuqq5/K5n/u5v7W5ufna3/M938P9JPFAknggSTy313zN1+QlX/IlAfj93/99zp07xwPZ5rnZ5rnZ5rnZ5rnZ5rnZ5rltbGwAcN99993KVVddddVVV/3fRnDVVVddddVVV1111VVXXfUAn/u5n/tbN95442t/z/d8D/eTxANJ4oEk8dxe6qVeitd8zdcE4Pd///c5d+4cD2Sb52ab52ab52ab52ab52ab52abzc1NAM6ePXsrV1111VVXXfV/G5Wrrrrqqquuuuqqq6666qpn+tzP/dzfuvHGG1/7e77ne7ifJB5IEg8kiQeSxIMe9CDe4i3eAoDf//3f59y5czyQbZ6bbZ6bbZ6bbZ6bbZ6bbZ6bba666qqrrrrq/xmCq6666qqrrrrqqquuuuoq4MM//MO/68Ve7MVe+2d+5mfY3d0FQBIPJIkHksQDSeJBD3oQ7/7u7w7AX/7lX3Lu3DkeyDbPzTbPzTbPzTbPzTbPzTbPzTb329zcBOC+++67lauuuuqqq676v43KVVddddVVV1111VVXXfX/3ju+4zt+1uu8zuu89/d8z/dw6623AiCJ+0nigSTx3CTxoAc9iHd/93cH4AlPeAK33XYb97PNc7PN82Ob52ab52ab52ab52ab+21ubgJw33333cpVV1111VVX/d9H5aqrrrrqqquuuuqqq676f+11Xud13vud3umdPvt7vud7uPXWW5HEA0nigSTx3CTxoAc9iHd/93cH4LbbbuMJT3gC97PNc7PNc7PNc7PN82Ob52ab52abB9rc3ATg7Nmzt3LVVVddddVV//dRueqqq6666qqrrrrqqqv+33qxF3ux1/7wD//w7/qe7/kebr31ViTxQJJ4IEk8N0kcO3aMd3/3dwfg3Llz/OVf/iX3s81zs81zs81zs81zs83zY5vnZpvntrGxAcB99913K1ddddVVV131fx+Vq6666qqrrrrqqquuuur/pRd7sRd77c/93M/9rZ/5mZ/h1ltvRRIPJIkHksQDSQLg2LFjvMd7vAcA586d4/d///e5n22em22em22em22em22eH9s8N9s8N9tcddVVV1111f8zVK666qqrrrrqqquuuuqq/3de7MVe7LU/93M/97d++7d/m7/+679GEg8kiQeSxANJAuDYsWO8xVu8BceOHePcuXP8/u//PgC2eW62eX5s89xs89xs89xs8/zY5rnZBmBzcxOA++6771auuuqqq6666v8+KlddddVVV1111VVXXXXV/yvXXHPNgz/3cz/3t/76r/+a3/md30ESDySJB5LEA0nifm/xFm/Bgx70II6Ojvj93/99AGzz3Gzz3Gzz/Njmudnmudnmudnm+bHN/TY3NwE4e/bsM7jqqquuuuqq//uoXHXVVVddddVVV1111VX/b1xzzTUP/qZv+qan33rrrfzMz/wMknggSTyQJB5IEvd793d/dx70oAdxdHTEr/7qrwJgm+dmm+dmm+dmm+fHNs/NNs/NNs+Pba666qqrrrrq/zEqV1111VVXXXXVVVddddX/C9dcc82DP/zDP/y7br31Vr7ne74HSdxPEg8kiecmifu9+7u/Ow960IM4Ojri93//97HN82Ob52ab52ab52ab58c2z802z49tnts111wDwH333XcrV1111VVXXfV/H5Wrrrrqqquuuuqqq6666v+FD//wD/+uzc3N1/6e7/keJHE/STyQJB5IEg/07u/+7jzoQQ/i6OiIv/zLv+Tw8JDnZpvnxzbPzTbPzTbPj22em22em22eH9vc7+zZs7dy1VVXXXXVVf/3EVx11VVXXXXVVVddddVV/+d97ud+7m/deOONr/293/u9SOJ+knggSTyQJB7oLd7iLXjQgx4EwF/+5V9y9uxZnpttnpttbPPcbPPcbPPcbGOb52ab52ab58c2AJubmwDcd999t3LVVVddddVV//dRueqqq6666qqrrrrqqqv+T/vcz/3c37rxxhtf+2u/9mt5IEk8kCQeSBIP9Jqv+Zq85Eu+JAC/93u/x7lz53hutnlutnlutnl+bPPcbPP82Oa52eb5sc1VV1111VVX/T9F5aqrrrrqqquuuuqqq676P+vDP/zDv+vGG2987Z/5mZ/hgSTxQJJ4IEk80Eu91EvxGq/xGgD83u/9HufOneOBbPP82Oa52eb5sc1zs81zs83zY5vnZpsH2tzcBOC+++67lauuuuqqq676/4Hgqquuuuqqq6666qqrrvo/6cM//MO/63Ve53Xe+2d+5md4xjOewf0k8UCSeCBJPNCDHvQg3vzN3xyA3/u93+PcuXM8kG2em21s89xs89xsY5vnZpvnZpvnxzbPzTbPbXNzE4CzZ8/eylVXXXXVVVf9/0Dlqquuuuqqq6666qqrrvo/53Ve53Xe+3Ve53Xe+3u+53t4xjOewf0k8UCSeCBJPNCDHvQg3v3d3x2Av/iLv+DcuXM8kG2em22eH9s8N9s8P7Z5brZ5fmzz3Gzz/GxubgJw33333cpVV1111VVX/f9A5aqrrrrqqquuuuqqq676P+XFXuzFXvvDP/zDv+t7vud7eMYznsH9JHE/STw3STzQgx70IN793d8dgMc//vHcdttt3M82z49tnpttnh/bPDfbPD+2eW62eX5s8/zYZnNzk6uuuuqqq676f4bKVVddddVVV1111VVXXfV/xou92Iu99ud+7uf+1vd8z/fwjGc8g/tJ4n6SeCBJPJAkbrnlFt793d8dgNtuu40nPOEJ3M82z802z49tnpttnh/bPD+2eW62eX5s8/zYBmBzcxOAf/iHf/gdrrrqqquuuur/BypXXXXVVVddddVVV1111f8JL/ZiL/ban/u5n/tbP/MzP8MznvEMACTxQJJ4IEk8kCSOHTvGu7/7uwNw7tw5/uIv/gIA2zw/tnl+bPPcbPP82Oa52eb5sc3zY5vnZpurrrrqqquu+n+OylVXXXXVVVddddVVV131v96LvdiLvfbnfu7n/tbv/M7v8Dd/8zcASOKBJPFAknggSRw7dowP+7APA+DcuXP83u/9HgC2eX5s89xs8/zY5rnZ5vmxzfNjm+dmm+fHNs9tc3MTgPvuu+9Wrrrqqquuuur/BypXXXXVVVddddVVV1111f9q11xzzYM/93M/97duvfVWfud3fgcASTyQJB5IEg8kiWPHjvHmb/7mAJw7d47f+73fwzbPj22eH9s8N9s8P7Z5fmzz/Njmudnm+bHN87O1tQXA2bNnb+Wqq6666qqr/n+gctVVV1111VVXXXXVVVf9r3XNNdc8+MM//MO/69Zbb+V7v/d7AZDEA0nigSTxQJIAePM3f3Me9KAHce7cOX7v934P2zw/tnlutnl+bPP82Ob5sc1zs83zY5vnxzbPj22uuuqqq6666v8hKlddddVVV1111VVXXXXV/1of/uEf/l2bm5uv/b3f+70ASOKBJPFAknggSQC827u9Gw960IM4Ojri937v97DNc7PN82Ob58c2z49tnpttnh/bPD+2eX5s89xsc7/NzU0A7rvvvlu56qqrrrrqqv8fqFx11VVXXXXVVVddddVV/yt97ud+7m9tbm6+9vd+7/cCIIkHksQDSeJ+krjfu73bu/GgBz2Io6MjfvmXf5nnxzbPj22em22eH9s8P7Z5fmzz/Njmudnm+bHN/TY3NwG47777buWqq6666qqr/v8guOqqq6666qqrrrrqqqv+1/ncz/3c37rxxhtf+3u/93sBkMQDSeJ+kpDE/SRxv3d7t3fjQQ96EEdHR/z5n/85z802tnlutrHNc7PN82Ob58c2z802tnlutrHNc7PN82ObB9ra2gLg7Nmzt3LVVVddddVV/39Queqqq6666qqrrrrqqqv+V/ncz/3c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A2AbANsA2MY297ONbWwDYBsA29gGwDYAtrHN/WxjGwDbANgGwDa2uZ9tAGwDYJv72QbANgC2eSDbANgGwDbPzTYAtgGwzfNjm/vZ5n62eX5scz/bPJBtXhjbPJBtHsg2/xLbPDfbPD+2+dewzfNjmxfENv8etvmX2Abg+PHjXHXVVVddddVV/2WoXHXVVVddddVV/yXOnj176zXXXPNggFd6pVfilV7plbjqqquu+v/qvvvuu/W+++67lauuuuqqq6666j8betCDHsRVV1111VVXXfWf78Ve7MVe653e6Z0+m6uuuuqqq/j6r//697nvvvtu5aqrrrrqqquu+s+GHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPVHysMWorl+IAAAAASUVORK5CYII=) +![Rendered example of std::math::TAU 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD0XUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666v+oF3uxF3vtF3uxF3uta6655sFf//Vf/z5cddVVV1111f8/6EEPehBXXXXVVVddddVVV1111VX/11xzzTUP/qZv+qan80z33XffrR/yIR/yEK666qqrrrrq/xeCq6666qqrrrrqqquuuuqq/2OuueaaB3/TN33T05/+9KfzlV/5lezu7nLNNdc8+Ju+6ZuezlVXXXXVVVf9/0Jw1VVXXXXVVVddddVVV131f8g111zz4A//8A//rqc//el813d9F7u7u3znd34nu7u7XHPNNQ/+pm/6pqdz1VVXXXXVVf9/EFx11VVXXXXVVVddddVVV/0f8uEf/uHftbGx8drf9V3fxf12d3f5ru/6LnZ3d7nmmmse/E3f9E1P56qrrrrqqqv+fyC46qqrrrrqqquuuuqqq676P+JzP/dzf+vGG2987e/6ru/igSSxu7vLd33Xd7G7u8s111zz4G/6pm96OlddddVVV131fx/BVVddddVVV1111VVXXXXV/wGf+7mf+1s33njja3/lV34l95OEJO63u7vLd3/3d7O7u8s111zz4G/6pm96OlddddVVV131fxvBVVddddVVV1111VVXXXXV/3Kf+7mf+1s33njja//kT/4k95PEc5PE7u4u3/3d383u7i7XXHPNg7/pm77p6Vx11VVXXXXV/10EV1111VVXXXXVVVddddVV/4t9+Id/+He92Iu92Gv/5E/+JLfeeisAknhukrjf7u4u3/M938Pu7i7XXHPNg7/pm77p6Vx11VVXXXXV/00EV1111VVXXXXVVVddddVV/0u9zuu8znu/zuu8znt/53d+J7feeisAknggSUjigSSxu7vL93zP97C7u8s111zz4G/6pm96OlddddVVV131fw/BVVddddVVV1111VVXXXXV/0Iv9mIv9tof/uEf/l3f+Z3fya233gqAJB5IEs9NEvfb3d3le77ne7jfNddc82Cuuuqqq6666v8Wgquuuuqqq6666qqrrrrqqv9lXuzFXuy1P/dzP/e3vvM7v5Nbb70VSUjigSTx3CTxQJJ47dd+bQCuueaaB7/2a7/2e3HVVVddddVV/7dQueqqq6666qqrrrrqqquu+l/kxV7sxV77cz/3c3/rp37qp7j11luRxHOTxANJ4rlJ4rVe67V4qZd6Ke539uzZZ3DVVVddddVV/7cQXHXVVVddddVVV1111VVX/S/xYi/2Yq/9uZ/7ub/1W7/1W/zVX/0VknggSUjigSTx3CTxUi/1UrzWa70WAEdHR1x11VVXXXXV/1EEV1111VVXXXXVVVddddVV/wtcc801D/7cz/3c3/qrv/orfuu3fgtJPJAknpsknpskHvSgB/FWb/VWAPzBH/wB9/uHf/iH3+aqq6666qqr/m+hctVVV1111VVXXXXVVVdd9T/cNddc8+DP+ZzP+a2nP/3p/NRP/RSSeCBJPDdJPJAkAB70oAfxXu/1XgD81V/9FefPn+eqq6666qqr/g+jctVVV1111VVXXXXVVVdd9T/ch3/4h3/X4eHhg7/7u78bSTyQJB5IEs9NEgAPetCDeK/3ei8AnvjEJ3L77bdjm42NDQDuu+++W7nqqquuuuqq/1uoXHXVVVddddVVV1111VVX/Q/2uZ/7ub+1sbHx2t/93d/Nc5PEA0niuUkC4EEPehDv9V7vBcDtt9/OE5/4RGxz1VVXXXXVVf/HEVx11VVXXXXVVVddddVVV/0P9bmf+7m/deONN772d3/3d/NAkpDEA0niuUkC4Pjx47zXe70XAOfOneOv/uqvsA3AxsYGAPfdd9+tXHXVVVddddX/PVSuuuqqq6666qqrrrrqqqv+B/rcz/3c37rxxhtf+6u+6qt4IEk8N0k8kCTud/z4cT7yIz8SgHPnzvGHf/iH2OZ+p0+fBuDs2bO3ctVVV1111VX/91C56qqrrrrqqquuuuqqq676H+bDP/zDv+vGG2987Z/6qZ/igSTxQJJ4bpK43/Hjx3nLt3xLAM6dO8cf/uEfYpsHsg3AfffddytXXXXVVVdd9X8PwVVXXXXVVVddddVVV1111f8g7/iO7/hZr/M6r/PeP/VTP8Wtt97K/STxQJJ4bpJ4oLd8y7fkwQ9+MOfOneMP//APsc0D2WZjYwOA++6771auuuqqq6666v8eKlddddVVV1111VVXXXXVVf9DvM7rvM57v9M7vdNnf9d3fRe33norAJJ4bpJ4IEk8t/d6r/fiQQ96EEdHR/zhH/4htnkg2wBsbGwAcPbs2Wdw1VVXXXXVVf/3ULnqqquuuuqqq6666qqrrvof4MVe7MVe+8M//MO/67u+67u49dZbAZDEc5PEA0niub3Xe70XD3rQgzg6OuLXf/3Xsc0D2eaqq6666qqr/p+gctVVV1111VVXXXXVVVdd9d/sxV7sxV77cz/3c3/rp37qp7j11lsBkMQDSeK5SeK5vdd7vRcPetCDODo64q/+6q+wzQPZ5oE2NjYAuO+++27lqquuuuqqq/7voXLVVVddddVVV1111VVXXfXf6MVe7MVe+3M/93N/67d+67f467/+awAk8UCSeG6SeCBJvOVbviUPetCDAPirv/orzp07xwPZ5rltbGwAcPbs2Vu56qqrrrrqqv97qFx11VVXXXXVVVddddVVV/03ueaaax78uZ/7ub/113/91/z2b/82AJJ4IEk8N0k8kCTe8i3fkpd6qZcC4A/+4A84d+4cD2Sb52abjY0Nrrrqqquuuur/MCpXXXXVVVddddVVV1111VX/Da655poHf9M3fdPTb731Vn7qp34KAEk8kCQeSBLPTRIv9VIvxUu91EsB8Ad/8AecO3eOB7LNc7PNA9133323ctVVV1111VX/91C56qqrrrrqqquuuuqqq676L3bNNdc8+MM//MO/69Zbb+W7vuu7kMRzk8QDSeK5SeJBD3oQb/mWbwnAH/zBH3Du3DkeyDbPzTYAGxsbANx33323ctVVV1111VX/N1G56qqrrrrqqquuuuqqq676L/bhH/7h37W5ufna3/Vd34UkHkgSz00SDyQJgAc96EG853u+JwB/9Vd/xblz5/iX2OZ+GxsbAJw9e/ZWrrrqqquuuur/JoKrrrrqqquuuuqqq6666qr/Qp/7uZ/7WzfeeONrf9d3fReSeCBJPDdJPJAkAB70oAfxnu/5ngA88YlP5LbbbuOBbGObB7LNA21sbABw33333cpVV1111VVX/d9E5aqrrrrqqquuuuqqq6666r/I537u5/7WjTfe+Npf9VVfhSQeSBIPJInnJgmABz3oQbzne74nALfffjtPeMITeCDbPDfbPJBtrrrqqquuuur/ASpXXXXVVVddddVVV1111VX/BT73cz/3t2688cbX/qmf+ikk8UCSeCBJPDdJABw/fpz3fM/3BODcuXP85V/+JQ9km+dmmweyDcDGxgYA9913361cddVVV1111f9NBFddddVVV1111VVXXXXVVf/JPvzDP/y7XuzFXuy1f/qnf5pnPOMZPJAkHkgSDyQJSQAcP36cj/iIjwDg3Llz/MEf/AEPZJvnZpsHss39NjY2ADh79uwzuOqqq6666qr/m6hcddVVV1111VVXXXXVVVf9J3rHd3zHz3qd13md9/7u7/5ubr31Vu4niecmiQeSxP2OHz/OW77lWwJw7tw5/uAP/oAHss1zs80D2eaqq6666qqr/p+hctVVV1111VVXXXXVVVdd9Z/kxV7sxV77nd7pnT77u7/7u7n11lu5nySemyQeSBIP9JZv+ZY86EEP4ty5c/zBH/wBD2Sb52abB7LNcztz5gwA//AP//DbXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+E7zYi73Ya3/u537ub333d383t956K/eTxANJ4rlJ4oHe8z3fkwc96EEcHR3xB3/wBzyQbZ6bbR7INs/NNlddddVVV131/wCVq6666qqrrrrqqquuuuqq/2Av9mIv9tqf+7mf+1s//dM/za233sr9JPFAknhuknig93zP9+RBD3oQR0dH/Nqv/RoPZJvnZpsHss1zsw3AxsYGAPfdd9+tXHXVVVddddX/TVSuuuqqq6666qqrrrrqqqv+A73Yi73Ya3/u537ub/32b/82f/3Xf839JPFAknggSTy393zP9+RBD3oQR0dH/NVf/RUPZJvnZpsHss1zs81VV1111VVX/T9C5aqrrrrqqquuuuqqq6666j/INddc8+DP/dzP/a2//uu/5rd/+7e5nyQeSBIPJInn9p7v+Z486EEPAuCv/uqvOHfuHPezzXOzzQPZ5rnZ5n5nzpwB4B/+4R9+m6uuuuqqq676v4vKVVddddVVV1111VVXXXXVf4BrrrnmwZ/zOZ/zW7feeis//dM/DYAknpskHkgSDySJt3iLt+BBD3oQAH/wB3/AuXPnuJ9tnpttHsg2z802D7RYLAC47777buWqq6666qqr/u+ictVVV1111VVXXXXVVVdd9e90zTXXPPjDP/zDv+vo6OjB3/3d3w2AJB5IEs9NEg8kidd8zdfkpV7qpQD4gz/4A86dO8f9bPNAtnlutnlutnkg21x11VVXXXXV/xNUrrrqqquuuuqqq6666qqr/p0+/MM//Ls2Nzdf+7u/+7sBkMQDSeKBJPHcJPGSL/mSvOZrviYAf/AHf8C5c+e4n20eyDbPzTbPzTYPZBuAzc1NAO67775bueqqq6666qr/uwiuuuqqq6666qqrrrrqqqv+HT73cz/3t2688cbX/u7v/m4AJPFAknggSTw3STzoQQ/iLd/yLQH4q7/6K86dO8f9bPNAtnlutnlutnkg29xvY2MDgLNnzz6Dq6666qqrrvq/i8pVV1111VVXXXXVVVddddW/0ed+7uf+1o033vjaX/3VXw2AJB5IEg8kiQeSBMCDHvQg3uM93gOAv/qrv+K2227jfrZ5INs8N9s8N9s8kG2uuuqqq6666v8hKlddddVVV1111VVXXXXVVf8GH/7hH/5dN95442v/9E//NACSeCBJPJAkHkgSAA960IN4j/d4DwBuu+02brvtNgBs89xs89xs80C2eW62eW6bm5sA3Hfffbdy1VVXXXXVVf93EVx11VVXXXXVVVddddVVV/0rveM7vuNnvc7rvM57//RP/zTPeMYzkMT9JCGJB5LEA0kC4Pjx47zHe7wHALfddht/9Vd/BYBtnpttnpttHsg2z802z802GxsbAJw9e/ZWrrrqqquuuur/LipXXXXVVVddddVVV1111VX/Cq/zOq/z3u/0Tu/02d/93d/NM57xDB5IEg8kiecmCYDjx4/z4R/+4QCcO3eOv/qrvwLANs/NNs/NNg9km+dmm+dmG4DNzU0A7rvvvlu56qqrrrrqqv+7qFx11VVXXXXVVVddddVVV72IXuzFXuy1P/zDP/y7vvu7v5tnPOMZPJAkHkgSz00SAMePH+fd3/3dATh37hx/8Ad/AIBtnpttHsg2z802z802z802V1111VVXXfX/DJWrrrrqqquuuuqqq6666qoXwYu92Iu99ud+7uf+1nd/93fzjGc8gweSxANJ4oEkcb/jx4/zFm/xFhw/fpxz587xB3/wBwDY5rnZ5oFs89xs89xs89xsc7/NzU0A7rvvvlu56qqrrrrqqv/bqFx11VVXXXXVVVddddVVV/0LXuzFXuy1P/dzP/e3fvqnf5pnPOMZPJAkHkgSDySJB3qLt3gLHvSgB3F0dMQf/MEfAGCbB7LNc7PNc7PNc7PNc7PNA21sbABw9uzZW7nqqquuuuqq/9uoXHXVVVddddVVV1111VVXvRDXXHPNgz/3cz/3t/76r/+av/mbv+GBJPFAknggSTzQe7zHe/CgBz2Io6Mjfu3Xfg3bPDfbPDfbPDfbPDfbPDfbPLeNjQ0A7rvvvlu56qqrrrrqqv/bqFx11VVXXXXVVVddddVVV70A11xzzYO/6Zu+6em33norP/MzP8MDSeKBJPFAknig93iP9+BBD3oQR0dH/NVf/RW2eW62eW62eW62eW62eW62eW62ueqqq6666qr/R6hcddVVV1111VVXXXXVVVc9H9dcc82DP/zDP/y7br31Vr7ne76H+0nigSTx3CTxQO/xHu/Bgx70IAD+6q/+irNnz/LcbPPcbPPcbPPcbPPcbPPcbAOwubkJwH333XcrV1111VVXXfV/G5Wrrrrqqquuuuqqq6666qrn48M//MO/a3Nz87W/53u+h/tJ4oEk8UCSeG5v+ZZvyYMe9CAA/uAP/oCzZ8/y3Gzz3GzzQLZ5brZ5brZ5brZ5oM3NTQDOnj37DK666qqrrrrq/zYqV1111VVXXXXVVVddddVVz+VzP/dzf2tzc/O1v+d7vof7SeKBJPFAknhur/mar8lLvuRLAvD7v//7nDt3jgeyzXOzzXOzzXOzzXOzzXOzzXPb2NgA4L777ruVq6666qqrrvq/jeCqq6666qqrrrrqqquuuuoBPvdzP/e3brzxxtf+nu/5Hu4niQeSxANJ4rm91Eu9FK/5mq8JwO///u9z7tw5Hsg2z802z802z802z802z802z802m5ubAJw9e/ZWrrrqqquuuur/NipXXXXVVVddddVVV1111VXP9Lmf+7m/deONN77293zP93A/STyQJB5IEg8kiQc96EG8xVu8BQC///u/z7lz53gg2zw32zw32zw32zw32zw32zw321x11VVXXXXV/zMEV1111VVXXXXVVVddddVVwId/+Id/14u92Iu99s/8zM+wu7sLgCQeSBIPJIkHksSDHvQg3v3d3x2Av/zLv+TcuXM8kG2em22em22em22em22em22em23ut7m5CcB99913K1ddddVVV131fxuVq6666qqrrrrqqquuuur/vXd8x3f8rNd5ndd57+/5nu/h1ltvBUAS95PEA0niuUniQQ96EO/+7u8OwBOe8ARuu+027meb52ab58c2z802z802z802z80299vc3ATgvvvuu5Wrrrrqqquu+r+PylVXXXXVVVddddVVV131/9rrvM7rvPc7vdM7ffb3fM/3cOuttyKJB5LEA0niuUniQQ96EO/+7u8OwG233cYTnvAE7meb52ab52ab52ab58c2z802z802D7S5uQnA2bNnb+Wqq6666qqr/u+jctVVV1111VVXXXXVVVf9v/ViL/Zir/3hH/7h3/U93/M93HrrrUjigSTxQJJ4bpI4duwY7/7u7w7AuXPn+Mu//EvuZ5vnZpvnZpvnZpvnZpvnxzbPzTbPbWNjA4D77rvvVq666qqrrrrq/z4qV1111VVXXXXVVVddddX/Sy/2Yi/22p/7uZ/7Wz/zMz/DrbfeiiQeSBIPJIkHkgTAsWPHeI/3eA8Azp07x+///u9zP9s8N9s8N9s8N9s8N9s8P7Z5brZ5bra56qqrrrrqqv9nqFx11VVXXXXVVVddddVV/++82Iu92Gt/7ud+7m/99m//Nn/913+NJB5IEg8kiQeSBMCxY8d4i7d4C44dO8a5c+f4/d//fQBs89xs8/zY5rnZ5rnZ5rnZ5vmxzXOzDcDm5iYA9913361cddVVV1111f99VK666qqrrrrqqquuuuqq/1euueaaB3/u537ub/31X/81v/M7v4MkHkgSDySJB5LE/d7iLd6CBz3oQRwdHfH7v//7ANjmudnmudnm+bHNc7PNc7PNc7PN82Ob+21ubgJw9uzZZ3DVVVddddVV//dRueqqq6666qqrrrrqqqv+37jmmmse/E3f9E1Pv/XWW/mZn/kZJPFAknggSTyQJO737u/+7jzoQQ/i6OiIX/3VXwXANs/NNs/NNs/NNs+PbZ6bbZ6bbZ4f21x11VVXXXXV/2NUrrrqqquuuuqqq6666qr/F6655poHf/iHf/h33XrrrXzP93wPkrifJB5IEs9NEvd793d/dx70oAdxdHTE7//+72Ob58c2z802z802z802z49tnpttnh/bPLdrrrkGgPvuu+9Wrrrqqquuuur/PipXXXXVVVddddVVV1111f8LH/7hH/5dm5ubr/093/M9SOJ+knggSTyQJB7o3d/93XnQgx7E0dERf/mXf8nh4SHPzTbPj22em22em22eH9s8N9s8N9s8P7a539mzZ2/lqquuuuqqq/7vI7jqqquuuuqqq6666qqr/s/73M/93N+68cYbX/t7v/d7kcT9JPFAknggSTzQW7zFW/CgBz0IgL/8y7/k7NmzPDfbPDfb2Oa52ea52ea52cY2z802z802z49tADY3NwG47777buWqq6666qqr/u+jctVVV1111VVXXXXVVVf9n/a5n/u5v3XjjTe+9td+7dfyQJJ4IEk8kCQe6DVf8zV5yZd8SQB+7/d+j3PnzvHcbPPcbPPcbPP82Oa52eb5sc1zs83zY5urrrrqqquu+n+KylVXXXXVVVddddVVV131f9bnfu7n/taNN9742j/zMz/DA0nigSTxQJJ4oJd6qZfiNV7jNQD4vd/7Pc6dO8cD2eb5sc1zs83zY5vnZpvnZpvnxzbPzTYPtLm5CcB99913K1ddddVVV131/wPBVVddddVVV1111VVXXfV/0od/+Id/14u92Iu99s/8zM/wjGc8g/tJ4oEk8UCSeKAHPehBvPmbvzkAv/d7v8e5c+d4INs8N9vY5rnZ5rnZxjbPzTbPzTbPj22em22e2+bmJgBnz569lauuuuqqq676/4HKVVddddVVV1111VVXXfV/zuu8zuu89+u8zuu89/d8z/fwjGc8g/tJ4oEk8UCSeKAHPehBvPu7vzsAf/EXf8G5c+d4INs8N9s8P7Z5brZ5fmzz3Gzz/Njmudnm+dnc3ATgvvvuu5Wrrrrqqquu+v+BylVXXXXVVVddddVVV131f8qLvdiLvfaHf/iHf9f3fM/38IxnPIP7SeJ+knhuknigBz3oQbz7u787AI9//OO57bbbuJ9tnh/bPDfbPD+2eW62eX5s89xs8/zY5vmxzebmJlddddVVV131/wyVq6666qqrrrrqqquuuur/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BsA2ALaxDYBtAGxjm/vZxjYAtgGwDYBtbHM/2wDYBsA297MNgG0AbPNAtgGwDYBtnpttAGwDYJvnxzb3s839bPP82OZ+tnkg27wwtnkg2zyQbf4ltnlutnl+bPOvYZvnxzYviG3+PWzzL7ENwPHjx7nqqquuuuqqq/7LULnqqquuuuqqq/5LnD179tZrrrnmwQCv9EqvxCu90itx1VVXXfX/1X333XfrfffddytXXXXVVVddddV/NvSgBz2Iq6666qqrrrrqP9+LvdiLvdY7vdM7fTZXXXXVVVfx9V//9e9z33333cpVV1111VVXXfWfDT3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q/iHwFexKM0GIBbJQAAAABJRU5ErkJggg==) diff --git a/docs/kcl/sweep.md b/docs/kcl/sweep.md index e61bbcdd48..84e73e3ab4 100644 --- a/docs/kcl/sweep.md +++ b/docs/kcl/sweep.md @@ -52,7 +52,7 @@ sweepSketch = startSketchOn('XY') |> sweep(path = sweepPath) ``` -![Rendered example of sweep 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEl2klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVS+Sa6655sE805kzZx4McM011zyYZzpz5syDeC7XXHPNg3k+rrnmmgfzAtx333238gLcd999t/JMZ8+efQbPdN99993KM509e/bW++6771auuuqqq6666qqrrrrqqqsAPehBD+Kqq6666qqr/r+55pprHgxw5syZB19zzTUPPnPmzIN4pmuuuebB11xzzYMBzpw58+BrrrnmwbyIbr31Vu63u7vL8ePHeX52d3d5QY4fPw7A7u4uz+348eM80IMf/GBemPvuu+9WgLNnz95633333QrwD//wD78DcN9999169uzZW++7775bueqqq6666qqrrrrqqqv+r0IPetCDuOqqq6666qr/a6655poHnzlz5sHXXHPNg8+cOfMggBd/8Rd/7TNnzjz4mmuueTDPx6233sru7i4Au7u7HD9+nN3dXQCOHz/O8ePH2d3dZXd3l+PHj3P8+HHud/z4cQCOHz/Of4bd3V3ut7u7C8Du7i4Au7u7XLp0ifvt7u6yu7vL8ePHOX78OADHjh3j+PHjABw/fpwHP/jB3O++++67FeAf/uEffhvgH/7hH37nH/7hH377vvvuu5Wrrrrqqquuuuqqq6666n879KAHPYirrrrqqquu+t/qmmuuefCZM2ce/GIv9mKvdc011zz4mmuuefCLvdiLvTYPcOutt7K7u8vu7i4At956K8ePH2d3d5fjx49z/PhxAB784AcD8OAHP5jntru7C8Du7i4PfvCDeRE9EbjW9nEA29gGwDa2sY1tbGMb2wDYZnNzkxfFrbfeCsDx48c5fvw499vd3WV3d5fd3V2e8YxnsLu7y6233sr9jh8/DsDx48c5fvw4D3rQgzh+/DgPfvCDAbjvvvtu/Yd/+Iff/od/+Iff+a3f+q3v5qqrrrrqqquuuuqqq6763wg96EEP4qqrrrrqqqv+t7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvzTPt7u5y6623sru7yzOe8QwAbr31VgCOHz/Ogx/8YI4dO8aDH/xgHvzgB3O/3d1dAI4fP85zOzw8BODo6IijoyOWyyWSiAjW6zXjOFJrpes6APq+p5TCbDbjuuuu44Faa392cHDwCuM4sl6vWa1WrFYrVqsVq9WK9XrNMAyM48g4jozjSGuNaZporbGxsUFmkplsbW1hm62tLWyzvb3Nzs4OttnZ2WFnZ4djx45xv7/5m7/hQQ96EMePH+fWW2/l0qVL/M7v/A67u7u8IMePH+dBD3oQD37wg3mpl3op7rvvvlt/9Ed/9HN+67d+67u56qqrrrrqqquuuuqqq/43QQ960IO46qqrrrrqqv+prrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GsD7O7u8td//dcAPOMZz+DWW2/lgY4fP85LvdRLcfz4cV76pV8agN3dXXZ3d3nwgx8MwP7+PgD33HMPBwcHSOLee+9FEvfddx8RgSQigoggIiilEBHUWqm1Umul73v6vmc2mzGbzZjP59xwww3u+148l0uXLjGOI+v1mvV6zWq1YrVasVqtWK/XrNdrxnFkHEemaWKaJlprtNZordFawzaZSWZim8zENpmJbTKTzMQ229vb7OzssL29zYMe9CCOHTvGQx7yEH7nd36H13qt1+LWW2/lZ3/2Z9nd3eWFOXHiBA960IN4qZd6Kf74j//4s3/7t3/7e+67775bueqqq6666qqrrrrqqqv+N6By1VVXXXXVVf8DXXPNNQ9+7dd+7fd6p3d6p88G+J3f+R2+53u+h2c84xk8N0kAPOhBD+Kt3uqtOH78OLu7uxw/fhyAvb097rnnHvb39/nbv/1b7r77biICSUgiIpBERCAJSTw/tgGwjW0AbGMb29jGNrbFv4EkXhhJ2OZFdenSJS5evEhm8ld/9Ve01tje3uZBD3oQFy5cQBLHjx/n0qVLvDC7u7vs7u6yu7vLW77lW372P/zDP/zOfffddytXXXXVVVddddVVV1111f8GVK666qqrrrrqf5gXe7EXe+3P/dzP/a377rvv1p/5mZ/hb/7mb/iXvNVbvRUPetCDALh06RKPe9zj2N/f5wlPeAIRQUQgiYhAEs+PbSTxorLN/WwDYJtpmu6YzWY38QJI4oEk8V/l4sWLTNPEy77sy/KIRzyCF0QSD/SgBz2It3iLt+DOO+/8ba666qqrrrrqqquuuuqq/02oXHXVVVddddX/MK/zOq/zXn/zN3/Dz/zMzzwYQBL/kuPHj3P8+HEuXbrEN3/zN1NKoZRCRABgG0m8qGwjCQDb2AbANgC2AbCNbQBsY5uLFy/etLm5yQMdHh7eB1zDM0lCEpIAkASAJCTx7yEJ29zv+PHjbG9vc8stt/AyL/MynDhxgt3dXb7v+76P2267DUk8P8ePH+clX/IlecmXfEmOHz/O7u4uFy9e5B/+4R9+m6uuuuqqq6666qqrrrrqfwsqV1111VVXXfU/zDXXXPPgG2+8kQc/+ME84xnP4EXxO7/zO7zpm74pXdfxaq/2atx5553ceeedvCC2kcS/xDaSeCDbANjGNraxjW1sY5v77ruP7e1tFotFG4ahZOY1/Ask8e+1s7PDzs4ON910E8eOHeMlXuIluN/u7i5/+7d/y9/+7d+yu7vLczt+/Di33HILx48f5yVf8iU5fvw4u7u7HD9+nGc84xk8/elP56d+6qe46qqrrrrqqquuuuqqq/5XoXLVVVddddVV/8P8xm/8xm+/1Eu91Gu/53u+J7u7u/zt3/4tz3jGM3jGM57BC3Lbbbfxwz/8w7zkS74kD3rQg3j1V3919vb22NvbY39/nzvvvJODgwMODg44PDzkgWwjCQDbSOL5sc0LYhvb2MY2tnmmYhsA2zw/knhukpDE/SSxvb1NZrK5ucnW1hbb29vY5sYbb2RnZ4ednR3ud+nSJf7mb/6G3/3d3+W2227jGc94Bg90/PhxHvSgB3Hs2DEe9KAH8aAHPQiAS5cusbu7y/Hjx9nb2+OOO+7gD//wD/nrv/5rxnHkqquuuuqqq6666qqrrvpfBz3oQQ/iqquuuuqqq/4nueaaax78Rm/0Rk9/67d+awB2d3c5fvw4u7u7POMZz+AZz3gGly5d4tKlS+zu7vL8HD9+nFtuuYXjx49z7NgxXuqlXooH2t/fB+Dg4ICDgwMkcXBwwOHhIZI4OjpCEpJYLpdIIiIopbBerymlUGul6zr6vqfve2azGbPZjPl8Tt/3nDhxgtlsRmayXC5prTFNE5nJOI4Mw4AkxnGklEJrjdYa8/mczGRjYwPbXHvttTw/z3jGM7h06RK7u7sA3HbbbTzjGc8A4NixYxw/fpxjx45x7NgxAB70oAfxoAc9iPtdunSJ3d1dHvSgBwGwv7/P3t4ed9xxB3fccQe33XYbrTUyk2mamKaJCxcu/Pbtt9/+Olx11VVXXXXVVVddddVV/1ugBz3oQVx11VVXXXXV/zQbGxtPf/CDH/zgxz72sTziEY/g5V/+5QH427/9W44dO8aDHvQgAC5dugTAM57xDACe8YxnAHDp0iV2d3e5dOkSD3Ts2DGOHz/OsWPHAHjQgx4EwLFjxwB40IMexH+XZzzjGQBcunSJS5cucb9Lly6xu7vL8ePHecYznsGxY8c4fvw4x44d43633HILAMePH+fYsWPc79KlSwA84xnP4CVf8iW53/7+PnfffTf7+/vs7e3xhCc8AdtkJpmJbTKT1hqZyTRNTNPEwcHBrU996lMfwlVXXXXVVVddddVVV131vwV60IMexFVXXXXVVVf9T9N13W+dOHHitWezGV3XUWvl1KlTPOxhD+MhD3kIJ06c4EEPehDP7RnPeAYPetCDeKBLly5xv93dXS5dusT9dnd3Abh06RIPdOnSJe53/Phx7re7uwvA8ePHeWGOHTsGwKVLl3igY8eOcenSJQCOHTvGAx07dgyAY8eOAXD8+HEAjh07xnO7dOkSALu7uzzoQQ/iuR0eHnJwcMDBwQH7+/sA3H333ezv77O/v49tbGObzMQ2tslMbJOZZCaZSWuN1hrjOHJwcHDrU5/61Idw1VVXXXXVVVddddVVV/1vgR70oAdx1VVXXXXVVf/TlFJ+6+TJk689n8/puo5aK6UUSilEBBFBRHDixAkigltuuQVJ3HLLLUhiZ2eHnZ0ddnZ2+JdcunQJgGPHjvFf7dKlSxw7dowXxXK5xDZHR0ccHR1hm8PDQ2xzeHjIwcEBBwcHHBwcYBvb2MY2mYltbGMb29jGNpmJbWyTmdgmM8lMMpPWGq01pmlivV7z+Mc/Xlx11VVXXXXVVVddddVV/1tQueqqq6666qr/gVprt9rGNraxDYBtHujSpUtEBH//939PRPC4xz2OiEASkpDEsWPHkIQkdnZ2OHbsGACS2N7eRhLb29ucPXsWSUhia2sLAElIQhKSWCwWrNdrFosFAJKQBIAkJAFgG0kASOJ+mYltbDOOI5LY3d2ltcZqtaK1xtHREdM0cXR0xDRNHB4e0lqjtUZmkplkJpmJbWyTmdjGNs+PJGzz/EjCNi+KiOCqq6666qqrrrrqqquu+l+FylVXXXXVVVf9D5SZt9rGNvezzfNjG0nczzaSuN/e3h4RgSQODg64++67iQgkIYmIICKQREQQEUQEpRRKKZRSKKVQa6XWStd1dF1H13X0fU/XdfR9T9/39H1P13XUWimlUEpBEpKwTWbSWqO1xjiOjOPIOI4Mw8A4jozjyDiOjOPINE1M08QLIgnbvKgkYZt/D9tExIMz81auuuqqq6666qqrrrrqqv8NCK666qqrrrrqf6DMfIZtAGzzQLZ5fmzzgtjmgWzzQLZ5fmzz3GxjG9vY5n62sY1tbANgGwDb/E8giRdGEs9NElddddVVV1111VVXXXXV/1oEV1111VVXXfU/kKRbbWMbANs8kG1sY5vnxzb/XrYBsA2AbWzzQLaxjW0AbGMb29gGwDYAtrmfbR5IEs+PJO4nif8ukpCEJEopD+aqq6666qqrrrrqqquu+t+C4Kqrrrrqqqv+B5J0a2sN29gGwDa2eX5sA2Cb+9nmgWzzQLYBsM39bGOb52ab+9nGNrYBsI1tbGMb2wDYxjYAtgGwzYtCEv8aknhRSeK5SeK5SeKqq6666qqrrrrqqquu+l+P4Kqrrrrqqqv+B7MNgG3+I9jmBbHN/WwDYBvbANjGNgC2sY1tAGxjG9sA2AbANrb5t5DECyKJ/0ySeH4kIYmrrrrqqquuuuqqq6666n8Ngquuuuqqq676HygibpWEbWzzQLZ5INu8ILb5t7LN/WxzP9vczza2sY1tAGxjG9s8kG1eGEkASOKBJCEJAEn8R5DEi0ISz62U8mCuuuqqq6666qqrrrrqqv8tCK666qqrrrrqf6hxHG/lmWxjG9sA2AbANvezDYBtXhjb3M82ALb5l9jGNgC2sQ2AbQBsYxvbANjGNraxzf1s84JI4l8iiedHEv+ZJAEgiauuuuqqq6666qqrrrrqfw2Cq6666qqrrvofahiGW21jm+fHNi8K27yobGMb29zPNg9km/vZxja2AbCNbWzz3Gxjm/9Ikvi3ksSLShIAkui67kFcddVVV1111VVXXXXVVf9bEFx11VVXXXXV/1C2sY1t/rVs80C2eSDb3M82L4htAGwDYBsA29jGNgC2sY1tAGxjG9vYxjb/00kCQBIPJIkHksRVV1111VVXXXXVVVdd9b8GwVVXXXXVVVf9D9Va+23bANjGNraxzXOzDYBtXhDbPJBtHsg2D2SbB7INgG0AbANgGwDbANjGNraxzb9EEs9NEgCS+NeQxH82SVx11VVXXXXVVVddddVV/2sQXHXVVVddddX/UK01bGOb52ab+9nm+bHNfwTb2OaBbANgG9vYxja2sc0D2cY2trGNbWzzn0USLypJvKgkIYmu6x7MVVddddVVV1111VVXXfW/BcFVV1111VVX/Q9l+xmZiW1sY5sHso1t/jVs8/zY5n62sQ2Abe5nG9vYxja2sQ2AbQBsYxvb2MY2tvmXSOK5SeKBJPE/gSSuuuqqq6666qqrrrrqqv81CK666qqrrrrqfyhJt9rmgWxjm+fHNgC2uZ9tnptt7mebB7LN/WzzorCNbWxjGwDb2OZ+tnlRSeLfSxL/WbquezBXXXXVVVddddVVV1111f8WBFddddVVV131P5SkWzMT29jGNv8Wtvn3sI1tAGxjG9vYxja2AbANgG1sA2Ab2wDYxjb3s80DSUISz00Sz48kACTx/EhCEv8SSTw/kpAEgCQAJCGJq6666qqrrrrqqquuuup/DYKrrrrqqquu+h/ONs/NNg9kmweyzQtjm/vZBsA2z80297PNc7MNgG1sYxvbANjGNgC2uZ9t/rUk8W8liReVJK666qqrrrrqqquuuuqq/1MIrrrqqquuuup/qIi4FcA2tgGwjW0AbANgm/vZ5vmxzb+GbZ4f29jGNrYBsI1tAGxjG9vYBsA2ALb57yKJfw1J3E8SAJIA6Pv+wVx11VVXXXXVVVddddVV/1sQXHXVVVddddX/YNM03Wob29jmudnmBbHNA9nmgWxzP9vczzYAtgGwjW1s80C2sY1tAGxjGwDb2MY2ALYBsA2Abf4tJAEgiX8tSfx7SeKqq6666qqrrrrqqquu+l+F4Kqrrrrqqqv+BxuG4VbbvChs8y+xzQPZ5oFs80C2eSDb2MY2D2Qb2wDYxjYAtrENgG1eVJIAkMRzk8Rzk8SLQhLPjyReVLPZ7MFcddVVV1111VVXXXXVVf9bEFx11VVXXXXV/2C2sY1tbGMbANu8ILa5n23+s9jGNraxDYBtbANgGwDb2OZ+tvnvJIl/D0lcddVVV1111VVXXXXVVf9rEFx11VVXXXXV/2Cttd+2zQPZBsA297PNi8o2z49tHsg2ALaxjW0AbGMbANvYBsA2trGNbWxjGwDb2MY2LypJ/HeQxHOTxP1sExEP5qqrrrrqqquuuuqqq67634Dgqquuuuqqq/4Hm6YJ29jGNrZ5INvY5n62AbDN/Wzz3GxzP9s8kG1s8/zY5n62uZ9tbGMbANsA2MY2z802L4gkXlSS+LeQxL+WJCQhiauuuuqqq6666qqrrrrqfw2Cq6666qqrrvqf7Rm2sc0D2eZfwzb/FrZ5braxDYBtbGMb2wDYBsA2ALaxjW1sYxsA27woJAEgiRdGEv8eknhuknh+SikP5qqrrrrqqquuuuqqq67634Dgqquuuuqqq/4Hk3SrbWxjGwDbvChs88LY5n62AbDN82Mb29jmfrYBsM39bGMb29jGNv9TSeKFkcRVV1111VVXXXXVVVdd9b8ewVVXXXXVVVf9Dybp1szkfra5n20eyDYAtnl+bPPcbPMvsc1zsw2AbQBsYxvb2MY2trGNbWxjG9u8MJJ4fiTxopDEfzRJPJAkJHHVVVddddVVV1111VVX/a9AcNVVV1111VX/C9jGNgC2uZ9tAGzz/NjmgWzzgtjmfraxjW3uZxsA2wDYxja2sY1tbANgGwDb2OaBbGMbANvY5r+LJP41JAFQa30wV1111VVXXXXVVVddddX/BgRXXXXVVVdd9T9YRNwKYBsA2wDY5n62+dewzQPZ5oFs89xsA2AbANu8ILYBsM39bGObF5Uk/q0k8e8liecmCQBJXHXVVVddddVVV1111VX/axBcddVVV1111f9w0zTdahvb/EtsA2Cb+9nm38M2D2QbANvYxja2sY1tbGMb29jGNrYBsM39bPMvkcQDSeJ+kgCQxHOTxL+FJJ4fSTxQ13UP4qqrrrrqqquuuuqqq67634Dgqquuuuqqq/6HG4bhVtvczzYAtvm3ss0D2QbANi+IbR7INgC2sY1tbGMb2wDY5n62AbDNi0IS/xUk8a8VEVx11VVXXXXVVVddddVV/ysQXHXVVVddddX/cJmJbWxjGwDbANjmfrZ5INvczzbPzTYviG1sYxsA2wDYxja2AbDN82Mb2wDYxjYAtgGwzb+HJP4lkgCQxH8USUjiqquuuuqqq6666qqrrvpfg+Cqq6666qqr/odrrf22bWzz/NjGNvezzfNjm38L2zw/tgGwjW1sYxvbANjGNrYBsA2Abf49JPGikgSAJP4jdV33YK666qqrrrrqqquuuuqq/w0Irrrqqquuuup/uNYatgGwjW0AbPMvsc0LY5v72QbANs+PbWwDYBsA2wDYxja2sY1tbGMbANsA2Oa/iyReEEk8P5J4fiRx1VVXXXXVVVddddVVV/2vQHDVVVddddVV//M9wza2uZ9tnh/bvDC2eW62+ZfY5n62eSDbPJBtbHM/29jGNvezjW1scz9JAEjigSQBIIkXRBIvCkn8SyTxQJIAkASAJPq+fzBXXXXVVVddddVVV1111f8GBFddddVVV131P5ykW21jG9vY5n62eX5scz/bPJBtXhDb3M82tnl+bGMb2wDYxja2AbCNbWxjm/vZxjb/WpL4jyKJF4Ukrrrqqquuuuqqq6666qr/9Qiuuuqqq6666n84Sbfa5gWxjW1s86KyzQPZ5oFscz/bANjGNrZ5INvYxja2sQ2AbWwDYBvb/G8lCQBJAPR9/2Cuuuqqq6666qqrrrrqqv8NCK666qqrrrrqf4HMxDa2AbCNbZ4f2wDY5n62eW62eVHZ5oFsYxvb2OZ+trGNbe5nGwDb2MY2trHNA9nmX0sS/xaSeG6SeFFIQhJXXXXVVVddddVVV1111f8KBFddddVVV131P1xE3CoJ2wDY5j+DbQBs869lG9vczza2sY1tbPOC2OYFkcSLShJXXXXVVVddddVVV1111VXPheCqq6666qqr/heYpulW29jmgWzzQLZ5INvczzbPzTYvjG1sA2Ab29gGwDa2sQ2AbWxjGwDb2AbANraxjW3+JZL4zyaJf6u+7x/MVVddddVVV1111VVXXfW/AcFVV1111VVX/S8wDMOttrGNbWxjGwDbANjmfrZ5fmzz3Gzz/NjmBbHNA9kGwDa2sY1tbGOb52YbANsA2Oa5SeK5SeKFkcR/BEk8N0ncTxJXXXXVVVddddVVV1111f8KBFddddVVV131v0BmYpsXxDYviG0eyDYviG0AbPNAtgGwjW0AbGMb2wDY5n62uZ9tbGMb29zPNv8ekvj3ksQDSeKFkYQkbBMRD+aqq6666qqrrrrqqquu+p+O4Kqrrrrqqqv+F2it/bZtbGMb2wDY5j+Cbf4ltrmfbR7INraxjW0AbGMbANvczzb/mSTxH0kSz00SV1111VVXXXXVVVddddX/CgRXXXXVVVdd9b9Aaw3b2OZ+tnl+bANgm/vZ5oFs84LY5n62sc3zYxvb2MY297ONbWxjG9sA2MY2ALb5jyKJ5yaJ/wiSAJDEA0milPJgrrrqqquuuuqqq6666qr/6Qiuuuqqq6666n+HZ9gGwDYPZJv72eZFZZsHss0D2eZ+tgGwjW2eH9vYBsA297ONbWwDYBsA29jmXyKJB5KEJP4lknhRSOLfQhJXXXXVVVddddVVV1111f94BFddddVVV131v4CkWzMT2wDY5oFsY5vnZpv72ea52ebfwja2sY1tbANgG9vYxja2eSDbANjmfrZ5UUjiX0sS/9EkcdVVV1111VVXXXXVVVf9r0Fw1VVXXXXVVf8LSLoVwDa2AbCNbZ4f2zw/tnlhbANgm+dmmxfGNgC2AbCNbWxjG9sA2OZfSxL/VpKQxItKEgCSeCBJSAJAErXWB3PVVVddddVVV1111VVX/U9HcNVVV1111VX/S2Qm97PNi8o2L4xtXhjb3M82trENgG1sYxvb2AbANrYBsI1tAGzz30USL4gk/rUkcdVVV1111VVXXXXVVVf9j0dw1VVXXXXVVf8LRMStkrCNbR7INg9kmxfGNs/NNvezzf1sA2Cb52ab52Yb29gGwDb3sw2AbWxjG9v8R5DEi0IS/1G6rnsQV1111VVXXXXVVVddddX/dARXXXXVVVdd9b/EOI632uZ+trENgG0AbHM/29zPNg9km3+JbR7INs/NNraxjW0AbANgG9vYxja2sc1/N0n8e0hCEpK46qqrrrrqqquuuuqqq/7HI7jqqquuuuqq/yXGcbzVNraxzXOzzb+HbV4UtrGNbZ6bbQBsYxvb2MY297ONbe5nG9v8W0ji30ISz00S/xqSuOqqq6666qqrrrrqqqv+xyO46qqrrrrqqv8lWmu32uZFYRsA29zPNg9kG9s8P7a5n21sA2CbB7KNbWxjG9vYxjbPzTa2uZ9t/iWSeFFJ4j+KJO4nCUk8t67rHsxVV1111VVXXXXVVVdd9T8dwVVXXXXVVVf9L5GZt9rGNraxjW1s8x/FNg9km/vZ5n62eSDb3M82ALaxjW1sA2Ab29zPNv8akviPIol/LUkASEISV1111VVXXXXVVVddddX/eARXXXXVVVdd9b9Eaw3b2Oa52eZ+tnkg29zPNs/NNv8atgGwjW1sA2Ab2wDYxja2sY1tbHM/29jmfzpJ3E8SAJIA6LruwVx11VVXXXXVVVddddVV/9MRXHXVVVddddX/EpJ+xzYAtrHNA9nGNvezzfNjm+dmm/vZBsA2z802z49tbANgG9vczzYAtrGNbZ4f2/x7SeJfQxIPJImrrrrqqquuuuqqq6666v8Ugquuuuqqq676X8I2mYlt7mcb2/xnso1tHsg2tgGwzf1sYxsA29gGwDYPZBsA29jm30ISz48k/rNJYjabPZirrrrqqquuuuqqq6666n86gquuuuqqq676XyIibrWNbWzzwtjmgWzzQLZ5bra5n22em20AbHM/2wDYxjb3s41tbGMb29jGNrYBsM39bHPVVVddddVVV1111VVXXfWfgOCqq6666qqr/hexjW0AbHM/2zw/trmfbR7INv8S2zyQbZ6bbe5nG9vY5n62eW62eVFJ4oEk8UCSeG6SkMSLQhLPjySemySuuuqqq6666qqrrrrqqv9VCK666qqrrrrqf4mIuBXANrYBsI1tAGxjG9u8qGzzQLZ5UdjGNrYBsI1tbHM/29gGwDa2sY1tAGxjmxdEEg8kiftJ4kUhiX8tSbwwkpDEbDZ7MFddddVVV1111VVXXXXV/3QEV1111VVXXfW/yDRNt/JMtnlhbANgm/vZ5rnZ5vmxzf1scz/bPJBtHsg2trGNbWxjG9vYBsA297PNfyZJSEISL4gkXhhJPDdJXHXVVVddddVVV1111VX/4xFcddVVV1111f8iwzDcahvb/Eeyzf1s80C2AbCNbe5nm/vZxja2sc0D2eaBbPOC2Ob5kcR/BEn8a0kCQBIPZJuIeDBXXXXVVVddddVVV1111f9kBFddddVVV131v0hm3mob2wDYBsA2D2SbF8Q2/162AbCNbZ6bbWxjGwDb2MY2ALaxjW0AbPO/jSQkcdVVV1111VVXXXXVVVf9j0Zw1VVXXXXVVf+LtNZutQ2AbQBsA2Cb52YbANs8kG2em23uZxsA2zw32zw329jGNraxjW1sYxsA2wDY5oFsA2CbfytJvKgk8fxI4kUlCYBSyoO56qqrrrrqqquuuuqqq/4nI7jqqquuuuqq/0UyE9vY5vmxjW1eFLZ5UdnGNg9kG9u8KGwDYBsA29jmv4skXhhJAEjiuUniqquuuuqqq6666qqrrvpfg+Cqq6666qqr/heR9Du2sY1tbANgm3+Jbf4ltrmfbQBscz/bANjmfrYBsI1tbGMb29jGNraxjW1scz/b/HtI4r+SJO4niauuuuqqq6666qqrrrrqfzyCq6666qqrrvpfxDaZCYBtAGzz/NgGwDb3s80D2ea52eaFsc1zs839bGOb+9nmudnmP5ok/jUk8e9Va30wV1111VVXXXXVVVddddX/ZARXXXXVVVdd9b9IRNxqG9sA2OZ+trmfbV5UtnlBbPOC2MY2tgGwjW3uZxvbANjGNraxDYBtAGxjm/8JJPGikASAJK666qqrrrrqqquuuuqq/9EIrrrqqquuuup/GdvYxjYAtrENgG1s89xscz/bPDfbPJBtnptt7mebB7INgG1sYxvb2MY2trENgG1sA2Cbfw1JvDCS+NeQxL+VJLquexBXXXXVVVddddVVV1111f9kBFddddVVV131v0hE3ApgGwDbvDC2eX5s89xs84LYBsA2trmfbe5nm+fHNvezzf1s80C2AbDN/wSSuJ8kJPHcJHHVVVddddVVV1111VVX/Y9GcNVVV1111VX/y6xWq9+2jW3+M9kGwDbPj20AbGMbANvYxja2sQ2AbWwDYBvbANjGNvezzYtKEs+PJCTxopLEv4Yk7ieJq6666qqrrrrqqquuuup/NIKrrrrqqquu+l8mM7HN/WwDYJsHss0D2eaBbPPcbPOisM1zs80D2cY2trGNbWxzP9vczzb/0SQhCUn8a0jigSTx/Eii67oHc9VVV1111VVXXXXVVVf9T0Zw1VVXXXXVVf/LZOattrGNbQBsA2AbANvczzYviG2em22eH9vY5oFsYxvbANjGNra5n23uZxvb2OY/iiT+JZL4jyAJAEkASOKqq6666qqrrrrqqquu+h+N4Kqrrrrqqqv+l2mt3Wob2zw/tnlBbPPcbPOC2AbANvezDYBtHsg297ONbWwDYBvbPJBtbGObfw1J/FtIQhLPjyT+Lfq+fzBXXXXVVVddddVVV1111f9kBFddddVVV131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V1111VVXXXXVVVddddV/uLNnz94K8OhHP5onP/nJ2MY2tmmtIQlJ3E8S94sIbGOb+9nmfpKwzQsjiedmmweSxAPZ5n6SeCBJAEjiudlGEraRxIvCNi8qSQDYRhIA8/n8wVx11VVXXXXVVS8Kgquuuuqqq6666qqrrrrqP9x9991362/91m9994u92IuRmWQmtgGwTWbSWiMzyUwyE9vYxja2yUxsYxvb2MY2trGNbWxjG9s8kG1sYxvb2MY2D2Qb29jGNv9akgCQhCQkASAJSUhCEpKQxANJQhKSkIQkJCEJSUhCEpKQBIAkACQhia7rHsxVV1111VVXXfUvIbjqqquuuuqqq6666qqr/lP86I/+6Odce+21ZCa2sY1tHigzyUwyk8wkM8lMMhPb2MY2trENgG1sYxvb3M82trGNbWxjmweyjW1sY5sHso1tbPPCSEISAJKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpDECyMJAElIQhJXXXXVVVddddWLhOCqq6666qqrrrrqqquu+k9x33333Xr27NnffvSjH41tbGMb2wDYBsA2mUlmYhvb2MY2trGNbWxjG9vY5n62sY1tbPPcbGMb29jGNvezjW1s80C2sc0DSeKBJCEJSQBIQhIAkpCEJAAkIQlJSEISz00SkpCEJCQhCUkASOKqq6666qqrrvpXI7jqqquuuuqqq6666qqr/lM95jGPITOxzf1sA2Ab29gmM8lMbGMb29jGNraxjW1sA2Ab29jGNvezjW1sYxvb2OaBbGMb29zPNs/NNs+PJB5IEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISknh+JAEgCUlIouu6B3PVVVddddVVV/1LCK666qqrrrrqqquuuuqq/zRnz5699cVf/MWxDYBtXpjMJDPJTDKTzMQ2tgGwjW1sYxvb3M82trGNbZ6bbWxjmweyjW0AbGObB7KNbQAk8UCSkIQkACQhCUlIAkASkpCEJAAkIQlJPDdJSEISkpAEgCTuJwlJXHXVVVddddVV/yKCq6666qqrrrrqqquuuuo/zX333XfrNddcg21s86KwjW1sYxvb2MY2trGNbWwDYBvb2MY297ONbWxjG9vczza2sc39bHM/2zw32zyQJAAkIQlJSEISAJKQhCQkIQlJSEISkgCQhCQkIQlJPDdJAEhCElddddVVV1111YuM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9vf3OTw85H4/8iM/8tlf+qVf+jZnz569lauuuuqqq6666r8a5fjx41x11VVXXXXVVVddddVV//0ODw93b7311r/+sz/7s5+59dZb/2Zzc/P4Lbfc8uCHPOQhvOqrvioPechDALjnnnuQxP0kIYmIQBIRgSQiAklIIiKQREQQEUQEEUFEEBGUUiilUGul1krXdfR9T9/3zGYzZrMZfd/TdR1d11FrpZSCJCQxjiO7u7ucPXuWcRwB+Id/+Iff/qzP+qzX+dM//dOf4aqrrrrqqquu+u+CHvSgB3HVVVddddVVV1111VVX/c90zTXXPPgd3/EdP+t1Xud13ptn2t3d5eLFi/z1X/81Fy9e5BnPeAalFCKCUgoRQURQSiEiiAhKKUQEpRRKKZRSqLVSSqHrOrquo+97+r5nPp+zWCzY2Nhgc3OTra0ttra22NzcZGNjg8ViQd/3ABwcHLC3t8c4jtzvvvvuu/Xrv/7r3+cf/uEffpurrrrqqquuuuq/G3rQgx7EVVddddVVV1111VVXXfU/2zXXXPPgF3uxF3vt13md13mvF3uxF3vt++6779ZrrrnmwQC7u7s84xnP4BnPeAb7+/vccccdRASlFCKCUgoRQSmFiKCUQimFWiu1VmqtdF1H3/fMZjPm8zmLxYKNjQ02NzfZ2tpia2uLjY0Nuq5DEqvVimmauN99991362/91m9992/91m9999mzZ5/BVVddddVVV131PwV60IMexFVXXXXVVVddddVVV131v8c111zz4Bd7sRd77Rd7sRd7rdd5ndd5b56Pvb09Ll26xP7+PnfddReSODw8JCI4PDyk1spyuaTWStd1HDt2jK7r6LqOnZ0dtre32draous6NjY2qLXy3O67775bf+u3fuu7z549+4zf+q3f+m6uuuqqq6666qr/idCDHvQgrrrqqquuuuqqq6666qr/vc6cOfOgF3/xF3+dF3uxF3uta6655sEv9mIv9tr8J7jvvvtuPXv27K1///d//9v/8A//8Dv/8A//8NtcddVVV1111VX/06EHPehBXHXVVVddddVVV1111VX/d1xzzTUPtu0Xf/EXfx2AM2fOPOiaa6558DXXXPNggDNnzjwY4Jprrnnwfffdd+s111zz4Pvuu+9Wnuns2bO33nfffbfed999twL8wz/8w+/8wz/8w29z1VVXXXXVVVf9b4Qe9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q/iHwFXg4gG8JFJ4wAAAABJRU5ErkJggg==) +![Rendered example of sweep 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAErFUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVS+Sa6655sE805kzZx4McM011zyYZzpz5syDeC7XXHPNg3k+rrnmmgfzAtx333238gLcd999t/JMZ8+efQbPdN99993KM509e/bW++6771auuuqqq6666qqrrrrqqqsAPehBD+Kqq6666qqr/r+55pprHgxw5syZB19zzTUPPnPmzIN4pmuuuebB11xzzYMBzpw58+BrrrnmwbyIbr31Vu63u7vL8ePHeX52d3d5QY4fPw7A7u4uz+348eM80IMf/GBemH/4h3/47TNnzjz47Nmzt9533323AvzDP/zD7wDcd999t549e/bW++6771auuuqqq6666qqrrrrqqv+r0IMe9CCuuuqqq6666v+aa6655sFnzpx58DXXXPNggDNnzjzoxV/8xV/7zJkzD77mmmsezPNx6623sru7C8Du7i7Hjx9nd3eX+z34wQ9md3eX3d1djh8/zvHjx7nf8ePHATh+/Dj/Xru7uxw/fpzd3V2OHz8OwO7uLg+0u7vL7u4u93vGM57B/XZ3d9nd3eX48eMcP34cgGPHjnH8+HEAjh8/zoMf/GDud999990K8A//8A+/DfAP//APv/MP//APv33ffffdylVXXXXVVVddddVVV131vx160IMexFVXXXXVVVf9b3XNNdc8+MyZMw9+sRd7sde65ppr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/qNI4kUhCUk8P5L415DEVVddddVVV1111VVXXfW/AsFVV1111VVX/S/TWrvVNrb5j2Cbf4lt7mcbANs8kG3uZxvb2AbANrZ5INvYxjb/GpL495DEfwRJXLx4kWuuuebBXHXVVVddddVVV1111VX/UxFcddVVV1111f8yrTVsA2Ab2wDY5rnZBsA297PNc7PNA9nmhbHN/WxzP9vY5n62sc39bGMb2zw327yoJPFfQRJXXXXVVVddddVVV1111f9qBFddddVVV131v0xE/I5tbHM/2zw327wgtnlutnl+bPOC2AbANra5n21scz/b2Oa52QbANv+VJPHcJHE/Sbwgkrjf7u4uZ86ceRBXXXXVVVddddVVV1111f9UBFddddVVV131v4xtbGMb29jmfraxzfNjm3+Jbe5nmweyjW1sA2Cb52Yb29zPNraxjW1sYxvb2AbANs+PbR5IEv9TSEISV1111VVXXXXVVVddddX/eARXXXXVVVdd9b9MRNyamdjmgWxzP9vczzbPj23+rWwDYBvb2OaBbGMbANvczza2eUFs828hiX8tSfxrSOKqq6666qqrrrrqqquu+l+H4Kqrrrrqqqv+F7MNgG1eFLZ5INs8N9vczzYAtvmX2MY2tgGwjW0AbGOb+9nGNrYBsM3/BJJ4fiQBIIkH2t3d5ZprrnkwV1111VVXXXXVVVddddX/VARXXXXVVVdd9b9MRNw6TdOttgGwzf1s80C2AbDNC2Kb52abf4ltnh/b2AbANra5n21s80C2AbANgG1s819BElddddVVV1111VVXXXXV/2kEV1111VVXXfW/0DRNt9rGNgC2eW62eX5s869hm/vZxjb3s41tbGObB7INgG1sY5v72cY2tvn3kMT9JPEfSRIAknhBdnd3ueaaax7MVVddddVVV1111VVXXfU/FcFVV1111VVX/S+UmdjGNrYBsA2AbWzzr2Gb52abB7LN/Wzz/NjGNrYBsA2AbWxjG9s8N9v8R5DEv5Yk/rUkIYmrrrrqqquuuuqqq6666n88gquuuuqqq676Xygzb7XNi8I2ALa5n22em23+NWwDYBvb2OaBbANgm/vZBsA2tgGwzX8kSUhCEpKQhCReVJJ4YSTxQGfOnHkwV1111VVXXXXVVVddddX/VARXXXXVVVdd9b9Qa+1W29jGNrYBsM2LyjbPzTYPZBsA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DYBt7meb/wqS+NeQxHOTBMDu7i5XXXXVVVddddVVV1111f84BFddddVVV131f0RE3Gob29zPNrb597DNC2Ob58c297PN/WxzP9sA2AbANrZ5INs8N9u8IJIAkASAJF4UkgCQBIAkACTxgkjiqquuuuqqq6666qqrrvofjeCqq6666qqr/g+ZpulW29jmhbENgG3uZ5sXxDbPzTb/EtvYBsA297ONbV4Y29jmP5sk/iNI4syZMw/mqquuuuqqq6666qqrrvqfhOCqq6666qqr/g9prd0KYBvb3M8297PNC2KbF8Q2/xLb2MY2D2QbANvY5oFsYxvb/GeThCQk8a8liRdEEru7u1x11VVXXXXVVVddddVV/+MQXHXVVVddddX/Ia01bHM/29gGwDa2eW62eSDbvCC2eSDbANjGNg9kG9vczzb3s41tbPNAtgGwzXOzzb+HJB5IEs9NEv9Wu7u7XHXVVVddddVVV1111VX/4xBcddVVV1111f8hmfnbtrGNbV4Y27wgtnlBbPOvYZv72ea52QbANgC2+a8miQeSBIAknh9JSAJAEgCSuOaaax7MVVddddVVV1111VVXXfU/CcFVV1111VVX/R+SmdjmudnmhbHNc7PNC2Kb+9nmX2Kb+9nGNraxDYBtnptt7mebfwtJAEji+ZHEi0IS95PEVVddddVVV1111VVXXfW/BsFVV1111VVX/R9i+xmZiW1sYxvbPDfbANjmhbHNC2Kb52Yb29jGNra5n22eH9vczzYPZBvbPJBt/qeQBIAkLl26BMA111zzYK666qqrrrrqqquuuuqq/ykIrrrqqquuuur/llttY5vnZhvb2Ob5sc3zYxvb/Ets8/zY5n62sc39bANgG9sA2MY2/1UkASAJAElcddVVV1111VVXXXXVVf9nEFx11VVXXXXV/yERcattbGMb2/xr2OYFsc1zsw2AbV4Y2zyQbWzzn0USz48kJCGJf4kknpskXhBJAJw5c+bBXHXVVVddddVVV1111VX/UxBcddVVV1111f8xmckD2cY2z802ALZ5INu8ILaxzQtjG9vY5oFsY5vnZpv72eZ+tvmPIInnRxIvCkm8KHZ3d7nqqquuuuqqq6666qqr/schuOqqq6666qr/QyLiVgDb2OaBbPOiss0LY5v72eZ+tnkg29jmgWxjG9vYBsA2tgGwjW2eH9v8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braxjW1s89xsYxvbvCC2uZ9t/qeRxDOe8QwAXuzFXuy1ueqqq6666qqrrrrqqqv+uxFcddVVV1111f9RrbXfto1tAGxjGwDb2OZ+tnlBbGObfyvb2OYFsc1zs80D2eY/mySemyQeSBIviCQALl26BMCLvdiLvRZXXXXVVVddddVVV1111X83gquuuuqqq676P2qaJjIT29jmRWWb58c2tnlBbANgm/vZ5gWxjW0AbPNfSRKS+PeShCTuJ4lLly4B8OIv/uKvzVVXXXXVVVddddVVV131343gqquuuuqqq/6PkvQ7mYltbGMb29jmgWwDYJv72eYFsY1tnh/b3M82z802trHNc7ONbWwDYBsA2/xnk8S/liTuJ4n7Xbp0CYAzZ848mKuuuuqqq6666qqrrrrqvxvBVVddddVVV/0fFRG3Zia2sY1t7mcb29jmBbHNC2Mb2zw/tnkg29jm+bHNC2Kb52ab/2i2+feShCT29va49dZbueaaax7MVVddddVVV1111VVXXfXfjeCqq6666qqr/o+KiFsBbGMbANvY5rnZBsA2D2Sbf4ltbPOC2Ob5sY1tAGzzX8k2tnkg2zw32zw/knh+JCGJ+73Yi73Ya3PVVVddddVVV1111VVX/XciuOqqq6666qr/w9br9W9nJraxzf1scz/bPJBtHsg2tvmX2AbANvezzXOzjW2em23uZ5vnZpt/L9s8N9vczzb/GpKQhCQkcb+//du/BeDFXuzFXourrrrqqquuuuqqq6666r8TwVVXXXXVVVf9H5aZ2MY2trGNbQBsY5v72eZ+tnlutrHNC2Ob+9nmgWxjm+dmm/vZxjb/VraxjW2em20AbHM/2wDY5n62+beShCRuu+02AF78xV/8tbnqqquuuuqqq6666qqr/jsRXHXVVVddddX/YeM4/nZmYhsA2wDY5oFsA2Cb+9nm+bGNbWzzgtjmgWzz3GxjGwDbPDfb/HvYxja2sc0D2cY2/xqSAJAEgCTuJwlJAEhib2+PW2+9lTNnzjyYq6666qqrrrrqqquuuuq/E8FVV1111VVX/d/2O601bJOZANgGwDa2sc0LYpsXxja2eSDb3M82tnkg29jm30oS/1a2eW62AbDN/WzzopLE/SQhiftdc801D+aqq6666qqrrrrqqquu+u9EcNVVV1111VX/h0m6NTPJTGxjG9vY5rnZ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ccstt/ASL/ESPOhBDwLg0qVL3Hrrrfz1X/81T3va07BNZpKZDMNw62q1uvXSpUvfc3R09N1cddVVV1111VVX/c+CHvSgB3HVVVddddVVV/3rTNP03tvb29/V9z21Vkop1FoppVBKoZRCRBARRASSiAgiAklEBJKICCQhiYhAEpKICCQhCUlEBJKQREQgiYhAEhGBJCKCiCAiiAgigoggIiilEBGUUogISimUUogISilEBBFBRCCJiEASkngg29jGNrbJTGyTmWQmtslMMhPbZCa2sU1mYhvb2MY2trGNbWxjG9vYBsA2trENgG1sA2Ab2wDYxjYAtrENgG0AbGMbANsA2AbANgC2AbDN/WxzP9vczzb3s83zY5ur/v1s8/zY5rnZ5oFscz/b3M82ALYBsA2AbQBsYxsA2+zs7HDLLbfwoAc9iGPHjnHs2DH+5m/+hr/+67/mwoUL2CYzyUzW6/UzDg4OfuvSpUvfM47jb3PVVVddddVVV1313w896EEP4qqrrrrqqquu+teT9FsbGxuv3XUdtVZKKdRaKaVQSiEiKKUgiYggIpBERBARSCIikIQkIgJJSCIikIQkIgJJSEISEYEkJBERRASSiAgiAklEBBFBRFBKISKICEoplFKICEopRASlFCKCUgoRQUQgiYhAEpJ4INsAZCa2sU1mkpnYJjPJTGyTmdgmM7GNbTIT29jGNraxjW1sA2Ab29gGwDa2AbCNbWwDYBvbANjGNgC2AbCNbQBsA2Ab2wDYBsA2ALa5n20AbHM/2zyQbZ6bba76t7PNC2Ob52abB7LN/WxzP9sA2OZ+tgGwDYBtbANgGwDb2AZgZ2eHl3iJl+BBD3oQx44d43d+53f467/+azIT22Qmmclqtbr14sWL372/v/89tm/lqquuuuqqq6666r8HetCDHsRVV1111VVXXfWvl5kP3tjYeHrf99RaKaVQa6WUQimFUgoRQUQQEUQEkogIJBERRASSkEREIImIQBKSkEREIAlJSCIikIQkIgJJRASSiAgigoggIogIIoKIoJRCRFBKISIopRARlFIopRARRASlFCICSUQEkpDEA9kGwDaZiW0yE9tkJrbJTDIT22QmtslMbGMb29jGNraxjW1sYxsA29gGwDa2AbCNbQBsYxsA29jGNgC2sQ2AbQBsYxsA2wDYBsA2ALYBsM39bANgmweyzXOzzVX/NrZ5YWzz3GzzQLa5n23uZ5v72QbANgC2AbANgG0AbANgG9sA2MY2ttnZ2eFBD3oQx44d49ixY/z1X/81T3/607FNZpKZ2Ga5XN567ty5zzk6Ovpurrrqqquuuuqqq/5roQc96EFcddVVV1111VX/NtM0vffOzs53dV1HrZVSCrVWSimUUogISilEBJKICCICSUQEEYEkIgJJSCIikIQkJBERSEISEYEkJCGJiEASEYEkIgJJRAQRQUQQEUQEpRQiglIKEUEphYiglEIphYiglEJEUEohIpBERCAJSQBIwjYAtrGNbWyTmWQmtslMbJOZZCa2yUxsYxvb2CYzsQ2AbWxjG9sA2AbANrYBsI1tAGxjGwDb2MY2ALaxDYBtbANgG9sA2AbANgC2AbANgG3uZxsA2zyQbR7INlf929jmBbHNc7PNA9nmfra5n23uZxsA2wDY5n62AbCNbQBsA2AbANvYBsA2trHNzs4Ox44d40EPehC2+eu//msuXLiAbTKT1hrr9frW3d3d77506dLncNVVV1111VVXXfVfAz3oQQ/iqquuuuqqq676t6u1/tZsNnvtruuotVJKodZKKYVSChFBRBARRASSiAgiAklEBBGBJCQREUhCEhGBJCQhiYhAEpKQREQgCUlEBJKICCKCiEASEUEphYggIiilEBGUUogISimUUogISimUUogIIoJSCpKICCQhCUnczzYAtslMbGObzMQ2mUlmkpnYxjaZiW1sk5nYxjYAtrGNbWwDYBvbANgGwDYAtrENgG1sYxsA29gGwDa2AbCNbWwDYBsA29gGwDYAtrmfbQBscz/b3M82z802V/3b2Ob5sc0D2eaBbHM/2wDY5n62AbDN/WwDYBsA2wDYBsA2ALaxDYBtbANgG9vYBsA2Ozs7HDt2jGPHjmGbv/qrvyIzsU1mslqtnnFwcPBb58+f/x7bv81VV1111VVXXXXVfx70oAc9iKuuuuqqq6666t8uMx987NixpwPUWqm1Ukqh1kophYiglEJEIImIICKICCQREUgiIpBERCAJSUQEkpCEJCICSUhCEhGBJCQREUgiIpBERBARRAQRQUQQEUQEpRQiglIKpRQiglIKpRRKKUQEpRQigoggIogIJCEJSTyQbWxjG9vYJjPJTGyTmdgmM7FNZmKbzMQ2trENgG1sYxsA2wDYBsA2tgGwDYBtbANgGwDb2MY2ALaxDYBtbGMbANvYBsA2ALaxDYBt7mcbANvczzYPZJvnZpv/aJL4v8A2L4xtHsg2D2Sb+9kGwDb3s839bANgGwDbANgGwDYAtgGwDYBtAGwDYBvbANjGNrYBsI1tbGObnZ0dHvSgB3Hx4kVs8/SnP53MJDORxNmzZ7/70qVL3zOO429z1VVXXXXVVVdd9R8PPehBD+Kqq6666qqrrvr3mabpvbe3t7+r73tKKZRSqLVSSqGUQimFiCAiiAgiAklEBBGBJCICSUQEkogIJCEJSUQEkpCEJCQREUhCEhGBJCICSUQEkogIIoKIICKICEopRASlFCKCUgqlFEoplFKICEoplFKICCKCiCAiiAgAJCEJANsA2MY2tslMbJOZ2CYzsU1mYpvMxDa2sY1tbGMb29gGwDb3s41t7mcbANvYBsA2ALaxjW0AbGMbANvYxjYAtrGNbQBsA2Ab2wDYBsA297MNgG0eyDYPZJurnpMkbPPC2OaBbPNAtrmfbQBscz/bANgGwDYAtgGwDYBtAGwDYBsA2wDYBsA2ALaxDYBtAGxjGwDb2MY2trGNbWxz7NgxbrnlFgD+8i//kswkM8lMlsvlM86dO/fZy+Xyu7nqqquuuuqqq676j4Me9KAHcdVVV1111VVX/Yf4rs3Nzffuuo5SCqUUaq2UUiilEBFEBBFBRBARRAQRgSQiAklEBJKICCQhCUlEBJKQhCQkERFIQhKSiAgkERFIIiKICCQREUQEEUEphYiglEJEUEqhlEJEUEqhlEIphVIKEUEphYggIogIJBERSOK52cY2tslMbJOZ2CYzsU1mYpvMxDa2sY1tbGMbANsA2AbANvezDYBtAGxzP9vYxjYAtgGwjW1sA2Ab29jGNgC2sQ2AbWwDYBsA2wDYBsA297PN/Wzz3Gzz7yGJ/4ts8/zY5oFscz/b3M82ALYBsA2AbQBsA2AbANsA2AbANgC2AbCNbQBsA2AbANsA2MY2ALYBsI1tAGxjG9vYBsA2trHNzs4Ot9xyC8eOHePpT386T3va08hMWmus1+tb77333s9Zr9ffzVVXXXXVVVddddW/H3rQgx7EVVddddVVV13175eZD57NZr81n88fXGullEIphVorpRRKKUQEEUFEEBFEBBGBJCICSUQEkogIJCEJSUQEkpCEJCQREUhCEpKICCQREUgiIpBERBARRAQRQUQQEUQEpRQiglIKpRRKKZRSKKUQEZRSKKVQSiEiiAgigohAEpKQxP1sA2Ab29gmM7FNZmKbzCQzsY1tbJOZ2MY2ALaxzf1s80C2AbDNA9kGwDa2AbANgG1sYxsA29jGNrYBsI1tbANgGwDb2AbANgC2AbANgG3uZ5v72eaq5yQJ2zw/tnkg29zPNgC2uZ9tAGwDYBvbANgGwDYAtrENgG1sA2AbANsA2MY2ALYBsA2AbWwDYBsA29gGwDa2AbCNbWwDYBvb2MY2x44d4+abb+ZBD3oQu7u7/MVf/AUXLlwgM1kul7fefffd7zNN029z1VVXXXXVVVdd9W+HHvSgB3HVVVddddVVV/3HmKbpvbe2tr6r73tqrZRSKKVQa6WUQkQQEUQEEUFEEBFEBBGBJCICSUQEkpCEJCICSUhCEpKICCQhCUlEBJKQREQgiYhAEhFBRBARRAQRQURQSiEiKKUQEZRSKKVQSqGUQimFUgqlFCKCUgoRQUQQEUhCEpJ4braxjW1sk5lkJrbJTGxjm8zENraxjW1sA2AbANu8ILZ5brYBsA2AbWwDYBvbANjGNrYBsI1tbGMbANvYxjYAtgGwDYBtAGwDYJv72eaBbPOvIYn/62zz3GxzP9sA2AbANvezDYBtbANgG9sA2MY2ALaxDYBtbGMbANsA2MY2ALaxDYBtAGwDYBvbANgGwDa2AbCNbQBsYxvbANjGNraxjW0yk52dHV7qpV6KBz/4wfzlX/4lf/EXf0FmcuHChe/e3d39nmmafpurrrrqqquuuuqqfz30oAc9iKuuuuqqq6666j+O7c/a3Nz87K7rqLVSSqGUQimFUgqlFCKCiCAiiAgiAklEBBGBJCQREUhCEhGBJCQhCUlEBJKQhCQkERFIQhIRgSQiAklEBBFBRBARRAQRQSmFiKCUQkRQSqGUQimFUgqlFEoplFIopRARlFKICCICSUQEAJJ4INvYxja2yUxsY5vMxDaZiW0yEwDb2MY2ALb517DNA9kGwDYAtgGwjW1sA2Ab29jGNgC2sY1tbANgGwDb2AbANgC2AbANgG1eENs8P5L4/8Y2D2Sb+9nGNgC2AbANgG1sA2Ab29jGNgC2sQ2AbWxjG9vYBsA2tgGwjW1sA2AbANvYBsA2tgGwDYBtbANgG9sA2MY2ALaxjW0AbGMb29gmM7HNsWPHeMmXfEle+qVfmqc//en8xV/8BU95ylO4cOHCd1+8ePFzMvNWrrrqqquuuuqqq1506EEPehBXXXXVVVddddV/nMx8cK31uzY2Nl676zpKKUQEtVZKKZRSiAgigoggIogIIoKIQBIRgSQiAklIIiKQhCQkERFIQhKSkIQkIgJJSCIikIQkIoKIQBIRQUQQEUQEEUEphYiglEIphVIKpRRKKZRSKKVQSiEiqLUSEUQEpRQigohAEpKQxAPZxja2sY1tbJOZ2CYzsY1tbGMb29jGNgC2eX4k8YJIAsA297MNgG0AbGMbANvYxja2AbCNbQBsYxsA29jGNgC2sQ2AbQBsY5vnxzYvjCT+P7HN/WxzP9vYBsA2tgGwjW0AbGMb29jGNraxjW1sA2Ab29jGNraxjW1sA2Ab29gGwDa2AbCNbQBsYxsA29gGwDYAtrGNbQBsYxsA29jGNrYBsI1tMhPb2ObYsWO85mu+Ji/90i/N7u4uf/EXf8Ev/MIv3Hrx4sXv2dvb+2yuuuqqq6666qqrXjToQQ96EFddddVVV1111X+szHzwbDb7rfl8/uBaK6UUSimUUiilUEohIogISilEBBFBRCCJiEASEYEkJBERSEISkogIJCEJSUhCEpKICCQhiYhAEhGBJCICSUQEEUFEEBFEBKUUIoJSCqUUSimUUiilUEqhlEIphVIKpRRKKUQEpRQigohAEhGBJB7INgC2sY1tbJOZ2CYzsY1tbGMb29jGNi+MJAAk8UCSeEFsA2Cb+9nGNrYBsI1tbANgG9sA2MY2tgGwjW1sA2Ab2wDY5rnZ5oWRxH8VSfxHs80LIon72QbANgC2uZ9tAGxjG9vYxjYAtrGNbWxjG9vYJjOxjW1sYxvb2MY2trGNbWxjG9vYxja2AbCNbWwDYBvb2AbANrYBsA2AbWwDYBvb2AbANrYBsI1tbGMb29jGNraxjW12dnZ4q7d6Kx784Adz8eJF/vIv/5Kf//mfv/Xs2bPfvVwuP4errrrqqquuuuqqFw496EEP4qqrrrrqqquu+o+Xma+9sbHxW33fU2ullEJEUGullEJEUEohIogIIoKIICKICCQREUhCEhGBJCQhiYhAEpKQhCQkIYmIQBKSkEREIImIQBIRgSQigoggIogIIoJSChFBKYVSCqUUSimUUiilUEqhlEIphVIKpRRKKUQEpRQiAklEBJKQxAPZBsA2tslMbGObzMQ2trGNbWxjm/vZ5n6SAJAEgCTuJwlJAEjigSQBYJv72QbANgC2AbCNbWwDYBsA29jGNrYBsI1tbGMbANvY5rnZ5oWRxH8USfx3so0knh/bANgGwDYAtgGwjW1sYxvb2MY2trGNbWyTmdgmM7GNbWyTmdjGNrbJTGxjG9vYxja2sY1tbGMb29jGNrYBsI1tbANgG9sA2MY2ALaxjW0AbGMbANvYBsA2trGNbWxjG9vYxjaZyUu91EvxUi/1Ujz4wQ/m6U9/Oj/6oz/KU5/61O++ePHi52TmrVx11VVXXXXVVVc9f+hBD3oQV1111VVXXXXVf47W2mdtb29/dtd1lFIopVBKoZRCKYVSChFBKYWIICKICCQREUQEkpBERCAJSUgiIpCEJCQhCUlIIiKQhCQkIYmIQBIRgSQiAklEBBFBRBARRASlFCKCUgqlFEoplFIopVBKoZRCKYVSCrVWSilEBKUUSilEBBGBJCQhCUk8kG1sYxvb2MY2tslMbGMb29gGwDbPjyQAJCEJSQBIQhKSAJCEJJ6bJABsA2Cb+9kGwDa2AbCNbWwDYBvb2MY2ALaxjW1s89xs88JI4l9DEv8b2QbANgC2sQ2AbWxjG9vYxja2yUxsYxvbZCaZiW0yE9tkJrbJTGyTmdgmM7FNZmIb29gmM7GNbWxjG9vYxja2sQ2AbWxjG9sA2MY2ALaxDYBtbGMbANvYBsA2trGNbQBsYxvb2MY2mYltbPOSL/mSvPRLvzTHjx/nx37sx3jc4x5368WLF79nf3//s7nqqquuuuqqq656XuhBD3oQV1111VVXXXXVfx5Jv7WxsfHaXddRSqGUQkRQa6WUQkRQSiEiiAgigoggIpBERCCJiEASkpBERCAJSUhCEpKQREQgCUlIQhIRgSQkERFIIiKQREQQEUQEEUFEUEohIiilEBGUUiilUGullEIphVIKpRRqrZRSKKUQEZRSKKUQEUgiIpCEJJ6bbWwDkJnYxja2yUxsYxsA2wDY5n6SAJAEgCQkIQlJSEISkpCEJCQBIAkASbwwtrHN/WwDYBvbANjGNraxjW1sYxvbPJBtXlSSeFFJ4n8LSdjGNgC2sQ2AbWwDYJvMxDa2yUxsY5vMxDaZSWaSmWQmmYltMpPMJDOxTWaSmWQmtslMbJOZ2CYzsY1tbGObzMQ2trGNbWwDYBvb2MY2tgGwjW0AbGMb2wDYxjYAtrGNbQBsYxvb2AYgM7GNbWxjG9tkJi/1Ui/FS73US/H0pz+dX/3VX2W5XN567733vs84jr/NVVddddVVV1111bOhBz3oQVx11VVXXXXVVf95MvPBfd//1nw+f3CtlVorEUEphVIKpRRKKUQEpRQigohAEhFBRCAJSUQEkpCEJCICSUhCEpKQhCQiAklIQhKSkEREIImIQBIRgSQigoggIogIIoKIoJRCKYWIoJRCKYVSCrVWSimUUiilUGullEIphVIKpRQigoggIogIIgJJPD+2AbBNZmIb29jGNraxDYBtnpskACQhCUlEBJKQhCQkERFIQhIAkpCEJAAkcT9JANjmudnGNgC2sY1tbGMb29jGNrZ5brZ5YSTxgkji30MS/1Vs80CSeCDb2MY2tgGwjW0AMhPbZCa2yUxsk5nYJjPJTDKTzCQzaa2RmWQmmUlmkplkJplJZpKZZCa2yUwyE9tkJrbJTGxjG9vYxja2yUxsA2Ab29jGNraxDYBtbGMbANvYBsA2trENgG1sYxsA29jGNraxjW1sY5vMxDY7Ozu81Eu9FC/zMi/Dt37rt3LhwgXuvffez97b2/scrrrqqquuuuqqq65AD3rQg7jqqquuuuqqq/5z2X7wYrF4etd11FoppVBKISKotVJKISIopRARRAQRQUQgiYhAEhGBJCQhiYhAEpKQhCQkIYmIQBKSkIQkJCGJiEASEYEkIgJJRAQRQUQQEUQEEUEphYiglEIphVIKpRRKKdRaKaVQSqGUQq2VUgqlFEoplFKICCKCiCAikIQkJPFAtgGwjW1sYxvb2MY2trHNCyIJSUhCEpKICCQREUgiIpCEJCQREUgCQBKSkMQDSeKBbHM/29jGNrYBsI1tMhPbPDfbvDCSeCBJ/GtI4n8ySdjGNraxDYBtbGMb29jGNplJZmKbzCQzyUwyk8wkM2mtkZlkJq01MpPWGplJZpKZtNbITDKTzCQzyUwyk8zENpmJbTIT22QmtrGNbWxjm8zENgC2sY1tbGMb2wDYxja2AbCNbWwDYBvb2AbANraxjW1sYxuAzMQ2trGNbTKTnZ0dXvu1X5sLFy7wa7/2ayyXy1vvuuuu18nMW7nqqquuuuqqq/6/Qw960IO46qqrrrrqqqv+803T9N5bW1vf1fc9tVZKKUQEpRRKKZRSKKUQEUQEEUFEEBFIIiKQREQgCUlEBJKQhCQkIQlJSCIikIQkJCEJSUgiIpCEJCICSUQEEYEkIoKIoJRCRBARlFIopVBKoZRCKYVSCqUUaq2UUiilUGullEIphVIKpRRKKUQEEUFEIImIAEASkgCwDYBtbAOQmdjGNrYBsI1tnpskJCEJSUhCEhGBJCICSUQEEYEkIgJJSEISkogIACQBIAlJPD+2AbCNbWxjG9vYxjYAtnlutnlukrifJF4QSfxrSOK/g20AJPHcbJOZANjGNrYBsI1tMpPMJDOxTWaSmWQmmUlm0lqjtUZm0lqjtUZm0lojM2mt0VojM2mtkZlkJq01MpPMJDPJTGyTmWQmtslMbGObzMQ2trFNZmIb29gGwDa2sY1tbGMbANvYxjYAtrGNbQBsYxvbANjGNraxjW1sYxvb2CYzsU1m8lIv9VJkJn/+53/OarV6xsWLF79rf3//c7jqqquuuuqqq/4/o3LVVVddddVVV/2XqLV+98HBwYO2t7c/m+dDEpIAkIRtbJOZRAS2AbDN/WzzwmQmEcHzk5lEBACZSUSQmQBI4oFs80C2sY1tbGMbANv8SyRhG0kASEISkpDEA9kGwDa2sY1tAGxjG9sA2EYS95OEJCQhiYhAEhGBJCKCiCAikEREIImIQBIRgSQkASAJSUjigSRhGwDb2AbANraxjW0eyDb3s80DSeJ+knhuknhRSeJ/KknYxja2sY1tAGxjG9vYJjPJTGyTmWQmmUlmkpm01shMWmu01mit0VqjtUZm0lqjtUZrjdYapRRaa2QmEUFmkpm01shMMhNJRASZiSRsk5lIIjOxjW0kkZnYxja2eW6SsI1t7icJ2/xHiAhsA/C3f/u37Ozs8Aqv8Ao89alPfVDf95+9sbHx2vfdd9/72L6Vq6666qqrrrrq/yMqV1111VVXXXXVf5la6+ccHR2xubn52ZJ4IEncTxL3iwhsk5lEBJlJRACQmUQEL0xmEhE8P5lJRACQmUQEmUlEkJk8N9vYppQCgG1sYxsA29jGNraxjW2eH0nYRhKSkIQkJAEgCQDb3M82trENgG1sYxsA29xPEgCSkIQkJCEJSUhCEpKQhCQigohAEhGBJCICSUhCEpKQxP0kAWAbANsA2MY2trHNc7PNA9lGEveTxANJ4oWRxL+GJP6z2ea5SeKBMhPb2AbANrYBsI1tMpPMxDaZSWaSmWQmmUlrjdYamUlrjdYarTVaa7TWaK3RWqO1RmuN1hoRQWuNiKC1RmYiicwkM8lMMhNJSMI2kshMJJGZ2MY2kshMbGMb29jGNraxzQNJwjYPJAnb3E8StnkgSdjGNraxjW1sk5lEBLbZ29vjb//2b8lMXvEVX5E/+7M/e+2+73/r7Nmz371arT6Hq6666qqrrrrq/xsqV1111VVXXXXVfynb37NcLpH02QCSAGitASCJ5ycisA2Abe5nm39JZhIRPD+ZiSQigsxEEgCSeCDb2OZ+timl8EC2sQ2AbQBsA2CbF0QSkgCQhCQkASAJANvczza2AbCNbWwDYJvnJglJSEISknggSUjifpKQhCQkIYmIQBKSkIQkACRxP9vczza2sY1tXhDbPDdJ3E8Sz00SLypJ/E9mm8wEwDYAtrENQGZim8zENplJZpKZZCaZSSmF1hqtNSKCiCAiiAgigoggIogIIoKIICKICFprRAStNSKC1hqZSWaSmWQmmUlmIglJ2EYSmYltbANgG9vYxja2yUwkYRvb2MY2DyQJ2/x7RAS2sQ2AbQCe8YxnUGtlsVg8+MYbb/zss2fPam9v77O56qqrrrrqqqv+P6EcP36cq6666qqrrrrqv46k3cx8Rma+dCnlwZKQhCQkASAJSQBIQhL3kwSAJO4niReFJP4lkgCQxP1s84LY5rnZxjb3s81zkwSAJCQBIAlJSEISkpBERBARRAQRQURQSiEiiAgiglIKEUEphYggIpBERBARSEISkpCEJCQhCQBJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpBERBARRAQRQUQgCUlEBJKQhCQiAklIIiKQhCQkERFEBJKQhCQkIQlJSCIiiAgigohAEpKQhCQkIQlJSEISkogIIoKIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiEASkpCEJCQhCUlIIiKICCQhCUlIIiKQREQgCUlIQhIRgSQkERFIQhKSkIQkJCGJiEASkpCEJCQhCUkASCIikIQkJCEJSUgCQBKSkIQkJCEJAElIAkASkgCQhCTuJ4kXRhLPTRLPTRIvKklIAmC9XiMJSUhisVi89sbGxnvv7+//DLDLVVddddVVV131/wHl+PHjXHXVVVddddVV/7Uk7bbWfkfSW0fEcUk8N0kASAJAEpIAkASAJO4niReVJGwjiedHEi+IbZ4f2zw329zPNgC2eW6SAJCEJCQhiYhAEpKICCKCiCAiiAgiglIKEUEphYggIiilEBGUUogIIoKIICKQhCQkIQlJSEISAJIAkMT9JAEgiRdGErZ5UUjifpKQhCQAJCGJ+0lCEs+PJCQhCUn8SyQhCUlIQhKS+I8kCUlIQhIAkpCEJO4nCdsASAJAEgCSeH4kASCJ5yYJAEm8MJKQxP0kIQkASQBIAkASkpCEJCQhiftJAkASAJKQBIAkJCEJSUhCEpKQhCSeH0k8N0k8N0lIQhKSkIQkJAEgCUncTxIRQSnl+MbGxlsfHBz8jO1drrrqqquuuuqq/+sox48f56qrrrrqqquu+q8naXeapp8B3joijktCEpKQBIAkJPFAkgCQhCQeSBL/VpJ4bpJ4INs8P7YBsM1zsw2AbQBs8y+RxP0kIQlJRAQRQUQQEUQEEUFEEBGUUogISilEBBFBKYWIICKICCQREUgiIpCEJCQhiQeSBIBtAGzz3GwDYBsA29jGNrZ5QWzzgtjmgWxjm+fHNraxjW3+JbaxjW1sYxvb2MY2tvnXso1tbGMb29jGNrYBsI1tbGMb29jGNraxzf1sA2Ab29jGNvezDYBtbGOb+9nmuUniBZHEA0kCQBKSAJCEJCQhCUlIQhIAkgCQxP0kIQlJ/GtI4vmRxHOTxAsiCUkASAJAEpKQRK31+GKxeOtpmo6P4/g7XHXVVVddddVV/5dRueqqq6666qqr/ttExK3DMLxO13VPb60hCUlI4oWJCGyTmUQE97PNv1VmIglJRAQAmYkkIoLMRBL3s41tbGMb25RSsI1tbGMb29gmM7FNZmKbzCQzqbVim8zENraxTSmF+0lCEg8kCUlI4vmxDYBtAGwDYJsXVWYiiYggM5GEbSQhCUkASOL5sc2/xDbPTRIPJIkXRBL/VpL4z2CbF0YSALaxjW3uZxsA2wDYxja2sY1tbJOZ2MY2DySJ+0lCEpKQhCQiAtvY5n62uZ8kACRxP0lIQhLPTRKZCYBt7mcb22QmEYFtbGObzOTfSxK2+ZdEBLYBsM39JLFYLB583XXXffbZs2e1v7//2Vx11VVXXXXVVf9XUbnqqquuuuqqq/5bSbr18PDwIVtbW0+fpglJ3E8SknhBIoLMJCIAyEwign+vzEQSkogIMhNJSALANhEBgG1sYxvblFKwjW0yk8wkM8lMbJOZ2CYzsY1tMpNaK7bJTGxjG9uUUnigiEASAJKQhCQAJPH82AbANgC2uZ9tXhBJANjGNpKQhCQAJAEgiefHNv8S2zyQJJ6bJP4lkvjfyDa2AbDN/WwDYBsA29jGNpmJbWxjm8wkM8lMMhPb2MY295OEJCQhiYjANhGBbQBsA2Cb+0niuUlCEpLITO5nm/vZJjOJCGyTmdwvIrCNbWxjG9vYxjb/GSKCzCQieG7XXHPNZy0Wi9e67777Xoerrrrqqquuuur/IipXXXXVVVddddV/O0m3HhwcPGQ+nz+dZ5LEA0ni+YkIMpOIACAziQj+o2QmkpBERJCZSALANhEBgG1sY5tSCrYppWAb29jGNplJZlJrJTPJTGqtZCaZSa0V22QmtrGNbWxTSsE2ABGBbQAkIQlJSAJAEs/NNvezDYBtAGzzorDN/WwDIIkHss39bPNAkgCwzQsjiRdEEv+RJPGvYZv/KLaxDYBt7mcbANsA2MY2trGNbWyTmdgmM7GNbWzz3GxzP0kASEISkpBERABgmweyzb9EEpnJ/WwDYJvMJCKwjW0yk38v20jiBZGEbWyTmQBEBLYBkIQkJPHQhz6Uc+fOvXat9en33HPP62TmrVx11VVXXXXVVf+XUI4fP85VV1111VVXXfXfT9LuNE3fI+mjIwJJSEIS95PE/SRxP0kASOJ+kvjPIokHss3zYxvbANjGNraxjW0AbGMb29jGNraxjW0AbGOb+9nmfpKQBIAkJCEJSUQEkpBERCCJiCAiiAgiglIKEUEphYggIogIJBERRASSkIQkJCEJSUhCEgC2eSDbvDC2+Z/CNraxjW1sYxvb2MY2trGNbf61bGOb52Yb2wDY5n62AbANgG1sYxvb2MY2trFNZmKbzMQ2tslMMhPb2MY2trGNbQBsY5sXxDYvKkk8kCQAJAEgiftJ4l9LEs9NEi+IJO4niQeSBIAkAHZ3d1ksFrzkS77k8YsXL7714eHhz9je5aqrrrrqqquu+r+Ccvz4ca666qqrrrrqqv8ZJO1O0/Q9EfHREYEkACQhCQBJAEhCEpIAkASAJB5IEv9atnl+JPHC2OaBbANgG9sA2MY2trENgG1sYxvbZCa2sY1tbANgm+dmmweSBIAkJCEJSUhCEhFBRBARRAQRQUQQEUQEEUFEEBFEBJKICCICSUQEEUFEIAlJSEISkgCQhCQAJCEJSUhCEpIAkIQkJCEJSUgiIpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSOL5kYQkHkgSDySJfw3b2MY2ALYBsI1tAGxjG9vYBsA2trHNfwZJ3E8SAJIAkIQkACQhiX8NSTw3STw/knggSUjifpKQxP1WqxV33303r/iKr3h8d3f3rY+Ojv4mM2/lqquuuuqqq676v4By/Phxrrrqqquuuuqq/zkk7Y7j+D0R8dGSiAgkIYn7SQJAEgCSAJAEgCQeSBIvCtv8a0jifrYBsM39bGMb29gGwDb3s41tbGMb22QmtrFNZmIb22QmtrGNbWxjG9vYBsA2z00SkpCEJCQhiYhAEpKQhCQigoggIogIIoKIICKICCKCiCAikEREIImIQBIRQUQgiYhAEpKQhCQkIQlJRAQRQUQQEUQEEUFEIImIICKICCKCiCAiiAgkIQlJRAQRQUQQEUQEEUFEEBFEBBFBRBARRAQRQUQQEUQEEUFEEBFEBBFBRBARRAQRQUQQEUQEEUFEIAlJSEISkogIIoKIICKQhCQkIYmIICKQhCQkIQlJSEISkpCEJF4UtgGwjW0AbGMb29gGwDa2sY1tbGMb29jGNraxjW1eFJJ4bpK4nyQAJHE/SdxPEpJ4UUji+ZHEc5PE8yOJB5LE/SSxWq14rdd6reOr1ep1zp8//9eZeStXXXXVVVddddX/dpTjx49z1VVXXXXVVVf9zyJpdxzH74mIj44IJAEgiftJAkASDyQJAEk8N0m8ILb5j2QbANvczza2AbCNbWxjG9vYxja2yUwyE9vYJjOxjW0yE9vYxjYAtgGwDYBtnpskACQhCUlIIiKQhCQigoggIpBERBARRAQRQUQgiYggIogIIoKIICKQREQgiYggIogIIoKIICKICCKCiCAiiAgigoggIogIIoJSChFBRBARRAQRQUQQEUQEEUFEEBFEBBFBKYWIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiCAikEREEBFEBBFBRBARRAQRQUQQEUQEEYEkIoKIICKICCKCiCAiiAhKKUQEEYEkIgJJRASSiAgkIQlJSAJAEpKQBIAkHkgSz49tbGMb29jGNraxzfNjmxdGEg8kiftJ4n6SAJDE/STxQJKQxAsjiRdEEs9NEs+PJCRxP0ncb7Vasbu7yyMe8YjjL//yL//aT3jCE45P0/Q7XHXVVVddddVV/5tRjh8/zlVXXXXVVVdd9T+PpN1xHL+nlPLRkpCEJB5IEgCSkMT9JHE/STw3SdzPNi8q27wgkrifbQBsA2CbB7KNbWxjG9vYJjMBsI1tbJOZ2CYzsY1tMhPbZCaZiW0yE9vYJjOxjW0AbHM/2zw/kpAEgCQkIQlJSEISkpBERBARRASSiAgkERFEBJKICCQREUQEEUFEEBFEBBGBJCKCiCAiiAhKKUQEEUFEEBFEBKUUIoKIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiCAiiAgigoggIogIIoKIQBIRQUQQEUQEEUFEIImIICKICEopRAQRgSQkERFIIiKQhCQiAklIQhKSkIQkJAEgiQeSxAtimxfGNs+PbZ4fSTyQJJ4fSQBIAkAS95PEc5PECyOJF0QSz48knh9J3E8S91utVtx99908/OEPP/6YxzzmwU94whOOT9P0O1x11VVXXXXVVf9bUY4fP85VV1111VVXXfU/k6TdYRi+R9JbR8RxSUjigSTx/EjifpL497DNv5ZtAGwDYBsA29jGNraxjW1sYxvb2MY2mYltMpPMxDaZSWaSmWQmtslMbJOZ2MY2mYltbGMb29jGNrYBsM0LIwkASUhCEpKQhCQkIQlJRASSkEREIImIQBKSkIQkJCEJSUQEEUFEEBFEBJKICCKCiCAiiAgkIYmIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiCAiiAgigoggIogIIoKIICKICCKCiCAiiAgigoggIpCEJCQREUQEEUFEEBFEBJKICCKCiCAikIQkIgJJSAIgIpBERCAJSUQEkgCQhCQkASAJAElIQhL/Frb5l9jmhZHEA0kCQBIAkgCQxH8ESbwgknh+JPH8SOKBJHG/pz/96TzsYQ87/v7v//6v/Vd/9Vfs7e39DlddddVVV1111f9GlOPHj3PVVVddddVVV/3PJWl3HMefiYi3lnRcEpIAkIRtJPGCSAJAEv8WtnlBbPOCSOJ+tgGwDYBtAGxjG9sA2MY2mYltbJOZZCaZiW0yk8wkM7FNZpKZZCaZSWaSmWQmmUlmkpnYJjPJTGxjG9vYxjYAtrGNbZ4fSbwwkpAEgCQkIQlJSEISkpCEJCQBIAlJSCIikIQkJCGJiEASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJAEgCUlIIiKQhCTuJwkASdxPEveThCQkASAJSQBI4l9imweyzX8nSdxPEv9Wknh+JPH8SOKFkQSAJO73tKc9jdlsxru+67u+9mKx0D/8wz/8NlddddVVV1111f82lOPHj3PVVVddddVVV/3PJml3HMefmc1mbw0cl4QkACTxgkgCQBL3k8SLyjbPj23+tWwDYBvbANjmfraxjW1sY5vMxDaZiW0yk8wkM8lMMpPMxDaZSWbSWqO1RmaSmWQmmUlmkplkJplJZmKbzMQ2mYltbGMb29jGNraxjW0AbGObF8Y2/1aSeEEk8T+BbV4Y27wwkgCwjW0AbPOisg2Abf41bPPcbPPCSOJFJYn/apJ4bpJ4QSTxgkgCQBIAknja057GbDbjLd/yLV/7/PnzPP3pT/8drrrqqquuuuqq/00ox48f56qrrrrqqquu+p9P0u5qtfqZaZp2a62vLQlJSOJ+tpHEA0kCQBIPJIkXxjbPj22eH9v8S2xzP9vYBsA2trGNbTIT29jGNrbJTGyTmWQmmUlmkplkJplJZpKZZCatNVprtNZordFao7VGZpKZtNbITFprtNbITDKTzCQzsU1mkplkJraxTWZiG9tkJpmJbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2AbANraxjW1sYxvbANjGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW0yE9vYxja2sY1tbGObzMQ2trGNbWxjG9vYxjaZiW1sYxvb2MY2trENgG1sYxvb2MY2tgGwDYBtbGObF8Q2L4ht7ieJfwvb/HeQxHOTxAsiiRdEEgCSAJDE0572NDKTd37nd35tgH/4h3/4Ha666qqrrrrqqv8tKMePH+eqq6666qqrrvrfQdJua+0Z0zTt1lpfWxIAkgCQhG0k8YJI4rlJ4oFs869hm+fHNs/NNg9kGwDb2MY2ALaxjW1sY5vMxDaZSWaSmWQmrTUyk8wkM8lMWmtkJplJZtJao7VGa43WGq01WmtkJq01Wmu01mit0VqjtUZm0lojM2mt0VojM8lMMpPMJDPJTDKTzCQzyUwyk8wkM7FNZpKZZCaZSWaSmWQmmUlmkplkJpmJbTKTzCQzyUwyk8wkM8lMbJOZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWuNzCQzyUwyk8wkM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzMQ2mYltMpPMxDaZSWaSmdjGNrbJTGxjG9vYxja2sQ2AbWzzn00S/50k8dwk8a8lief29Kc/nfPnz/NO7/ROr/0P//APv3P27Nlbueqqq6666qqr/jegctVVV1111VVX/a8i6dbW2ufs7++zvb392TyXiCAzsc39JAEQEWQmkogI7peZSEISkpDE82MbSTyQbSRxP9tIQhKSeG62sU1EIAlJ2EYSkrBNZhIRZCYRQUQQEUiitUZEUEqhtUZEUEohIogISimUUogISimUUiilEBGUUiilEBGUUiilEBFEBKUUIoKIoJRCRCCJiCAikEREIAlJSAJAEpKQxAsiiX8tSbwwkvjvYJsXhW3+JbaxjW0eyDb3sw2AbWxjGwDb2MY2trFNZmIb29gmM7FNZmIb29jmXyIJSUhCEpKQhCQkIQkASUgCQBKSsI0kJAEgCQBJAEgCQBL3k8T9bCOJfyvbSOKBbAMgiX8NSUQED/TXf/3XAHz4h3/4d33mZ37m+5w9e/a3ueqqq6666qqr/qejctVVV1111VVX/a/UWvuc3d1dTpw48dk8H5IAsE1EcD9JRASZSUTworKNJB7INpK4n20k8UC2kYQkJCEJgMxEEpKQhCQkYRtJ2EYSmUlEIImIICKICFprRAQRQSmFiCAiiAgiglIKEUEphYiglEJEUEohIiilEBGUUogIIoKIoJRCRBARRASSiAgigohAEpKQhCQkIQkASTyQJJ6bJP4tJPE/lW3+LWxjG9vczzYPZBsA2wDYBsA2tgGwjW1sYxvb2MY2tslMbGObzMQ2mYltbPNAkrDN/SQhCUlIQhIRQWYiCUkASEISkgCQBIAkACQBIAkASdxPEveTxPNjm+dHEs/NNgCSeCDbSOJFFRFkJhHBA/3VX/0VwIM/93M/97s+9EM/9HVs38pVV1111VVXXfU/GXrQgx7EVVddddVVV131v5ekB29tbf3WbDZ7cK2ViKCUQkQgiYggIogIIgJJRAQRgSQkERFIQhKSkIQkJCEJAElIQhKSkASAJCQhCQBJSEISAJKQhCQAJCEJSUhCEpKQhCQkIQlJSEISEYEkJBERSCIiiAgkERFEBBFBRBARRAQRQUQQEZRSiAgigoiglEJEEBFEBBFBKYWIICKICCICSUQEEUFEIAlJSEISkpCEJAAkcT9JPDdJ/FtI4n8q2/xb2MY2tnlBbPNAtgGwDYBtAGxjGwDb2MY2ALaxjW1sY5vMxDa2yUxsY5vMxDaZSWZim8wkM7FNZpKZ2CYzyUwyE9tkJpmJbTIT22QmmYltMhPbZCa2sU1mYhvbZCa2sY1tbJOZ2MY2trGNbWxjG9vYxjYAtrGNbWxjGwDb2MY2trENgG1sYxvb2MY2trFNZmKbzMQ2mUlm0lrjdV7ndRiG4Rnf/d3f/dq2b+Wqq6666qqrrvqfCj3oQQ/iqquuuuqqq676X+/B8/n8s7a2tt67lEIphYiglIIkIgJJlFKQREQQEUgiIpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSAJCEJCQBIAlJAEhCEpIAkIQkJCEJSQBIQhKSkEREIAlJSEISEYEkJBERSCIiiAgkERFEBBFBRCCJiCAiiAgiglIKEYEkIoKIICKICCKCiCAikEREEBFEBJKQhCQkIQlJSOJ+kgCQxANJ4l9LEv8RJPH82OY/km1eVLYBsM0LY5sHss1zsw2AbQBsA2AbANvYBsA2trGNbWxjG9vYxjaZiW1sk5lkJrbJTGyTmWQmtslMMhPbZCaZiW0yE9tkJrbJTGyTmdgmM7GNbTIT29jGNpmJbWxjG9vYxja2sY1tbGMb29jGNrYBsI1tbGMbANvYxja2sQ2AbWxjG9vYxjaZiW1sk5lkJplJZtJa43Vf93X5h3/4h1t///d//yFcddVVV1111VX/U1G56qqrrrrqqqv+L7h1tVp9Tmvt1p2dnc/mASICgIigtUZEcD9JAEgiInhR2UYSL4htJAFgG0nczzaSuJ9tJCEJSdhGEpKQhG0kIQlJSCIzkUREkJlIIiKQhCQigohAEhGBJCKCiEASEUFEEBFIIiKICCKCiEASEYEkIgJJRAQRgSQkIQlJSEISAJIAkASAJB5IEv9WkvifzDb/WrYBsM2/l22em20eyDYAtgGwDYBtbANgG9vYxjaZiW2eH0nYRhKSsI0kJAEgCQBJ2EYStpEEgCTuJ4n72UYS/x62AZDE/WwDIIkHss39JHE/20jifpKICO5nm9/4jd/gZV7mZR780Ic+9Lue9rSnvQ9XXXXVVVddddX/RFSuuuqqq6666qr/K24dx/FzLl68yIkTJz6b5yMiyEzuJwmAiCAzkYQkIoIXxDaSeCDbSOJfYhtJANhGEpKwjSQkIQnbSEISkpCEJCQhCUlIwjaSkERmIglJRASSkEREIAlJRASSiAgkERFIIiKQREQQEUhCEhGBJCICSUhCEpKQhCQkIQlJ3E8SAJJ4IEn8e0jifxrb/FvZBsA2kvi3ksSLyjYPZJv72QbANrYBsI1tbGMb29jm+ZGEbSRhG0nYRhKSAJAEgG0kAWAbSQDYRhLPzTb/Ekk8N9sASOJ+tgGQxHOzzf0k8UCSAJBERGAbgL/6q7/ioQ996Hvfe++9tx4eHn4OV1111VVXXXXV/zToQQ96EFddddVVV1111f8tkh68s7PzW7PZ7MGlFEopRAQRgSQiAklEBBFBRCAJSUQEkpCEJCQhCUlIQhKSkIQkJAEgCUlIAkASkgCQhCQAJAEgCUkASEISAJKQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkERFIQhKSiAgkIQlJRASSiAgkIQlJSCIikIQkJCEJAElIQhIAkrifJAAk8dwk8f+VbZ6bbQAk8S+RxPMjiecmiQeSxAtjm/vZBsA2ALaxjW1sYxvb2CYzsY1tMhPb2CYzsU1mYpvMxDaZiW1sk5nYxjaZiW1sY5vMxDa2sY1tbGMb29jGNraxjW1sYxvbANjGNraxDYBtbGMb29gGwDa2sY1tbGMb29gmM7GNbTKTzCQzaa3RWmO1Wt167733vs80Tb/NVVddddVVV131PwmVq6666qqrrrrq/xzbt166dOl15vP5e+3s7Hw2DxARZCYRQWZiG9tEBBFBZiKJiOBFYRtJ3M82kgCwjSQAbCOJB7KNJABsIwkA20hCEraRhCQAJCEJSQBIQhKSkIQkJCEJAElIQhKSiAgkIQlJSEISkpCEJCQhCUlIQhIRAYAkJCEJAElIAkAS95PEc5PEfzRJ/FexzX802zw3STw/knhukrifJB5IEgCSeCBJPJAknh/b3M82ALaxDYBtbHM/2zw/krCNJGwjCQDbSALANpIAsA2AJJ6bbZ6bJJ4f2wBI4n62AZDEA9kGQBIviCTuJwlJSCIiAJjNZg8+c+bMd91zzz2vY/tWrrrqqquuuuqq/ymoXHXVVVddddVV/1fdulqtPmeaJk6cOPHZtimlYJuIAEASEUFmcj9JRASZiSQkERE8N9tIQhL/XraRBIBtJAFgG0nYRhKSsI0kJAEgCUkASEISkpAEgCQkIQlJZCaSAJCEJCQhCUlIQhKSkASAJCQhCUkASEISAJK4nyTuJ4nnRxL/n9nmXyKJ5yaJ5yYJAEncTxL3kwSAJAAkcT9JAEjiuUnigWxzP9sA2MY2ALZ5UUjCNgCSsA2AJGwDIIn72eaBJPHcbPPcJHE/29xPEgC2uZ8k7mebF0QS95NERPBApRTm8/mDr7nmmt++9957H8xVV1111VVXXfU/BXrQgx7EVVddddVVV131f5ukBx8/fvy3+r5/cCmFUgoRQUQgiYhAEpKICCICSUQEkpCEJCQhCUlIQhKSkIQkACQhCQBJSEISAJIAkIQkACQBIAkASUgCQBIAkgCQhCQAJAEgCUkASEISAJKQBIAkJCEJAElIQhIAkpCEJCQBIAlJAEhCEpIAkASAJAAk8UCSeCBJ/GeSxH8H2/xnksRzk8QDSeJ+kgCQBIAkACQBIAkASQBIAkASAJJ4IEm8ILYBsA2AbQBsYxvb2MY2tslMbGMb22QmtrFNZmIb29jGNpmJbWxjG9vYxja2sY1tbGMb29jGNraxjW1sA2Ab29jGNgC2sY1tbANgG9vYxja2sY1tbGMb22QmtslMMpPMJDNprTFNExcuXPjuvb299+Gqq6666qqrrvqfgMpVV1111VVXXfV/nu1bL168+Dqz2ey9jh079tk8gCQAJBERZCa2iQgAJCEJSUQEz49tJCGJ58c2kngg20ji+bGNJGwjiQeyjSRsIwnbSEIStpEEgCQAJCEJAElIAkASAJKQhCQAJAEgCUkASEIS95MEgCQAJPHcJPH8SOKqF50knpskHkgSAJK4nyQAJAEgCQBJSAJAEgCSkMT9JAEgiftJ4vmxzf1sYxsA29jGNrZ5bpKwDYAkAGxzP0nczzb/WpK4n23uJwkA29xPEgC2uZ8kXhDbSAJAEhHB/WxTSuH48ePvPY7jrcvl8nO46qqrrrrqqqv+u6EHPehBXHXVVVddddVV/39ExIOPHz/+W7PZ7MGlFCKCiCAikIQkIgJJSCIikEREIAlJSEISkpCEJCQhCUkASEISkgCQhCQAJAEgCUkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBKSAJAEgCQAJAEgCQBJAEhCEgCSAJAEgCQAJHE/SQBI4oEk8dwk8d9FEv8T2eb5kcQLIonnJon7SeJ+kgCQBIAkACQBIAlJAEgCQBKSAJAEgCQAJHE/SbwgtgGwDYBtbANgG9vYxja2yUxsYxvb2MY2mYltbGMb29jGNraxjW1sYxvb2MY2trGNbWxjGwDb2MY2tgGwjW1sYxsA29jGNraxjW1sYxvb2MY2tslMbJOZZCaZSWuNaZpYrVa3nj179n2mafptrrrqqquuuuqq/05Urrrqqquuuuqq/1cy89aLFy++znw+f69jx459dimF+0kiIshMJCEJAEkASEISEcHzYxtJSOJ+tpEEgG0k8UC2kcS/lW0kYRtJ2EYSAJIAkASAJAAkASAJAEkASOJ+kgCQBIAkHkgS95PE8yOJ/yyS+P9AEs+PJO4niftJ4n6SAJAEgCQAJCEJAEkASEISAJIAkIQkACRxP0n8S2wDYBvbANjGNraxzQsiifvZ5t9CEvezzf0kAWCb+0kCwDb3k8SLQhIAkogIAGxTSmE2mz341KlT33Xvvfc+hKuuuuqqq6666r8T5fjx41x11VVXXXXVVf/v7E7T9DvL5fJ3uq57bUnHeS6SeCDb/GvZ5j+abQBs84LYBsA2ALYBsI1tAGwDYBsA29gGwDa2AbANgG1sYxsA29gGwDa2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbJOZZCaZSWaSmWQmtrGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGObzMQ2tslMbGMb29gmM7FNZmKbzMQ2tslMbJOZ2MY2mYltMhPb2CYzsY1tbGMb2wDYxja2sY1tAGwDYBsA29jm38M2kvjXksRzk8QDSeL5kcTzY5t/SUQcz8wHD8PwM1x11VVXXXXVVf9dKMePH+eqq6666qqrrvr/yfaty+XyZ6Zp2u37/rV5PiTxL5HE/Wzz/NjmfrZ5brYBsA2AbR7INi+IbQBs89xsA2Cb+9kGwDa2AbCNbQBsYxsA29gGwDa2sQ2AbWxjG9sA2MY2trGNbWxjG9vYxja2AbCNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2tgGwjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxDYBtbGMb29gGwDa2sQ2AbWxjG9sA2MY2trGNbTIT29jGNrbJTGxjG9vYJjOxTWZiG9vYxja2sY1tAGxjG9vczzYAtgGwjW3+s0ni+ZHEA0niuUniP8psNnvpg4OD37F9K1ddddVVV1111X8H9KAHPYirrrrqqquuuuqqiHjw8ePHv2uxWLx2RFBKQRIRgSQkERFIQhKSkEREIAlJSEISkpCEJCQBIAlJAEhCEgCSkASAJAAkASAJAEkASAJAEgCSuJ8kACRxP0ncTxIAkrifJO4niQeSxP0k8dwk8fxI4t9LEv9TSeK/miReEEk8N0ncTxIAkrifJAAkASAJAEkASEISAJIAkIQkACQBIAkASdxPEi+IbQBsA2AbANvYxja2sY1tbGMb29jGNraxjW1sYxvb2AbANraxjW1sYxvbANjGNraxDYBtbGMbANvYxja2AbCNbWxjG9vYxjaZiW1sk5lkJplJZtJao7XG0dHRM+69994Hc9VVV1111VVX/XegHD9+nKuuuuqqq6666irbu8vl8nvGcWQ+n782z0USz49tXlS2+e9mm/vZ5n62sc39bHM/29jGNvezjW1s80C2sY1tbGMb29jGNrb5l9jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGObfy/b2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNrZ5UdjGNraxzQPZxja2uZ9tbANgG9vYBsA2ALaxDYBtAGwDYBvbANgGwDa2sY1tAGwDYBsA29gGwDa2sY1tbPNAtgGwjW1eVJL415DE8yOJB5LEc5PEv5UkbHM/Sccz88HDMPwMV1111VVXXXXVfzXK8ePHueqqq6666qqrrrrfNE2/c3h4+D3TNO32ff/aPBdJvDCSeG62eW62uZ9t/qPY5l9im/vZ5oFscz/b2OaBbGObB7KNbWxjG9u8MLaxjW1sYxvb2MY2trGNbWzzH8k2trGNbWxjG9vY5n8D2zw/trHN/Wxjm/vZBsA2tgGwjW0AbANgGwDbANgGwDb3sw2AbQBsA2AbANvYxjbPzTbPzTbPTRL/VpJ4fiTx3CTxQJJ4IEm8KGzzwvR9/9LL5fIZmfnXXHXVVVddddVV/5Uox48f56qrrrrqqquuuuqBbO+O4/g7h4eH31NKeela64N5EdnmhbHNC2Kbfy9J/FewzQtjm/8otrHNfzZJ/GeQxH8USfxr2eZ+trENgG1sA2Ab2wDYBsA2ALYBsA2AbQBscz/bANgGwDa2AbCNbWxjm+dmGwDb/HtI4gWRxHOTxANJ4oEk8YJI4oFs86Kotb704eHh13DVVVddddVVV/1Xohw/fpyrrrrqqquuuuqq58f27nK5/J7VavWM2Wz20pKO8wCS+PewzfNjmxeFbf4/kMR/JEn8R5LEfxRJ/FtJ4t/CNvezDYBtAGxjGwDbANjmfrYBsA2AbQBsYxsA29jmhbENgG1eGEn8a0jiuUniuUnigSTxQJL497ANQEQcz8wHD8PwM1x11VVXXXXVVf9VKMePH+eqq6666qqrrrrqhWmt/fXh4eHPjOO4W2t9cEQc57lI4n62+dewzfNjm/8MkvjPJol/DUn8R5LEv5ck/j0k8R9JEv9akvi3ss39bANgGwDbANgGwDYAtgGwDYBt7mebF8Y2D2Sb+0niXyKJf4kkHkgSDySJB5LE8yOJ52abf4ltIuL4xsbG3xweHt7KVVddddVVV131X4Fy/Phxrrrqqquuuuqqq14Eu+M4/s7R0dHPTNO0u1gsXts2Lwrb3E8S97PNA9nm+bENgG0AbPMfRRIPJIkHksRzk8QLIokXhST+PSTx7yGJfwtJ/FtI4j+TJF4UkvjXsM1zsw2AbQBsA2AbANsA2AbANrYBsI1tXhDbvKgk8aKQxPMjiQeSxANJ4rlJ4kVhmxckIo6/9Eu/9IOf/OQnfw9XXXXVVVddddV/Bcrx48e56qqrrrrqqquuelHZ3h2G4Xf29/e/Z5qm3dls9tqSeCBJ3M82D2Sb52abB7LN/Wzz30USz00Sz48kXhBJvCgk8R9BEv9akvjXkMS/hiT+q0niXyKJF5VtnpttAGwDYBsA2wDYxjYAtrmfbV4Y27wwknggSfxLJPGCSOKBJPFAknhuknhutnlhbAOwXq8f/Nqv/dr6h3/4h9/mqquuuuqqq676z0Y5fvw4V1111VVXXXXVVf9atneHYfid/f3975mmaXc2m702/062eSDb3M82LwrbPDdJ3E8S95PEA0nihZHEc5PE8yOJf4kk/rUk8a8liReVJF5UknhRSeJ/Akm8IJJ4bpK4nyTuZ5vnZhsA2wDY5rnZ5n62eWFscz/b3E8SDySJ50cSL4gknh9JPDdJPJAkXhS2eUFWqxXAQ3Z2dv767Nmzt3LVVVddddVVV/1nohw/fpyrrrrqqquuuuqqfyvbu8Mw/M7+/v73tNZ2SykPjojjvAhs89xs89xscz/bANgGwDYAtvn3kMQDSeKBJPFAknhuknhBJPHCSOLfQhIvKkm8qCTxL5HEi0ISz00S/90k8YJI4oWRxIvCNgC2+beyzQsiiftJ4gWRxPMjiecmiecmiRdGEgC2+Vc4/gZv8Aav/cd//Mdfw1VXXXXVVVdd9Z+Jcvz4ca666qqrrrrqqqv+vWzvrtfr3zk6OvqZ5XL5N33fv3REHOeZJPHC2OaBbPNAtrmfbf41bPOvIYn7SeK5SeKBJPHcJPEvkcS/RBL/GpJ4UUjiXyKJf4kkXhhJPDdJAEjifxJJPD+SeCBJ/HvY5n62+beSxP0k8dwk8fxI4rlJ4rlJ4rlJ4l/DNs+PbZbLJUdHR8ff4i3e4sF/+qd/+jNcddVVV1111VX/WSjHjx/nqquuuuqqq6666j+K7d1pmv56f3//Z1ar1d9ExPGu6x5smxeVbQBs80C2eSDbANjmv4IkHkgSz00Sz48kXhBJ/GtI4l8iiReFJF4YSbwwknhhJPHcJPGfyTbPTRL/GpJ4bpJ4bpK4nyT+tSTxQJJ4QWzzopDEA0ni+ZHEc5PEA0niuUniRSUJAEk8N9tcuHCBl3qpl3rpm2++mX/4h3/4Ha666qqrrrrqqv8MlOPHj3PVVVddddVVV131n2B3mqa/Pjg4+J69vb3vkXS87/uXts0LY5vnZpv72eaBbHM/2wDYBsA2/1qSuJ8kXhBJPJAknpskXhBJPDdJ/GtJ4l8iiX+JJF4YSbwgknhBJPHcJPEfxTb/HpL4l0jiuUnigSRxP0ncTxIvKkm8KGzzQJK4nyTuJ4nnJonnJonnJokHksRzk8R/hNtvv513fMd3fPCtt976N2fPnr2Vq6666qqrrrrqPxrl+PHjXHXVVVddddVVV/1nsr17dHT0M3t7e98zjuMuQK31wfw72OZ+trmfbQBsA2AbANsA2ObfQhL3k8QDSeKBJPH8SOL5kcSLQhL/Ekm8MJJ4YSTxgkjiBZHECyKJB5LEv5Vt/jNJ4gWRxHOTxANJ4n6SuJ8k7ieJF4UknpttXhBJ3E8SDySJB5LEc5PEA0nigSTx3CTxryGJ57ZcLjk4ODj+hm/4hg/+rd/6re/hqquuuuqqq676j0Y5fvw4V1111VVXXXXVVf8VbO+u1+vf2d/f/569vb3vAY73ff/SPJMkAGzzorINgG3uZ5v/KpJ4IEk8kCReEEk8kCT+tSTxwkjihZHECyKJF0QSL4gknpsk7icJANv8S2zzwtjm30oS/xJJPD+SeCBJPJAk7ieJ+0nifpK4nyTuJ4kXhW2eH0ncTxIPJIkHksRzk8QDSeKBJPHcJPEvkcQLslwuea3Xei1+4Rd+4Wu46qqrrrrqqqv+o1GOHz/OVVddddVVV1111X+1zNw9Ojr6mUuXLn3ParX6m4g4Xmt9sG1eENv8S2wDYBsA29zPNgC2AbDNc7PNv5UkHkgSL4gkHkgSLypJvDCSeGEk8YJI4gWRxPMjiRdEEg8kiQeyzYvKNi8q29xPEv8aknh+JPHcJPFAknggSdxPEveTxP0kcT9JPJAk/q0kcT9JPJAkHkgSz00S95PEc5PEc5PEA9nmuUniuR0dHXH99dcfn81mz7j11lv/mquuuuqqq6666j8S5fjx41x11VVXXXXVVVf9d7G9OwzDX+/v73/P7u7u90zTtAvQdd2DeQFs869hm/vZBsA2ALYBsM1zs82/lSSeH0k8N0m8KCTxwkjihZHECyKJF0QSz48kXhBJPDdJ3E8Stnl+bPOC2OY/miReEEk8P5J4bpK4nyQeSBL3k8T9JHE/SdxPEv8WkgCQxP0kcT9JPJAkHkgSDySJB5LEA0niX0MSL8jtt9/Om73Zm534rd/6re/mqquuuuqqq676j0Q5fvw4V1111VVXXXXVVf8T2N5drVa/s7e39z2XLl36nnEcdwG6rnswz4dtXhSSALANgG0AbANgGwDbANjmudnmv4IkbPNAkviXSOKFkcQLIokXRBL/WpJ4bpK4nyQAbPP82Ob5sc1/JEm8IJJ4fiTx3CTxQJK4nyQeSBL3k8T9JHE/STyQJP6tJHE/SdxPEg8kiQeSxANJ4n6SeG6S+NeSxAMtl0t2dnZ09913//Th4eEuV1111VVXXXXVfxTK8ePHueqqq6666qqrrvqfJjN3V6vV7+zt7X3P7u7u90zTtGubrusezAPY5kUliRfENgC2AbANgG3uZxsA29zPNvezzf1s829lm38t2/xb2eYFsc2/lm2em23uZxvb3M82trGNbZ4f2/xXkcRzk8Rzk8QDSeKBJHE/SdxPEveTxP0kcT9JPDdJ/FtJ4n6SuJ8kHkgSDySJ+0nigSTxQJJ4UUni+blw4cLxl3/5l9/9h3/4h9/hqquuuuqqq676j0I5fvw4V1111VVXXXXVVf+TZebucrn8nb29ve/Z3d39nsPDw79pre3OZrOX5vmwzQsjiecmiRfENvezDYBt7meb+9nmfrZ5braxzQPZ5n62eW62sY1tXhjbvCC2sc0LYhvbPD+2sc1zs41tbPPcbGMb29zPNs/NNi+IbWxjm+dmG9vYxja2sY1tbGMb2/xrSeK5SeKBJPFAknggSTyQJO4niftJ4n6SuJ8k7ieJ50cSALZ5QSQBIIn7SeJ+krifJB5IEveTxANJ4oEk8UCSeEFs88Isl0uOHTvGk5/85O/hqquuuuqqq676j4Ie9KAHcdVVV1111VVXXfW/Va31wZubm699/Pjx99ra2nptSUgCQBKSAJCEJAAkASCJ+0kCQBIAkrifJO4niftJ4n6SuJ8kHkgSz48kHkgSLypJvDCSeGEk8cJI4gWRxAsjiecmiRfENi+Mbf69JPH8SOKBJPHcJHE/STyQJB5IEveTxP0kcT9JPJAkACRxP0k8kCT+NWwDYBsA2wDYBsA2tgGwjW1sA2Ab2wDYxja2AbCNbQBsYxvbANjGNraxjW0AbGMb22QmtrFNZmKbzCQzaa0xTRNbW1uM4/g6//AP//DbXHXVVVddddVV/xEox48f56qrrrrqqquuuup/q8zcXa/Xf33p0qXvuXjx4vfs7u7+zDAMtwJ0XfdgANs8kG0AbPOvIYn7SeJ+krifJO4niedHEs9NEgCSsM3zI4l/iSReGEm8MJJ4YSTxwkjiX8M2L4xtHsg2trGNbWxjG9vYxja2eW62sc1zs80D2eaBJPGiksT9JHE/SdxPEveTxP0kcT9J3E8SDySJfw1JAEgCQBL3k8T9JPFAkrifJB5IEveTxANJ4t/KNgDL5ZLlcnnr3t7e73DVVVddddVVV/1HQA960IO46qqrrrrqqquu+r+q1vrgzc3N19ra2nrtvu8fvL29/doAkpAEgCQkASAJAEncTxIAkgCQxP0kcT9J3E8Sz48knpsk7ieJfytJvDCS+JdI4oWRxL9EEs+PJJ6bbV4Q2zw327wgtgGQxHOTxANJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJ4n7SeJ+krifJAAkcT9J3E8SDySJf4lt7mcbANsA2AbANrYBsI1tAGxjGwDb2MY2ALaxDYBtbANgG9vYxjYAtrGNbWxjG9vYxjaZiW0yk8wkM2mtMU0T8/n81r//+79/CFddddVVV1111X8E9KAHPYirrrrqqquuuuqq/y+6rntwrfXBs9nsQVtbW6/d9/2Dt7e3X1sSAJKQBIAkACQBIIn7SQJAEveTxP0k8dwk8fxIAkAS/1aS+JdI4l8iiX+JJP4lknh+JHE/2zw/tnl+bPOC2Ob5kcQDSeKBJHE/SdxPEveTxP0kcT9J3E8S95MEgCTuJ4n7SQJAEveTxP0kcT9J3E8SDySJF8Q2D2QbANsA2MY2ALYBsI1tbANgG9sA2MY2ALaxjW0AbGMbANvYxja2AbCNbWxjG9vYJjOxTWZim8yktUZrjXEcue22215nmqbf5qqrrrrqqquu+vdCD3rQg7jqqquuuuqqq676/67rugd3Xfeg2Wz2kK2trdeazWYPBpjNZg+ezWYPBpAEgCQAJAEgiftJ4n6SeG6SeG6SuJ8k7mebB5LEv0QSLwpJ/Esk8S+RxL9EEi+MbV4Q27wgtvnXkMT9JHE/SdxPEveTxP0kASCJ+0nifpIAkMT9JAEgiftJAkAS95MEgCTuJ4n7SeJ+knggSTw/tnkg2wDYBsA2ALYBsI1tAGxjGwDb2MY2ALaxDYBtbANgG9vYBsA2trGNbQBsYxvbZCa2sU1mYpvMJDNprTFNE+fPn//uCxcuvA9XXXXVVVddddW/F3rQgx7EVVddddVVV1111VUvWNd1Dwbouu7Bs9nswZK8vb392gCS6Pv+wZIAmM1mDwaYz+cP5rlI4rlJ4n6S+LeSxL9EEi8KSfxLJPGiksSLwjYvjG3+o0gCQBIAkrifJO4nCQBJ3E8SAJK4nyQAJHE/SQBIAkAS95MEgCQAJHE/SQBI4n6SuJ8knpskHsg2z802ALYBsA2AbWwDYBvbANjGNgC2sQ2AbWwDYBvb2AbANrYBsI1tbGMb29jGNraxjW0yE9tkJplJa43WGkdHR7fefvvtD+Gqq6666qqrrvr3Qg960IO46qqrrrrqqquuuuo/V9/3D+YKA+IBuq57kCQBDMNwK1cYEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiAeoO/7BwFaLBYPBpjP5w+azWYPBpjP5w/e2dl5bV4EknhRSeJ+kgCQBIAkACRxP0kASOJ+kgCQBIAkACRxP0kASAJAEgCSuJ8kACQBIIn7SQJAEveTxPMjifvZ5oFscz/bANjGNgC2AbCNbQBsYxsA29jGNgC2sQ2AbWwDYBvb2AbANraxjW1sYxvb2CYzsU1mkplkJq01pmni7rvv/uyDg4PP4aqrrrrqqquu+vdAD3rQg7jqqquuuuqqq6666qr/6fq+f3Df9w+az+cP2dnZea35fP7gnZ2d1+aZJPH8SOIFkcT9JAEgCQBJ3E8SAJIAkASAJAAkASAJAEncTxIAkgCQBIAkACQBIAkASQBI4n6SAJDE/STxr2UbANsA2AbANgC2sQ2AbWwDYBvbANjGNgC2sY1tAGxjGwDb2MY2tgGwjW1sYxvbZCa2yUxs01ojM5mmiaOjo1tvv/32h3DVVVddddVVV/17oAc96EFcddVVV1111VVXXXXV/0Z93z94a2vrtY4dO/bas9nswTs7O68tCQBJPDdJPDdJPJAkACQBIAlJAEgCQBIAkgCQBIAkACRxP0kASAJAEpK4nyQAJAEgCQBJAEgCQBL3kwSAJP41bHM/2wDYBsA2tgGwDYBtbANgG9vYBsA2tgGwjW0AbGMb2wDYxja2sY1tADIT29jGNpmJbTKT1hqtNcZx5BnPeMbrjOP421x11VVXXXXVVf9WlOPHj3PVVVddddVVV1111VX/G7XWdpfL5d/s7u7+zLlz577nvvvu+57Dw8O/iYjjfd8/GMA2tgGwjW0eyDYPZBsA2wDY5n62AbANgG0AbANgGwDbPJAkACTxQJIAkASAJAAkASAJAEkASOJ+krifJF4UkrifJAAkASCJ+0nifpK4nyTuJ4n7SeJ+knhukvi3Gobh1tVq9TtcddVVV1111VX/VuhBD3oQV1111VVXXXXVVVdd9X9N13UP3t7efu3Tp0+/187OzmtLAkAS95PE/STxQJIAkASAJCQBIAkASUgCQBIAkgCQBIAkJAEgCQBJAEgCQBKSAJAEgCQAJAEgCQBJ3E8S95PEi8o297MNgG1sA2AbANvYBsA2trENgG1sA2Ab2wDYxjYAtrGNbQBsYxvb2MY2tslMbGObzCQzaa3RWmO5XD7j1ltvfTBXXXXVVVddddW/FeX48eNcddVVV1111VVXXXXV/zWZubtcLv/6/Pnz33P27NnvGcdx99ixY6+dmQDYBsA2ALaxzf1sA2AbANvczzb3sw2AbV4Q27wgkviXSAJAEgCSuJ8kACTxopLE8yMJAEncTxL3k8T9JHE/STyQJO4niecmifvZ5oUppRzf3d39ncy8lauuuuqqq6666t+Ccvz4ca666qqrrrrqqquuuur/sszcPTg4+J2zZ89+z8HBwd9ExPG+7x8MYBsA2wDY5n62AbANgG0eyDbPzTb/XpIAkMRzkwSAJO4nCQBJvKgkASAJAEkASAJAEveTxP0kcT9JPJAk7ieJB5LEv8Q2D2Qb2wzDcOtqtfodrrrqqquuuuqqfwvK8ePHueqqq6666qqrrrrqqv8PMnN3tVr99YULF77n8PDwGaWU413XPdg2D2Sb+9kGwDYAtnkg29zPNvezzb+WJJ6bJAAkcT9JAEgCQBL3k8S/liQAJAEgiftJ4n6SuJ8k7ieJ+0nigSTxQJL416q1Pnh3d/druOqqq6666qqr/i0ox48f56qrrrrqqquuuuqqq/6/Wa/Xf33x4sXvOTo6esZisXjpUspxANvczzYAtgGwDYBtnptt/iNJ4rlJ4rlJAkAS95PEc5OEJB5IEveTBIAkACRxP0ncTxL3k8QDSeJ+krifJJ4fSdzPNs+PbSLi+O7u7u9k5q1cddVVV1111VX/WpTjx49z1VVXXXXVVVddddVV/1+t1+u/3t3d/ZlhGHY3Nzdfm+diGwDbANgGwDYviG3uZ5v72ebfQhL3kwSAJO4nCQBJ3E8SDyQJAEk8kCTuJwkASdxPEveTxP0kcT9J3E8S95PEA0niX2Kb52ab1Wp163q9/h2uuuqqq6666qp/Lcrx48e56qqrrrrqqquuuuqq/88yc/fo6Oh3Lly48D3TNO1ubGy8NoBtHsg2ALZ5brZ5brb515LE/SRxP0ncTxIAkpAEgCQAJHE/SdxPEveTxANJ4n6SuJ8kACRxP0ncTxL3k8QDSeJ+knhukvjXsM3e3t73cNVVV1111VVX/WtRjh8/zlVXXXXVVVddddVVV10Fmbl7dHT0O3t7e7+zWCxeu5RynOdim/vZ5vmxzXOzzb+XJO4niftJAkASAJIAkMQDSeJ+kpDE/STxQJIAkASAJO4niQeSxP0kcT9JPJAk/i1sY5uLFy9+DVddddVVV1111b8W5fjx41x11VVXXXXVVVddddVVzzZN062XLl36mWmadjc2Nl6b52Kb+9nmX2KbB7LNA0niBZHECyKJ+0kCQBIAkgCQxP0k8dwkcT9JAEgCQBIAkrifJO4niftJ4n6SeCBJPJAkXhjbPJBtSinHF4vFMy5duvTXXHXVVVddddVV/xqU48ePc9VVV1111VVXXXXVVVc9J9u7y+Xyd4ZhYHNz87VtA2Cb52abfw/bvKgk8UCSuJ8kACQBIAkASdxPEs9NEveTBIAkACQBIIn7SeJ+knggSdxPEg8kiQeSxHOzzfNjm+uvv/74M57xjO/hqquuuuqqq6761yC46qqrrrrqqquuuuqqq16gS5cufc5TnvKUBy+Xy1unaSIzyUwyk8wkM7GNbTIT29jGNraxjW1sY5vMxDa2sY1tbGMb29jGNraxjW0AbGMb2wDYxja2AbCNbQBs868lCUkASAJAEgCSAJCEJAAkIYn7SUISAJKQxP0kIQkASUhCEs+PJCQhCUlIQhIRwdHR0YO56qqrrrrqqqv+tSjHjx/nqquuuuqqq6666qqrrnrBMvPS/v7+z2xsbLx1RBznP5kk/iWSeCBJ3E8SkgCQBIAk7ieJF0QSAJIAkASAJO4niftJ4n6SeCBJPJAkHkgSL4htHsg2Gxsbx1/lVV6Ff/iHf/gdrrrqqquuuuqqFxXl+PHjXHXVVVddddVVV1111VUvnO3d/f39nwGOz2azl7bNv0QS/xLbvCgk8dwk8UCSkMT9JAEgCQBJAEjihZEEgCQAJAEgiftJ4n6SeCBJ3E8SDySJ50cSALZ5QZbLJTfffDN/8zd/8z1cddVVV1111VUvKsrx48e56qqrrrrqqquuuuqqq/5ltneXy+XfTNO0O5/PX5vnIgkA20jigSTx3Gzz7yWJ5yaJ+0kCQBKSAJDEv0QSAJIAkASAJO4niQeSxP0k8UCSeCBJ/Ets80C2efjDH/7g5XL5O/fdd9+tXHXVVVddddVVLwrK8ePHueqqq6666qqrrrrqqqteZLvr9foZ0zTtzufz15bE/Wzz3CTxH0USz48kJPFAkpAEgCQkASAJAEk8kCQk8UCSAJAEgCQAJHE/STyQJB5IEg8kiecmiedmGwDbPFBmcuONN976D//wD7/DVVddddVVV131oqAcP36cq6666qqrrrrqqquuuupfZXe9Xt8KHO/7/qUlcT/bvCCS+PeSxAsiiecmCUkASEISAJJ4IEkASEIS95OEJO4nCQBJPJAkHkgSDySJB5LEv4ZtADKThz3sYc/40z/905/mqquuuuqqq656UVC56qqrrrrqqquuuuqqq/7VJD3jwoULnxMRD97e3n7tWiu2iQgAJCEJAElEBJmJJCKCf4kkbPP8SMI2z48k7meb+0nCNgCSsI0kXhBJANgGQBIPZBtJ3M82krifbSRxP9sASALANgCSeEFsIwnbSEISe3t73HDDDa/NVVddddVVV131oqJy1VVXXXXVVVddddVVV/2bRMStFy9efJ+I+K2NjY0H11qxjW0iAkkASAIgIgDITCQREbwwkrDN8yMJ27wwkgCwDYAkAGwjiReFJGwDIAnbSALANpK4n20kcT/bAEjifrYBkASAbV4QSQBIQhKSiAguXrzIVVddddVVV131IqNy1VVXXXXVVVddddVVV/2b2b71/Pnzr9N13dNtU2vFNgCSAJDE/SQREQBkJpKICP4tJHE/27wgkgCwDYAkAGwjiX+JJABsIwnbSALANgCSALANgCTuZxsASdzPNgCSeGFsIwlJSEISz3jGM7jqqquuuuqqq15kBFddddVVV1111VVXXXXVv4vtW++55573GYaBcRxprdFaIzPJTDKTzCQzsU1mYhvb2CYzyUxsYxvb2MY2trGNbWxjG9vYxja2sc0D2cY2trGNbWzzQLZ5YSQhCUncTxIAkgCQhCQkASAJSUjifpKQhCTuJwlJSOJfIgkASUhCEsvl8kFcddVVV1111VUvKsrx48e56qqrrrrqqquuuuqqq/7d/jozX7vW+mBJvKgk8fxIwjaSkMS/hiQkIQlJSOK5SUISAJIAkASAJB5IEpIAkASAJAAk8UCSeH4k8fxI4l/DNrZ5xjOe8TlcddVVV1111VUvCipXXXXVVVddddVVV1111X+Iw8PD9+667laArut4QSKCzCQiyEwigudmG0nYBkAS97PNv5YkHsg2AJJ4UUnCNpKwjSRsI4n72QZAEg9km/tJ4n62uZ8kHsg2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cT9JSEISEYEkIgJJSEISEYEkIoKIICKICEoplFIopVBKoZRC13V0XUff9/R9z2w2Yzab0fc9fd/TdR21VkopRAQRAYBtMpPWGtM0MQwD4ziyWCxYLBYAfPzHf/zL/MM//MNvc9VVV1111VVX/VehHD9+nKuuuuqqq6666qqrrrrqv8fh4eHuP/zDP/zOP/zDP/zOi73Yi7326dOnjz/0oQ/lZV/2ZZnP5zz96U9HEveTBIAk7icJSUQEkpBERCAJSUQEkpBERBARRAQRQUQQEZRSKKVQa6XWStd1dF1H3/fMZjNmsxl939P3PV3XUWullEJEIAkA22QmrTWGYWAYBkoplFL4h3/4h9/++q//+ve59dZb/5qrrrrqqquuuuq/EuX48eNcddVVV1111VVXXXXVVf+9zp49e+uf/dmf/cytt976Nw9+8INf+vTp08cf+tCH8rIv+7LM53N2d3dZrVZIAkAS95OEJCICSUgiIpCEJCICSUQEkogIIoJSChFBKYWIoNZKKYWu6+i6jq7r6Pue2WzGbDaj73v6vqfrOmqtRAQRgSQkYZthGNjf3+fg4ADbAPzIj/zIZ3/913/9+5w9e/ZWrrrqqquuuuqq/2qU48ePc9VVV1111VVXXXXVVVf99zs8PNy99dZb//rP/uzPfubWW2/9m83NzeO33HLLgx/60Ifyqq/6qjzkIQ8B4J577kESDxQRRASSiAgkIYmIQBKSiAgiAklEBBFBKYWIoJRCKYVaK13XUWul73v6vmc2mzGbzej7nr7vqbVSa6WUgiQkMY4jFy9e5L777mMYBgB+67d+67u/9Eu/9G3+9E//9Ge46qqrrrrqqqv+u6AHPehBXHXVVVddddVVV1111VX/M11zzTUPfsd3fMfPep3XeZ335pl2d3e5ePEif/3Xf83Fixd5xjOeQURQSiEiKKUQEUQEpRQiglIKEUEphVIKpRRKKdRaqbXSdR193zObzZjNZiwWCzY2Ntjc3GRra4utrS02NzfZ3NxkPp8zm80AODg4YG9vj3EcAbjvvvtuBfj6r//69/mHf/iH3+aqq6666qqrrvrvhh70oAdx1VVXXXXVVVddddVVV/3Pds011zz4xV7sxV77dV7ndd7rxV7sxV77vvvuu/Waa655MMDu7i633nort912G3t7e9x5551EBKUUIoKIoJRCRFBKoZRCKYVSCrVWuq6j6zq6rmM2mzGfz1ksFmxsbLC5ucnW1hZbW1tsbGzQdR0RwWq1Ypom7nfffffd+lu/9Vvf/Vu/9Vvfffbs2Wdw1VVXXXXVVVf9T4Ee9KAHcdVVV1111VVXXXXVVVf973HNNdc8+MVe7MVe+8Ve7MVe63Ve53Xem+djb2+PS5cusb+/z1133YUkDg4OiAiOjo4opbBarai1Umvl2LFjdF1H3/fs7Oywvb3N5uYmfd+zsbFBrZXndt999936W7/1W9999uzZZ/zWb/3Wd3PVVVddddVVV/1PhB70oAdx1VVXXXXVVVddddVVV/3vdebMmQe9+Iu/+Ou82Iu92Gtdc801D36xF3ux1+bf6eDggK2tLe5333333Qpw9uzZW//+7//+t//hH/7hd/7hH/7ht7nqqquuuuqqq/6nQw960IO46qqrrrrqqquuuuqqq/7vuOaaax5s29dcc81Drrnmmge/2Iu92Gvdd999t774i7/4awOcOXPmwQDXXHPNg3mmf/iHf/jtM2fOPBjg7Nmzt95333233nfffbcC/MM//MPv/MM//MNvc9VVV1111VVX/W+EHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6v4h8BPZrA4LAMueAAAAAASUVORK5CYII=) ```js // Create a spring by sweeping around a helix path. diff --git a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json index 6fa72f643e..3f21b91e67 100644 --- a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json +++ b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json @@ -29,5 +29,5 @@ } } ], - "kcl_version": "0.2.39" + "kcl_version": "0.2.40" } \ No newline at end of file diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index 1f3c9c43bd..da96ab7f55 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -730,7 +730,7 @@ dependencies = [ [[package]] name = "derive-docs" -version = "0.1.39" +version = "0.1.40" dependencies = [ "Inflector", "anyhow", @@ -1724,7 +1724,7 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.39" +version = "0.2.40" dependencies = [ "anyhow", "approx 0.5.1", @@ -1791,7 +1791,7 @@ dependencies = [ [[package]] name = "kcl-test-server" -version = "0.1.39" +version = "0.1.40" dependencies = [ "anyhow", "hyper 0.14.32", diff --git a/src/wasm-lib/derive-docs/Cargo.toml b/src/wasm-lib/derive-docs/Cargo.toml index 086a382dba..b1b4eefc90 100644 --- a/src/wasm-lib/derive-docs/Cargo.toml +++ b/src/wasm-lib/derive-docs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "derive-docs" description = "A tool for generating documentation from Rust derive macros" -version = "0.1.39" +version = "0.1.40" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/src/wasm-lib/kcl-test-server/Cargo.toml b/src/wasm-lib/kcl-test-server/Cargo.toml index c1060394d6..efb7f579af 100644 --- a/src/wasm-lib/kcl-test-server/Cargo.toml +++ b/src/wasm-lib/kcl-test-server/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-test-server" description = "A test server for KCL" -version = "0.1.39" +version = "0.1.40" edition = "2021" license = "MIT" diff --git a/src/wasm-lib/kcl/Cargo.toml b/src/wasm-lib/kcl/Cargo.toml index 7052489f00..6dca5c25fa 100644 --- a/src/wasm-lib/kcl/Cargo.toml +++ b/src/wasm-lib/kcl/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib" description = "KittyCAD Language implementation and tools" -version = "0.2.39" +version = "0.2.40" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" @@ -22,7 +22,7 @@ clap = { version = "4.5.27", default-features = false, optional = true, features ] } convert_case = "0.6.0" dashmap = "6.1.0" -derive-docs = { version = "0.1.38", path = "../derive-docs" } +derive-docs = { version = "0.1.40", path = "../derive-docs" } dhat = { version = "0.3", optional = true } fnv = "1.0.7" form_urlencoded = "1.2.1" diff --git a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs index 21126c0f2f..b4ca984250 100644 --- a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs +++ b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs @@ -13,14 +13,13 @@ use itertools::Itertools; use serde_json::json; use tokio::task::JoinSet; +use super::kcl_doc::{ConstData, DocData, FnData}; use crate::{ docs::{is_primitive, StdLibFn}, std::StdLib, ExecutorContext, }; -use super::kcl_doc::{ConstData, DocData, FnData}; - const TYPES_DIR: &str = "../../../docs/kcl/types"; const LANG_TOPICS: [&str; 4] = ["Types", "Modules", "Settings", "Known Issues"]; diff --git a/src/wasm-lib/kcl/src/errors.rs b/src/wasm-lib/kcl/src/errors.rs index a26bfc22dc..99f110a917 100644 --- a/src/wasm-lib/kcl/src/errors.rs +++ b/src/wasm-lib/kcl/src/errors.rs @@ -1,13 +1,12 @@ +use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use thiserror::Error; use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity}; -use indexmap::IndexMap; - use crate::{ execution::{ArtifactCommand, ArtifactGraph, Operation}, lsp::IntoDiagnostic, - modules::ModulePath, + modules::{ModulePath, ModuleSource}, source_range::SourceRange, ModuleId, }; @@ -120,6 +119,7 @@ pub struct KclErrorWithOutputs { pub artifact_commands: Vec, pub artifact_graph: ArtifactGraph, pub filenames: IndexMap, + pub source_files: IndexMap, } impl KclErrorWithOutputs { @@ -129,6 +129,7 @@ impl KclErrorWithOutputs { artifact_commands: Vec, artifact_graph: ArtifactGraph, filenames: IndexMap, + source_files: IndexMap, ) -> Self { Self { error, @@ -136,6 +137,7 @@ impl KclErrorWithOutputs { artifact_commands, artifact_graph, filenames, + source_files, } } pub fn no_outputs(error: KclError) -> Self { @@ -145,7 +147,168 @@ impl KclErrorWithOutputs { artifact_commands: Default::default(), artifact_graph: Default::default(), filenames: Default::default(), + source_files: Default::default(), + } + } + pub fn into_miette_report_with_outputs(self, code: &str) -> anyhow::Result { + let mut source_ranges = self.error.source_ranges(); + + // Pop off the first source range to get the filename. + let first_source_range = source_ranges + .pop() + .ok_or_else(|| anyhow::anyhow!("No source ranges found"))?; + + let source = self + .source_files + .get(&first_source_range.module_id()) + .cloned() + .unwrap_or(ModuleSource { + source: code.to_string(), + path: self + .filenames + .get(&first_source_range.module_id()) + .ok_or_else(|| { + anyhow::anyhow!( + "Could not find filename for module id: {:?}", + first_source_range.module_id() + ) + })? + .clone(), + }); + let filename = source.path.to_string(); + let kcl_source = source.source.to_string(); + + let mut related = Vec::new(); + for source_range in source_ranges { + let module_id = source_range.module_id(); + let source = self.source_files.get(&module_id).cloned().unwrap_or(ModuleSource { + source: code.to_string(), + path: self + .filenames + .get(&module_id) + .ok_or_else(|| anyhow::anyhow!("Could not find filename for module id: {:?}", module_id))? + .clone(), + }); + let error = self.error.override_source_ranges(vec![source_range]); + let report = Report { + error, + kcl_source: source.source.to_string(), + filename: source.path.to_string(), + }; + related.push(report); } + + Ok(ReportWithOutputs { + error: self, + kcl_source, + filename, + related, + }) + } +} + +impl IntoDiagnostic for KclErrorWithOutputs { + fn to_lsp_diagnostics(&self, code: &str) -> Vec { + let message = self.error.get_message(); + let source_ranges = self.error.source_ranges(); + + source_ranges + .into_iter() + .map(|source_range| { + let source = self + .source_files + .get(&source_range.module_id()) + .cloned() + .unwrap_or(ModuleSource { + source: code.to_string(), + path: self.filenames.get(&source_range.module_id()).unwrap().clone(), + }); + let mut filename = source.path.to_string(); + if !filename.starts_with("file://") { + filename = format!("file:///{}", filename.trim_start_matches("/")); + } + + let related_information = if let Ok(uri) = url::Url::parse(&filename) { + Some(vec![tower_lsp::lsp_types::DiagnosticRelatedInformation { + location: tower_lsp::lsp_types::Location { + uri, + range: source_range.to_lsp_range(&source.source), + }, + message: message.to_string(), + }]) + } else { + None + }; + + Diagnostic { + range: source_range.to_lsp_range(code), + severity: Some(self.severity()), + code: None, + // TODO: this is neat we can pass a URL to a help page here for this specific error. + code_description: None, + source: Some("kcl".to_string()), + related_information, + message: message.clone(), + tags: None, + data: None, + } + }) + .collect() + } + + fn severity(&self) -> DiagnosticSeverity { + DiagnosticSeverity::ERROR + } +} + +#[derive(thiserror::Error, Debug)] +#[error("{}", self.error.error.get_message())] +pub struct ReportWithOutputs { + pub error: KclErrorWithOutputs, + pub kcl_source: String, + pub filename: String, + pub related: Vec, +} + +impl miette::Diagnostic for ReportWithOutputs { + fn code<'a>(&'a self) -> Option> { + let family = match self.error.error { + KclError::Lexical(_) => "Lexical", + KclError::Syntax(_) => "Syntax", + KclError::Semantic(_) => "Semantic", + KclError::ImportCycle(_) => "ImportCycle", + KclError::Type(_) => "Type", + KclError::Unimplemented(_) => "Unimplemented", + KclError::Unexpected(_) => "Unexpected", + KclError::ValueAlreadyDefined(_) => "ValueAlreadyDefined", + KclError::UndefinedValue(_) => "UndefinedValue", + KclError::InvalidExpression(_) => "InvalidExpression", + KclError::Engine(_) => "Engine", + KclError::Internal(_) => "Internal", + }; + let error_string = format!("KCL {family} error"); + Some(Box::new(error_string)) + } + + fn source_code(&self) -> Option<&dyn miette::SourceCode> { + Some(&self.kcl_source) + } + + fn labels(&self) -> Option + '_>> { + let iter = self + .error + .error + .source_ranges() + .clone() + .into_iter() + .map(miette::SourceSpan::from) + .map(|span| miette::LabeledSpan::new_with_span(Some(self.filename.to_string()), span)); + Some(Box::new(iter)) + } + + fn related<'a>(&'a self) -> Option + 'a>> { + let iter = self.related.iter().map(|r| r as &dyn miette::Diagnostic); + Some(Box::new(iter)) } } @@ -188,7 +351,7 @@ impl miette::Diagnostic for Report { .clone() .into_iter() .map(miette::SourceSpan::from) - .map(|span| miette::LabeledSpan::new_with_span(None, span)); + .map(|span| miette::LabeledSpan::new_with_span(Some(self.filename.to_string()), span)); Some(Box::new(iter)) } } @@ -311,7 +474,7 @@ impl KclError { } impl IntoDiagnostic for KclError { - fn to_lsp_diagnostic(&self, code: &str) -> Diagnostic { + fn to_lsp_diagnostics(&self, code: &str) -> Vec { let message = self.get_message(); let source_ranges = self.source_ranges(); @@ -322,18 +485,23 @@ impl IntoDiagnostic for KclError { .filter(|r| r.module_id() == module_id) .collect::>(); - Diagnostic { - range: source_ranges.first().map(|r| r.to_lsp_range(code)).unwrap_or_default(), - severity: Some(self.severity()), - code: None, - // TODO: this is neat we can pass a URL to a help page here for this specific error. - code_description: None, - source: Some("kcl".to_string()), - message, - related_information: None, - tags: None, - data: None, + let mut diagnostics = Vec::new(); + for source_range in &source_ranges { + diagnostics.push(Diagnostic { + range: source_range.to_lsp_range(code), + severity: Some(self.severity()), + code: None, + // TODO: this is neat we can pass a URL to a help page here for this specific error. + code_description: None, + source: Some("kcl".to_string()), + related_information: None, + message: message.clone(), + tags: None, + data: None, + }); } + + diagnostics } fn severity(&self) -> DiagnosticSeverity { diff --git a/src/wasm-lib/kcl/src/execution/exec_ast.rs b/src/wasm-lib/kcl/src/execution/exec_ast.rs index d86974eb22..0e65e3f017 100644 --- a/src/wasm-lib/kcl/src/execution/exec_ast.rs +++ b/src/wasm-lib/kcl/src/execution/exec_ast.rs @@ -342,8 +342,9 @@ impl ExecutorContext { // Add file path string to global state even if it fails to import exec_state.add_path_to_source_id(resolved_path.clone(), id); let source = resolved_path.source(&self.fs, source_range).await?; + exec_state.add_id_to_source(id, source.clone()); // TODO handle parsing errors properly - let parsed = crate::parsing::parse_str(&source, id).parse_errs_as_err()?; + let parsed = crate::parsing::parse_str(&source.source, id).parse_errs_as_err()?; exec_state.add_module(id, resolved_path, ModuleRepr::Kcl(parsed, None)); Ok(id) @@ -371,7 +372,10 @@ impl ExecutorContext { // Add file path string to global state even if it fails to import exec_state.add_path_to_source_id(resolved_path.clone(), id); let source = resolved_path.source(&self.fs, source_range).await?; - let parsed = crate::parsing::parse_str(&source, id).parse_errs_as_err().unwrap(); + exec_state.add_id_to_source(id, source.clone()); + let parsed = crate::parsing::parse_str(&source.source, id) + .parse_errs_as_err() + .unwrap(); exec_state.add_module(id, resolved_path, ModuleRepr::Kcl(parsed, None)); Ok(id) } diff --git a/src/wasm-lib/kcl/src/execution/memory.rs b/src/wasm-lib/kcl/src/execution/memory.rs index c6b209ef0f..9132a0a0ba 100644 --- a/src/wasm-lib/kcl/src/execution/memory.rs +++ b/src/wasm-lib/kcl/src/execution/memory.rs @@ -138,6 +138,7 @@ use std::{collections::HashMap, fmt}; use anyhow::Result; +use env::Environment; use indexmap::IndexMap; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -147,7 +148,6 @@ use crate::{ execution::KclValue, source_range::SourceRange, }; -use env::Environment; /// The distinguished name of the return value of a function. pub(crate) const RETURN_NAME: &str = "__return"; @@ -894,9 +894,8 @@ mod env { #[cfg(test)] mod test { - use crate::execution::kcl_value::{FunctionSource, NumericType}; - use super::*; + use crate::execution::kcl_value::{FunctionSource, NumericType}; fn sr() -> SourceRange { SourceRange::default() diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index 29ef743ca8..8d77e1682f 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -3,8 +3,16 @@ use std::{path::PathBuf, sync::Arc}; use anyhow::Result; +pub use artifact::{Artifact, ArtifactCommand, ArtifactGraph, ArtifactId}; use cache::OldAstState; +pub use cache::{bust_cache, clear_mem_cache}; +pub use cad_op::Operation; +pub use geometry::*; +pub(crate) use import::{ + import_foreign, send_to_engine as send_import_to_engine, PreImportedGeometry, ZOO_COORD_SYSTEM, +}; use indexmap::IndexMap; +pub use kcl_value::{KclObjectFields, KclValue, UnitAngle, UnitLen}; use kcmc::{ each_cmd as mcmd, ok_response::{output::TakeSnapshot, OkModelingCmdResponse}, @@ -12,8 +20,10 @@ use kcmc::{ ImageFormat, ModelingCmd, }; use kittycad_modeling_cmds as kcmc; +pub use memory::EnvironmentRef; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; +pub use state::{ExecState, IdGenerator, MetaSettings}; use crate::{ engine::EngineManager, @@ -31,17 +41,6 @@ use crate::{ CompilationError, ExecError, ExecutionKind, KclErrorWithOutputs, }; -pub use artifact::{Artifact, ArtifactCommand, ArtifactGraph, ArtifactId}; -pub use cache::{bust_cache, clear_mem_cache}; -pub use cad_op::Operation; -pub use geometry::*; -pub(crate) use import::{ - import_foreign, send_to_engine as send_import_to_engine, PreImportedGeometry, ZOO_COORD_SYSTEM, -}; -pub use kcl_value::{KclObjectFields, KclValue, UnitAngle, UnitLen}; -pub use memory::EnvironmentRef; -pub use state::{ExecState, IdGenerator, MetaSettings}; - pub(crate) mod annotations; mod artifact; pub(crate) mod cache; @@ -728,6 +727,7 @@ impl ExecutorContext { exec_state.global.artifact_commands.clone(), exec_state.global.artifact_graph.clone(), module_id_to_module_path, + exec_state.global.id_to_source.clone(), ) })?; diff --git a/src/wasm-lib/kcl/src/execution/state.rs b/src/wasm-lib/kcl/src/execution/state.rs index a3e921ac4b..4c1b581a6b 100644 --- a/src/wasm-lib/kcl/src/execution/state.rs +++ b/src/wasm-lib/kcl/src/execution/state.rs @@ -5,20 +5,19 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use uuid::Uuid; +use super::EnvironmentRef; use crate::{ errors::{KclError, KclErrorDetails, Severity}, execution::{ annotations, kcl_value, memory::ProgramMemory, Artifact, ArtifactCommand, ArtifactGraph, ArtifactId, ExecOutcome, ExecutorSettings, KclValue, Operation, UnitAngle, UnitLen, }, - modules::{ModuleId, ModuleInfo, ModuleLoader, ModulePath, ModuleRepr}, + modules::{ModuleId, ModuleInfo, ModuleLoader, ModulePath, ModuleRepr, ModuleSource}, parsing::ast::types::Annotation, source_range::SourceRange, CompilationError, }; -use super::EnvironmentRef; - /// State for executing a program. #[derive(Debug, Clone)] pub struct ExecState { @@ -34,6 +33,8 @@ pub(super) struct GlobalState { pub id_generator: IdGenerator, /// Map from source file absolute path to module ID. pub path_to_source_id: IndexMap, + /// Map from module ID to source file. + pub id_to_source: IndexMap, /// Map from module ID to module info. pub module_infos: IndexMap, /// Output map of UUIDs to artifacts. @@ -181,6 +182,11 @@ impl ExecState { self.global.path_to_source_id.insert(path.clone(), id); } + pub(super) fn add_id_to_source(&mut self, id: ModuleId, source: ModuleSource) { + debug_assert!(!self.global.id_to_source.contains_key(&id)); + self.global.id_to_source.insert(id, source.clone()); + } + pub(super) fn add_module(&mut self, id: ModuleId, path: ModulePath, repr: ModuleRepr) { debug_assert!(self.global.path_to_source_id.contains_key(&path)); let module_info = ModuleInfo { id, repr, path }; @@ -227,6 +233,7 @@ impl GlobalState { operations: Default::default(), mod_loader: Default::default(), errors: Default::default(), + id_to_source: Default::default(), }; let root_id = ModuleId::default(); @@ -244,6 +251,8 @@ impl GlobalState { global .path_to_source_id .insert(ModulePath::Local { value: root_path }, root_id); + // Ideally we'd have a way to set the root module's source here, but + // we don't have a way to get the source from the executor settings. global } } diff --git a/src/wasm-lib/kcl/src/lint/rule.rs b/src/wasm-lib/kcl/src/lint/rule.rs index bdd5c67da8..f9fcba6fd7 100644 --- a/src/wasm-lib/kcl/src/lint/rule.rs +++ b/src/wasm-lib/kcl/src/lint/rule.rs @@ -67,8 +67,8 @@ impl Discovered { } impl IntoDiagnostic for Discovered { - fn to_lsp_diagnostic(&self, code: &str) -> Diagnostic { - (&self).to_lsp_diagnostic(code) + fn to_lsp_diagnostics(&self, code: &str) -> Vec { + (&self).to_lsp_diagnostics(code) } fn severity(&self) -> DiagnosticSeverity { @@ -77,11 +77,11 @@ impl IntoDiagnostic for Discovered { } impl IntoDiagnostic for &Discovered { - fn to_lsp_diagnostic(&self, code: &str) -> Diagnostic { + fn to_lsp_diagnostics(&self, code: &str) -> Vec { let message = self.finding.title.to_owned(); let source_range = self.pos; - Diagnostic { + vec![Diagnostic { range: source_range.to_lsp_range(code), severity: Some(self.severity()), code: None, @@ -92,7 +92,7 @@ impl IntoDiagnostic for &Discovered { related_information: None, tags: None, data: None, - } + }] } fn severity(&self) -> DiagnosticSeverity { diff --git a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs index 41186cf42b..9cb8c6b338 100644 --- a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs +++ b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs @@ -642,10 +642,12 @@ impl Backend { }; for diagnostic in diagnostics { - let d = diagnostic.to_lsp_diagnostic(¶ms.text); + let lsp_d = diagnostic.to_lsp_diagnostics(¶ms.text); // Make sure we don't duplicate diagnostics. - if !items.iter().any(|x| x == &d) { - items.push(d); + for d in lsp_d { + if !items.iter().any(|x| x == &d) { + items.push(d); + } } } @@ -673,7 +675,7 @@ impl Backend { match executor_ctx.run_with_caching(ast.clone()).await { Err(err) => { - self.add_to_diagnostics(params, &[err.error], false).await; + self.add_to_diagnostics(params, &[err], false).await; // Since we already published the diagnostics we don't really care about the error // string. diff --git a/src/wasm-lib/kcl/src/lsp/mod.rs b/src/wasm-lib/kcl/src/lsp/mod.rs index c06f513b0b..0ff613d7f4 100644 --- a/src/wasm-lib/kcl/src/lsp/mod.rs +++ b/src/wasm-lib/kcl/src/lsp/mod.rs @@ -18,13 +18,13 @@ use crate::{ }; impl IntoDiagnostic for CompilationError { - fn to_lsp_diagnostic(&self, code: &str) -> Diagnostic { + fn to_lsp_diagnostics(&self, code: &str) -> Vec { let edit = self.suggestion.as_ref().map(|s| { let range = s.source_range.to_lsp_range(code); serde_json::to_value((s, range)).unwrap() }); - Diagnostic { + vec![Diagnostic { range: self.source_range.to_lsp_range(code), severity: Some(self.severity()), code: None, @@ -34,7 +34,7 @@ impl IntoDiagnostic for CompilationError { related_information: None, tags: self.tag.to_lsp_tags(), data: edit, - } + }] } fn severity(&self) -> DiagnosticSeverity { diff --git a/src/wasm-lib/kcl/src/lsp/tests.rs b/src/wasm-lib/kcl/src/lsp/tests.rs index 4bd9939c80..6afcf52896 100644 --- a/src/wasm-lib/kcl/src/lsp/tests.rs +++ b/src/wasm-lib/kcl/src/lsp/tests.rs @@ -3473,3 +3473,68 @@ async fn kcl_test_kcl_lsp_completions_number_literal() { assert_eq!(completions.is_none(), true); } + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_kcl_lsp_multi_file_error() { + let server = kcl_lsp_server(true).await.unwrap(); + + let cwd = std::env::current_dir().unwrap(); + let joined = cwd.join("tests/import_file_parse_error/"); + + // Change the current directory. + std::env::set_current_dir(joined).unwrap(); + + let code = std::fs::read_to_string("input.kcl").unwrap(); + + // Send open file. + server + .did_open(tower_lsp::lsp_types::DidOpenTextDocumentParams { + text_document: tower_lsp::lsp_types::TextDocumentItem { + uri: "file:///input.kcl".try_into().unwrap(), + language_id: "kcl".to_string(), + version: 1, + text: code.clone(), + }, + }) + .await; + + // Send diagnostics request. + let diagnostics = server + .diagnostic(tower_lsp::lsp_types::DocumentDiagnosticParams { + text_document: tower_lsp::lsp_types::TextDocumentIdentifier { + uri: "file:///input.kcl".try_into().unwrap(), + }, + partial_result_params: Default::default(), + work_done_progress_params: Default::default(), + identifier: None, + previous_result_id: None, + }) + .await + .unwrap(); + + // Check the diagnostics. + if let tower_lsp::lsp_types::DocumentDiagnosticReportResult::Report(diagnostics) = diagnostics { + if let tower_lsp::lsp_types::DocumentDiagnosticReport::Full(diagnostics) = diagnostics { + assert_eq!(diagnostics.full_document_diagnostic_report.items.len(), 1); + let item = diagnostics.full_document_diagnostic_report.items.first().unwrap(); + assert_eq!(item.message, "syntax: Unexpected token: }"); + assert_eq!( + Some(vec![tower_lsp::lsp_types::DiagnosticRelatedInformation { + location: tower_lsp::lsp_types::Location { + uri: "file:///parse-failure.kcl".try_into().unwrap(), + range: tower_lsp::lsp_types::Range { + start: tower_lsp::lsp_types::Position { line: 1, character: 9 }, + end: tower_lsp::lsp_types::Position { line: 2, character: 1 }, + }, + }, + message: "syntax: Unexpected token: }".to_string(), + }]), + item.related_information + ); + } else { + panic!("Expected full diagnostics"); + } + } else { + panic!("Expected diagnostics"); + } +} diff --git a/src/wasm-lib/kcl/src/lsp/util.rs b/src/wasm-lib/kcl/src/lsp/util.rs index 31c2b2b86a..ff7be3eb85 100644 --- a/src/wasm-lib/kcl/src/lsp/util.rs +++ b/src/wasm-lib/kcl/src/lsp/util.rs @@ -35,8 +35,8 @@ pub fn get_line_before(pos: Position, rope: &Rope) -> Option { /// Convert an object into a [lsp_types::Diagnostic] given the /// [TextDocumentItem]'s `.text` field. pub trait IntoDiagnostic { - /// Convert the traited object to a [lsp_types::Diagnostic]. - fn to_lsp_diagnostic(&self, text: &str) -> Diagnostic; + /// Convert the traited object to a vector of [lsp_types::Diagnostic]. + fn to_lsp_diagnostics(&self, text: &str) -> Vec; /// Get the severity of the diagnostic. fn severity(&self) -> tower_lsp::lsp_types::DiagnosticSeverity; diff --git a/src/wasm-lib/kcl/src/modules.rs b/src/wasm-lib/kcl/src/modules.rs index f17057d5f9..dd2d9cfcba 100644 --- a/src/wasm-lib/kcl/src/modules.rs +++ b/src/wasm-lib/kcl/src/modules.rs @@ -143,17 +143,23 @@ impl ModulePath { } } - pub(crate) async fn source(&self, fs: &FileManager, source_range: SourceRange) -> Result { + pub(crate) async fn source(&self, fs: &FileManager, source_range: SourceRange) -> Result { match self { - ModulePath::Local { value: p } => fs.read_to_string(p, source_range).await, - ModulePath::Std { value: name } => read_std(name) - .ok_or_else(|| { - KclError::Semantic(KclErrorDetails { - message: format!("Cannot find standard library module to import: std::{name}."), - source_ranges: vec![source_range], + ModulePath::Local { value: p } => Ok(ModuleSource { + source: fs.read_to_string(p, source_range).await?, + path: self.clone(), + }), + ModulePath::Std { value: name } => Ok(ModuleSource { + source: read_std(name) + .ok_or_else(|| { + KclError::Semantic(KclErrorDetails { + message: format!("Cannot find standard library module to import: std::{name}."), + source_ranges: vec![source_range], + }) }) - }) - .map(str::to_owned), + .map(str::to_owned)?, + path: self.clone(), + }), ModulePath::Main => unreachable!(), } } @@ -188,3 +194,9 @@ impl fmt::Display for ModulePath { } } } + +#[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize, ts_rs::TS)] +pub struct ModuleSource { + pub path: ModulePath, + pub source: String, +} diff --git a/src/wasm-lib/kcl/src/simulation_tests.rs b/src/wasm-lib/kcl/src/simulation_tests.rs index 55f2fdaa20..1af448257f 100644 --- a/src/wasm-lib/kcl/src/simulation_tests.rs +++ b/src/wasm-lib/kcl/src/simulation_tests.rs @@ -128,11 +128,14 @@ async fn execute(test_name: &str, render_to_png: bool) { // Snapshot the KCL error with a fancy graphical report. // This looks like a Cargo compile error, with arrows pointing // to source code, underlines, etc. - let report = crate::errors::Report { - error: error.error, - filename: format!("{test_name}.kcl"), - kcl_source: read("input.kcl", test_name), - }; + miette::set_hook(Box::new(|_| { + Box::new(miette::MietteHandlerOpts::new().show_related_errors_as_nested().build()) + })) + .unwrap(); + let report = error + .clone() + .into_miette_report_with_outputs(&read("input.kcl", test_name)) + .unwrap(); let report = miette::Report::new(report); if previously_passed { eprintln!("This test case failed, but it previously passed. If this is intended, and the test should actually be failing now, please delete kcl/{ok_path_str} and other associated passing artifacts"); @@ -2027,6 +2030,28 @@ mod helix_simple { } } +mod import_file_not_exist_error { + const TEST_NAME: &str = "import_file_not_exist_error"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME); + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} + mod import_file_parse_error { const TEST_NAME: &str = "import_file_parse_error"; diff --git a/src/wasm-lib/kcl/src/std/patterns.rs b/src/wasm-lib/kcl/src/std/patterns.rs index 7a80bf4aa9..89f8092be3 100644 --- a/src/wasm-lib/kcl/src/std/patterns.rs +++ b/src/wasm-lib/kcl/src/std/patterns.rs @@ -657,9 +657,8 @@ impl GeometryTrait for Box { #[cfg(test)] mod tests { - use crate::execution::kcl_value::NumericType; - use super::*; + use crate::execution::kcl_value::NumericType; #[test] fn test_array_to_point3d() { diff --git a/src/wasm-lib/kcl/src/std/planes.rs b/src/wasm-lib/kcl/src/std/planes.rs index 3242d22c24..a4c3573862 100644 --- a/src/wasm-lib/kcl/src/std/planes.rs +++ b/src/wasm-lib/kcl/src/std/planes.rs @@ -4,14 +4,13 @@ use derive_docs::stdlib; use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Color, ModelingCmd}; use kittycad_modeling_cmds as kcmc; +use super::sketch::PlaneData; use crate::{ errors::KclError, execution::{ExecState, KclValue, Plane, PlaneType}, std::Args, }; -use super::sketch::PlaneData; - /// Offset a plane by a distance along its normal. pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result { let std_plane = args.get_unlabeled_kw_arg("plane")?; diff --git a/src/wasm-lib/kcl/tests/argument_error/execution_error.snap b/src/wasm-lib/kcl/tests/argument_error/execution_error.snap index 362b49568c..d1869200d6 100644 --- a/src/wasm-lib/kcl/tests/argument_error/execution_error.snap +++ b/src/wasm-lib/kcl/tests/argument_error/execution_error.snap @@ -8,5 +8,6 @@ KCL Type error ╭─[5:5] 4 │ 5 │ map(f, [0, 1]) - · ─ + · ┬ + · ╰── tests/argument_error/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap index 57faa0fed9..79ad933021 100644 --- a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap @@ -8,5 +8,6 @@ KCL Semantic error ╭─[2:8] 1 │ arr = [] 2 │ fail = pop(arr) - · ──────── + · ────┬─── + · ╰── tests/array_elem_pop_empty_fail/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap b/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap index 03aaef211b..54c9034d96 100644 --- a/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap @@ -8,5 +8,6 @@ KCL UndefinedValue error ╭─[3:8] 2 │ pushedArr = pop(arr) 3 │ fail = pushedArr[2] - · ──────────── + · ──────┬───── + · ╰── tests/array_elem_pop_fail/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/array_elem_push_fail/execution_error.snap b/src/wasm-lib/kcl/tests/array_elem_push_fail/execution_error.snap index 6b17c8e81a..d894e04442 100644 --- a/src/wasm-lib/kcl/tests/array_elem_push_fail/execution_error.snap +++ b/src/wasm-lib/kcl/tests/array_elem_push_fail/execution_error.snap @@ -8,5 +8,6 @@ KCL UndefinedValue error ╭─[3:8] 2 │ pushedArr = push(arr, 4) 3 │ fail = arr[3] - · ────── + · ───┬── + · ╰── tests/array_elem_push_fail/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/array_index_oob/execution_error.snap b/src/wasm-lib/kcl/tests/array_index_oob/execution_error.snap index 619ad04ffa..2a957c0848 100644 --- a/src/wasm-lib/kcl/tests/array_index_oob/execution_error.snap +++ b/src/wasm-lib/kcl/tests/array_index_oob/execution_error.snap @@ -8,5 +8,6 @@ KCL UndefinedValue error ╭─[2:5] 1 │ arr = [] 2 │ x = arr[0] - · ────── + · ───┬── + · ╰── tests/array_index_oob/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/artifact_graph_example_code1/rendered_model.png b/src/wasm-lib/kcl/tests/artifact_graph_example_code1/rendered_model.png index e6541c7b74ba4e725e0388f314db81406f3d3fab..7cb56e5b4962be3640039edbc9cd565df12dbae8 100644 GIT binary patch literal 61401 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 NpZsw7HMc$T{{UgF-tPba diff --git a/src/wasm-lib/kcl/tests/comparisons_multiple/execution_error.snap b/src/wasm-lib/kcl/tests/comparisons_multiple/execution_error.snap index 4d1637f22f..b7f1896500 100644 --- a/src/wasm-lib/kcl/tests/comparisons_multiple/execution_error.snap +++ b/src/wasm-lib/kcl/tests/comparisons_multiple/execution_error.snap @@ -7,5 +7,6 @@ KCL Semantic error × semantic: Expected a number, but found a boolean (true/false value) ╭──── 1 │ assert(3 == 3 == 3, "this should not compile") - · ────── + · ───┬── + · ╰── tests/comparisons_multiple/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/cube_with_error/execution_error.snap b/src/wasm-lib/kcl/tests/cube_with_error/execution_error.snap index 38670a2a68..a84e39c90a 100644 --- a/src/wasm-lib/kcl/tests/cube_with_error/execution_error.snap +++ b/src/wasm-lib/kcl/tests/cube_with_error/execution_error.snap @@ -8,5 +8,6 @@ KCL UndefinedValue error ╭─[22:1] 21 │ // Error, after creating meaningful output. 22 │ foo - · ─── + · ─┬─ + · ╰── tests/cube_with_error/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/import_cycle1/execution_error.snap b/src/wasm-lib/kcl/tests/import_cycle1/execution_error.snap index 70e9a62b89..65b930b9c6 100644 --- a/src/wasm-lib/kcl/tests/import_cycle1/execution_error.snap +++ b/src/wasm-lib/kcl/tests/import_cycle1/execution_error.snap @@ -10,6 +10,7 @@ KCL ImportCycle error ╭─[2:1] 1 │ @settings(defaultLengthUnit = in) 2 │ import two from "import_cycle2.kcl" - · ─────────────────────────────────── + · ─────────────────┬───────────────── + · ╰── tests/import_cycle1/input.kcl 3 │ ╰──── diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_commands.snap new file mode 100644 index 0000000000..726888adcb --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_commands.snap @@ -0,0 +1,284 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_file_parse_error.kcl +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap new file mode 100644 index 0000000000..11c77e5d80 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact graph flowchart import_file_parse_error.kcl +extension: md +snapshot_kind: binary +--- diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap.md b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap.md new file mode 100644 index 0000000000..13e5335097 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/artifact_graph_flowchart.snap.md @@ -0,0 +1,3 @@ +```mermaid +flowchart LR +``` diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/ast.snap b/src/wasm-lib/kcl/tests/import_file_not_exist_error/ast.snap new file mode 100644 index 0000000000..bcc68f63fb --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/ast.snap @@ -0,0 +1,39 @@ +--- +source: kcl/src/simulation_tests.rs +description: Result of parsing import_file_not_exist_error.kcl +--- +{ + "Ok": { + "body": [ + { + "end": 34, + "path": { + "type": "Kcl", + "filename": "not-exist.kcl" + }, + "selector": { + "type": "List", + "items": [ + { + "alias": null, + "end": 13, + "name": { + "end": 13, + "name": "hotdog", + "start": 7, + "type": "Identifier" + }, + "start": 7, + "type": "ImportItem" + } + ] + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + } + ], + "end": 35, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/execution_error.snap b/src/wasm-lib/kcl/tests/import_file_not_exist_error/execution_error.snap new file mode 100644 index 0000000000..5af471db67 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/execution_error.snap @@ -0,0 +1,13 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing import_file_not_exist_error.kcl +--- +KCL Engine error + + × engine: Failed to read file `tests/import_file_not_exist_error/not- + │ exist.kcl`: No such file or directory (os error 2) + ╭──── + 1 │ import hotdog from "not-exist.kcl" + · ─────────────────┬──────────────── + · ╰── tests/import_file_not_exist_error/input.kcl + ╰──── diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/input.kcl b/src/wasm-lib/kcl/tests/import_file_not_exist_error/input.kcl new file mode 100644 index 0000000000..045ed9b362 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/input.kcl @@ -0,0 +1 @@ +import hotdog from "not-exist.kcl" diff --git a/src/wasm-lib/kcl/tests/import_file_not_exist_error/ops.snap b/src/wasm-lib/kcl/tests/import_file_not_exist_error/ops.snap new file mode 100644 index 0000000000..4214ec3e4b --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_file_not_exist_error/ops.snap @@ -0,0 +1,5 @@ +--- +source: kcl/src/simulation_tests.rs +description: Operations executed import_file_parse_error.kcl +--- +[] diff --git a/src/wasm-lib/kcl/tests/import_file_parse_error/execution_error.snap b/src/wasm-lib/kcl/tests/import_file_parse_error/execution_error.snap index 92a076f055..662da7797e 100644 --- a/src/wasm-lib/kcl/tests/import_file_parse_error/execution_error.snap +++ b/src/wasm-lib/kcl/tests/import_file_parse_error/execution_error.snap @@ -5,7 +5,9 @@ description: Error from executing import_file_parse_error.kcl KCL Syntax error × syntax: Unexpected token: } - ╭──── - 1 │ import hotdog from "parse-failure.kcl" - · ─ + ╭─[3:1] + 2 │ return + 3 │ } + · ┬ + · ╰── tests/import_file_parse_error/parse-failure.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/invalid_index_fractional/execution_error.snap b/src/wasm-lib/kcl/tests/invalid_index_fractional/execution_error.snap index b82d33aff0..17498ed13a 100644 --- a/src/wasm-lib/kcl/tests/invalid_index_fractional/execution_error.snap +++ b/src/wasm-lib/kcl/tests/invalid_index_fractional/execution_error.snap @@ -8,5 +8,6 @@ KCL Semantic error ╭─[2:5] 1 │ arr = [1, 2, 3] 2 │ x = arr[1.2] - · ──────── + · ────┬─── + · ╰── tests/invalid_index_fractional/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/invalid_index_negative/execution_error.snap b/src/wasm-lib/kcl/tests/invalid_index_negative/execution_error.snap index 11408c6a6c..bc7263407a 100644 --- a/src/wasm-lib/kcl/tests/invalid_index_negative/execution_error.snap +++ b/src/wasm-lib/kcl/tests/invalid_index_negative/execution_error.snap @@ -8,5 +8,6 @@ KCL Semantic error ╭─[3:5] 2 │ i = -1 3 │ x = arr[i] - · ────── + · ───┬── + · ╰── tests/invalid_index_negative/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/invalid_index_str/execution_error.snap b/src/wasm-lib/kcl/tests/invalid_index_str/execution_error.snap index 9d69dcb567..de0dfcf0c6 100644 --- a/src/wasm-lib/kcl/tests/invalid_index_str/execution_error.snap +++ b/src/wasm-lib/kcl/tests/invalid_index_str/execution_error.snap @@ -9,5 +9,6 @@ KCL Semantic error ╭─[2:5] 1 │ arr = [1, 2, 3] 2 │ x = arr["s"] - · ──────── + · ────┬─── + · ╰── tests/invalid_index_str/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/invalid_member_object/execution_error.snap b/src/wasm-lib/kcl/tests/invalid_member_object/execution_error.snap index 54ae4b460c..6f897c34bd 100644 --- a/src/wasm-lib/kcl/tests/invalid_member_object/execution_error.snap +++ b/src/wasm-lib/kcl/tests/invalid_member_object/execution_error.snap @@ -9,5 +9,6 @@ KCL Semantic error ╭─[2:5] 1 │ num = 999 2 │ x = num[3] - · ────── + · ───┬── + · ╰── tests/invalid_member_object/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/invalid_member_object_prop/execution_error.snap b/src/wasm-lib/kcl/tests/invalid_member_object_prop/execution_error.snap index ffc717e120..a24167a2e1 100644 --- a/src/wasm-lib/kcl/tests/invalid_member_object_prop/execution_error.snap +++ b/src/wasm-lib/kcl/tests/invalid_member_object_prop/execution_error.snap @@ -9,5 +9,6 @@ KCL Semantic error ╭─[2:5] 1 │ b = true 2 │ x = b["property"] - · ───────────── + · ──────┬────── + · ╰── tests/invalid_member_object_prop/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/kw_fn_too_few_args/execution_error.snap b/src/wasm-lib/kcl/tests/kw_fn_too_few_args/execution_error.snap index 6932ee48d6..b09f4dda0e 100644 --- a/src/wasm-lib/kcl/tests/kw_fn_too_few_args/execution_error.snap +++ b/src/wasm-lib/kcl/tests/kw_fn_too_few_args/execution_error.snap @@ -9,8 +9,21 @@ KCL Semantic error ╭─[1:7] 1 │ ╭─▶ fn add(x, y) { 2 │ │ return x + y - 3 │ ╰─▶ } + 3 │ ├─▶ } + · ╰──── tests/kw_fn_too_few_args/input.kcl 4 │ 5 │ three = add(x = 1) - · ────────── + · ─────┬──── + · ╰── tests/kw_fn_too_few_args/input.kcl ╰──── + ╰─▶ KCL Semantic error + + × semantic: This function requires a parameter y, but you haven't + │ passed it one. + ╭─[1:7] + 1 │ ╭─▶ fn add(x, y) { + 2 │ │ return x + y + 3 │ ├─▶ } + · ╰──── tests/kw_fn_too_few_args/input.kcl + 4 │ + ╰──── diff --git a/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/execution_error.snap b/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/execution_error.snap index eacbe45d9c..4d13fe4064 100644 --- a/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/execution_error.snap +++ b/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/execution_error.snap @@ -9,8 +9,21 @@ KCL Semantic error ╭─[1:7] 1 │ ╭─▶ fn add(@x) { 2 │ │ return x + 1 - 3 │ ╰─▶ } + 3 │ ├─▶ } + · ╰──── tests/kw_fn_unlabeled_but_has_label/input.kcl 4 │ 5 │ two = add(x = 1) - · ────────── + · ─────┬──── + · ╰── tests/kw_fn_unlabeled_but_has_label/input.kcl ╰──── + ╰─▶ KCL Semantic error + + × semantic: The function does declare a parameter named 'x', but this + │ parameter doesn't use a label. Try removing the `x:` + ╭─[1:7] + 1 │ ╭─▶ fn add(@x) { + 2 │ │ return x + 1 + 3 │ ├─▶ } + · ╰──── tests/kw_fn_unlabeled_but_has_label/input.kcl + 4 │ + ╰──── diff --git a/src/wasm-lib/kcl/tests/non_string_key_of_object/execution_error.snap b/src/wasm-lib/kcl/tests/non_string_key_of_object/execution_error.snap index 5bfbd4db26..86b3de274f 100644 --- a/src/wasm-lib/kcl/tests/non_string_key_of_object/execution_error.snap +++ b/src/wasm-lib/kcl/tests/non_string_key_of_object/execution_error.snap @@ -9,5 +9,6 @@ KCL Semantic error ╭─[2:7] 1 │ obj = { key = 123 } 2 │ num = obj[3] - · ────── + · ───┬── + · ╰── tests/non_string_key_of_object/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/object_prop_not_found/execution_error.snap b/src/wasm-lib/kcl/tests/object_prop_not_found/execution_error.snap index de12e308e7..e2e8806742 100644 --- a/src/wasm-lib/kcl/tests/object_prop_not_found/execution_error.snap +++ b/src/wasm-lib/kcl/tests/object_prop_not_found/execution_error.snap @@ -8,5 +8,6 @@ KCL UndefinedValue error ╭─[2:5] 1 │ obj = { } 2 │ k = obj["age"] - · ────────── + · ─────┬──── + · ╰── tests/object_prop_not_found/input.kcl ╰──── diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_appearance8.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_appearance8.png index 0cdfa465bbf864ce0b5ab036a01a9bee048b3b84..35adf6a0645d203cfb8bd37498f136c0ce4669eb 100644 GIT binary patch literal 77064 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 LRz6}dzR~3GY?7|KdE&`ik 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�ENzqBbTyVWX6Km)OY+8 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�@;{5$eu=(Sau6Mit4p%h84C8pj7R0pUir1l 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 O;@Bx;j*kjh`~Lu=B_fRg literal 75086 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 MAB;KrzR%kK1=@b@rvLx| diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_const_std-math-TAU0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_const_std-math-TAU0.png index 9540708525c1ad3fb7f90778411d3af552067296..de171cb676381a9a62328f2d367ce2aa173d96ae 100644 GIT binary patch literal 62614 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 diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_sweep0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_sweep0.png index 63da38fe18e4ac9c437faf153895a44c107898f8..ca1037fd30a7dd6d6eaf3ccd69d7194ef72703c1 100644 GIT binary patch literal 76622 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

^ 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 literal 75283 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 diff --git a/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/execution_error.snap b/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/execution_error.snap index d03da638f5..f3b904e143 100644 --- a/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/execution_error.snap +++ b/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/execution_error.snap @@ -8,6 +8,7 @@ KCL Semantic error ╭─[6:10] 5 │ 6 │ answer = % - · ─ + · ┬ + · ╰── tests/pipe_substitution_inside_function_called_from_pipeline/input.kcl 7 │ |> f(%) ╰──── diff --git a/src/wasm-lib/tests/executor/outputs/global_tags.png b/src/wasm-lib/tests/executor/outputs/global_tags.png index ec824f519a44c019aa88a64f2bb5f78f4c1dda84..ae02d1fe3b712f7c371a2460cb86be8aa54809e0 100644 GIT binary patch delta 15582 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 delta 15630 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 diff --git a/src/wasm-lib/tests/executor/outputs/helix_defaults_negative_extrude.png b/src/wasm-lib/tests/executor/outputs/helix_defaults_negative_extrude.png index 246854a493ba9f4e36be48b61bbe3e0fd99233c7..839672cf4410ec8671a3cf62b21f5f9ff57edf95 100644 GIT binary patch literal 151490 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 bVeIGXyEWDSep?Rz4Zrvs!xsL_b#wk3t~|00 literal 150602 zcmeFadstO<`aZl6l_@nwow72al5!d+shrRf**4Xv(-hyCrkwErnWa-65Xk^JY|PBa z6c1C5k z$!YJkKA-3F9Paymo|XDPPfQ$e?akLJiZWpGq(^?ID1GqHUSIyGFaB4Obn0oP*KY<+ ze&nIw$N5|;@O>}nk8dAvsIhgcK0mx=(POi=%`e-f|M$Y18E^kOE91V=x7W43oc-dG z4_1tudn_yLyNCR%{`t|iPtSM%)NV=r;;AV!79Z>Wso8q{TRs2Lr{~q5{jBFdT6|1> z>i0dq6W(3@=pWO2dMA8Oo$}k99xjiU?8^Gvq8=`fFVq?N=-KY~B=^~Fd*g>2^H|Xz zcFfECe=tQ4+xX#(dD+HC+kS8!-j4qV=iy}_KRAycoW~EDhi3x#L$2t#8b2h#-mCFL zcJE#F{7|-dRhvIJ5AWmhLj~=1Tz-HCywHyyoW~E&z|_+Z{J-KAU594G z6yNV(v+>Bg4>UcKGIv`}&EC+X8%NIxDD<5!Kk>o0-tlWneD{Hvn!QfHu?bf$ZVe4= zITdT)8oHsQZcqKwDLdwrge~*iU7z2v;OxdD8RHX179`;pMta2f&MCk2U-IR$-5ynR zWc@pHx5eL6z&A@QzP~i|#>&GRNBj5MUGvV|fc^{J-^u4U4nMU4Z<&)r7QSDsFh zH_kYhkN-DcJh`Jpk$3MSS0~rzfx0(mEf2W-o?o;_Ou4=kH@D13yXheb+lM6Ft=+qP zzXWShDNErTH)Hq0r5*U>ld^J1@FH8kA)^{53>h`Oa_Ok)y9=6P9954-{J1RlA5Ub2 z9&CzfJTp0?EOqb*Wo&$7kpD~gvMv^%6#mp!Bx_P|a>tygJT6rqxn$hU#nD*B{AoU1 zxeHwv&gVV9@!vh~tV}DHN){%u=I};8pWN1!w${16xhGcUotWE{_0s9j`Y61@ z{VRv~>|S`fmx60nDnDD^Pnn(@x0ZLIuAQGzc5wX&A6~06B0S?v@`xwitvqvZz4C5o z{GgQeBf=Nq+Fkc+7w0-1=sKP4BVUwcjPH1pJ8&F3U$MlFYxW=>)FhBEOMdL$e07Le zQdmsQ;bmDgrc9X9L$cEHrA@o&+dtK>v$AUc%IREjT;@XD$f$_i&zJWbvirQPNUk@! zsy8mTcV%JfU|i`sTxhR_xKb|i$|}PmvMa<|ock=!ef8!1H&*w`aj_dWS>tMX*xM}I z?NzkO1{$UF+2AYBX7y>P3U*axC2^S}S+ybYN*}r0}Jq^ zv#hv8oKsv~@Re`p9ClUkhGxx`|QEeTUav5Q#x;gNQ)vxBo98(u?)7^{6 z-G1WTv3qfy55OdXKc^{PaGPuE3Tx{Mdk#&vQ~p`w=Ao=N;DC*P-3_6tqhx<0FYb@H zxRba0-Vm!}i1pIwIY&ZU<=h7sa8KhLx0|bXZNZb7?Z4l)ztpt0 zU!ZGY_Y1?mTAU#T^1mZ;soHlu>~8#*%K|Rn>ap89#My}j^;}y}mwc(`4weAZ%(jJo2<74`RdJj0Io9JF?$f=*)x}8bVtaV^MY)vb^^$zv@Rr-_TNoeg+n z<1#=}tLsnHsJw#4k5`O;lkc4S*~r{p+QK(~&$_Flz0ZQWK{Nf%Z?ifh;BkXp-)g=r zl#W8YD}q@Y?T`ThOt^Jsy1I&d?5(+W*3yULa7guzMgZ6hH zGHl7sQ)V;=7KcpfZ283Ftnsa}=2-<^H_bP1>GrlM-fvsK*yE7c1U3{sW|TjdQThp_g6=ul_JR zNt7N<@GKdn^znSV2-n%j3?4L_`xss7*}NX_VqR??=9PEkLhg|SEsxkpJI?Gpndzvt zx@wu1(J9$po9_x9ha5-N^^nbZh-qaVGMJWA?bB?{)9jsPw$3uU#2hp2YPNWLv1Uu@ zxcusI$;XivuC!f2R=6@Rq~s-}0WN2W`Yv6k-0VL;VkR(ZSDU>GnSdPKsMgn_KKJd^ zf`_)1UF@o<{jAh5`099hy7P4&;?6^-7BbXH(zP8H;S$qcU<`&|FXvZn0#E=7=;)!Fx3^ zGP4*^V{j^J7du;{#p{dXL-6yh{7*}1yV)z+HAmKptLfl&+b+n#FS*QjkzluH&mO!R zOmbVheSe4=`0m)~SH>jn8*}Dtr0Z-BO)~aEn(Mo?QGZvZ ze+?YERtIRl=Q}J_?Ls5@&-;gWl(L?b7;%M_owZaupkl+N*3Qzl`k>U0T=jSdwc}*X z&ps};9ixxqR#a3Ds8F=ynWeU8Su?vNTh?p5_u{j>YIuSCb!yV`XU(69ZyQ=E_pr*|I)KKgj)kALtk$D!aLc0L zqM^Bahbjvt!u~O{`Hxv$Vyp9iRtH*WEJD&W=Q20DxYJfOGQTQIVtXWRqh58@*W%a( zGq-omn*7T_>(;y)6m;7)lP7igXQ3L~^+yg{@rygFxCpG0_i`(u+b^H1&T4%ltM&M_ zY12k%z=2seWDGsq>Zmr2rR1Du9K*w^hUX8h=+arO|W2po@c^IW(Dn>6ICu30B*)WKz;7P`!3Vc#tqi)2!~8B9B~ z`9b-o@g8c_pR0?~jN(Ae?B@OR;r#8cOZFp3V~AulXFhyY!+terTd%Ix-fDkB|NYcs zFYd1nXc^1X^XAbl;epoor!09tyX~l@^Jr#RXlS{iYj&xByTy|Ht{w~9)$Yl zDMr3ef;;Ye`lIW4DAjuO!cy>HDmauNjWt`Q%@=Z;2+J+jO>=Rs^_VC&Mr&*6Oan0~m#dAQU_UR~;6 zy%w%UbAs1LIcn$g7{^>pU2(U#>sdN1$ajy`7lO?P`pRr_^0^3G}h zdU|9)%kClvLDlj_hwk?8tKEWm@mBAPKcnTPN%oc`+s&0+&fU$&1r~M1boHoS*R<`^ zZujTP_V#}nJk~UUEZ6z0BU*_BpffZ2!q#lp{f3`c{XBiFIz);^&Fd@qD8e>vv2>o} zK~ncz^@3D;*B=$CPixl7^H5heDlO^atoY9#4rsj3+P=lwessl(70kIM+Nl1$&5QY5 z4#1FtqnWOkGF+Fp#2mARbvNMqi@WVPW5(gXQ!{4!@9|P-&55Al3}ut6o#f9 zdCt3bqrJkVzGt47aAx;M5{U2b<@sQt+Lrn2K|l@G6smVH?xqE~w$5v^rUpg)9<^ZO zP@7|D=;goqpOrJNRR>FMc3R#-*KsZ%o|et)&&?|tL+zQ65a zmtA*9|BI@B4(YNASgR`aTCWAKvg~_t=d(G}8)?#^t$Y2G&sjQvPi@?{Z{G|fDykup znzItHR?2zoS9vbn`e1g&l9635n}0H7mG|O%Z&B4h=Xe`3@5UMB9krZuJCP{gA&H^D zsgnHe7lQ(7W}j%}fU3W?UB1qmDA%3e??_(_a#_}SFXwHk>MF0*O!aGb1gg=BmL3VU zV+NM&fu>DIGq-TfP^?HF57L??Da-VFDf6~nmM%8!uyKV_vF#aG{=FqyFeJ%+RvPib zw#q<7Is;pT!Wqyo#o9c@895wDtd&XZ&LBq=>dd)8j=z0Utp38{7;M=)BJr~kf`t90 zrx&^cK>oq{BzZe-UpP)`TgmMxh1#=%Qq}8V+L7Udh;P__IVkwrGUt>W1Wwt5)2|JU z=+IC-=7?4UplY|JR_dsO%byhF_R?OhsHGn3c_qy60;%q_8Ue1$mYD0dZOIc|tP6{# zUNT>Vf0wHMRQ79!~HrUvgoq__`gFt1NHKhcy%usTza- zfe2VfSEy)&v2joJw;PF~>i2SNtmL6;m)$gOqfqtha=EVTwI26Y2uI1q97_&Svo9kR zR@2Q6EA_V;s;6MLt^1!UnGDBM@+<=LoVA6vx8}RD))taCnKr3crMMdsM&@DgGrO_W z&E$pOV_w8+e#9EAc;2n+S~EXGG1@VyD)LZ>I%QJTqbO4r@S@`2y+0Gm+&p8Cn7K@v z;OYH8-m~Y>%3lt`A-jH3m1RAO!H9LOr7*tP>*9WUqQ-IvH>gN}>FK_r*YO$Ku=ylr&LNq^H!JAcxAz%>MWw^=X*+q(Q+yD|1HOmg>ip#0XK=Ta4zpc1sL!!%chJ3@W{&f69u`Gq+vE!OK=0TluT*xr=#(f}*eQ`p1RX zE)NTCP2&|R-c^y8J<1{~MQMSOo!j9dnE5}VE#L4|YwG-nzwjzq2YaC<>YYZnVYBrc za#UdeYLSNlc<@dd(HZEh^lM^GjDp8- ziTA@L!k{11T;lJ8o9+wVXPC2Pg88~D0P_LdS90MM`m1kw`4jib8OPc@!N@l5_?{no zF6!>{krTV^iUTI&`CbnD>E|PAp5JX3pu&u`?nP4zmIXSW3BZlUAg61buud?N<{(Gr z-jFFXZcDY^4g0-=8{pc^oLM%($hv&pCS8uT_leuMA^s+LdnP^YnU8k6KI4W9)rp?> z0$YKHG*MZh!dko7_AL{WftJDX*GLl~o zQqw(cwpXRLO2Uj^@dU}5t%LU(+Z*^YwGAh07@Zz~m1Ti~D}E~YFJ3Ed+@Z(K{9pJd zYV{qSH)Q6hYrQVcVcTDpf2pi-f~9e|rO`y{)EQ=9uKKaC1OxYmcYYJ@IFG!a30n=< zn3XN`^xJzjzT`W!}vh^|LSP4@;e)SE!xMXW$_bmhtwm<<3am=lulBK%WL0$cdWroET?$N#`v*g0+c9PN3a z{}0aq>^i##yGBa(k;f7CT2>A)o^-9p-z95mi!B4R~zsBNT#L4 zQC-ybkF@rmB8}*V3V6Mxc87=(*1J9J<|=z zTZzjRrleV&)hEl!s%z4t`br9VkC{6Sal7Ldunn7`ad|qb`RVd{XIoPu(%JiKOEPP( za#W2QVT_y5eRa(}?+Kmzwde1vH`h0X)$e2IywcLrcFFFVAJF`di9QVgCblRz!Ah43 z$?f_AA-(*0TJq)1@n?ny9_-}WmnIgMQYsg5{{4tIvX^|6twqo7(Or)%tw@Z#%&Slh z@%&mb*E43}!h(8NU47#}CXT;0Wkl%dYc5{8G&7wNvsxiQ`N^GFy00>A9193*N49ln zid@msZWo&7{5_tj{&+#Msfu55|VY&p$P;^*h*tgCm8>gebQZCsnyyRyV} zv1GUX?(FhjUW(Xet9!dG&!pQs^6b^WOe?}kc@!+85^6~+$J-m~a9WTu;&{TTK~;Wtf=p-kQh{1nPOKv?Q;?m(#Iqn9n+_B+n%~Aa=^Ro zM1Xx7BrS)8<>jfpC?emF?&VO@PMi~TP zt$z({zb*Ofl;q`H&8b<luQf;{|ul{&o3kJO} zyCpoaYVZS#&;KOq%Iv7u<}34JL^eLs);QAnMV9kg1s9*Se_~?cM3#?|XLVa;?Iv7V zU2-gkxoA}Md zq@VaFH!OP~H1rHh+?;sPjlB(BGe6)v&?<>X$0QB5wSQ#$f_uY* zSJ8O4eI4!8e)Uq(%PpF>rG0mL^D7=^+TFu+`E~ObP|SDs@UvE%cUGX`7D#9--e_5p z)zXWiq3SuwHFJ3Q;+Bnx^Hu8dS|XAgM_AX@qM)c~@d*7QyZs>`0bHSXJ^8LtJ2 zrux+4QU}8M8*Pb4MrSzsXQclpCrli4;(s*1-Q7(z)tiuZd?tRGOzG~rPcMvx;Y=CA=*|yV zj?K+GKG(sdN%pm&VGY5SN`}}I-+o(lcSY6Rv~%vW=^!5B;_^d5!shCqk{*@6Q2+z; zmXf@zJy4jFIUu@Ti>W;lT{JBAV;D07#G;%t?<3)jD;yrM_u1{06q6dep-ieGbs(5K zerQOs@ql~!nb#gy*}hZCi>ODF4TzdXpQH^&-y%Hqx8HO^syqx8##_j;w&kczOH=H5mjr+~mtKI=<&bAt;OXkEu0Eye+tH_^BW1z`SJd}NgiM0Y& zR0N57&Nzh?8_H#ywLp4V;e>}>i?@c8(w?vf93A0pkXqM%JBUTn>S$@ZDahAZ06Xs zyz7}4e)rw$BP?wPognG%#d^+Lu%Pk9tSc|_l=Q6(S1*URfnxT{2%M~(m_2vyN{BP2 zJd6L27=Lau?Imb*JS`RI(LSCVTM1!l(?p^+yIElJK;j+%puoCv`-CSqt|uSX(!tDx znz%iAWqTa3j{|fBOuTB^wyz4Riv^XD4E@l0hSRF&Bd!?sFat7%|7nR9UZ;zR(UPC;RM&C$6 zSle~Rbn*Gv%abQgR1Qpw>z&p3vnWqeC{ zjK8J%N#LdPnifGsR~}cr$|({ zwk15XhGCa|irN}DJMHRt%C6Xv77tlmw0o@>9~GFsVlLLP$j zV*S%<>2bAE)u=8hlXK!YT(Ss)r{$lW)`;@vMgbX|*sHMGBb#Q;nzc-<@oYrhSx}Pw z75eU0u=@{-=eRZ1Z(X79c*+`B$NTI?z9~8Ryjerb7&)#(zI_%^(5f|yxm|9T#nO~1 z+_U^znT@54gCkSwa8(A9>;u<{O|%qC2AP zj5J;zMDB<P;+X#a9WBSG_b!;;?Fc46#;4^|P4 zFkH(`MFY7;Rms@I(uBNH4FIK!WNX#6Df8#;*tv86(EQUw7r{#|>bR5*m~P`Vge3Ly z9Ogt)BzL&k>EVESeJY91LrQWR^6;!LSY9{%c}wW>+FGMkZ(SUVVojkeTIN28F&UYl zN0Na6rgN)m5Rl%FKer+I1$sx;d5ymdZvI_p^-U#}j5RsH+liC>2@C!V`hhH9-l5`N z&)~WafhM|@N#EE7Zp-68UJLMFr$9%B4Wyh_|7Th2n+VkE8Uwt)DUeZ`Tkv1m4QMukgjt!4b6T%gjT;kHLs`zfziSqI@SVGxa zoM7cd--3`dWZrQQ)7(n{n-XM}Ofl!b`S6rRJZ8+8 zwq=%9Uo4zh*;|oqZ?&;-ef!WIM%KlQ@GPAMs+dxZ8yNcs=sNNJfxS=00tE0LzKCLCr zpS>yfW|sVM)CQ3QN4aXE;=W#=Q8;$BTxD?Q*TKc-j&AXZs~Vj7IoC|U45X_*x26tR z9;7g_qX18Y@D4V0^xs$Dd$Mn3GjNjcIx?hm!>k2b_AkHQDwNB3cYWloY28n3b9|@B zY?$yjoEc%+_`7Q(TbDgy$HkrVVk~81S;!JUE}j+8bR+dg z{ZpuT!dY=%vupdR`SWI_A3h_^kQ9`H>ajHVS_*#gcy3WbuHS{`_T&C-Yy9JXWTrvh zn#Lg_^Z$zSpXd~NrC$w_n|RE2`7xO8U2>B|`ksf_Z~|=*wkiE*66o3b+i{}kzRVKH z2JkD;b;?1}mx`-LttlZ+D!Ci8@!}|9xP;qh6~*B!7D`%3fA+7^xrBaPBmb*{#4GbO z&WP@Ru42yKc|=dYi?XPr`}bYJYYVxV`==y6Do#b((Kv9TsqJ0t>DKIuFYKMC><$_n zzGhkw(e_s4Mr2H1Egp90tVq?QmSlH*GEZp4?*)-1?WMR7bN(!VL7(l#T$WD|nOO10 zFi!y@-FTuX>}~e_spmz+G3+WHC0Kx-&6%x*BLb{sv@d1bj{wL<+T}z6GmHgE)xfk$ z<}*06<%>&a7 zxmKP~pNE~?mUm?;{J5}6G=9Rv_?lJEf7~QUcDnj4_^e=6ea zQ<8x5C5ku2RvhdMipF`BK>$+fv4DAPenizB5wBqOL<1Gcc1nWWGH+|3XNOX!)$zFf z^5ZVRdcVv^5&F)EFh^=4ZlTY>haOpo$Rx%@?{=1H2CGOU9=2B`3#JoW$524jtb|+V zBMpJ*DqANNEqs)@b%mXpTPqJA)WU+p#DW&&oV}qg7BP6io=YJa$SNCRtu3+ev}#{e zy7mJh>Q}3WjXS`I%+x?!n%`8IP<-ts85NO?9E89HYqIhvEHuvov5m6wl8}}io<0q~ zNt*UKR5VEA2!3&}i$6Txfe<>j`__*EAYA$Bg>BVjo0zpvn7b-AsWkTaIdfKIC+x`{ zY&bR5x63*XhORa_J2qiVSoP?zWvt8+fkZvPc^|L;C}`k76FBNsz`m&_LWEpE!CBz5 zI8*@e^pf0*hw^_eJ)DHk71WOU;V^1v}!Z{Dyi-F;x!~bw?j11P8AV@~j zk#RV&Cu)*+0SvC2lMa$38Np#d0U}%6s?xXt3iOAENF6;p)LhAskdU~yro>;*L&=mN z85Ql?<2MTsfG*!*`SAO$B!HC37xtKGNuXDgp1Lx#H8r!LHmRZ(u8f)5VF2uH{|@i? z1(tKt?YGCR9}_>g;>_a}y;G31M4o1bE%DR978qeE35&}sO&G7hm&o~|;657mrmrTB zSIc?=^m5#inPj{@ZNcd~aENxFeS2EmdxW?cM7WmvdOlThFhtF~W!%ee3cN?B_5koO z|9?*(m2+X+9^(8562s=8azHaX(d-*m_VMSGA{i@@(fE^jO%r-r&669F{)m-hL4iz< zMESlDEHxwU(6V{+=7~r`x#gBy8kn#^1@P6>>f(xv#k--pZk6U34Zty>8>>gRg6Ng| zirlEAv%JJXa)-HlE)Mj4RrSdd^WduZ&104fSJ+-YplnjraspaR=?+GA z9*cCK9qE(Yx(oTEL^;W*!!)~z{^nv`U1QeFp_6m(LGMi!&7yUWtz#VHFO&hF6_2qW zehk&+LRw<={Sm$?Sl{Tf`Po`M*|En~Z5=w<8B5`M%cLqhBxys9h3;K>KmH`{J%o2H zv@ndoSd9j18Oideoavun8vx(3Cj+npJPy`6Xda4yGG)?dAlFG~S?mk>br*V3V9nUiqHV{XJu8tkN?0^qgJrVeXvd8kC$53+A+f1A z^h+j-sPkl3=yRd{V1Iba_G0VuSw*WIhBMLJ19C6A2T)-^ipd#pu~{T9KytCC?$ed} zyd|(imNIaJa1efd@X-f<13w(Ue$46i3t6=U6iEuLY-y7L25!^#Uhv?20Q2Y0tqX8Q2ew2{$2I5T z`~;>g`DSw~sH>lmARauB4)^sRJ+bM*{VS5cTfq@WJdp(Gu!{Xq%xLfiYZ;FfXPIEE zIHeo-H-1+#O+;wJ8*59xz7R=(a9qUj7UZ|h4)_j^m`<52mhl0_O*Wg|?w!~4H$v%B zb@F^L%@6p~&Z)?Xb|W^y^Rh9Rjvk3`Mj4nCkQ_A##v-ByU+rFZam;`G`3_0o`PuZtg&}OvjHgS_KpxjfwgHDT=?eEC z`MRq{K7bOZ?ak6M(zzTpk3?l4l*i)H%@#??(VWBsbABv~53BZCeSqU!eL{D#_AGf7 zAxsq-8fyYhhk8(fTUkVHGk=?S1z=N8w=Jco?!i|Ns|KjXRWLp@qkrk#pzKpG4>dl} zVPJ-*NIy3eAytNEaP)%4Z=-Mb5yThcGcoFBhP5m6YHnqt_^?qJ9wX)!_em=?EO=b%};SpZo6Ga z#K=OhL_3XGPcvfiJUcdah+f4@u0h|ELfnT^V4+M~Is}HqIDvO)#T`scTh=oVF)UyH z8TzGu0CGU|o;-Q-G`wuhQV=6hZa(uKy2eJ*|ui-!f^L zbk}lWMDpN*9$@hgW_O=f-AiG?>0P-{o{T1#!t$Rl{{_3lr1&;>4%IhAUl&Y!@~{fahDr`?9TQrix)!b3d8a;zo}cF zMrhSH0$hV^1e}v>L`FiLk8A`sK+b{Y{Izr7dvf;nKM0>VG%9y(2P(AiDxh@FKgSQsbT25flTq3p!RP(np4r?y2jhq-YB4TPGbwV3@hakd9f1>d=LOmg)Y zPn1jC6S8j><-}0|@JFod=me5BKtK$NIoz?Bc-RQiBihMW!>=}N8pfT0o8a!`&|NG* zrqru)SJ?sqH;uHtxt?9tEgbd+cP4D;PKtJPWC*5Ak3*K6ESY}w>T&oxx~P^Nh!k>WB<&=zs-RcAk%q`x z>ELg0W<-E0^gl%}OhuYlx(nn@{Xu>Q50TxN9MG;VHCq)eG4**Zg9eHcAERKbk`PhF z%-}$%Fbu5?>#{mN&8i0O7-}JS!I3s=3pu<(=9WyV;@;qB2RX8~BOQ|WXLQK@=CQn= zh>v|N@0-UQ1h|QGYWqV=irE2NJbiwU&of9g6Hd&Iib~7N8(+7(`Z}TbQ?NtKTlk^x zlp+U%Wpyv6t3C^nuSOHM*UQ#z?WJoAF*R{|^WWAN`VJfSa{rVK_!Fg)(S#puf6OZ7 zbP@$P1&&ma7NVHf@|@wDY#Bs+LYf7yh75H;N)R><2>Jwf@@gis4IF#Nvqb<8837@1 z5)kx?NMDx*%}n=u5JVk$uj@F1RXAj5jOO_^a5MawLOzp7h>p2a| zWobh{K)JpB!_4*%O9>UdM7i90I;-1nClCQeS^a+IuFRtRodq&P?RuUl#PC;x$VH^^ z$ku{Z;gOQ2YVMH_e(H&HB9s>}sT9ysjubuB90YpdCRjyiXG!uck7MOPuTy4Fz@$M6 z@?1!^Ki;up-{WIW6<)a#!cb6BqG!9x?#?S^Twz9k^k+Sbeptc^Ot~1ZQ0d9Jnu%7D zzZB2Lj^H0BPM(|@l74S`aa{883->c1v82KI#2WKhY50OK>tQn-bzml-fAwoa7d*55 z4+CL_YqWtkF zPM+k(2^_(Ja6+4MXJpD&->8PZY*z0h(|1VEv;MorjrdFEOFBhD6wew<2P#=QxO*U; zux+l@dYl2oVQe0@3yFioDG=>2YyY6sj!W9+9XWCx6`ZVEfaio-4A2|qERVROWebuc1II8T6*kiMV`Ocv_6ssl zu#<2|Mf?a24iPw<2a;eos^iZmhOHC*5i{ya$_X?$d}!GT6q3v6`DTIf5;Wq-xcW2D zY>Og9V-Ltes1+uM5ZEP$&^QDN4gwP?xbq2Y@Daif0%!ZfkKCGyDI!f!)P5mI5u4noU7;YTlqhuBI^alsw3@|WmLz@F_72!uBS~vg3*8GuiD#h_ys(2yneX8% zY$CS}-++@;b~_FX&A|t z;WgDxwR)%IBLJz|FJGptCcc3K+#Eb_lw8q~)zDR=3Jr365Y_%c?!oljYs}3=)$|lM zQ=nC(8M2!MTim-z=?Cq}b2p6|)Q2l56rh0$n!8E=*G3>l$GIqR(N7-t6n>PN7ui-Q z<`e-_aRBEU`=713Dsbk=Vf>^pKW!i!qVhK#_ zU3ss~RGz_swAuW*r%FOXf}*2|0vgEq(x64jP)r=5qqsK4198}GN2sGbfzmu}*9DT4 z7Xeog(f)oUl_EY3(lIbD_ByGyxU)nfcZ^9Gtz75t-v$(Y!D`zcwL%#p@FW4O|*T zEb>(%7e19!AP#KRcT*QS8Qb|O(i)i^M+Zr)oaHy-JP9mMlpG-uk%?V++2xD+$<#y> zk0eB1j>?`Nn$p17O-VLAcaw*7epJ-()S(M@`=l^yz~S7LoqZA-u;q-13Qpv+$bnGQ z4d4cEhv&puZB;SpKrl{yBjuRm3KRy)*0g*2`|i63pOA>oyz$1@mg1bc!C?b*7o=GG z!o&X}SfaGx*3OfRk#IiKgDvAPy#SQSfRJDaVkm$#B&UO1rB@{YJ#oJHKN3+u8UROQ zNK^ni8p_FRX#|n>g>1cFaPAH98#fT22yErx%hEQP3TR?TsyBud9>#)uk4#+1v(#0G ztp=F8ntGdRyd4BRiT;H1*F5qF^aOHnA?b_iUjUz+)xar|`mvSVh9l7f8rQ67@Z4_# z-Ydy@%6=nr@vaqOfitiW=7*3texEXB0YA$RpaRwsk4l2FE7p4E!Npd~_j*B5F_c?9 zFy%s)Eg%IOP7pfcClXAxkSIB<548_Sbm*6-BAtl-AIt!3G*2UILp2wNW*NiF8?~K za8K@`JxT+a94CYuB7HU#QokI;oBXSP(ob2%974V5!wzNEMN+=Ixg5g^48WF24bfsU z3OxBOdw57?^GV?&lwOzO5q-T}w_yRARVd=U0a+`=u6;kw%PT&9{06vp=Ul^^(R!>=HK##gSbjP0F**;P~o_`d`%A>p3iD)hZ{>5`+I|FRVk zGkOp8a=>@+8-o1By$9oPOkn;VK8T;07&v3aRiFu>_cOOld~IeW+Y|_P;05I|-fMv;&4p`Tek0^;2% z2|K4$8|DK|vgne3idRqv%o~19%Ccp?LD6VBhK9!AIban*J|6>{uBo|m9kd9~&7IpX z1>aOc#*FcyHUYaVTRpvb9&+^*Ch+(4M;RUPr;v0XqzMp*+3)EO;l_=9;js`ykZZce zi+o{HF93oXFh!p{98jlCOCkQi1At(A|cD@x|?oElv+zJ;NTT6@-P06~(y zF%$p}^QG|$x$Gx@__;!S3^z_#d~Znb>tqL0WmTjqU{|x~Mo{%JjTn@&1;2S>HYyuF z(!+T2N4vV*jcC0j165@>8o9-T;mP+|T4F3k3{cEHsgLgl~UJvEy#VA6T%RQeQDp_%m$B z83YtbC<0mV9zG|~kIzC{@@PU6zdiY@K`j8p;9MsoMFW}w^R(avlXtBx?1V|+oMQSD z%mLLSV!n?ipcK&`dMa+eCZ)Leaj}9my$fI*3Y0#RdOd?G%I{mKGjryHwa$D2IzVFj z{{No36}|^`d9r3Cuv;K2%D#IPQ}Af&xC}y*=?%vJK-;#IkR7y!Cw_${hP80{K`87e zuH}wHK+OxQ)%E zEBE(Gfvk#B8>RyY+GVi8bvSQgFiFRzoHY%GDtB02F`tb=*@GfIsciBy#jV$R!E3fQ zb|Td;!9F=!-Yy)G^z{hHM85qf?`C%C7L&k$1V5REqczB(yhn3D+n4^G|3h+&b3xyZ zYP$j0q3nt#u+bDZ(x&4f_PwqEuF}#p+Om%bs3eh6H)v3rQP!77!NOU)(P?n#YV}fP zhroqdK5~`=phjVRt{z+epM1B`AfNU zUCOI}LzkcGpdxdr^@TBLli4sIP_I{E;tnwymH@3f$N^w|gpoqO#E?U+i-HUwjnf0$ z^I-fa0q2zcj=NE?W0J!vLX50h8j{OId&Ql#0iH;ap;_% zrug+{IAW1CvVwXueZi-xv?IT7%gTHy(^mND8LKsu;w(i68_kJzjfQAX`)hv>(^8+Bf?^KcvLyYCJUT|I_2=} z(cI&CA=SY9LbIEf6jOYP#0mNIXBsiA@sn=QarTaz=w8UT=MdIlCP0~m!a7RlD$$pQ z@`p4q`C4jJC=SO&1jwwA&Tf~|hy7xTKoBpy!?A`Fk;(OlPx(DoZqovr8? zdq48@^$|;nYDxzq$}zCpP|!$&On~F{iGWAh>#1q}CUF8Nyq3SHtZ70VT+1dA3}yDy zKnyL<#rhc{O_74TyF^IKL?heB;bO(noki9_{km)j@ZoSo97;L%!Ydd5_}WZBNobe2 z2`fk-n=4Mho$5!H;fH4hcKm_;8H|-q{%GZN9P@A8W~Lo9ufJ$PV>gT*Lsug?ZyJAm8|O;i}o4qWq<#mI?_0SFn{#lpFs(VtlFy zo6r}CQ)$RgvBM&WLUg}n*f3$o`Tue-N;D;QSBgds^Dv|#treXDf_k6Qux}If4)#X9 zi#6sPld^Z0=A%5igo0c)g(90`BrqJ{ri#UR`A7BEJ>Fl3YFsX_$d5xA)=G*^`%uuaISyPjK8K z26zY=m$Dlsw6>6GClGV;QC&bj!<$@npRZ;}!orEm^>QqFnC#{cJuS0qGH1xI;98Mo znV`>m7ammF^XJ6G3}$`Up1-9&A>uEHi5PK*;sZw|unUpnNuHkU`wXNE9FDPOMd+&? z&|z_kdNdn5b;8w%kh1tt{oa&92!_v-p)Ns7u1J(gcbPPQ6SDo&RtLwQD7mM~@-~?* zc2;k_aXRRjs3i|JRHk+8POCl|cIjx`<;{V`B9_I#hklS8uPG$6+DPJt6&z;yTh3DH zLp~em50L&UDq7-lHY7a2DAdao#Iqkuk1MiydgNdPm3CD2rBM4PQg}r=sC2F105?z5 z1Huz+(*z~-Mwxe4gL1+YzM=D9C+5-|v<*s!;nK32?gO zL6GvYr5^Hf_gfgqsC>sehtt^L92s+4J3HO)pF6*989$>GvhO52y00<*-1(S9{?R($ z0MQF3E6y@-MUxa19NI{;#Fj4YECmP;TbcoaferGAho;j*CP#*WsTc*A*Ax(7WnUcd zWx9T~ z^=`7Dvd%F9*;W-jlgKF`0hT{tFc5CHCprP9q%6pF{3X(7 z{)U}k`*jmi?+r-8mso}C4xz0ui;Y5hDfIKBhs-bQ8|gll)imqY02{*?JeGgQIHT*ojG1(tVsva8EQi zY%LKhW@iL1m(o)Q+fSUho*)j1^?wfPDDnhaGYO*^@7?4fDbOe^ z%*)2OK*W80@zR)^LM(=W71|Am0<9Ggi2vlzs?=VSb8n^n#IV1^%z~KtN_GZ+v-Hz# zzQn4wT~JP(IKh8e4~|_;shiGp(L{9mLPvdc1c(ByZuq3pUeFnY(u2jlkMtY*>Uv^b zQ!Hqe2kJyHiRiCDvy^o4380kJ0Ra+0SF$h~pdtGe@R2g~CQCc=I9LPEN&=qi>?87V zpcny(L?KO3QuTV=nQGS_m~9n-(Saigd=Of>yPtu+|K!t)l@WEZF8$koq1nB`UwRJL!z)JB+)M(*D zvL=ng))J?lsyEPBFqR#fPx?^-1z&XIpKJDleOt(p5H?H#s*8<_`yA9%Pp-(@JBewy z!}IsVHn(@euXl5I-M(RXH~()K*S2rp?lYluF&Y359O$dAi@xQiqP4hA#{!`&xh>&Cg+!BJr(qCUcbg3e7Np1fKoDqMNN63PV}j%m<(MZoLMO*|0z!MU zy6V#)f5Fd@MM(!GGM@nj(uxSx{ko0M-MR6g#&*s}t8!w2U!p<^qU}NUw7Z|0+Z3C%I+M_cR{i zSq+CYn?trA0uW2X&SmZac@VPw7`ox~A#X&Xn9QJ zke}=5cgM-uDDIFuDde4jb{i2e5ca9Ovv5nuG>Pz&mA zIO@Z97`zb#&j9j6m$TtipY7nC9O=nVclV>CnT9tq1DWJfZU?3i2tfWJRyV1Rm=8OvFg>0@*pbgRI0Q6kS z9)VM_fx0zGJAj6FYC<0Bdf5@KGqISn;oyWlkpyT&tkJQqE4Ric+yD*7#)D+e*ej~x znN@Rd5+v)HQ7QJXLSllOMVK$LtOBq{#KvB=^0wm7W(CqJfbuxt3(y3w^?eGZn5qrglnUcjWfnJmeeX#dEuGF z())zmttLnKHyONx4uC%HQArS)qS#Voa^`%xTyy@wz21DtciJN%G2W^3BAr8xq&Cc= zD9@3B#M<;q?u`hzs8Z(yBo_Kgt2|2?od`dXsbn6!gUB_A!pkTtg~Tg&-UcQ7GJ>{3 zPI>e}5o8^vbMMk2A^lIJ(U955%sH+TOC^*+nuu0QZ1)DL`G^P5Qh8;ohwx#V0Fi?1}a)T_I4@3O#f*O*2EiHCZa2(rO8U4 zAEGlE>BvrSlD8LAmLD@s>w{pe0K`=B>Yo!GnU9zWCJ+OhR$x@Xghyqdw^*KkGNc49gX3R7#6Tg1)GbI+0nhxF9s0Ul@eQa3sOwz>goo_2%mOD_#b=k2?UPnp zj!l*4|Fy_xe^Y?WDm#D=!J;6!(|TE2Y!_d-c(Ns*oeFHx^&m+IPak39fNui>jDSbR zB2h0Vy`Fjt4)Le6EdLGj)a?L=p0Eactm7M&1@@<202H!yA8&AxSBIxqsU|($ZATPf zf65W|_4A`s;A>qmAaWBnLU=nijq^2%I`;*5c- zNAu@eO((YGa89bqIf*Hq8tvphWrg55VZPQnYCTP9=bD6rh}%2vw3!lxWZp zYBe}Gw41P*n9?&$ukzvWOGI)Gku)Xo;zOxtCojAI*}b5LDFo7|KsZjX3vKL@Gz1B-UWA^#x6dW~Sb%HySxnLnA?+#@7?nsbzeWOlb-Rzo1LIiv7Ye zV@rW^N>0UN$RqV9hxrhus5rN&B6S7YoD_i`sAfI_V=2 zZZ;!aBh7cvD`^S>s0V82P>@Q+KnjQF=#6@Kc9GVwfP}|rMS(pD(4*zPVk=#)$vgIG z+pXu|?tp1JDzBf5K^bg|hBq3q5^v(|$jn#Jas#+sJbz2qKkKtoSkcQqv-tr)w_x1U zt)0yxA3(|qoSrxC=FK!v8$C$c;1H@TJdFqir-u>ga3$sJM^uY^N7}Rts2VXDflpYuJQ4ALM!mN>F8`31!V^+yX~L8zB2&blDr5_^4Ut%mam`?Ac_n;t&OF2bM^@ zA3_ab*tAwsK#7J7&hZM7#5V|M82%9)HHOBW`4cnWdAa7=wB}$21IY({P~Uv`|bfUU2;!0jzvN7ff?orOR^fr=xcE@uTPZC&UlznxyoPE3eRb9*U9&r$qLf$yOD>LbHP zd@CthSCZ`R=T@oxymV`pc1^d2+H6yc%UPl(zPL3J%GUe%(4HqTCKogAAY|iM83vE* zv<5?+vxkqzX)&9vQDC(z(i)03`!iZ=s8qlPQK_tBLP$%cA2}>7y%U&(U&8P^W0ZsD zvn8W8#m~Z(QPAc$x%{Q0kMo1i^jQd9h~pJ~`}M5{hauCXJUodcPr57XF-6i`i|#f& z9ZMJH-W}caz@>#D{V%*7hX6lWdrGbn&pAPlIPY{%d;+AVp{} zgONk=$V10Vu-yYdMDWsRdr@5TWvKWgZiR*%g@t@YLNGO@`Y1rytj5~&AQGnYWhEg~ zr#c$USIU#T=~>X3aLDOU#2 zUysZiBoC_*EQP`je~DSgrrA91E{bMh7VTZ0~=(XuhEMyP$qyT&ViB#t|zmh zJD$&9;Q%DC`v*dVE(L<1v~vC}+sE!(fA|c?A%ZSGGY$Zc%rAmIKkUqHD7x+PL}->| zs>RK6e8@)p;~pf3k2I(?7-#`I416H0;^Xe$2&!nFVSj7PlFeg!Rg#fyleS06!e#ou z!NzjNS0iTw$P>TFG{--LE}$tvMv z?O%kfYb~LPZ(?|gKC6N?&?*^Vh+kccI<(I z5bSfv0g$kK9yoF$Eg^zV-(9!6qdDO%=QmS*{;?CoTYX>%umjf}z@i@?3>aEL>5o>j zVZ+$0&;1i}LxUf^c@7WiRc{*^onFjw6u1j^AWPFEky&URd?88Ib0z5=Kt{LAunRt_ zGnt7eDcG)8Y|fKG4CXkiE(9xFv4BHeqZ+qIBphhCVCUct%@W9}!WuYR16(V$ zAAGnYQzjIyy7U7bEn1Va?l&|y(1Z51n?T6Z`G_~__D5RLrH3}JnoF$AbUjAgGcqNZ z;?$AsFT`i`g8~+_0hI#9x^pT=t@;o+G}%>8+)~e%%<@bm9m2nALhk_uf@HEQ6NLl^ z0T8Ct$KJ6#vjc152vI)DMd(YOGYoR0`a^3C;KaMN&_F_FEiU}DLezC+^-GgZm7Yz8tFrE=o6@G_xxKm+ zK6LPG|6+8eC_&oQ*)u3lun-p%Wg8~wrU^lM1UX>fdJ}-rroL2Kmzh_wYk3Vj%VQTV zRM=kHl0fzmQ&E-~2wzVzt{V*0?HhXjV+2Oe%3gO~dSXe0(w$~%c%|`{k8HhuvL4GO zZhcF)un%5&y7WEUw8*ar8J*t+FC6W@6p&iq->D3@;F_2waSSO2n+To<9p=Z6&tA7t=FCc6 z#i7IUU?A#${`|WIo&PFn|5xevCRJJ5bG;(@bT8?bf0GK7(`o6NK~GDt zFcg8!-s4HH8Kq&DCV8|5Y4|uj9^!^V@sWJeMI{J|>N@1R)a*!O4ftDc39w;1JwlcL z!LRj*MfPZM&;d|coK>GtSGssu%QWcl?>YJl+Sgw`xCU*O#lWF~RN_B<7)FoQWze}M zO+(}|sr?tbII|^wfd+^~qrZZHxIQx3Y{r+7l=L??blnp70X@n|lG=PQ1(l#hJ*q`f5*(%*NSmv2<$Jg+nRUiUBD15qAp1vkNmA znJJsRup_LWIlB#0!?q-SyTzxW7Icgdxn5W@gxy#~v3SO3Ujet#4qi;3hQ8SzhUk&P zW6Nw)@fc2OlJPV)*rAs?K*Ju*wB3lF_%^^HjoYieQ!q_5&*tR~ph`($+chUNq<5Tx z@`6*^s5krH*j5i{gJ;Zi!;*Tn!t*5&Q)(9jYq*>gZf^nD#A({Fu1KU`JD>jGg zoC-m}*89bQ-Ii+YXYzZxFn|+su4-L6;Vep+bib)trJQP|Rm3`o4&cE6F@3q54V*Yc zi8mAGPcX#Rs3{R85w?lfk-Pwr!kMec*-|8##B4 z7jk7=f)=Twk|lUz#`cm??=M6RArsBmYeMc!gx`3|AG;FxFk>C|zAcsg3NK_{c|nm; z`W%4vhRIzSr8N7qr^p?aMJ!{ zjOFo+ou;J;{_U0em>58he#tYv`VZ!0zED>%K~gTks%Tt5E4Sz590cq{iZ~_u7E;E) zc)UDo=YdWDN=V$a5;yL*`mkEvn#6%nai-J7o@p1135B*IQ@IxC3S(s99?nSv8#KmP zA^?&doiQfQO0|u2V;V1xJ}{Z!B(Nv9R_GKN`^n+;z&k_~@?>WF?}c|Ezrila&mTs4 zmp{$a-e&%kESWL%*(R1$%HigYQrFVJR-cO2RrVX@sTP=CA!Eah(KS_^0VQ%I$-#Ks z9Q0NKMKH-`{L`jhNXFsLP_T;P2H6QN5(vz&5CWO11hm+5gsEX#WdRFF6{e?9~)yPR>0NWnGLvK-^!f7nZc@C4nr*4G|5`6C1 z)xSCV$lO&gyyJF~$V`xT0@I1nyYJ*W-8Z9!1^ss6%oQl9&{-10>Q7h0)13ph05}y* zu_=_2_^z2J8(s#qmx;jcX;Hs>7q;&Bl=%ql8=_9vMj7SZ6 z@8g3_kj$OUX+Bf07=-HZuv9Gock!ltb8RWaEuaY3Dl~$P($#Dn0#6tlzMb zfb%+SZMUOMna^6lAYo2y;52377NI>MXvP9VKT^!c$!*Y)!c2J~9Bxey%73Fy(uSRQ z_)#2r$?STu;~3cntAGZoa0ux=GzcjQ$}{>>e#rAOC?Ars>Kqw%i1J8|lSVUKSSH6& z3ernIDnZ-K5YbxdK1W@-rk-rITQMsJicbg>7|M?%9lj6A+~b1{XQmk_tOnmO(m>BB zE;cDggw|)0Duy~oLXiY~95EJiG*PisbF`g%rQJ4z$1EH&+sqSo?(Bo9Fw6|8 zIW9w^2zt#IEnGMOLZ5C~IP#qijM9BmM06Oa`rh#`AT{JjFLpN*dePNV8JXNlPD#{= zAIPup+_Vx5iQ%)n6h7=A4wZ4*e2naiST*xTJn8dd9VfTBpIxmE@fO_Z)9gid)6D6A zGKdq;9*guTAdM}L-UDMm9EB5}r~)CON-9fxkPuq|$+aFGmp9mKCbglNVlVX+9=ay1 zTwN?XN%_nmQ7$G^$WDU5;JPt{N3%;!5vDgJ(>-w9t)aXDPoT}`TG6v+!a(tKBbaU@%Up?lAc0wTk(Y1 z>>lae?0yU`p{Y{3OxxM!wL7h2EdOA2_L7gXt5U-gZ-??Gayd2c9Qlye{*N?H>mZd| z(ve%j(E!>arHYgSp|<$}JQhSA7R1M+Qt&R5U_6}OI+;PDv7C5NeR&i#7St-s(>o!Q zJPYlv5rJT24914GW=#;MzpW`G+zBJ=&jxsHs4{^l5(o;#%RGq?DVRmC4(73@)^=5{ zMl%O9WO~-E?u4(a?REPtH(X>Ime`UO4)E*d>}f6TdKJE=g%bLC^m*esB}NId^XV72 zk_AWbU|93JxoGXS3jpy@$$|ZR0JF>Vx%EUo3`$CrVfX@Ii2~e?Cmkb)d>AsA6{1~U z+Q$s?3hyPbygcQb%0oUy5uy-zzz@?t%)ag?9nE|M^K*A@y&n&Ltau&7gFM!p6VGeB z0hHxl07_<(=kWW}Ly~VJzrlK0o4V4(IH@j`;gpY!XN}DV(j&=hGh>1#(BQ+^ zOo4_x0k9^@btk-&zLGj0tw|$ApU=_jf+@a78>5`VcxsZ^m{$1Gv3qEp`Me0F+gyb< zv@ZLSZtBfX&v9xDASC>qCX;604BUuZNVh2We{5yiD|In4&5~fvqFj;Kr+?vLW4iNV zk|ne}oGV26Xh&j_wCls2zx(xHkN^6vXuW@Zqtmh3vN*wGNaEfh822Rs0q0gIb+*H@ zv)Nxt9#W$+z(d;)!6~$bwF4HAIqihKH7yW{KEinN>{_j<8OOUPa%;jmPVMlifzGibLi|K-MCE5*2G*yq7S=a znAGbDBowS_Ii3xphWLQuUhIE092h`LOpM`(7rII!6Ny!W`D`%#;X<6^8G!^RAca1K zK?$RZ4*mu*(28qQ#7yo@i|;SfJbIX;ZSn3Bo8viqlh6Jg9CmuJ^b%1l#8O)r1!a~_$Bw>x~IEq)g=800uQ{MOtn?g=c z6J0kN#GvUz(9?pZMkZ*QRFRRjl$|{J&>+g;`N5|XaHMwbt-97sVaS9EEgA}r+fo4% z)0b%m=ADNb&du%a{939yQEow) zKF5%^YEK!&qJ`o)R?lIAB=`=gXi=rDMEI3X)f!^@EEr8KBc^w*+bGW&rEGyc$ilZ% zjJ9L?sHmQZEo)cbMoKHsj$uNMJuK|A{4G`yq}E20g< zOFlhBOYn^iH9PDviJ~{5Vei2W5=RYA%bfZxan$Itm&vO%J~2SFt2TA(A2KObl$T#3 zRa5lmDCktaF}a}xgB$u37^7t{BZ~H9+MH1g;0XMmrfr&cbUQgMN=nG2^J492#80CV zF#Vm|P{rQi^xbCnyK9r|O`rYyIHTXckN@TW;p|-CwW_Q1{~kc_8lgFo7cgWraweR- zks)Yeh?gO4MjIL-BsIl5;|OxqN@Yq>&>Um}%h785Aeo_}+(f)fXclOo+ypFA&f%!s z;s5=v-`@M(?>Wb2KL5{0>fFzH_g;Jb)_R_2J?o+IOAdCxq>3MB{6zXd^WY2Ww33?A zN@%SaU30pZX25GQuAnC%@wGwfOC+Hu*>@ZrwT^CF`dH*u4ZdPkr-<^4XJ0XC@|)|f zAGG;;_mXRe70V!(-Z1)t0Fir#lIW9~gSXs9J$th@;$xQvEc^YVdfpV~8Y_Y2GNRl>+rxA&C)0s(hckS8!h0x|>D^9BurG)kJ+IPNE=F$$wW(bow>zmeG#} zo=bf9AS<{u+IUwR*8u3hamH${%ewmdPgk4J|KGT4-gHLT1(Xp@lVO*212rLNs!Q?c zufBY`bY?nBU)y|g_p^uYH*Rpp?@oVxzymX%2Yq0CBXfhO&2|bq987D0Alo)~Jw04P zKb~v7-?Q@};CuAwfzS4Y7?n-OFK!#-nC247L&x2g%(@OC?OGK~Mb~jf9ImK=+7`et zijv9WlT5b&pvc zv9)CnCqm*%Qn-N@ZwW6_HfPaQZ24LDZC$dfo?#e5e%%1)~K8GlH*>}&gn50V*s_*I$s zyPUq#0UBc2nrhC|5A7}oh12C&RiEt);PK$)@4D58u<@y zuxthtDU5PWngO}t30kLPOQQ{IgjxE8VdpwGLIRbf&VG~VF?iAT5dmL zM$1<_%=q~78Esv?5RvAHv5~gx0Timc55|2YERGmHsv~ht=nAK(C4fG2rMgV}pT5`z z=veZ_iCZ>LT-bO7*?ILIcl8O02b3xZ^+kvFt#pMAc;mQh=ShIV&SN&xvF$B`tq@X! zJAUkVEt=>;RLEA1lyaNx+;kg3o5!f_~lv~K6QY0{t zL72tqyLiGcpPBNDMZ0+#@bd8L)1g@DANV__MijUDt4J zODL%B3{#x0A?B73U=~Op zQ^I0{?CHM9S3?#GnNHq=WTqo=N&{1O zVw~)R1Gg3W@$XD+;OMaI&O*n1GWhd8OgQRV?Ihmo+xtF!3ebd+2&Wo)rwt85&|FXB zG1YKTVZ zkxF=whf@a>f=h}j@s1V*nyu8ixWI)Mde3t($AIqwjxJ|<8&2U*9@~Z)mLH_a-rZ;O zfkt4WyV7G9*~UnaiM&NY=hV*L_U>Qse>2%o;e#JR%kASBMdTPYKxUoe>&~{#Z3oBH=!$l_ z>U4$t`S1tf*&{+L5LQ{KuZ7`8&i9jXC&H`mD7Mki8+01?0!HE$r#WnuvV-)3Q)LU1 z|HOqK?S5<3s#RZ{&&hi9+>h6E-aR~4WVAeU;$6mcSc>*_i89M!8~Jeke{QDCAN0CpN&{8>ac z7qlc5Zs7hlG$@KBC&Ruu?A@T_!gq?CMml6(0nq$^QE$*9(H`-21e7wdVvy50nT&yI zlEg}4gaq^TcvRl~@1SV*)HLRMCasL5GA zu9zq`4!VEw^6A9rpr$A5X*KlJM(*l;?b5*KSmv%K=ry9?;?L^WNLu zNyv+bY}Pq%^qGFoW%s>_=>?k2fBhmh-X$I(qeaVt4jK-LPJtf8ogivYQdB=$YCM5N zY%x6ZB1>4tgu*MB_BW$U5A8(QH^GO#boQ4f;b*XPFcpL_YP62+$8LEx{G*Cdt9i8y z)eTJ4RgSLfp| zSwULov2V0l@rJm=CP=KdD(ukdInp6deX7Pv$`051~vg1aqcUKD- zr5*wtr_wr?pAg-ktR?G}QdKt9Ra2p-RVgIz8f?3kA0bU#?uPcy^b5n@*cC2N(x}zqLF?$u zW4lWnhprloy{qo4UZWT|cH-)?cEtGgFPuP2x$F$f!_85sk+2#%pBiz3lAs!>83u`?I^h z+J^=Lxc~Mg2dB+si+bGgn}blWCSaOz!ug0kA>x z9N&^}wM)~=c+q+8y?n(9tu5j71m&r-Lgew7e?kbcxxRHm$iVH($Q zoFecohvlO0FVq68A0$@|V2o$Sp0&T8Ea8Qz1?Tp;8@IQr7tK!^R-YYv6brje8im`m zt4~`^z?4gp2Gy0Z045G+w`+z$rp~H7-nl}98qB>ISxYi8)`=s5TOBCA`6w4^)C?de zNHv{>bc-H`P8)+*syw52Qgqh+MVd-SK@w-K?pqEsQd-KOMGk0|U<$b76Vg(8rA>cI zwSda9jE7pP{aZW(o1BvA2=qs1m1&1l`+R-q9``RfbNW4j^BZ6?OG7%g%}`d+d~;E} z>;8e9WGYWxv6_Wk{}{S&^xo}{3)Iz-2UA+kC8-{gq}O54_K{*(i@VeZWx#HuCft;1 zhmH$mlN&CX^pdLy&T>Qnb;TGw2JQ`zQ@vV?T+-FG3dgsd4w&aRSA(L&>eQ=0{MyydC2YY1|42H@8ak5>|J{IK zHA<-H(&{rZ215=u_{EiuU`&)!tgVfwNmR{)GRCW9IsAup!mdx{TgcKaDuA`5(N>tI zuP+WcQkYywVWOBv&dx}EUPw>6A*8&LLN6gzO`@u#Z7kUK@}Zf&DenyO63QPE=VP^$ zw>JB~1Y&$^9>o0iK5ZWS4E*Nr2aMmd%gqNJdF*5v^h($-RJqHHQz{CuY+Gs;lm*$2 z{?>wn2OWAdgMQ5&gFEKl)m?q z*b%x!8FkU-YSa52=mr-%ACNVs*B@9b+unQ<q23Y-=sG-4Nt2=MQY;AyRitCeSgsvb1Yb!$lti=?`lLlNASu!2+_59l zVp+=Z+|D%hR3QgcOakDmnFhF&?TR|B^h!$IXbQ5Z)6zH9Gy&B>%EGQ$Q8qp+aErLi zW0W5p0*<4)eEz{tcliB)5rdH&V#81wFckez;UZL|x*`!~5gAeo$;hfO^7h;J10&V$ z!{oQ72jc^pA>UfaxHEIC(JO*yz(L@H8#1e$DhG)nw&JWELC$L zBY>4Hv!-qTau^VZUB!v}{$h5nj;fx!U&zDo55pWVSUjXtW5-x3tgXF->AQDL7}Zrf z{jI;4uo#|}L7j`gpx0$9w{v6U^T;XXYV+-ov_$-sZ2)eZq<;AG3@zP~JX z*w~+}GXHJC_NbfNL&Er30L%5i)?p*DM%uyF&|bcd@Pbh(X#zB<$DWSxAqnR+$ds74 z8hd00gF#{8=)sbW_OY9z5`-qvw'&Xbs0m!_-dpU<7JdXQEiLc>;{P94RM8M}AC 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 F{y)Dvl#~Df From 775007ef0d7feefe5ed8a9343839a30d56a7191d Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 26 Feb 2025 19:44:28 -0800 Subject: [PATCH 20/23] clean stale docs (#5536) clean-stale-docs Signed-off-by: Jess Frazelle --- docs/kcl/HALF_TURN.md | 15 --------------- docs/kcl/QUARTER_TURN.md | 15 --------------- docs/kcl/THREE_QUARTER_TURN.md | 15 --------------- docs/kcl/ZERO.md | 15 --------------- 4 files changed, 60 deletions(-) delete mode 100644 docs/kcl/HALF_TURN.md delete mode 100644 docs/kcl/QUARTER_TURN.md delete mode 100644 docs/kcl/THREE_QUARTER_TURN.md delete mode 100644 docs/kcl/ZERO.md diff --git a/docs/kcl/HALF_TURN.md b/docs/kcl/HALF_TURN.md deleted file mode 100644 index c4406d02b7..0000000000 --- a/docs/kcl/HALF_TURN.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "HALF_TURN" -excerpt: "" -layout: manual ---- - - - - - -```js -HALF_TURN: number(deg) = 180deg -``` - - diff --git a/docs/kcl/QUARTER_TURN.md b/docs/kcl/QUARTER_TURN.md deleted file mode 100644 index 73972db5d7..0000000000 --- a/docs/kcl/QUARTER_TURN.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "QUARTER_TURN" -excerpt: "" -layout: manual ---- - - - - - -```js -QUARTER_TURN: number(deg) = 90deg -``` - - diff --git a/docs/kcl/THREE_QUARTER_TURN.md b/docs/kcl/THREE_QUARTER_TURN.md deleted file mode 100644 index 4e8da0ac7f..0000000000 --- a/docs/kcl/THREE_QUARTER_TURN.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "THREE_QUARTER_TURN" -excerpt: "" -layout: manual ---- - - - - - -```js -THREE_QUARTER_TURN: number(deg) = 270deg -``` - - diff --git a/docs/kcl/ZERO.md b/docs/kcl/ZERO.md deleted file mode 100644 index 2c867ab95a..0000000000 --- a/docs/kcl/ZERO.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "ZERO" -excerpt: "" -layout: manual ---- - - - - - -```js -ZERO: number = 0 -``` - - From 2efea3ec064eafe8b414800f2d249881df87cb02 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 26 Feb 2025 21:15:52 -0800 Subject: [PATCH 21/23] export shit i need (#5539) Signed-off-by: Jess Frazelle --- ...pt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json | 2 +- src/wasm-lib/Cargo.lock | 2 +- src/wasm-lib/kcl/Cargo.toml | 2 +- src/wasm-lib/kcl/src/lib.rs | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json index 3f21b91e67..8eb0256d35 100644 --- a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json +++ b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json @@ -29,5 +29,5 @@ } } ], - "kcl_version": "0.2.40" + "kcl_version": "0.2.41" } \ No newline at end of file diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index da96ab7f55..5b1296fba9 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -1724,7 +1724,7 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.40" +version = "0.2.41" dependencies = [ "anyhow", "approx 0.5.1", diff --git a/src/wasm-lib/kcl/Cargo.toml b/src/wasm-lib/kcl/Cargo.toml index 6dca5c25fa..b74f664256 100644 --- a/src/wasm-lib/kcl/Cargo.toml +++ b/src/wasm-lib/kcl/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib" description = "KittyCAD Language implementation and tools" -version = "0.2.40" +version = "0.2.41" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/src/wasm-lib/kcl/src/lib.rs b/src/wasm-lib/kcl/src/lib.rs index f4ae509fc8..da824cf573 100644 --- a/src/wasm-lib/kcl/src/lib.rs +++ b/src/wasm-lib/kcl/src/lib.rs @@ -82,7 +82,9 @@ mod wasm; pub use coredump::CoreDump; pub use engine::{EngineManager, ExecutionKind}; -pub use errors::{CompilationError, ConnectionError, ExecError, KclError, KclErrorWithOutputs}; +pub use errors::{ + CompilationError, ConnectionError, ExecError, KclError, KclErrorWithOutputs, Report, ReportWithOutputs, +}; pub use execution::{ bust_cache, clear_mem_cache, ExecOutcome, ExecState, ExecutorContext, ExecutorSettings, MetaSettings, Point2d, }; From 1104d908c0b66fbfb85c32d7038eb2cc65a541ba Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Thu, 27 Feb 2025 22:03:37 +1300 Subject: [PATCH 22/23] Improve hover tool tips and function docs (#5538) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Improve hover tool tips and function docs Signed-off-by: Nick Cameron * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Signed-off-by: Nick Cameron Co-authored-by: github-actions[bot] --- docs/kcl/angleToMatchLengthX.md | 6 ++- docs/kcl/angleToMatchLengthY.md | 6 ++- docs/kcl/angledLine.md | 6 ++- docs/kcl/angledLineOfXLength.md | 6 ++- docs/kcl/angledLineOfYLength.md | 6 ++- docs/kcl/angledLineThatIntersects.md | 6 ++- docs/kcl/angledLineToX.md | 6 ++- docs/kcl/angledLineToY.md | 6 ++- docs/kcl/appearance.md | 7 ++- docs/kcl/arc.md | 6 ++- docs/kcl/arcTo.md | 6 ++- docs/kcl/assert.md | 5 +- docs/kcl/assertEqual.md | 7 ++- docs/kcl/assertGreaterThan.md | 6 ++- docs/kcl/assertGreaterThanOrEq.md | 6 ++- docs/kcl/assertLessThan.md | 6 ++- docs/kcl/assertLessThanOrEq.md | 6 ++- docs/kcl/atan2.md | 5 +- docs/kcl/bezierCurve.md | 6 ++- docs/kcl/chamfer.md | 7 ++- docs/kcl/circle.md | 6 ++- docs/kcl/circleThreePoint.md | 8 ++- docs/kcl/close.md | 5 +- docs/kcl/extrude.md | 5 +- docs/kcl/fillet.md | 8 ++- docs/kcl/helix.md | 9 +++- docs/kcl/helixRevolutions.md | 5 +- docs/kcl/hole.md | 5 +- docs/kcl/hollow.md | 5 +- docs/kcl/import.md | 5 +- docs/kcl/legAngX.md | 5 +- docs/kcl/legAngY.md | 5 +- docs/kcl/legLen.md | 5 +- docs/kcl/line.md | 7 ++- docs/kcl/loft.md | 8 ++- docs/kcl/log.md | 5 +- docs/kcl/map.md | 5 +- docs/kcl/mirror2d.md | 5 +- docs/kcl/offsetPlane.md | 5 +- docs/kcl/patternCircular2d.md | 9 +++- docs/kcl/patternCircular3d.md | 10 +++- docs/kcl/patternLinear2d.md | 8 ++- docs/kcl/patternLinear3d.md | 8 ++- docs/kcl/patternTransform.md | 7 ++- docs/kcl/patternTransform2d.md | 7 ++- docs/kcl/polygon.md | 6 ++- docs/kcl/pow.md | 5 +- docs/kcl/push.md | 5 +- docs/kcl/reduce.md | 6 ++- docs/kcl/rem.md | 5 +- docs/kcl/revolve.md | 5 +- docs/kcl/rotate.md | 10 +++- docs/kcl/scale.md | 6 ++- docs/kcl/shell.md | 6 ++- docs/kcl/startProfileAt.md | 6 ++- docs/kcl/startSketchOn.md | 5 +- docs/kcl/sweep.md | 7 ++- docs/kcl/tangentialArc.md | 6 ++- docs/kcl/tangentialArcTo.md | 6 ++- docs/kcl/tangentialArcToRelative.md | 6 ++- docs/kcl/translate.md | 6 ++- docs/kcl/xLine.md | 6 ++- docs/kcl/xLineTo.md | 6 ++- docs/kcl/yLine.md | 6 ++- docs/kcl/yLineTo.md | 6 ++- .../codemirror-lsp-client/src/plugin/hover.ts | 1 + .../codemirror-lsp-client/src/plugin/util.ts | 10 ++-- src/wasm-lib/kcl/src/docs/gen_std_tests.rs | 2 +- src/wasm-lib/kcl/src/docs/mod.rs | 49 ++++++++++++++----- src/wasm-lib/kcl/src/lsp/kcl/mod.rs | 2 +- src/wasm-lib/kcl/src/lsp/tests.rs | 11 +++-- 71 files changed, 389 insertions(+), 87 deletions(-) diff --git a/docs/kcl/angleToMatchLengthX.md b/docs/kcl/angleToMatchLengthX.md index f866c34710..89b44a5bb1 100644 --- a/docs/kcl/angleToMatchLengthX.md +++ b/docs/kcl/angleToMatchLengthX.md @@ -9,7 +9,11 @@ Returns the angle to match the given length for x. ```js -angleToMatchLengthX(tag: TagIdentifier, to: number, sketch: Sketch) -> number +angleToMatchLengthX( + tag: TagIdentifier, + to: number, + sketch: Sketch, +) -> number ``` diff --git a/docs/kcl/angleToMatchLengthY.md b/docs/kcl/angleToMatchLengthY.md index 962e377f8c..f36d7794ae 100644 --- a/docs/kcl/angleToMatchLengthY.md +++ b/docs/kcl/angleToMatchLengthY.md @@ -9,7 +9,11 @@ Returns the angle to match the given length for y. ```js -angleToMatchLengthY(tag: TagIdentifier, to: number, sketch: Sketch) -> number +angleToMatchLengthY( + tag: TagIdentifier, + to: number, + sketch: Sketch, +) -> number ``` diff --git a/docs/kcl/angledLine.md b/docs/kcl/angledLine.md index a8fc677be1..43016f97c7 100644 --- a/docs/kcl/angledLine.md +++ b/docs/kcl/angledLine.md @@ -9,7 +9,11 @@ Draw a line segment relative to the current origin using the polar measure of some angle and distance. ```js -angledLine(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLine( + data: AngledLineData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/angledLineOfXLength.md b/docs/kcl/angledLineOfXLength.md index d6b01cae96..d967ea4685 100644 --- a/docs/kcl/angledLineOfXLength.md +++ b/docs/kcl/angledLineOfXLength.md @@ -9,7 +9,11 @@ Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'x' dimension. ```js -angledLineOfXLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLineOfXLength( + data: AngledLineData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/angledLineOfYLength.md b/docs/kcl/angledLineOfYLength.md index b547ee6392..b89dce51a5 100644 --- a/docs/kcl/angledLineOfYLength.md +++ b/docs/kcl/angledLineOfYLength.md @@ -9,7 +9,11 @@ Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'y' dimension. ```js -angledLineOfYLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLineOfYLength( + data: AngledLineData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/angledLineThatIntersects.md b/docs/kcl/angledLineThatIntersects.md index 9162f1f183..85bc544129 100644 --- a/docs/kcl/angledLineThatIntersects.md +++ b/docs/kcl/angledLineThatIntersects.md @@ -9,7 +9,11 @@ Draw an angled line from the current origin, constructing a line segment such that the newly created line intersects the desired target line segment. ```js -angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLineThatIntersects( + data: AngledLineThatIntersectsData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/angledLineToX.md b/docs/kcl/angledLineToX.md index 2536c8930d..9637047af3 100644 --- a/docs/kcl/angledLineToX.md +++ b/docs/kcl/angledLineToX.md @@ -9,7 +9,11 @@ Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension. ```js -angledLineToX(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLineToX( + data: AngledLineToData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/angledLineToY.md b/docs/kcl/angledLineToY.md index 63a341e26f..b1f645e6cf 100644 --- a/docs/kcl/angledLineToY.md +++ b/docs/kcl/angledLineToY.md @@ -9,7 +9,11 @@ Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension. ```js -angledLineToY(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +angledLineToY( + data: AngledLineToData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/appearance.md b/docs/kcl/appearance.md index 352cf34142..ad6c5f1103 100644 --- a/docs/kcl/appearance.md +++ b/docs/kcl/appearance.md @@ -9,7 +9,12 @@ Set the appearance of a solid. This only works on solids, not sketches or indivi This will work on any solid, including extruded solids, revolved solids, and shelled solids. ```js -appearance(solidSet: SolidSet, color: String, metalness?: number, roughness?: number) -> SolidSet +appearance( + solidSet: SolidSet, + color: String, + metalness?: number, + roughness?: number, +) -> SolidSet ``` diff --git a/docs/kcl/arc.md b/docs/kcl/arc.md index fe508c8ea9..69f5d4fc24 100644 --- a/docs/kcl/arc.md +++ b/docs/kcl/arc.md @@ -11,7 +11,11 @@ The arc is constructed such that the current position of the sketch is placed al Unless this makes a lot of sense and feels like what you're looking for to construct your shape, you're likely looking for tangentialArc. ```js -arc(data: ArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +arc( + data: ArcData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/arcTo.md b/docs/kcl/arcTo.md index 8c2b97dd69..5f4f843547 100644 --- a/docs/kcl/arcTo.md +++ b/docs/kcl/arcTo.md @@ -9,7 +9,11 @@ Draw a 3 point arc. The arc is constructed such that the start point is the current position of the sketch and two more points defined as the end and interior point. The interior point is placed between the start point and end point. The radius of the arc will be controlled by how far the interior point is placed from the start and end. ```js -arcTo(data: ArcToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +arcTo( + data: ArcToData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/assert.md b/docs/kcl/assert.md index f30a1b746f..2e1b51114d 100644 --- a/docs/kcl/assert.md +++ b/docs/kcl/assert.md @@ -9,7 +9,10 @@ Check a value at runtime, and raise an error if the argument provided is false. ```js -assert(data: bool, message: string) -> () +assert( + data: bool, + message: string, +) -> () ``` diff --git a/docs/kcl/assertEqual.md b/docs/kcl/assertEqual.md index 31c0cd73a2..ecbff1e330 100644 --- a/docs/kcl/assertEqual.md +++ b/docs/kcl/assertEqual.md @@ -9,7 +9,12 @@ Check that a numerical value equals another at runtime, otherwise raise an error. ```js -assertEqual(left: number, right: number, epsilon: number, message: string) -> () +assertEqual( + left: number, + right: number, + epsilon: number, + message: string, +) -> () ``` diff --git a/docs/kcl/assertGreaterThan.md b/docs/kcl/assertGreaterThan.md index 25a7c7fef7..722f14e5c1 100644 --- a/docs/kcl/assertGreaterThan.md +++ b/docs/kcl/assertGreaterThan.md @@ -9,7 +9,11 @@ Check that a numerical value is greater than another at runtime, otherwise raise an error. ```js -assertGreaterThan(left: number, right: number, message: string) -> () +assertGreaterThan( + left: number, + right: number, + message: string, +) -> () ``` diff --git a/docs/kcl/assertGreaterThanOrEq.md b/docs/kcl/assertGreaterThanOrEq.md index cfacf6f850..90b8ccb749 100644 --- a/docs/kcl/assertGreaterThanOrEq.md +++ b/docs/kcl/assertGreaterThanOrEq.md @@ -9,7 +9,11 @@ Check that a numerical value is greater than or equal to another at runtime, otherwise raise an error. ```js -assertGreaterThanOrEq(left: number, right: number, message: string) -> () +assertGreaterThanOrEq( + left: number, + right: number, + message: string, +) -> () ``` diff --git a/docs/kcl/assertLessThan.md b/docs/kcl/assertLessThan.md index 0017cb5f46..2ce4efd004 100644 --- a/docs/kcl/assertLessThan.md +++ b/docs/kcl/assertLessThan.md @@ -9,7 +9,11 @@ Check that a numerical value is less than to another at runtime, otherwise raise an error. ```js -assertLessThan(left: number, right: number, message: string) -> () +assertLessThan( + left: number, + right: number, + message: string, +) -> () ``` diff --git a/docs/kcl/assertLessThanOrEq.md b/docs/kcl/assertLessThanOrEq.md index 5898f4e266..b041e06f33 100644 --- a/docs/kcl/assertLessThanOrEq.md +++ b/docs/kcl/assertLessThanOrEq.md @@ -9,7 +9,11 @@ Check that a numerical value is less than or equal to another at runtime, otherwise raise an error. ```js -assertLessThanOrEq(left: number, right: number, message: string) -> () +assertLessThanOrEq( + left: number, + right: number, + message: string, +) -> () ``` diff --git a/docs/kcl/atan2.md b/docs/kcl/atan2.md index e98d25a078..361356019b 100644 --- a/docs/kcl/atan2.md +++ b/docs/kcl/atan2.md @@ -9,7 +9,10 @@ Compute the four quadrant arctangent of Y and X (in radians). ```js -atan2(y: number, x: number) -> number +atan2( + y: number, + x: number, +) -> number ``` ### Tags diff --git a/docs/kcl/bezierCurve.md b/docs/kcl/bezierCurve.md index 948d88a550..29b697604c 100644 --- a/docs/kcl/bezierCurve.md +++ b/docs/kcl/bezierCurve.md @@ -9,7 +9,11 @@ Draw a smooth, continuous, curved line segment from the current origin to the desired (x, y), using a number of control points to shape the curve's shape. ```js -bezierCurve(data: BezierData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +bezierCurve( + data: BezierData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/chamfer.md b/docs/kcl/chamfer.md index 26500acd93..6c4a0e55af 100644 --- a/docs/kcl/chamfer.md +++ b/docs/kcl/chamfer.md @@ -9,7 +9,12 @@ Cut a straight transitional edge along a tagged path. Chamfer is similar in function and use to a fillet, except a fillet will blend the transition along an edge, rather than cut a sharp, straight transitional edge. ```js -chamfer(solid: Solid, length: number, tags: [EdgeReference], tag?: TagDeclarator) -> Solid +chamfer( + solid: Solid, + length: number, + tags: [EdgeReference], + tag?: TagDeclarator, +) -> Solid ``` diff --git a/docs/kcl/circle.md b/docs/kcl/circle.md index 59f8815b52..24c76ce503 100644 --- a/docs/kcl/circle.md +++ b/docs/kcl/circle.md @@ -9,7 +9,11 @@ Construct a 2-dimensional circle, of the specified radius, centered at the provided (x, y) origin point. ```js -circle(data: CircleData, sketchSurfaceOrGroup: SketchOrSurface, tag?: TagDeclarator) -> Sketch +circle( + data: CircleData, + sketchSurfaceOrGroup: SketchOrSurface, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/circleThreePoint.md b/docs/kcl/circleThreePoint.md index 1cf2640272..f392ccc296 100644 --- a/docs/kcl/circleThreePoint.md +++ b/docs/kcl/circleThreePoint.md @@ -9,7 +9,13 @@ Construct a circle derived from 3 points. ```js -circleThreePoint(p1: [number], p2: [number], p3: [number], sketchSurfaceOrGroup: SketchOrSurface, tag?: TagDeclarator) -> Sketch +circleThreePoint( + p1: [number], + p2: [number], + p3: [number], + sketchSurfaceOrGroup: SketchOrSurface, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/close.md b/docs/kcl/close.md index 6919769d53..82b6fec970 100644 --- a/docs/kcl/close.md +++ b/docs/kcl/close.md @@ -9,7 +9,10 @@ Construct a line segment from the current origin back to the profile's origin, ensuring the resulting 2-dimensional sketch is not open-ended. ```js -close(sketch: Sketch, tag?: TagDeclarator) -> Sketch +close( + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/extrude.md b/docs/kcl/extrude.md index 0f0f9f9b1b..6d1376ccac 100644 --- a/docs/kcl/extrude.md +++ b/docs/kcl/extrude.md @@ -9,7 +9,10 @@ Extend a 2-dimensional sketch through a third dimension in order to create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid. ```js -extrude(sketchSet: SketchSet, length: number) -> SolidSet +extrude( + sketchSet: SketchSet, + length: number, +) -> SolidSet ``` diff --git a/docs/kcl/fillet.md b/docs/kcl/fillet.md index 828b73cf7f..e8f269f2d7 100644 --- a/docs/kcl/fillet.md +++ b/docs/kcl/fillet.md @@ -9,7 +9,13 @@ Blend a transitional edge along a tagged path, smoothing the sharp edge. Fillet is similar in function and use to a chamfer, except a chamfer will cut a sharp transition along an edge while fillet will smoothly blend the transition. ```js -fillet(solid: Solid, radius: number, tags: [EdgeReference], tolerance?: number, tag?: TagDeclarator) -> Solid +fillet( + solid: Solid, + radius: number, + tags: [EdgeReference], + tolerance?: number, + tag?: TagDeclarator, +) -> Solid ``` diff --git a/docs/kcl/helix.md b/docs/kcl/helix.md index c137b8b6ca..f03e0c0580 100644 --- a/docs/kcl/helix.md +++ b/docs/kcl/helix.md @@ -9,7 +9,14 @@ Create a helix. ```js -helix(revolutions: number, angleStart: number, ccw?: bool, radius: number, axis: Axis3dOrEdgeReference, length?: number) -> HelixValue +helix( + revolutions: number, + angleStart: number, + ccw?: bool, + radius: number, + axis: Axis3dOrEdgeReference, + length?: number, +) -> HelixValue ``` diff --git a/docs/kcl/helixRevolutions.md b/docs/kcl/helixRevolutions.md index 4a7dd8b50e..fb08a5b41c 100644 --- a/docs/kcl/helixRevolutions.md +++ b/docs/kcl/helixRevolutions.md @@ -9,7 +9,10 @@ Create a helix on a cylinder. ```js -helixRevolutions(data: HelixRevolutionsData, solid: Solid) -> Solid +helixRevolutions( + data: HelixRevolutionsData, + solid: Solid, +) -> Solid ``` diff --git a/docs/kcl/hole.md b/docs/kcl/hole.md index 12acfc0db0..4b4433360c 100644 --- a/docs/kcl/hole.md +++ b/docs/kcl/hole.md @@ -9,7 +9,10 @@ Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch. ```js -hole(holeSketch: SketchSet, sketch: Sketch) -> Sketch +hole( + holeSketch: SketchSet, + sketch: Sketch, +) -> Sketch ``` diff --git a/docs/kcl/hollow.md b/docs/kcl/hollow.md index 1746df2d52..bd80540809 100644 --- a/docs/kcl/hollow.md +++ b/docs/kcl/hollow.md @@ -9,7 +9,10 @@ Make the inside of a 3D object hollow. Remove volume from a 3-dimensional shape such that a wall of the provided thickness remains around the exterior of the shape. ```js -hollow(thickness: number, solid: Solid) -> Solid +hollow( + thickness: number, + solid: Solid, +) -> Solid ``` diff --git a/docs/kcl/import.md b/docs/kcl/import.md index 91053ceb45..bde04cd6fa 100644 --- a/docs/kcl/import.md +++ b/docs/kcl/import.md @@ -15,7 +15,10 @@ For formats lacking unit data (such as STL, OBJ, or PLY files), the default unit Note: The import command currently only works when using the native Modeling App. ```js -import(filePath: String, options?: ImportFormat) -> ImportedGeometry +import( + filePath: String, + options?: ImportFormat, +) -> ImportedGeometry ``` diff --git a/docs/kcl/legAngX.md b/docs/kcl/legAngX.md index 0db7b25fae..70bbbb6d00 100644 --- a/docs/kcl/legAngX.md +++ b/docs/kcl/legAngX.md @@ -9,7 +9,10 @@ Compute the angle of the given leg for x. ```js -legAngX(hypotenuse: number, leg: number) -> number +legAngX( + hypotenuse: number, + leg: number, +) -> number ``` ### Tags diff --git a/docs/kcl/legAngY.md b/docs/kcl/legAngY.md index 1ce4f835ad..e93d716a5a 100644 --- a/docs/kcl/legAngY.md +++ b/docs/kcl/legAngY.md @@ -9,7 +9,10 @@ Compute the angle of the given leg for y. ```js -legAngY(hypotenuse: number, leg: number) -> number +legAngY( + hypotenuse: number, + leg: number, +) -> number ``` ### Tags diff --git a/docs/kcl/legLen.md b/docs/kcl/legLen.md index 177ba6fc0f..96e5cca3e7 100644 --- a/docs/kcl/legLen.md +++ b/docs/kcl/legLen.md @@ -9,7 +9,10 @@ Compute the length of the given leg. ```js -legLen(hypotenuse: number, leg: number) -> number +legLen( + hypotenuse: number, + leg: number, +) -> number ``` ### Tags diff --git a/docs/kcl/line.md b/docs/kcl/line.md index ba6b39d427..f5fb59960b 100644 --- a/docs/kcl/line.md +++ b/docs/kcl/line.md @@ -9,7 +9,12 @@ Extend the current sketch with a new straight line. ```js -line(sketch: Sketch, endAbsolute?: [number], end?: [number], tag?: TagDeclarator) -> Sketch +line( + sketch: Sketch, + endAbsolute?: [number], + end?: [number], + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/loft.md b/docs/kcl/loft.md index 796a031d54..d62e3c9ca8 100644 --- a/docs/kcl/loft.md +++ b/docs/kcl/loft.md @@ -9,7 +9,13 @@ Create a 3D surface or solid by interpolating between two or more sketches. The sketches need to closed and on the same plane. ```js -loft(sketches: [Sketch], vDegree: NonZeroU32, bezApproximateRational: bool, baseCurveIndex?: integer, tolerance?: number) -> Solid +loft( + sketches: [Sketch], + vDegree: NonZeroU32, + bezApproximateRational: bool, + baseCurveIndex?: integer, + tolerance?: number, +) -> Solid ``` diff --git a/docs/kcl/log.md b/docs/kcl/log.md index bb19877541..b6b78bbfde 100644 --- a/docs/kcl/log.md +++ b/docs/kcl/log.md @@ -9,7 +9,10 @@ Compute the logarithm of the number with respect to an arbitrary base. The result might not be correctly rounded owing to implementation details; `log2()` can produce more accurate results for base 2, and `log10()` can produce more accurate results for base 10. ```js -log(num: number, base: number) -> number +log( + num: number, + base: number, +) -> number ``` ### Tags diff --git a/docs/kcl/map.md b/docs/kcl/map.md index ff42f212fd..f68d552949 100644 --- a/docs/kcl/map.md +++ b/docs/kcl/map.md @@ -9,7 +9,10 @@ Apply a function to every element of a list. Given a list like `[a, b, c]`, and a function like `f`, returns `[f(a), f(b), f(c)]` ```js -map(array: [KclValue], mapFn: FunctionSource) -> [KclValue] +map( + array: [KclValue], + mapFn: FunctionSource, +) -> [KclValue] ``` diff --git a/docs/kcl/mirror2d.md b/docs/kcl/mirror2d.md index 80e0a848a9..1b4f988294 100644 --- a/docs/kcl/mirror2d.md +++ b/docs/kcl/mirror2d.md @@ -11,7 +11,10 @@ Only works on unclosed sketches for now. Mirror occurs around a local sketch axis rather than a global axis. ```js -mirror2d(data: Mirror2dData, sketchSet: SketchSet) -> [Sketch] +mirror2d( + data: Mirror2dData, + sketchSet: SketchSet, +) -> [Sketch] ``` diff --git a/docs/kcl/offsetPlane.md b/docs/kcl/offsetPlane.md index 179f9bbb4a..e19ff13f4b 100644 --- a/docs/kcl/offsetPlane.md +++ b/docs/kcl/offsetPlane.md @@ -9,7 +9,10 @@ Offset a plane by a distance along its normal. For example, if you offset the 'XZ' plane by 10, the new plane will be parallel to the 'XZ' plane and 10 units away from it. ```js -offsetPlane(plane: PlaneData, offset: number) -> Plane +offsetPlane( + plane: PlaneData, + offset: number, +) -> Plane ``` diff --git a/docs/kcl/patternCircular2d.md b/docs/kcl/patternCircular2d.md index e9837f106f..eb7497a8ec 100644 --- a/docs/kcl/patternCircular2d.md +++ b/docs/kcl/patternCircular2d.md @@ -9,7 +9,14 @@ Repeat a 2-dimensional sketch some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained. ```js -patternCircular2d(sketchSet: SketchSet, instances: integer, center: [number], arcDegrees: number, rotateDuplicates: bool, useOriginal?: bool) -> [Sketch] +patternCircular2d( + sketchSet: SketchSet, + instances: integer, + center: [number], + arcDegrees: number, + rotateDuplicates: bool, + useOriginal?: bool, +) -> [Sketch] ``` diff --git a/docs/kcl/patternCircular3d.md b/docs/kcl/patternCircular3d.md index 31acd1e9ae..0680cefa53 100644 --- a/docs/kcl/patternCircular3d.md +++ b/docs/kcl/patternCircular3d.md @@ -9,7 +9,15 @@ Repeat a 3-dimensional solid some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained. ```js -patternCircular3d(solidSet: SolidSet, instances: integer, axis: [number], center: [number], arcDegrees: number, rotateDuplicates: bool, useOriginal?: bool) -> [Solid] +patternCircular3d( + solidSet: SolidSet, + instances: integer, + axis: [number], + center: [number], + arcDegrees: number, + rotateDuplicates: bool, + useOriginal?: bool, +) -> [Solid] ``` diff --git a/docs/kcl/patternLinear2d.md b/docs/kcl/patternLinear2d.md index b886be7553..657e7c7cb6 100644 --- a/docs/kcl/patternLinear2d.md +++ b/docs/kcl/patternLinear2d.md @@ -9,7 +9,13 @@ Repeat a 2-dimensional sketch along some dimension, with a dynamic amount of distance between each repetition, some specified number of times. ```js -patternLinear2d(sketchSet: SketchSet, instances: integer, distance: number, axis: [number], useOriginal?: bool) -> [Sketch] +patternLinear2d( + sketchSet: SketchSet, + instances: integer, + distance: number, + axis: [number], + useOriginal?: bool, +) -> [Sketch] ``` diff --git a/docs/kcl/patternLinear3d.md b/docs/kcl/patternLinear3d.md index b72853f79d..b41dc1b615 100644 --- a/docs/kcl/patternLinear3d.md +++ b/docs/kcl/patternLinear3d.md @@ -11,7 +11,13 @@ of distance between each repetition, some specified number of times. /// ```js -patternLinear3d(solidSet: SolidSet, instances: integer, distance: number, axis: [number], useOriginal?: bool) -> [Solid] +patternLinear3d( + solidSet: SolidSet, + instances: integer, + distance: number, + axis: [number], + useOriginal?: bool, +) -> [Solid] ``` diff --git a/docs/kcl/patternTransform.md b/docs/kcl/patternTransform.md index b05fecb73d..6647e09830 100644 --- a/docs/kcl/patternTransform.md +++ b/docs/kcl/patternTransform.md @@ -35,7 +35,12 @@ The transform function returns a transform object. All properties of the object - `rotation.origin` (either "local" i.e. rotate around its own center, "global" i.e. rotate around the scene's center, or a 3D point, defaults to "local") ```js -patternTransform(solidSet: SolidSet, instances: integer, transform: FunctionSource, useOriginal?: bool) -> [Solid] +patternTransform( + solidSet: SolidSet, + instances: integer, + transform: FunctionSource, + useOriginal?: bool, +) -> [Solid] ``` diff --git a/docs/kcl/patternTransform2d.md b/docs/kcl/patternTransform2d.md index 07f3e34e5c..273bb83b49 100644 --- a/docs/kcl/patternTransform2d.md +++ b/docs/kcl/patternTransform2d.md @@ -9,7 +9,12 @@ Just like patternTransform, but works on 2D sketches not 3D solids. ```js -patternTransform2d(sketchSet: SketchSet, instances: integer, transform: FunctionSource, useOriginal?: bool) -> [Sketch] +patternTransform2d( + sketchSet: SketchSet, + instances: integer, + transform: FunctionSource, + useOriginal?: bool, +) -> [Sketch] ``` diff --git a/docs/kcl/polygon.md b/docs/kcl/polygon.md index 512fce494a..d1cf3ee05a 100644 --- a/docs/kcl/polygon.md +++ b/docs/kcl/polygon.md @@ -9,7 +9,11 @@ Create a regular polygon with the specified number of sides that is either inscr ```js -polygon(data: PolygonData, sketchSurfaceOrGroup: SketchOrSurface, tag?: TagDeclarator) -> Sketch +polygon( + data: PolygonData, + sketchSurfaceOrGroup: SketchOrSurface, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/pow.md b/docs/kcl/pow.md index 4df324b31e..1b7c26cfa6 100644 --- a/docs/kcl/pow.md +++ b/docs/kcl/pow.md @@ -9,7 +9,10 @@ Compute the number to a power. ```js -pow(num: number, pow: number) -> number +pow( + num: number, + pow: number, +) -> number ``` ### Tags diff --git a/docs/kcl/push.md b/docs/kcl/push.md index 321786b07b..88cf838e4a 100644 --- a/docs/kcl/push.md +++ b/docs/kcl/push.md @@ -9,7 +9,10 @@ Append an element to the end of an array. Returns a new array with the element appended. ```js -push(array: [KclValue], elem: KclValue) -> KclValue +push( + array: [KclValue], + elem: KclValue, +) -> KclValue ``` diff --git a/docs/kcl/reduce.md b/docs/kcl/reduce.md index 36fdf83af1..008036c847 100644 --- a/docs/kcl/reduce.md +++ b/docs/kcl/reduce.md @@ -9,7 +9,11 @@ Take a starting value. Then, for each element of an array, calculate the next va using the previous value and the element. ```js -reduce(array: [KclValue], start: KclValue, reduceFn: FunctionSource) -> KclValue +reduce( + array: [KclValue], + start: KclValue, + reduceFn: FunctionSource, +) -> KclValue ``` diff --git a/docs/kcl/rem.md b/docs/kcl/rem.md index 50bbd4ac1d..24cd6f9375 100644 --- a/docs/kcl/rem.md +++ b/docs/kcl/rem.md @@ -9,7 +9,10 @@ Compute the remainder after dividing `num` by `div`. If `num` is negative, the result will be too. ```js -rem(num: number, divisor: number) -> number +rem( + num: number, + divisor: number, +) -> number ``` ### Tags diff --git a/docs/kcl/revolve.md b/docs/kcl/revolve.md index 2e93df0f0b..5c5ff59ffd 100644 --- a/docs/kcl/revolve.md +++ b/docs/kcl/revolve.md @@ -11,7 +11,10 @@ This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional Revolve occurs around a local sketch axis rather than a global axis. ```js -revolve(data: RevolveData, sketch: Sketch) -> Solid +revolve( + data: RevolveData, + sketch: Sketch, +) -> Solid ``` diff --git a/docs/kcl/rotate.md b/docs/kcl/rotate.md index 999cabf2fd..a75783be0a 100644 --- a/docs/kcl/rotate.md +++ b/docs/kcl/rotate.md @@ -23,7 +23,15 @@ So, in the context of a 3D model: When rotating a part around an axis, you specify the axis of rotation and the angle of rotation. ```js -rotate(solid: Solid, roll?: number, pitch?: number, yaw?: number, axis?: [number], angle?: number, global?: bool) -> Solid +rotate( + solid: Solid, + roll?: number, + pitch?: number, + yaw?: number, + axis?: [number], + angle?: number, + global?: bool, +) -> Solid ``` diff --git a/docs/kcl/scale.md b/docs/kcl/scale.md index 017a5212ec..8ff1d0b045 100644 --- a/docs/kcl/scale.md +++ b/docs/kcl/scale.md @@ -11,7 +11,11 @@ By default the transform is applied in local sketch axis, therefore the origin w If you want to apply the transform in global space, set `global` to `true`. The origin of the model will move. If the model is not centered on origin and you scale globally it will look like the model moves and gets bigger at the same time. Say you have a square `(1,1) - (1,2) - (2,2) - (2,1)` and you scale by 2 globally it will become `(2,2) - (2,4)`...etc so the origin has moved from `(1.5, 1.5)` to `(2,2)`. ```js -scale(solid: Solid, scale: [number], global?: bool) -> Solid +scale( + solid: Solid, + scale: [number], + global?: bool, +) -> Solid ``` diff --git a/docs/kcl/shell.md b/docs/kcl/shell.md index e313663b6a..9aa7ee2feb 100644 --- a/docs/kcl/shell.md +++ b/docs/kcl/shell.md @@ -9,7 +9,11 @@ Remove volume from a 3-dimensional shape such that a wall of the provided thickness remains, taking volume starting at the provided face, leaving it open in that direction. ```js -shell(solidSet: SolidSet, thickness: number, faces: [FaceTag]) -> SolidSet +shell( + solidSet: SolidSet, + thickness: number, + faces: [FaceTag], +) -> SolidSet ``` diff --git a/docs/kcl/startProfileAt.md b/docs/kcl/startProfileAt.md index 9d352416ec..fda685115f 100644 --- a/docs/kcl/startProfileAt.md +++ b/docs/kcl/startProfileAt.md @@ -9,7 +9,11 @@ Start a new profile at a given point. ```js -startProfileAt(to: [number], sketchSurface: SketchSurface, tag?: TagDeclarator) -> Sketch +startProfileAt( + to: [number], + sketchSurface: SketchSurface, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/startSketchOn.md b/docs/kcl/startSketchOn.md index a7c0db3535..22859bfc83 100644 --- a/docs/kcl/startSketchOn.md +++ b/docs/kcl/startSketchOn.md @@ -17,7 +17,10 @@ This is important to understand because if you were to then sketch on the result The point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids. ```js -startSketchOn(data: SketchData, tag?: FaceTag) -> SketchSurface +startSketchOn( + data: SketchData, + tag?: FaceTag, +) -> SketchSurface ``` diff --git a/docs/kcl/sweep.md b/docs/kcl/sweep.md index 84e73e3ab4..8c3a0a7c67 100644 --- a/docs/kcl/sweep.md +++ b/docs/kcl/sweep.md @@ -9,7 +9,12 @@ Extrude a sketch along a path. This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its path. This is useful for creating more complex shapes that can't be created with a simple extrusion. ```js -sweep(sketch: Sketch, path: SweepPath, sectional?: bool, tolerance?: number) -> Solid +sweep( + sketch: Sketch, + path: SweepPath, + sectional?: bool, + tolerance?: number, +) -> Solid ``` diff --git a/docs/kcl/tangentialArc.md b/docs/kcl/tangentialArc.md index 7e08e6d391..6618e9858f 100644 --- a/docs/kcl/tangentialArc.md +++ b/docs/kcl/tangentialArc.md @@ -9,7 +9,11 @@ Draw a curved line segment along part of an imaginary circle. The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle. ```js -tangentialArc(data: TangentialArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch +tangentialArc( + data: TangentialArcData, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/tangentialArcTo.md b/docs/kcl/tangentialArcTo.md index 15fcc0e015..fda06f49a8 100644 --- a/docs/kcl/tangentialArcTo.md +++ b/docs/kcl/tangentialArcTo.md @@ -9,7 +9,11 @@ Starting at the current sketch's origin, draw a curved line segment along some part of an imaginary circle until it reaches the desired (x, y) coordinates. ```js -tangentialArcTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch +tangentialArcTo( + to: [number], + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/tangentialArcToRelative.md b/docs/kcl/tangentialArcToRelative.md index e14e081ed6..88f4b8d53d 100644 --- a/docs/kcl/tangentialArcToRelative.md +++ b/docs/kcl/tangentialArcToRelative.md @@ -9,7 +9,11 @@ Starting at the current sketch's origin, draw a curved line segment along some part of an imaginary circle until it reaches a point the given (x, y) distance away. ```js -tangentialArcToRelative(delta: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch +tangentialArcToRelative( + delta: [number], + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/translate.md b/docs/kcl/translate.md index 7e9f1644bc..ddccec6f6e 100644 --- a/docs/kcl/translate.md +++ b/docs/kcl/translate.md @@ -9,7 +9,11 @@ Move a solid. ```js -translate(solid: Solid, translate: [number], global?: bool) -> Solid +translate( + solid: Solid, + translate: [number], + global?: bool, +) -> Solid ``` diff --git a/docs/kcl/xLine.md b/docs/kcl/xLine.md index 72c46de741..1f1e79c3db 100644 --- a/docs/kcl/xLine.md +++ b/docs/kcl/xLine.md @@ -9,7 +9,11 @@ Draw a line relative to the current origin to a specified distance away from the current position along the 'x' axis. ```js -xLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch +xLine( + length: number, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/xLineTo.md b/docs/kcl/xLineTo.md index bc62fc5f68..5fd62c8924 100644 --- a/docs/kcl/xLineTo.md +++ b/docs/kcl/xLineTo.md @@ -9,7 +9,11 @@ Draw a line parallel to the X axis, that ends at the given X. E.g. if the previous line ended at (1, 1), then xLineTo(4) draws a line from (1, 1) to (4, 1) ```js -xLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch +xLineTo( + to: number, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/yLine.md b/docs/kcl/yLine.md index 6e71e1740d..c17a27dcda 100644 --- a/docs/kcl/yLine.md +++ b/docs/kcl/yLine.md @@ -9,7 +9,11 @@ Draw a line relative to the current origin to a specified distance away from the current position along the 'y' axis. ```js -yLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch +yLine( + length: number, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/docs/kcl/yLineTo.md b/docs/kcl/yLineTo.md index 222f5295e5..1fc491019d 100644 --- a/docs/kcl/yLineTo.md +++ b/docs/kcl/yLineTo.md @@ -9,7 +9,11 @@ Draw a line parallel to the Y axis, that ends at the given Y. E.g. if the previous line ended at (1, 1), then yLineTo(4) draws a line from (1, 1) to (1, 4) ```js -yLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch +yLineTo( + to: number, + sketch: Sketch, + tag?: TagDeclarator, +) -> Sketch ``` diff --git a/packages/codemirror-lsp-client/src/plugin/hover.ts b/packages/codemirror-lsp-client/src/plugin/hover.ts index c6739646e3..ec2a843d7e 100644 --- a/packages/codemirror-lsp-client/src/plugin/hover.ts +++ b/packages/codemirror-lsp-client/src/plugin/hover.ts @@ -28,6 +28,7 @@ export default function lspHoverExt( '.cm-tooltip': { fontSize: '12px', maxWidth: '400px', + padding: '2px', }, }), ] diff --git a/packages/codemirror-lsp-client/src/plugin/util.ts b/packages/codemirror-lsp-client/src/plugin/util.ts index c5812cb993..f70e429f32 100644 --- a/packages/codemirror-lsp-client/src/plugin/util.ts +++ b/packages/codemirror-lsp-client/src/plugin/util.ts @@ -1,5 +1,5 @@ import { Text } from '@codemirror/state' -import { Marked } from '@ts-stack/markdown' +import { Marked, MarkedOptions } from '@ts-stack/markdown' import type * as LSP from 'vscode-languageserver-protocol' import { isArray } from '../lib/utils' @@ -43,14 +43,18 @@ export function offsetToPos(doc: Text, offset: number) { } } +const markedOptions: MarkedOptions = { + gfm: true, +} + export function formatMarkdownContents( contents: LSP.MarkupContent | LSP.MarkedString | LSP.MarkedString[] ): string { if (isArray(contents)) { return contents.map((c) => formatMarkdownContents(c) + '\n\n').join('') } else if (typeof contents === 'string') { - return Marked.parse(contents) + return Marked.parse(contents, markedOptions) } else { - return Marked.parse(contents.value) + return Marked.parse(contents.value, markedOptions) } } diff --git a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs index b4ca984250..790e24f0fc 100644 --- a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs +++ b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs @@ -542,7 +542,7 @@ fn generate_function(internal_fn: Box) -> Result) -> fmt::Result { + f.write_str(&self.name)?; + if !self.required { + f.write_char('?')?; + } + f.write_str(": ")?; + f.write_str(&self.type_) + } +} + fn its_true() -> bool { true } @@ -419,20 +433,29 @@ pub trait StdLibFn: std::fmt::Debug + Send + Sync { }) } - fn fn_signature(&self) -> String { + fn fn_signature(&self, include_name: bool) -> String { let mut signature = String::new(); - signature.push_str(&format!("{}(", self.name())); - for (i, arg) in self.args(false).iter().enumerate() { - if i > 0 { - signature.push_str(", "); - } - if arg.required { - signature.push_str(&format!("{}: {}", arg.name, arg.type_)); - } else { - signature.push_str(&format!("{}?: {}", arg.name, arg.type_)); + if include_name { + signature.push_str(&self.name()); + } + + let args = self.args(false); + if args.is_empty() { + signature.push_str("()"); + } else if args.len() == 1 { + signature.push('('); + signature.push_str(&args[0].to_string()); + signature.push(')'); + } else { + signature.push('('); + for a in args { + signature.push_str("\n "); + signature.push_str(&a.to_string()); + signature.push(','); } + signature.push('\n'); + signature.push(')'); } - signature.push(')'); if let Some(return_value) = self.return_value(false) { signature.push_str(&format!(" -> {}", return_value.type_)); } @@ -444,7 +467,7 @@ pub trait StdLibFn: std::fmt::Debug + Send + Sync { Ok(CompletionItem { label: self.name(), label_details: Some(CompletionItemLabelDetails { - detail: Some(self.fn_signature().replace(&self.name(), "")), + detail: Some(self.fn_signature(false)), description: None, }), kind: Some(CompletionItemKind::FUNCTION), diff --git a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs index 9cb8c6b338..adafacc882 100644 --- a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs +++ b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs @@ -1048,7 +1048,7 @@ impl LanguageServer for Backend { contents: HoverContents::Markup(MarkupContent { kind: MarkupKind::Markdown, value: format!( - "```{}{}```\n{}", + "```\n{}{}\n```\n\n{}", name, if let Some(detail) = &label_details.detail { detail diff --git a/src/wasm-lib/kcl/src/lsp/tests.rs b/src/wasm-lib/kcl/src/lsp/tests.rs index 6afcf52896..ebf86ead87 100644 --- a/src/wasm-lib/kcl/src/lsp/tests.rs +++ b/src/wasm-lib/kcl/src/lsp/tests.rs @@ -902,10 +902,13 @@ async fn test_kcl_lsp_on_hover() { .unwrap(); // Check the hover. - if let Some(hover) = hover { - assert_eq!(hover.contents, tower_lsp::lsp_types::HoverContents::Markup(tower_lsp::lsp_types::MarkupContent { kind: tower_lsp::lsp_types::MarkupKind::Markdown, value: "```startSketchOn(data: SketchData, tag?: FaceTag) -> SketchSurface```\nStart a new 2-dimensional sketch on a specific plane or face.\n\n### Sketch on Face Behavior\n\nThere are some important behaviors to understand when sketching on a face:\n\nThe resulting sketch will _include_ the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.\n\nThis is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.\n\nThe point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.".to_string() })); - } else { - panic!("Expected hover"); + match hover.unwrap().contents { + tower_lsp::lsp_types::HoverContents::Markup(tower_lsp::lsp_types::MarkupContent { value, .. }) => { + value.contains("startSketchOn"); + value.contains("-> SketchSurface"); + value.contains("Start a new 2-dimensional sketch on a specific"); + } + _ => unreachable!(), } } From da236d9a3e85d3f8d314de98c0e90b62b36e47ef Mon Sep 17 00:00:00 2001 From: Frank Noirot Date: Thu, 27 Feb 2025 05:01:08 -0500 Subject: [PATCH 23/23] Fix switching between KCL arguments (#5512) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix switching between KCL arguments Needed to imperatively send a transaction to the editor, since it doesn't get re-rendered when switching from one KCL-type arg to another. * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] Co-authored-by: Pierre Jacquier --- ...e-with-none-z-up-1-Google-Chrome-linux.png | Bin 78055 -> 78000 bytes ...ode-color-goober-1-Google-Chrome-linux.png | Bin 148936 -> 148932 bytes ...ld-be-stable--XZ-1-Google-Chrome-linux.png | Bin 56428 -> 56431 bytes ...uld-be-stable-XZ-1-Google-Chrome-linux.png | Bin 55649 -> 55651 bytes .../CommandBar/CommandBarKclInput.tsx | 23 +++++++++++++++--- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png index 897e5cc665dd4b733e428d9f2b457c820ba78b6e..d6dc71f234004d928e4935c4c86f54a6f8230b33 100644 GIT binary patch delta 74739 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 delta 74648 zcmXtf1yqz<_cs`TNOzY=cOxaEq;xj|f^>I{(jg!W-67rGARrCWUDDm%-{HRh?^&#S z*ErA2b7G(Ui@m38`Nih)i=Tl?tokic#6wvV2F~W)@CN1(heQkoSS{RoOdU~It^pu;?lsq z*6%K*Q4oBGHa}%6Wh-6xjj^M^B&lU+#^&dBs3NzPRHh5n(|#_$QDfGBXFbi94e70R zLLub4ax=I0lqOQu=Y=^xHy~6N5otvw=DE9=voSL>yUF!;zIuSD;f#bbUF=VHckZuWKcK|CER>X#f`U3}$v@jZ+t%y&K02zas%|G>mn@ap zU6r*_ORW$Xu15bV%FE1rVGun$YUsLj@G8OIK3lwGm`;@;TS?SRCG|jVLBKseNizyZ zP35O=J`M>@D0S~hRzRs{twBcvcfiY{=hS|1-+1BT`kOs2tp}O=W0@P>PII8)%CRiE zee3qE*Biw9c(k;+*QcA%>-D&R&NBD&owKtuqwer+hq8w$WOVd2eg_jdxo`tT?vbx= zdR;se8Bi0eg6V8LhiGhU4!!Sh-oAaC0;b;4ktGp9c6@xSrl$5rBK${CP|v`CWo-I6 z9s$8Lczk?(JR&+7LE%7~FBB1+p}W5+0@^i}y?uQUr22*ixg?(bv+c1Y9;=X`Aht<= zN7uWn@>B_g7caORm{>KnwFCY9);2a)_=L?ye-)~i#>U3Bq<$hcxjEa`)YJrf)Y;j2 zh8L1)z9^cQkl?gE+Br6M3bv`M`Rw=i=gdq@RBzsdX)~E(;)tO_N#Bi+j-Ff{uQHRq zevj9r4s^yFD5+65s%f`)z zLT1_$K2TRHT7H=THdtMQ!zcAi2{(Kh1;v0UOpCs_tainST2)Eu@8>?;D29(_Ttv7K zI!4CA%%&#&M|kKGl>Nj7^}n6z0-+|yU=;&w_ab-mXkM+Fk%Aepg?;9x!jJxwGeewEOYv|1v_nXbIr_U`FYu9SmT92s0 zSzB9!FAWb4Hggwp z2Jdg$@)?%L51J4kXa4>B_skdUEMtuHn@Qzwu`A2V%iG&-UVde9#k zF$#qf;IgmRX6s-Q6QNC&($;*)d-bYv%QC|Mlwd9=mvSd_dM<>R$CL ze|jsK6EM65Lf1HUlMoRz>QL^ER8WhcwB|ZCSd>-E=$S=bLUUzs1==2cGXdsb1NoSu zwS8E`SMjsh&Gre^9w%zwO!Oz&muCo){Cq`>8#>}|dbi?Ll-ZzIiUv1)GFxl21fqK* z50-~S&j{i3ygE`XRAWyV*qthUROlrmBLhL3bNil5(3Opesc1tFc85d> zwKzXmxIG;b;pOGU5B|91b*XD;NTvHZP1vg|g51X1`T@Mx`qzBJdY_(E!u*uJN#ln! z1F;KBL^m;??Z27IuiKVocnyCiy1H^IDk=^vXG>)b4GqDrt*)+yDJ51{pP#Jve;rEI z-J!&RbNTTFq#osd`Sg{4at2@@g@#&>g;pPg+Sh(<~ymn@0l7Z@n<`SU**t^CR9 zsTftHBy~t=DCgvQa&mG2DzWp$-i(jWGozSST6kiLef^%l9L`&EX9DrJmc&~xL)m$Mt& z$wehJ6Nh%o$jRfYGrsUlO@t)Oyo}v2$&6CMdu~8I)|}G(rcEiIP8mD4u0gPMYrU%1 zyjtr+K}vG6gG1O%c^;++bX=|^`kVG+$%%R25UI9M%oi*q%0DJ8^VY^854;~%SMSn% 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ɨa7d=>W#5Xd_`)xzo{-4PFcof-`QWMRU;1Ks<` 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 Uo$!;A-(R?{s;yF@eCMD40!|S;UjP6A delta 26178 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%0AXLP9X|$Qxa0YhLtVcz9S! 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 diff --git a/src/components/CommandBar/CommandBarKclInput.tsx b/src/components/CommandBar/CommandBarKclInput.tsx index 111b2a9769..2f87dd57ab 100644 --- a/src/components/CommandBar/CommandBarKclInput.tsx +++ b/src/components/CommandBar/CommandBarKclInput.tsx @@ -74,9 +74,11 @@ function CommandBarKclInput({ arg.name, previouslySetValue, ]) - const [value, setValue] = useState( - previouslySetValue?.valueText || defaultValue || '' + const initialValue = useMemo( + () => previouslySetValue?.valueText || defaultValue || '', + [previouslySetValue, defaultValue] ) + const [value, setValue] = useState(initialValue) const [createNewVariable, setCreateNewVariable] = useState( (previouslySetValue && 'variableName' in previouslySetValue) || arg.createVariableByDefault || @@ -105,7 +107,7 @@ function CommandBarKclInput({ })) const varMentionsExtension = varMentions(varMentionData) - const { setContainer } = useCodeMirror({ + const { setContainer, view } = useCodeMirror({ container: editorRef.current, initialDocValue: value, autoFocus: true, @@ -161,6 +163,21 @@ function CommandBarKclInput({ useEffect(() => { if (editorRef.current) { setContainer(editorRef.current) + // Reset the value when the arg changes and + // the new arg is also a KCL type, since the component + // sticks around. + view?.focus() + view?.dispatch({ + changes: { + from: 0, + to: view.state.doc.length, + insert: initialValue, + }, + selection: { + anchor: 0, + head: initialValue.length, + }, + }) } }, [arg, editorRef])

{5`n!t>dx+3%wEQRQp3mN6}#HEm45u@5Z$0;=*p2d^$ zmJHmA*;{xUj>LGVl!;`>7%k}%lKx3V8!WZ5d*!_F>-98B^Lyp43)&?aMD7w{81AJzsrpTcIm+~&0&+FShecH5Y z%zEiVb23A|0rhbVv&FdX_>AF6NJTNwGq}uMovR5afI9rA_ozP~+e;NfOkW)~`Nq2E z6sWHf8|0nu39hxAvQ)ItV4RJ@SN=VY>(TA_Jvd8;zqw)5k|J~Gzx?Q}$qW-G2Dd;&FX3 zmwAJfz)>|{Xh*mHEL zXm)_pc_F<@N=O0E)2oz3Q{;9oT$K`uSq}M!SAJVMTWa7#xnb_)8>cC`?se2N4IuE< z;L6ZZ(gOE}jD>juu>-#NJ!bO56)Q%~OS%;WIR6$Z^7g(hGmvlDV}F<~$&~tkiZ=?4 ztbxb(8;8i~9eQ}5G?VwC@LpA=D5rSJ?gSXq>lx-Ls+Gb3`&*3Jjm|eiUzgK9?g@xsh-ZU5l9k$4S|*%4~x*KI7)dm zE}ZCzC%xXa#FOu9I$|{)e@}ZbJMBR!C1vmrG_#F163fXMJC#j=eGm`IvF>DnmnSgG zL|L{p6WNG=7_l1>(5!DY-95Pdk1gg~h-e{#ws~Diq6%nlY-dVYeF+8=BmUYLoj$u8smww${gr#n13ZiWuJ(C( z{7(8@;EV|8!(Y-nu-ce7n>r-^MXVhG~{q zzP%G;>klMzwHVq1dVmcQjyv}rHk=lgfh24MRYmN!FZ#$xwe#L(k$=NGaQh+uH915| zFjr(lG4SD4MA#Z@2w^*CT_3vnruT|t*HAh&9tpB|LYZc4uYgd%Bh-RLRTlzUO&vup zNl?_f-2DCbtpiR^qKWJiy;>%Aa*nRQP@=t1c2n(kX|+#-H2w>{ET_&F+&h2&tiSfG zLaS37oCb_t49P5e5tKDXpzJj9(H>N^-qdu$%m84kKj4p>-dP=KF>HUMGVL{(EFL_LNp zhRnpoSqxWwoHz-g&EO=9Ra)c>kaU=rPy4+IzASF&bj%>JjX;Oab9ZhaRCI{ z*HCs9n?H4tp90VlXXuE_#+2cZDBnO8a7)V`0DCZ0+CqP2 zt#?#yeUsgRj5ajps=57mi;MPVUU_c*U zxaey{K@V#!`S2gfeRGw|w|CRgElywH+JvUV%C5sMCMksS1xqPJZUj#x_oH#r*zHK@ zoa2~vr{bg#($xx)Bc~d)y*S$dtXI)oLgj}ar^HIBCJ*=#eS+9|lNqo{L?iZcL1N#& zeP#uT0sp8S9}OX_Gg=V|Kf-?_Vj}ip1&D26-!26akFo&hJ1}rk5u&ZJE5V?kWRg5X zyq3KW0`{_q;xb0lQQhNRTE=^AG0ccxEf;h;cGz@2i%g2Ler5nDFg|3?A>UBj63udm zrg7pmxD98flwLC&#G{$Wa?$MG*47r%x=`6#(^EjX&{C$ODiX8$#jnWqXzprnrWAz2 z0cea$r{{V@WX-;W;UoMw(xzPrqyqk6wiO(xD8h@eQ3yyPx(UxFt&JkU+-BcBtTX}0PRY~VX-QQ(J`}oi@!-ptrJAax|rv~SpYUUeL_E9^O@xH58We;&rxX`AsMIZF)dIdW~ z?QwElPNMm!BbrQ6VwyscVEuutc9dqQc%TTpx8-fZO%gi)GbABngRJx zW%uvD|K2fSuBz~32Xsx)@LTEyzz!KPq%kiN)k%tv_0Uk^|81iwA0=tvkfB4DBr4Al z*!I-l_DW(<&`5m~p@a3iu138J%0c&1a`Q{jJT@H|<%AjGcn_nmko_{Pa92T{bPocF z3uwwa&CImGRtic;smFqeEh0ftMdy@v;O0dPw1bVpPrZYsTu-@0x|SsD;KHzaH05rj zKx2g}pa77d^Y{`Xxw4GNPyENXvYsjPrOj654iM#p(kZrvbY^!XN6dal_z>9(Ek(CGRnLL6tT-f6t4-BAt!o|H z*V5b8(J)+f9W}(eY%#dTulFK_MFzJvovN9#7B`IWj31L9mZ*~e)!@}9KAY)S-4CFa zhcaQ7{YL6PGt&EftnfIf0I_F=imn@KTN-9C%qH|NXy;S4I+=*_0j4{<^<^Of?{y$@ zybWrWdlfN2gxrK16kbC2&01Dj5Fe?&Og)GqDLv^)2B9y;?<3a+-P14HeGF4m zR7;{v^{)q!uMr~_FoZVhS9j^w9Pz{H;>l|5HDqZK8fqVi+`Od2FEy+H|JV!Z)%AYO zpBmp+C>sQU04i$FNMgP{(djcZTD};EZ2eo@0Z?_@v+*`jesuF#=QP$imTL!qko?U* zd0Noj3{8H!CkQBX74$(&$lM8*7^W_g_!G%~bXgamBo&9w20T_p4S^jo$sOQ0Xx@gb|@Q6L66K%h?;)XoIf#!}*CdqEzBZ*k+Maub{PtI^bOL+;6q)<1nNX%zX+ z7OChc-F?98%%T)ny;QG#Q^I?o%2A063EAogknlTI0Qiao#>A4;mS({l%X>uFiaQx0C1p5y=AO+DNp`WknGt=@$5;#p@RFNaLs`W4YjFtO*JdA}JO>Yyz$*%& zH)%Kc-;+0ITp}Ec%(hEpBRlkP(0=GrS$idL$GUpvjq}$7y94Z)hfg3CnpaPvc`9Zl_Vx6!O#PAs@(;1_H)&YYmGAtHt%B9O+pj));}N$G&#FHIVC zAG7STM!E%znn8#x8#Ns965m)V_z~`C#^vfqjN=Sh)ww%E_mo90jPXJ{5-) zBdQ*)z1@wV)*_x+=(Gi#Bg#N!V-Mz8Xqd_B-|Fw*`L+K!Tr;6KN&dSDgFiM7fIc`J zZ4aSz>16W=m-{1bdQs*w22$+O;i<4zsb2X^5Wj9 zy-(78llAD-^p9+(qvbqhygGc@vfkvI$w)zJ#dowrlMAoIlmw;6_bI^V;liO#ALBKF zIxkmCGQ}5HVR<*N=T&QsB=<^X$Yz)hh_SA zXHx&KLJP8KEHNkmY9)TS`eR|}R}24B8deX=YIk0-zoE@vX=9j69X0jn-rTV}iq6X= z=&Nfg!!@_zonMyNsqW$x<5MyGmlD4(2pFMss)(X%I*-wXL*2_nR|*2Zo~9``!sg7c zb)iEk17ImLMtq}Z{q7-anPVwyNv;={CGoF=t42jtk5U{hR(&ld zL2~@%fxC#qy*{NKmU2PSDEUM=EPcf#y5Hv4cBjh|mL%dyA96l?Y6TpVToH-&snoH^ zrwGa-bf^ErL@t_Ir70!SG(Dp^NmMIQDCqAx4GIMh_*4r`ZeJLAWg*I%O{FDW|0@aG zM-e-%)4z=q!4@>lSEof{D4=5psKrFP^uM6%o5pO&$AAKWI1#c=Lhe(MggPP^Lllyex}T{RVi}q5!r%yj zh`<7V^W~3VFCcoLyLJ?~-ND3KQD|mH2Y(++4zFZHMO0+NMxDZBYT_nzl|%!2^8IuD z`l<6(DuesMFWYfw0C;J7^6A{X^SNtCEQEX&^kOpFe*Uh1g@Um5yvmUncL71UpqyxU zvj7C6KGOWURXcKBl>MU_9b1NrH661cB9Cycqeh=Bc3>h|5FU+x#rz21vvL}s4gC&aF0wz#+jw*pH50-;52+gfrcjVGhCwL z+vrWSVYEHOBg4tb^{RN3friBpbLmpuFRmj6*LSt&()94Di_buoyBCR>IbN;AOpARq zb_?J%sxCNc3xU*E;zBPh3%R$+)j1tj30h{CQbGib-q+f8ViB z-8mHh3|Rv5CxikyVsN4PMaYIigkoGL%+nKsx$E0Gu=c`6zN9!ATl1#lZmh5Z4#douw3)*UHWd{}hp?2u-}=Jea2ts-M{U`4>7hP06ne zU+qUja%cfaMl&L&4pU?DUdGC{jKKZ0Kf>hMO3Jw(nGckX`BL*WwggIxag0bihEdgbd$q#?Czg;R|&mhKU@p>#1&3^-wov z)14wr>UjGaE*oL3ohc6g^3!KvUCJT8777V5<%zqYXjer2j++YLTtOrxoI~}d zej0Ry1N+e2QBJAE6g(pWW2#Joj1*GAg>hv=mZIzJ;DU3|H|rbq}F>TS|6n*X|MCtQb$MF?A+q_Z#)NS z0d_~K0f}lC+#@b1U^?;lZrf-OE22VVDn^)5Rs6urcB6aF1=Ow2?)kQP01~K17)oYc zcbYaW>?~a)r)mWka{-BbC^+yqKihu-a`W)~7d&siFvZa^ua#OiDr=d{szb-c?j!nl z628OwOPyWxkj!^7%`Q=7tR^&v%Lv>kVUgzc^}dA9?@)1iMd%e$4euV(xM_soHWiG)x-VxB3MXM4nE&i zFtb1Ry-9j0GYZ4#80f?ihfftPw3EsTaIH%Vk9)EsW%C0XQ3Aa$Yy5ojOMRM2Y_??J zYF(bgO3-gKEvs+6S8TK5}U$JkXe~fQ?eRd|APb8Lh4E!e*DjzQmDutW-YM^h}&YqDp zEDT~f1$1GeKrPOe1j{7RoU}C5_Cp*ysl396%%rK!O@@=0EYnpch-%S`u5R^Ex4te4 zUTAZu_rmm6jP+CgrF>8E3eAn6p;7=9mcrDqOt8(O;Q)X_$jV7(qF_}&%0N9QPGs#j zWrAJ-^%LeM2j2W~lLmtg^eNP7ms)>xF6h-$B;!>0endZjn_a`R2>^eYoJF{&e?AK6 zV)!yLb3s_a+3-M>(VLbGgiOtZtNi@%cc34;dWdCOgunz#E3!z`J--!t3HpZ|dba+B z=2Mk8gTxM3gHO|p?_22KVmK+%hlM)tY~1-LY9eU$VWk2*dEP|G#>rD2Id5XJrBckW_r?Y7KAH&} z@44tw0M7&t#c8Us?0Pof7D}U~gZK{a(FZ~C)8#Atccl1AaDbw# z*#ZsUfVKtAy?c2mNw$U4d_(4!KQ{EqRGVBZ{5qVN9P8+%QKoVz8mwv_-12jp_UDRq zm*-+r&ITN)pGJlO3Wz$L&^rLl7d{x7fH&?YU$^dGeq>P4|FWl_qk1rhX1n07UMMk}vd<(8~@`xA`mrBbB*vRiG6-UV!Ox^-bpcVrJg0848O_;j}^X_;)B1XE3 zHNw&=+_>M*zh#ntAps-bNy`TIp;>Jt4uVXQ2F*gp2)>7DA^DeqeKs$t0`rc;4pe;Z zJ#<*mRZcYO1yg5u)(mO<9}(k~<1J(SymE?SDGN$=Jh;>^V6XBsKm9~P)0FFQRHq|G zeHEC_LZyAOAOg&@MgWiP9#+Qev~d4ePP!2hiS|$L z(U1!6x&mTY0~zyu(jsD>oL9#nQw^cmk~CG`OrwU#zJ*5@k*+Z&PY39GqmCld2Ci6%+qAJPd|`sf8H`-xXZG+cFiiI` z=)X!VK3Z&4*Zd*b&2K=i7tLY$ZKb89=ALE4g@}5}y(E-EnDKOYepz@kT{Ehnt0*Yr zX3Jw+kPf26O_L7;sNpMXP_MmpZdZi{lcDA*O{h*e#_~L<70#AQKly0ti6fXK^gx9!`qMagl21=jf*RAu~}GB2Y^`Rc4I8sm+373A`@} zbkUAfnvzjNU0Mh~1D5VNWL;9%Qifsy!Z*^10Q9;!L#L1c5fxg(iMOSZGE(JCK57zL zVWZ%GMJoWu;QAQXWeC~&n7Gj_OJRh;j$+>QEnBvr6Y{#_0IpYqkPx#Skv~YW7vgRb z5K?VhHUc@k_z5Eb6E}Jj5*P(^DYOwHyqHo&S^+c@h+UH9$q1PmYQScB@>@XxI%2^66mT61qesX=qg@;V25;%rh`ekc(wvW z5E*839FTv*y@AxN(>f)#2y+8y$ZyHal-B*ZTnBizUtUpoo;92dVnUMk)+kO$1sE}3 z1j#QL6HeyhR;7r_2b~$y6-uqD9ttFt8>Kc=r%i)$xh%8zsild^*Ng{%jy+j`#R1@y zR|ui)t;WTUfbrn1SEUg6!n|b+b(G?Q3^VERq&c0m{d6{fE$pVRzn5XgNx@YoSR`;w z!|d)4qlVekdeYFv;WJDjKyU#jqnG~`tPI08V24N=<9f`e)%jc2FF!7MFdeR3y{!A- zi0V_0(M-k-g6)g$IRGo3SWFjhaP`vWdC{mtm17`Kia-m-AWElyGA_B~T1CZj%I}P) zAEqkqPPObN#MYx3^Atq_h=H10!*nz*YkWqjts|yQ=9d0E!me``jnfK*sI7^{gDx4! z`%6a7jDpGJ%^jf7qn$>9NYPW>H`v1I2VK$eEE6ZZI>?0UnW0O3TfP<69xchBr2BGN zxr$tk0g#mDGmM}BlLqDp5t=}y79VN$8=~Ki=I2LhY233)kVtaWR}QxD_o-pd zQFTzhh5M?GAF!TN{djtDAjSzK*%|HK$Zv3}iaLkm2f~q?3Zf71IVz?`xvqFuizk*& z0S>VPcU%{a8)CQlCOp0&KegVui&Yo57e@U9esi9(>oS(|5A56sd`w9y3QzC2(lE@Y zyaGc)PMkNYgH)FCl!Z<%JjXf-#rCqGwBp{>qzErZDkaR;6mv-}P$1_M^zQ}Aql8F= zW#BR}cgvlVKl1rU`X|r!<5mGF)^P=q0Z$JKn!yi`DT5rBZy`4LyIuE7$#0|h?$iPN zN`sUkD3qd_wDYF(F1b5l5IpvZtu8$dJpTO$eM(K`Hx$RiCU81}4fM>n9M z6t^<2Sur2lP0%gN5@~e0&o{+aSR~ZdauKH5ma=nVxQkpnLg}Bk$ij z*B*sSiJP6#u{&v@P6gN}lx@VjC?E-h09L5gKuv*&ffM%GPW5!NsV6BGnNH4KueWKU zoeNOmdY_cEVijIK^h1(MN%cJ`%u((KW4J{#Ly@zJ);pa0UJ!_!T$S-H4K{_ZH9PSF z<>D z3Z!}OkKQE8P>@u4$cO!V!*-KCY@u%OReW#TRL~5DB$U?G?ytURlR1~i=4|jotyw`7 znXJc<*8sjxNHWB)Tx8}#GXDhP1eAYS5GeqV3lASI)sItX2t5Q2kd%QDqrujgm5HkD zGR{`b=wC62lXV$n%9y3YYX{x#n~j3b*p znz5WeUBzKG0nES0{W^vP?Bx@#tjeIQ7JS1v+G=ugl-e@UDBr;#ZME>+Qa;nG{EM2O z#`XQp9ity0Xqr75_y)d!_meSzxh2iy=MxW#@DxoWtDba&+Lq&$vqa4TpEQ7Fe4MEqUKH# zBbqdpG7&rm1hOe9uMOXT=^939F5e0(kr>98um0Gp_2W=nyAc4bWC!lxxReEYrUG+r zcTvffW#}1cDt(tVO3j$u)Z?8c1Cn!BUJv@s;_!wHR7Qkrhrk_zBD0*;k_-LbFoSYd zu(sjRS+QGdv`-2AD%Ytb36HqNp6ck7HA(pzt8oy~k)Und*n9S9NIjRPD?X)Z7ZkTB z>t+yR(Xdtx3X7zWQx#r@Rxg9I5PvUjRqnIZR#~eaK;<8o?4q<4Yh`>z6HQ~X@*R(z zBoa8n*}6)Is4PeN`S-XR$MA%a8K=UEcIFR~P(Y;Rgi>+m1Fp;qU2SI1AWjr$?ZSKz zFpTM+fRTQC^rkDTHd*B4ascAcT1|a0bTb;OO}dGMbKZPJUxKdo>ya$%PXgz6Pov=( zpccNmM@sS*CaTh$9%MvT9o(}g`uF~j{6C`Kb#Fy2ffUWo2c_|`Ep{}r)a=yqRakDw zz^LR;U3BDdjCgdz)=vlaf#r>+w$W{8dbyFyBDzhk{Yh{HhYJFJ&)AtxcRy4_urN?u z#bF3V{+i2}#duqK=v%~iKh%JviX zYwGt-`-bGq#y-vO4a;d1$Az%`%9MKy*5N8>osTI5TWV5s?y63%UZKCZDx=G`D&>`- zbynQ?s`W9(A{HeOyT}3#ng9$Plf<}-Hfx1AqpMPIMlm2wf!i*nBZ^QYS+Byg^<%HE z;JGBn!KF`RR@8OnT!WOL9j|%N6IgR_G|u}UZKs$VMS5OPs0v7~UG87=>Ow!(B(e>2 z0UJ@xa*`EvMfsl_O9n_e{!N?DyEl>X?tRCbvzdox(J1L8f?i6y4N#V3705|h0`8=%@u z5+w>YlE)Qu8HhvYSkrSmH-CmLfaQ9W;Z;$cyuCI?u0+CisipcnW@#vz;9^@f^0i@x zG}cyWv>4&m)=ou^&^ypu>xn?2A!8sQXi`|slwJ}&qQGW~8DVs%<`mrbhO9xTf}?me zK?IVfvLcIncywNyNo^l+Mc&$0_3w0{co_y6dACQ-tlUF=NsxErw^e3z++m2 zRj6=+Cg=f6sp*ocz1BR|P!kSWA>3>*at4|Q89+m2ab+q1XPgTg1W6&Nwy(C_Rpkt$ z(lO_*QcFKtzaY3Ci831Q1IJyT@@U40Q&OatgWyV1Sb>`EXtL4!DbC#K1lncs;5RT z&%sp~nL_I3#|aI^+9SEJIte}N2{p#E(v%U7k>rlftF-4^-t~X*u13czC%Q#ic&fZv zztT{Pex-#voAks4RUk$#_H}a*$~rXiNE89{pQNedTh(RnWr9*T*&L1DgbF=&1jsy4 zzd+1zKkj2dgwxPhIBixDw8T2LcABf=Kt5;yT?aeU2EeLt}0>#FKB_pLKGD>o>BoNB&aANwX|BK z1xd74IWQ(rS@b8X~13T#^ho1x1JzC18LF1c=;nCHI;6{+?&; z{k_a2dfwlk=Y2h&Qv?)d_TKBhp7ktge%dSk2yD`IACm;ZrJAz9uc5RIK=1vxbafhI zl&<+`=kq;?AWr1DR<(Y$rVb0kzShTbEp1-$(232ruNW6NIX>`*&reP}c6wU;-SgG&uou$)AQVD^!sv;{b7CqL@q^B;QISYzPEXEf_IMs8)w`Pgd}+@gaUvK2hAC_gB!RoL-W=!z%5d0 z2oV}4!);bzX8b6)P}~|heb^8;YQ+nIr!1qhBM>hBO3jIC`8)|;I8_N(h!e59Wv7*_ z76jY4sjW809%dd0T)T1DH~|5_@KGqoO;Kva6O83GClp-IN&( z*4?q#+9Lq-X|%>Xx6FW(E@IA|_Kn^ZdZS;V!skW(;|%OXYOh15A9%(p1K8CM;aJXY zd*lFENV}9v@L+}UVaHgicwgvbFBZ(%Tc8}eytfLQVN|fcWV!+gelirnCh~$gvWhN* z9c8Y?cQE^FXlaLcu+m{pe+(o|lj&sm1Hz&0WJ^m*@vS z@MjOf_9`6QY_q&iiYY?_@R{_ zoJj_hkj^43sy6at=)My|Ee7^qVCTel2ya<}q41$p%7{n7shMDh zhB@~+q9|k4)kkaz%fR&;z}zco9K`HUE9Hf-&8)aX~yv%BUvi| z5sn0B=3X%e<3KwK0-1x?LbXRmgh)(Fda|k}MHVt)Vv!14rU`sZMsETj8B~r%cc)ms z506D^mF^q>vHanb26tI5M%VKQ3N1l5L?wK@4Vt>|`J#yW?XQSGg{butpj}<6t^yET zpes;g(TvMrlLUs0$i|JVO0k%T1a{)^-v&oX;s&d*wyrg9e`9WLzBEeiM;x9sC9hO8 zO;#zgJ(1t~UNd1tT`Z>}zGo9_Q7GUHOY5zHs1*1R)hYJ3~0x1(<% zU`y(HQiBtHL=*$B;A2(CSUR&GGBiX+hNF-6QWr}pCm5b1_dIf-k|L<&OR{x7o}Sq> zeQLXRlpa3WHB~~3c6ZSw67MB5ew4BuZA)MXzm(Kh*(r+8wu6#RbFH6$Xyi;kT2_|6 zl4IqKr~zHq4VX&ih00xa@IHu%WcQp)(9lOMZF{wxHOF`qTtW7w`XI!+G%dxwm`>+T z1Q6rj9bS9P(ln#2m-X|Beq*+Ya$eA{U%w+;;`0E(6??<2PAuw}KxRFs$H>d2%12W7 zT!5st7YYy=1*=9RR~6v1?p1|M0a~Lf21|rSr2S|pM$b5ZXnn~EyAmFZL0=olDRW>y zQ*Xj#+{@3`9|0|U{M;2-B-p)N4V&nSt8p0%AVXLbtSZWB-Zkh^SxCrsuAXydQmRfa`e&9r2l(ESs|F5hH%NZUCP5-v<{Q(`<{EYG@upFjZWj#Oa}qfx+SBAOk8xV zKyrD&9CEONkWL52GPLvfVdY0iGGSCRyQi>s^x&^f6t^T=X1FocKk@A$W|tZUM_A*fCy*cLZwv~6)`e_j7fTR~G(QvySeoT5p& z;299{JoqC7TGidRsd-F|bDz>s{bJ+!!_{EkkjSp3WWb`zo5Xu>#2jDqRI4!LPkO-l zDLrPL8~%FEtbnhj6s)zIW*5Z|d3|7HO<1H$LFgN~H!t%Fgb0zNzRX43EsJaDzFiRU z8{tJLV`iK{Qp5BbfTA7dF!)rSJ&j4#)zuz`sIhHtO`d+7q)Dn^c{kM4y=390*?;~3 zQ@WU6MAr}Fxo`-5M$?gUEXYSwcrS^?iN%Pv!i}H?>Xe4}w#@FgyM!%msz|z;Q?O%UT&>Du7|(?qu*s|gDP_1vL3+EFW0!*KiNcgOxMUei26_^?gb0XM_#+T! zr{!R8n0uII$BmmnNS}74^=naCqu)C%NS7w(9VPn#`QbFbwgz(uZy_s)vQJ=Mr0+?F z$2FrsA&=0vUl!;tI@MfU6StC`TOSgT>o>BZ4G;R;^_v<zboJV z;LHZ38F4_=gAB=9B_M!vrRiBKG7hgeMRshCl!pKNi95nb+xIf-rJbkX2Dr{mKAaq8 zSZg|IFzP0AR)Xx_Ye%}?PM~HDw@k&BvoNErIq%~g0Y)o8IT-8@)+h{W&kD(taoJ7&(Cbag2zCt zZz$d`!!y<4Dex4=hTnbg@GTe;;I4YzbY#R*k`9u&PBXALp?)`x1KLFRAgqOv|GzW~ zAI9PzNr<^L9A+ow%f)1T-!m3hsANc#tQ> z45QoS(&aJ~;V>$|<&$a`HyANVcJG5Z!`J5z#*4veD1X~uGT`^ah9m@SrsDIYg0Enz zi%h8tf%;hi?zdUX^#6B8c@J9*Q1`=fP!2};%E?XSRQWqpRy$WJCrP$-{qz#+=OU2C8xP;& z8MsLLw%mv=ks{{QnGj;y{H8_j9%Bn{rmA7bl1o+fEwwS0IRY^eq^ENqU#m?1=|{X5 z9|>zlgq0W=8C4tohOoE89GpZkS=NYVO8RHpg`7W@n*o)w36bNztYkh3W!P^9O0 z3i!KHe~C@G0~Wbo14%D#72;heyOxB7<$-* zfs>sM<$UOGp0q3M<2}~ycn|DCj^f?_vxtVjj|mgSsFnoG!|ed(w{MMH9D0)6{Km4p z#^>_7ZG$1&?|CIEkk7=3RRJ`KalKN7mhy{30D{5@9^>(cTUL>bkMx~Aa0QE^tk*Oq zhQ9272AnvE7Mw8@gkD{cU-Z(S2&JGYk z^MTT3yF8;=A|&S|ud((BE|GpZSAMYn=vDSbt`J7%0Qu(J+xyJfejou1V3kEWDeSs* z7xt}&lW@(!aqEzb6XK^U=j^ZaUAv7TO>Fc25!JqbQrpIR&}lACM2=YmUPIPmU|9S5 z!OrSW>P&J{%-iw~K;OdeyZQEOd$H0rlyr>^-K!-6!8=>JA=ThP1_K@TKs}!g zAXn2y|1qSxi28C-d-7ypN%RP8UOtEptjd{;`$!p#0sNmB@qFdNzek15kOWM)+iU|F zca2%{Yjsyix1~+@TuL)9lzs~q454lN^k*nf)^J9pEVCNQia8B@*mU-&W&_8W{K`|C z?i%9OpFK)3JYb1O^~J;J%|nZghxjdG3P5c8(XVfF(Tgl_xa6Eann{E|t_dx>d#Xuo z@dD`Sp39Y52u)6BMWKl0CBuhA&Vf66-jn?7zb55QN2ZQi$J)u^S6q=f6{F(2XZrNz zzb1GDm4_=9`tb-AsKZFWMf@R*@xNN?qMN%+MZ!aEoBlhi3T13ohAazxjD*z(|ERx> zKxQ>U9^VsR?NH;qAy<`Euf!DoxyfM|1ie^>dIzwJJCOhZ#z+~DeoqL0RGG1|ZcTV<4}DP8m(kR~6Qy1TqD1 zJJLx;Lh`gQ(wnh8sOUOfVN;pEeU}IR>WsjQiE*`8#XXf3+4|SW9bh$8wE(lSt?S1s zAD8kH|Bd*r>l1L=N5|Ncj}fd7G+@i&v&)HhC63(8bq41DY_$rd)tYzaFz zxdWH&+FNvFFOdmy#JH39$DaJL{hj+-q(R0S{r(I@Vf0W{RJ>*~JIx9xH74k*I%UFy zhy9=Hl5s$F%8I3DIm|m}2%4MH3Yq-SiLP+2_})eRgr46lYKRj>v$=;Y6klnfz#<{! z8qV$p$18B{Dl4?Ac~2Nzu-@nL8=m;1uV%Z zLq*pEqJ$(AcEn!L@W?H zpHv_krRWuVCxfX!6T{F)f7DALzW%&AhI8XRBq1#X-l5|45u5No9GWa6bS+qv(M0NW z68qvI<;fAxg6GjJJeZOCgU<99XH}W((Mf_JG6WjM8N5jc&IWj(E{p`45H{5~gc{8I6E zRbV;IRK<5%&j~}MpRSJ}30{!R0g6Dz{81A1DW@4~?#qJB{V-+jf$)F6^Aa`Jr+e<2 z7ntRJy&c$MOjTv=(6@KkEz{^ydu{I)5+ulfg!_3G;(gf+?4$9<4jG>y)!W8nLKVo;F)v-MR$Fxo!1#TEJ!RjPAld6-ea# zjp%|`GiCyLit?F5McBiX&kQ3M-1e9Qh$eDo;^ZU!g8D+aR(l!aR)E$O~X?PFiqw)RSiw{x@uISZMU_m^U(7AA*$cb+9`=w`xYGDN@Uy?0aG4? z02ZY=jwMe&>h&5IPQ8$N4imR>^c#6g#m2;7OJS2UkG1r0J!bZ;tS&$}_vbk>t%oQ#t0a_|4)WpVm zB|7O4MOeRAZROcQos=VhZs(7|T-&`Yvj!7Q>ydhW`dt1NRJgrc@Qfo(?cH5#=W#0c z%e9hQW1uqNEZnh3yfF-;xjm&PE)_3pgj!&~GD3+unC#dJ8dou2OE@`oGle25%`XvI zHMAq|r~(ifT2`v5<0>6os6dMEDT3;7O<1YspEoV;(9m~Ua8~38*OX&Hw7@c6z zwO&}ixaoz^G}G=FCK>Ut@-EsPo3WK01?%X8%M(;2xevGkNpGVD3}*)ed2InV^GAp0Nk&XkU$J z$H^HuJn1U?Y7$U*=0^p40GI=1nA+JZD!9hxm4jBwIh7?=OPebF-W?sE{Z(fq_8n@i zA78$oGZrfYb4gowxQC(wgkxB`m3ofJaBPk@4Fl)C{T36ZPTZ~JwzFL{k%G{j;W#2A zG0D8;BOJ!X5`Sq}TH;SO8Iu`;omRO+`bUlUp@+3>8MZNsxa-ax??ezmN(4+nfY^)O z=7%e@ZHd2`uR2_@nR~B)q;xhDDG*Z)tKg8pu{Jf3Lmz8(ZD`VrLAIV>C3^l1mLdc9 z3edXR0d&IvEKjokV!dDRol8jo4NxH4$2c{6I@Sz5?!Yv7V332wkW;85X(Mh~I?Q`? zBnQE6S?9vkCp(ogzf@=vvX8wiS8$RiM~w?T>Liz1xvXK`>{IB$8lrN!z{$F7M=-?4 zU-pjb-4ZXa7pYh#P|JiKdl3U*W*OiA_!_@x#^EMNP?E6V*LP-H>iN;~>@3g+3)&>L zSGQeXn2KHx`rv=l4BWaCrQI-$I2thvLHH;^6!*h1(ifZK@G)Wkoy&18VdfG z*`PpD5m#%ihK;w(pB0E|FRyVV^p7$MCi=pIt1wiBZCVFesnJtBRvn3E%!syYn~P*( z!ZoGzsccN8XmSHoNXmM~4l0urwchitCHFm>EAK6gO(QixT z0WB|oS+vxg;#0yO9N%=P^$J%LRC=(|PpbWCu;9DOS+2Liq715y9=7o=ms)rB)U=ZW zBQHgpVsvlxv(aY6uqKfFssXDeMAfjQ2_c6-NSDoeR=g(#!lKU*B)1AfG^n0=rVISd zL^;p}D4n2G$wVz1+`W3mEScug8MvfaXknWfxCwyMUckyuEgYKs0nJCM!XJnPco(~= z0U0}0V!PXzZ-?G8Z*d*X0Z_;w?2(P8WL4w;nkMHy4ib`o6%_2glc;&}lglIusoYHk zF?;nC4xtMawkOp$2XTb3YFNp>hPW$hAMgJ zs3iJMXe05**&J#M?mRGi47e?hd?Wl_mRwxiGtZrV<41o4I(zWQpeN6sA>gOn!m3&4 z%=s)s@%7fTj?qGJ6!U(dn0bWlJ>#!cRZx zNQf-=^XO%v$XrW{LX8MiiE*P2A!$Y#Jd$pvBLnHN9YS|0!*s@uEYJZi0SuYcG>cdP z9^D1C+=mzk9moHkLNNwiKTKDEB0^@F*xvpDQM<4=3(#*!632qc@)(Al z5H1*<_0Ta~>xBzk*eE)t_~Vs!1u32BPn3$#c34Y*aUbx*dMr(@M}8?hwi16aR3quP z>6J9VX8=AD8&TRPUpn5>wIC53ATGKHfYG$1QiN$W7C4Lw7PEKn%sYAHDuw8@p?D znMO6`1fRu!2ee@&fM)Xr1^c2rFvyN<17} z99CaV>R{@S`D2hKWYOd5=z!kZ;a)EC=+p}W_0CxXrvj^L76`4Im(%8zA*@Op%)~-}XYW>#woHhHy10nzEpH6)7Msm%4G#y`ahTFXOVYuo^RG%)q29Zp7hnlptWOy}74O5q#(%&bA&xlCIfvC7Kou(V4Xb zb@*KXR`3l~%|c-j>7WHp*+Kf0<4B(XjeU<7>6keWk_G%7Fkz-FkT3D6>#$AcM%pNz z84egOhSQ^%I0V?Q>o$PeDF{uI^Ga2?hDCiZz6iEEfyK*5XQfj=E*O)pj7{ z>N2|=_6H8}&`qTkH&6r;~OiHEPJ2Ew8tQtaJ%|l01p64Gg>y87Ouh zvLSh3|1na(l>B@B#(+KxYnJT;2MK;h_MbsFaxK2Nomnu!kfF8#i>zSScunG7)qXO` z;CTU33p83BR*tU3C3^$aWdLQ)sVFr;VJm=^c+&+aLKX8WWN4Nz1I7S=PTvr3IAAWK zfdO;5wG+?I7;^U6t3f7k`1x+zI0J>H-ZDo;{$UtSha~VGBr-59VUYcYH&kh>42Fi0 z30xN+m%f8Vc!{qGOldl*VV*!%x3M7`9z9ZIteN zDAHhpQEOk>OljD<0AgPQCVr8eGU<6N1?^}Qh!hlEsKZExUZ&ihh?O2dQ=UXJM_kM3 zE(Cl^T($5L#F_LN^q$C30AmDCGwHi!ZFoak&us{%(2m5-BZ*@SVQG<~xwCADwUy2+ zV{m`NkvuS|sR}qqP&&)@FoeVYKB$~-F*2cjk_51IW@!k9VS+K!zQxXRi?~Gh3@Npv4xLHk;}Ax)n;?xcH==LM z6u%H@}u0ehMxGvbC#BW$t7 zDM#I|UVyjW)%ls5T%3XF#un�bDAKhO}840pG(7`Qro4i;cGh>#~09)>o%-6UCcc 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

OIki_u73@zu=W4Vr;RATFH|<{;2tSkQox9 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 e#(_g-nCN diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png index 94d57705096dcf40b4fb5944ef393df5454d7cd7..897e5cc665dd4b733e428d9f2b457c820ba78b6e 100644 GIT binary patch delta 74683 zcmXtf1yqz<_cs`TNOzY=cOxaEq;xj|f^>I{(jg!W-67rGARrCWUDDm%-{HRh?^&#S z*ErA2b7G(Ui@m30`Nih)i=Tl?tokic#6wvV2F~W)@CN1(heQkoSS{RoOdU~It^pu;?lsq z*6%K*Q4oBGHa}%6Wh-6xjj^M^B&lU+#^&dBs3NzPRHh5n(|#_$QDfGBXFbi94e70R zLLub4ax=I0lqOQu=Y=^xHy~6N5otvw=DE9=voSL>yUF!;zIuSD;f#bbUF=VHckZuWKcK|CER>X#f`U3}$v@jZ+t%y&K02zas%|G>mn@ap zU6r*_ORW$Xu15bV%FE1rVGun$YUsLj@G8OIK3lwGm`;@;TS?SRCG|jVLBKseNizyZ zP35O=J`M>@D0S~hRzRs{twBcvcfiY{=hS|1-+1BT`kOs2tp}O=W0@P>PII8)%CRiE zee3qE*Biw9c(k;+*QcA%>-D&R&NBD&owKtuqwer+hq8w$WOVd2eg_jdxo`tT?vbx= zdR;se8Bi0eg6V8LhiGhU4!!Sh-oAaC0;b;4ktGp9c6@xSrl$5rBK${CP|v`CWo-I6 z9s$8Lczk?(JR&+7LE%7~FBB1+p}W5+0@^i}y?uQUr22*ixg?(bv+c1Y9;=X`Aht<= zN7uWn@>B_g7caORm{>KnwFCY9);2a)_=L?ye-)~i#>U3Bq<$hcxjEa`)YJrf)Y;j2 zh8L1)z9^cQkl?gE+Br6M3bv`M`Rw=i=gdq@RBzsdX)~E(;)tO_N#Bi+j-Ff{uQHRq zevj9r4s^yFD5+65s%f`)z zLT1_$K2TRHT7H=THdtMQ!zcAi2{(Kh1;v0UOpCs_tainST2)Eu@8>?;D29(_Ttv7K zI!4CA%%&#&M|kKGl>Nj7^}n6z0-+|yU=;&w_ab-mXkM+Fk%Aepg?;9x!jJxwGeewEOYv|1v_nXbIr_U`FYu9SmT92s0 zSzB9!FAWb4Hggwp z2Jdg$@)?%L51J4kXa4>B_skdUEMtuHn@Qzwu`A2V%iG&-UVde9#k zF$#qf;IgmRX6s-Q6QNC&($;*)d-bYv%QC|Mlwd9=mvSd_dM<>R$CL ze|jsK6EM65Lf1HUlMoRz>QL^ER8WhcwB|ZCSd>-E=$S=bLUUzs1==2cGXdsb1NoSu zwS8E`SMjsh&Gre^9w%zwO!Oz&muCo){Cq`>8#>}|dbi?Ll-ZzIiUv1)GFxl21fqK* z50-~S&j{i3ygE`XRAWyV*qthUROlrmBLhL3bNil5(3Opesc1tFc85d> zwKzXmxIG;b;pOGU5B|91b*XD;NTvHZP1vg|g51X1`T@Mx`qzBJdY_(E!u*uJN#ln! z1F;KBL^m;??Z27IuiKVocnyCiy1H^IDk=^vXG>)b4GqDrt*)+yDJ51{pP#Jve;rEI z-J!&RbNTTFq#osd`Sg{4at2@@g@#&>g;pPg+Sh(<~ymn@0l7Z@n<`SU**t^CR9 zsTftHBy~t=DCgvQa&mG2DzWp$-i(jWGozSST6kiLef^%l9L`&EX9DrJmc&~xL)m$Mt& z$wehJ6Nh%o$jRfYGrsUlO@t)Oyo}v2$&6CMdu~8I)|}G(rcEiIP8mD4u0gPMYrU%1 zyjtr+K}vG6gG1O%c^;++bX=|^`kVG+$%%R25UI9M%oi*q%0DJ8^VY^854;~%SMSn% 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 delta 74732 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�gvtW&<)hn1ZmVR{Ty-8-@IUF=!g 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 QZrvm&r7T$@{^pCU0M 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 CA line(end = [121.13, 56.63], tag = $seg02)\n |> line(end = [83.37, -34.61], tag = $seg01)\n |> line(end = [19.66, -116.4])\n |> line(end = [-221.8, -41.69])\n |> line(endAbsolute = [profileStartX(%), profileStartY(%)])\n |> close()\nextrude001 = extrude(profile001, length = 200)\nsketch002 = startSketchOn('XZ')\n |> startProfileAt([-73.64, -42.89], %)\n |> xLine(173.71, %)\n |> line(end = [-22.12, -94.4])\n |> xLine(-156.98, %)\n |> line(endAbsolute = [profileStartX(%), profileStartY(%)])\n |> close()\nextrude002 = extrude(sketch002, length = 50)\nsketch003 = startSketchOn('XY')\n |> startProfileAt([52.92, 157.81], %)\n |> angledLine([0, 176.4], %, $rectangleSegmentA001)\n |> angledLine([\n segAng(rectangleSegmentA001) - 90,\n 53.4\n ], %, $rectangleSegmentB001)\n |> angledLine([\n segAng(rectangleSegmentA001),\n -segLen(rectangleSegmentA001)\n ], %, $rectangleSegmentC001)\n |> line(endAbsolute = [profileStartX(%), profileStartY(%)])\n |> close()\nextrude003 = extrude(sketch003, length = 20)\n", + "prompt": "make this neon green please, use #39FF14", + "source_ranges": [ + { + "prompt": "The users main selection is the end cap of a general-sweep (that is an extrusion, revolve, sweep or loft).\nThe source range most likely refers to \"startProfileAt\" simply because this is the start of the profile that was swept.\nIf you need to operate on this cap, for example for sketching on the face, you can use the special string END i.e. `startSketchOn(someSweepVariable, END)`\nWhen they made this selection they main have intended this surface directly or meant something more general like the sweep body.\nSee later source ranges for more context.", + "range": { + "start": { + "line": 11, + "column": 5 + }, + "end": { + "line": 11, + "column": 40 + } + } + }, + { + "prompt": "This is the sweep's source range from the user's main selection of the end cap.", + "range": { + "start": { + "line": 17, + "column": 13 + }, + "end": { + "line": 17, + "column": 44 + } + } + } + ], + "kcl_version": "0.2.38" +} \ No newline at end of file From 58a9c60d0bc8ade0d82424e23ee103d8eb5e719d Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Thu, 27 Feb 2025 09:34:55 +1300 Subject: [PATCH 12/23] Test code examples in docs and add docs for per-file settings (#5474) Signed-off-by: Nick Cameron --- docs/kcl/index.md | 12 ++- docs/kcl/{KNOWN-ISSUES.md => known-issues.md} | 0 docs/kcl/modules.md | 14 ++-- docs/kcl/settings.md | 30 +++++++ docs/kcl/types.md | 51 ++++++----- src/wasm-lib/kcl/src/docs/gen_std_tests.rs | 84 ++++++++++++++++++- src/wasm-lib/kcl/src/docs/templates/index.hbs | 11 ++- src/wasm-lib/kcl/src/execution/annotations.rs | 2 +- 8 files changed, 162 insertions(+), 42 deletions(-) rename docs/kcl/{KNOWN-ISSUES.md => known-issues.md} (100%) create mode 100644 docs/kcl/settings.md diff --git a/docs/kcl/index.md b/docs/kcl/index.md index a1d6486b88..cebc0796fa 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -6,9 +6,15 @@ layout: manual ## Table of Contents -* [Types](kcl/types) -* [Modules](kcl/modules) -* [Known Issues](kcl/KNOWN-ISSUES) +### Language + +* [`Types`](kcl/types) +* [`Modules`](kcl/modules) +* [`Settings`](kcl/settings) +* [`Known Issues`](kcl/known-issues) + +### Standard library + * **`std`** * [`HALF_TURN`](kcl/const_std-HALF_TURN) * [`QUARTER_TURN`](kcl/const_std-QUARTER_TURN) diff --git a/docs/kcl/KNOWN-ISSUES.md b/docs/kcl/known-issues.md similarity index 100% rename from docs/kcl/KNOWN-ISSUES.md rename to docs/kcl/known-issues.md diff --git a/docs/kcl/modules.md b/docs/kcl/modules.md index 94f0828a64..8fdb75e3b4 100644 --- a/docs/kcl/modules.md +++ b/docs/kcl/modules.md @@ -20,7 +20,7 @@ export fn increment(x) { Other files in the project can now import functions that have been exported. This makes them available to use in another file. -``` +```norun // main.kcl import increment from "util.kcl" @@ -48,13 +48,13 @@ export fn decrement(x) { When importing, you can import multiple functions at once. -``` +```norun import increment, decrement from "util.kcl" ``` Imported symbols can be renamed for convenience or to avoid name collisions. -``` +```norun import increment as inc, decrement as dec from "util.kcl" ``` @@ -63,13 +63,13 @@ import increment as inc, decrement as dec from "util.kcl" `import` can also be used to import files from other CAD systems. The format of the statement is the same as for KCL files. You can only import the whole file, not items from it. E.g., -``` +```norun import "tests/inputs/cube.obj" // Use `cube` just like a KCL object. ``` -``` +```norun import "tests/inputs/cube-2.sldprt" as cube // Use `cube` just like a KCL object. @@ -78,7 +78,7 @@ import "tests/inputs/cube-2.sldprt" as cube You can make the file format explicit using a format attribute (useful if using a different extension), e.g., -``` +```norun @(format = obj) import "tests/inputs/cube" ``` @@ -87,7 +87,7 @@ For formats lacking unit data (such as STL, OBJ, or PLY files), the default unit of measurement is millimeters. Alternatively you may specify the unit by using an attirbute. Likewise, you can also specify a coordinate system. E.g., -``` +```norun @(unitLength = ft, coords = opengl) import "tests/inputs/cube.obj" ``` diff --git a/docs/kcl/settings.md b/docs/kcl/settings.md new file mode 100644 index 0000000000..82ffd4cdea --- /dev/null +++ b/docs/kcl/settings.md @@ -0,0 +1,30 @@ +--- +title: "KCL settings" +excerpt: "Documentation of settings for the KCL language and Zoo Modeling App." +layout: manual +--- + +# Per-file settings + +Settings which affect a single file are configured using the settings attribute. +This must be at the top of the KCL file (comments before the attribute are permitted). +E.g., + +``` +// The settings attribute. +@settings(defaultLengthUnit = in) + +// The rest of your KCL code goes below... + +x = 42 // Represents 42 inches. +``` + +The settings attribute may contain multiple properties separated by commas. +Valid properties are: + +- `defaultLengthUnit`: the default length unit to use for numbers declared in this file. + - Accepted values: `mm`, `cm`, `m`, `in` (inches), `ft` (feet), `yd` (yards). +- `defaultAngleUnit`: the default angle unit to use for numbers declared in this file. + - Accepted values: `deg` (degrees), `rad` (radians). + +These settings override any project-wide settings (configured in project.toml or via the UI). diff --git a/docs/kcl/types.md b/docs/kcl/types.md index d219554826..042d076150 100644 --- a/docs/kcl/types.md +++ b/docs/kcl/types.md @@ -74,18 +74,15 @@ fn myFn(x) { As you can see above `myFn` just returns whatever it is given. -KCL's early drafts used positional arguments, but we now use keyword arguments. If you declare a -function like this: +KCL's early drafts used positional arguments, but we now use keyword arguments: ``` +// If you declare a function like this fn add(left, right) { return left + right } -``` - -You can call it like this: -``` +// You can call it like this: total = add(left = 1, right = 2) ``` @@ -111,14 +108,14 @@ three = add(1, delta = 2) It can be hard to read repeated function calls, because of all the nested brackets. -``` +```norun i = 1 x = h(g(f(i))) ``` You can make this easier to read by breaking it into many declarations, but that is a bit annoying. -``` +```norun i = 1 x0 = f(i) x1 = g(x0) @@ -133,12 +130,12 @@ the `%` in the right-hand side. So, this means `x |> f(%) |> g(%)` is shorthand for `g(f(x))`. The code example above, with its somewhat-clunky `x0` and `x1` constants could be rewritten as -``` +```norun i = 1 x = i -|> f(%) -|> g(%) -|> h(%) + |> f(%) + |> g(%) + |> h(%) ``` This helps keep your code neat and avoid unnecessary declarations. @@ -147,12 +144,12 @@ This helps keep your code neat and avoid unnecessary declarations. Say you have a long pipeline of sketch functions, like this: -``` -startSketch() -|> line(%, end = [3, 4]) -|> line(%, end = [10, 10]) -|> line(%, end = [-13, -14]) -|> close(%) +```norun +startSketchOn('XZ') + |> line(%, end = [3, 4]) + |> line(%, end = [10, 10]) + |> line(%, end = [-13, -14]) + |> close(%) ``` In this example, each function call outputs a sketch, and it gets put into the next function call via @@ -162,12 +159,12 @@ If a function call uses an unlabeled first parameter, it will default to `%` if means that `|> line(%, end = [3, 4])` and `|> line(end = [3, 4])` are equivalent! So the above could be rewritten as -``` -startSketch() -|> line(end = [3, 4]) -|> line(end = [10, 10]) -|> line(end = [-13, -14]) -|> close() +```norun +startSketchOn('XZ') + |> line(end = [3, 4]) + |> line(end = [10, 10]) + |> line(end = [-13, -14]) + |> close() ``` Note that we are still in the process of migrating KCL's standard library to use keyword arguments. So some @@ -184,7 +181,7 @@ Tags are used to give a name (tag) to a specific path. The syntax for declaring a tag is `$myTag` you would use it in the following way: -``` +```norun startSketchOn('XZ') |> startProfileAt(origin, %) |> angledLine({angle = 0, length = 191.26}, %, $rectangleSegmentA001) @@ -216,7 +213,7 @@ use the tag `rectangleSegmentA001` in any function or expression in the file. However if the code was written like this: -``` +```norun fn rect(origin) { return startSketchOn('XZ') |> startProfileAt(origin, %) @@ -244,7 +241,7 @@ However you likely want to use those tags somewhere outside the `rect` function. Tags are accessible through the sketch group they are declared in. For example the following code works. -``` +```norun fn rect(origin) { return startSketchOn('XZ') |> startProfileAt(origin, %) diff --git a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs index e8ba705ee8..21126c0f2f 100644 --- a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs +++ b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs @@ -1,4 +1,8 @@ -use std::collections::{BTreeMap, HashMap}; +use std::{ + collections::{BTreeMap, HashMap}, + fs::File, + io::Read as _, +}; use anyhow::Result; use base64::Engine; @@ -7,15 +11,18 @@ use handlebars::Renderable; use indexmap::IndexMap; use itertools::Itertools; use serde_json::json; +use tokio::task::JoinSet; use crate::{ docs::{is_primitive, StdLibFn}, std::StdLib, + ExecutorContext, }; use super::kcl_doc::{ConstData, DocData, FnData}; const TYPES_DIR: &str = "../../../docs/kcl/types"; +const LANG_TOPICS: [&str; 4] = ["Types", "Modules", "Settings", "Known Issues"]; fn init_handlebars() -> Result> { let mut hbs = handlebars::Handlebars::new(); @@ -345,7 +352,18 @@ fn generate_index(combined: &IndexMap>, kcl_lib: &[Doc .collect(); sorted.sort_by(|t1, t2| t1.0.cmp(&t2.0)); let data: Vec<_> = sorted.into_iter().map(|(_, val)| val).collect(); + + let topics: Vec<_> = LANG_TOPICS + .iter() + .map(|name| { + json!({ + "name": name, + "file_name": name.to_lowercase().replace(' ', "-"), + }) + }) + .collect(); let data = json!({ + "lang_topics": topics, "modules": data, }); @@ -991,3 +1009,67 @@ fn test_generate_stdlib_json_schema() { &serde_json::to_string_pretty(&json_data).unwrap(), ); } + +#[tokio::test(flavor = "multi_thread")] +async fn test_code_in_topics() { + let mut join_set = JoinSet::new(); + for name in LANG_TOPICS { + let filename = format!("../../../docs/kcl/{}.md", name.to_lowercase().replace(' ', "-")); + let mut file = File::open(&filename).unwrap(); + let mut text = String::new(); + file.read_to_string(&mut text).unwrap(); + + for (i, (eg, attr)) in find_examples(&text, &filename).into_iter().enumerate() { + if attr == "norun" { + continue; + } + + let f = filename.clone(); + join_set.spawn(async move { (format!("{f}, example {i}"), run_example(&eg).await) }); + } + } + let results: Vec<_> = join_set + .join_all() + .await + .into_iter() + .filter_map(|a| a.1.err().map(|e| format!("{}: {}", a.0, e))) + .collect(); + assert!(results.is_empty(), "Failures: {}", results.join(", ")) +} + +fn find_examples(text: &str, filename: &str) -> Vec<(String, String)> { + let mut buf = String::new(); + let mut attr = String::new(); + let mut in_eg = false; + let mut result = Vec::new(); + for line in text.lines() { + if let Some(rest) = line.strip_prefix("```") { + if in_eg { + result.push((buf, attr)); + buf = String::new(); + attr = String::new(); + in_eg = false; + } else { + attr = rest.to_owned(); + in_eg = true; + } + continue; + } + if in_eg { + buf.push('\n'); + buf.push_str(line) + } + } + + assert!(!in_eg, "Unclosed code tags in {}", filename); + + result +} + +async fn run_example(text: &str) -> Result<()> { + let program = crate::Program::parse_no_errs(text)?; + let ctx = ExecutorContext::new_with_default_client(crate::UnitLength::Mm).await?; + let mut exec_state = crate::execution::ExecState::new(&ctx.settings); + ctx.run(&program, &mut exec_state).await?; + Ok(()) +} diff --git a/src/wasm-lib/kcl/src/docs/templates/index.hbs b/src/wasm-lib/kcl/src/docs/templates/index.hbs index c94381cbef..17a08eeee1 100644 --- a/src/wasm-lib/kcl/src/docs/templates/index.hbs +++ b/src/wasm-lib/kcl/src/docs/templates/index.hbs @@ -6,9 +6,14 @@ layout: manual ## Table of Contents -* [Types](kcl/types) -* [Modules](kcl/modules) -* [Known Issues](kcl/KNOWN-ISSUES) +### Language + +{{#each lang_topics}} +* [`{{name}}`](kcl/{{file_name}}) +{{/each}} + +### Standard library + {{#each modules}} * **`{{name}}`** {{#each functions}} diff --git a/src/wasm-lib/kcl/src/execution/annotations.rs b/src/wasm-lib/kcl/src/execution/annotations.rs index 5041dc5902..baddc8c150 100644 --- a/src/wasm-lib/kcl/src/execution/annotations.rs +++ b/src/wasm-lib/kcl/src/execution/annotations.rs @@ -65,7 +65,7 @@ impl UnitLen { "yd" => Ok(UnitLen::Yards), value => Err(KclError::Semantic(KclErrorDetails { message: format!( - "Unexpected value for length units: `{value}`; expected one of `mm`, `cm`, `m`, `inch`, `ft`, `yd`" + "Unexpected value for length units: `{value}`; expected one of `mm`, `cm`, `m`, `in`, `ft`, `yd`" ), source_ranges: vec![source_range], })), From 91f5465e2d49e8cc432ed1d8cd86a88f19e38b24 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Wed, 26 Feb 2025 18:49:13 -0500 Subject: [PATCH 13/23] Revert "Correct hovering highlights on HiDPI screens + correct 2 flakey tests" (#5535) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "Correct hovering highlights on HiDPI screens + correct 2 flakey tests…" This reverts commit 5743b9ced005b5aa99cbfeedc314134bd2df8481. * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] --- e2e/playwright/fixtures/toolbarFixture.ts | 10 ----- e2e/playwright/point-click.spec.ts | 8 ++-- ...ld-be-stable--XY-1-Google-Chrome-linux.png | Bin 50179 -> 50174 bytes ...ld-be-stable--XZ-1-Google-Chrome-linux.png | Bin 56431 -> 56428 bytes ...hot-tests-spec-ts--change-colour.snap.json | 2 +- e2e/playwright/testing-selections.spec.ts | 2 +- src/clientSideScene/CameraControls.ts | 13 +----- src/components/Stream.tsx | 6 +-- src/hooks/useSetupEngineManager.ts | 5 ++- src/lang/std/engineConnection.ts | 40 +++++++++--------- src/lib/selections.ts | 19 ++++----- src/lib/utils.ts | 31 ++++++++------ 12 files changed, 60 insertions(+), 76 deletions(-) diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index 96c7815e0a..daf4385337 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -82,16 +82,6 @@ export class ToolbarFixture { startSketchPlaneSelection = async () => doAndWaitForImageDiff(this.page, () => this.startSketchBtn.click(), 500) - exitSketch = async () => { - await this.exitSketchBtn.click() - await expect( - this.page.getByRole('button', { name: 'Start Sketch' }) - ).toBeVisible() - await expect( - this.page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() - } - editSketch = async () => { await this.editSketchBtn.first().click() // One of the rare times we want to allow a arbitrary wait diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index d00dce4618..1e3ca7de16 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -170,7 +170,8 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { }) await test.step('Clean up so that `_sketchOnAChamfer` util can be called again', async () => { - await toolbar.exitSketch() + await toolbar.exitSketchBtn.click() + await scene.waitForExecutionDone() }) await test.step('Check there is no errors after code created in previous steps executes', async () => { await editor.expectState({ @@ -201,9 +202,7 @@ test.describe('Point-and-click tests', { tag: ['@skipWin'] }, () => { }, file) await page.setBodyDimensions({ width: 1000, height: 500 }) await homePage.goToModelingScene() - await expect( - page.getByTestId('model-state-indicator-receive-reliable') - ).toBeVisible() + await scene.waitForExecutionDone() const sketchOnAChamfer = _sketchOnAChamfer(page, editor, toolbar, scene) @@ -391,7 +390,6 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) }, file) await page.setBodyDimensions({ width: 1000, height: 500 }) await homePage.goToModelingScene() - await scene.waitForExecutionDone() const sketchOnAChamfer = _sketchOnAChamfer(page, editor, toolbar, scene) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png index 2f43ee3596738625237f7000a885b9b4015fbdba..2f95e2b4b9704b69801a61e8fb96d2e390d95421 100644 GIT binary patch delta 30312 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 KJS{-zzyE)D@y#9p delta 30316 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%0AXLP9X|$Qxa0YhLtVcz9S! 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ɨa7d=>W#5Xd_`)xzo{-4PFcof-`QWMRU;1Ks<` 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 Uo$!;A-(R?{s;yF@eCMD40!|S;UjP6A diff --git a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json index 05226f9c3f..6fa72f643e 100644 --- a/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json +++ b/e2e/playwright/snapshots/prompt-to-edit/prompt-to-edit-snapshot-tests-spec-ts--change-colour.snap.json @@ -29,5 +29,5 @@ } } ], - "kcl_version": "0.2.38" + "kcl_version": "0.2.39" } \ No newline at end of file diff --git a/e2e/playwright/testing-selections.spec.ts b/e2e/playwright/testing-selections.spec.ts index 6ef8faf11e..fe68c264e5 100644 --- a/e2e/playwright/testing-selections.spec.ts +++ b/e2e/playwright/testing-selections.spec.ts @@ -775,7 +775,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006) ) `) await expect( - page.getByTestId('model-state-indicator-receive-reliable') + page.getByTestId('model-state-indicator-execution-done') ).toBeVisible() await u.openAndClearDebugPanel() diff --git a/src/clientSideScene/CameraControls.ts b/src/clientSideScene/CameraControls.ts index 7e6b0cced7..9d16d9cc67 100644 --- a/src/clientSideScene/CameraControls.ts +++ b/src/clientSideScene/CameraControls.ts @@ -22,7 +22,7 @@ import { UnreliableSubscription, } from 'lang/std/engineConnection' import { EngineCommand } from 'lang/std/artifactGraph' -import { toSync, uuidv4, getNormalisedCoordinates } from 'lib/utils' +import { toSync, uuidv4 } from 'lib/utils' import { deg2Rad } from 'lib/utils2d' import { isReducedMotion, roundOff, throttle } from 'lib/utils' import * as TWEEN from '@tweenjs/tween.js' @@ -109,7 +109,6 @@ export class CameraControls { interactionGuards: MouseGuard = cameraMouseDragGuards.Zoo isFovAnimationInProgress = false perspectiveFovBeforeOrtho = 45 - // NOTE: Duplicated state across Provider and singleton. Mapped from settingsMachine _setting_allowOrbitInSketchMode = false get isPerspective() { @@ -457,19 +456,11 @@ export class CameraControls { if (this.syncDirection === 'engineToClient') { const newCmdId = uuidv4() - // Nonsense to do anything until the video stream is established. - if (!this.engineCommandManager.elVideo) return - - const { x, y } = getNormalisedCoordinates( - event, - this.engineCommandManager.elVideo, - this.engineCommandManager.streamDimensions - ) this.throttledEngCmd({ type: 'modeling_cmd_req', cmd: { type: 'highlight_set_entity', - selected_at_window: { x, y }, + selected_at_window: { x: event.clientX, y: event.clientY }, }, cmd_id: newCmdId, }) diff --git a/src/components/Stream.tsx b/src/components/Stream.tsx index 2057da33f2..8ec2d1fbef 100644 --- a/src/components/Stream.tsx +++ b/src/components/Stream.tsx @@ -47,8 +47,6 @@ export const Stream = () => { overallState === NetworkHealthState.Ok || overallState === NetworkHealthState.Weak - engineCommandManager.elVideo = videoRef.current - /** * Execute code and show a "building scene message" * in Stream.tsx in the meantime. @@ -274,7 +272,7 @@ export const Stream = () => { if (btnName(e.nativeEvent).left) { // eslint-disable-next-line @typescript-eslint/no-floating-promises - sendSelectEventToEngine(e) + sendSelectEventToEngine(e, videoRef.current) } } @@ -296,7 +294,7 @@ export const Stream = () => { return } - sendSelectEventToEngine(e) + sendSelectEventToEngine(e, videoRef.current) .then(({ entity_id }) => { if (!entity_id) { // No entity selected. This is benign diff --git a/src/hooks/useSetupEngineManager.ts b/src/hooks/useSetupEngineManager.ts index 80b47ed815..1b41ee5a2d 100644 --- a/src/hooks/useSetupEngineManager.ts +++ b/src/hooks/useSetupEngineManager.ts @@ -101,7 +101,10 @@ export function useSetupEngineManager( streamRef?.current?.offsetWidth ?? 0, streamRef?.current?.offsetHeight ?? 0 ) - engineCommandManager.handleResize(engineCommandManager.streamDimensions) + engineCommandManager.handleResize({ + streamWidth: width, + streamHeight: height, + }) }, 500) const onOnline = () => { diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index b294fd9c84..85f4765884 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1447,17 +1447,11 @@ export class EngineCommandManager extends EventTarget { commandId: string } settings: SettingsViaQueryString - - streamDimensions = { - // Random defaults that are overwritten pretty much immediately - width: 1337, - height: 1337, - } - - elVideo: HTMLVideoElement | null = null + width: number = 1337 + height: number = 1337 /** - * Export intent tracks the intent of the export. If it is null there is no + * Export intent traxcks the intent of the export. If it is null there is no * export in progress. Otherwise it is an enum value of the intent. * Another export cannot be started if one is already in progress. */ @@ -1560,14 +1554,15 @@ export class EngineCommandManager extends EventTarget { return } - this.streamDimensions = { - width, - height, - } + this.width = width + this.height = height // If we already have an engine connection, just need to resize the stream. if (this.engineConnection) { - this.handleResize(this.streamDimensions) + this.handleResize({ + streamWidth: width, + streamHeight: height, + }) return } @@ -1863,22 +1858,27 @@ export class EngineCommandManager extends EventTarget { return } - handleResize({ width, height }: { width: number; height: number }) { + handleResize({ + streamWidth, + streamHeight, + }: { + streamWidth: number + streamHeight: number + }) { if (!this.engineConnection?.isReady()) { return } - this.streamDimensions = { - width, - height, - } + this.width = streamWidth + this.height = streamHeight const resizeCmd: EngineCommand = { type: 'modeling_cmd_req', cmd_id: uuidv4(), cmd: { type: 'reconfigure_stream', - ...this.streamDimensions, + width: streamWidth, + height: streamHeight, fps: 60, }, } diff --git a/src/lib/selections.ts b/src/lib/selections.ts index 5b5e28330d..308abdcc8a 100644 --- a/src/lib/selections.ts +++ b/src/lib/selections.ts @@ -646,17 +646,16 @@ export function codeToIdSelections( } export async function sendSelectEventToEngine( - e: React.MouseEvent + e: MouseEvent | React.MouseEvent, + el: HTMLVideoElement ) { - // No video stream to normalise against, return immediately - if (!engineCommandManager.elVideo) - return Promise.reject('video element not ready') - - const { x, y } = getNormalisedCoordinates( - e, - engineCommandManager.elVideo, - engineCommandManager.streamDimensions - ) + const { x, y } = getNormalisedCoordinates({ + clientX: e.clientX, + clientY: e.clientY, + el, + streamWidth: engineCommandManager.width, + streamHeight: engineCommandManager.height, + }) const res = await engineCommandManager.sendSceneCommand({ type: 'modeling_cmd_req', cmd: { diff --git a/src/lib/utils.ts b/src/lib/utils.ts index f03a9d7355..f051a6f005 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -161,20 +161,25 @@ export function toSync>( } } -export function getNormalisedCoordinates( - e: PointerEvent | React.MouseEvent, - elVideo: HTMLVideoElement, - streamDimensions: { - width: number - height: number - } -) { - const { left, top, width, height } = elVideo?.getBoundingClientRect() - const browserX = e.clientX - left - const browserY = e.clientY - top +export function getNormalisedCoordinates({ + clientX, + clientY, + streamWidth, + streamHeight, + el, +}: { + clientX: number + clientY: number + streamWidth: number + streamHeight: number + el: HTMLElement +}) { + const { left, top, width, height } = el?.getBoundingClientRect() + const browserX = clientX - left + const browserY = clientY - top return { - x: Math.round((browserX / width) * streamDimensions.width), - y: Math.round((browserY / height) * streamDimensions.height), + x: Math.round((browserX / width) * streamWidth), + y: Math.round((browserY / height) * streamHeight), } } From 38f7a4089eba8fe5efb1676f0f1c41b84c588e6a Mon Sep 17 00:00:00 2001 From: Paul Tagliamonte Date: Wed, 26 Feb 2025 19:26:19 -0500 Subject: [PATCH 14/23] Add in the basics for Import ordering (#5524) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add in the basics for Import ordering This will walk AST for import notes, and build up a mapping of relationships tying in the target of the import (the "dependency") to our current program (the "dependent"). This allows us to build up a mapping of what dependency and reverse dependency relationships look like, in order to sort dependencies by topologically sorting them. Since I wanted to enable some parallelism here long-term, this returns the (kinda awkward) `Vec>` type. This is a list of list of dependency targets which can safely be run concurrently, because they have no dependency relationship to eachother. Each list of dependencies should be gated, and start the next list of dependencies after the first is complely done. This isn't ideal and will change long-term, but for now this will work to enable very basic opportunistic parallelism. * clippy v1.0 * allow this this lint doesn't apply here, order doesn't matter. Elsewhere in this program where order does matter we do the intermediate vec. * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Co-authored-by: github-actions[bot] Co-authored-by: Jess Frazelle --- src/wasm-lib/kcl/src/walk/import_graph.rs | 225 ++++++++++++++++++++++ src/wasm-lib/kcl/src/walk/mod.rs | 2 + 2 files changed, 227 insertions(+) create mode 100644 src/wasm-lib/kcl/src/walk/import_graph.rs diff --git a/src/wasm-lib/kcl/src/walk/import_graph.rs b/src/wasm-lib/kcl/src/walk/import_graph.rs new file mode 100644 index 0000000000..5026f5e920 --- /dev/null +++ b/src/wasm-lib/kcl/src/walk/import_graph.rs @@ -0,0 +1,225 @@ +use anyhow::Result; + +use crate::{ + parsing::ast::types::{ImportPath, NodeRef, Program}, + walk::{Node, Visitable}, +}; +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; + +/// Specific dependency between two modules. The 0th element of this tuple +/// is the "importing" module, the 1st is the "imported" module. The 0th +/// module *depends on* the 1st module. +type Dependency = (String, String); + +type Graph = Vec; + +/// Process a number of programs, returning the graph of dependencies. +/// +/// This will (currently) return a list of lists of IDs that can be safely +/// run concurrently. Each "stage" is blocking in this model, which will +/// change in the future. Don't use this function widely, yet. +#[allow(clippy::iter_over_hash_type)] +pub fn import_graph(progs: HashMap>) -> Result>> { + let mut graph = Graph::new(); + + for (name, program) in progs.iter() { + graph.extend( + import_dependencies(program)? + .into_iter() + .map(|dependency| (name.clone(), dependency)) + .collect::>(), + ); + } + + let all_modules: Vec<&str> = progs.keys().map(|v| v.as_str()).collect(); + topsort(&all_modules, graph) +} + +#[allow(clippy::iter_over_hash_type)] +fn topsort(all_modules: &[&str], graph: Graph) -> Result>> { + let mut dep_map = HashMap::>::new(); + + for (dependent, dependency) in graph.iter() { + let mut dependencies = dep_map.remove(dependent).unwrap_or_default(); + dependencies.push(dependency.to_owned()); + dep_map.insert(dependent.to_owned(), dependencies); + } + + // dep_map now contains reverse dependencies. For each module, it's a + // list of what things are "waiting on it". A non-empty value for a key + // means it's currently blocked. + + let mut waiting_modules = all_modules.to_owned(); + let mut order = vec![]; + + loop { + // Each pass through we need to find any modules which have nothing + // "pointing at it" -- so-called reverse dependencies. This is an entry + // that is either not in the dep_map OR an empty list. + + let mut stage_modules: Vec = vec![]; + + for module in &waiting_modules { + let module = module.to_string(); + if dep_map.get(&module).map(|v| v.len()).unwrap_or(0) == 0 { + // if it's None or empty, this is a node that we can process, + // and remove from the graph. + stage_modules.push(module.to_string()); + } + } + + for stage_module in &stage_modules { + // remove the ready-to-run module from the waiting list + waiting_modules.retain(|v| *v != stage_module.as_str()); + + // remove any dependencies for the next run + for (_, waiting_for) in dep_map.iter_mut() { + waiting_for.retain(|v| v != stage_module); + } + } + + if stage_modules.is_empty() { + anyhow::bail!("imports are acyclic"); + } + + // not strictly needed here, but perhaps helpful to avoid thinking + // there's any implied ordering as well as helping to make tests + // easier. + stage_modules.sort(); + + order.push(stage_modules); + + if waiting_modules.is_empty() { + break; + } + } + + Ok(order) +} + +pub(crate) fn import_dependencies(prog: NodeRef<'_, Program>) -> Result> { + let ret = Arc::new(Mutex::new(vec![])); + + fn walk(ret: Arc>>, node: Node<'_>) { + if let Node::ImportStatement(is) = node { + let dependency = match &is.path { + ImportPath::Kcl { filename } => filename.to_string(), + ImportPath::Foreign { path } => path.to_string(), + ImportPath::Std { path } => path.join("::"), + }; + + ret.lock().unwrap().push(dependency); + } + for child in node.children().iter() { + walk(ret.clone(), *child) + } + } + + walk(ret.clone(), prog.into()); + + let ret = ret.lock().unwrap().clone(); + Ok(ret) +} + +#[cfg(test)] +mod tests { + use super::*; + + macro_rules! kcl { + ( $kcl:expr ) => {{ + $crate::parsing::top_level_parse($kcl).unwrap() + }}; + } + + #[test] + fn order_imports() { + let mut modules = HashMap::new(); + + let a = kcl!(""); + modules.insert("a.kcl".to_owned(), &a); + + let b = kcl!( + " +import \"a.kcl\" +" + ); + modules.insert("b.kcl".to_owned(), &b); + + let order = import_graph(modules).unwrap(); + assert_eq!(vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned()]], order); + } + + #[test] + fn order_imports_none() { + let mut modules = HashMap::new(); + + let a = kcl!( + " +y = 2 +" + ); + modules.insert("a.kcl".to_owned(), &a); + + let b = kcl!( + " +x = 1 +" + ); + modules.insert("b.kcl".to_owned(), &b); + + let order = import_graph(modules).unwrap(); + assert_eq!(vec![vec!["a.kcl".to_owned(), "b.kcl".to_owned()]], order); + } + + #[test] + fn order_imports_2() { + let mut modules = HashMap::new(); + + let a = kcl!(""); + modules.insert("a.kcl".to_owned(), &a); + + let b = kcl!( + " +import \"a.kcl\" +" + ); + modules.insert("b.kcl".to_owned(), &b); + + let c = kcl!( + " +import \"a.kcl\" +" + ); + modules.insert("c.kcl".to_owned(), &c); + + let order = import_graph(modules).unwrap(); + assert_eq!( + vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned(), "c.kcl".to_owned()]], + order + ); + } + + #[test] + fn order_imports_cycle() { + let mut modules = HashMap::new(); + + let a = kcl!( + " +import \"b.kcl\" +" + ); + modules.insert("a.kcl".to_owned(), &a); + + let b = kcl!( + " +import \"a.kcl\" +" + ); + modules.insert("b.kcl".to_owned(), &b); + + import_graph(modules).unwrap_err(); + } +} diff --git a/src/wasm-lib/kcl/src/walk/mod.rs b/src/wasm-lib/kcl/src/walk/mod.rs index 8397392e48..7aa3b8da4a 100644 --- a/src/wasm-lib/kcl/src/walk/mod.rs +++ b/src/wasm-lib/kcl/src/walk/mod.rs @@ -1,7 +1,9 @@ mod ast_node; mod ast_visitor; mod ast_walk; +mod import_graph; pub use ast_node::Node; pub use ast_visitor::{Visitable, Visitor}; pub use ast_walk::walk; +pub use import_graph::import_graph; From 56e100fad75e86c41efd9bb1a66119c6a091ed48 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 26 Feb 2025 16:45:19 -0800 Subject: [PATCH 15/23] Transform std lib functions (#5067) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * transform Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * u[dates Signed-off-by: Jess Frazelle * fix tests Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * docs Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) --------- Signed-off-by: Jess Frazelle Co-authored-by: github-actions[bot] --- .gitignore | 1 + docs/kcl/index.md | 3 + docs/kcl/rotate.md | 101 + docs/kcl/scale.md | 59 + docs/kcl/std.json | 68285 +++++++++++----- docs/kcl/translate.md | 57 + src/wasm-lib/kcl/src/docs/mod.rs | 33 + src/wasm-lib/kcl/src/execution/mod.rs | 2 +- src/wasm-lib/kcl/src/std/mod.rs | 4 + src/wasm-lib/kcl/src/std/transform.rs | 713 + .../outputs/serial_test_example_rotate0.png | Bin 0 -> 71190 bytes .../outputs/serial_test_example_rotate1.png | Bin 0 -> 57869 bytes .../outputs/serial_test_example_scale0.png | Bin 0 -> 59689 bytes .../serial_test_example_translate0.png | Bin 0 -> 78636 bytes 14 files changed, 48169 insertions(+), 21089 deletions(-) create mode 100644 docs/kcl/rotate.md create mode 100644 docs/kcl/scale.md create mode 100644 docs/kcl/translate.md create mode 100644 src/wasm-lib/kcl/src/std/transform.rs create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_rotate0.png create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_rotate1.png create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_scale0.png create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_translate0.png diff --git a/.gitignore b/.gitignore index be16e252b9..b03013e998 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ venv # electron out/ +*.snap.new diff --git a/docs/kcl/index.md b/docs/kcl/index.md index cebc0796fa..719593796f 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -96,7 +96,9 @@ layout: manual * [`reduce`](kcl/reduce) * [`rem`](kcl/rem) * [`revolve`](kcl/revolve) + * [`rotate`](kcl/rotate) * [`round`](kcl/round) + * [`scale`](kcl/scale) * [`segAng`](kcl/segAng) * [`segEnd`](kcl/segEnd) * [`segEndX`](kcl/segEndX) @@ -116,6 +118,7 @@ layout: manual * [`tangentialArcToRelative`](kcl/tangentialArcToRelative) * [`toDegrees`](kcl/toDegrees) * [`toRadians`](kcl/toRadians) + * [`translate`](kcl/translate) * [`xLine`](kcl/xLine) * [`xLineTo`](kcl/xLineTo) * [`yLine`](kcl/yLine) diff --git a/docs/kcl/rotate.md b/docs/kcl/rotate.md new file mode 100644 index 0000000000..999cabf2fd --- /dev/null +++ b/docs/kcl/rotate.md @@ -0,0 +1,101 @@ +--- +title: "rotate" +excerpt: "Rotate a solid." +layout: manual +--- + +Rotate a solid. + +### Using Roll, Pitch, and Yaw + +When rotating a part in 3D space, "roll," "pitch," and "yaw" refer to the three rotational axes used to describe its orientation: roll is rotation around the longitudinal axis (front-to-back), pitch is rotation around the lateral axis (wing-to-wing), and yaw is rotation around the vertical axis (up-down); essentially, it's like tilting the part on its side (roll), tipping the nose up or down (pitch), and turning it left or right (yaw). + +So, in the context of a 3D model: + +- **Roll**: Imagine spinning a pencil on its tip - that's a roll movement. + +- **Pitch**: Think of a seesaw motion, where the object tilts up or down along its side axis. + +- **Yaw**: Like turning your head left or right, this is a rotation around the vertical axis + +### Using an Axis and Angle + +When rotating a part around an axis, you specify the axis of rotation and the angle of rotation. + +```js +rotate(solid: Solid, roll?: number, pitch?: number, yaw?: number, axis?: [number], angle?: number, global?: bool) -> Solid +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid to rotate. | Yes | +| `roll` | `number` | The roll angle in degrees. Must be used with `pitch` and `yaw`. Must be between -360 and 360. | No | +| `pitch` | `number` | The pitch angle in degrees. Must be used with `roll` and `yaw`. Must be between -360 and 360. | No | +| `yaw` | `number` | The yaw angle in degrees. Must be used with `roll` and `pitch`. Must be between -360 and 360. | No | +| `axis` | `[number]` | The axis to rotate around. Must be used with `angle`. | No | +| `angle` | `number` | The angle to rotate in degrees. Must be used with `axis`. Must be between -360 and 360. | No | +| `global` | `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 + +[`Solid`](/docs/kcl/types/Solid) - A solid is a collection of extrude surfaces. + + +### Examples + +```js +// Rotate a pipe with roll, pitch, and yaw. + + +// Create a path for the sweep. +sweepPath = startSketchOn('XZ') + |> startProfileAt([0.05, 0.05], %) + |> line(end = [0, 7]) + |> tangentialArc({ offset = 90, radius = 5 }, %) + |> line(end = [-3, 0]) + |> tangentialArc({ offset = -90, radius = 5 }, %) + |> line(end = [0, 7]) + +// Create a hole for the pipe. +pipeHole = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 1.5 }, %) + +sweepSketch = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 2 }, %) + |> hole(pipeHole, %) + |> sweep(path = sweepPath) + |> rotate(roll = 10, pitch = 10, yaw = 90) +``` + +![Rendered example of rotate 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEV3UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuur5+vAP//DverEXe7HX/od/+Iffvuaaax5833333Xrffffdevbs2Wfcd999t549e/bW++6771auuuqqq6666qqr/ueictVVV1111VVXXXXVVVc9XxsbG6/d9/2DX+ZlXua9d3d3OXnyJK/zOq/DA9133323AvzDP/zDbwP8wz/8w+/cd999t549e/bW++6771auuuqqq6666qqr/nuhBz3oQVx11VVXXXXVVVddddVVz+maa6558CMe8Yinz2YzTp06xYkTJ4gIbrrpJiSxs7PDDTfcwO7uLgCXLl1id3eXl3qpl+J+9913360A//AP//Db//AP//A7APfdd9+t//AP//DbXHXVVVddddVVV/3XQA960IO46qqrrrrqqquuuuqqq55T13Wv/ehHP/q3ZrMZXddRSqGUQimFiCAiiAi2t7eJCK6//noiguuuu46trS2uvfZadnd3AXjGM57BS73US3G/++6771aAf/iHf/htgH/4h3/4nfvuu+/Wf/iHf/htrrrqqquuuuqq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ddVVV1111X+va6655sEv9mIv9tqv8zqv814v9mIv9to8wH333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//Db/g1xzzTUPfu3Xfu33+od/+Iff+Yd/+Iff5qr/VyQ9+PTp00+vtVJKoZRCRCCJiEASkpCEJNbrNa01uq6jlEIphVIKEUFEIImIQBIRgSQkIQlJSEISkpCEJCQhCQBJSEISAJKQhCQAJCEJAElIAkASAJIAkASAJF4Q29zPNrYBsI1tbANgm+dmmxfENgC2AbCNbQBsY5vMxDa2yUxsk5nYxjaZiW0yk9Yaj3vc4x4yTdOtXHXVVVddddVV/x+hBz3oQVx11VVXXXXVVf9zXHPNNQ9+sRd7sdd+sRd7sdd6ndd5nffmudx33323nj179tb77rvv1t/6rd/6nrNnz95633333cq/0Xu913t92vb29sO//uu//n14EVxzzTUPfu3Xfu33evEXf/HXfrEXe7HX5pl+67d+67u//uu//n34H+DDP/zDv2uapv1v/uZv/kiu+k+1ubn5XZubm+9da6WUQkQQEUgiIpCEJCQhiaOjIyKCWiulFEopRAQRQUQQEUhCEhGBJCQhCUlIQhKSkIQkJCEJAElIAkASkpAEgCQkASAJAElIAkASAJIAkMS/xDYAtgGwjW1sA2CbF8Y2z49tAGxjGwDb2MY2mYltbJOZZCa2sY1tMpPMJDNprfF3f/d34qqrrrrqqquu+v8KPehBD+Kqq6666qqrrvqf65prrnnwi73Yi732i73Yi73W67zO67w3z8d99913K8A//MM//PZ9991369mzZ59x33333QrwD//wD7/NC/ATP/ET5gH+8i//8nO+4Au+4LN5pmuuuebBZ86cefCLvdiLvdaLv/iLv/aLvdiLvTYvwD/8wz/89md+5me+Dv+NHvGIR2x+8Rd/8QEP8HZv93biX3DNNdc8+MyZMw9+sRd7sdcCuOaaax58zTXXPBjgMz/zM1+Hq16gU6dOudZKKYVSChFBRCCJiEASkpCEJA4ODqi1UmullEIphYggIogIJBERSCIikIQkJCEJSUhCEpKQhCQAJCEJAElIQhIAkpAEgCQAJCEJAEkASOJ+kviX2AbANgC2sY1t/rVs80C2sQ2AbWxjG9tkJrbJTGyTmdjGNrbJTDKTzOTs2bPffeedd74PV1111VVXXXXV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c9VVV1111VVXXfWiI7jqqquuuuqqq6666v+F++6779bP+qzPeh2A13md13nvd3qnd/psXoBa64N5AElIQhKSkERE0HUdALZ5braxDYBtAGxzP9vYxja2sY1t7mcb29gGwDYAtrGNbWxjGwDb3M82LwpJSEISkrifJCQhCUlIIiKICGqt1FqptdJ1HX3f0/c9s9mM2WzGbDZjNpsxm83o+56u66i1UkohIogIJPHcbGMb29jGNraxjW1s86QnPel9uOqqq6666qqrrvrXIbjqqquuuuqqq6666v+N++6779av//qvfx+A13md13nvF3uxF3ttnktEvLckJCEJSUhCEgCSkIQkJGGbzCQzsY1tbHM/2wDYBsA2trGNbR7INraxzf1sYxsA2wDYBsA2ALa5n23+PSQhCUlIQhIRQURQSqGUQimFruvo+56+7+n7ntlsxmw2Yzab0fc9fd/T9z1d11FrpdZKKQVJSOJ+trGNbTIT29jGNraxjW0yk3Pnzn03V1111VVXXXXVVf86BFddddVVV1111VVX/b/yW7/1W9/9Iz/yI5995syZB334h3/4d/Fcuq57LUlIQhKSuJ8kJCEJSUQEALYBsI1tbGMb2wDYBsA2tnkg29jGNvezjW1sA2Ab2wDYBsA2trHN/Wzz7yEJSUhCEhFBRBARlFIopVBKoes6uq6j6zr6vmc2mzGbzZjNZsxmM2azGX3f03UdtVZqrUQEEYEk7mcb22QmtrFNZmIb29jGNrZ5xjOe8dlcddVVV1111VVX/esRXHXVVVddddVVV131/85v//Zvf8/f//3f//Y111zz4A//8A//Lh5gNpu9tiQkcT9JSEISkpCEJCSRmWQmmYltbGMbANvYxja2sQ2AbWxjG9vYxja2sc39bGMbANvYxja2sc2Lyjb/EkncTxKSkEREEBFEBKUUaq3UWum6jr7v6fue2WzGbDZjNpvR9z1d19F1HbVWaq2UUogIJHE/29gmM7FNZmIb29jGNraxjW3uu+++7+Gqq6666qqrrrrqX4/gqquuuuqqq6666qr/d+67775bv/7rv/69AV7ndV7nvV/sxV7stXmmWuuDJSEJSUhCEpKQBIAkJCGJxWJBZmIb29gGwDa2sQ2AbQBsYxvbPDfb2MY2tgGwjW1sYxsA2zw32/xbSQJAEpKQhCQigoggIiilUGul1krXdfR9T9/3zGYzZrMZfd/T9z1939P3PbVWaq2UUogIIoL72cY2mYltMpPMJDOxTWZim8wkM7n77ru/exiGW7nqqquuuuqqq6761yO46qqrrrrqqquuuur/pbNnzz7jR37kRz4b4MM//MO/CyAz30sSkgCQhCQAJAEgCUlIQhJd19FaIzPJTGxjG9sA2MY2trGNbWwDYBvb2MY297ONbWwDYBsA29jGNraxjW1s828lCQBJSEISkogIJBERlFIopVBKoes6uq6j6zr6vqfve/q+Zzab0fc9XddRa6XWSimFiEASD2SbzCQzaa2RmWQmmUlmYpvMxDa2ecYznvE5XHXVVVddddVVV/3bEFx11VVXXXXVVVdd9f/Wb//2b3/PP/zDP/z2Nddc8+AP//AP/66u65CEJCRxP0kASEISkpCEJPq+JyLITGxjG9vYxja2sQ2AbWwDYBvb2MY2trGNbQBsYxvb2MY2ALb5jyIJAEkASEISkpBERBARlFIopVBrpdZK13X0fU/f98xmM/q+p+97uq6j6zpqrZRSiAgiAklIAiAzyUxaa2QmmUlmYhvb2CYzsY1tnv70p3/2OI63ctVVV1111VVXXfVvQ3DVVVddddVVV1111f9b9913361f//Vf/z4AL/ZiL/baL/3SL/05kpCEJCQhCUlIQhKSkIQkJCGJrutorZGZ2CYzsY1tbGMb29gGwDa2sY1tbGMb29jGNraxjW0AbGOb/yiSAJAEgCQAJCGJiCAiKKVQSqHWStd1dF1H3/f0fc9sNqPve2azGV3X0XUdtVZKKZRSiAgkIQnbZCaZSWaSmbTWyEwyk8wkM8lMbGObzOT222//HK666qqrrrrqqqv+7Qiuuuqqq6666qqrrvp/7b777rv1t37rt777mmuuefDbvd3bPUgS95OEJAAkIQlJAEhCEhHBYrFgmiYyk8zENplJZmIb29jGNraxjW1sYxvb2MY2trENgG1sYxvb/FvY5oEkIYkHkoQkJCGJiCAiKKUQEZRSqLVSa6XrOvq+p+97+r6n73u6rqPrOmqtlFIopRARSALANrbJTDKT1hqtNTKT1hqtNVprZCaZiW0yk6c+9amfw1VXXXXVVVddddW/D8FVV1111VVXXXXVVf/v/eiP/ujnADzqUY/ikY98JJKQxP0k8UCSkIQkJNH3PbZprZGZZCa2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWzzbyWJ+0nigSQhCQBJSCIikEREEBGUUqi1Umul6zr6vqfrOvq+p+97+r6n6zq6rqPWSimFiEASkgCwTWaSmbTWaK3RWmOaJlprZCaZSWZim8zk6Ojo1jvuuOOzueqqq6666qqrrvr3Ibjqqquuuuqqq6666v+9++6779av//qv/2yA93zP90QSkpCEJCQhCUlIQhKSkIQkZrMZXdeRmbTWyEwyE9vYxja2sY1tbGMb2zyQbWxjG9v8R5GEJB5IEveThCQiAklEBBFBKYVSCqUUaq10XUfXdfR9T9/39H1P13V0XUcphVIKEYEkAGxjm8yktUZrjWmamKaJaZpordFao7VGZpKZZCaZyeMf//j34aqrrrrqqquuuurfj+Cqq6666qqrrrrqqquAxz/+8c84f/48p06d4hGPeAQAkpAEgCQkIQlJSEISkgA4deoUtrFNZpKZZCaZSWaSmdgmM7GNbWyTmdgmM7GNbWxjG9s8kG3+I0lCEpKQhCQigoggIiilUGul1krXddRa6bqOruvouo6u6+i6jlIKpRQiAklI4n62yUxaa0zTxDRNTNNEa43WGplJZpKZZCaZyfnz53/70qVLv81VV1111VVXXXXVvx/BVVddddVVV1111VVXAbu7u6/1C7/wCwC827u9G5K4nyQAJCEJSQBIQhKSmM1mlFKwjW1sYxvb2MY2trGNbWxjG9tkJraxjW1scz/bPJBt/r0kIQlJSEISkogIIoKIoJRCRFBKodZKrZWu6+i6jq7r6LqOWiulFEopRASSkMT9MpPWGtM0MU0T4zgyTRPTNDFNE601Wmu01shMMpPM5ClPecrncNVVV1111VVXXfUfg+Cqq6666qqrrrrqqquAvu9f+0lPehJPfvKTOXnyJA9/+MORhCQAJPFAkpCEJCQxm804ceIEmYltbGMb29gmM8lMbJOZ2MY2trGNbWxjGwDb/EeThCQkASAJSUQEEYEkIoJSChFBKYVaK7VWaq10XUfXdXRdR9d11FqptVJKISKQBIBtMpPMpLVGa41xHJmmiXEcmaaJaZqYponWGplJZpKZPOUpT/nsg4OD3+aqq6666qqrrrrqPwbBVVddddVVV1111VVXAV3XPfjixYv86Z/+KQBv9EZvhCQAJCEJSUhCEpKQhCQkAbC1tUVrjczE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V/2fkJnvLQlJSOJ+knhBJCGJF0YS/xEkASAJSUhCEhFBRCCJiEASkpCEJJ4f29jmfra539HR0a1cddVVV1111VVXXXU/KlddddVVV1111VVX/Z9QayUikIQkACQBIAkASdxPEv8SSTyQJP61JHE/SQBIQhIRgSQigohAEhGBJCQBIIkHss39bGOb+9nm7Nmzv81VV1111VVXXXXVVfejctVVV1111VVXXXXV/wld172WJCQBIIl/D0n8W0jifpIAkIQkACQhCUlIQhKSiAgiAklEBJIAsM39bANgG9vczza2ATh37tzvcNVVV1111VVXXXXV/ahcddVVV1111VVXXfV/Qt/3ry0JAEk8N0ncTxL/WpJ4QSQhiX+JJCQhCUlIIiKICCQREUQEkpAEgCQAbANgm/vZ5rmdPXv2t7nqqquuuuqqq6666n4EV1111VVXXXXVVVf9n9B13YMlIQkASUhCEg8kiX+JJF5Uknh+JAEgCQBJAEhCEpKICCQhiYhAEpKQhCReENvYBsA2D7RcLm/lqquuuuqqq6666qr7Ubnqqquuuuqqq6666n+91tprA0hCEpJ4IEm8KCQhiecmiReFJJ4fSQBIQhKSiAgkERFEBBFBRBARSEISz802tnlutrHN2bNnf5urrrrqqquuuuqqqx6IylVXXXXVVVddddVV/+vVWh8cEfxLJPH8SEIS/1Ek8dwkIQlJSEISEUFEEBFEBBGBJCKC52ab+9nGNraxzf0ODw9v5aqrrrrqqquuuuqqB6Jy1VVXXXXVVVddddX/erXW15KEJCQhCUlIQhIAknhukpDECyOJfytJSEISAJKQhCQkIQlJSEISkogIJAFgmweyjW2eH9vce++9v8NVV1111VVXXXXVVQ9E5aqrrrrqqquuuuqq//VKKUhCEi8qSfxHkIQk/iWSkIQkJBERRAQRQUQQEUQEkpDE/SRxP9sA2MY2tgGwDcD58+d/m6uuuuqqq6666qqrHojgqquuuuqqq6666qr/9fq+f21JAEjiuUnigSTxopDECyOJ+0kCQBIAkrifJCQBIImIQBKSiAgigohAEhGBJAAkYRvb2AbANg9km/stl8tbueqqq6666qqrrrrqgahcddVVV1111VVXXfW/Xq31wZKQBIAkJCGJ5yaJF+TSzSuQkGDz0oz5YfBAU58cXLsGQBInzm4SGbwgkpAEgCQkIQlJRAQRQUQQEUQEEYEkJPH82MY2trGNbQBsc+utt343V1111VVXXXXVVVc9NypXXXXVVVddddVVV/2vZvu9JSEJSUjiBZHEC7L7kBX/8Pb34WIWux2P+M3TzA877jf1yR0vscuTX+0+AI7du+AVfvEhdAPPIgkASTyQJAAkIQlJSCIikEREIImIQBKSsM39bGOb+9nmfra56qqrrrrqqquuuuoFIrjqqquuuuqqq6666n+1WuuDJCGJ50cS/5KsZr094WIAYhTzSx0P1LpkdWwEAMPsqDJbVyTx/EhCEpKQhCQkIYmIICKICCKCiCAikIQkJCGJB7KNbWwDYJsHuueee36Hq6666qqrrrrqqqueG8FVV1111VVXXXXVVf+r1VofLAkASUhCEpJ4IEm8INmZ9bHG/eo6mB1UHih7s9wZAShTsDjoEQJAEv8SSUgiIpBERCCJiEASEUFEEBG8ILYBsA2AbQBsc/78+d/mqquuuuqqq6666qrnRuWqq6666qqrrrrqqv/V+r5/bUlI4rlJAkASL0z2Zn1sAkAJs4NKHQLEs7SaHO0MAJQp2NjreSBJAEjigSQhCUlEBJKICCQREUQEEUFEIAlJAEgCwDa2sQ2AbR7INgDL5fJWrrrqqquuuuqqq656blSuuuqqq6666qqrrvpfrdb6YElIQhIvKklIQhJZzWpnAqCMwXyv8kCSGGfJenMCoIxisdfxgkhCEpKQhCQkIQlJRAQRQUQQEUQEkogIJPHcbANgG9vYxja2Abj11lu/m6uuuuqqq6666qqrnh+Cq6666qqrrrrqqqv+18rM15KEJO4nCUncTxIPJAlJPFDrzOrYBECMYnap436ScJj11kjrEoA6Bpt7MyQhiftJ4vmRhCQkERFIIiKICCKCiCAikIQknh/b2Oa52cY2V1111VVXXXXVVVc9X1Suuuqqq6666qqrrvpfq9b64IhAEpKQxP0k8dwk8fxM82TcbACUMVhcqjzQ1CVHxwfuV4bC4rDnfpK4nyQAJCEJSUhCEpKQREQQEUQEEUFEEBFIQhKSuJ9tbGMbANvYxja2Abj33nt/h6uuuuqqq6666qqrnh+Cq6666qqrrrrqqqv+16q1vrYkJPH8SOJ+knh+XMyw1chqAMooZvsVAEkATLPk0rUrAJQwO6p068ILIgkASUhCEpKICCKCiCAiiAgigohAEpJ4INsA2MY2trHNczt37txvc9VVV1111VVXXXXV80Plqquuuuqqq6666qr/tfq+f21JSEISkpCEJF5UrZpxo3E/NVGHQBKXCXZvPGL3+iMAyhRs7Pc8N0k8P5KQhCQkIQlJRAQRQUQQEUQEEYFtJHE/29zPNgC2sQ2AbZbL5a1cddVVV1111VVXXfX8EFx11VVXXXXVVVdd9b9W13UPlsS/RBIviANceDbB6sSEw2SYCzcfcc8j92idAShjsLHXAyCJB5IEgCQkIQkASUQEEUFEEBFEBBFBRBARSEISkngg29jGNgC2uZ9tbr311u/hqquuuuqqq6666qoXhMpVV1111VVXXXXVVf8r2X6wJCQhCUk8kCQAJPHCKKEuAwwIVjsT9z7qgGlm1jsj5x9yhARKcECZgsVejyQAJPFAkgCQhCQkIQlJSCIiiAgigoggIpBERCCJB7INgG1sYxsA29gG4ODg4OlcddVVV1111VVXXfWCULnqqquuuuqqq6666n8lSa8tCUncTxKS+Ncoo5gfVOb7ldXOxLjRuOulLnHXS10C4OQzNtm5b865Bx0CUMZgY7/ngSTxQJK4nyQkIYmIICKICCKCUgoRQUQgCUnY5n62sY1tbGMb29zPNvv7+8/gqquuuuqqq6666qoXhOCqq6666qqrrrrqqv+Vaq0PkgSAJCRxP0kASOK5SUISkpBEOJhfrJx+wiazvUo0gSEmcfIZm9zwD8doNblftyrMDzqemyQkIQkASUhCEpKICCQREUQEEUFEEBFEBJKQhCQAbANgm+dmm/udO3fut7nqqquuuuqqq6666gWhctVVV1111VVXXXXV/0qllAdLQhIvKkk8P/Pdjmset0W3DvavX0OIrbM91zx5h0Dc/rIXAIgmNnd76hioCEm8MJKQhCQkERFEBBFBRBARRASSiAiem21sYxvb2MY2ALaRxHK5vJWrrrrqqquuuuqqq14QKlddddVVV1111VVX/a/U9/1rS0ISkgCQxP0k8UCSeEGWp0aWJ0fOPGGLm/7iOCULChg3k7te4hL7Z9YAdKvCibs2kcT9JPFAkpCEJCQhiYggIogIIoJSCqUUIoKIICKQhG3uZxvbANjGNraxjW0AnvrUp343V1111VVXXXXVVVe9MFSuuuqqq6666qqrrvpfqdb6YEncTxIAknhu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JCEJSUhCEgCSkIQkACICSUQEkogIJBERSCIiKKVQSqGUQq2VWitd1zGbzZjNZsxmM+bzObPZjL7v6bqOUgqSAGitMU0T4ziyXq8ZhoFhGBjHkWmaaK3RWuOWW2659a/+6q9+5tZbb/1rrrrqqquuuuqqq67610APetCDuOqqq6666qqrrrrq/55rrrnmwR/+4R/+XS/2Yi/22gC7u7s84xnP4O/+7u+47bbbkIQkJAEgCUlIAiAiKKUQEZRSiAhKKUQEpRRKKZRSqLXSdR193zObzZjP52xsbLCxscHW1hZbW1tsbGywWCyYzWaUUpBEa41hGFgulxweHnJ4eMjBwQFHR0csl0vW6zXjOPKyL/uynDp1ird7u7cTV1111VVXXXXVVVf9a1GOHz/OVVddddVVV1111VX/9xweHu7+1m/91vf89m//9vccHh7uvvzLv/xrX3fddbzkS74kL/mSL8l8Pgdgb28PSQBIQhIAEYEkIgJJRASSiAgkUUohIiilUEqh1krXdXRdR9/3zGYz5vM5s9mM2WxG13XUWokIAGwzTRPjODIMA+v1mmEYGMeRcRyptfISL/EStNZu/ZIv+ZK3OXv27K1cddVVV1111VVXXfWvhR70oAdx1VVXXXXVVVddddX/fddcc82DX+zFXuy13/Ed3/GzrrnmmgfzTJcuXeL222/n7/7u77jjjjuQBEAphVIKEUEphYiglEJEUEqhlEKtlVorfd/T9z2z2YzFYsHGxgZbW1tsbW2xubnJxsYGi8WCruuICACmaWK9XnN0dMTh4SEHBwccHBwwTRO33HILx44dA+Drv/7r3+e3fuu3vpurrrrqqquuuuqqq/4t0IMe9CCuuuqqq6666qqrrvr/5ZprrnnwO77jO37W67zO67w3D7C3t8dtt93G7bffzsHBAXfffTelFCKCUgoRQSmFUgqlFGqt1Frp+56+75nP5ywWCzY3N9nc3GRra4utrS02NjaYz+d0XYckbDNNE6vViqOjIw4ODlitVmxubnL8+HEA7rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuuurfCj3oQQ/iqquuuuqqq6666qr/n6655poHnzlz5sEv9mIv9lov/uIv/tpnzpx58DXXXPNgnmlvbw9J3HXXXdx9990cHR1xeHjIcrmk1kqtla7r6LqO2WzGfD5nY2ODjY0Ntra22NraYmtri8ViwXw+p9aKJDKTYRhYrVaM40itlQf6kR/5kc/+0R/90c/hqquuuuqqq6666qp/L/SgBz2Iq6666qqrrrrqqquuAjhz5syDXvzFX/x1XuzFXuy1rrnmmge/2Iu92GvzfBwcHCCJo6MjlsslEcEwDNRasc1sNmM+n7NYLOi6jq7riAhsk5lkJs/tvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqqq/6joAc96EFcddVVV1111VVXXXXV83PNNdc8+MyZMw+65pprHvJiL/Zir3XNNdc8+MVe7MVem/8A//AP//Dbf//3f//bAL/1W7/13WfPnn0GV1111VVXXXXVVVf9R0MPetCDuOqqq6666qqrrrrqqn+NM2fOPOjs2bPPeLEXe7HXvuaaax4McObMmQcBXHPNNQ/mmf7hH/7hdwDOnDnzoLNnzz7jvvvuuxXwP/zDP/wOV1111VVXXXXVVVf9V0APetCDuOqqq6666qqrrrrqqquuuuqqq6666qqr/k+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxX/CMxq/GBWFlM3AAAAAElFTkSuQmCC) + +```js +// Rotate a pipe about an axis with an angle. + + +// Create a path for the sweep. +sweepPath = startSketchOn('XZ') + |> startProfileAt([0.05, 0.05], %) + |> line(end = [0, 7]) + |> tangentialArc({ offset = 90, radius = 5 }, %) + |> line(end = [-3, 0]) + |> tangentialArc({ offset = -90, radius = 5 }, %) + |> line(end = [0, 7]) + +// Create a hole for the pipe. +pipeHole = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 1.5 }, %) + +sweepSketch = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 2 }, %) + |> hole(pipeHole, %) + |> sweep(path = sweepPath) + |> rotate(axis = [0, 0, 1.0], angle = 90) +``` + +![Rendered example of rotate 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADh1ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV131v9BP/MRPmAd4u7d7O3HVVVddddVVV1111VVXXXXVcyO46qqrrrrqqv9lfuInfsI8l2/6pm96OlddddVVV1111VVXXXXVVVc9NypXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/qwiuuuqqq6666n+Z7/iO73hpnsuHfMiHPISrrrrqqquuuuqqq6666qqrnht60IMexFVXXXXVVVf9b/RjP/Zj5yPi7Id8yIe88X333XcrV1111VVXXXXVVVddddVVVz03gquuuuqqq676X+rcuXN7wKPOnDnzYK666qqrrrrqqquuuuqqq656fgiuuuqqq6666n+5F3uxF3strrrqqquuuuqqq6666qqrrnp+CK666qqrrrrqf6lrrrnmwQAv/uIv/tpcddVVV1111VVXXXXVVVdd9fwQXHXVVVddddX/Qi/2Yi/22jzTi73Yi732i73Yi702V1111VVXXXXVVVddddVVVz03gquuuuqqq676X+iaa655MA/wYi/2Yq/FVVddddVVV1111VVXXXXVVc+N4Kqrrrrqqqv+Fzpz5syDeIAXf/EXf22uuuqqq6666qqrrrrqqquuem4EV1111VVXXfW/0DXXXPNgHuDFXuzFXvvFXuzFXpurrrrqqquuuuqqq6666qqrHojgqquuuuqqq/4XerEXe7HX5rm82Iu92Gtx1VVXXXXVVVddddVVV1111QMRXHXVVVddddX/ES/+4i/+2lx11VVXXXXVVVddddVVV131QARXXXXVVVdd9b/QNddc82Cey4u92Iu99ou92Iu9NlddddVVV1111VVXXXXVVVfdj+Cqq6666qqr/pd5sRd7sdfmBXixF3ux1+Kqq6666qqrrrrqqquuuuqq+xFcddVVV1111f8y11xzzYN5AV78xV/8tbnqqquuuuqqq6666qqrrrrqfgRXXXXVVVdd9b/MmTNnHsQL8GIv9mKv/WIv9mKvzVVXXXXVVVddddVVV1111VUABFddddVVV131v8w111zzYF6IF3uxF3strrrqqquuuuqqq6666qqrrgIguOqqq6666qr/ZV7sxV7stXkhXvzFX/y1ueqqq6666qqrrrrqqquuugqA4Kqrrrrqqqv+j3mxF3ux136xF3ux1+aqq6666qqrrrrqqquuuuoqgquuuuqqq676X+aaa655MP+CF3uxF3strrrqqquuuuqqq6666qqrrkIPetCDuOqqq6666qr/La655poH81y+6Zu+6ekAH/IhH/IQnum+++67lauuuuqqq6666qqrrrrqqquoXHXVVVddddX/Ivfdd9+tPMA111zzYID77rvv1vvuu+9Wrrrqqquuuuqqq6666qqrrnogKlddddVVV131v9h99913K8A111zzYK666qqrrrrqqquuuuqqq656bgRXXXXVVVdd9b/cfffddyvANddc82Cuuuqqq6666qqrrrrqqquueiCCq6666qqrrvpf7uzZs7cCnDlz5sFcddVVV1111VVXXXXVVVdd9UBUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6sIrrrqqquuuup/ufvuu+9WgGuuuebBXHXVVVddddVVV1111VVXXfVAVK666qqrrrrqf7n77rvvVoAzZ848iKuuuuqqq6666qqrrrrqqqseiMpVV1111VVX/S939uzZZwBcc801D+aqq6666qqrrrrqqquuuuqqB6Jy1VVXXXXVVf/L3XfffbcCXHPNNQ/mqquuuuqqq6666qqrrrrqqgeictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqqv+lzt79uytAGfOnHkwV1111VVXXXXVVVddddVVVz0Qlauuuuqqq676P+Kaa655MFddddVVV1111VVXXXXVVVc9EMFVV1111VVX/S9333333cozXXPNNQ/mqquuuuqqq6666qqrrrrqqvsRXHXVVVddddX/Af/wD//w2wBnzpx5MFddddVVV1111VVXXXXVVVfdj8pVV1111VVXXXXVVVddddVVV1111VVXXfV/FcFVV1111VVX/R9w33333QpwzTXXPJirrrrqqquuuuqqq6666qqr7kflqquuuuqqq/4PuO+++24FOHPmzIO46qqrrnoRXHPNNQ8GOHPmzIN5pmuuuebBPB9nzpx5EM/H2bNnn8ELcN99993KA5w9e/ZWgPvuu+9Wrrrqqquuuuqqq/7rULnqqquuuuqqq6666qr/xa655poHA5w5c+bB11xzzYPPnDnzIIBrrrnmwddcc82DAc6cOfPga6655sH8K+zv7wOwt7fHi2JnZ4ft7W1eVPfdd9+tPNPZs2dvBbjvvvtuBbjvvvtuPXv27DMA7rvvvlvPnj1763333XcrV1111VVXXXXVVf96VK666qqrrrrq/4CzZ88+A+DFX/zFX/tHf/RHP4errrrq/4xrrrnmwQAv9mIv9tpnzpx5EMCLv/iLv/aZM2cefM011zyY53LXXXexv7/P3t4eR0dHAPz93/89+/v7ANhmf38fgP39fV6Y7e1t/i329/d5btvb29xve3sb4ME7Ozs804O3t7e5/vrrAXjkIx/JjTfeyHO77777bgU4e/bsrffdd9+t9913361nz559xn333Xfr2bNnb73vvvtu5aqrrrrqqquuuuo5Ubnqqquuuuqq/wPuu+++W7nqqqv+17vmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzAHfddRf7+/vs7e3x93//9+zv77O/v8/+/j4vyPb2Ntvb22xvb7O9vc39dnZ22N7eBmB7exuA7e1t/qPt7+9zv729PQD29/cB2N/fZ39/H4A777wTgLvuuovntr29DcD29vaDd3Z22N7efvD111/PIx/5SG688Ubud999990K8A//8A+/DfAP//APv3Pffffd+g//8A+/zVVXXXXVVVdd9f8Vlauuuuqqq676P+Ds2bO3Apw5c+bBXHXVVf9rXHPNNQ9+7dd+7fcCeKd3eqfP5pnuuusu7rrrLv78z/+cu+66i7vuuosXZnt7mxtuuIHt7W12dnbY3t7mhhtu4IH29/cB2N/fZ39/n0c96lH8S9brNQCSkARA13UAtNaQxPMTEdxve3ub+21vb3O/Jz7xidx4440AbG9vs729zf329/cB2N/fZ39/n729Pfb399nf3+eJT3wi97PN/ba3t9ne3n7wzs4ON9xww3tvb2/zOq/zOu8NcN99990K8A//8A+//Q//8A+/c9999936D//wD7/NVVddddVVV131/wGVq6666qqrrrrqqquu+i90zTXXPPi1X/u13+t1Xud13vuaa655MMCf//mf8+d//uc88YlPZH9/nxdme3ubG264ge3tbW644QZuuOEGAPb399nf3+euu+7iUY96FPc7ODjg4OCAg4MDDg8PkYQk/viP/5jlcokkVqsVpRTW6zWlFGqtdF1H13X0fU/f93RdR9/3nDhxglOnTjGOI8vlkohAErbJTFprTNPEOI6M44htpmliGAYigtYaXdfRWuPw8JD5fM7FixdZrVYAnDlzhu3tbQC2t7d54hOfyI033sj29jYA29vb7O/vs7+/z/7+PnfeeSf7+/vcddddHBwccPfdd/PEJz6R+21vb7O9vf3g7e1tbrzxxvd+ndd5nfcGuO+++249e/bsrX//93//2//wD//wO//wD//w21x11VVXXXXVVf8XoQc96EFcddVVV1111f8FP/ETP2GAt3u7txNXXXXV/zjXXHPNg1/7tV/7vd7pnd7ps/f393niE5/Ik570JPb397mfbZ6f7e1tHvWoR3HDDTdwww03sL+/z/7+PjfccAMA+/v77O/vc9dddyGJe+65h4ODAw4PD5GEJCQREUgiIpBERBARlFIopVBKoZRCrZWu6+i6jr7v6bqOvu/p+54TJ05w6tQpVqsVR0dHRASSAMhMWmtM08Q4jgzDwDiODMPAMAyM48g4jkzTxDRNTNNEa43WGplJa43MZGNjg8xkY2ODzc1Nrr32WmyztbXFddddx/2e+MQnsr29zQ033MD+/j77+/vceeed3HXXXdx11128INvb22xvb3PDDTdw4403csMNN3Dffffd+g//8A+//Q//8A+/81u/9VvfzVVXXXXVVVdd9X8FetCDHsRVV1111VVX/V/wTd/0TU+/5pprHvwhH/IhD7nvvvtu5aqrrvof4ZprrnnwO77jO37WNddc8+DlcvnaT3rSk9jf3+dFsb29zcu93MvxqEc9iv39fba3twHY29vj8Y9/PHfddRd33XUXEYEkJCGJiEASkpCEJCQREUgiIpBERBARlFIopVBKoZRCrZWu6+i6jr7v6bqOvu/p+54TJ05w6tQpVqsVR0dHRASSsE1m0lpjmibGcWQcR4ZhYBgGxnFkHEfGcWQcR6ZporVGa43WGq01MpPMJDOxTWZiG9tkJraxzebmJpubm2xtbXH99dezvb3NDTfcAMBdd93FDTfcwP7+PnfddRd33XUXT3ziE7mfbZ7b9vY2N9xwAzfeeCOPetSjuO+++279h3/4h9/+rd/6re/5h3/4h9/mqquuuuqqq67634zKVVddddVVV/0fcfbs2VuvueaaB585c+bB9913361cddVV/+2uueaaB3/4h3/4d504ceK1/+Iv/oK77rqLF9WjHvUoXvu1X5u77roLgL/5m79hf3+fxz/+8UQEEUFEIIn/SqUUAFpr3M82D2QbANvczza2sc39bGObf4ltHmh/f5+9vT1s88QnPpHMZGtri+uvv54bb7yRzOSmm27iUY96FI961KN41KMexZ//+Z9z1113IYnndnBwwJOe9CSe9KQn8ed//ufccMMND37Uox713q/zOq/z3j/yIz/y2b/927/9Pffdd9+tXHXVVVddddVV/xtRueqqq6666qqrrrrqqv8k7/iO7/hZt9xyy2v/0A/9EACSeFFcf/31vPZrvza//du/jSS++7u/m1orEUEpBUn8T2Ab20jCNraxDYBtAGxjmxfGNs/NNv8a+/v7XLp0icc//vFkJltbWzzmMY/hpptu4pZbbuF1Xud1APjZn/1Z9vf3eUH29/d54hOfyBOf+ES2t7d5+Zd/+c9+ndd5nff+0R/90c/5rd/6re/mqquuuuqqq67634bgqquuuuqqq/6PuO+++24FuOaaax7MVVdd9T/Ci73Yi702/wY33HADAOfPn+d3fud3+J/ONrYBsI1tbGOb+9nGNgC2sc2LwjYPZJsHss3zs7e3xx/+4R/ywz/8w3zjN34jFy5c4IlPfCKv8zqvw4033ogkJCEJSUhCEpKQBMD+/j6/9Vu/xW233fbgD//wD/+uF3uxF3ttrrrqqquuuuqq/20Irrrqqquuuur/iPvuu+9WgDNnzjyIq6666n+Ea6655sHb29vccMMNSEISkpCEJCQhCUlIQhKSePKTnwzA673e6/HfzTYPVGsFoLUGgG3uZ5vnZhvb3M82L4htbPPvYZvntru7y8/8zM+wt7fH9vY229vb/EskIQlJ/MVf/AW//du/zYd/+Id/1zXXXPNgrrrqqquuuuqq/00Irrrqqquuuur/iLNnzz4D4JprrnkwV1111f8In/mZn/k6d999N6/1Wq/Fy77sy/Ki2t/f54d/+IcppfCRH/mRvMZrvAb/E9jmgWwDYBvb2MY2trGNbWxzP9s8kG1sA2Cbf4ltXhDb3M82tgGwDcDu7i4XL15ke3ubra0t/rWuv/56pml68JkzZx7MVVddddVVV131vwmVq6666qqrrvo/4r777rsV4JprrnkwV1111f8IZ8+evfVv//ZvOX36NC/3ci/HIx/5SH7nd36Hu+++m3/J/v4+v/ALv8AjHvEIXuM1XoOXfMmX5Pbbb+fxj388d911F/9T2EYSD2QbANsA2MY2ALaxjW3uZ5sHsg2AbV4Y27wojh07xou/+IvzWq/1WjzpSU/iL//yL5HEi2p7e5tHPepRPOlJT+Kqq6666qqrrvpfh8pVV1111VVXXXXVVVf9J7nnnnv45V/+Zd78zd8cgLvvvps3f/M3Z39/nyc/+ck86UlP4uDggBfk4OCAv/qrv+LJT34y119/PY985CN5h3d4B/b29rjzzju58847OTg44O677+a/Sq0VgNYatpGEbWxjG9sA2AbANv8RbPOvsbOzw2Mf+1i2t7d5iZd4Cfb39/m5n/s57r77bv41Xu7lXo6Xe7mX46677uLuu+/+7X/4h3/4ba666qqrrrrqqv9NqFx11VVXXXXV/xFnz569FeDMmTMP5qqrrvof5Td+4zf4u7/7O172ZV+Wa6+9lmPHjnH99dfzsi/7suzv7/PkJz+Zu+++m7vvvpvn5+DggCc/+ck8+clPZmtri+uvv57rr7+eF3uxF+P6669nf3+f/f199vf3ufvuuzk8POSee+7hP5JtHsg2z49tbANgGwDb2MY2/1Fscz/bbG9vs729zQ033MCNN97ITTfdxP7+Pk960pP4+Z//ee6++24AJPHC2GZ7e5tHPvKRPPKRj2R7e5u/+Iu/IDP5xm/8xs/hqquuuuqqq67634bKVVddddVVV/0fcd99990KcM011zyYq6666n8MSQDs7u7yu7/7u/z93/89D37wg7nlllu4/vrr2d7e5vrrr+dlX/Zl2d/f5+677+buu+/m4OCAu+++m+d2cHDAk5/8ZJ785CcDsLW1xfb2NltbW1x//fW89mu/Nvc7ODjg4OCAg4MDDg4OODo64vDwkKOjI46OjviPYBsA29jmfrYBsM0D2cY2ALaxzf1scz/b3M82AFtbW9hmc3OT66+/HtvccMMN3HDDDdzv7rvv5q677uKv//qvufvuu3lRbW9v84hHPIIbbriB66+/nv39ff7yL/+Sl3zJl+TChQv84i/+Ipl5K1ddddVVV1111f82VK666qqrrrrq/5D77rvv1muuuebB11xzzYPvu+++W7nqqqv+W0niuV26dIm///u/53GPexx//Md/zC233MLNN99MZnLjjTdyzz338MhHPpLrr78egIODA+6++27uvvtuDg4O2N/f5+DggPsdHh5yeHgIwFOe8hR+7/d+j62tLQCuv/56AK6//nquvfZarr/+eh7o8PAQgKOjI5bLJZJYrVYMw0AphWmaKKXQdR2ZSdd11FoBaK1hG0k8kG1sYxvbANjGNra533w+JzNprTGfz8lMNjY2yEw2NzexzebmJpubm2xtbbG1tcUD7e/vc/fdd3PPPffwV3/1V9x99908N0nY5vnZ3t7mEY94BAAv93IvB8D+/j5PetKTuP7662mtcfHiRb7iK76CYRi46qqrrrrqqqv+16Jy1VVXXXXVVf+HnD179tZrrrnmwWfOnHnwfffddytXXXXV/2h7e3s87nGP4wlPeAIRwc7ODseOHePRj340trnhhhvY2toC4BGPeATXX389AAcHBwDcfffd7O/vc3BwwMHBAfv7+xwcHHBwcADAk5/8ZACe/OQn80BbW1tsb2+ztbUFwNbWFtvb2wBsbW1x/fXX8y85c+YM92ut8UC2sQ1A13X8a919993s7+9z6dIlLl26xP7+PgcHBwDcfffd/Gtsb2+zvb3N9ddfz9bWFtvb21x//fUA7O/v8+QnPxmAS5cucfvtt7NcLvnCL/xCWmtM04Rt7peZt3LVVVddddVVV/1vQ+Wqq6666qqrrrrqqqv+k0jiX2N/f5/Dw0PuvvtuJHHs2DEAbrjhBq6//nruuecerrvuOgC2trZ4xCMewd1338329jZbW1sAHBwcALC/v8/BwQEAd999NwAHBwcA7O/vc/fdd/OvsbW1xQNtb2/zb7W/v8/9Dg4OeFHZ5oG2trYA2N7e5vrrrwdga2uL7e1trr/+eu63v78PwPb2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ILZ5INv8S2zzwtjmudnm+bENgG2uuuqqq6666qr/Mwiuuuqqq6666v+J++6771aAF3uxF3ttrrrqqv/TbPPvZZsHso1tbHM/2wDYBsA297MNgG3+I9jmBbGNbR7INrZ5INs8N9s8kG0AMvNWrrrqqquuuuqq/wsIrrrqqquuuur/ibNnz97KVVdd9V9GEv9RbPMfwTYPZJvnZpvnZpsHso1tAGwDYJv72QbANgC2AbDN/WxjG9vY5n62AbDNv5ZtbGObf4ltbPP82Oaqq6666qqrrvo/g+Cqq6666qqr/p+47777bgW45pprHsxVV131P4pt/rPY5kVhm+dmG9s8kG1eENvY5vmxzf1s89xs84LY5r/SNE23ctVVV1111VVX/V9B5aqrrrrqqqv+n7jvvvtuBThz5syDuOqqq/7XsY0k/qPZ5rnZ5rnZBkASALYBsI1tnpttAGzzQLb572CbF8Q2trENQERw1VVXXXXVVVf9n0Fw1VVXXXXVVVddddVV/0vY5r+DbR7INs/NNraxjW0AbANgGwDbvDC2AbDN/WzzH8k2L4xt1uv1rVx11VVXXXXVVf9XEFx11VVXXXXV/xNnz559BsA111zzYK666qr/tWxjm38t2/xLbHM/29jGNg9km/vZxja2eW62AbANgG0eyDa2sc2/hm3+s03TdCtXXXXVVVddddX/FVSuuuqqq6666v+J++6771aAa6655sFcddVV/+lsP5j/RLYBkMTzYxtJvChs8y+xDYAkbPPcbGMb29jmBbGNbR7INs+PbR7INgC2+dewzQtim/vZBsA2V1111VVXXXXV/xkEV1111VVXXfX/xNmzZ28FOHPmzIO56qqr/seyzb+Gbf4j2eZFZRsA2zw/tgGwDYBt/iW2eVHY5t/KNs/NNlddddVVV1111f9JBFddddVVV1111VVXXXXVc7DNA9nmfrYBsA2AbQBscz/b2AbANi8K2zyQbR7INs/NNrZ5YWzz/NjGNgC2uZ9tpmm6lauuuuqqq6666v8Kgquuuuqqq676f+K+++67FeCaa655MFddddV/CUlI4j+bbf69bPNAtrGNbQBsYxsA2zyQbQBsY5v72eZ+trmfbWxjmxeFbV4Y27wobPPC2AZgmqZncNVVV1111VVX/V9BcNVVV1111VX/T/zET/yEeaaf+ImfsCSuuuqq/zyS+J/K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9Z/KNs+PbWxzP9vY5rnZ5l9im+dmm3+JbZ6bbe5nmweyzQPZ5rnZ5gWxzQtim+fHNvezzQPZ5l9im6uuuuqqq6666v8kgquuuuqqq6666gX6rd/6re/+h3/4h9++5pprHvzhH/7h38VVV13138Y2tnlhbPOisM2/xDa2sc1zsw2AbWxzP9vczzbPj20eyDYPZJt/K9vY5t9imqZbueqqq6666qqr/i8iuOqqq6666qqrXqiv//qvf5/77rvv1hd7sRd77Rd7sRd7ba666qoXSdd1D+ZFYJv/SLb5t7ANgG2eH9vYxjbPj20AbHM/29zPNv8S27wobPPvZRvb2MY20zQ9g6uuuuqqq6666v8igquuuuqqq6666oW67777bv2t3/qt777mmmse/OEf/uHfxVVXXfU/nm0eyDbPj21eFLZ5bra5n20eyDb3s839bANgGwDb/E9hm6uuuuqqq6666v8kgquuuuqqq6666l/027/9299z33333XrNNdc8+B3f8R0/i6uuuur/FNs8kG1eGNsA2MY297PN/WxzP9v8S2zz/NjGNs/NNi8K2wDY5qqrrrrqqquu+n+J4Kqrrrrqqquu+hfdd999t37913/9+wC8zuu8zntfc801D+aqq656oWzzv41t7mcb29gGwDYAtnl+bANgmxfGNi8q29zPNv+ZWmu3ctVVV1111VVX/V9EcNVVV1111VVXvUj+4R/+4bd/5Ed+5LOvueaaB3/4h3/4d3HVVVf9j2ab58c2ALb517LN/WxzP9s8P7a5n20eyDb3s81zs82/xDYvjG0eyDYAtrmfbWzTWruVq6666qqrrrrq/yKCq6666qqrrrrqRfbbv/3b33Pffffd+mIv9mKv/Y7v+I6fxVVXXfW/hm2eH9sA2AbANs/NNs+PbWxzP9sA2OZ+tnlhbPPcbPOfxTb3s81VV1111VVXXfV/HsFVV1111VVXXfUiu++++279+q//+vcBeJ3XeZ33frEXe7HX5qqrrvo/xzb3sw2Abe5nm+dmmweyzXOzDYBtXhDbvCC2eW62+bewzf1s01q7lauuuuqqq6666v8igquuuuqqq6666l/lH/7hH377R37kRz77mmuuefCHf/iHfxdXXXXVfxjb/Eeyzb+VbWzzQLaxDYBt7meb+9nmudnm+bHNA9nmP4pt7mebq6666qqrrrrq/y2C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EraRxH8USdxPEgCSkEREEBFEBBFBRFBKoZRCKYVaK13X0XUdXdfRdR21Vmqt1FqJCCSRmQBkJhGBJCQBIInnZhsA2wDYBsA2586d+26uuuqqq6666qqrnj8qV1111VVXXXXVVVdd9R+k73vm8zmtNWxjG9s8N9tIwjYAknhBbAMgCdsASMI2krCNJP6jSAJAEpKQhCQkIQlJSCIiKKUQEUQEpRRqrdRaqbVSa6XWSq2VWiu1VkopRAQAkrBNRCAJSUhCEg9kG9sA2AbANgC2ueeee76bq6666qqrrrrqqheM4Kqrrrrqqquuuuqqq/4DSAJgNpuRmdjGNraxjW1sYxsA29gGwDa2sY1tbGMb29zPNvezDYBtXhBJPD+SeH4kIQkASTyQJCQhCUlEBJKICEoplFIopVBKodZKrZVaK7VWaq3UWimlUGullEIphYggIpBERCAJSTyQbQBsYxsA29jGNra57bbbPoerrrrqqquuuuqqF4zgqquuuuqqq6666qqr/gMdP34c29jmfraxjW1sY5v72cY2z49tbGMbANvYBsA2/1aSkIQkJCGJ5yYJSUhCEpKQREQgiYggIogISimUUqi1Umul1kqtlVortVZKKZRSiAhKKUQEEUFEIAkASdzPNraxjW3uZ5v72ebuu+/+7mEYbuWqq6666qqrrrrqBaNy1VVXXXXVVVddddVV/06SAJBE3/fMZjOmaSIziQhs80C2sQ2AJABs89wkAWAbAEkA2EYS/xJJ/GtJ4oEkIQlJSEISEUFEEBGUUiilUGullEKtlVortVZqrZRSKKVQSqGUgiRsYxtJSEISALaxjW1sYxvb2MY2trGNbWxz1113fQ9XXXXVVVddddVVLxzBVVddddVVV1111VVX/StJ4oXZ2trCNraxjW1sYxvbANgGwDa2sc1zs41t7mcb2/xrSOJFJQkASUhCEveTREQgiYggIogIIoJSCqUUaq2UUiilUGullEIphVIKEYEkJCEJSQBIAsA2ALaxjW1sYxvb2MY2trHN3Xff/d0HBwe/zVVXXXXVVVddddULR3DVVVddddVVV1111VX/RpJ4fra2tmitYZvMxDa2sY1tbGMb29jmfraxjW1scz/b2AbANv8ZJAEgiftJQhKSkIQkIgJJRAQRQSmFiKCUQimFWiu1VkoplFIopRARRAQRgSQkIQkA29jGNpmJbWxjG9vYxja2sY1tbHPXXXd9D1ddddVVV1111VX/MoKrrrrqqquuuuqqq676D9b3PZubm2QmtrGNbWxjG9sA2AbANraxjW1sYxvb2AbANraRxL+WJF4YSTyQJCQBIAlJSEISkogIIoKIICIopVBKoZRCKYVSCqUUSilEBBGBJCQhiedmG9vYxjaZSWaSmWQmmUlmYhvbXLhw4bf39vZ+m6uuuuqqq6666qp/GcFVV1111VVXXXXVVVf9J7jmmmvITDIT29jGNraxjW1sYxvb2Oa52cY2tvn3ksRzk4Qk7icJSQBIQhKSkIQkJCGJiEASpRRKKZRSiAhKKUQEEUFEEBFIQhKSkMT9bGMb29gmM8lMMpPMJDOxjW1sYxvb2ObJT37y53DVVVddddVVV131oiG46qqrrrrqqquuuuqqfyXbANgGwDbPre97NjY2yEwyE9vYxja2sQ2AbWwDYBvb2MY2/9EkIQlJSOKBJHE/SQBIQhKSkIQkIgJJRASSiAgiglIKEUEphVIKEYEkIgJJSOK52SYzyUwyk8yktUZmkplkJplJZmKbzOSOO+74nv39/d/mqquuuuqqq6666kVDcNVVV1111VVXXXXVVf9KknhRXHPNNWQmmUlmYhvb2MY2trENgG1sYxvb2MY2tvnPJgkASdxPEveThCQiAklEBBFBRBARRAQRQSmFiCAiiAgiAklI4oFsk5nYJjNprdFao7VGa43WGq01MpPMJDPJTGzzD//wD+/NVVddddVVV1111YuO4Kqrrrrqqquuuuqqq/6Vuq57MC+Cvu85fvw4mUlmkpnYxja2sY1tbGMb29jGNrZ5bpL4jyaJB5KEJAAkIQlJSEISEYEkIoKIICKICCKCiCAikIQkJPFAtrGNbWyTmbTWaK3RWqO1RmuNzCQzaa2RmWQmmckf//Efvw5XXXXVVVddddVV/zoEV1111VVXXXXVVVdd9Z/o+PHjRASZiW1sYxvb2MY2trGNbf6tJPGvJYn7SeJ+kpCEJCQhCUlIQhIRgSQigoggIogIIgJJSEIS97ONbWyTmWQmrTVaa7TWaK3RWmOaJlprTNNEa43MpLVGZnL27Nnfvnjx4m9z1VVXXXXVVVdd9a9DcNVVV1111VVXXXXVVf9KrTWeH9s8t9lsxokTJ2itkZlkJraxjW1sYxvbANjGNveTxAsjCUkASEISkviXSOJ+kgCQhCQAJAEgCUlIQhKSkEREEBFIIiKICCQhCUk8N9vYJjNprdFaY5ompmlimiamaWKaJqZporVGa43WGpkJwF/91V+9D1ddddVVV1111VX/egRXXXXVVVddddVVV131n+zUqVP0fU9rjcwkM8lMMhPb2MY2mQmAJJ6bJJ6bJF4QSUhCEpK4nyQk8dwkcT9JAEhCEgCSkIQkJCEJSUQEkpCEJCRxP9vYJjPJTFprZCatNVprTNPENE1M08Q4jkzTxDRNtNZordFao7XG7/7u777Oer2+lauuuuqqq6666qp/PYKrrrrqqquuuuqqq676L3DjjTciidYamYltbGMb29hGEveTxAsjiX8NSUjiuUnifpKQBIAkJAEgCUlIQhKSkIQkJCGJ52Yb22QmtslMMpPWGq01pmlimibGcWQYBsZxZBxHpmlimiamaaK1xj333PPb58+f/22uuuqqq6666qqr/m0Irrrqqquuuuqqq6666j+Abe5nm+c2m824/vrryUxaa2QmmYltbCOJ/2qSAJDEA0nifpKQhCQkIQlJSEISkpCEJO5nG9vYJjNprdFao7XGNE1M08Q4jozjyDiOjOPIOI5M08Q4jozjyDRN3HXXXb/9B3/wB6/DVVddddVVV1111b8dwVVXXXXVVVddddVVV/0X2d7e5uTJk7TWyExs828hiX8vSTyQJCQhCQBJSEISkpCEJCQhCUlI4rnZxja2yUwyk9YarTWmaWKaJoZhYBxHhmFgGAbGcWQcR4ZhYJompmni0qVLt/7u7/7u63DVVVddddVVV13170Plqquuuuqqq6666qqr/gudOnWK9XrNMAxIAkASz48kACRxP0n8e0nifpJ4bpIAkMQDSUISkpAEgCTuZxvbZCaZSWsNAEnYprXGOI6M48h6vWYYBoZhYL1eMwwD4zgyjiPjOPI7v/M778NVV1111VVXXXXVvx/BVVddddVVV1111VVX/ReqtXLjjTeysbHBc5OEJP6zSEIS95MEgCQkIQlJAEgCQBKSkASAJCQBIIn72cY2mUlm0lqjtcY0TYzjyDiOjOPIOI4Mw8AwDKzXa9brNcMwMAwDwzAwDAM/+7M/+zp7e3u/zVVXXXXVVVddddW/H8FVV1111VVXXXXVVVf9F6u1ct1119F1HZIAkMT9JHE/SdxPEs+PJCQhCUlIQhKSkIQkJPFAknhBJCEJSUhCEpKQxHOzjW1sk5lkJq01pmlimiamaWIcR8ZxZBgG1us16/Wa1WrFarVivV6zXq9Zr9es12t+8Rd/8XX29vZ+m6uuuuqqq6666qr/GFSuuuqqq6666qqrrrrqX0kS/161Vq6//nruu+8+bPPcJPEvkYQk/rUkcT9JPJAkXlS2AbBNZpKZtNZorSEJ20QEtslMxnFkvV6zXq9Zr9es12tWqxWr1Qrb/NzP/dzr3Hfffb/NVVddddVVV1111X8cKlddddVVV1111VVXXfWvZJv/CLVWrr32Ws6dO4dtJCGJ+0nifpJ4IEn8W0jifpIAkIQkJAEgCUlIQhKSAJCEJB7INrbJTDKT1hrTNAGQmUgiM2mtMY4jwzCwWq1YLpcsl0tWqxWtNX70R3/0de67777f5qqrrrrqqquuuuo/FpWrrrrqqquuuuqqq676b1Rr5ZprrmF3d5dxHAGQxANJ4n6SkMS/liQkcT9JAEjigSTx/EjiudkmM8lMMpPWGtM0IQnbSAIgM5mmiXEcWa/XLJdLlsslq9WK++6779af+ZmfeZ9Lly79NlddddVVV1111VX/8ahcddVVV1111VVXXXXVfwLbSOIFsY0kAEopnDhxguVyydHREQCSAJDE/STxopCEJCQhCUm8MJKQhCQAJAEgiRfENraxTWbSWmOaJiQB0FpDErbJTKZpYr1es16vWa1WHB0dce+99976vd/7vQ/hqquuuuqqq6666j8Plauuuuqqq6666qqrrvpXyMwH8wC2+Y8QEWxtbQGwWq0AkMT9JPHcJCEJSUhCEpJ4YSQhCQBJvCCSAJCEJO5nG9vYJjPJTFprtNaYpgmAzCQiAMhMWmuM48gwDKxWK5bLJX/+53/+3b/1W7/1Plx11VVXXXXVVVf956Jy1VVXXXXVVVddddVV/4Nsb2+ztbXFpUuXyEwkIYkHkoQk/rUkcT9JAEjigSTxL7GNbWzTWqO1xjRNANimtYYkbJOZTNPEOI6sVivuu+++W3/kR37kffb29n6bq6666qqrrrrqqv98VK666qqrrrrqqquuuuq/mG0k8YJEBCdPnmS1WnF0dASAJCQhiX8NSUhCEveTBIAkACQhCUkASEISkngg29jGNplJZpKZtNaQBEBmIgkA27TWGIaBcRx50pOe9Ns/+ZM/+TpcddVVV1111VVX/dehctVVV1111VVXXXXVVf+BbCOJf6+IYGtri83NTfb39xnHkQeShCQkIQlJSEISkpCEJJ6bJB5IEg8kiRfGNraxTWuNiEAStslMIgIA27TWmKaJs2fP3vpjP/Zj77O3t/fbXHXVVVddddVVV/3XonLVVVddddVVV1111VX/SWwjiQeyjSQeyDaSALCNJO5XSuH48eMMw8DR0RGZiST+NSQhCUncTxL3k4QkJPGC2MY2tslMMpPMZJomAGzTWkMStslMLly4cOtf//Vff/ef//mffw5XXXXVVVddddVV/z2oXHXVVVddddVVV1111f9AtrmfJBaLBYvFgtVqxWq1IjORhCQkIQlJSEISkpCEJB5IEpIAkMTzI4kHsg2AbWxjm9YakgCwTWuN+128ePHWv//7v//uP//zP/8crrrqqquuuuqqq/57Ubnqqquuuuqqq6666qr/RLaRBIBtJPFvFRFsbW2xvb3NMAwsl0vGcUQSknhBJCEJSdxPEgCSkMT9JPH82MY2tslMJDFNE5lJRACwt7d365/+6Z9+zpOe9KTv5qqrrrrqqquuuup/BipXXXXVVVddddVVV131n8w2AJL417DN8yOJxWLB5uYmmcl6vWYYBtbrNZKQhCQkIYn7SUISkgCQxP0kIYnnxza2sU1mcr/MJDM5PDzkd37nd97nvvvu+26uuuqqq6666qqr/mehctVVV1111VVXXXXVVf9KkviPYhtJvCC2kcQLUmtlNpsREWQmq9WKYRhYLpdIQhKSkASAJCQhCUlIQhLPTRIAtgGwTWYCkJmsViv29/eRRGuN1Wp1K1ddddVVV1111VX/81C56qqrrrrqqquuuuqq/yFsI4l/q67rWCwW1FrJTDITSSyXS6ZpYn9/H0lIQhKSkIQkJCEJSUjifqUUIoJpmgCotdJaIzOptdJaA2C9Xt/KVVddddVVV1111f88VK666qqrrrrqqquuuur/AElI4n5939N1HX3f0/c9fd/T9z3TNNF1Hev1mojg8PAQgMxkPp/TWmMcRzY2NhiGgWEYGMeRaZqYpolpmnggSVx11VVXXXXVVVf9D0blqquuuuqqq6666qqr/pvYRhL/HpJ4fiQhCQBJSEISm5ubdF3HsWPHiAgkYZvWGtM0MQwDwzAwDAPPjyQkcdVVV1111VVXXfW/BJWrrrrqqquuuuqqq676P0wS95OEJCQhCUlIAkASAJKQxP0k8aJYr9e3ctVVV1111VVXXfU/D8FVV1111VVXXXXVVVf9K9h+MP+DSUISAJIAkIQkJAEgCUlIQhL3k8T9JCEJAEk8P5IAkMRVV1111VVXXXXV/1AEV1111VVXXXXVVVdd9R/MNv9atvmPJAkASQBIAkASkgCQBIAkJCEJSUjiX8M2V1111VVXXXXVVf9DUbnqqquuuuqqq6666qr/ILaRxIvCNpL495DEi0ISAJKQBIAkJHE/SQBIAkASDyQJSTw/y+XyVq666qqrrrrqqqv+Z6Jy1VVXXXXVVVddddVV/8tJAkASAJIAkIQkACQhCUlIQhKSuJ8kJAEgCQBJSOL5kcRVV1111VVXXXXV/wJUrrrqqquuuuqqq6666v8ASQBIAkAS95OEJAAkIQlJAEjifpKQBIAk7ieJF2a5XN7KVVddddVVV1111f9MBFddddVVV1111VVXXfVfzDYPZJv/DJKQxP0kIQlJSEISkgCQxP0k8YJIQhJXXXXVVVddddVV/0tQueqqq6666qqrrrrqqn8n2/xXk8SLShKSkASAJCQhCUlIQhKSkMT9JCGJF0YSEcFVV1111VVXXXXV/1AEV1111VVXXXXVVVdd9Z/ANv9dJCEJAElIQhKSkIQkJCEJSUhCEpIAkIQkHkgSL8jh4eGtXHXVVVddddVVV/3PRHDVVVddddVVV1111VX/AWzzorDNfxZJPJAknpskJCEJSQBI4n6SeG6SAJDEA0niqquuuuqqq6666n84KlddddVVV1111VVXXfXfyDaSALDNv0QSknhBJPFAkpCEJCQhCUlIQhL3k4QkJCEJSUjiqquuuuqqq6666n85KlddddVVV1111VVXXfW/mCSemyQkIYn7SUISkgCQhCTuJwlJPDdJ/EuWy+WtXHXVVVddddVVV/3PRHDVVVddddVVV1111VX/SWzzQLb595DECyKJ50cSkgCQhCQkASAJSQBIAkASknhBJAEgiauuuuqqq6666qr/BahcddVVV1111VVXXXXVfwHbSOI/gySemyQkASAJSUgCQBKSkASAJAAkcT9JSOJ+krifJB5otVo9g6uuuuqqq6666qr/mahcddVVV1111VVXXXXVv4LtB/OvYBsASfx7SOJfIglJPJAkACQBIAlJSEISAJKQhCQk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i9XP/Bqrn+Gqq6666qqrrrrqPx/BVVddddVVV1111VVX/Svcd999t/7Ij/zIZ586dYr3eq/3AsA2/xq2+c8mCUkASAJAEveThCQAJCEJAEn8S172ZV+Wf/iHf/jtf/iHf/htrrrqqquuuuqqq/5nI7jqqquuuuqqq6666qp/pd/6rd/67n/4h3/47Vd5lVfhPd/zPXlBbGObfwtJ/Esk8fxI4n6SAJCEJCQhCUlIQhL3kwSAJF6QV3mVV2FjY4Mf+ZEf+Ryuuuqqq6666qqr/ucjuOqqq6666qqrrrrqqn+ls2fPPuPrv/7r3+e+++679ZVf+ZV593d/d56bbf4rSOJ+kpAEgCQkIQlJSAJAEpJ4IElI4oEkIQkASQC84iu+IqdOneK3fuu3vvsf/uEffpurrrrqqquuuuqq//kIrrrqqquuuuqqq6666t/gvvvuu/WzPuuzXue+++679ZVf+ZX57M/+bE6ePMl/Fkm8MJJ4QSQhCUlIQhKSkIQkJHE/STw/L/uyL8vJkye57777bv36r//69+Gqq6666qqrrrrqfweCq6666qqrrrrqqquu+je67777bv2sz/qs17nvvvtuPXnyJB/+4R/Owx/+cF5Utvm3ksT9JPFAkpCEJCRxP0m8IJKQBIAk7jebzXiJl3gJTpw4wX333Xfr13/9178PV1111VVXXXXVVf97UI4fP85VV1111VVXXXXVVVf9Wx0eHu7+2Z/92c+84iu+4lufPn36+MMf/nAWiwVPfepTkYQkJCEJSQBIQhIAkpAEgCQigoggIogIJBERRASSiAgigoggIogISimUUiil0HUdtVa6rqPve/q+ZzabMZvN6LqOruuotRIRSALANtM0MY4j4zgyDAPjONJ1HY961KOYz+fcd999t37913/9+/zDP/zDb3PVVVddddVVV131vwfl+PHjXHXVVVddddVVV1111b/H4eHh7p/+6Z/+9OHh4e4rvMIrvPbDH/5wXuEVXoHFYsHTnvY0JCEJSQBIQhIAkgCQhCQigoggIogIJBERRAQRgSRKKUQEEUFEUEqh1kqtlVorXdfR9z193zObzZjNZsxmM/q+p+s6SimUUrhfZtJaY5omhmFgmibm8znXXXcdAP/wD//w2x//8R//MmfPnr2Vq6666qqrrrrqqv9dKMePH+eqq6666qqrrrrqqqv+vY6Oji79wz/8w+/89m//9vc85CEPeekHPehBD37Ywx7GK7zCK7Barbj77ruRBIAkJAEgCQBJSCIiiAgigohAEhFBRBARRAQRQURQSqGUQkRQSqGUQtd11Frpuo7ZbMZsNqPve/q+p+97aq3UWokIJGEb20zTxDiOtNbY2NhgPp8D8PVf//Xv813f9V0fw1VXXXXVVVddddX/TpTjx49z1VVXXXXVVVddddVV/1EODw93/+Ef/uF3br311r958IMf/NKnT58+/mIv9mK8/Mu/PIvFgosXL7JarZAEgCQAJCGJiCAiiAgigohAEhFBRBARRAQRQUQQEZRSKKVQSqHWStd19H1P3/f0fc9sNmM2m9H3PV3XUWslIrjfOI4cHR2xXq+JCADuu+++Wz/+4z/+Zf7hH/7ht7nqqquuuuqqq67634ty/Phxrrrqqquuuuqqq6666j/S4eHh7q233vrXf/qnf/rTt956699sbm4ev+WWWx780Ic+lBd7sRfjsY99LAB33303kgCQhCQigoggIogIIgJJRAQRQUQQEUQEEUFEUEqhlEKtlVorXdfRdR2z2YzZbMZsNmM2m9F1HV3XUUohMxnHkUuXLrG7u8s0TQDcd999t37Xd33Xx3z913/9+xweHu5y1VVXXXXVVVdd9b8betCDHsRVV1111VVXXXXVVVf9Z3uxF3ux136d13md93qd13md9+YBLl68yNOf/nT+6q/+imc84xnUWimlUEqhlEIphYiglEIphVIKpRRKKdRaqbXSdR1939P3PfP5nPl8zubmJpubm2xvb7O1tcXW1haLxQLbTNPEer3mgf7hH/7ht3/rt37re37rt37ru7nqqquuuuqqq676vwM96EEP4qqrrrrqqquuuuqqq/6rnDlz5kHXXHPNQ17ndV7nvV7ndV7nvXkuu7u73HbbbUjijjvuYH9/n8PDQw4ODiilUEqhlEKtlVIKXddRa6Xve/q+5/jx48znc3Z2djhx4gR937NYLIgI7nfffffdes011zz4vvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqq/5vQgx70IK666qqrrrrqqquuuuq/wzXXXPPgM2fOPPjFXuzFXuvFX/zFX/vFXuzFXpt/wf7+PgCSAJCEJDY2NviX3Hfffbf+1m/91ncD/OiP/ujncNVVV1111VVXXfV/H3rQgx7EVVddddVVV1111VVX/U9xzTXXPPjFXuzFXhvwi73Yi732Nddc8+AzZ848+JprrnkwL4L77rvvVoCzZ8/e+vd///e/DfAP//APv/MP//APv81VV1111VVXXXXV/z/oQQ96EFddddVVV1111VVXXfW/xTXXXPNgHsC2Jem+++67lauuuuqqq6666qqrnht60IMexFVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Slauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VfwjMLej6g3RtvwAAAAASUVORK5CYII=) + + diff --git a/docs/kcl/scale.md b/docs/kcl/scale.md new file mode 100644 index 0000000000..017a5212ec --- /dev/null +++ b/docs/kcl/scale.md @@ -0,0 +1,59 @@ +--- +title: "scale" +excerpt: "Scale a solid." +layout: manual +--- + +Scale a solid. + +By default the transform is applied in local sketch axis, therefore the origin will not move. + +If you want to apply the transform in global space, set `global` to `true`. The origin of the model will move. If the model is not centered on origin and you scale globally it will look like the model moves and gets bigger at the same time. Say you have a square `(1,1) - (1,2) - (2,2) - (2,1)` and you scale by 2 globally it will become `(2,2) - (2,4)`...etc so the origin has moved from `(1.5, 1.5)` to `(2,2)`. + +```js +scale(solid: Solid, scale: [number], global?: bool) -> Solid +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid to scale. | Yes | +| `scale` | `[number]` | The scale factor for the x, y, and z axes. | Yes | +| `global` | `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 + +[`Solid`](/docs/kcl/types/Solid) - A solid is a collection of extrude surfaces. + + +### Examples + +```js +// Scale a pipe. + + +// Create a path for the sweep. +sweepPath = startSketchOn('XZ') + |> startProfileAt([0.05, 0.05], %) + |> line(end = [0, 7]) + |> tangentialArc({ offset = 90, radius = 5 }, %) + |> line(end = [-3, 0]) + |> tangentialArc({ offset = -90, radius = 5 }, %) + |> line(end = [0, 7]) + +// Create a hole for the pipe. +pipeHole = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 1.5 }, %) + +sweepSketch = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 2 }, %) + |> hole(pipeHole, %) + |> sweep(path = sweepPath) + |> scale(scale = [1.0, 1.0, 2.5]) +``` + +![Rendered example of scale 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADo8ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV/0nu+aaax585syZBwNcc801Dz5z5syDeKZrrrnmwTzTNddc82Cey5kzZx589uzZW8+cOfNg/hXOnj17Kw9w33333coz3XfffbeePXv2GQD33XffrQBnz5699b777ruVq6666qqrrrrqqquu+r8FPehBD+Kqq6666qqrrrrqP8qLvdiLvfbrvM7rvNc111zz4DNnzjz4mmuueTD/gvvuu4/73Xfffdzv7Nmz/FucOXOGB7rmmmu45ppreGHuu+++W3mmr//6r3+ff/iHf/htrrrqqquuuuqqq6666n8/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V1111VX/SWzzb2Eb2wDYxja2sQ2AbQBsY5vnRxL3k8QLIonnxzZXXXXVVVddddVVV131fwDBVVddddVVV1111X+CiLgVIDOxzQPZxjYAtvnXsA2Abf4zSQLgmmuueTBXXXXVVVddddVVV131vxeVq6666qqrrrrqqv8kmcn9bGObF8Q2tnkg29jGNraxjW1s80C2eUEk8aKQxFVXXXXVVVddddVVV/0fROWqq6666qqrrrrqP0nXddjmgWzzwtgGwDb3sw2Abe5nG9s8P5IAkMS/lSSuuuqqq6666qqrrrrq/wCCq6666qqrrrrqqv8kR0dHt9rGNs+PbZ4f2wDYxjYAtgGwjW3uZxsA2wBIAkASDySJB5LEc5MEgCQAzp49y1VXXXXVVVddddVVV/0vR+Wqq6666qqrrrrqP0mtFdsA2OYFsc0LYxvb2MY2trGNbV4UkgCQhCSemyTuJwkASUQEV1111VVXXXXVVVdd9b8cwVVXXXXVVVddddV/ktVqdSuAbQBsA2Ab27wobHM/2zw/tnl+JCGJf48zZ848mKuuuuqqq6666qqrrvrfi+Cqq6666qqrrrrqP5FtAGzzL7HN/WxjGwDb2AbANraxjW1sc9VVV1111VVXXXXVVVe9QFSuuuqqq6666qqr/pNEBLaxzf1s80C2AbANgG1scz/bANjGNraxjW1eEElI4gWRBIAkrrrqqquuuuqqq6666v84KlddddVVV1111VX/ScZxvNU2/162AbDNA9nmP4MkJHHhwgWuuuqqq6666qqrrrrqfzkqV1111VVXXXXVVf9JbGMb29jGNg9kmxfENrYBsI1tbGMb29gGwDYviCQkIQlJ/GtFBFddddVVV1111VVXXfW/HMFVV1111VVXXXXVf5LMvNU2tnkg29jmfrZ5QWwDYBsA29jmudnmgSTxH+Gaa655MFddddVVV1111VVXXfW/F8FVV1111VVXXXXVfxLb2OaBbPOC2AbANgC2AbANgG3uZxvb2ObfQxIAkgCQBIAkrrrqqquuuuqqq6666v8AKlddddVVV1111VX/STIT29jGNrb5l9jmgWwDYBvb2MY2L4wknh9JvDCSeCBJXHXVVVddddVVV1111f9yVK666qqrrrrqqqv+k9h+hm1eGNsA2OaBbHM/29gGwDa2sY1tAGzz/EhCEg8kiX+JJAAuXLjAVVddddVVV1111VVX/S9HcNVVV1111VVXXfWfxDa2sY1t7mebF4VtbHM/29gGwDa2sc2/RBLPTRL/kojgqquuuuqqq6666qqr/pejctVVV1111VVXXfWfJCJuzUweyDb3s83zY5sHso1tbANgm+dmmweSxANJ4gWRxHOTBMCZM2cexFVXXXXVVVddddVVV/3vReWqq6666qqrrrrqP0lmYhvbANjmfra5n22em20AbPNAtrGNbWxjG9tcddVVV1111VVXXXXVVc8Xlauuuuqqq6666qr/RJmJbWzzL7GNbe5nGwDb2MY2tgGwzXOzzQNJ4vmRxItCElddddVVV1111VVXXfW/HJWrrrrqqquuuuqq/yQRcSv/Atu8KGxjG9vYBsA2trHNCyKJfw1JAEhid3eXq6666qqrrrrqqquu+l+OylVXXXXVVVddddV/otYatrGNbWxjm+dmm/vZxjYAtrENgG0AbGObB7LNCyIJAEm8KCRx1VVXXXXVVVddddVV/0dQueqqq6666qqrrvpPlJn8W9nmfrYBsA2AbWxjm38rSbwwkrjmmmsezFVXXXXVVVddddVVV/3vReWqq6666qqrrrrqP0lE3CqJzMQ2D2Qb2wDY5n62eSDb2MY2trGNbR7INs9NEg8kiX+JJO4niauuuuqqq6666qqrrvo/gOCqq6666qqrrrrqP1Fmcj/b2OYFsc0LYxsA29jGNrYBsM1zk8Rzk8TzI4nnJomrrrrqqquuuuqqq676X47gqquuuuqqq6666j9R13XY5oFs88LYxja2sY1tbANgG9vYxjYAtgGwDYAk7ieJF0YSL8ju7i5XXXXVVVddddVVV131vxzBVVddddVVV1111X+io6OjW21jm+fHNgC2+ZfYxjYPZJv/aJIAkMRVV1111VVXXXXVVVf9L0flqquuuuqqq6666j9RrRXbANjmfrZ5UdnGNraxjW1sY5v72eYFkcS/liQArrnmmgdz1VVXXXXVVVddddVV/3sRXHXVVVddddVVV/0nWq1WtwLYBsA297PNc7PN/Wxjm+dmG9sA2MY2/1EkcT9JXHXVVVddddVVV1111f9yVK666qqrrrrqqqv+k9kGwDYAtnkg2wDYBsA2trmfbWxjG9vYBsA2D2SbF0YS95PEv+TSpUtcddVVV1111VVXXXXV/3JUrrrqqquuuuqqq/4TRQS2sc2/hW0AbGMb2wDYxja2sc3zIwlJAEjifpJ4IElcddVVV1111VVXXXXV/1FUrrrqqquuuuqqq/4TjeN4q21eENu8ILYBsM39bGMb2wDY5oFsc9VVV1111VVXXXXVVVc9C8FVV1111VVXXXXVf6LMBMA2trENgG0eyDYPZJsHso1tAGwDYBsA2zyQbf69JCGJM2fOPJirrrrqqquuuuqqq67634vKVVddddVVV1111X8i27dmJra5n20AbPPcbPNAtrENgG1sYxvb2MY2ALaxzf0kcT9J/GtIAkASV1111VVXXXXVVVdd9b8cwVVXXXXVVVddddV/ItvY5oWxzQPZBsA297MNgG0AbHM/27yoJPGCSOKqq6666qqrrrrqqqv+j6Fy1VVXXXXVVVdd9Z8oM7GNbWxjmxfENs/NNraxjW0AbGMb29gGwDb/0S5dusRVV1111VVXXXXVVVf9L0dw1VVXXXXVVVdd9Z/I9jNs869lm+dmG9vYBsA2ALYBsI1tXlSSuJ8kHkgSkrjqqquuuuqqq6666qr/5ahcddVVV1111VVX/SeyjW1sYxsA29gGwDYAtnlutgGwjW0AbGMb2wDYBsA2z48k/jUk8UDXXHPNg7nqqquuuuqqq6666qr/vQiuuuqqq6666qqr/hNFxK2Zyf1scz/bPDfb2OZ+trmfbWwDYBvb2MY2/xJJSOJfQxJXXXXVVVddddVVV131vxyVq6666qqrrrrqqv9EmYltbGObfwvb2MY2ALaxjW0eyDYPJImrrrrqqquuuuqqq676f47KVVddddVVV1111X+yzMQ2L4htAGxzP9s8P7axDYBtbGObfytJPDdJAOzv73PVVVddddVVV1111VX/yxFcddVVV1111VVX/SeKiFt5ANvYxjb/EtvYBsA2trGNbWwDYBvb3M82z00S/1qSsM1VV1111VVXXXXVVVf9L0dw1VVXXXXVVVdd9Z+stYZtbPPcbPPcbPNAtrmfbQBsY5v72cY2/5EkAXDNNdc8mKuuuuqqq6666qqrrvrfieCqq6666qqrrrrqP1lmYpvnZpv72QbANs+PbWwDYBvb2MY2tnkg27wwkpDEv0QSV1111VVXXXXVVVdd9b8clauuuuqqq6666qr/RBFxK89kG9u8KGxjG9vYBsA2trHN/WwDYBsA21x11VVXXXXVVVddddVVz0Jw1VVXXXXVVVdd9Z/MNra5n21scz/bANjmBbENgG1sYxvbANgGwDb/FpIAkMRzO3v2LFddddVVV1111VVXXfW/GJWrrrrqqquuuuqq/2Rd12Eb2/xb2AbANvezjW1sYxvbPJBtnh9JvCgkARARXHXVVVddddVVV1111f9iBFddddVVV1111VX/yY6Ojm61DYBt7mcb2zw32wDYxjYAtrGNbWxjG9vY5n62eW6SAJDEi0IS95MEwJkzZx7MVVddddVVV1111VVX/e9E5aqrrrrqqquuuuo/Wa0V29gGwDbPzTYAtgGwzf1scz/b2OaBbGMbANv8e0niqquuuuqqq6666qqr/o8guOqqq6666qqrrvpPtlqtbuW52OZFYRsA29gGwDa2sY1tAGxjGwDbPD+S+Nc6d+4cV1111VVXXXXVVVdd9b8YwVVXXXXVVVddddV/AdvYxjbPzTYAtvmX2AbANraxjW3+M0hCElddddVVV1111VVXXfW/GJWrrrrqqquuuuqq/2SSyEyem21eGNsA2MY2trGNbWxjG9vYxja2sc1zk8S/RBIPJAmAUgpXXXXVVVddddVVV131vxjBVVddddVVV1111X+yaZpuBbCNbWxzP9s8N9vYBsA297MNgG1s81/lmmuueTBXXXXVVVddddVVV131vxOVq6666qqrrrrqqv9kmYltHsg2D2QbANs8N9vYBsA2tgGwjW1sYxvb2MY2LwpJXHXVVVddddVVV1111f9xVK666qqrrrrqqqv+k9m+1Ta2+dewzQPZxjYAtrGNbWzzn0ESkrjqqquuuuqqq6666qr/xahcddVVV1111VVX/SezjW0AbGOb58c2z802ALa5n21sY5v72cY2/9EuXLjAVVddddVVV1111VVX/S9G5aqrrrrqqquuuuo/WWZiG9s8kG0AbPNAtrHN/WwDYBvb2MY2ALaxjW0AbANgm38rSdwvIrjqqquuuuqqq6666qr/xahcddVVV1111VVX/Sez/YzMxDa2AbANgG1eFLYBsI1tAGxjG9sA2AbANv+Rzpw58yCuuuqqq6666qqrrrrqfycqV1111VVXXXXVVf/JbPNAtnlutgGwzf1sYxvbANjmfraxjW0AbANgm3+JJP4lkpDEVVddddVVV1111VVX/S9H5aqrrrrqqquuuuo/WUTcmpnY5t/KNraxjW1sYxsA2wDY5gWRxPMjiQeSxAPt7u5y1VVXXXXVVVddddVV/4tRueqqq6666qqrrvpPlpnYBsA2ALaxDYBtAGxzP9s8P7axjW1sYxvb2OZ+tnlBJPGCSOK5SeKqq6666qqrrrrqqqv+F6Ny1VVXXXXVVVdd9V8gM7ENgG3uZ5vnZpv72cY2trHNc7MNgG0AbHM/27wgkviXSOKqq6666qqrrrrqqqv+l6Ny1VVXXXXVVVdd9Z8sIm61jW1s86KyzXOzjW1sYxvb2Oa52ea5SeJfSxLXXHPNg7nqqquuuuqqq6666qr/nahcddVVV1111VVX/RfITF4Y2wDY5vmxjW1sYxvb2AbANrYBsM1VV1111VVXXXXVVVdd9SwEV1111VVXXXXVVf8FMhPb2MY2trHNC2Kb+9nmgWxjG9vYxja2uZ9t/jUk8dwkASCJq6666qqrrrrqqquu+l+M4Kqrrrrqqquuuuo/WUTcCmCb58c2ALYBsA2AbWwDYBvb2OaBbHM/29jmP4okdnd3ueqqq6666qqrrrrqqv/FqFx11VVXXXXVVVf9F7CNbWzzQLb5l9jmfraxjW1sYxvb2OZ+trHNv5UkHuiaa655MFddddVVV1111VVXXfW/E8FVV1111VVXXXXVf4FSCvezjW3+tWwDYBvb2AbANrYBsM1/JElcddVVV1111VVXXXXV/2IEV1111VVXXXXVVf8F1uv1rbaxzf1scz/bANjmgWwDYBsA2wDYxja2uZ9trrrqqquuuuqqq6666qrnQHDVVVddddVVV131X6CUgm0AbPMvsY1tAGwDYBsA29zPNraxzf1s8x9lb2+Pq6666qqrrrrqqquu+l+M4Kqrrrrqqquuuuq/wGq1utU2z802tgGwDYBtnpttAGxjG9vYxja2sY1tbANgG9u8qCTx3CRx1VVXXXXVVVddddVV/8tRueqqq6666qqrrvovZBsA27wobHM/29gGwDa2AbDNVVddddVVV1111VVXXfV8Ubnqqquuuuqqq676LxARZCa2sQ2AbV4UtrHN/WxjG9vYBsA2ALaxzb+XJAAkcebMmQdz1VVXXXXVVVddddVV/ztRueqqq6666qqrrvovMI7jrbwQtgGwDYBtbPNAtrGNbe5nG9vYBsA2D2Sbq6666qqrrrrqqquu+n+MylVXXXXVVVddddV/gczENrYBsA2AbWzzgtjm+bGNbWxjmweyjW3+LSTxQHt7e1x11VVXXXXVVVddddX/YlSuuuqqq6666qqr/gvYvjUzAbANgG0eyDYAtnkg29jGNraxjW1sA2Ab2wDY5j+KJK666qqrrrrqqquuuup/OYKrrrrqqquuuuqq/wK2AbDNv5dtbGMb2wDY5rnZ5qqrrrrqqquuuuqqq/6fo3LVVVddddVVV131XyAzsQ2AbWzz/NgGwDa2uZ9tbGOb+9nGNrYBsI1tbPPvIYn7SeKaa655MFddddVVV1111VVXXfW/E5Wrrrrqqquuuuqq/wK2n5GZ2OaBbANgm+fHNra5n21sYxsA29jGNg9km6uuuuqqq6666qqrrroKgquuuuqqq6666qr/AraxzQPZBsA2D2Sb58c2ALaxjW3uZxsA29jm30ISz00SV1111VVXXXXVVVdd9b8Ylauuuuqqq6666qr/ApJutY1tbGOb52abF8Q2ALa5n21sYxsA2/xHkYQk9vb2uOqqq6666qqrrrrqqv/FqFx11VVXXXXVVVf9F7CNbWzzorKNbWwDYBsA29jGNraxjW0AbGMb29jmhZHEVVddddVVV1111VVX/R9HcNVVV1111VVXXfVfJDMBsA2AbWwDYBsA2wDY5oFsA2Ab29gGwDa2sc1/pmuuuebBXHXVVVddddVVV1111f8+VK666qqrrrrqqqv+C0TErbaxDYBt7mebF4VtHsg2D2Qb2zyQbf49JHHVVVddddVVV1111VX/i1G56qqrrrrqqquu+i+SmdjGNi+MbR7INvezjW1sYxvb2MY297ONbf6jnD17lquuuuqqq6666qqrrvpfiuCqq6666qqrrrrqv0hmYpsXxDYPZBvbANjGNvezDYBtbGMbANvczzb/XpKICK666qqrrrrqqquuuup/KYKrrrrqqquuuuqq/wIRcaskAGxjG9vY5vmxzfNjG9vYxja2sY1tbGMb2/xHkIRtAM6cOfNgrrrqqquuuuqqq6666n8fKlddddVVV1111VX/RTIT2zw329gGwDbPzTYPZBsA27wgtnlBJPGiksRVV1111VVXXXXVVVf9L0blqquuuuqqq6666r9IKQXb2OaFsc1zs41tbANgG9vYxja2sY1tbPNAtrnqqquuuuqqq6666qr/pwiuuuqqq6666qqr/ousVqtbbQNgG9u8MLaxzXOzjW0AbGMb29jmfraxzX+Ec+fOcdVVV1111VVXXXXVVf9LUbnqqquuuuqqq676L1Jr5bnZ5n62uZ9t7mcb29jGNvezjW0eyDa2uZ9t/i0kASCJiOCqq6666qqrrrrqqqv+lyK46qqrrrrqqquu+i+yWq1utY1tbHM/29gGwDb/EtvYxjYAtrGNbf4zRARXXXXVVVddddVVV131vxTBVVddddVVV1111X8h29jmRWWb+9nGNgC2AbCNbWxjG9vYxjb/VpJ4btdcc82Dueqqq6666qqrrrrqqv99qFx11VVXXXXVVVf9F8lMbHM/29jmudkGwDYAtrHN/WwDYBvb2OZ+trmfbf49JHHVVVddddVVV1111VX/y1G56qqrrrrqqquu+i+Smbfaxja2eW62+ZfYxja2sY1tAGxjGwDb/FtJ4oEkIYmrrrrqqquuuuqqq676X4rKVVddddVVV1111X8R29jmudnmudnmudnmgWwDYBvb2OZ+tgGwzb/XxYsXueqqq6666qqrrrrqqv+lqFx11VVXXXXVVVf9F7F9q21sYxvb3M82ALZ5INsA2AbANraxDYBtbPNAtvmPdubMmQdx1VVXXXXVVVddddVV//tQueqqq6666qqrrvovYhvbPJBtnpttAGwDYBsA29zPNraxjW1sY5v72cY297PNv5Ukrrrqqquuuuqqq6666n8pKlddddVVV1111VX/RTIT29jm38o2tgGwzf1scz/bPJBt/q0kcdVVV1111VVXXXXVVf+LUbnqqquuuuqqq676L2L7GbaxjW1sA2AbANvczzYPZJsHsg2AbWxjG9v8Z9jd3eWqq6666qqrrrrqqqv+l6Jy1VVXXXXVVVdd9V/ENrZ5INsA2AbANg9kG9sA2MY2trGNbWxjGwDbANjGNraxzb+VJK666qqrrrrqqquuuup/OSpXXXXVVVddddVV/0Uk3Wob29jmX2KbF8Y297PNfxZJXHXVVVddddVVV1111f9SVK666qqrrrrqqqv+i9gmM7mfbZ4f2zw329jGNraxDYBtbGMb2wDYxjb/HpIAkATANddc82Cuuuqqq6666qqrrrrqfx+Cq6666qqrrrrqqv9CtrGNbe5nGwDb3M8297PNA9kGwDa2sQ2AbR7INv8RJHHVVVddddVVV1111VX/S1G56qqrrrrqqquu+i8SEbdmJrYBsI1tAGzz/NjmgWwDYBvb2MY2tgGwjW1eGNtcddVVV1111VVXXXXV/xMEV1111VVXXXXVVf+FbPPC2OZ+trmfbWwDYJvnZhvb2AbANgC2sc2/x6VLl7jqqquuuuqqq6666qr/pQiuuuqqq6666qqr/gtlJraxzQtim3+JbWxjG9sA2AbANv/Rrrnmmgdz1VVXXXXVVVddddVV//tQueqqq6666qqrrvovEhG3SsI2ALaxjW0AbPPcbGOb+9nGNraxjW1sYxsA2wDYxjb/XpKQxFVXXXXVVVddddVVV/0vRXDVVVddddVVV131XygzAbDNA9nmgWzzQLaxzQtiG9sA2Ob5sc1VV1111VVXXXXVVVf9P0Plqquuuuqqq6666r9QKQXbvCC2uZ9tnpttbGMb29jGNgC2uZ9tAGwDYJt/LUkAXLp0iauuuuqqq6666qqrrvpfiuCqq6666qqrrrrqv9BqtbrVNraxjW1s88LYBsA2z802trHN/WwDYJurrrrqqquuuuqqq676f47KVVddddVVV1111X+hWiu2eX5sA2Cb+9kGwDYAtrGNbWxzP9vY5j+DJM6cOfNgrrrqqquuuuqqq6666n8fgquuuuqqq6666qr/QqvV6lbb2MY297PNA9nmX2Ib29jmfraxjW3uZ5t/K0lcddVVV1111VVXXXXV/2IEV1111VVXXXXVVf+FbPNAtnlR2QbANrYBsI1tbGObB7KNbf61JHHVVVddddVVV1111VX/R1C56qqrrrrqqquu+i8UEdjGNvezzf1scz/bANjGNgC2AbCNbe5nG9sA2MY2/1H29va46qqrrrrqqquuuuqq/6WoXHXVVVddddVVV/0XGsfxVtsA2Ob5sc39bPPC2MY2V1111VVXXXXVVVddddXzReWqq6666qqrrrrqv5BtbGObB7KNbe5nm+dmG9vYxja2sY1tbGMbANvYxjZXXXXVVVddddVVV131/xzBVVddddVVV1111X8h27faxja2sY1t/iW2eW62uZ9tbPPcbPNvIQkASUjimmuueTBXXXXVVVddddVVV131vw+Vq6666qqrrrrqqv9CtslMXhDb3M82ALZ5INvYBsA2trmfbWwDYBsA29jmqquuuuqqq6666qqr/h+ictVVV1111VVXXfVfqLUGgG0AbANgm+fHNvezjW3uZxsA29jGNvezzb+XJAD29/e56qqrrrrqqquuuuqq/6UIrrrqqquuuuqqq/5rPSMzAbDNA9kGwDYvjG1sA2AbANvYBsA2/5Fsc9VVV1111VVXXXXVVf9LUbnqqquuuuqqq676L2QbANvczzbPzTb3s41tbGOb+9nGNra5n20AbGMb2/x7SeKqq6666qqrrrrqqqv+lyK46qqrrrrqqquu+i8k6dbMxDa2sc0D2eZ+tnl+bGMb2wDYxja2AbDN82Mb2/xbXXPNNQ/mqquuuuqqq6666qqr/nehctVVV1111VVXXfVfyDa2eW62sc1zs80LY5sHsg2Abe5nm6uuuuqqq6666qqrrvp/iuCqq6666qqrrrrqv1hmYhvbANjmgWzz3GxjG9vYxja2sY1tbGMbANsA2ObfSxKSOHv2LFddddVVV1111VVXXfW/EJWrrrrqqquuuuqq/0IRcSsPYJvnxzb3s82/xDa2sc0D2QbANs/NNi+qiOCqq6666qqrrrrqqqv+FyK46qqrrrrqqquu+i+WmdjGNs/NNvezzXOzDYBtbGMb29zPNraxzX+0M2fOPJirrrrqqquuuuqqq67634Xgqquuuuqqq6666r9YZmKb+9nGNrZ5brYBsI1tAGzzQLaxjW0eyDZXXXXVVVddddVVV131/xyVq6666qqrrrrqqv9CEXErgG0AbPPcbPMvsY1tbANgGwDbANgGwDa2+feQxFVXXXXVVVddddVVV/0vRXDVVVddddVVV131XywzAbDNC2Kb+9nmfraxzQPZBsA2/1nOnz/PVVddddVVV1111VVX/S9EcNVVV1111VVXXfVfrLV2q20eyDYAtrmfbV4Q29jGNraxjW1sYxvb2OY/SkRw1VVXXXXVVVddddVV/wtRueqqq6666qqrrvovlpnYxja2sQ2AbZ6bbQBsYxsA29zPNi8q2/xrSQJAElddddVVV1111VVXXfW/EMFVV1111VVXXXXVf7FaK7Z5QWzzQLa5n20AbGMbANvYxja2sY1tbGMb29jmX0sSAJIAuOaaax7MVVddddVVV1111VVX/e9CcNVVV1111VVXXfVfbL1e3wpgG9v8e9gGwDYAtvmX2Oaqq6666qqrrrrqqqv+nyC46qqrrrrqqquu+i9mG9vczza2eSDb2OZ+trENgG0AbANgGwDbANjmP9qFCxe46qqrrrrqqquuuuqq/4UIrrrqqquuuuqqq/6L2cY2tnkg29jmgWzzQLYBsA2AbQBsYxvbANjGNrZ5INv8W0QEV1111VVXXXXVVVdd9b8Qlauuuuqqq6666qr/Ypl5q20AbPMvsc0D2QbANgC2eSDb/Gc4c+bMg7jqqquuuuqqq6666qr/XQiuuuqqq6666qqr/ovZBsA2ALZ5INs8P7axDYBtAGxjG9vYxjYAtrmfbWzzQLZ5UUlCElddddVVV1111VVXXfW/EJWrrrrqqquuuuqq/2K2b81MAGwDYJsHss0D2ea52eZ+trmfbQBsY5urrrrqqquuuuqqq676f4zgqquuuuqqq6666r+YbWxjmweyjW3uZxvbPDfb2AbANrYBsI1tAGzz3Gzzb3Xx4kWuuuqqq6666qqrrrrqfyEqV1111VVXXXXVVf/FbPNAtnlhbHM/29zPNvezzf1sA2Cb/yiSuOqqq6666qqrrrrqqv+FCK666qqrrrrqqqv+i7XWyExsYxsA29zPNs+Pbe5nGwDb2AbANrYBsM39bPPvIQmAa6655sFcddVVV1111VVXXXXV/y5Urrrqqquuuuqqq/7rPcM2tnlBbPNAtrmfbQBscz/b2AbANvezzb+HJAAkcdVVV1111VVXXXXVVf8LEVx11VVXXXXVVVf9N7ANgG1sA2Ab29zPNs/NNg9kG9vczzb3s839bHPVVVddddVVV1111VX/D1G56qqrrrrqqquu+i8m6Vbb2OZ+tnl+bGMbANsA2MY2trENgG1sA2Ab2/x7SOKqq6666qqrrrrqqqv+DyC46qqrrrrqqquu+i9mG9sA2Oa52ea52eYFsY1tAGzzQLaxzb/XpUuXuOaaax7MVVddddVVV1111VVX/e9C5aqrrrrqqquuuuq/WETcmpnYBsA2ALaxDYBtnh/bANjGNraxDYBtbANgG9s8N9v8a0niqquuuuqqq6666qqr/peictVVV1111VVXXfXfIDOxzQtjmweyDYBtnptt/iW2AbDNv5Ykrrrqqquuuuqqq6666n8hKlddddVVV1111VX/DWxjG9vYxjbPj21s8/zYxja2AbCNbf6jSOJ+ly5d4qqrrrrqqquuuuqqq/4XonLVVVddddVVV131XywibrWNbWxzP9sA2Oa52QbANgC2eSDbPJBtbGMbANv8W0jifmfOnHkwV1111VVXXXXVVVdd9b8LwVVXXXXVVVddddV/g2EYbrUNgG1sA2AbANs8N9sA2AbANraxDYBtbGObB7LNv4ckJHHVVVddddVVV1111VX/C1G56qqrrrrqqquu+m8gCdvY5gWxjW1s89xs80C2eSDb/Efa29vjmmuueTBXXXXVVVddddVVV131vwvBVVddddVVV1111X+DaZputY1tbGMb2wDY5rnZBsA2tgGwjW1sA2Ab2/x7SOK5SUISV1111VVXXXXVVVdd9b8QwVVXXXXVVVddddV/A9vY5rnZBsA2z80297PNA9nmfrYBsM2/hSSe2/7+PgDXXHPNg7nqqquuuuqqq6666qr/PQiuuuqqq6666qqr/htEBLaxjW2eH9vY5rnZBsA2trGNbWxzP9sA2Oa5SeJFIQlJSOJ+Z86ceTBXXXXVVVddddVVV131vweVq6666qqrrrrqqv8GwzDcmpnYBsA2tgGwzQPZxjYAtgGwzf1sA2Ab2/xbSeJ+knggSVy4cIGrrrrqqquuuuqqq676X4bgqquuuuqqq6666r9BZt5qG9vY5n62eUFs80C2sQ2Abf6zSEISFy5c4JprrnkwV1111VVXXXXVVVdd9b8Hlauuuuqqq6666qr/Bq01bHM/29jmfraxzXOzjW1scz/bANjGNgCSsM2LShLPjyQAJBERXHXVVVddddVVV1111f8yVK666qqrrrrqqqv+G9h+RmZiG9vczza2uZ9tbGOb52Yb2wDY5oFs8/xI4kUlCQBJSGJ3d5czZ848iKuuuuqqq6666qqrrvrfg+Cqq6666qqrrrrqv4GkWzMT29jGNv8S2wDYxjYAtrGNbWxjmxdEEveTxP0k8UCSuJ8kACRx6dIlrrnmmgdz1VVXXXXVVVddddVV/3sQXHXVVVddddVVV/03sE1mYpv72eZ+trHNc7PN/WwDYJv72cY2LwpJSOKBJAEgiftJAuDSpUtcc801D+aqq6666qqrrrrqqqv+96By1VVXXXXVVVdd9d8gIm7NTGxjG9sA2MY297ONbWxjGwDb2AbANgC2sc39bPOvJYkHksT9IoK9vT3OnDnzYK666qqrrrrqqquuuup/D4Krrrrqqquuuuqq/yaZiW1sYxvb3M82z49t7mcbANsA2MY2tgGwjW2emyReVJKQBMD+/j5XXXXVVVddddVVV131vwzBVVddddVVV1111X+DiLjVNpmJ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V1111VVXXfU/2Ww2+61rr732tTc3N5nNZnRdR9d1lFKotVJKISIopRARRASlFCKCUgoRQSmFiKCUQkQQEZRSiAgiAklEBJIAkASAbQBsYxvb2MY2trGNbTIT29jGNraxjW1sYxvb2AbANraxjW1sYxvbZCa2sU1mYhvb2MY2/1PYxja22dzc5Prrr8c2N9xwA9vb28xms1v/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqquuuuq/A3rQgx7EVVddddVVV1111f9ktdbfuuaaa157e3ub2WxG3/d0XUcphVorpRQiglIKEUEphYggIiilEBGUUogISilEBBFBKYWIICKICCQhCUkASALANgC2sY1tbGMb29jGNraxjW1sYxvb2MY2ALaxDYBtAGxjG9vYxja2AchMAGxjm/vZ5kUliX8v2wBIAsA2tgGwjW0yk8zENq01NjY2uO6663jMYx7DbDa79bd+67e++7d/+7e/57777ruVq6666qqrrrrqqqv+q6AHPehBXHXVVVddddVVV/1Plpmvfe211/7WsWPHWCwW9H1PrZVaK7VWSimUUogISilEBBFBKYWIICIopRARlFKICCKCUgoRQUQQEUgiIpAEgCQAbHM/29jGNraxjW1sYxvb2AbANraxjW3uZxsA29zPNgC2AbANgG0AbANgGwDbPDdJ/FexDYBtbJOZ2CYzsU1m0lqjtUZrjY2NDR7xiEfwqq/6qtx33323fv3Xf/37/MM//MNvc9VVV1111VVXXXXVfzb0oAc9iKuuuuqqq6666qr/yTLzwSdPnnz6iRMn2NjYoO97uq6j1kqtlVIKpRQiglIKEUFEUEohIogISilEBKUUIoKIoJRCRBARRAQRgSQkIQkASQDYBsA2ALaxjW1sA2Ab29jGNgC2sc39bPNvYRsA2/xPYBvb2MY2mYltMpPMJDNprZGZtNZorTFNE4vFgkc+8pE89rGPZRiGWz/rsz7rde67775bueqqq6666qqrrrrqPwt60IMexFVXXXXVVVddddX/dLPZ7Leuueaa197c3GQ2m9H3PbVWaq2UUiilEBGUUogISilEBBFBKYWIICIopRARRASlFCKCiCAiiAgkEREASAJAEgC2AbANgG1sA2Ab29gGwDa2uZ9tHkgS95MEgCQAJCEJSUhCEvfLTABs89wk8V/FNpmJbTKTzKS1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rrrqqv8lCK666qqrrrrqqqv+D/vFX/zFX+Cq/xGOjo6+Z3d397eHYWCaJlprZCa2sY1tbGMb29jGNraxjW1s80C2sY1tbPNvJYn7SUISz00SkpDEpUuXeOxjH/taXHXVVVddddVVV/3PR3DVVVddddVVV131f9zbvd3biQd4u7d7O3HVf4dbd3d332e5XDJNE9M00VojM8lMMpPMxDa2sQ2AbWxjGwDb2MY2tnlutrENgG1eGEk8kCTuJwkASUjifhHB7u4uV1111VVXXXXVVf9LEFx11VVXXXXVVVf9P/AjP/Ijnw3wIz/yI5/NVf9tbN963333vc96vWaaJjKT1hqZiW1sYxvb2MY2trmfbWxjm/vZxja2sc1zsw2Abf61JHE/SUhCEru7u7z4i7/463DVVVddddVVV131Px/BVVddddVVV1111f8D11xzzYMBXud1Xue9ueq/1TRN333hwoXfHseRaZrITDKTzMQ2trGNbWxjG9vYxjb3s41tbPPcbGOb+9nmBZEEgCReEEkASEISEcE111zzYK666qqrrrrqqqv+5yO46qqrrrrqqquu+n/gxV7sxV4b4Jprrnnwi73Yi702V/23Ojg4eJ/1es00TbTWyEwyk8wkM8lMbGMb29jGNgC2sY1t7mcb29jGNvezzb+FJCQBIAkASQBI4tKlS9x3331cddVVV1111VVX/S9AcNVVV1111VVXXfV/3Iu92Iu91jXXXPNgnunFXuzFXour/rvdeu7cue8ehoFpmshMMpPMxDa2sY1tAGwDYBvb3M82tnl+bPOiksT9JHE/STyQJAAkIelB11xzzYO56qqrrrrqqquu+p+N4Kqrrrrqqquuuur/uGuuuebBPMDrvM7rvDdX/bdbr9efs16vmaaJ1hqZiW0yE9vYxja2sY1tbANgG9vczza2sY1tbHM/27yoJPH8SOJ+kpCEJM6cOfNgrrrqqquuuuqqq/5nI7jqqquuuuqqq676P+7FXuzFXpsHuOaaax784i/+4q/NVf+tJN169uzZ9xmGgWmayEwyE9vYxja2sY1tbANgG9sA2MY2tvnPIgkASUhCEpJ48pOfzDXXXPNgrrrqqquuuuqqq/5nI7jqqquuuuqqq676P+7FXuzFXpvn8tjHPva1uOq/3TRNvz0MA9M00VojM8lMMhPb2MY2ALaxjW0AbGOb+9nG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H00S/10k8YLYxjZnz559BlddddVVV1111VX/cxFcddVVV1111VVX/T/xdm/3dvqQD/mQhwB3AtNnfuZnvg5X/Y9nm38L2zw/tnlukpAEgCQkIYl/yYkTJ7jqqquuuuqqq676H47gqquuuuqqq6666v+fG4H64R/+4d/FVf/jSeLfyzYvCklcddVVV1111VVX/R9DcNVVV1111VVXXfX/yH333XfrP/zDP/w2wDXXXPPg13md13lvrvofTRIvKtv8e0niRXXixAmuuuqqq6666qqr/ocjuOqqq6666qqrrvp/7B3f8R0/i6v+R+v7/sH8J5GEJAAkIQkASbwobHPffffdylVXXXXVVVddddX/XARXXXXVVVddddVV/49dc801D37Hd3zHz+Kq/7EyE0m8MLa5n23+tSRxP0kASEISz49tAGxz1VVXXXXVVVdd9T8cwVVXXXXVVVddddX/c6/zOq/z3tdcc82Duer/DNs8P7Z5QSQhCQBJ/Etsc/LkSc6ePXsrV1111VVXXXXVVf9zEVx11VVXXXXVVVf9P3PmzJkH8wDXXHPNg9/xHd/xs7jqfyTb/HvY5rlJ4oEk8YJI4gWxzVVXXXXVVVddddX/cARXXXXVVVddddVVV/FiL/Zir/3iL/7ir81V/+NI4j+TJO4nCUm8qE6dOsVVV1111VVXXXXV/3AEV1111VVXXXXVVVdxzTXXPPgd3/EdP5ur/kfJzAfzn0gS95PE/SQhiRfFfffddytXXXXVVVddddVV/3MRXHXVVVddddVVV1112Yu92Iu91ou92Iu9Nlf9jySJ+9nmfrYBsM1zs82LQhL3k8TzI4kHso1trrrqqquuuuqqq/6HI7jqqquuuuqqq676f+aaa655MC/Ah3/4h38XV/2/IAkASQBIQhIPJIn72eaBJHHq1Cmuuuqqq6666qqr/oejctVVV1111VVXXXUV9913363/8A//8Nv33XffrVz1f4JtJHE/20ji+ZHEA0nigSTx3Gxz33333cpVV1111VVXXXXV/2xUrrrqqquuuuqqq/6f+ZEf+ZHPPnv27K333XffM97pnd7ps17sxV7stf/hH/7ht7/+67/+fbjqfxxJvCC2kcT9bCOJfwtJSOJ+knh+bAMgiauuuuqqq6666qr/BahcddVVV1111VVX/T/zoz/6o5/DM33913/9rd/0Td/09Bd7sRd77WuuuebB9913361c9T9GZj6YF8A2knhutgGQxL9EEpL4t9jZ2eHs2bO3ctVVV1111VVXXfU/G8FVV1111VVXXXXV/2P33Xffrb/1W7/13ddcc82D3/Ed3/GzuOp/NNv8Z5CEJCQhiauuuuqqq6666qr/Qwiuuuqqq6666qqr/p/70R/90c8BeJ3XeZ33frEXe7HX5qr/MSTxorDNi0oS/xJJvDC2OX78OPfdd9+tXHXVVVddddVVV/3PRnDVVVddddVVV131/9x9991369d//de/D8CHf/iHfxdX/b8gCUlIQhKSkMSLyjZXXXXVVVddddVV/wsQXHXVVVddddVVV13FP/zDP/z23//93//2Nddc8+AP//AP/y6u+h8hMx8MIIn72eZfyzYvKkkASOK52eaqq6666qqrrrrqfxmCq6666qqrrrrqqqu47777bv36r//69wZ4ndd5nfd+ndd5nffmqv92kpDEfzRJ3E8SkpCEJAAkASCJ+0nigY4fP8599913K1ddddVVV1111VX/sxFcddVVV1111VVXXXXZ2bNnn/H1X//173Pffffd+o7v+I6f9WIv9mKvzVX/rSTxorLNfwRJvChsc9VVV1111VVXXfW/AMFVV1111VVXXXXVVc/yW7/1W9/9W7/1W999zTXXPPjDP/zDv+uaa655MFf9t4kI/iW2eWFs84JIAkASkpDEc5PEVVddddVVV1111f9iBFddddVVV1111VVXPYff/u3f/p5/+Id/+O1rrrnmwZ/7uZ/721z1v4ZtXlSSAJAEgCQAJCEJSbwwJ06c4OzZs8/gqquuuuqqq6666n82gquuuuqqq6666qqrnsN9991369d//de/z3333XfrmTNnHvRN3/RNT+eq/xaS+Neyzb+WJAAk8aKyzVVXXXXVVVddddX/AgRXXXXVVVddddVVVz2P++6779bP+qzPep377rvv1muuuebB3/RN3/R0rvovl5kP4t/ANraxzQsjCUlIQhKSkMSL4sSJE1x11VVXXXXVVVf9L0Bw1VVXXXXVVVddddXzdd999936mZ/5ma/9D//wD799zTXXPPibvumbnn7NNdc8mKv+y5RSkMR/NUk8P5K4n23uu+++W7nqqquuuuqqq676n43gqquuuuqqq6666qoX6OzZs8/4+q//+ve57777br3mmmse/Dmf8zm/dc011zyYq/5HsM2/hSQkIQlJSEISkpAEgCQk8YLY5qqrrrrqqquuuup/AYKrrrrqqquuuuqqq16o++6779bP+qzPep1/+Id/+O1rrrnmwZ/7uZ/72+/4ju/4WVz1n04Sz49tHsg2/16SuJ8kXhjbnDhxgrNnz97KVVddddVVV1111f9sBFddddVVV1111VVX/Yvuu+++W7/+67/+fX7kR37ks237nd7pnT77Hd/xHT+Lq/5TSeI/kiSemyQkASAJSbwobHPVVVddddVVV131vwDBVVddddVVV1111VUvkvvuu+/WH/3RH/2c3/qt3/pugHd6p3f67G/6pm96+ou92Iu9Nlf9p5D0YF4A2/x7SEISkpCEJCTxojp58iRXXXXVVVddddVV/wsQXHXVVVddddVVV131r/KjP/qjn/MhH/IhD/mHf/iH377mmmse/OEf/uHf9U7v9E6fzVX/4STxorLNi0ISz48kACQhCUn8S+67775bueqqq6666qqrrvqfjeCqq6666qqrrrrqqn+1++6779av//qvf58f+ZEf+exrrrnmwe/4ju/4Wd/0Td/09Hd8x3f8LK76DyWJF5VtbPOikoQkJAEgiecmiauuuuqqq6666qr/xQiuuuqqq6666qqrrvo3ue+++2790R/90c/5kA/5kIf8wz/8w29fc801D36nd3qnz/6mb/qmp7/O67zOe3PVv5sk/jNIQhL3k4QkJCEJSQBI4gU5efIkV1111VVXXXXVVf8LUI4fP85VV1111VVXXXXVVf92h4eHu7/1W7/1PWfPnn3Ggx/84Je+5pprHvyKr/iKb/26r/u673N4eLh76623/jVX/ZvUWt96sVi8dCmFUgoRQUQgCUlIAkASkpCEJCQhCUlIQhKSiAgigoiglEKtlVorpRRKKdyvtUZrjdYarTUyk8wkM8lMWms85jGPecbP//zPfzVXXXXVVVddddVV/7NRjh8/zlVXXXXVVVddddVV/3633nrrX//Zn/3ZzxweHu5ec801D77mmmse/Iqv+Ipv/Tqv8zrvvbm5eRzQ2bNnb+WqF9lisfjo2Wz24FIKpRQigohAEpKQhCQkIQlJSEISkpCEJCQhiYggIogISimUUqi1UkqhlIIkbJOZtNZordFaIzPJTDKTzCQzebmXe7lLP//zP//VXHXVVVddddVVV/3PRuWqq6666qqrrrrqqv8w9913360/+qM/+jm//du//T1nzpx58Du90zt91ou92Iu99ju90zt9NsDZs2ef8Zu/+Zvf9du//dvfc999993KVS9Ua43/LJKQBIAkJAEgiX/Jzs4O9913361cddVVV1111VVX/c9HOX78OFddddVVV1111VVX/cc6PDzcPXv27K2/9Vu/9T2//du//T2bm5vHH/KQh7z05ubm8Rd/8Rd/7Td/8zf/6Nd5ndd5783NzeOAzp49eyv/Cm/7tm/7bq/8yq/89n/913/92/wXed/3fd/Pv+WWW0498YlPfBz/Rfq+f+/5fP7gUgqlFCKCiEASkpCEJCQhCUlIQhKSkIQkJCGJiCAiKKVQSqGUQq2VWisRgSQyk9YarTVaa7TWyEwyk8wkM+m6joc85CHP+K3f+q3v5qqrrrrqqquuuup/NvSgBz2Iq6666qqrrrrqqqv+811zzTUPfrEXe7HXerEXe7HXfp3XeZ335gHuu+++WwH+4R/+4bf/4R/+4Xfuu+++W8+ePXvrfffddyvP5Sd+4ifMA3zAB3xAvXDhQuMBrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2vfdd98zvv7rv/69+Td4yEMesvjyL//yIx7g7d7u7cR/gY2Njd86duzYa/d9T9d1lFIopRARRAQRgSQkERFIQhKSKKUQEUQEEUFEUEqh1kqtla7rmM1mzGYzuq6j1gpAa41hGFiv16zXa9brNeM4Mo4j0zQxjiPXXXcdN9100/d8/dd//Xtz1VVXXXXVVVdd9T8betCDHsRVV1111VVXXXXVVf+1rrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22rwA9913361nz569FdCLvdiLvRbPx2/91m99N8A111zz4Bd7sRd7bZ7L2bNnn/H3f//3v8VzEmCekwDzAK/zOq/z3jyXs2fPPuM3f/M3v+vs2bPPALjvvvtuPXv27K333Xffrddcc82DAc6cOfNggGuuuebBAGfOnHkQwG//9m9/z3333XcrL4Ljx48/fbFYPLjve7quo5RCKYWIICKICCQhiYhAEpKQRCmFiCAiiAgiglIKtVZqrfR9T9/3zGYz+r6n1gpAa431es16vWa9XrNerxnHkXEcmaaJcRy57rrruOmmm77n67/+69+bq6666qqrrrrqqv/Z0IMe9CCuuuqqq6666qqrrvrvdc011zz4zJkzD77mmmsefObMmQe9+Iu/+GufOXPmwddcc82DAe67775br7nmmgfzf8CHfMiHPOS+++67lRfB9vb207e2th48m82otVJKoZRCRBARSCIikIQkIgJJSKKUQkQQEUQEEUEphVortVb6vmc2mzGbzej7nlorANM0MQwDq9WK9XrNMAwMw8A4jkzTxDiOXHfdddx0003f8/Vf//XvzVVXXXXVVVddddX/bFSuuuqqq6666qqrrvpvd999991633333foP//APAPzoj/7o5/BM11xzzYPPnDnzYMAf/uEf/t3XXHPNg3kuX//1X/8+AC/2Yi/2Wtdcc82DX+zFXuy1eYB/+Id/+O3f+q3f+h6ekwHxnAyIB/jwD//w7+L5+Id/+IfffrEXe7HX5l/hH/7hH377vvvuu5V/BUk8kG1eENsASMI2L4gk7icJSUgCQBIAknhBjh07xn333fd0rrrqqquuuuqqq/7nQw960IO46qqrrrrqqquuuup/j5/4iZ8wD/B2b/d24rlcc801DwZ4sRd7sdd+sRd7sdc6e/bsM37kR37ks/k3+omf+AnzAG/3dm8ngGuuuebBr/3ar/1er/M6r/Pe11xzzYN5EZw9e/YZv/mbv/ld//AP//A7//AP//DbvBDb29tP397efnDXdXRdRymFiKCUQkQgiYhAEpKQhCQigoiglEJEEBFEBKUUaq10XUff98xmM2azGbPZjFortpmmiWEYWK1WrFYrhmFgGAbGcWSaJsZx5JGPfCSr1eqzf/RHf/RzuOqqq6666qqrrvqfDT3oQQ/iqquuuuqqq6666qqr/j2uueaaB7/Yi73Ya73Yi73Ya7/O67zOe/Miuu+++2790R/90c/5rd/6re/m+djZ2Xn61tbWg/u+p9ZKKYWIoJRCRCCJiEASkpCEJCKCiKCUQkQQEZRSKKVQSqHrOvq+Zz6fM5vNmM1mlFIAmKaJ9XrNarVitVoxDAPDMDCOI9M0MY4jj3zkI1mtVp/9oz/6o5/DVVddddVVV1111f9slOPHj3PVVVddddVVV1111VX/HoeHh7u33nrr3/zpn/7pz/z2b//299x6661/s7m5efyaa655MA/wmZ/5ma/zW7/1W98N8JCHPOSlNzc3j7/iK77iW7/u677u+2xsbBz7h3/4h9/hAWaz2Uf3fX+8lEJEEBFIIiIAkIQkJCEJSUhCEpKICCQhiYggIiilUEqh1kqtla7rqLUSEUjCNq01pmmitUZrjdYatslMMpOHPexhPP3pT/+eW2+99a+56qqrrrrqqquu+p8NPehBD+Kqq6666qqrrrrqqqv+M5w5c+ZBr/M6r/Per/M6r/Pe11xzzYPf7u3eTjzTNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22A++6779bf+q3f+u4f/dEf/RyAEydOeLFY0Pc9tVZKKUQEEUFEEBFEBJKQhCQkERFEBKUUIoKIoJRCKYVaK13X0fc98/mc+XzObDajlALAOI6s12tWqxWr1Yr1es0wDEzTxDiOjOPIK7zCK/D3f//37/Nbv/Vb381VV1111VVXXXXV/2zoQQ96EFddddVVV1111VVXXfWf6ZprrnkwwH333Xcrz8eZM2ce9BEf8RHf/WIv9mKvDXDffffd+tu//dvf82u/9mufNZ/P6fueWiulFCKCiCAiiAgkERFIQhKSiAgigoiglEJEUEqhlEKtla7rmM1mzOdz5vM5fd9TawVgHEfW6zXL5ZLVasV6vWYcR8ZxZBxHxnHkDd7gDfj93//99/mt3/qt7+aqq6666qqrrrrqfzaCq6666qqrrrrqqquu+k9233333Xrffffdygtw9uzZZ3zmZ37m63zIh3zIQ/7hH/7ht6+55poHv+M7vuNn2eY/gyQeSBKSAJDEi+Ls2bO3ctVVV1111VVXXfU/H8FVV1111VVXXXXVVVf9D3Hffffd+pmf+Zmv8/Vf//Xvc999993KA9jmBbHNi0oSAJKQhCQkIQlJ3E8SkpDEc8tMrrrqqquuuuqqq/6XoHLVVVddddVVV1111VX/w/zWb/3Wd//93//9b0m6lX8l27yoJCEJSUgCQBKSeGFOnDjBfffddytXXXXVVVddddVV//MRXHXVVVddddVVV1111f9A9957L8/NNi+IbWzzwkgCQBKSAJCEJCQhCUn8S2xz1VVXXXXVVVdd9b8Elauuuuqqq6666qqrrvp/ShKSkIQk7icJSbwgJ06c4Kqrrrrqqquuuup/CSpXXXXVVVddddVVV131v5RtJPGvIQkASUhCEpKQBIAkXhT33XffrVx11VVXXXXVVVf9z0flqquuuuqqq6666qqr/geTxH80SUhCEpKQhCQAJCEJAEk8kCSuuuqqq6666qqr/pehctVVV1111VVXXXXVVf9DSeI/myQiAkk8kCRekBMnTnDVVVddddVVV131vwSVq6666qqrrrrqqquu+h/I9oP5DySJ+0lCEpKQhCQkASAJSdxPEpJ4oPvuu+9Wrrrqqquuuuqqq/53oHLVVVddddVVV1111VX/x0kCQBKSuJ8kJCEJSQBI4vmRBIAkrrrqqquuuuqqq/4XIbjqqquuuuqqq6666qr/hWwDYJvnZpsXRhKSkIQkJBERSEISkpDE87O9vc3Zs2dv5aqrrrrqqquuuup/BypXXXXVVVddddVVV131/5AkJCEJSUhCEg8kiecmiauuuuqqq6666qr/RahcddVVV1111VVXXXXV/0CZ+WBeRLa5nyReGElIAkASkpCEJAAkIYkXZGdnh/vuu+9Wrrrqqquuuuqqq/53ILjqqquuuuqqq6666qr/gSQhiedmG9v8e0lCEpKQhCQkIQlJSOKqq6666qqrrrrq/wAqV1111VVXXXXVVVdd9T+QJP6jSQJAEpKQhCQiAklIQhIPJImrrrrqqquuuuqq/8WoXHXVVVddddVVV1111f9AkvjPIAkASQBIQhKSkASAJAAk8dx2dna46qqrrrrqqquu+l+EylVXXXXVVVddddVVV/0PJIn/SJK4nyQAJBERSEISkpAEgCTuJ4kHuu+++27lqquuuuqqq6666n8Hgquuuuqqq6666qqrrvpfyjb/VpKQhCQkERFIQhKSuOqqq6666qqrrvo/guCqq6666qqrrrrqqqv+Z3ow/8EkIQlJSEISkogIJCEJSTw/kgDY2dnh7Nmzz+Cqq6666qqrrrrqfwcqV1111VVXXXXVVVdd9T+QJP4zSUISkpCEJCQhCUlI4vmxzVVXXXXVVVddddX/IlSuuuqqq6666qqrrrrqfyBJSOJfyzb3k8TzIwmAiEASkpBERPBAkpDE/SRx/Phxrrrqqquuuuqqq/4XIbjqqquuuuqqq6666qr/gSTxorDN/Wzz/EjifpIAkIQkIgJJSEISkpDEC2Kb++6771auuuqqq6666qqr/ncguOqqq6666qqrrrrqqv+BIuLBvIhs8y+RhCQAJCEJSUgiIogIJCEJAElcddVVV1111VVX/R9AcNVVV1111VVXXXXVVf8D2QZAEs+PbR7INs+PJB5IEpKQhCQkIQlJSEISknggSdxvZ2eHs2fP3spVV1111VVXXXXV/w5Urrrqqquuuuqqq6666n8gSfxnkoQkJBERSEISDySJq6666qqrrrrqqv/lqFx11VVXXXXVVVddddX/E5KQhCQkIYmIQBKSkIQkJCGJ5+f48eNcddVVV1111VVX/S9C5aqrrrrqqquuuuqqq/4HksR/FklIQhKSkEREIAlJPJAkACRxv/vuu+9Wrrrqqquuuuqqq/53oHLVVVddddVVV1111VX/Q0niP4oknpskJBERSEISkpCEJJ4f21x11VVXXXXVVVf9L0Jw1VVXXXXVVVddddVV/wNFxIN5LrYBsM2/lSQkIYmIICKQhCQkIYn7SeK5nThxgquuuuqqq6666qr/RQiuuuqqq6666qqrrrrqfyBJ/Ets86KQBIAkACQhCUlIQhIRgSQAJPFAkrjffffddytXXXXVVVddddVV/3tQueqqq6666qqrrrrqqv8jbPMvkQSAJCQREUQEkpCEJCQhiecmiauuuuqqq6666qr/ZQiuuuqqq6666qqrrrrqfxHb/FtIQhIAkpCEJCQhCUlIQhIvyPb2NmfPnr2Vq6666qqrrrrqqv89CK666qqrrrrqqquuuup/oL7vH8yLwDYAtnlRSEISkpBERBARRASSkIQkACQhCQBJXHXVVVddddVVV/0vRHDVVVddddVVV1111VX/A7XWeFHZ5gWRxANJAkASEYEkJCEJSUgCQBLPbWdnh/vuu+9Wrrrqqquuuuqqq/73oHLVVVddddVVV1111VX/T0gCQBKSkIQkIgJJSAJAEg8kiauuuuqqq6666qr/pahcddVVV1111VVXXXXV/3GSkASAJCQhCUlEBJKQhCQkcdVVV1111VVXXfV/CJWrrrrqqquuuuqqq676H0oSL4htJPFvIQlJRASSiAgkERFIQhKSeG7b29tcddVVV1111VVX/S9D5aqrrrrqqquuuuqqq/4HksS/lyQeSBKSkIQkJBERSEISkpDE/SQhiQe67777buWqq6666qqrrrrqfw8qV1111VVXXXXVVVdd9T9QKeXB/CeKCCQhiYgAQBKSkMRzk8RVV1111VVXXXXV/0IEV1111VVXXXXVVVdd9X+QJB5IEpKQhCQkERFEBJKICCRxP0k8t52dHc6ePfsMrrrqqquuuuqqq/73oHLVVVddddVVV1111VX/x0nifpKQ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Fi/2Yi/22u/0Tu/0WS/2Yi/22jzTxYsXue2227j99ts5PDyk1spyuWS1WjGbzTh16hQbGxucPn2a66+/nq2tLebzOba533333Xfrj/7oj37Ob/3Wb303V1111VVXXXXVVf93oAc96EFcddVVV1111VVXXXXV/zbXXHPNg1/7tV/7vV78xV/8tV/sxV7stfk3uO+++279rd/6re8+e/bsM37rt37ru7nqqquuuuqqq676vwc96EEP4qqrrrrqqquuuuqqq/43u+aaax78Yi/2Yq/9Yi/2Yq91zTXXPBjgzJkzD77mmmseDHDffffdCnD27Nlb77vvvlvvu+++W//hH/7hd/7hH/7ht7nqqquuuuqqq676vw096EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8q/hFU/Gj2duImMQAAAABJRU5ErkJggg==) + + diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 2a5f6fa64e..aeb4ee6152 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -254831,78 +254831,87 @@ ] }, { - "name": "round", - "summary": "Round a number to the nearest integer.", - "description": "", - "tags": [ - "math" - ], - "keywordArguments": false, - "args": [ - { - "name": "num", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(endAbsolute = [12, 10])\n |> line(end = [round(7.02986), 0])\n |> yLineTo(0, %)\n |> close()\n\nextrude001 = extrude(sketch001, length = 5)" - ] - }, - { - "name": "segAng", - "summary": "Compute the angle (in degrees) of the provided line segment.", - "description": "", + "name": "rotate", + "summary": "Rotate a solid.", + "description": "### Using Roll, Pitch, and Yaw\n\nWhen rotating a part in 3D space, \"roll,\" \"pitch,\" and \"yaw\" refer to the three rotational axes used to describe its orientation: roll is rotation around the longitudinal axis (front-to-back), pitch is rotation around the lateral axis (wing-to-wing), and yaw is rotation around the vertical axis (up-down); essentially, it's like tilting the part on its side (roll), tipping the nose up or down (pitch), and turning it left or right (yaw).\n\nSo, in the context of a 3D model:\n\n- **Roll**: Imagine spinning a pencil on its tip - that's a roll movement.\n\n- **Pitch**: Think of a seesaw motion, where the object tilts up or down along its side axis.\n\n- **Yaw**: Like turning your head left or right, this is a rotation around the vertical axis\n\n### Using an Axis and Angle\n\nWhen rotating a part around an axis, you specify the axis of rotation and the angle of rotation.", "tags": [], "keywordArguments": true, "args": [ { - "name": "tag", - "type": "TagIdentifier", + "name": "solid", + "type": "Solid", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", "value" ], "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, "value": { - "type": "string" + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } }, - "info": { + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/TagEngineInfo" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", "nullable": true }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, "__meta": { + "description": "Metadata.", "type": "array", "items": { "$ref": "#/components/schemas/Metadata" @@ -254910,41 +254919,308 @@ } }, "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", "id", - "sketch" + "on", + "originalId", + "paths", + "start", + "units" ], "properties": { "id": { - "description": "The id of the tagged object.", + "description": "The id of the sketch (this will change when the engine's reference to it changes).", "type": "string", "format": "uuid" }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } }, - "path": { - "description": "The path the tag is on.", + "on": { + "description": "What the sketch is on (can be a plane or a face).", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/SketchSurface" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "start": { + "description": "The starting path.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/BasePath" } - ], - "nullable": true + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, @@ -255700,38 +255976,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -255755,202 +255999,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -255967,204 +256225,626 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [5, 10], tag = $seg01)\n |> line(end = [-10, 0])\n |> angledLine([segAng(seg01), 10], %)\n |> line(end = [-10, 0])\n |> angledLine([segAng(seg01), -15], %)\n |> close()\n\nexample = extrude(exampleSketch, length = 4)" - ] - }, - { - "name": "segEnd", - "summary": "Compute the ending point of the provided line segment.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The solid to rotate.", + "labelRequired": false + }, + { + "name": "roll", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, "from": { "description": "The from point.", @@ -256209,7 +256889,7 @@ } }, { - "description": "A arc that is tangential to the last path segment", + "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", @@ -256224,7 +256904,7 @@ "type": { "type": "string", "enum": [ - "TangentialArc" + "TangentialArcTo" ] }, "center": { @@ -256284,14 +256964,13 @@ } }, { - "description": "a complete arc", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", - "radius", "to", "type", "units" @@ -256300,7 +256979,7 @@ "type": { "type": "string", "enum": [ - "Circle" + "TangentialArc" ] }, "center": { @@ -256313,13 +256992,8 @@ "maxItems": 2, "minItems": 2 }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", + "description": "arc's direction", "type": "boolean" }, "from": { @@ -256365,14 +257039,14 @@ } }, { - "description": "A base path.", + "description": "a complete arc", "type": "object", "required": [ "__geoMeta", + "ccw", + "center", "from", - "p1", - "p2", - "p3", + "radius", "to", "type", "units" @@ -256381,11 +257055,92 @@ "type": { "type": "string", "enum": [ - "CircleThreePoint" + "Circle" ] }, - "p1": { - "description": "Point 1 of the circle", + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", "type": "array", "items": { "type": "number", @@ -256823,38 +257578,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -256878,202 +257601,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -257090,310 +257827,332 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "[number]", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "w = 15\ncube = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line(end = [w, 0], tag = $line1)\n |> line(end = [0, w], tag = $line2)\n |> line(end = [-w, 0], tag = $line3)\n |> line(end = [0, -w], tag = $line4)\n |> close()\n |> extrude(length = 5)\n\nfn cylinder(radius, tag) {\n return startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> circle({\n radius = radius,\n center = segEnd(tag)\n }, %)\n |> extrude(length = radius)\n}\n\ncylinder(1, line1)\ncylinder(2, line2)\ncylinder(3, line3)\ncylinder(4, line4)" - ] - }, - { - "name": "segEndX", - "summary": "Compute the ending point of the provided line segment along the 'x' axis.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", "nullable": true - } - } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "length": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "includeInSnippet": true, + "description": "The roll angle in degrees. Must be used with `pitch` and `yaw`. Must be between -360 and 360.", + "labelRequired": true + }, + { + "name": "pitch", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ { - "description": "A arc that is tangential to the last path segment", + "description": "An extrude plane.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "extrudePlane" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -257401,80 +258160,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "a complete arc", + "description": "An extruded arc.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "extrudeArc" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -257482,91 +258205,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A base path.", + "description": "Geometry metadata.", "type": "object", "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "CircleThreePoint" + "chamfer" ] }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -257574,39 +258250,204 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A path that is horizontal.", + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", - "units", - "x" + "units" ], "properties": { "type": { "type": "string", "enum": [ - "Horizontal" + "ToPoint" ] }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double" - }, "from": { "description": "The from point.", "type": "array", @@ -257650,10 +258491,12 @@ } }, { - "description": "An angled line to.", + "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", + "ccw", + "center", "from", "to", "type", @@ -257663,20 +258506,22 @@ "type": { "type": "string", "enum": [ - "AngledLineTo" + "TangentialArcTo" ] }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true + "ccw": { + "description": "arc's direction", + "type": "boolean" }, "from": { "description": "The from point.", @@ -257721,10 +258566,12 @@ } }, { - "description": "A base path.", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", + "ccw", + "center", "from", "to", "type", @@ -257734,9 +258581,23 @@ "type": { "type": "string", "enum": [ - "Base" + "TangentialArc" ] }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -257780,7 +258641,7 @@ } }, { - "description": "A circular arc, not necessarily tangential to the current point.", + "description": "a complete arc", "type": "object", "required": [ "__geoMeta", @@ -257796,11 +258657,11 @@ "type": { "type": "string", "enum": [ - "Arc" + "Circle" ] }, "center": { - "description": "Center of the circle that this arc is drawn on.", + "description": "the arc's center", "type": "array", "items": { "type": "number", @@ -257810,12 +258671,12 @@ "minItems": 2 }, "radius": { - "description": "Radius of the circle that this arc is drawn on.", + "description": "the arc's radius", "type": "number", "format": "double" }, "ccw": { - "description": "True if the arc is counterclockwise.", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -257859,78 +258720,390 @@ ] } } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ + }, { + "description": "A base path.", "type": "object", "required": [ - "type" + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "Mm" + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } ] } } }, { + "description": "A path that is horizontal.", "type": "object", "required": [ - "type" + "__geoMeta", + "from", + "to", + "type", + "units", + "x" ], "properties": { "type": { "type": "string", "enum": [ - "Cm" + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } ] } } }, { + "description": "An angled line to.", "type": "object", "required": [ - "type" + "__geoMeta", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "M" + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } ] } } }, { + "description": "A base path.", "type": "object", "required": [ - "type" + "__geoMeta", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "Inches" + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } ] } } }, { + "description": "A circular arc, not necessarily tangential to the current point.", "type": "object", "required": [ - "type" + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "Feet" + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" ] } } @@ -257944,44 +259117,68 @@ "type": { "type": "string", "enum": [ - "Yards" + "Cm" ] } } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } } - } + ] }, "GeoMeta": { "description": "Geometry metadata.", @@ -258006,202 +259203,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -258218,230 +259429,332 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0], tag = $thing)\n |> line(end = [0, 5])\n |> line(end = [segEndX(thing), 0])\n |> line(end = [-20, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "segEndY", - "summary": "Compute the ending point of the provided line segment along the 'y' axis.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "ccw": { - "description": "arc's direction", - "type": "boolean" + "length": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "includeInSnippet": true, + "description": "The pitch angle in degrees. Must be used with `roll` and `yaw`. Must be between -360 and 360.", + "labelRequired": true + }, + { + "name": "yaw", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -258449,74 +259762,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A arc that is tangential to the last path segment", + "description": "An extruded arc.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "extrudeArc" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -258524,80 +259807,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "a complete arc", + "description": "Geometry metadata.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -258605,44 +259852,505 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A base path.", + "description": "Geometry metadata.", "type": "object", "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "CircleThreePoint" + "fillet" ] }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, "minItems": 2 }, "p2": { @@ -259074,38 +260782,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -259129,202 +260805,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -259341,254 +261031,620 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> line(end = [0, 3], tag = $thing)\n |> line(end = [-10, 0])\n |> line(end = [0, segEndY(thing)])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "segLen", - "summary": "Compute the length of the provided line segment.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "length": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } - }, - { - "description": "A arc that is tangential to the last path segment", + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "includeInSnippet": true, + "description": "The yaw angle in degrees. Must be used with `roll` and `pitch`. Must be between -360 and 360.", + "labelRequired": true + }, + { + "name": "axis", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Array_size_3_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 3, + "minItems": 3, + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", - "ccw", - "center", "from", "to", "type", @@ -259598,23 +261654,9 @@ "type": { "type": "string", "enum": [ - "TangentialArc" + "ToPoint" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, "from": { "description": "The from point.", "type": "array", @@ -259658,14 +261700,13 @@ } }, { - "description": "a complete arc", + "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", - "radius", "to", "type", "units" @@ -259674,7 +261715,7 @@ "type": { "type": "string", "enum": [ - "Circle" + "TangentialArcTo" ] }, "center": { @@ -259687,13 +261728,8 @@ "maxItems": 2, "minItems": 2 }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", + "description": "arc's direction", "type": "boolean" }, "from": { @@ -259739,14 +261775,13 @@ } }, { - "description": "A base path.", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", + "ccw", + "center", "from", - "p1", - "p2", - "p3", "to", "type", "units" @@ -259755,11 +261790,11 @@ "type": { "type": "string", "enum": [ - "CircleThreePoint" + "TangentialArc" ] }, - "p1": { - "description": "Point 1 of the circle", + "center": { + "description": "the arc's center", "type": "array", "items": { "type": "number", @@ -259768,8 +261803,12 @@ "maxItems": 2, "minItems": 2 }, - "p2": { - "description": "Point 2 of the circle", + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", "type": "array", "items": { "type": "number", @@ -259778,8 +261817,8 @@ "maxItems": 2, "minItems": 2 }, - "p3": { - "description": "Point 3 of the circle", + "to": { + "description": "The to point.", "type": "array", "items": { "type": "number", @@ -259788,13 +261827,166 @@ "maxItems": 2, "minItems": 2 }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, "maxItems": 2, "minItems": 2 }, @@ -260197,38 +262389,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -260252,202 +262412,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -260464,305 +262638,331 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %, $thing)\n |> tangentialArc({ offset = -120, radius = 5 }, %)\n |> angledLine({ angle = -60, length = segLen(thing) }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "segStart", - "summary": "Compute the starting point of the provided line segment.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "length": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "description": "The axis to rotate around. Must be used with `angle`.", + "labelRequired": true + }, + { + "name": "angle", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ { - "description": "A arc that is tangential to the last path segment", + "description": "An extrude plane.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "extrudePlane" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -260770,80 +262970,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "a complete arc", + "description": "An extruded arc.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "extrudeArc" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -260851,45 +263015,551 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A base path.", + "description": "Geometry metadata.", "type": "object", "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "CircleThreePoint" + "chamfer" ] }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, "p2": { "description": "Point 2 of the circle", @@ -261320,38 +263990,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -261375,202 +264013,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -261587,209 +264239,624 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "[number]", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "w = 15\ncube = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line(end = [w, 0], tag = $line1)\n |> line(end = [0, w], tag = $line2)\n |> line(end = [-w, 0], tag = $line3)\n |> line(end = [0, -w], tag = $line4)\n |> close()\n |> extrude(length = 5)\n\nfn cylinder(radius, tag) {\n return startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> circle({\n radius = radius,\n center = segStart(tag)\n }, %)\n |> extrude(length = radius)\n}\n\ncylinder(1, line1)\ncylinder(2, line2)\ncylinder(3, line3)\ncylinder(4, line4)" - ] - }, - { - "name": "segStartX", - "summary": "Compute the starting point of the provided line segment along the 'x' axis.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "ccw": { - "description": "arc's direction", - "type": "boolean" + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "description": "The angle to rotate in degrees. Must be used with `axis`. Must be between -360 and 360.", + "labelRequired": true + }, + { + "name": "global", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, "from": { "description": "The from point.", @@ -261834,7 +264901,7 @@ } }, { - "description": "A arc that is tangential to the last path segment", + "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", @@ -261849,7 +264916,7 @@ "type": { "type": "string", "enum": [ - "TangentialArc" + "TangentialArcTo" ] }, "center": { @@ -261909,14 +264976,13 @@ } }, { - "description": "a complete arc", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", - "radius", "to", "type", "units" @@ -261925,7 +264991,7 @@ "type": { "type": "string", "enum": [ - "Circle" + "TangentialArc" ] }, "center": { @@ -261938,13 +265004,8 @@ "maxItems": 2, "minItems": 2 }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", + "description": "arc's direction", "type": "boolean" }, "from": { @@ -261990,14 +265051,14 @@ } }, { - "description": "A base path.", + "description": "a complete arc", "type": "object", "required": [ "__geoMeta", + "ccw", + "center", "from", - "p1", - "p2", - "p3", + "radius", "to", "type", "units" @@ -262006,11 +265067,11 @@ "type": { "type": "string", "enum": [ - "CircleThreePoint" + "Circle" ] }, - "p1": { - "description": "Point 1 of the circle", + "center": { + "description": "the arc's center", "type": "array", "items": { "type": "number", @@ -262019,7 +265080,88 @@ "maxItems": 2, "minItems": 2 }, - "p2": { + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { "description": "Point 2 of the circle", "type": "array", "items": { @@ -262448,38 +265590,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -262503,202 +265613,216 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "SketchSurface": { + "description": "A sketch type.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, - "faceId": { - "description": "The id for the chamfer surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", + "yAxis": { + "description": "What should the face's Y axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "solid": { + "description": "The solid the face is on.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "Metadata": { "description": "Metadata.", "type": "object", @@ -262715,2878 +265839,2102 @@ ] } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0], tag = $thing)\n |> line(end = [0, 5])\n |> line(end = [20 - segStartX(thing), 0])\n |> line(end = [-20, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "segStartY", - "summary": "Compute the starting point of the provided line segment along the 'y' axis.", - "description": "", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sketch" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "path": { - "description": "The path the tag is on.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/Path" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "surface": { - "description": "The surface information for the tag.", + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/Sketch" } - ], + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "Path": { - "description": "A path.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "fillet" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { + "id": { + "description": "The id of the engine command that called this fillet.", "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "format": "uuid" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "radius": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { + "edgeId": { + "description": "The engine id of the edge to fillet.", "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "a complete arc", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "radius": { - "description": "the arc's radius", + "length": { "type": "number", "format": "double" }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" } - } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" } - } - }, - { - "type": "object", - "required": [ - "type" ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, "nullable": true }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", + "surface": { + "description": "The surface information for the tag.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/ExtrudeSurface" } - ] + ], + "nullable": true } } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + } + } + }, + "required": false, + "description": "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.", + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Solid", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } - ] - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> line(end = [0, 3], tag = $thing)\n |> line(end = [-10, 0])\n |> line(end = [0, 20 - segStartY(thing)])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "shell", - "summary": "Remove volume from a 3-dimensional shape such that a wall of the", - "description": "provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "solidSet", - "type": "SolidSet", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SolidSet", - "description": "A solid or a group of solids.", - "oneOf": [ - { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "type", - "units", - "value" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "solid" - ] - }, - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } } - }, - { - "type": [ - "object", - "array" - ], - "items": { - "$ref": "#/components/schemas/Solid" + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" }, - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "solids" - ] - } + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 } } - ], - "definitions": { - "ArtifactId": { - "type": "string", - "format": "uuid" + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + "maxItems": 2, + "minItems": 2 }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 }, - "maxItems": 3, - "minItems": 3 - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "a complete arc", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Circle" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true + "format": "double" }, - "y": { - "description": "The y coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] } } - ] - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } } } - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" } - } - ] - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } + ], + "nullable": true } } } - }, - "required": true, - "includeInSnippet": true, - "description": "Which solid (or solids) to shell out", - "labelRequired": false + } }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Rotate a pipe with roll, pitch, and yaw.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)\n |> rotate(roll = 10, pitch = 10, yaw = 90)", + "// Rotate a pipe about an axis with an angle.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)\n |> rotate(axis = [0, 0, 1.0], angle = 90)" + ] + }, + { + "name": "round", + "summary": "Round a number to the nearest integer.", + "description": "", + "tags": [ + "math" + ], + "keywordArguments": false, + "args": [ { - "name": "thickness", + "name": "num", "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "double", "type": "number", - "format": "double", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(endAbsolute = [12, 10])\n |> line(end = [round(7.02986), 0])\n |> yLineTo(0, %)\n |> close()\n\nextrude001 = extrude(sketch001, length = 5)" + ] + }, + { + "name": "scale", + "summary": "Scale a solid.", + "description": "By default the transform is applied in local sketch axis, therefore the origin will not move.\n\nIf you want to apply the transform in global space, set `global` to `true`. The origin of the model will move. If the model is not centered on origin and you scale globally it will look like the model moves and gets bigger at the same time. Say you have a square `(1,1) - (1,2) - (2,2) - (2,1)` and you scale by 2 globally it will become `(2,2) - (2,4)`...etc so the origin has moved from `(1.5, 1.5)` to `(2,2)`.", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "solid", + "type": "Solid", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, "definitions": { "ArtifactId": { "type": "string", @@ -267177,19 +269525,22 @@ }, "required": true, "includeInSnippet": true, - "description": "The thickness of the shell", - "labelRequired": true + "description": "The solid to scale.", + "labelRequired": false }, { - "name": "faces", - "type": "[FaceTag]", + "name": "scale", + "type": "[number]", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_of_FaceTag", + "title": "Array_size_3_of_double", "type": "array", "items": { - "$ref": "#/components/schemas/FaceTag" + "type": "number", + "format": "double" }, + "maxItems": 3, + "minItems": 3, "definitions": { "ArtifactId": { "type": "string", @@ -268775,219 +271126,23648 @@ "nullable": true } } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The scale factor for the x, y, and z axes.", + "labelRequired": true + }, + { + "name": "global", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" }, - "FaceTag": { - "description": "A tag for a face.", - "anyOf": [ + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ { - "$ref": "#/components/schemas/StartOrEnd" + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } }, { - "description": "A tag for the face.", - "allOf": [ - { - "$ref": "#/components/schemas/TagIdentifier" + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - ] + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } } ] }, - "StartOrEnd": { - "oneOf": [ - { - "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", "type": "string", - "enum": [ - "start" + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } ] }, - { - "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", - "type": "string", - "enum": [ - "end" + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } ] - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The faces you want removed", - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "SolidSet", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SolidSet", - "description": "A solid or a group of solids.", - "oneOf": [ - { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "type", - "units", - "value" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "solid" - ] - }, - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } } - } - }, - { - "type": [ - "object", - "array" - ], - "items": { - "$ref": "#/components/schemas/Solid" }, - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "solids" - ] - } - } - } - ], - "definitions": { - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "description": "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.", + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Solid", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Scale a pipe.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)\n |> scale(scale = [1.0, 1.0, 2.5])" + ] + }, + { + "name": "segAng", + "summary": "Compute the angle (in degrees) of the provided line segment.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [5, 10], tag = $seg01)\n |> line(end = [-10, 0])\n |> angledLine([segAng(seg01), 10], %)\n |> line(end = [-10, 0])\n |> angledLine([segAng(seg01), -15], %)\n |> close()\n\nexample = extrude(exampleSketch, length = 4)" + ] + }, + { + "name": "segEnd", + "summary": "Compute the ending point of the provided line segment.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "w = 15\ncube = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line(end = [w, 0], tag = $line1)\n |> line(end = [0, w], tag = $line2)\n |> line(end = [-w, 0], tag = $line3)\n |> line(end = [0, -w], tag = $line4)\n |> close()\n |> extrude(length = 5)\n\nfn cylinder(radius, tag) {\n return startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> circle({\n radius = radius,\n center = segEnd(tag)\n }, %)\n |> extrude(length = radius)\n}\n\ncylinder(1, line1)\ncylinder(2, line2)\ncylinder(3, line3)\ncylinder(4, line4)" + ] + }, + { + "name": "segEndX", + "summary": "Compute the ending point of the provided line segment along the 'x' axis.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0], tag = $thing)\n |> line(end = [0, 5])\n |> line(end = [segEndX(thing), 0])\n |> line(end = [-20, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "segEndY", + "summary": "Compute the ending point of the provided line segment along the 'y' axis.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> line(end = [0, 3], tag = $thing)\n |> line(end = [-10, 0])\n |> line(end = [0, segEndY(thing)])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "segLen", + "summary": "Compute the length of the provided line segment.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %, $thing)\n |> tangentialArc({ offset = -120, radius = 5 }, %)\n |> angledLine({ angle = -60, length = segLen(thing) }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "segStart", + "summary": "Compute the starting point of the provided line segment.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "w = 15\ncube = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line(end = [w, 0], tag = $line1)\n |> line(end = [0, w], tag = $line2)\n |> line(end = [-w, 0], tag = $line3)\n |> line(end = [0, -w], tag = $line4)\n |> close()\n |> extrude(length = 5)\n\nfn cylinder(radius, tag) {\n return startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> circle({\n radius = radius,\n center = segStart(tag)\n }, %)\n |> extrude(length = radius)\n}\n\ncylinder(1, line1)\ncylinder(2, line2)\ncylinder(3, line3)\ncylinder(4, line4)" + ] + }, + { + "name": "segStartX", + "summary": "Compute the starting point of the provided line segment along the 'x' axis.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0], tag = $thing)\n |> line(end = [0, 5])\n |> line(end = [20 - segStartX(thing), 0])\n |> line(end = [-20, 10])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "segStartY", + "summary": "Compute the starting point of the provided line segment along the 'y' axis.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> line(end = [0, 3], tag = $thing)\n |> line(end = [-10, 0])\n |> line(end = [0, 20 - segStartY(thing)])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "shell", + "summary": "Remove volume from a 3-dimensional shape such that a wall of the", + "description": "provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "solidSet", + "type": "SolidSet", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SolidSet", + "description": "A solid or a group of solids.", + "oneOf": [ + { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "type", + "units", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "solid" + ] + }, + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": [ + "object", + "array" + ], + "items": { + "$ref": "#/components/schemas/Solid" + }, + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "solids" + ] + } + } + } + ], + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "Which solid (or solids) to shell out", + "labelRequired": false + }, + { + "name": "thickness", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double", + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The thickness of the shell", + "labelRequired": true + }, + { + "name": "faces", + "type": "[FaceTag]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_of_FaceTag", + "type": "array", + "items": { + "$ref": "#/components/schemas/FaceTag" + }, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "FaceTag": { + "description": "A tag for a face.", + "anyOf": [ + { + "$ref": "#/components/schemas/StartOrEnd" + }, + { + "description": "A tag for the face.", + "allOf": [ + { + "$ref": "#/components/schemas/TagIdentifier" + } + ] + } + ] + }, + "StartOrEnd": { + "oneOf": [ + { + "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", + "type": "string", + "enum": [ + "start" + ] + }, + { + "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", + "type": "string", + "enum": [ + "end" + ] + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The faces you want removed", + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "SolidSet", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SolidSet", + "description": "A solid or a group of solids.", + "oneOf": [ + { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "type", + "units", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "solid" + ] + }, + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": [ + "object", + "array" + ], + "items": { + "$ref": "#/components/schemas/Solid" + }, + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "solids" + ] + } + } + } + ], + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Remove the end face for the extrusion.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0])\n |> close()\n |> extrude(length = 6)\n\n// Remove the end face for the extrusion.\nshell(firstSketch, faces = ['end'], thickness = 0.25)", + "// Remove the start face for the extrusion.\nfirstSketch = startSketchOn('-XZ')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0])\n |> close()\n |> extrude(length = 6)\n\n// Remove the start face for the extrusion.\nshell(firstSketch, faces = ['start'], thickness = 0.25)", + "// Remove a tagged face and the end face for the extrusion.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0], tag = $myTag)\n |> close()\n |> extrude(length = 6)\n\n// Remove a tagged face for the extrusion.\nshell(firstSketch, faces = [myTag], thickness = 0.25)", + "// Remove multiple faces at once.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0], tag = $myTag)\n |> close()\n |> extrude(length = 6)\n\n// Remove a tagged face and the end face for the extrusion.\nshell(firstSketch, faces = [myTag, 'end'], thickness = 0.25)", + "// Shell a sketch on face.\nsize = 100\ncase = startSketchOn('-XZ')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"case\" in the shell function to shell the entire object.\nshell(case, faces = ['start'], thickness = 5)", + "// Shell a sketch on face object on the end face.\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"thing1\" in the shell function to shell the end face of the object.\nshell(thing1, faces = ['end'], thickness = 5)", + "// Shell sketched on face objects on the end face, include all sketches to shell\n// the entire object.\n\n\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"thing1\" and \"thing2\" in the shell function to shell the end face of the object.\nshell([thing1, thing2], faces = ['end'], thickness = 5)" + ] + }, + { + "name": "sqrt", + "summary": "Compute the square root of a number.", + "description": "", + "tags": [ + "math" + ], + "keywordArguments": false, + "args": [ + { + "name": "num", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = sqrt(2500) }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "startProfileAt", + "summary": "Start a new profile at a given point.", + "description": "", + "tags": [], + "keywordArguments": false, + "args": [ + { + "name": "to", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + { + "name": "sketchSurface", + "type": "SketchSurface", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SketchSurface", + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ], + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + { + "name": "tag", + "type": "TagNode", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": false, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ "faceId", "id", "sourceRange", @@ -269121,49 +294901,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -269237,6 +294974,325 @@ } } }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([10, 10], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 23], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "startSketchAt", + "summary": "Start a new 2-dimensional sketch at a given point on the 'XY' plane.", + "description": "", + "tags": [], + "keywordArguments": false, + "args": [ + { + "name": "data", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -269989,6 +296045,38 @@ } ] }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -270012,6 +296100,17 @@ } } }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -270180,6 +296279,10 @@ } ] }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, "PlaneType": { "description": "Type for a plane.", "oneOf": [ @@ -270316,56 +296419,106 @@ } } }, - "EdgeCut": { - "description": "A fillet or a chamfer.", + "ExtrudeSurface": { + "description": "An extrude surface.", "oneOf": [ { - "description": "A fillet.", + "description": "An extrude plane.", "type": "object", "required": [ - "edgeId", + "faceId", "id", - "radius", + "sourceRange", "type" ], "properties": { "type": { "type": "string", "enum": [ - "fillet" + "extrudePlane" ] }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, "id": { - "description": "The id of the engine command that called this fillet.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "radius": { - "type": "number", - "format": "double" + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] }, - "edgeId": { - "description": "The engine id of the edge to fillet.", + "faceId": { + "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "tag": { + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } }, { - "description": "A chamfer.", + "description": "Geometry metadata.", "type": "object", "required": [ - "edgeId", + "faceId", "id", - "length", + "sourceRange", "type" ], "properties": { @@ -270375,32 +296528,155 @@ "chamfer" ] }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, "id": { - "description": "The id of the engine command that called this chamfer.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "length": { - "type": "number", - "format": "double" + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", + "faceId": { + "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "tag": { + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } } ] }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, "BasePath": { "description": "A base path.", "type": "object", @@ -270516,6 +296792,91 @@ "nullable": true } } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] } } }, @@ -270524,278 +296885,136 @@ "labelRequired": true }, "unpublished": false, - "deprecated": false, - "examples": [ - "// Remove the end face for the extrusion.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0])\n |> close()\n |> extrude(length = 6)\n\n// Remove the end face for the extrusion.\nshell(firstSketch, faces = ['end'], thickness = 0.25)", - "// Remove the start face for the extrusion.\nfirstSketch = startSketchOn('-XZ')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0])\n |> close()\n |> extrude(length = 6)\n\n// Remove the start face for the extrusion.\nshell(firstSketch, faces = ['start'], thickness = 0.25)", - "// Remove a tagged face and the end face for the extrusion.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0], tag = $myTag)\n |> close()\n |> extrude(length = 6)\n\n// Remove a tagged face for the extrusion.\nshell(firstSketch, faces = [myTag], thickness = 0.25)", - "// Remove multiple faces at once.\nfirstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line(end = [24, 0])\n |> line(end = [0, -24])\n |> line(end = [-24, 0], tag = $myTag)\n |> close()\n |> extrude(length = 6)\n\n// Remove a tagged face and the end face for the extrusion.\nshell(firstSketch, faces = [myTag, 'end'], thickness = 0.25)", - "// Shell a sketch on face.\nsize = 100\ncase = startSketchOn('-XZ')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"case\" in the shell function to shell the entire object.\nshell(case, faces = ['start'], thickness = 5)", - "// Shell a sketch on face object on the end face.\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"thing1\" in the shell function to shell the end face of the object.\nshell(thing1, faces = ['end'], thickness = 5)", - "// Shell sketched on face objects on the end face, include all sketches to shell\n// the entire object.\n\n\nsize = 100\ncase = startSketchOn('XY')\n |> startProfileAt([-size, -size], %)\n |> line(end = [2 * size, 0])\n |> line(end = [0, 2 * size])\n |> tangentialArcTo([-size, size], %)\n |> close()\n |> extrude(length = 65)\n\nthing1 = startSketchOn(case, 'end')\n |> circle({\n center = [-size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\nthing2 = startSketchOn(case, 'end')\n |> circle({\n center = [size / 2, -size / 2],\n radius = 25\n }, %)\n |> extrude(length = 50)\n\n// We put \"thing1\" and \"thing2\" in the shell function to shell the end face of the object.\nshell([thing1, thing2], faces = ['end'], thickness = 5)" - ] - }, - { - "name": "sqrt", - "summary": "Compute the square root of a number.", - "description": "", - "tags": [ - "math" - ], - "keywordArguments": false, - "args": [ - { - "name": "num", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, + "deprecated": true, "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = sqrt(2500) }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + "exampleSketch = startSketchAt([0, 0])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchAt([10, 10])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", + "exampleSketch = startSketchAt([-10, 23])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" ] }, { - "name": "startProfileAt", - "summary": "Start a new profile at a given point.", - "description": "", + "name": "startSketchOn", + "summary": "Start a new 2-dimensional sketch on a specific plane or face.", + "description": "### Sketch on Face Behavior\n\nThere are some important behaviors to understand when sketching on a face:\n\nThe resulting sketch will _include_ the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.\n\nThis is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.\n\nThe point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.", "tags": [], "keywordArguments": false, "args": [ { - "name": "to", - "type": "[number]", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "sketchSurface", - "type": "SketchSurface", + "name": "data", + "type": "SketchData", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SketchSurface", - "description": "A sketch type.", - "oneOf": [ + "title": "SketchData", + "description": "Data for start sketch on. You can start a sketch on a plane or an solid.", + "anyOf": [ { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { + "$ref": "#/components/schemas/PlaneData" + }, + { + "$ref": "#/components/schemas/Plane" + }, + { + "$ref": "#/components/schemas/Solid" + } + ], + "definitions": { + "PlaneData": { + "description": "Orientation data that can be used to construct a plane, not a plane in itself.", + "oneOf": [ + { + "description": "The XY plane.", "type": "string", "enum": [ - "plane" + "XY" ] }, - "id": { - "description": "The id of the plane.", + { + "description": "The opposite side of the XY plane.", "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } + "enum": [ + "-XY" ] }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { + { + "description": "The XZ plane.", "type": "string", "enum": [ - "face" + "XZ" ] }, - "id": { - "description": "The id of the face.", + { + "description": "The opposite side of the XZ plane.", "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } + "enum": [ + "-XZ" ] }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ], - "definitions": { - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ { + "description": "The YZ plane.", "type": "string", "enum": [ - "XY", - "XZ", "YZ" ] }, { - "description": "A custom plane.", + "description": "The opposite side of the YZ plane.", "type": "string", "enum": [ - "Custom" + "-YZ" ] + }, + { + "description": "A defined plane.", + "type": "object", + "required": [ + "plane" + ], + "properties": { + "plane": { + "type": "object", + "required": [ + "origin", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + } + } + } + }, + "additionalProperties": false } ] }, @@ -270821,6 +297040,104 @@ } } }, + "Plane": { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, "UnitLen": { "description": "A unit of length.", "oneOf": [ @@ -272368,17 +298685,213 @@ }, { "name": "tag", - "type": "TagNode", + "type": "FaceTag", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_TagDeclarator", + "title": "Nullable_FaceTag", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/FaceTag" } ], "nullable": true, "definitions": { + "PlaneData": { + "description": "Orientation data that can be used to construct a plane, not a plane in itself.", + "oneOf": [ + { + "description": "The XY plane.", + "type": "string", + "enum": [ + "XY" + ] + }, + { + "description": "The opposite side of the XY plane.", + "type": "string", + "enum": [ + "-XY" + ] + }, + { + "description": "The XZ plane.", + "type": "string", + "enum": [ + "XZ" + ] + }, + { + "description": "The opposite side of the XZ plane.", + "type": "string", + "enum": [ + "-XZ" + ] + }, + { + "description": "The YZ plane.", + "type": "string", + "enum": [ + "YZ" + ] + }, + { + "description": "The opposite side of the YZ plane.", + "type": "string", + "enum": [ + "-YZ" + ] + }, + { + "description": "A defined plane.", + "type": "object", + "required": [ + "plane" + ], + "properties": { + "plane": { + "type": "object", + "required": [ + "origin", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + } + } + } + }, + "additionalProperties": false + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Plane": { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, "ArtifactId": { "type": "string", "format": "uuid" @@ -272403,28 +298916,6 @@ } ] }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, "UnitLen": { "description": "A unit of length.", "oneOf": [ @@ -273657,1060 +300148,572 @@ "allOf": [ { "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" + } + ] }, - "tag": { + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "A chamfer.", + "description": "A face.", "type": "object", "required": [ - "edgeId", + "__meta", + "artifactId", "id", - "length", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "face" ] }, "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": false, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "a complete arc", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Circle" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] + } } } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "x": { - "description": "The x coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } } - } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "FaceTag": { + "description": "A tag for a face.", + "anyOf": [ + { + "$ref": "#/components/schemas/StartOrEnd" + }, + { + "description": "A tag for the face.", + "allOf": [ + { + "$ref": "#/components/schemas/TagIdentifier" + } + ] + } + ] + }, + "StartOrEnd": { + "oneOf": [ + { + "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", + "type": "string", + "enum": [ + "start" + ] + }, + { + "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", + "type": "string", + "enum": [ + "end" + ] + } + ] + } + } + }, + "required": false, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "SketchSurface", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SketchSurface", + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" } - } + ] }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" } - } + ] }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } + } + } + ], + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } ] }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, "UnitLen": { "description": "A unit of length.", "oneOf": [ @@ -274795,290 +300798,10 @@ "enum": [ "Yards" ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" + } + } } - } + ] }, "Metadata": { "description": "Metadata.", @@ -275097,6 +300820,17 @@ } } }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "Solid": { "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", @@ -275359,6 +301093,38 @@ } ] }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -275432,325 +301198,6 @@ } } }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([10, 10], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 23], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "startSketchAt", - "summary": "Start a new 2-dimensional sketch at a given point on the 'XY' plane.", - "description": "", - "tags": [], - "keywordArguments": false, - "args": [ - { - "name": "data", - "type": "[number]", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -276224,152 +301671,12 @@ "format": "double", "nullable": true }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, "from": { "description": "The from point.", "type": "array", @@ -276411,498 +301718,130 @@ ] } } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ { - "description": "A plane.", + "description": "A base path.", "type": "object", "required": [ - "__meta", - "artifactId", - "id", - "origin", + "__geoMeta", + "from", + "to", "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" + "units" ], "properties": { "type": { "type": "string", "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } + "Base" ] }, - "value": { - "$ref": "#/components/schemas/PlaneType" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "yAxis": { - "description": "What should the plane's Y axis be?", + "tag": { + "description": "The tag of the path.", "allOf": [ { - "$ref": "#/components/schemas/Point3d" + "$ref": "#/components/schemas/TagDeclarator" } - ] + ], + "nullable": true }, - "zAxis": { - "description": "The z-axis (normal).", + "__geoMeta": { + "description": "Metadata.", "allOf": [ { - "$ref": "#/components/schemas/Point3d" + "$ref": "#/components/schemas/GeoMeta" } ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } } } }, { - "description": "A face.", + "description": "A circular arc, not necessarily tangential to the current point.", "type": "object", "required": [ - "__meta", - "artifactId", - "id", - "solid", + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" + "units" ], "properties": { "type": { "type": "string", "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } + "Arc" ] }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" }, - "__meta": { + "from": { + "description": "The from point.", "type": "array", "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { - "description": "The tag.", + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -276910,231 +301849,209 @@ ], "nullable": true }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", + "__geoMeta": { + "description": "Metadata.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/GeoMeta" } ] } } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ { - "description": "An extruded arc.", + "description": "A plane.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "extrudeArc" + "plane" ] }, - "faceId": { - "description": "The face id for the extrude plane.", + "id": { + "description": "The id of the plane.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "$ref": "#/components/schemas/PlaneType" }, - "sourceRange": { - "description": "The source range.", + "origin": { + "description": "Origin of the plane.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" }, - "tag": { - "description": "The tag.", + "xAxis": { + "description": "What should the plane's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/Point3d" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] }, - "sourceRange": { - "description": "The source range.", + "zAxis": { + "description": "The z-axis (normal).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, { - "description": "Geometry metadata.", + "description": "A face.", "type": "object", "required": [ - "faceId", + "__meta", + "artifactId", "id", - "sourceRange", - "type" + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" ], "properties": { "type": { "type": "string", "enum": [ - "fillet" + "face" ] }, - "faceId": { - "description": "The id for the fillet surface.", + "id": { + "description": "The id of the face.", "type": "string", "format": "uuid" }, - "tag": { - "description": "The tag.", + "artifactId": { + "description": "The artifact ID.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/ArtifactId" } - ], - "nullable": true + ] }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "value": { + "description": "The tag of the face.", + "type": "string" }, - "sourceRange": { - "description": "The source range.", + "xAxis": { + "description": "What should the face's X axis be?", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" } ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } } ] }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, "BasePath": { "description": "A base path.", "type": "object", @@ -277343,256 +302260,759 @@ "labelRequired": true }, "unpublished": false, - "deprecated": true, + "deprecated": false, "examples": [ - "exampleSketch = startSketchAt([0, 0])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchAt([10, 10])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)", - "exampleSketch = startSketchAt([-10, 23])\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)\n\nexampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line(end = [6, 0])\n |> line(end = [0, 6])\n |> line(end = [-6, 0])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", + "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10], tag = $sketchingFace)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)\n\nexampleSketch002 = startSketchOn(example, sketchingFace)\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close(tag = $sketchingFace002)\n\nexample002 = extrude(exampleSketch002, length = 10)\n\nexampleSketch003 = startSketchOn(example002, sketchingFace002)\n |> startProfileAt([-8, 12], %)\n |> line(end = [0, 6])\n |> line(end = [6, 0])\n |> line(end = [0, -6])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", + "exampleSketch = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line(end = [2, 0])\n |> line(end = [0, -6])\n |> line(end = [4, -6])\n |> line(end = [0, -6])\n |> line(end = [-3.75, -4.5])\n |> line(end = [0, -5.5])\n |> line(end = [-2, 0])\n |> close()\n\nexample = revolve({ axis = 'y', angle = 180 }, exampleSketch)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)", + "a1 = startSketchOn({\n plane = {\n origin = { x = 0, y = 0, z = 0 },\n xAxis = { x = 1, y = 0, z = 0 },\n yAxis = { x = 0, y = 1, z = 0 },\n zAxis = { x = 0, y = 0, z = 1 }\n }\n })\n |> startProfileAt([0, 0], %)\n |> line(end = [100.0, 0])\n |> yLine(-100.0, %)\n |> xLine(-100.0, %)\n |> yLine(100.0, %)\n |> close()\n |> extrude(length = 3.14)" ] }, { - "name": "startSketchOn", - "summary": "Start a new 2-dimensional sketch on a specific plane or face.", - "description": "### Sketch on Face Behavior\n\nThere are some important behaviors to understand when sketching on a face:\n\nThe resulting sketch will _include_ the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.\n\nThis is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.\n\nThe point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.", + "name": "sweep", + "summary": "Extrude a sketch along a path.", + "description": "This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its path. This is useful for creating more complex shapes that can't be created with a simple extrusion.", "tags": [], - "keywordArguments": false, + "keywordArguments": true, "args": [ { - "name": "data", - "type": "SketchData", + "name": "sketch", + "type": "Sketch", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SketchData", - "description": "Data for start sketch on. You can start a sketch on a plane or an solid.", - "anyOf": [ - { - "$ref": "#/components/schemas/PlaneData" + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" }, - { - "$ref": "#/components/schemas/Plane" + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } }, - { - "$ref": "#/components/schemas/Solid" - } - ], - "definitions": { - "PlaneData": { - "description": "Orientation data that can be used to construct a plane, not a plane in itself.", - "oneOf": [ - { - "description": "The XY plane.", - "type": "string", - "enum": [ - "XY" - ] - }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ { - "description": "The opposite side of the XY plane.", - "type": "string", - "enum": [ - "-XY" - ] - }, + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ { - "description": "The XZ plane.", - "type": "string", - "enum": [ - "XZ" - ] - }, + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ { - "description": "The opposite side of the XZ plane.", - "type": "string", - "enum": [ - "-XZ" - ] - }, + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ { - "description": "The YZ plane.", - "type": "string", - "enum": [ - "YZ" - ] + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } }, { - "description": "The opposite side of the YZ plane.", - "type": "string", - "enum": [ - "-YZ" - ] + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } }, { - "description": "A defined plane.", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ - "plane" + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" ], "properties": { - "plane": { - "type": "object", - "required": [ - "origin", - "xAxis", - "yAxis", - "zAxis" + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } ], - "properties": { - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane’s X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane’s Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" } - } + ] } - }, - "additionalProperties": false - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Plane": { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" + } }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" + } }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ] + } }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ] + } }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ] + } }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } - } - } - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] }, { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } } ] }, @@ -277685,13 +303105,51 @@ } ] }, - "Metadata": { - "description": "Metadata.", + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", "type": "object", "required": [ + "id", "sourceRange" ], "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, "sourceRange": { "description": "The source range.", "allOf": [ @@ -277713,6 +303171,237 @@ "maxItems": 3, "minItems": 3 }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, "Solid": { "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", @@ -277975,38 +303664,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -278080,6 +303737,230 @@ } } }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The sketch that should be swept in space", + "labelRequired": false + }, + { + "name": "path", + "type": "SweepPath", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SweepPath", + "description": "A path to sweep along.", + "anyOf": [ + { + "$ref": "#/components/schemas/Sketch" + }, + { + "$ref": "#/components/schemas/Helix" + } + ], + "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -278743,6 +304624,127 @@ } ] }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -278766,6 +304768,17 @@ } } }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -278934,323 +304947,27 @@ } ] }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } + "ArtifactId": { + "type": "string", + "format": "uuid" }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "tag", - "type": "FaceTag", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_FaceTag", - "allOf": [ - { - "$ref": "#/components/schemas/FaceTag" - } - ], - "nullable": true, - "definitions": { - "PlaneData": { - "description": "Orientation data that can be used to construct a plane, not a plane in itself.", + "PlaneType": { + "description": "Type for a plane.", "oneOf": [ { - "description": "The XY plane.", - "type": "string", - "enum": [ - "XY" - ] - }, - { - "description": "The opposite side of the XY plane.", - "type": "string", - "enum": [ - "-XY" - ] - }, - { - "description": "The XZ plane.", - "type": "string", - "enum": [ - "XZ" - ] - }, - { - "description": "The opposite side of the XZ plane.", - "type": "string", - "enum": [ - "-XZ" - ] - }, - { - "description": "The YZ plane.", "type": "string", "enum": [ + "XY", + "XZ", "YZ" ] }, { - "description": "The opposite side of the YZ plane.", + "description": "A custom plane.", "type": "string", "enum": [ - "-YZ" + "Custom" ] - }, - { - "description": "A defined plane.", - "type": "object", - "required": [ - "plane" - ], - "properties": { - "plane": { - "type": "object", - "required": [ - "origin", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane’s X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane’s Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - } - } - } - }, - "additionalProperties": false } ] }, @@ -279276,193 +304993,6 @@ } } }, - "Plane": { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } - } - } - ] - }, "Metadata": { "description": "Metadata.", "type": "object", @@ -279480,17 +305010,6 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "Solid": { "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", @@ -279753,38 +305272,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -279858,6 +305345,274 @@ } } }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "Helix": { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "artifactId", + "ccw", + "revolutions", + "units", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The path to sweep the sketch along", + "labelRequired": true + }, + { + "name": "sectional", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -280521,6 +306276,127 @@ } ] }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -280544,6 +306420,17 @@ } } }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -280674,2188 +306561,1862 @@ "$ref": "#/components/schemas/Point3d" } ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - }, - "FaceTag": { - "description": "A tag for a face.", - "anyOf": [ - { - "$ref": "#/components/schemas/StartOrEnd" - }, - { - "description": "A tag for the face.", - "allOf": [ - { - "$ref": "#/components/schemas/TagIdentifier" - } - ] - } - ] - }, - "StartOrEnd": { - "oneOf": [ - { - "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", - "type": "string", - "enum": [ - "start" - ] - }, - { - "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", - "type": "string", - "enum": [ - "end" - ] - } - ] - } - } - }, - "required": false, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "SketchSurface", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SketchSurface", - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ], - "definitions": { - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" } - } - } - ] - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] + } } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 }, - "maxItems": 3, - "minItems": 3 - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } } } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - } - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + ] + }, + "Helix": { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "artifactId", + "ccw", + "revolutions", + "units", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } } } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + } + }, + "required": false, + "description": "If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components.", + "labelRequired": true + }, + { + "name": "tolerance", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_double", + "type": "number", + "format": "double", + "nullable": true, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "a complete arc", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Circle" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { + "x": { + "description": "The x coordinate.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "x": { + "description": "The x coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { + "y": { + "description": "The y coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "radius": { + "description": "Radius of the circle that this arc is drawn on.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } } - } - ] - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] } } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] } } - } - } - ] - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ], - "nullable": true + } } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10])\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 5)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)\n\nexampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line(end = [6, 0])\n |> line(end = [0, 6])\n |> line(end = [-6, 0])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", - "exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0])\n |> line(end = [0, 10], tag = $sketchingFace)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)\n\nexampleSketch002 = startSketchOn(example, sketchingFace)\n |> startProfileAt([1, 1], %)\n |> line(end = [8, 0])\n |> line(end = [0, 8])\n |> line(end = [-8, 0])\n |> close(tag = $sketchingFace002)\n\nexample002 = extrude(exampleSketch002, length = 10)\n\nexampleSketch003 = startSketchOn(example002, sketchingFace002)\n |> startProfileAt([-8, 12], %)\n |> line(end = [0, 6])\n |> line(end = [6, 0])\n |> line(end = [0, -6])\n |> close()\n\nexample003 = extrude(exampleSketch003, length = 5)", - "exampleSketch = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line(end = [2, 0])\n |> line(end = [0, -6])\n |> line(end = [4, -6])\n |> line(end = [0, -6])\n |> line(end = [-3.75, -4.5])\n |> line(end = [0, -5.5])\n |> line(end = [-2, 0])\n |> close()\n\nexample = revolve({ axis = 'y', angle = 180 }, exampleSketch)\n\nexampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line(end = [0, 5])\n |> line(end = [5, 0])\n |> line(end = [0, -5])\n |> close()\n\nexample002 = extrude(exampleSketch002, length = 5)", - "a1 = startSketchOn({\n plane = {\n origin = { x = 0, y = 0, z = 0 },\n xAxis = { x = 1, y = 0, z = 0 },\n yAxis = { x = 0, y = 1, z = 0 },\n zAxis = { x = 0, y = 0, z = 1 }\n }\n })\n |> startProfileAt([0, 0], %)\n |> line(end = [100.0, 0])\n |> yLine(-100.0, %)\n |> xLine(-100.0, %)\n |> yLine(100.0, %)\n |> close()\n |> extrude(length = 3.14)" - ] - }, - { - "name": "sweep", - "summary": "Extrude a sketch along a path.", - "description": "This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its path. This is useful for creating more complex shapes that can't be created with a simple extrusion.", - "tags": [], - "keywordArguments": true, - "args": [ - { - "name": "sketch", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { "type": "string", "format": "uuid" }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, { - "$ref": "#/components/schemas/BasePath" + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] } ] }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", + "Point3d": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } } }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + } }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - } - }, - "definitions": { - "Path": { - "description": "A path.", + }, + "ExtrudeSurface": { + "description": "An extrude surface.", "oneOf": [ { - "description": "A path that goes to a point.", + "description": "An extrude plane.", "type": "object", "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "ToPoint" + "extrudePlane" ] }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -282863,74 +308424,44 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A arc that is tangential to the last path segment that goes to a point", + "description": "An extruded arc.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArcTo" + "extrudeArc" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -282938,74 +308469,89 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } }, { - "description": "A arc that is tangential to the last path segment", + "description": "Geometry metadata.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "faceId", + "id", + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" }, - "ccw": { - "description": "arc's direction", - "type": "boolean" + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -283013,1266 +308559,2073 @@ ], "nullable": true }, - "__geoMeta": { - "description": "Metadata.", + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/GeoMeta" + "$ref": "#/components/schemas/SourceRange" } ] } } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ { - "description": "a complete arc", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", + "edgeId", + "id", "radius", - "to", - "type", - "units" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "fillet" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, "radius": { - "description": "the arc's radius", "type": "number", "format": "double" }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "A base path.", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "CircleThreePoint" + "chamfer" ] }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "length": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } + } + ] + }, + "Helix": { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "artifactId", + "ccw", + "revolutions", + "units", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + } + }, + "required": false, + "description": "Tolerance for this operation", + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Solid", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true + "format": "double" }, - "y": { - "description": "The y coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] + "format": "double" }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { "type": "number", "format": "double" }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + "maxItems": 2, + "minItems": 2 }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "value": { - "$ref": "#/components/schemas/PlaneType" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" } - } + ] } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "value": { - "description": "The tag of the face.", - "type": "string" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } } - } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] } } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } } } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Create a pipe using a sweep.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)", + "// Create a spring by sweeping around a helix path.\n\n\n// Create a helix around the Z axis.\nhelixPath = helix(\n angleStart = 0,\n ccw = true,\n revolutions = 4,\n length = 10,\n radius = 5,\n axis = 'Z',\n)\n\n// Create a spring by sweeping around the helix path.\nspringSketch = startSketchOn('YZ')\n |> circle({ center = [0, 0], radius = 1 }, %)\n |> sweep(path = helixPath)" + ] + }, + { + "name": "tangentToEnd", + "summary": "Returns the angle coming out of the end of the segment in degrees.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { "TagEngineInfo": { "description": "Engine information for a tag.", "type": "object", @@ -284311,114 +310664,6 @@ } } }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The sketch that should be swept in space", - "labelRequired": false - }, - { - "name": "path", - "type": "SweepPath", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "SweepPath", - "description": "A path to sweep along.", - "anyOf": [ - { - "$ref": "#/components/schemas/Sketch" - }, - { - "$ref": "#/components/schemas/Helix" - } - ], - "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -285237,314 +311482,6 @@ "maxItems": 3, "minItems": 3 }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, "ExtrudeSurface": { "description": "An extrude surface.", "oneOf": [ @@ -285684,251 +311621,12 @@ } }, { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", + "description": "Geometry metadata.", "type": "object", "required": [ - "edgeId", + "faceId", "id", - "radius", + "sourceRange", "type" ], "properties": { @@ -285938,138 +311636,202 @@ "fillet" ] }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", + "faceId": { + "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "tag": { + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] }, "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "tag": { + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/TagDeclarator" + "$ref": "#/components/schemas/SourceRange" } - ], - "nullable": true + ] } } } ] }, - "Helix": { - "description": "A helix.", + "Metadata": { + "description": "Metadata.", "type": "object", "required": [ - "__meta", - "angleStart", - "artifactId", - "ccw", - "revolutions", - "units", - "value" + "sourceRange" ], "properties": { - "value": { - "description": "The id of the helix.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/ArtifactId" + "$ref": "#/components/schemas/SourceRange" } ] - }, - "revolutions": { - "description": "Number of revolutions.", + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The line segment being queried by its tag", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Horizontal pill.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> tangentialArcToRelative([0, 10], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> close()\n\npillExtrude = extrude(pillSketch, length = 10)", + "// Vertical pill. Use absolute coordinate for arc.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 20])\n |> tangentialArcTo([10, 20], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([-10, 0], %)\n |> close()\n\npillExtrude = extrude(pillSketch, length = 10)", + "rectangleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0], tag = $seg1)\n |> angledLine({\n angle = tangentToEnd(seg1),\n length = 10\n }, %)\n |> line(end = [0, 10])\n |> line(end = [-20, 0])\n |> close()\n\nrectangleExtrude = extrude(rectangleSketch, length = 10)", + "bottom = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1)\n |> angledLine([tangentToEnd(arc1), 20], %)\n |> close()", + "circSketch = startSketchOn(\"XY\")\n |> circle({ center = [0, 0], radius = 3 }, %, $circ)\n\ntriangleSketch = startSketchOn(\"XY\")\n |> startProfileAt([-5, 0], %)\n |> angledLine([tangentToEnd(circ), 10], %)\n |> line(end = [-15, 0])\n |> close()" + ] + }, + { + "name": "tangentialArc", + "summary": "Draw a curved line segment along part of an imaginary circle.", + "description": "The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.", + "tags": [], + "keywordArguments": false, + "args": [ + { + "name": "data", + "type": "TangentialArcData", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TangentialArcData", + "description": "Data to draw a tangential arc.", + "anyOf": [ + { + "type": "object", + "required": [ + "offset", + "radius" + ], + "properties": { + "radius": { + "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", "type": "number", "format": "double" }, - "angleStart": { - "description": "Start angle (in degrees).", + "offset": { + "description": "Offset of the arc, in degrees.", "type": "number", "format": "double" - }, - "ccw": { - "description": "Is the helix rotation counter clockwise?", - "type": "boolean" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } } } } - } + ] }, "required": true, "includeInSnippet": true, - "description": "The path to sweep the sketch along", "labelRequired": true }, { - "name": "sectional", - "type": "bool", + "name": "sketch", + "type": "Sketch", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_Boolean", - "type": "boolean", - "nullable": true, + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, "definitions": { "Path": { "description": "A path.", @@ -287655,72 +313417,24 @@ } } ] - }, - "Helix": { - "description": "A helix.", - "type": "object", - "required": [ - "__meta", - "angleStart", - "artifactId", - "ccw", - "revolutions", - "units", - "value" - ], - "properties": { - "value": { - "description": "The id of the helix.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "revolutions": { - "description": "Number of revolutions.", - "type": "number", - "format": "double" - }, - "angleStart": { - "description": "Start angle (in degrees).", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "Is the helix rotation counter clockwise?", - "type": "boolean" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } } } }, - "required": false, - "description": "If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components.", + "required": true, + "includeInSnippet": true, "labelRequired": true }, { - "name": "tolerance", - "type": "number", + "name": "tag", + "type": "TagNode", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_double", - "type": "number", - "format": "double", + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], "nullable": true, "definitions": { "Path": { @@ -289307,134 +315021,78 @@ } } ] - }, - "Helix": { - "description": "A helix.", - "type": "object", - "required": [ - "__meta", - "angleStart", - "artifactId", - "ccw", - "revolutions", - "units", - "value" - ], - "properties": { - "value": { - "description": "The id of the helix.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "revolutions": { - "description": "Number of revolutions.", - "type": "number", - "format": "double" - }, - "angleStart": { - "description": "Start angle (in degrees).", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "Is the helix rotation counter clockwise?", - "type": "boolean" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } } } }, "required": false, - "description": "Tolerance for this operation", "labelRequired": true } ], "returnValue": { "name": "", - "type": "Solid", + "type": "Sketch", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Solid", - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", "required": [ "__meta", "artifactId", - "height", "id", - "sketch", - "units", - "value" + "on", + "originalId", + "paths", + "start", + "units" ], "properties": { "id": { - "description": "The id of the solid.", + "description": "The id of the sketch (this will change when the engine's reference to it changes).", "type": "string", "format": "uuid" }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", "allOf": [ { - "$ref": "#/components/schemas/ArtifactId" + "$ref": "#/components/schemas/SketchSurface" } ] }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", + "start": { + "description": "The starting path.", "allOf": [ { - "$ref": "#/components/schemas/Sketch" + "$ref": "#/components/schemas/BasePath" } ] }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] }, - "endCapId": { - "description": "The id of the extrusion end cap", + "originalId": { "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } + "format": "uuid" }, "units": { "$ref": "#/components/schemas/UnitLen" @@ -289448,311 +315106,6 @@ } }, "definitions": { - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, "Path": { "description": "A path.", "oneOf": [ @@ -290505,6 +315858,38 @@ } ] }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -290528,6 +315913,17 @@ } } }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -290696,6 +316092,10 @@ } ] }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, "PlaneType": { "description": "Type for a plane.", "oneOf": [ @@ -290832,56 +316232,106 @@ } } }, - "EdgeCut": { - "description": "A fillet or a chamfer.", + "ExtrudeSurface": { + "description": "An extrude surface.", "oneOf": [ { - "description": "A fillet.", + "description": "An extrude plane.", "type": "object", "required": [ - "edgeId", + "faceId", "id", - "radius", + "sourceRange", "type" ], "properties": { "type": { "type": "string", "enum": [ - "fillet" + "extrudePlane" ] }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, "id": { - "description": "The id of the engine command that called this fillet.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "radius": { - "type": "number", - "format": "double" + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] }, - "edgeId": { - "description": "The engine id of the edge to fillet.", + "faceId": { + "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "tag": { + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } }, { - "description": "A chamfer.", + "description": "Geometry metadata.", "type": "object", "required": [ - "edgeId", + "faceId", "id", - "length", + "sourceRange", "type" ], "properties": { @@ -290891,32 +316341,155 @@ "chamfer" ] }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, "id": { - "description": "The id of the engine command that called this chamfer.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "length": { - "type": "number", - "format": "double" + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", + "faceId": { + "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "tag": { + "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } } ] }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, "BasePath": { "description": "A base path.", "type": "object", @@ -291032,6 +316605,91 @@ "nullable": true } } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] } } }, @@ -291042,41 +316700,105 @@ "unpublished": false, "deprecated": false, "examples": [ - "// Create a pipe using a sweep.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)", - "// Create a spring by sweeping around a helix path.\n\n\n// Create a helix around the Z axis.\nhelixPath = helix(\n angleStart = 0,\n ccw = true,\n revolutions = 4,\n length = 10,\n radius = 5,\n axis = 'Z',\n)\n\n// Create a spring by sweeping around the helix path.\nspringSketch = startSketchOn('YZ')\n |> circle({ center = [0, 0], radius = 1 }, %)\n |> sweep(path = helixPath)" + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArc({ radius = 10, offset = -120 }, %)\n |> angledLine({ angle = -60, length = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" ] }, { - "name": "tangentToEnd", - "summary": "Returns the angle coming out of the end of the segment in degrees.", - "description": "", + "name": "tangentialArcTo", + "summary": "Starting at the current sketch's origin, draw a curved line segment along", + "description": "some part of an imaginary circle until it reaches the desired (x, y) coordinates.", "tags": [], - "keywordArguments": true, + "keywordArguments": false, "args": [ { - "name": "tag", - "type": "TagIdentifier", + "name": "to", + "type": "[number]", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + { + "name": "sketch", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", "required": [ "__meta", - "value" + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" ], "properties": { - "value": { - "type": "string" + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" }, - "info": { + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", "allOf": [ { - "$ref": "#/components/schemas/TagEngineInfo" + "$ref": "#/components/schemas/SketchSurface" } - ], - "nullable": true + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "__meta": { + "description": "Metadata.", "type": "array", "items": { "$ref": "#/components/schemas/Metadata" @@ -291084,44 +316806,6 @@ } }, "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, "Path": { "description": "A path.", "oneOf": [ @@ -291880,66 +317564,374 @@ "value" ], "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } }, - "GeoMeta": { - "description": "Geometry metadata.", + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ + "__meta", + "artifactId", + "height", "id", - "sourceRange" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the geometry.", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "sourceRange": { - "description": "The source range.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" } ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "ExtrudeSurface": { "description": "An extrude surface.", "oneOf": [ @@ -292125,171 +318117,298 @@ } ] }, - "Metadata": { - "description": "Metadata.", + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", "required": [ - "sourceRange" + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" ], "properties": { - "sourceRange": { - "description": "The source range.", + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" } ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } } - } - } - }, - "required": true, - "includeInSnippet": true, - "description": "The line segment being queried by its tag", - "labelRequired": false - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "// Horizontal pill.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [20, 0])\n |> tangentialArcToRelative([0, 10], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> close()\n\npillExtrude = extrude(pillSketch, length = 10)", - "// Vertical pill. Use absolute coordinate for arc.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [0, 20])\n |> tangentialArcTo([10, 20], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([-10, 0], %)\n |> close()\n\npillExtrude = extrude(pillSketch, length = 10)", - "rectangleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(end = [10, 0], tag = $seg1)\n |> angledLine({\n angle = tangentToEnd(seg1),\n length = 10\n }, %)\n |> line(end = [0, 10])\n |> line(end = [-20, 0])\n |> close()\n\nrectangleExtrude = extrude(rectangleSketch, length = 10)", - "bottom = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1)\n |> angledLine([tangentToEnd(arc1), 20], %)\n |> close()", - "circSketch = startSketchOn(\"XY\")\n |> circle({ center = [0, 0], radius = 3 }, %, $circ)\n\ntriangleSketch = startSketchOn(\"XY\")\n |> startProfileAt([-5, 0], %)\n |> angledLine([tangentToEnd(circ), 10], %)\n |> line(end = [-15, 0])\n |> close()" - ] - }, - { - "name": "tangentialArc", - "summary": "Draw a curved line segment along part of an imaginary circle.", - "description": "The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.", - "tags": [], - "keywordArguments": false, - "args": [ - { - "name": "data", - "type": "TangentialArcData", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TangentialArcData", - "description": "Data to draw a tangential arc.", - "anyOf": [ - { + }, + "BasePath": { + "description": "A base path.", "type": "object", "required": [ - "offset", - "radius" + "__geoMeta", + "from", + "to", + "units" ], "properties": { - "radius": { - "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "offset": { - "description": "Offset of the arc, in degrees.", - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } - } - ] - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "sketch", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } - ] + } }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", + "TagEngineInfo": { + "description": "Engine information for a tag.", "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } } }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ { - "$ref": "#/components/schemas/ArtifactId" + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } } ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } } - }, + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + { + "name": "tag", + "type": "TagNode", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true, "definitions": { "Path": { "description": "A path.", @@ -293731,1367 +319850,1980 @@ "type": "object", "required": [ "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "tag", - "type": "TagNode", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_TagDeclarator", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true, - "definitions": { - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ { - "description": "A arc that is tangential to the last path segment", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "fillet" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "a complete arc", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "radius": { - "description": "the arc's radius", + "length": { "type": "number", "format": "double" }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + } + ] + } + } + }, + "required": false, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "x": { - "description": "The x coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true + "format": "double" }, - "y": { - "description": "The y coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - } + ], + "nullable": true } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - } + ], + "nullable": true } } - ] - }, - "ArtifactId": { + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line(end = [10, -15])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + ] + }, + { + "name": "tangentialArcToRelative", + "summary": "Starting at the current sketch's origin, draw a curved line segment along", + "description": "some part of an imaginary circle until it reaches a point the given (x, y) distance away.", + "tags": [], + "keywordArguments": false, + "args": [ + { + "name": "delta", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + { + "name": "sketch", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", "type": "string", "format": "uuid" }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] + "$ref": "#/components/schemas/SketchSurface" } ] }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" } - } + ] }, - "Metadata": { - "description": "Metadata.", + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" } }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" } - } + ] }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A path that goes to a point.", "type": "object", "required": [ - "faceId", - "id", - "sourceRange", - "type" + "__geoMeta", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "ToPoint" ] }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { - "description": "The tag.", + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -295099,89 +321831,74 @@ ], "nullable": true }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", + "__geoMeta": { + "description": "Metadata.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" + "$ref": "#/components/schemas/GeoMeta" } ] } } }, { - "description": "Geometry metadata.", + "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ - "faceId", - "id", - "sourceRange", - "type" + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "TangentialArcTo" ] }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "ccw": { + "description": "arc's direction", + "type": "boolean" }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { - "description": "The tag.", + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" @@ -295189,2080 +321906,1482 @@ ], "nullable": true }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", + "__geoMeta": { + "description": "Metadata.", "allOf": [ { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ + } + }, { - "description": "A fillet.", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ - "edgeId", - "id", - "radius", - "type" + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "fillet" + "TangentialArc" ] }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "radius": { - "type": "number", - "format": "double" + "ccw": { + "description": "arc's direction", + "type": "boolean" }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } }, { - "description": "A chamfer.", + "description": "a complete arc", "type": "object", "required": [ - "edgeId", - "id", - "length", - "type" + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "Circle" ] }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "length": { + "radius": { + "description": "the arc's radius", "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } - } - ] - } - } - }, - "required": false, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "x": { + "description": "The x coordinate.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "a complete arc", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Circle" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { + "x": { + "description": "The x coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { + "y": { + "description": "The y coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { + "radius": { + "description": "Radius of the circle that this arc is drawn on.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + ] }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] } } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] } } - } - } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } } - ] - } - } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } } } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] - } - } - } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" + } } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] } - } - } - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "y": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" } - ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { "$ref": "#/components/schemas/Path" } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" } - ], - "nullable": true + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArc({ radius = 10, offset = -120 }, %)\n |> angledLine({ angle = -60, length = 10 }, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" - ] - }, - { - "name": "tangentialArcTo", - "summary": "Starting at the current sketch's origin, draw a curved line segment along", - "description": "some part of an imaginary circle until it reaches the desired (x, y) coordinates.", - "tags": [], - "keywordArguments": false, - "args": [ - { - "name": "to", - "type": "[number]", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 }, "required": true, "includeInSnippet": true, "labelRequired": true }, { - "name": "sketch", - "type": "Sketch", + "name": "tag", + "type": "TagNode", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - }, + ], + "nullable": true, "definitions": { "Path": { "description": "A path.", @@ -298717,1282 +324836,2023 @@ } ], "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "tag", - "type": "TagNode", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_TagDeclarator", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true, - "definitions": { - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ { - "description": "A arc that is tangential to the last path segment", + "description": "A fillet.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" + "edgeId", + "id", + "radius", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "TangentialArc" + "fillet" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "radius": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } }, { - "description": "a complete arc", + "description": "A chamfer.", "type": "object", "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" + "edgeId", + "id", + "length", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "Circle" + "chamfer" ] }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" }, - "radius": { - "description": "the arc's radius", + "length": { "type": "number", "format": "double" }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" }, "tag": { - "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] } } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + } + ] + } + } + }, + "required": false, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "x": { - "description": "The x coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] + }, + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true + "format": "double" }, - "y": { - "description": "The y coordinate.", + "maxItems": 2, + "minItems": 2 + }, + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "units": { - "$ref": "#/components/schemas/UnitLen" + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] - } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - } + ], + "nullable": true } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" } - } + ], + "nullable": true } } - ] - }, - "ArtifactId": { + } + ] + } + } + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 45, length = 10 }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" + ] + }, + { + "name": "tau", + "summary": "Return the value of `tau`. The full circle constant (τ). Equal to 2π.", + "description": "**DEPRECATED** use the constant TAU", + "tags": [ + "math" + ], + "keywordArguments": false, + "args": [], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": true, + "examples": [ + "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = 10 * tau() }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "toDegrees", + "summary": "Converts a number from radians to degrees.", + "description": "", + "tags": [ + "math" + ], + "keywordArguments": false, + "args": [ + { + "name": "num", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle = 50,\n length = 70 * cos(toDegrees(pi() / 4))\n }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "toRadians", + "summary": "Converts a number from degrees to radians.", + "description": "", + "tags": [ + "math" + ], + "keywordArguments": false, + "args": [ + { + "name": "num", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true, + "includeInSnippet": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle = 50,\n length = 70 * cos(toRadians(45))\n }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + ] + }, + { + "name": "translate", + "summary": "Move a solid.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "solid", + "type": "Solid", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] + "$ref": "#/components/schemas/ArtifactId" } ] }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" } }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" - } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } + } + }, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" }, "ExtrudeSurface": { "description": "An extrude surface.", @@ -300179,6 +327039,49 @@ } ] }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -300252,1991 +327155,1612 @@ } } }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ + } + }, { - "description": "A fillet.", + "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ - "edgeId", - "id", - "radius", - "type" + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "fillet" + "TangentialArc" ] }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" }, - "radius": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] } } }, { - "description": "A chamfer.", + "description": "a complete arc", "type": "object", "required": [ - "edgeId", - "id", - "length", - "type" + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" ], "properties": { "type": { "type": "string", "enum": [ - "chamfer" + "Circle" ] }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "length": { + "radius": { + "description": "the arc's radius", "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" }, "tag": { + "description": "The tag of the path.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - } - } - } - ] - } - } - }, - "required": false, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A arc that is tangential to the last path segment that goes to a point", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArcTo" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A arc that is tangential to the last path segment", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "TangentialArc" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "p1", + "p2", + "p3", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "CircleThreePoint" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "ccw": { - "description": "arc's direction", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p1": { + "description": "Point 1 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p2": { + "description": "Point 2 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "a complete arc", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Circle" - ] - }, - "center": { - "description": "the arc's center", - "type": "array", - "items": { - "type": "number", - "format": "double" + "p3": { + "description": "Point 3 of the circle", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "the arc's radius", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "arc's direction This is used to compute the tangential angle.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "p1", - "p2", - "p3", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "CircleThreePoint" - ] - }, - "p1": { - "description": "Point 1 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "p2": { - "description": "Point 2 of the circle", - "type": "array", - "items": { + "x": { + "description": "The x coordinate.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "p3": { - "description": "Point 3 of the circle", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "units": { + "$ref": "#/components/schemas/UnitLen" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A path that is horizontal.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units", - "x" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Horizontal" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "y": { + "description": "The y coordinate.", "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "An angled line to.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "AngledLineTo" - ] - }, - "x": { - "description": "The x coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "y": { - "description": "The y coordinate.", - "type": "number", - "format": "double", - "nullable": true - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } - } - }, - { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Base" - ] - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type", + "units" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "radius": { + "description": "Radius of the circle that this arc is drawn on.", "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - { - "description": "A circular arc, not necessarily tangential to the current point.", - "type": "object", - "required": [ - "__geoMeta", - "ccw", - "center", - "from", - "radius", - "to", - "type", - "units" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Arc" - ] - }, - "center": { - "description": "Center of the circle that this arc is drawn on.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" }, - "maxItems": 2, - "minItems": 2 - }, - "radius": { - "description": "Radius of the circle that this arc is drawn on.", - "type": "number", - "format": "double" - }, - "ccw": { - "description": "True if the arc is counterclockwise.", - "type": "boolean" - }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "UnitLen": { - "description": "A unit of length.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Mm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Cm" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "M" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Inches" - ] - } - } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Feet" - ] + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } } } - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] + ] + }, + "UnitLen": { + "description": "A unit of length.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } } - ] - } - } - }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "SketchSurface": { - "description": "A sketch type.", - "oneOf": [ - { - "description": "A plane.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "origin", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "plane" - ] - }, - "id": { - "description": "The id of the plane.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] } } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "solid", - "type", - "units", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] - }, - "id": { - "description": "The id of the face.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face's X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face's Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Solid" - } - ] - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] } } - } - } - ] - }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "Solid": { - "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "height", - "id", - "sketch", - "units", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "artifactId": { - "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } } - ] - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" } - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] } } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] + } } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face's X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face's Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ] - } - } - } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" + } } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] } - } - } - }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { + "y": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { "type": "number", "format": "double" }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" } } } - ] + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } } - } + }, + "required": true, + "includeInSnippet": true, + "description": "The solid to move.", + "labelRequired": false }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 60, length = 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line(end = [10, -15])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" - ] - }, - { - "name": "tangentialArcToRelative", - "summary": "Starting at the current sketch's origin, draw a curved line segment along", - "description": "some part of an imaginary circle until it reaches a point the given (x, y) distance away.", - "tags": [], - "keywordArguments": false, - "args": [ { - "name": "delta", + "name": "translate", "type": "[number]", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Array_size_2_of_double", + "title": "Array_size_3_of_double", "type": "array", "items": { "type": "number", "format": "double" }, - "maxItems": 2, - "minItems": 2 - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "sketch", - "type": "Sketch", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "maxItems": 3, + "minItems": 3, + "definitions": { + "ArtifactId": { "type": "string", "format": "uuid" }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, { - "$ref": "#/components/schemas/BasePath" + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } } ] }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", + "TagDeclarator": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" + } }, - "__meta": { - "description": "Metadata.", + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", "type": "array", "items": { - "$ref": "#/components/schemas/Metadata" + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } } - } - }, - "definitions": { + }, "Path": { "description": "A path.", "oneOf": [ @@ -302973,53 +329497,21 @@ } } }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Yards" - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } } - } + ] }, "GeoMeta": { "description": "Geometry metadata.", @@ -303044,17 +329536,6 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -303223,10 +329704,6 @@ } ] }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, "PlaneType": { "description": "Type for a plane.", "oneOf": [ @@ -303363,6 +329840,227 @@ } } }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "units" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": true, + "includeInSnippet": true, + "description": "The amount to move the solid in all three axes.", + "labelRequired": true + }, + { + "name": "global", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, "ExtrudeSurface": { "description": "An extrude surface.", "oneOf": [ @@ -303548,6 +330246,49 @@ } ] }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, "Sketch": { "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", "type": "object", @@ -303621,226 +330362,6 @@ } } }, - "BasePath": { - "description": "A base path.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "units" - ], - "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] - } - } - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - { - "name": "tag", - "type": "TagNode", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_TagDeclarator", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true, - "definitions": { "Path": { "description": "A path.", "oneOf": [ @@ -304593,38 +331114,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -304648,17 +331137,6 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -304827,10 +331305,6 @@ } ] }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, "PlaneType": { "description": "Type for a plane.", "oneOf": [ @@ -304967,263 +331441,90 @@ } } }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", + "description": "A fillet.", "type": "object", "required": [ - "faceId", + "edgeId", "id", - "sourceRange", + "radius", "type" ], "properties": { "type": { "type": "string", "enum": [ - "extrudeArc" + "fillet" ] }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, "id": { - "description": "The id of the geometry.", + "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] + "radius": { + "type": "number", + "format": "double" }, - "faceId": { - "description": "The id for the chamfer surface.", + "edgeId": { + "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "tag": { - "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] } } }, { - "description": "Geometry metadata.", + "description": "A chamfer.", "type": "object", "required": [ - "faceId", + "edgeId", "id", - "sourceRange", + "length", "type" ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" } } - } + ] }, "BasePath": { "description": "A base path.", @@ -305340,163 +331641,83 @@ "nullable": true } } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] } } }, "required": false, + "description": "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.", "labelRequired": true } ], "returnValue": { "name": "", - "type": "Sketch", + "type": "Solid", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "title": "Solid", + "description": "A solid is a collection of extrude surfaces.\n\nWhen you define a solid to a variable like:\n\n```kcl myPart = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) ```\n\nThe `myPart` variable will be an executed `Solid` object. Executed being past tense, because the engine has already executed the commands to create the solid.\n\nThe previous solid commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the solid any time you call it, you can use a function.\n\n```kcl fn createPart() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() |> extrude(length = 6) } ```\n\nNow, every time you call `createPart()`, the commands will be executed and a new solid will be created.\n\nWhen you assign the result of `createPart()` to a variable (`myPart = createPart()`), you are assigning the executed solid to that variable. Meaning that the solid `myPart` will not be executed again.\n\nYou can still execute _new_ commands on the solid like `shell`, `fillet`, `chamfer`, etc. and the solid will be updated.", "type": "object", "required": [ "__meta", "artifactId", + "height", "id", - "on", - "originalId", - "paths", - "start", - "units" + "sketch", + "units", + "value" ], "properties": { "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "description": "The id of the solid.", "type": "string", "format": "uuid" }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", "allOf": [ { - "$ref": "#/components/schemas/BasePath" + "$ref": "#/components/schemas/ArtifactId" } ] }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" } }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "sketch": { + "description": "The sketch.", "allOf": [ { - "$ref": "#/components/schemas/ArtifactId" + "$ref": "#/components/schemas/Sketch" } ] }, - "originalId": { + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", "type": "string", - "format": "uuid" + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } }, "units": { "$ref": "#/components/schemas/UnitLen" @@ -305510,6 +331731,311 @@ } }, "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, "Path": { "description": "A path.", "oneOf": [ @@ -306262,38 +332788,6 @@ } ] }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, "GeoMeta": { "description": "Geometry metadata.", "type": "object", @@ -306317,17 +332811,6 @@ } } }, - "SourceRange": { - "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, "SketchSurface": { "description": "A sketch type.", "oneOf": [ @@ -306496,10 +332979,6 @@ } ] }, - "ArtifactId": { - "type": "string", - "format": "uuid" - }, "PlaneType": { "description": "Type for a plane.", "oneOf": [ @@ -306636,106 +333115,56 @@ } } }, - "ExtrudeSurface": { - "description": "An extrude surface.", + "EdgeCut": { + "description": "A fillet or a chamfer.", "oneOf": [ { - "description": "An extrude plane.", + "description": "A fillet.", "type": "object", "required": [ - "faceId", + "edgeId", "id", - "sourceRange", + "radius", "type" ], "properties": { "type": { "type": "string", "enum": [ - "extrudePlane" + "fillet" ] }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, "id": { - "description": "The id of the geometry.", + "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] + "radius": { + "type": "number", + "format": "double" }, - "faceId": { - "description": "The face id for the extrude plane.", + "edgeId": { + "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "tag": { - "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] } } }, { - "description": "Geometry metadata.", + "description": "A chamfer.", "type": "object", "required": [ - "faceId", + "edgeId", "id", - "sourceRange", + "length", "type" ], "properties": { @@ -306745,155 +333174,32 @@ "chamfer" ] }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, "id": { - "description": "The id of the geometry.", + "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] + "length": { + "type": "number", + "format": "double" }, - "faceId": { - "description": "The id for the fillet surface.", + "edgeId": { + "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "tag": { - "description": "The tag.", "allOf": [ { "$ref": "#/components/schemas/TagDeclarator" } ], "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] } } } ] }, - "Sketch": { - "description": "A sketch is a collection of paths.\n\nWhen you define a sketch to a variable like:\n\n```kcl mySketch = startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() ```\n\nThe `mySketch` variable will be an executed `Sketch` object. Executed being past tense, because the engine has already executed the commands to create the sketch.\n\nThe previous sketch commands will never be executed again, in this case.\n\nIf you would like to encapsulate the commands to create the sketch any time you call it, you can use a function.\n\n```kcl fn createSketch() { return startSketchOn('XY') |> startProfileAt([-12, 12], %) |> line(end = [24, 0]) |> line(end = [0, -24]) |> line(end = [-24, 0]) |> close() } ```\n\nNow, every time you call `createSketch()`, the commands will be executed and a new sketch will be created.\n\nWhen you assign the result of `createSketch()` to a variable (`mySketch = createSketch()`), you are assigning the executed sketch to that variable. Meaning that the sketch `mySketch` will not be executed again.\n\nYou can still execute _new_ commands on the sketch like `extrude`, `revolve`, `loft`, etc. and the sketch will be updated.", - "type": "object", - "required": [ - "__meta", - "artifactId", - "id", - "on", - "originalId", - "paths", - "start", - "units" - ], - "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", - "allOf": [ - { - "$ref": "#/components/schemas/BasePath" - } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "artifactId": { - "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", - "allOf": [ - { - "$ref": "#/components/schemas/ArtifactId" - } - ] - }, - "originalId": { - "type": "string", - "format": "uuid" - }, - "units": { - "$ref": "#/components/schemas/UnitLen" - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, "BasePath": { "description": "A base path.", "type": "object", @@ -307009,91 +333315,6 @@ "nullable": true } } - }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, - { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - } - ] } } }, @@ -307104,119 +333325,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 45, length = 10 }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> line(end = [-10, 0])\n |> close()\n\nexample = extrude(exampleSketch, length = 10)" - ] - }, - { - "name": "tau", - "summary": "Return the value of `tau`. The full circle constant (τ). Equal to 2π.", - "description": "**DEPRECATED** use the constant TAU", - "tags": [ - "math" - ], - "keywordArguments": false, - "args": [], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": true, - "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle = 50, length = 10 * tau() }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "toDegrees", - "summary": "Converts a number from radians to degrees.", - "description": "", - "tags": [ - "math" - ], - "keywordArguments": false, - "args": [ - { - "name": "num", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle = 50,\n length = 70 * cos(toDegrees(pi() / 4))\n }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" - ] - }, - { - "name": "toRadians", - "summary": "Converts a number from degrees to radians.", - "description": "", - "tags": [ - "math" - ], - "keywordArguments": false, - "args": [ - { - "name": "num", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true, - "includeInSnippet": true, - "labelRequired": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle = 50,\n length = 70 * cos(toRadians(45))\n }, %)\n |> yLineTo(0, %)\n |> close()\n\nexample = extrude(exampleSketch, length = 5)" + "// Move a pipe.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line(end = [0, 7])\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line(end = [-3, 0])\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line(end = [0, 7])\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep(path = sweepPath)\n |> translate(translate = [1.0, 1.0, 2.5])" ] }, { diff --git a/docs/kcl/translate.md b/docs/kcl/translate.md new file mode 100644 index 0000000000..7e9f1644bc --- /dev/null +++ b/docs/kcl/translate.md @@ -0,0 +1,57 @@ +--- +title: "translate" +excerpt: "Move a solid." +layout: manual +--- + +Move a solid. + + + +```js +translate(solid: Solid, translate: [number], global?: bool) -> Solid +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid to move. | Yes | +| `translate` | `[number]` | The amount to move the solid in all three axes. | Yes | +| `global` | `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 + +[`Solid`](/docs/kcl/types/Solid) - A solid is a collection of extrude surfaces. + + +### Examples + +```js +// Move a pipe. + + +// Create a path for the sweep. +sweepPath = startSketchOn('XZ') + |> startProfileAt([0.05, 0.05], %) + |> line(end = [0, 7]) + |> tangentialArc({ offset = 90, radius = 5 }, %) + |> line(end = [-3, 0]) + |> tangentialArc({ offset = -90, radius = 5 }, %) + |> line(end = [0, 7]) + +// Create a hole for the pipe. +pipeHole = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 1.5 }, %) + +sweepSketch = startSketchOn('XY') + |> circle({ center = [0, 0], radius = 2 }, %) + |> hole(pipeHole, %) + |> sweep(path = sweepPath) + |> translate(translate = [1.0, 1.0, 2.5]) +``` + +![Rendered example of translate 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEy80lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqf5NrrrnmwQBnzpx5MMA111zzYIAzZ848iGe65pprHgxwzTXXPJhnOnPmzIN5gGuuuebB/Dvcd999t15zzTUPvu+++27luZw9e/ZWgPvuu+9Wnum+++67FeDs2bPPALjvvvtuBTh79uyt9913361cddVVV1111VVXXXXVVf+XoAc96EFcddVVV1111VVXXHPNNQ8GOHPmzINf7MVe7LV4phd/8Rd/bYAzZ848+JprrnkwL8B99913a9/3Dwa49dZbefCDH8zu7i7Hjx8H4Pjx4+zu7vKiOH78OAC7u7sA7O7uAnD8+HGe2+7uLs9td3eX++3u7nL8+HEAjh8/DsCDH/xgnp/77rvv1rNnz95633333QrwD//wD79z33333Xr27Nlb77vvvlu56qqrrrrqqquuuuqqq/43QQ960IO46qqrrrrqqv9PrrnmmgefOXPmwS/2Yi/2WgAv/uIv/toAL/ZiL/baPJdbb72V3d1ddnd3OX78OPc7fvw4u7u7ABw/fpzjx49z/Phxnp/d3V3ut7u7y/0e/OAH8x/p1ltv5X7Hjx/n+PHj3G93d5fjx4+zu7vL7u4uu7u7ANx6663s7u6yu7sLwIkTJzh+/DgAD3rQgwA4fvw4D37wgwH4h3/4h98GuO+++279rd/6re/5h3/4h9/mqquuuuqqq6666qqrrvqfDD3oQQ/iqquuuuqqq/6vuuaaax78Yi/2Yq995syZB734i7/4a7/Yi73Ya/MAf/3Xf83u7i4At956KwC7u7u89Eu/NAAPfvCDOX78OMePH+d+u7u77O7uslgsuPbaa3luR0dHAEhiuVwSEQzDQESQmdRaqbVSayUiKKUgCUlkJq01pmlitVoxDAPr9Zr1ek1EMI4jrTVaa0zTRGaSmWxsbJCZbG5uAmCbra0tALa3t9nZ2eG5/fVf/zXHjx/nwQ9+MAC7u7vceuutPOMZz+Cv//qveW7Hjx/nwQ9+MAAv9VIvxYMf/GDuu+++W//hH/7ht3/0R3/0c+67775bueqqq6666qqrrrrqqqv+p0EPetCDuOqqq6666qr/S6655poHv/Zrv/Z7vdM7vdNn80y33nort956K894xjO49dZbeaAHP/jBPOhBD+LBD34wD37wgwHY3d3l+PHjPNDBwQH7+/scHh5ycHCAJA4PDzk6OmK5XLJcLokISimUUiil0HUdXdfRdR2z2Yz5fM58Pmc+nzOfz5nNZnRdRykFgMxkmibW6zXr9ZrlcslyuWS5XLJarViv1wzDwDiOjOPINE201mit0VqjtUZmkpnYJjPJTGyztbVFZrKzs8P29ja2uemmmzh27BgPetCDeKDd3V1+53d+h7/5m7/hBTl+/DjHjh3jpV/6pbn++utv/dEf/dHP+a3f+q3v5qqrrrrqqquuuuqqq676n4TKVVddddVVV/0f8WIv9mKv/eEf/uHfdc011zz41ltv5bd/+7f5nd/5HV6Q13qt1+K1X/u12d3dZXd3lwc/+MEA7O3t8aQnPQlJ3H333RweHnJwcEBEIImIQBIRgSQigoggIgCwjW0AbGOb+9nGNraxjW1sYxtJ3E8SDyQJSUji32pvb4/M5NKlS2Qmmcnf/M3f0Fqjtcb29ja33HILL/MyL8PDHvYwXuu1XotnPOMZ7O7u8twkcenSJS5dusRtt93GS73USz34dV7ndd7rH/7hH377vvvuu5Wrrrrqqquuuuqqq6666n8KKlddddVVV131f8A7vuM7ftYbvdEbffbf/M3f8M3f/M3cTxLPz0u91Evx4Ac/GABJ3HXXXfzZn/0Zd911FxFBRBARSCIikMS/h21sYxvbANjGNi+MJCTxQJIAkIQkHkgS/x4XL17kwoULPOxhD+MZz3gGly5dQhIvyPHjx3nJl3xJXuu1Xot/+Id/4L777ruVq6666qqrrrrqqquuuup/EipXXXXVVVdd9X/Ay77sy773M57xDH7nd36HF8Xx48eRxN/8zd/wh3/4hxweHlJKISJ4UdlGEgC2sc0D2cY2tgGwjW1sY5v72cY2/xqS+LeQhG0Ajh07xk033cTOzg633HILD37wgwH43d/9Xb7+67+e3d1dJPFAx48f59ixYzzoQQ/iJV/yJTl+/Dj3e7EXe7HX5qqrrrrqqquuuuqqq676n4bKVVddddVVV/0vd8011zx4tVrxUi/1Ujzo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wja2sY1tAGxjGwDb2MY297PNv5VtXhjb2AbANgC2sY1tHsg2trENgG3+rSTxgkjiP8vFixe55pprHsxVV1111VVXXXXVVVdd9T8JwVVXXXXVVVf9HxERt9rGNgC2+beyzXOzzf1sA2Cb+9kGwDa2uZ9tAGxjG9vYxja2sc0D2eaFkcSLShL/USTx3CRxP0lcddVVV1111VVXXXXVVf/jEFx11VVXXXXV/xERcattbGObB7LNc7PNA9nm+bHNA9nmudkGwDb3s41tbGMb29jmfraxjW1sY5sXRhKSeCBJAEjigSTxryGJfy1J3E8SFy9e5JprrnkwV1111VVXXXXVVVddddX/JARXXXXVVVdd9X/IOI638ky2sY1tXhjbPD+2eVHY5oFsY5sHso1tAGxjG9s8N9u8KCTxL5HE/STxryWJq6666qqrrrrqqquuuup/PYKrrrrqqquu+j+ktXarbWzz3GxzP9s8P7Z5fmwDYJsXxDYPZBvb2OZ+trGNbQBsYxvb2AbANi8KSQBIAkASkvivJgkASVx11VVXXXXVVVddddVV/+MQXHXVVVddddX/Ia01bPOC2MY297MNgG2eH9u8ILaxDYBtAGzz/NjGNraxjW1sYxvb2AbANgC2sc39JPEfRRLPjyT+PS5evMiZM2cezFVXXXXVVVddddVVV131PwnBVVddddVVV/0f0lq71Ta2sY1tAGzzorLNv8Q297PNA9nGNraxjW0AbGOb+9nGNvezzf9UknhhJCGJq6666qqrrrrqqquuuup/HIKrrrrqqquu+j+ktXarbWxzP9s8P7b517ANgG1eVLaxjW3uZxvb2AbANraxjW1scz/bPDdJ/HeShCQAJHG/ixcvctVVV1111VVXXXXVVVf9j0Nw1VVXXXXVVf+HtNawDYBtbHM/2zw/tgGwzf1scz/b/EtsYxvbANjGNvezjW1sYxvbANjGNs/NNv8dJPFAknhRSeKaa655MFddddVVV1111VVXXXXV/yQEV1111VVXXfV/iKTfsY1tnh/b2MY2/xa2uZ9tbPPcbHM/29gGwDa2sY1tbGMbANvYBsA2L4gkHkgSAJL415DEv4UknpskJHHVVVddddVVV1111VVX/Y9EcNVVV1111VX/x2QmtrENgG1s86Kwzf1scz/bvCC2eW62sc39bPPcbGMb29gGwDYvCkm8IJJ4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be5nmxeVbZ6bbQBsYxvbPJBtbGMbANvYxja2sY1tAGwDYJv72ea5SeJfQxIPJInnRxJXXXXVVVddddVVV1111f8JBFddddVVV131/4RtbPOisM39bHM/2zyQbR7INg9kG9vY5oFsYxvb2AbANraxzXOzzYtCEs+PJP6zSWJ3dxeAM2fOPJirrrrqqquuuuqqq6666n8Cgquuuuqqq676Pygibs1MbGMb27wwtvnPZhvb2MY2D2SbB7KNbQBs859JEv8SSQBI4rlJQhIAkrjqqquuuuqqq6666qqr/kchuOqqq6666qr/o6ZputU297MNgG1eENvczzb3s839bANgm/vZ5n62sY1tAGxjGwDb2AbANraxjW1sYxvb/GtJ4j+aJP4tLl68yFVXXXXVVVddddVVV131PwbBVVddddVVV/0fNU3TrbaxjW0AbPPcbPPvYRsA2zw329zPNvezjW1sYxsA29jmfraxzQsiCQBJ/HtJ4j/SNddc82Cuuuqqq6666qqrrrrqqv8JCK666qqrrrrq/6jMxDbPj21sY5v72QbANvezzf1scz/bPD+2eW62sQ2AbWxjG9vczzb3s41t/j0k8YJI4t9LEpJ4fi5evMhVV1111VVXXXXVVVdd9T8GwVVXXXXVVVf9HzVN0622sY1tbPMfzTbPj21sY5v72ea52cY2trGNbWzzH0kS/1kkcT9JSALgzJkzD+Kqq6666qqrrrrqqquu+p+A4Kqrrrrqqqv+j8rMW23zQLaxzb/ENvezzf1s8y+xzXOzDYBtbGMb29jGNgC2uZ9tbGMb29jmP5sknpskrrrqqquuuuqqq6666qr/1Qiuuuqqq6666v+oaZqwjW1s88LYBsA2Lyrb3M82tnl+bANgGwDb2MY2trGNbQBsY5v/CJKQxH8USbwgkrjqqquuuuqqq6666qqr/kciuOqqq6666qr/oyLid2xjGwDb3M82tgGwzb/ENvezzQPZ5n62AbCNbWwDYBsA2zw/trGNbQBsYxvbPD+SeG6SeGEkcT9J/FtJ4oEkcT9J7O7ucs011zyYq6666qqrrrrqqquuuup/AoKrrrrqqquu+j/MNg9kG9vczzYviG3+LWzzQLYBsA2AbWxjG9vYxja2AbCNbe5nGwDb2OZfIol/K0n8R7jmmmsezFVXXXXVVVddddVVV131PwHBVVddddVVV/0fJelW29jGNv8S2wDY5vmxzf1sA2CbF8Q2z802ALaxjW1scz/b2AbANv9akvjvIgmAixcvctVVV1111VVXXXXVVVf9j0Fw1VVXXXXVVf+HZSa2AbDN/WzzorDNi8I2trENgG0AbANgG9vYxjbPzTa2sQ2AbQBsA2Cb50cS/9Ek8UCSeFFJQhJXXXXVVVddddVVV1111f8YBFddddVVV131f1RE3FprxTa2AbDN82ObF4Vt/rVs80C2sY1tbGMb29gGwDYAtnlRSeJfSxL/GXZ3dzlz5syDueqqq6666qqrrrrqqqv+JyC46qqrrrrqqv/DxnG8FcA2tgGwDYBtbGOb+9kGwDb3s83zYxsA2zyQbQBsYxsA29jGNvezjW1scz/bANjmfrb5n0IS95PE/SRx1VVXXXXVVVddddVVV/2PRHDVVVddddVV/4etVqtbbfPvZZv72eZfYpv72eaBbGOb+9nGNraxjW3uZ5t/iSReVJJ4UUjiRSGJ57a7u8tVV1111VVXXXXVVVdd9T8GwVVXXXXVVVf9HyYJ29jGNrYBsM1zs80D2eZfYpv72eYFsY1tbANgG9vYBsA2trmfbWxzP9v8e0ji+ZHEv4UknpskJAFwzTXXPJirrrrqqquuuuqqq6666n8Cgquuuuqqq676P2y9Xv+2bR7INi+MbZ4f29zPNg9kGwDb2OZ+tnlutrmfbWxzP9vY5n62sQ2AbV5UkviPJIkXRBJXXXXVVVddddVVV1111f9YBFddddVVV131f1hmYhvbPDfb3M82z49t/q1sA2AbANvYBsA2tgGwjW1sA2Ab29jmv4Ik/iPt7u5y1VVXXXXVVVddddVVV/2PQXDVVVddddVV/4dl5jNsYxvb2OaBbGObF5Vt7mcbANs8N9s8kG3uZxsA29gGwDa2sc3/FJL4t5AEwDXXXPNgrrrqqquuuuqqq6666qr/bgRXXXXVVVdd9X+YpFszkweyjW2eH9sA2OZ+tvm3so1tAGxjGwDbANjGNvezjW1sYxvb2MY2ALZ5QSTx/EjigSTx3CTxH0ESV1111VVXXXXVVVddddX/KARXXXXVVVdd9X+YbWxjG9v8R7DN82Mb29gGwDb3s839bGMb2wDYxja2AbDN/2SSeG6SkATA7u4uAGfOnHkwV1111VVXXXXVVVddddV/N4Krrrrqqquu+j8sIm61jW0AbHM/2zyQbR7INvezzfNjGwDbPJBtnpttbGMbANvYBsA2trENgG1sY5v72QbANi8KSUjiRSWJ5yaJ+0niRSGJq6666qqrrrrqqquuuup/DIKrrrrqqquu+j8sIm61DYBtAGxjGwDb2MY297PN82Ob+9nmRWEb2zw32wDYxja2AbCNbWxzP9s8N9s8P5KQxPMjif8qFy9e5Kqrrrrqqquuuuqqq676H4Hgqquuuuqqq/6Pm6bpVtsA2OZfwzb/Ets8P7a5n20AbGMbANsA2AbANg9kG9sA2OY/kiT+I0jiBbnmmmsezFVXXXXVVVddddVVV131343gqquuuuqqq/6Pm6bpVtvY5l9iGwDbPD+2uZ9tHsg2trHN82Ob+9kGwDYAtrGNbWxjm/vZ5r+KJF5UkgCQxP0kIYmrrrrqqquuuuqqq6666n8Mgquuuuqqq676Py4zsY1tbGMbANu8KGzzr2UbANvYxjYAtrENgG0AbHM/29gGwDYPZJv/DpL417p48SJnzpx5EFddddVVV1111VVXXXXVfzeCq6666qqrrvo/rrV2q20eyDYAtrmfbV4UtrmfbQBs89xs80C2uZ9tbGMb29jGNvezDYBtAGwDYJvnRxL/WpJ4fiTxbyGJq6666qqrrrrqqquuuup/HIKrrrrqqquu+j+utXarbWzz/NjGNvezDYBt7meb/yi2uZ9tAGxjG9vYxja2AbDN/xSSAJDEA0nifpK46qqrrrrqqquuuuqqq/7HoHLVVVddddVV/8e11rANgG1sA2CbfyvbSOK52cY297ONbWwDYBsA29gGwDb3s41tAGzzv9Xu7i7XXHPNg7nqqquuuuqqq6666qqr/rsRXHXVVVddddX/cZJ+xza2uZ9tnh/bPJBt7meb58c2ALa5n22em20AbGMbANsA2MY297PNA9nm30MSAJJ4IEk8P5L4t5DEVVddddVVV1111VVXXfU/CsFVV1111VVX/T9gG9vYxjb3s83zY5vnxzb3s80LY5vnZpv72cY2trGNbWxjGwDb2MY2ALZ5UUniP5IkXlSS2N3d5ZprrnkwV1111VVXXXXVVVddddV/N4Krrrrqqquu+j9O0q22eUFsYxvbPD+2+ZfY5gWxjW1sA2Ab29zPNvezDYBtnh/b2Oaqq6666qqrrrrqqquuuupFRHDVVVddddVV/w/Yxja2AbCNbf4tbHM/2zw329zPNg9km/vZxjYAtrENgG0AbGMb29jmP4sknh9J/GtI4qqrrrrqqquuuuqqq676H4fgqquuuuqqq/6Pi4hbbWMbANu8MLYBsM39bPOisA2AbWxzP9s8kG3uZxvb2MY2trHNc7PN/wSSuJ8kJPHcdnd3OXPmzIO56qqrrrrqqquuuuqqq/67EVx11VVXXXXV/wPjON5qG9s8kG3+LWxzP9sA2Ob5sQ2AbWxjGwDb2MY297MNgG1sYxvb/HtI4oEk8dwk8S+RxL9EEpK46qqrrrrqqquuuuqqq/7HILjqqquuuuqq/wdaa7faBsA2trHNc7PNA9nmfrb517LN82Mb29zPNrYBsM1zs80LIgkASTyQJP41JPHcJPGCSOJ+knig3d1drrrqqquuuuqqq6666qr/EQiuuuqqq6666v+B1hoAtnlutrGNbe5nm3+JbZ4f29jmgWxjGwDb3M82trGNbWxjG9vYxjYPZBsA27wgkrifJP67XHPNNQ/mqquuuuqqq6666qqrrvrvRnDVVVddddVV/w/YvjUzsc2/h22eH9sA2OZ+tgGwzf1sA2Ab29jmX2IbANsA2ObfQhL3k8R/pkuXLnHVVVddddVVV1111VVX/Y9AcNVVV1111VX/D4zjeKttAGxjG9vY5rnZ5oFs80C2uZ9tXhjbPDfbPJBtbGMb29jGNraxDYBtXhSS+PeQxL+XJO53zTXXPJirrrrqqquuuuqqq6666r8TwVVXXXXVVVf9P2D7GbaxzYvKNv8atnlBbGMb2wDYxja2sc39bANgG9sA2Oa/kyTuJwkASTw3SUjiqquuuuqqq6666qqrrvofheCqq6666qqr/n+41TYAtrHN/WwDYBvbPD+2eSDb3M82z80297PNA9nmudnGNgC2uZ9tAGxjG9v8R5HE8yOJf69Lly4BcObMmQdz1VVXXXXVVVddddVVV/13Irjqqquuuuqq/wdsYxvbPD+2eSDbANjmfrZ5UdgGwDYvjG1sYxvb2MY2trGNbQBsc9VVV1111VVXXXXVVVdd9W9EcNVVV1111VX/D0TErbaxjW0AbGObfyvb3M82ALZ5INsA2MY2tgGwzfNjmweyzQtim/8JJHHVVVddddVVV1111VVX/Y9FcNVVV1111VX/T9jGNgC2eUFs84LY5l/LNg9kGwDb2MY2trENgG1sYxsA29jGNgC2+beSxANJ4vmRxANJ4vmRBIAk7icJSVy8eJFrrrnmwVx11VVXXXXVVVddddVV/50Irrrqqquuuur/gYi4NSIAsM0D2eb5sQ2AbV4Q27yobHM/2zw/tgGwDYBtHsg2ALb515DEVVddddVVV1111VVXXfX/EsFVV1111VVX/T8xTdOttgGwjW1sA2Ab29jmX2Kb58c2ALaxjW1sA2AbANvYBsA2trGNbWwDYBsA2wDYxjYviG3+PSTxryGJF0QS97t48SJnzpx5EFddddVVV1111VVXXXXVfyeCq6666qqrrvp/YrVa3Wob2/xr2eaBbHM/2/xr2eaBbGMb29jGNgC2uZ9tXlSS+PeSxAsjiQeSxP0kcdVVV1111VVXXXXVVVf9j0Bw1VVXXXXVVf9PtNZutc39bANgm+dmGwDb/GvY5rnZBsA2trENgG1sY5v72eZ+tvmvIol/iSReFJIAkMRVV1111VVXXXXVVVdd9d+O4Kqrrrrqqqv+n8jMW21jG9sA2OZFZZsHss39bPPC2OaBbHM/29jGNgC2sY1tbGMb2wDYxjb/HpL4r3Dx4kWuueaaB3PVVVddddVVV1111VVX/XciuOqqq6666qr/J1pr2MY2z802ALaxzb+XbWxjmxfENrZ5INu8ILb5zySJ5yaJfwtJXHXVVVddddVVV1111VX/IxBcddVVV1111f8Ttp9hGwDb2OaBbPNAtgGwzf1s80C2uZ9tAGzzQLYBsI1tbGOb+9nGNrYBsI1tbGMb29jmgWzzopLEf4fd3V2uueaaB3PVVVddddVVV1111VVX/XciuOqqq6666qr/JyTdahvb3M82tvnXsM1/BNvY5n62sY1tbPP82OaBbPNvIYnnRxIvCkk8P5K46qqrrrrqqquuuuqqq/5HIbjqqquuuuqq/yck3Wob29jmhbHNA9nmBbHNv8Q2L4htbANgm/vZxja2AbANgG0AbPPCSOKBJPFvIYn7SeK5SUIS95PEVVddddVVV1111VVXXfU/BsFVV1111VVX/T9im/vZ5n62eX5s8/zY5oFsA2AbANvYxjb3s41tbGMbANvczzYAtrHNA9nm30IS/1qSeFFJ4vmRxO7uLmfOnHkwV1111VVXXXXVVVddddV/J4Krrrrqqquu+n8iIm61jW1sA2Ab2wDYxja2eX5s80C2eVHY5vmxDYBtbANgm/vZxja2AbDNfyRJ/EeSxANJ4qqrrrrqqquuuuqqq676b0dw1VVXXXXVVf+PjON4q20AbPOisM2/hm2em20AbGMb2wDYBsA2tgGwjW0eyDYAtvmvIIl/r93dXa666qqrrrrqqquuuuqq/3YEV1111VVXXfX/SGvtVtvY5l9im+dmmweyzf1s869hGwDb3M82trGNbWxjmweyjW3+I0jiRSGJf4trrrnmwVx11VVXXXXVVVddddVV/50Irrrqqquuuur/kdYatrmfbQBs80C2eUFs80C2eX5sY5v72ea52QbANrZ5INvYBsA2tvmfQBL/EklcddVVV1111VVXXXXVVf8jEFx11VVXXXXV/yOttVttYxvbANgGwDYAtrmfbQBs86KwDYBt7mcb2wDYxja2sQ2AbQBsYxvb2OZ+trmfbf49JPHcJPH8SOKFkcRzk4QkAC5dugTANddc82Cuuuqqq6666qqrrrrqqv8uBFddddVVV131/0hm3mob2zw/tnlR2OaBbPNvYRsA2wDY5n62sc0LYpvnRxL/WpK46qqrrrrqqquuuuqqq/5PIrjqqquuuuqq/0emacI2ALaxDYBt/iW2eVHY5vmxzf1scz/bANgGwDa2uZ9tbGMbANv8d5DEv8WZM2cezFVXXXXVVVddddVVV13134Xgqquuuuqqq/4fiYjfsY1t7meb58c2ALZ5fmzzQLZ5INvYxjb3s41tAGxjGwDbANjmfraxzQPZBsA2ALZ5UUjiXyKJ5yaJf4kkJPFAkrh06RJXXXXVVVddddVVV1111X87gquuuuqqq676f8Y2trHNA9nmfrZ5fmzzQLZ5UdjmBbENgG0AbGOb+9nGNrb5jyCJ/wySuOqqq6666qqrrrrqqqv+xyG46qqrrrrqqv9HJN1qm/vZ5oFsY5t/K9sA2Oa52QbANraxzf1sA2Ab29jGNrb5rySJF4UkXhQXL17kmmuueTBXXXXVVVddddVVV1111X8Xgquuuuqqq676f8Y2trENgG1s8/zYBsA297PNA9nm38o2tgGwzfNjG9sA2MY2D2Sb/0iSeCBJ3E8S/xJJXHXVVVddddVVV1111VX/YxBcddVVV1111f8jEXGrbWwDYJt/C9s8kG2eH9vY5n62eX5sA2Ab29jGNra5n23uZxvb/FtJ4j+CJB5IEveTxMWLFzlz5syDuOqqq6666qqrrrrqqqv+uxBcddVVV1111f8/twLY5oFs80C2eSDbvChsA2Cb+9nGNgC2sY1tbGMbANs8kG0AbGOb/00kASCJq6666qqrrrrqqquuuuq/FcFVV1111VVX/T+zWq1utc39bGMbANsA2OZ+tnl+bPNAtvm3sg2AbWxjGwDb3M82trHNfwRJvCCSuOqqq6666qqrrrrqqqv+TyC46qqrrrrqqv+HbGMb2zw327wgtnkg2zw/tnl+bHM/29jmfrZ5INsA2OZfYpt/C0m8KCTxryWJixcvcs011zyYq6666qqrrrrqqquuuuq/C8FVV1111VVX/T8zjuOttnlR2OZfwzYPZBvbPJBtbHM/29gGwDa2sQ2AbQBsA2AbANsA2OZfIgkASTw/knh+JPH8SAJAElddddVVV1111VVXXXXV/3gEV1111VVXXfX/TGvtVtvYxja2AbDNC2Kb+9nmgWzzL7GNbV4Y2zyQbQBsA2AbANsA2OY/iiT+PSQhCQBJ3G93d5drrrnmwVx11VVXXXXVVVddddVV/10Irrrqqquuuur/GdvPsI1t7meb52abF5Vt7mcbANs8N9sA2MY2trGNbQBsYxvbANgGwDb/m0hCEpK46qqrrrrqqquuuuqqq/5bEVx11VVXXXXV/z+32gbANg9kG9vY5n62AbDN/WzzH802trmfbQBsA2Ab2/xnkcRzk8T9JPH8SOJ+krjqqquuuuqqq6666qqr/kchuOqqq6666qr/Z2xjG9sA2ObfwjYPZJv72eZ+trHN/WxzP9vY5oFsYxsA2wDY5n62sc39bPM/1e7uLmfOnHkwV1111VVXXXXVVVddddV/F4Krrrrqqquu+n8mIm7NTGxjGwDb2OZfYpt/Ddvczza2AbCNbe5nG9vY5n62AbDNfxRJvDCSeFFI4qqrrrrqqquuuuqqq676X4Hgqquuuuqqq/6fiYhbbXM/29zPNg9kGwDbPD+2eSDb/HvZxjYAtgGwjW1scz/b2OZ+tvmfZnd3l6uuuuqqq6666qqrrrrqvxXBVVddddVVV/0/NE3TrbaxzQtim+fHNg9km+fHNs+PbQBsYxvb2MY2trmfbQBs819JEg8kiftJ4oEk8dwkIQlJAFxzzTUP5qqrrrrqqquuuuqqq67670Jw1VVXXXXVVf8PtdZutc39bGMbANvY5l/DNvezzQPZxja2uZ9tXhDb2AbANgC2sQ2AbWzzbyWJf4kk/iNI4qqrrrrqqquuuuqqq676b0Vw1VVXXXXVVf8PZSa2sY1tXhjbANjmfrZ5UdjmgWzzQLaxjW1s80C2AbDN/WzzH0ES/xV2d3cBuOaaax7MVVddddVVV1111VVXXfXfgeCqq6666qqr/h9qrd1qm+dmmxeVbR7INvezzQtiGwDbPDfb2MY2ALYBsI1tHsg2/xJJvCCSeFFJ4oWRhCSuuuqqq6666qqrrrrqqv9xCK666qqrrrrq/6HW2q22sY1tbGOb52abB7LNC2ObF4VtHsg2trmfbWzz3GxjG9s8kG3+LSQhiedHEi+MJJ6bJO4nCUkAnDlz5sFcddVVV1111VVXXXXVVf8dCK666qqrrrrq/6HMxDbPj21sY5v72eb5sc0LYpv72cY2z802trmfbWxzP9vY5gWxjW3+vSTxopLEi2p3d5errrrqqquuuuqqq6666r8VwVVXXXXVVVf9P2T7GbaxjW1s86KyzQPZ5oFs80C2uZ9tbANgmxfENra5n21s86KwzXOTxL9EEv8Wknhukrjqqquuuuqqq6666qqr/kcguOqqq6666qr/hyTdahvb3M82tnlutvm3ss2/xDa2sY1tbHM/29jmfraxDYBt/qNJ4oEkcT9JvCgkcT9JXLx4kWuuuebBXHXVVVddddVVV1111VX/HQiuuuqqq6666v8hSbfaxja2eVHY5n62eSDbPJBtXhjbANjmBbHN/Wxjm/vZ5n86SVx11VVXXXXVVVddddVV/+0Irrrqqquuuur/Kdvczzb3s839bPOiss0LYhvb2OZ+trmfbWxjG9vYBsA2trmfbWzzn0kS/5F2d3c5c+bMg7jqqquuuuqqq6666qqr/jsQXHXVVVddddX/QxFxq21sY5v72QbANra5n20AbHM/2zw329zPNgC2eSDbPJBtnh/b3M82tnlutnkg2/xHk8RzkwSAJK666qqrrrrqqquuuuqq/9EIrrrqqquuuur/qWmabrUNgG1s869lm38L2wDY5n62sY1tbANgG9s8N9vY5j+LJJ4fSfxrSOKqq6666qqrrrrqqquu+m9FcNVVV1111VX/T03TdKttbPPC2OaBbPPC2OZ+tnlBbANgG9s8N9vczzYAtrHNA9nGNrb57yQJSQBI4n4XL17kmmuueTBXXXXVVVddddVVV1111X8Hgquuuuqqq676fyozeSDbANjm+bHN82ObF4VtbPPC2MY2tgGwjW0AbPPvIYl/DUncTxIvjCSemyQAJHHVVVddddVVV1111VVX/bchuOqqq6666qr/p2zfmpnYxjYAtgGwjW1s8/zY5oFs80C2eSDb3M82tgGwDYBtbPNAtrmfbR7INv9TSeJ+krh48SLXXHPNg7nqqquuuuqqq6666qqr/jsQXHXVVVddddX/U+M43mqb/yi2eX5s8/zYBsA2D2Qb2wDYxjYAtrGNbQBsY5t/D0lIQhIvKkkASOJFIYmrrrrqqquuuuqqq6666r8NwVVXXXXVVVf9P2X7GbaxjW1sA2Cb52YbANvczzbPzTb3s82/hm1scz/b/EeTBIAkJPFAknhukrjqqquuuuqqq6666qqr/lcjuOqqq6666qr/v261jW3uZ5vnZpsXxDYvKtvYxjb3sw2AbR7INgC2sY1tbGObfy9JvCCSeEEk8fxI4oXZ3d3lzJkzD+aqq6666qqrrrrqqquu+u9AcNVVV1111VX/T9nmfrZ5INu8ILZ5YWxzP9sA2OaBbGMbANvczza2AbDN82Mb29zPNv+RJPHvJQlJSOKqq6666qqrrrrqqquu+m9FcNVVV1111VX/T0XErZmJbQBs80C2sc39bPP82Oa52eZfyzb3sw2AbQBs89xsY5v/bJL499jd3eWqq6666qqrrrrqqquu+m9DcNVVV1111VX/j9nGNrYBsI1t/iW2eSDbvCC2eUFsA2Cb+9kGwDYAtgGwjW2eH9v8R5LECyOJ50cSz00S11xzzYO56qqrrrrqqquuuuqqq/47EFx11VVXXXXV/1MRcWspBdsA2OYFsQ2AbV4Q2zyQbR7INraxjW3uZxsA29gGwDYAtgGwzf1sY5v/DpJ4IEncTxJXXXXVVVddddVVV1111f84BFddddVVV131/9jR0dFvA9jmgWxzP9s8P7Z5Udnmudnmfra5n20eyDYAtrHNC2Kb/0iSuJ8kXlSSuJ8kdnd3AbjmmmsezFVXXXXVVVddddVVV131X43gqquuuuqqq/4fy0xsA2Ab29gGwDa2eWFs80C2eSDbvDC2eSDb3M82L4xtAGzz300SL4gkrrrqqquuuuqqq6666qr/NgRXXXXVVVdd9f9Ya+1W29jmX2IbANu8MLb517ANgG3uZxsA29jGNvezjW0AbPNAtvmPJIl/K0k80JkzZx7MVVddddVVV1111VVXXfVfjeCqq6666qqr/h9rrd1qG9sA2AbANi8q2zw329zPNvezjW1sY5v72eZ+tgGwzQPZxjb/0SQhCUlI4l8iCQBJvCCSuN+lS5e46qqrrrrqqquuuuqqq/7bEFx11VVXXXXV/2OZiW0AbANgm+dmmweyzQPZ5l9im+dmmweyDYBtAGxjG9v8d5PE8yOJF0QSV1111VVXXXXVVVddddV/K4Krrrrqqquu+n/M9jNsY5vnZhvb2OZ+tnlR2eZ+tnlBbANgGwDbANjmgWxjG9vYxjb3s82/hSSemyT+o128eJFrrrnmwVx11VVXXXXVVVddddVV/9UIrrrqqquuuur/MUm32gbANrZ5UdnmgWzz3GzzorANgG0AbANgG9vY5vmxjW0eyDb/XpK4nySuuuqqq6666qqrrrrqqv+1CK666qqrrrrq/zFJt9rGNvezjW2em20AbHM/2zyQbV4Y29jGNraxzf1s80C2eX5s8x9BEv/RJCGJB5LE7u4uZ86ceRBXXXXVVVddddVVV1111X81gquuuuqqq676f842trHNfwTbPJBtAGzz/NjmgWxzP9vczza2AbCNbR7INv+RJPHcJAEgCQBJ3E8SDySJq6666qqrrrrqqquuuuq/HcFVV1111VVX/T8WEbfa5n62uZ9t7mebF8Q2z802/xq2AbANgG3uZxvb/HeSxL+FJK666qqrrrrqqquuuuqq/1YEV1111VVXXfX/3DRNt9rGNs/NNra5n20AbPNAtnlutrmfbR7INraxzf1sA2AbANs8kG0AbHM/2wDY5l9DEi8KSfxbSOJ+ktjd3eWaa655MFddddVVV1111VVXXXXVfzWCq6666qqrrvp/rrV2q23uZxvb/GewjW0eyDb3sw2AbQBsYxvbANgGwDa2AbDNc7PNv4YkJCGJfwtJXHXVVVddddVVV1111VX/IxFcddVVV1111f9zmQmAbWzzorLNA9nmudnmRWGb52abB7LNv8Q2/16SeH4kASAJAEn8a1xzzTUP5qqrrrrqqquuuuqqq676r0Zw1VVXXXXVVf/PtdZutc1zs80D2QbANi+IbV4Q27wwtgGwzf1sYxvbANjGNvezzQtjm3+JJJ6bJO4niX+v3d1drrrqqquu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IQlJSEISAJKQxP0k8dxs88JI4r777ruVq6666qqrrrrqvwqVq6666qqrrrrqqquuuurfTNKD+R9MEveThCTuJwlJSEISkpCEJCQhCUlI4oEkIYl/i62tLa666qqrrrrqqv9SBFddddVVV1111VVXXXXVv5kkJPGCSOLfwjYviCT+tSRxP0lIQhKSkIQkJCEJSUhCEpKQBIAkJPFAkvjXODo6upWrrrrqqquuuuq/EsFVV1111VVXXXXVVVdd9W8mif8otnlBbPPCSOIFkcQLIwlJSEISEUFEIAlJAEhCEgCS+Lc6Ojq6lauuuuqqq6666r8SwVVXXXXVVVddddVVV131bxYRD+bfwDYvCtv8W0nigSQhCQBJSEISkpCEJCQhCUlIQhKSkASAJJ4f29jmX3LffffdylVXXXXVVVdd9V+JylVXXXXVVVddddVVV1317yIJSbwobCOJfy9JPDdJ3E8SL4gkACQhCUlIQhKSkIQkJCEJSQBI4n6S+NeyzebmJlddddVVV1111X8pgquuuuqqq6666qqrrrrq3ywiHsy/km3+s0hCEveTBIAkACQBIAkASQBIIiKQhCQkIQlJSAJAEpKQBIAkXhDbPD+r1epWrrrqqquuuuqq/0pUrrrqqquuuuqqq6666qr/0yQBIAkASUhCEgCSkIQkJCEJSUgCQBL/Ue65555ncNVVV1111VVX/VeictVVV1111VVXXXXVVVf9h5DEfyVJ/HtIQhKSkIQkJCEJSUhCEpIAkIQk/j26rruVq6666qqrrrrqvxKVq6666qqrrrrqqquuuurfrNb6YEk8kCT+J5DE/SQBIAlJSAJAEpKQhCQkIQlJSEISz00SkvjXsA3AfffddytXXXXVVVddddV/JYKrrrrqqquuuuqqq6666t/kdV7ndd7bNv/RbPOiksSLShIPJAlJSEISkogIIgJJSEISkpCEJCTxbyEJgGPHjnHVVVddddVVV/2XIrjqqquuuuqqq6666qqr/k1e53Ve5714Jkk8kCT+NWzzH0kSAJKQxP0kIQlJSEISkpCEJCQhCUlIQhKSkIQk/q1sA3DffffdylVXXXXVVVdd9V+J4Kqrrrrqqquuuuqqq676Nzl9+vRrA0jiP4NtAGzzwkjiX0sSkgCQhCQkIQlJSEISkpCEJAAk8W+1tbXFVVddddVVV131X47gqquuuuqqq6666qqrrvpXO3PmzIMAJPFAkvjvIIn7SeK5SUISkpDE/SQhCUlIQhKSkIQkJCEJAEkASOLf4ty5c7/NVVddddVVV131X43KVVddddVVV1111VVXXfWvds011zyY/2EkIYn7SQJAEg8kCUlIQhKSkIQkJCGJiEASkgCQxL/XfffddytXXXXVVVddddV/NSpXXXXVVVddddVVV1111b+ZJP4nk8T9JCEJAElIQhKSkIQkJCEJSUhCEgC2kYQkACTxgtjm+dna2uKqq6666qqrrvovR+Wqq6666qqrrrrqqquu+le77777br322mv530IS95MEgCQkIQlJRASSkIQkJCEJAEn8ex0dHd3KVVddddVVV131X43gqquuuuqqq6666qqrrvpXO3v27DMAHv3oR/M/kSReGEkASEISkpBERCAJSUgCQBKSkASAJF4Q27wgmclVV1111VVXXfVfjuCqq6666qqrrrrqqquu+jf5h3/4h99+zGMegyT+PWxzP9u8MJL415KEJCQhCUlIQhKSkIQkJCGJiEASkpDEA0niBbHNC/PKr/zKr81VV1111VVXXfVfjeCqq6666qqrrrrqqquu+jd7jdd4DQAkIYn/CpKQxAsiCQBJSOIFkQSAJCQhCUlIQhKSkIQkJCGJF8Q2z802D/Swhz3swVx11VVXXXXVVf/VCK666qqrrrrqqquuuuqqf5Mf+ZEf+ZzMvPVRj3oU/xUk8UCS+NeQhCQkIQlJSEISkpCEJCQhCUlIQhIviG1s86I4c+bMg7nqqquuuuqqq/6rEVx11VVXXXXVVVddddVV/yZnz5699ezZs7e+z/u8D//RbANgGwBJPD+SkMT9JPHcJCGJ+0lCEpKQhCQiAklIQhKSkIQkACQBIIl/q52dHa666qqrrrrqqv9yBFddddVVV1111VVXXXXVv8l9991364/8yI98zqlTp3izN3sz/jtJQhL3kwSAJO4nCUk8kCQkIQlJSEISkpCEJCQhCUkASOJFIYn7XXvttfzDP/zDb3PVVVddddVVV/1XI7jqqquuuuqqq6666qqr/s3Onj176z/8wz/89qu8yqvwiEc8gv9JJPH8SEISkpCEJCQREUhCEpKQBIAk/i1sc7/NzU3+/u///re56qqrrrrqqqv+qxFcddVVV1111VVXXXXVVf9m9913360/8iM/8jmn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//DbL/ZiL/baL/3SL81Lv/RLA3Dp0iVuv/12br/9dvb397nzzjuRxAsiCQBJSOJ+kpCEJCQhCUlIAqC1xjiOjOPIOI480H333Xfrb/3Wb333j/7oj34OV1111VVXXXXV/wZUrrrqqquuuuqqq6666qr/OEnWnzn6Uo2splft35FT5Wbt5X3xW6vvrr+++tb22vP3dq8FgC7lvTrf7iBpANdcc82DAe67775bP/MzP/N1zpw586AXf/EXf50Xe7EXe63XeZ3Xee9jx45x7NgxXvzFX5z77e3tsb+/z/7+PnfffTcRweHhIaUUjo6OqLVSSqHrOrquo+97dnZ2mM1mbG9vs1gs6Puevu+xzXK55IHuu+++WwF+9Ed/9LP/4R/+4Xfuu+++W7nqqquuuuqqq/43oXLVVVddddVVV1111VVX/YfyInbKLy6/tvzq8psICo2JI1+iY9ZesX9r5toE0BOnP2LlA57pzJkzDwY4e/bsrQBnz559xm/91m9992/91m9994/+6I9+DsCLvdiLvdaLvdiLvfY111zz4Bd7sRd77Z2dHXZ2dgB49KMfzb/Xfffdd+vZs2ef8fd///e/9Q//8A+/8w//8A+/zVVXXXXVVVdd9b8Zlauuuuqqq6666qqrrrrqP8z0GrN3m95645PLXw2/WH5//UO6a3qSOvX5sPry05svPjpvKS+BCIzrH65/REv2eRHcd999twLcd999t/7Wb/3W9wBcc801DwZ4sRd7sdcC9GIv9mKvBXDNNdc8+L777nvGNddc86AzZ848mOfj7Nmzt9533323/sM//MNvnzlz5sH/8A//8Dtnz5699b777ruVq6666qqrrrrq/xIqV1111VVXXXXVVVddddV/iHyp/g2nd9j4LF9fHjGdnt/SXmP2bjRPSEHHzFtxgkIHEH+y/sn4h/G3mTzwTNdcc82DAe67775beRHcd999twLcd999twL81m/91ndz1VVXXXXVVVdd9ZyoXHXVVVddddVVV1111VX/IXR3e5L2fcHXMLKhHW9oh+dmXP50/VPdDx19qnbzHq666qqrrrrqqqv+c1G56qqrrrrqqquuuuqqq/5D6Fy7vf/a/Xdtr9q/Y75U/4Z5Y30MWzrhtHXJ9+pp01/UP1r/ePzD+FvazXu46qqrrrrqqquu+s9H5aqrrrrqqquuuuqqq676j5E03deeXn5l9Y3lt9bfTaVDBAaSidErLdln8sDzcebMmQcB3Hfffbdy1VVXXXXVVVdd9R+DylVXXXXVVVddddVVV131H8dYR97jyHv8K11zzTUPBjh79uwzuOqqq6666qqrrvqPQXDVVVddddVVV1111VVX/bfwmXgwV1111VVXXXXVVf+5CK666qqrrrrqqquuuuqq/3LttWfvvf6cY7/lM/Fgrrrqqquuuuqqq/7zEFx11VVXXXXVVVddddVV/+Xai3Wv5TPlwevPOfZbPNM111zzYID77rvvVq666qqrrrrqqqv+YxBcddVVV1111VVXXXXVVf/l2mvP3xvAZ8qDx3fY+CyAM2fOPBjg7Nmzt3LVVVddddVVV131H4PKVVddddVVV1111VVXXfVfqr327L14gOkdNz67PG78Ha666qqrrrrqqqv+41G56qqrrrrqqquuuuqqq/5LtRfrXpvnMnzY1ndfc801DwK47777buWqq6666qqrrrrqPwaVq6666qqrrrrqqquuuuq/VHvt+XvzXHymPIirrrrqqquuuuqq/3gEV1111VVXXXXVVVddddV/qfiH8bd5LjrbbuWqq6666qqrrrrqPx7BVVddddVVV1111VVXXfVfqv+G/feOfxh/m2fS2XbrjT+6+GyA++6771auuuqqq6666qqr/uMQXHXVVVddddVVV1111VX/pXQ2nzH77EuvM//QCw8B6L/h4H2uO3viVoCzZ8/eylVXXXXVVVddddV/HCpXXXXVVVddddVVV1111X+r9tjutXgcv83/ItvEsYe7PvoGyi0AT9D4d7fTnjbg4Qxx7cPdPfYMce0RPvwHxr++V+2uhMZVV1111VVXXfVfjcpVV1111VVXXXXVVVdd9d9CZ/PW+Ifxt/PFute+5tw1twLcd999t/I/3E2UB72+F2/5ll68y6Pcvfgar39CR9/zfXH4jWt79Y7eeN+38sa73kR58L20O79LB1/7Cyx/7KzyHq666qqrrrrqqv9qVK666qqrrrrqqquuuuqq/1a+Jh7M/wIB8Qh3j303b3zwW3njXY8RJwA20fY7eeP9ft/rX3+060u8t7c+8hRxBuBB1Ie/izc/8G80/tl5hvsSkquuuuqqq6666r8SwVVXXXXVVVddddVVV1313yb+YfxtgDNnzjyY/+Fewv3LfWxuf+47ePO9t4idpzE96e8Z/3KP3N0hjr+0u1d8S2+8yznavb+i5U8/VdMTJjw+wvWx1xI3dKjnqquuuuqqq676r0Zw1VVXXXXVVVddddVVV/23KY8bf6deM7tx/jI7rwFw33333cr/UK/G7PVeiv4VRjz+kda/+dWx/9k/pINvu0ieB3gdz9+0R7NvjYMv/+TY/YA/Yv1bh/ggpDhBnO6g46qrrrrqqquu+q9G5aqrrrrqqquuuuqqq676b/GLv/iLP/zwhz/8nfq+547r7ni1e++9l4/+6I/+7N/+7d/+nvvuu+9W/of5LVa/9BDVR14gz/5YHH33rUxPfh1mb5YmAV6C/uV/SIff+nta/+pF8tyTNT3uDrdbd8nzB7CXkFx11VVXXXXVVf/VqFx11VVXXXXVVVddddVV/+We/OQn769WK2azGc8055n+/M///Omf+Zmf+Tr/8A//8Nv8G73XJT77r+f89t/M+G3+gzxe4998I/tfdI/anUt8BLBBbFZUAYz9x1r/zkXyPMDfM/zlJE+jPPyV1n+8xiuuuuqqq6666qr/alSuuuqqq6666qqrrrrqqv9StVa6rtvq+x6Apz/96UjiSU960jPe8A3f8EFv8AZvsPuMZzzjt17iJV5C/Bu81JrXfs89Pus99/iseyq3/s2M3/6VTb7nb2b8Nv9OT9f0ZB7gWseNC7QBcJE8dwft1hEPAH+h4Q//QsMfctVVV1111VVX/XeictVVV1111VVXXXXVVVf9l/rO7/zOn3ujN3qjNTCzzf0e9KAHPeiVX/mVn/DHf/zHjwa4buLB/BtcN/Fgnum6iQdfN/Heb3TIe99becZfz/itX9nke/5mxm/zr/Ag14ddQ1wv0FM0Pf4CeU6gh9I9chNtA9xFu32Fj3imk8TpEQ+H+CAhueqqq6666qqr/jtQueqqq6666qqrrrrqqqv+S/V9vzUMw4zn44u+6Ise/Tqv8zoA/MDdPJ3/QNdOPOiNJt77jQ5573sqt/7KBt/9vcf4HF4E7+SN93tlZq+zxAefz6WPv6A8d8Zx3cNcHzVDM4B9eXfCU0H1YS6PeiMv3vZutdt+V+tfvY92N1ddddVVV1111X8HKlddddVVV1111VVXXXXV/xhPfvKTbwNuAfiSk7y3QDyAwQLxAAYLxAN84gW+i+fjnsqtv7LBd//qJt9zT+VWXkQvTf+KL+P+lS6S504qTh8nTr4pG+/Qo9khebhN7IQpJxSnbnJ98Lt544NezfPXv83TU58a0xPPqd2X0Ljqqquuuuqqq/6rUbnqqquuuuqqq6666qqr/kt90id90hv/zu/8zkoSJ06cuHTx4sVjPNMHfuAH3sIz/eom38O/wXUTD+YB7qnc+isbfPevbPLd91aewb/BAbk/4uE4cfL1PX/Ll2f26m+di3f9Ha1+Ze7ZxiOIx95EefDbeuM9XpnZa9/i+tABD3eoPeOA3OOqq6666qqrrvrvQuWqq6666qqrrrrqqquu+i/1jGc8Yw3wYR/2Yb/7Dd/wDa8piQeyzUMf+lDxb3RP5dZf2eS77ync+qubfM89lVv5d3oK0xNelnyV05Rr38dbH4nhLO3e39X6V48RJ25wufkW6kNvcf1AgAO89zta/crXaP9znqbpSQmNq6666qqrrrrqvwOVq6666qqrrrrqqquuuuq/3IMf/GDdeuut/vqv/3q+8zu/80lPecpTTnzGZ3zG9mKxmL/O67xOn5n8e3zpSd6H/0C/qdXPP4buJV/OerUe9fep3f0zLH/wrzX8yQxmt7g+9LF0Lw1wN+3239f6179TB199m6anJzSuuuqqq6666qr/LuhBD3oQV1111VVXXXXVVVddddV/n3d5l3d5nWuuueahP/uzP/uDT3/605f8DxQmXpf5m7+yZ68VIv6B8a9/S6tfuEieX1gbb+bFO74E3cuuYfgbDX/ye6x/bU+5azBXXXXVVVddddV/J/SgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6v4R65e3iqxQVvYAAAAAElFTkSuQmCC) + + diff --git a/src/wasm-lib/kcl/src/docs/mod.rs b/src/wasm-lib/kcl/src/docs/mod.rs index 1df0790539..774a891112 100644 --- a/src/wasm-lib/kcl/src/docs/mod.rs +++ b/src/wasm-lib/kcl/src/docs/mod.rs @@ -1091,6 +1091,39 @@ mod tests { ); } + #[test] + #[allow(clippy::literal_string_with_formatting_args)] + fn get_autocomplete_snippet_scale() { + let scale_fn: Box = Box::new(crate::std::transform::Scale); + let snippet = scale_fn.to_autocomplete_snippet().unwrap(); + assert_eq!( + snippet, + r#"scale(${0:%}, scale = [${1:3.14}, ${2:3.14}, ${3:3.14}])${}"# + ); + } + + #[test] + #[allow(clippy::literal_string_with_formatting_args)] + fn get_autocomplete_snippet_translate() { + let translate_fn: Box = Box::new(crate::std::transform::Translate); + let snippet = translate_fn.to_autocomplete_snippet().unwrap(); + assert_eq!( + snippet, + r#"translate(${0:%}, translate = [${1:3.14}, ${2:3.14}, ${3:3.14}])${}"# + ); + } + + #[test] + #[allow(clippy::literal_string_with_formatting_args)] + fn get_autocomplete_snippet_rotate() { + let rotate_fn: Box = Box::new(crate::std::transform::Rotate); + let snippet = rotate_fn.to_autocomplete_snippet().unwrap(); + assert_eq!( + snippet, + r#"rotate(${0:%}, roll = ${1:3.14}, pitch = ${2:3.14}, yaw = ${3:3.14})${}"# + ); + } + // We want to test the snippets we compile at lsp start. #[test] fn get_all_stdlib_autocomplete_snippets() { diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index 9a63628e65..bf846fb39c 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -866,7 +866,7 @@ impl ExecutorContext { } #[cfg(test)] -async fn parse_execute(code: &str) -> Result<(crate::Program, EnvironmentRef, ExecutorContext, ExecState)> { +pub(crate) async fn parse_execute(code: &str) -> Result<(crate::Program, EnvironmentRef, ExecutorContext, ExecState)> { let program = crate::Program::parse_no_errs(code)?; let ctx = ExecutorContext { diff --git a/src/wasm-lib/kcl/src/std/mod.rs b/src/wasm-lib/kcl/src/std/mod.rs index 014ec7d022..ed55d1f3e6 100644 --- a/src/wasm-lib/kcl/src/std/mod.rs +++ b/src/wasm-lib/kcl/src/std/mod.rs @@ -23,6 +23,7 @@ pub mod shapes; pub mod shell; pub mod sketch; pub mod sweep; +pub mod transform; pub mod types; pub mod units; pub mod utils; @@ -156,6 +157,9 @@ lazy_static! { Box::new(crate::std::assert::AssertGreaterThan), Box::new(crate::std::assert::AssertLessThanOrEq), Box::new(crate::std::assert::AssertGreaterThanOrEq), + Box::new(crate::std::transform::Scale), + Box::new(crate::std::transform::Translate), + Box::new(crate::std::transform::Rotate), ]; } diff --git a/src/wasm-lib/kcl/src/std/transform.rs b/src/wasm-lib/kcl/src/std/transform.rs new file mode 100644 index 0000000000..96ee9f4506 --- /dev/null +++ b/src/wasm-lib/kcl/src/std/transform.rs @@ -0,0 +1,713 @@ +//! Standard library transforms. + +use anyhow::Result; +use derive_docs::stdlib; +use kcmc::{ + each_cmd as mcmd, + length_unit::LengthUnit, + shared, + shared::{Point3d, Point4d}, + ModelingCmd, +}; +use kittycad_modeling_cmds as kcmc; + +use crate::{ + errors::{KclError, KclErrorDetails}, + execution::{ExecState, KclValue, Solid}, + std::Args, +}; + +/// Scale a solid. +pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result { + let solid = args.get_unlabeled_kw_arg("solid")?; + let scale = args.get_kw_arg("scale")?; + let global = args.get_kw_arg_opt("global")?; + + let solid = inner_scale(solid, scale, global, exec_state, args).await?; + Ok(KclValue::Solid { value: solid }) +} + +/// Scale a solid. +/// +/// By default the transform is applied in local sketch axis, therefore the origin will not move. +/// +/// If you want to apply the transform in global space, set `global` to `true`. The origin of the +/// model will move. If the model is not centered on origin and you scale globally it will +/// look like the model moves and gets bigger at the same time. Say you have a square +/// `(1,1) - (1,2) - (2,2) - (2,1)` and you scale by 2 globally it will become +/// `(2,2) - (2,4)`...etc so the origin has moved from `(1.5, 1.5)` to `(2,2)`. +/// +/// ```no_run +/// // Scale a pipe. +/// +/// // Create a path for the sweep. +/// sweepPath = startSketchOn('XZ') +/// |> startProfileAt([0.05, 0.05], %) +/// |> line(end = [0, 7]) +/// |> tangentialArc({ +/// offset: 90, +/// radius: 5 +/// }, %) +/// |> line(end = [-3, 0]) +/// |> tangentialArc({ +/// offset: -90, +/// radius: 5 +/// }, %) +/// |> line(end = [0, 7]) +/// +/// // Create a hole for the pipe. +/// pipeHole = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 1.5, +/// }, %) +/// +/// sweepSketch = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 2, +/// }, %) +/// |> hole(pipeHole, %) +/// |> sweep(path = sweepPath) +/// |> scale( +/// scale = [1.0, 1.0, 2.5], +/// ) +/// ``` +#[stdlib { + name = "scale", + feature_tree_operation = false, + keywords = true, + unlabeled_first = true, + args = { + solid = {docs = "The solid to scale."}, + 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."} + } +}] +async fn inner_scale( + solid: Box, + scale: [f64; 3], + global: Option, + exec_state: &mut ExecState, + args: Args, +) -> Result, KclError> { + let id = exec_state.next_uuid(); + + args.batch_modeling_cmd( + id, + ModelingCmd::from(mcmd::SetObjectTransform { + object_id: solid.id, + transforms: vec![shared::ComponentTransform { + scale: Some(shared::TransformBy::> { + property: Point3d { + x: scale[0], + y: scale[1], + z: scale[2], + }, + set: false, + is_local: !global.unwrap_or(false), + }), + translate: None, + rotate_rpy: None, + rotate_angle_axis: None, + }], + }), + ) + .await?; + + Ok(solid) +} + +/// Move a solid. +pub async fn translate(exec_state: &mut ExecState, args: Args) -> Result { + let solid = args.get_unlabeled_kw_arg("solid")?; + let translate = args.get_kw_arg("translate")?; + let global = args.get_kw_arg_opt("global")?; + + let solid = inner_translate(solid, translate, global, exec_state, args).await?; + Ok(KclValue::Solid { value: solid }) +} + +/// Move a solid. +/// +/// ```no_run +/// // Move a pipe. +/// +/// // Create a path for the sweep. +/// sweepPath = startSketchOn('XZ') +/// |> startProfileAt([0.05, 0.05], %) +/// |> line(end = [0, 7]) +/// |> tangentialArc({ +/// offset: 90, +/// radius: 5 +/// }, %) +/// |> line(end = [-3, 0]) +/// |> tangentialArc({ +/// offset: -90, +/// radius: 5 +/// }, %) +/// |> line(end = [0, 7]) +/// +/// // Create a hole for the pipe. +/// pipeHole = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 1.5, +/// }, %) +/// +/// sweepSketch = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 2, +/// }, %) +/// |> hole(pipeHole, %) +/// |> sweep(path = sweepPath) +/// |> translate( +/// translate = [1.0, 1.0, 2.5], +/// ) +/// ``` +#[stdlib { + name = "translate", + feature_tree_operation = false, + keywords = true, + unlabeled_first = true, + args = { + solid = {docs = "The solid to move."}, + translate = {docs = "The amount to move the solid 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."} + } +}] +async fn inner_translate( + solid: Box, + translate: [f64; 3], + global: Option, + exec_state: &mut ExecState, + args: Args, +) -> Result, KclError> { + let id = exec_state.next_uuid(); + + args.batch_modeling_cmd( + id, + ModelingCmd::from(mcmd::SetObjectTransform { + object_id: solid.id, + transforms: vec![shared::ComponentTransform { + translate: Some(shared::TransformBy::> { + property: shared::Point3d { + x: LengthUnit(translate[0]), + y: LengthUnit(translate[1]), + z: LengthUnit(translate[2]), + }, + set: false, + is_local: !global.unwrap_or(false), + }), + scale: None, + rotate_rpy: None, + rotate_angle_axis: None, + }], + }), + ) + .await?; + + Ok(solid) +} + +/// Rotate a solid. +pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result { + let solid = args.get_unlabeled_kw_arg("solid")?; + let roll = args.get_kw_arg_opt("roll")?; + let pitch = args.get_kw_arg_opt("pitch")?; + let yaw = args.get_kw_arg_opt("yaw")?; + let axis = args.get_kw_arg_opt("axis")?; + let angle = args.get_kw_arg_opt("angle")?; + let global = args.get_kw_arg_opt("global")?; + + // Check if no rotation values are provided. + if roll.is_none() && pitch.is_none() && yaw.is_none() && axis.is_none() && angle.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `roll`, `pitch`, and `yaw` or `axis` and `angle` to be provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + + // If they give us a roll, pitch, or yaw, they must give us all three. + if roll.is_some() || pitch.is_some() || yaw.is_some() { + if roll.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `roll` to be provided when `pitch` or `yaw` is provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + if pitch.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `pitch` to be provided when `roll` or `yaw` is provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + if yaw.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `yaw` to be provided when `roll` or `pitch` is provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + + // Ensure they didn't also provide an axis or angle. + if axis.is_some() || angle.is_some() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `axis` and `angle` to not be provided when `roll`, `pitch`, and `yaw` are provided." + .to_string(), + source_ranges: vec![args.source_range], + })); + } + } + + // If they give us an axis or angle, they must give us both. + if axis.is_some() || angle.is_some() { + if axis.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `axis` to be provided when `angle` is provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + if angle.is_none() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `angle` to be provided when `axis` is provided.".to_string(), + source_ranges: vec![args.source_range], + })); + } + + // Ensure they didn't also provide a roll, pitch, or yaw. + if roll.is_some() || pitch.is_some() || yaw.is_some() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Expected `roll`, `pitch`, and `yaw` to not be provided when `axis` and `angle` are provided." + .to_string(), + source_ranges: vec![args.source_range], + })); + } + } + + // Validate the roll, pitch, and yaw values. + if let Some(roll) = roll { + if !(-360.0..=360.0).contains(&roll) { + return Err(KclError::Semantic(KclErrorDetails { + message: format!("Expected roll to be between -360 and 360, found `{}`", roll), + source_ranges: vec![args.source_range], + })); + } + } + if let Some(pitch) = pitch { + if !(-360.0..=360.0).contains(&pitch) { + return Err(KclError::Semantic(KclErrorDetails { + message: format!("Expected pitch to be between -360 and 360, found `{}`", pitch), + source_ranges: vec![args.source_range], + })); + } + } + if let Some(yaw) = yaw { + if !(-360.0..=360.0).contains(&yaw) { + return Err(KclError::Semantic(KclErrorDetails { + message: format!("Expected yaw to be between -360 and 360, found `{}`", yaw), + source_ranges: vec![args.source_range], + })); + } + } + + // Validate the axis and angle values. + if let Some(angle) = angle { + if !(-360.0..=360.0).contains(&angle) { + return Err(KclError::Semantic(KclErrorDetails { + message: format!("Expected angle to be between -360 and 360, found `{}`", angle), + source_ranges: vec![args.source_range], + })); + } + } + + let solid = inner_rotate(solid, roll, pitch, yaw, axis, angle, global, exec_state, args).await?; + Ok(KclValue::Solid { value: solid }) +} + +/// Rotate a solid. +/// +/// ### Using Roll, Pitch, and Yaw +/// +/// When rotating a part in 3D space, "roll," "pitch," and "yaw" refer to the +/// three rotational axes used to describe its orientation: roll is rotation +/// around the longitudinal axis (front-to-back), pitch is rotation around the +/// lateral axis (wing-to-wing), and yaw is rotation around the vertical axis +/// (up-down); essentially, it's like tilting the part on its side (roll), +/// tipping the nose up or down (pitch), and turning it left or right (yaw). +/// +/// So, in the context of a 3D model: +/// +/// - **Roll**: Imagine spinning a pencil on its tip - that's a roll movement. +/// +/// - **Pitch**: Think of a seesaw motion, where the object tilts up or down along its side axis. +/// +/// - **Yaw**: Like turning your head left or right, this is a rotation around the vertical axis +/// +/// ### Using an Axis and Angle +/// +/// When rotating a part around an axis, you specify the axis of rotation and the angle of +/// rotation. +/// +/// ```no_run +/// // Rotate a pipe with roll, pitch, and yaw. +/// +/// // Create a path for the sweep. +/// sweepPath = startSketchOn('XZ') +/// |> startProfileAt([0.05, 0.05], %) +/// |> line(end = [0, 7]) +/// |> tangentialArc({ +/// offset: 90, +/// radius: 5 +/// }, %) +/// |> line(end = [-3, 0]) +/// |> tangentialArc({ +/// offset: -90, +/// radius: 5 +/// }, %) +/// |> line(end = [0, 7]) +/// +/// // Create a hole for the pipe. +/// pipeHole = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 1.5, +/// }, %) +/// +/// sweepSketch = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 2, +/// }, %) +/// |> hole(pipeHole, %) +/// |> sweep(path = sweepPath) +/// |> rotate( +/// roll = 10, +/// pitch = 10, +/// yaw = 90, +/// ) +/// ``` +/// +/// ```no_run +/// // Rotate a pipe about an axis with an angle. +/// +/// // Create a path for the sweep. +/// sweepPath = startSketchOn('XZ') +/// |> startProfileAt([0.05, 0.05], %) +/// |> line(end = [0, 7]) +/// |> tangentialArc({ +/// offset: 90, +/// radius: 5 +/// }, %) +/// |> line(end = [-3, 0]) +/// |> tangentialArc({ +/// offset: -90, +/// radius: 5 +/// }, %) +/// |> line(end = [0, 7]) +/// +/// // Create a hole for the pipe. +/// pipeHole = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 1.5, +/// }, %) +/// +/// sweepSketch = startSketchOn('XY') +/// |> circle({ +/// center = [0, 0], +/// radius = 2, +/// }, %) +/// |> hole(pipeHole, %) +/// |> sweep(path = sweepPath) +/// |> rotate( +/// axis = [0, 0, 1.0], +/// angle = 90, +/// ) +/// ``` +#[stdlib { + name = "rotate", + feature_tree_operation = false, + keywords = true, + unlabeled_first = true, + args = { + solid = {docs = "The solid 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}, + 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}, + axis = {docs = "The axis to rotate around. Must be used with `angle`.", include_in_snippet = false}, + angle = {docs = "The angle to rotate in degrees. Must be used with `axis`. Must be between -360 and 360.", include_in_snippet = false}, + 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."} + } +}] +#[allow(clippy::too_many_arguments)] +async fn inner_rotate( + solid: Box, + roll: Option, + pitch: Option, + yaw: Option, + axis: Option<[f64; 3]>, + angle: Option, + global: Option, + exec_state: &mut ExecState, + args: Args, +) -> Result, KclError> { + let id = exec_state.next_uuid(); + + if let (Some(roll), Some(pitch), Some(yaw)) = (roll, pitch, yaw) { + args.batch_modeling_cmd( + id, + ModelingCmd::from(mcmd::SetObjectTransform { + object_id: solid.id, + transforms: vec![shared::ComponentTransform { + rotate_rpy: Some(shared::TransformBy::> { + property: shared::Point3d { + x: roll, + y: pitch, + z: yaw, + }, + set: false, + is_local: !global.unwrap_or(false), + }), + scale: None, + rotate_angle_axis: None, + translate: None, + }], + }), + ) + .await?; + } + + if let (Some(axis), Some(angle)) = (axis, angle) { + args.batch_modeling_cmd( + id, + ModelingCmd::from(mcmd::SetObjectTransform { + object_id: solid.id, + transforms: vec![shared::ComponentTransform { + rotate_angle_axis: Some(shared::TransformBy::> { + property: shared::Point4d { + x: axis[0], + y: axis[1], + z: axis[2], + w: angle, + }, + set: false, + is_local: !global.unwrap_or(false), + }), + scale: None, + rotate_rpy: None, + translate: None, + }], + }), + ) + .await?; + } + + Ok(solid) +} + +#[cfg(test)] +mod tests { + use crate::execution::parse_execute; + use pretty_assertions::assert_eq; + + const PIPE: &str = r#"sweepPath = startSketchOn('XZ') + |> startProfileAt([0.05, 0.05], %) + |> line(end = [0, 7]) + |> tangentialArc({ + offset: 90, + radius: 5 + }, %) + |> line(end = [-3, 0]) + |> tangentialArc({ + offset: -90, + radius: 5 + }, %) + |> line(end = [0, 7]) + +// Create a hole for the pipe. +pipeHole = startSketchOn('XY') + |> circle({ + center = [0, 0], + radius = 1.5, + }, %) +sweepSketch = startSketchOn('XY') + |> circle({ + center = [0, 0], + radius = 2, + }, %) + |> hole(pipeHole, %) + |> sweep( + path = sweepPath, + )"#; + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_empty() { + let ast = PIPE.to_string() + + r#" + |> rotate() +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 638, 0])], message: "Expected `roll`, `pitch`, and `yaw` or `axis` and `angle` to be provided." }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_axis_no_angle() { + let ast = PIPE.to_string() + + r#" + |> rotate( + axis = [0, 0, 1.0], + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 668, 0])], message: "Expected `angle` to be provided when `axis` is provided." }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_angle_no_axis() { + let ast = PIPE.to_string() + + r#" + |> rotate( + angle = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 659, 0])], message: "Expected `axis` to be provided when `angle` is provided." }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_angle_out_of_range() { + let ast = PIPE.to_string() + + r#" + |> rotate( + axis = [0, 0, 1.0], + angle = 900, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 685, 0])], message: "Expected angle to be between -360 and 360, found `900`" }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_angle_axis_yaw() { + let ast = PIPE.to_string() + + r#" + |> rotate( + axis = [0, 0, 1.0], + angle = 90, + yaw = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 697, 0])], message: "Expected `roll` to be provided when `pitch` or `yaw` is provided." }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_yaw_no_pitch() { + let ast = PIPE.to_string() + + r#" + |> rotate( + yaw = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 657, 0])], message: "Expected `roll` to be provided when `pitch` or `yaw` is provided." }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_yaw_out_of_range() { + let ast = PIPE.to_string() + + r#" + |> rotate( + yaw = 900, + pitch = 90, + roll = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 689, 0])], message: "Expected yaw to be between -360 and 360, found `900`" }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_roll_out_of_range() { + let ast = PIPE.to_string() + + r#" + |> rotate( + yaw = 90, + pitch = 90, + roll = 900, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 689, 0])], message: "Expected roll to be between -360 and 360, found `900`" }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_pitch_out_of_range() { + let ast = PIPE.to_string() + + r#" + |> rotate( + yaw = 90, + pitch = 900, + roll = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 689, 0])], message: "Expected pitch to be between -360 and 360, found `900`" }"#.to_string() + ); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_rotate_roll_pitch_yaw_with_angle() { + let ast = PIPE.to_string() + + r#" + |> rotate( + yaw = 90, + pitch = 90, + roll = 90, + angle = 90, + ) +"#; + let result = parse_execute(&ast).await; + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().to_string(), + r#"semantic: KclErrorDetails { source_ranges: [SourceRange([630, 704, 0])], message: "Expected `axis` and `angle` to not be provided when `roll`, `pitch`, and `yaw` are provided." }"#.to_string() + ); + } +} diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_rotate0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_rotate0.png new file mode 100644 index 0000000000000000000000000000000000000000..e3685ba26c87dd4212f3461a073c72a2f3f9c04d GIT binary patch literal 71190 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 hQ>y<#d*sZ(=%${%^$$>i<7g)al0m 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⪚-k~2RFBK*zINyNeQ|A|J-(w(e_NjI=07$NUA6eVC1e+9b zU_$#Zp%Z?coSvR8wRw{tk`(buaWGPB=5R(zej=G}p>i1cPZ={c5wzAk1l^`vz5=gJ zMvnf0*obI>nmdp}LrWWr+XxR&(|{kU+WUkCrrwm`+9TIk`95e+082Ac{{CRzw*U|6 zDd}$5mP9xTyF6=`k1|SZE}s-^(&>Dmv$x;EH&3Lwg5(pVapVmRq8^Mmccv&acJpi7 zX{5QI?P+%HN&=uyF2(vAU`cE&Bm^}5qNWCfKofQzxb4ZRI8j=m}S__sFhqwmkr=g8&JMjdL`ey+m^^R4?3@b1ci}Brr$P* zx)p80Rav&NLJHLS*IU`{Mcm@aF(Mk*YJL&Hy!B-i9HT+ef6Gv*{R+q8jZ4Pz?us~PxBj5Ws3l89h94}O9e?w+@X;XHKKFq{Xs&B7LA zI1k>H0;ti575NEb1i`#D4CkSHX$%f&dh=$4BSc^Hw0k$&4G jq9d%_|0b^(+xdFmx%(-9T#6;Z&!L0)@BH$1>B;{9e#Fg? literal 0 HcmV?d00001 diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_scale0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_scale0.png new file mode 100644 index 0000000000000000000000000000000000000000..547fbbbc07a8c713fd8243f3146b6058c14d3076 GIT binary patch literal 59689 zcmeFadstOv7C(N>lrjx3O;{>;!An_UnRr7{!<4*D&XffTnI&VONL~O@j%nU9MbR=P z!O^jsAvuPqfJYNG^TL!PsGvtBAwzB=cR2g^S?k^VoOf@?`Tm~g`{(z0W)#hH_I}^B z)@OazH!s z)_kY?Tc4dOQ^Jea|8(xF55~{jHz((y`oGzq#DDf`Qv8bpx);|hN_l_rm#c>bUrHMB z`zYsI-|pRaT8Facs+V$Thgu%ns`0>qK3dRw;QjC*I8@%`2Q_T+R^_D5^Lz4n!i2R zbxHoYZBEUn%|AcTdBptub1Ndg4BmG*|G3x1f!Wi_-;O`KZ9tIglFGYR{4>88QvSB> zFBjs6NA-1{XI)x#?dJj4!mUeF@E4U&nX2$}qA4gdKE2{-U2&>T*J>>-hU>M~`{#A( zm)E6N7N%V&Ov|Q6-53yb!K-?E@V?0Y%5r=`OdWlBZpqy%2kQO57&3pA(-FMxA^bmL zMsaG%QUAy4d&}#yLK~j6)WliN&^KxS z$0lyPpA)E51S%tVqjZL&%$01+wxZ#LcYSjY+bxd^!_qGfYerigc79-X>GF_}5YzW> zK4ccfVw~U_kV(aF4gFo=jx!kM!o6kKNGG|U%XxTd+mGAIsAc@;0imfDaM|NZv zQ@?<;>Z?f&_+Nl`?QZYdA%+*&l6N|0zTGS<+-_pqGb4WN5MTOB_Vn;B^#69pLp*2B zpTF6>eoCu$AG(`DHg9{k*S58DLYlX2SMT4sOP603cF7wYyAAIVR1lKQ>2n41XB~K|_vHA0Z5f^T z>5d&;UVSDcG_*szEmJP%=Dypp<-vmo`|SD8!YjGc?v7GpE&XIsu^#0Y>8LH%e;Mf z+Q0o0A=0qUPo3W6@=E*ILlI@&WjL-dKYZMQ=jNSRR}&A`WdFO(vN^>;aW0>_yEp6l zsIS)`U(>i-(Xksdn)~X!gDqyK18*zb`V46H{d#<`Q;yfhIi`^E+>qvPcgneZ%G25X zQIl`(8Rv4!({wO0I%K{#9y_|dDR$#W?(Svv<8IY# zdiWTb^V^OO;U}~Aa>*D+?!ENK8#$L-9`p2gmVYxH+`pb*#=RR}qCU#Fg07A?s&$^# z$&_QdoNxWnQ+b*m>pHG|W{i7r??-*dy%Qe3)$yFY`)a+HOJ2jgbImc&gOM{r%10hN zoB+KQ3(uTLub8*z?exL@5M8`m&gJ|Mv46Cd!@evzd_^vAqU;21F_OO|`GwwY@jZ#44(ez+ zNYadt&i;q9H>u?qUOkKA<d!Rhu&$N($L?YGp$MAdkqtrnV@(?~csCxT0`K)A(Zl!(X2m)E`+P$P>;ZOb z!k(L;MJ_AdUH=gp8l%$#y(WHtF2nO+O$vXuQ%+i+#&7Q|5h(5Lm8XTu&7`N6_khA< z-%PO)b7K!B;K|LpuGK&CBU$ynKlj^8Qasn6XczDUy|oYY1roy^1{SjG)k)ssCQJTp z!g>~U;8{=Scj?2i8zJ+6j=pJKjhLYm+sAACn}w8zzQ;Jj+D}%)%K9jM_QAS(oE{3W zBCIO^kx}Cl#yk^!HX^#RveE$$L`!vmwIVrd?(J=)u+Ub<8Nxo;T+JpRR+u+wt9#k< zaR$un?)XYVoSfWDpv}SkkTszOy)&s?NmB;DUbpL0TJfjKLuUZC()yF6NKnuh6a8$k zQ5hxQW|Sm!AVc$5BQ~FmX8-y5n?G{5^~B-<+cLWgXqVo#a!fBUz@=Ec$B@S6s`u(~ zU)}-CpYl}NYgktw43ufYN4fpev4RS>=LXPIVV|(m0)l%scK}U!JwC3u;tL)CEuR