From 595675a08a6eaac033543a8a9b1c30aebb779eec Mon Sep 17 00:00:00 2001 From: lixiang <504331699@qq.com> Date: Wed, 9 Jul 2025 16:36:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A4=84=E7=90=86=E5=99=A8=E5=88=9D?= =?UTF-8?q?=E6=AD=A5=E5=AE=9E=E7=8E=B0---=E6=9C=89=E6=8E=A5=E4=B8=8A?= =?UTF-8?q?=E4=BA=86=E6=96=B0=E4=BC=98=E5=8C=96=EF=BC=8C=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=86=8D=E7=9C=8B=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 36 + jest.config.js | 2 + package.json | 18 +- pnpm-lock.yaml | 3746 +- .../businessCapability/blockDetailHelper.ts | 152 + .../businessRectOptimizeMachine.ts | 283 + samples/businessCapability/业务功能目录.md | 0 samples/confClass.ts | 2442 +- samples/demoDataHandleServer.ts | 33 + samples/demoDatahandle/demoDataHandle1.ts | 75 + samples/demoDatahandle/demoDataHandle2.ts | 18 + samples/demoKnives.ts | 4 +- samples/demoParser.ts | 2 + .../RectOptimizeWorker/RectOptimizeMachine.ts | 1746 + .../RectOptimizeWorkerWorker.ts | 66 + .../handleAbility/RectOptimizeWorker/bang.ts | 115 + .../RectOptimizeWorker/新优化.md | 1 + samples/handleAbility/ability_1.ts | 13 + .../handleAbility/blockDetailHelperBase.ts | 132 + samples/handleAbility/blockHelper.ts | 4 + samples/handleAbility/common/ArrayExt.ts | 392 + samples/handleAbility/common/Box2.ts | 183 + samples/handleAbility/common/ClipperCpp.ts | 25 + samples/handleAbility/common/Filer.ts | 31 + .../common/LayoutEngine/Curves2Parts.ts | 255 + .../common/LayoutEngine/PolylineHelper.ts | 369 + .../common/LayoutEngine/Simplify2.ts | 85 + samples/handleAbility/common/Point.ts | 5 + samples/handleAbility/common/Util.ts | 38 + samples/handleAbility/common/Vector2.ts | 335 + samples/handleAbility/common/base/CAD.ts | 1625 + .../handleAbility/common/base/StringFormat.ts | 126 + samples/handleAbility/common/core/Path.ts | 381 + samples/handleAbility/common/工具类.md | 0 samples/handleAbility/knifeHelper.ts | 202 + samples/handleAbility/基础功能目录.md | 2 + samples/moduleManager/module1.ts | 262 + samples/moduleManager/res1.json | 29615 ++++++++++++++++ src/device.ts | 248 + tests/paser.test.ts | 23 + tests/test.json | 29439 +++++++++++++++ tsconfig.json | 10 +- 42 files changed, 70546 insertions(+), 1993 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 samples/businessCapability/blockDetailHelper.ts create mode 100644 samples/businessCapability/businessRectOptimizeMachine.ts create mode 100644 samples/businessCapability/业务功能目录.md create mode 100644 samples/demoDataHandleServer.ts create mode 100644 samples/demoDatahandle/demoDataHandle1.ts create mode 100644 samples/demoDatahandle/demoDataHandle2.ts create mode 100644 samples/handleAbility/RectOptimizeWorker/RectOptimizeMachine.ts create mode 100644 samples/handleAbility/RectOptimizeWorker/RectOptimizeWorkerWorker.ts create mode 100644 samples/handleAbility/RectOptimizeWorker/bang.ts create mode 100644 samples/handleAbility/RectOptimizeWorker/新优化.md create mode 100644 samples/handleAbility/ability_1.ts create mode 100644 samples/handleAbility/blockDetailHelperBase.ts create mode 100644 samples/handleAbility/blockHelper.ts create mode 100644 samples/handleAbility/common/ArrayExt.ts create mode 100644 samples/handleAbility/common/Box2.ts create mode 100644 samples/handleAbility/common/ClipperCpp.ts create mode 100644 samples/handleAbility/common/Filer.ts create mode 100644 samples/handleAbility/common/LayoutEngine/Curves2Parts.ts create mode 100644 samples/handleAbility/common/LayoutEngine/PolylineHelper.ts create mode 100644 samples/handleAbility/common/LayoutEngine/Simplify2.ts create mode 100644 samples/handleAbility/common/Point.ts create mode 100644 samples/handleAbility/common/Util.ts create mode 100644 samples/handleAbility/common/Vector2.ts create mode 100644 samples/handleAbility/common/base/CAD.ts create mode 100644 samples/handleAbility/common/base/StringFormat.ts create mode 100644 samples/handleAbility/common/core/Path.ts create mode 100644 samples/handleAbility/common/工具类.md create mode 100644 samples/handleAbility/knifeHelper.ts create mode 100644 samples/handleAbility/基础功能目录.md create mode 100644 samples/moduleManager/module1.ts create mode 100644 samples/moduleManager/res1.json create mode 100644 src/device.ts create mode 100644 tests/test.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..60462c7 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,36 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Jest All", + "program": "${workspaceFolder}/node_modules/.bin/jest", + "args": ["--runInBand"], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "disableOptimisticBPs": true, + "windows": { + "program": "${workspaceFolder}/node_modules/jest/bin/jest" + } + }, + { + "type": "node", + "request": "launch", + "name": "Jest Current File", + "program": "${workspaceFolder}/node_modules/.bin/jest", + "args": [ + "--runTestsByPath", + "${relativeFile}", + "--config", + "jest.config.js" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "disableOptimisticBPs": true, + "windows": { + "program": "${workspaceFolder}/node_modules/jest/bin/jest" + } + } + ] + } diff --git a/jest.config.js b/jest.config.js index a3423cc..9a1f5bf 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,5 +2,7 @@ module.exports = { transform: { '^.+\\.(t|j)sx?$': '@swc/jest', }, + preset: 'ts-jest', + testEnvironment: 'node', extensionsToTreatAsEsm: ['.ts', '.tsx'] }; diff --git a/package.json b/package.json index 76cdf6e..3abeb15 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,10 @@ "name": "cut-abstractions", "version": "0.1.4", "description": "", - "files": ["dist/**/*"], - "main":"./dist/index.js", + "files": [ + "dist/**/*" + ], + "main": "./dist/index.js", "module": "./dist/index.js", "types": "./dist/index.d.js", "exports": { @@ -12,7 +14,7 @@ "scripts": { "build": "tsc", "release": "pnpm pack --pack-destination ./dist-packs", - "clean":"rimraf ./dist", + "clean": "rimraf ./dist", "test": "jest" }, "keywords": [], @@ -23,8 +25,18 @@ "@jest/globals": "^30.0.2", "@swc/core": "^1.12.4", "@swc/jest": "^0.2.38", + "@types/jest": "^30.0.0", + "cadapi": "http://gitea.cf/MES-FE/webcad-api/archive/0.0.60.tar.gz", "jest": "^30.0.2", + "jest-worker": "^30.0.2", + "js-angusj-clipper": "^1.0.4", "rimraf": "^6.0.1", + "ts-jest": "^29.4.0", "typescript": "^5.8.3" + }, + "dependencies": { + "jest-worker": "^30.0.2", + "three": "^0.178.0", + "webworker": "^0.8.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 351f80e..178151d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1459 +1,87 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -importers: +dependencies: + jest-worker: + specifier: ^30.0.2 + version: 30.0.2 + three: + specifier: ^0.178.0 + version: 0.178.0 - .: - devDependencies: - '@jest/globals': - specifier: ^30.0.2 - version: 30.0.2 - '@swc/core': - specifier: ^1.12.4 - version: 1.12.4 - '@swc/jest': - specifier: ^0.2.38 - version: 0.2.38(@swc/core@1.12.4) - jest: - specifier: ^30.0.2 - version: 30.0.2(@types/node@24.0.3) - rimraf: - specifier: ^6.0.1 - version: 6.0.1 - typescript: - specifier: ^5.8.3 - version: 5.8.3 +devDependencies: + '@jest/globals': + specifier: ^30.0.2 + version: 30.0.4 + '@swc/core': + specifier: ^1.12.4 + version: 1.12.11 + '@swc/jest': + specifier: ^0.2.38 + version: 0.2.38(@swc/core@1.12.11) + '@types/jest': + specifier: ^30.0.0 + version: 30.0.0 + cadapi: + specifier: http://gitea.cf/MES-FE/webcad-api/archive/0.0.60.tar.gz + version: '@gitea.cf/MES-FE/webcad-api/archive/0.0.60.tar.gz' + jest: + specifier: ^30.0.2 + version: 30.0.4 + js-angusj-clipper: + specifier: ^1.0.4 + version: 1.3.1 + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + ts-jest: + specifier: ^29.4.0 + version: 29.4.0(@babel/core@7.28.0)(jest@30.0.4)(typescript@5.8.3) + typescript: + specifier: ^5.8.3 + version: 5.8.3 packages: - '@ampproject/remapping@2.3.0': + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + dev: true - '@babel/code-frame@7.27.1': + /@babel/code-frame@7.27.1: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.4': - resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.27.5': - resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.4': - resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@30.0.2': - resolution: {integrity: sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/core@30.0.2': - resolution: {integrity: sha512-mUMFdDtYWu7la63NxlyNIhgnzynszxunXWrtryR7bV24jV9hmi7XCZTzZHaLJjcBU66MeUAPZ81HjwASVpYhYQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/create-cache-key-function@29.7.0': - resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/diff-sequences@30.0.1': - resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/environment@30.0.2': - resolution: {integrity: sha512-hRLhZRJNxBiOhxIKSq2UkrlhMt3/zVFQOAi5lvS8T9I03+kxsbflwHJEF+eXEYXCrRGRhHwECT7CDk6DyngsRA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect-utils@30.0.2': - resolution: {integrity: sha512-FHF2YdtFBUQOo0/qdgt+6UdBFcNPF/TkVzcc+4vvf8uaBzUlONytGBeeudufIHHW1khRfM1sBbRT1VCK7n/0dQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/expect@30.0.2': - resolution: {integrity: sha512-blWRFPjv2cVfh42nLG6L3xIEbw+bnuiZYZDl/BZlsNG/i3wKV6FpPZ2EPHguk7t5QpLaouIu+7JmYO4uBR6AOg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/fake-timers@30.0.2': - resolution: {integrity: sha512-jfx0Xg7l0gmphTY9UKm5RtH12BlLYj/2Plj6wXjVW5Era4FZKfXeIvwC67WX+4q8UCFxYS20IgnMcFBcEU0DtA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/get-type@30.0.1': - resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/globals@30.0.2': - resolution: {integrity: sha512-DwTtus9jjbG7b6jUdkcVdptf0wtD1v153A+PVwWB/zFwXhqu6hhtSd+uq88jofMhmYPtkmPmVGUBRNCZEKXn+w==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/pattern@30.0.1': - resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/reporters@30.0.2': - resolution: {integrity: sha512-l4QzS/oKf57F8WtPZK+vvF4Io6ukplc6XgNFu4Hd/QxaLEO9f+8dSFzUua62Oe0HKlCUjKHpltKErAgDiMJKsA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/schemas@30.0.1': - resolution: {integrity: sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/snapshot-utils@30.0.1': - resolution: {integrity: sha512-6Dpv7vdtoRiISEFwYF8/c7LIvqXD7xDXtLPNzC2xqAfBznKip0MQM+rkseKwUPUpv2PJ7KW/YsnwWXrIL2xF+A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/source-map@30.0.1': - resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-result@30.0.2': - resolution: {integrity: sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-sequencer@30.0.2': - resolution: {integrity: sha512-fbyU5HPka0rkalZ3MXVvq0hwZY8dx3Y6SCqR64zRmh+xXlDeFl0IdL4l9e7vp4gxEXTYHbwLFA1D+WW5CucaSw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/transform@30.0.2': - resolution: {integrity: sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@30.0.1': - resolution: {integrity: sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.2.7': - resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinclair/typebox@0.34.35': - resolution: {integrity: sha512-C6ypdODf2VZkgRT6sFM8E1F8vR+HcffniX0Kp8MsU8PIfrlXbNCBz0jzj17GjdmjTx1OtZzdH8+iALL21UjF5A==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@13.0.5': - resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - - '@swc/core-darwin-arm64@1.12.4': - resolution: {integrity: sha512-HihKfeitjZU2ab94Zf893sxzFryLKX0TweGsNXXOLNtkSMLw50auuYfpRM0BOL9/uXXtuCWgRIF6P030SAX5xQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.12.4': - resolution: {integrity: sha512-meYCXHyYb6RDdu2N5PNAf0EelyxPBFhRcVo4kBFLuvuNb0m6EUg///VWy8MUMXq9/s9uzGS9kJVXXdRdr/d6FA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.12.4': - resolution: {integrity: sha512-szfDbf7mE8V64of0q/LSqbk+em+T+TD3uqnH40Z7Qu/aL8vi5CHgyLjWG2SLkLLpyjgkAUF6AKrupgnBYcC2NA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.12.4': - resolution: {integrity: sha512-n0IY76w+Scx8m3HIVRvLkoResuwsQgjDfAk9bxn99dq4leQO+mE0fkPl0Yw/1BIsPh+kxGfopIJH9zsZ1Z2YrA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@swc/core-linux-arm64-musl@1.12.4': - resolution: {integrity: sha512-wE5jmFi5cEQyLy8WmCWmNwfKETrnzy2D8YNi/xpYWpLPWqPhcelpa6tswkfYlbsMmmOh7hQNoTba1QdGu0jvHQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@swc/core-linux-x64-gnu@1.12.4': - resolution: {integrity: sha512-6S50Xd/7ePjEwrXyHMxpKTZ+KBrgUwMA8hQPbArUOwH4S5vHBr51heL0iXbUkppn1bkSr0J0IbOove5hzn+iqQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@swc/core-linux-x64-musl@1.12.4': - resolution: {integrity: sha512-hbYRyaHhC13vYKuGG5BrAG5fjjWEQFfQetuFp/4QKEoXDzdnabJoixxWTQACDL3m0JW32nJ+gUzsYIPtFYkwXg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@swc/core-win32-arm64-msvc@1.12.4': - resolution: {integrity: sha512-e6EbfjPL8GA/bb1lc9Omtxjlz+1ThTsAuBsy4Q3Kpbuh6B3jclg8KzxU/6t91v23wG593mieTyR5f3Pr7X3AWw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.12.4': - resolution: {integrity: sha512-RG2FzmllBTUf4EksANlIvLckcBrLZEA0t13LIa6L213UZKQfEuDNHezqESgoVhJMg2S/tWauitATOCFgZNSmjg==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.12.4': - resolution: {integrity: sha512-oRHKnZlR83zaMeVUCmHENa4j5uNRAWbmEpjYbzRcfC45LPFNWKGWGAGERLx0u87XMUtTGqnVYxnBTHN/rzDHOw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.12.4': - resolution: {integrity: sha512-hn30ebV4njAn0NAUM+3a0qCF+MJgqTNSrfA/hUAbC6TVjOQy2OYGQwkUvCu/V7S2+rZxrUsTpKOnZ7qqECZV9Q==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '>=0.5.17' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/jest@0.2.38': - resolution: {integrity: sha512-HMoZgXWMqChJwffdDjvplH53g9G2ALQes3HKXDEdliB/b85OQ0CTSbxG8VSeCwiAn7cOaDVEt4mwmZvbHcS52w==} - engines: {npm: '>= 7.0.0'} - peerDependencies: - '@swc/core': '*' - - '@swc/types@0.1.23': - resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==} - - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/node@24.0.3': - resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@unrs/resolver-binding-android-arm-eabi@1.9.0': - resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.9.0': - resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.9.0': - resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.9.0': - resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.9.0': - resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': - resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': - resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': - resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': - resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': - resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': - resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': - resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} - cpu: [riscv64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': - resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': - resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-x64-musl@1.9.0': - resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-wasm32-wasi@1.9.0': - resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': - resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': - resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': - resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} - cpu: [x64] - os: [win32] - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - babel-jest@30.0.2: - resolution: {integrity: sha512-A5kqR1/EUTidM2YC2YMEUDP2+19ppgOwK0IAd9Swc3q2KqFb5f9PtRUXVeZcngu0z5mDMyZ9zH2huJZSOMLiTQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - - babel-plugin-istanbul@7.0.0: - resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} - engines: {node: '>=12'} - - babel-plugin-jest-hoist@30.0.1: - resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@30.0.1: - resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001723: - resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} - engines: {node: '>=8'} - - cjs-module-lexer@2.1.0: - resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.5.171: - resolution: {integrity: sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit-x@0.2.2: - resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} - engines: {node: '>= 0.8.0'} - - expect@30.0.2: - resolution: {integrity: sha512-YN9Mgv2mtTWXVmifQq3QT+ixCL/uLuLJw+fdp8MOjKqu8K3XQh3o5aulMM1tn+O2DdrWNxLZTeJsCY/VofUA0A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} - engines: {node: 20 || >=22} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} - - jest-changed-files@30.0.2: - resolution: {integrity: sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-circus@30.0.2: - resolution: {integrity: sha512-NRozwx4DaFHcCUtwdEd/0jBLL1imyMrCbla3vF//wdsB2g6jIicMbjx9VhqE/BYU4dwsOQld+06ODX0oZ9xOLg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-cli@30.0.2: - resolution: {integrity: sha512-yQ6Qz747oUbMYLNAqOlEby+hwXx7WEJtCl0iolBRpJhr2uvkBgiVMrvuKirBc8utwQBnkETFlDUkYifbRpmBrQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@30.0.2: - resolution: {integrity: sha512-vo0fVq+uzDcXETFVnCUyr5HaUCM8ES6DEuS9AFpma34BVXMRRNlsqDyiW5RDHaEFoeFlJHoI4Xjh/WSYIAL58g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@types/node': '*' - esbuild-register: '>=3.4.0' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - esbuild-register: - optional: true - ts-node: - optional: true - - jest-diff@30.0.2: - resolution: {integrity: sha512-2UjrNvDJDn/oHFpPrUTVmvYYDNeNtw2DlY3er8bI6vJJb9Fb35ycp/jFLd5RdV59tJ8ekVXX3o/nwPcscgXZJQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-docblock@30.0.1: - resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-each@30.0.2: - resolution: {integrity: sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-environment-node@30.0.2: - resolution: {integrity: sha512-XsGtZ0H+a70RsxAQkKuIh0D3ZlASXdZdhpOSBq9WRPq6lhe0IoQHGW0w9ZUaPiZQ/CpkIdprvlfV1QcXcvIQLQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-haste-map@30.0.2: - resolution: {integrity: sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-leak-detector@30.0.2: - resolution: {integrity: sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-matcher-utils@30.0.2: - resolution: {integrity: sha512-1FKwgJYECR8IT93KMKmjKHSLyru0DqguThov/aWpFccC0wbiXGOxYEu7SScderBD7ruDOpl7lc5NG6w3oxKfaA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-message-util@30.0.2: - resolution: {integrity: sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-mock@30.0.2: - resolution: {integrity: sha512-PnZOHmqup/9cT/y+pXIVbbi8ID6U1XHRmbvR7MvUy4SLqhCbwpkmXhLbsWbGewHrV5x/1bF7YDjs+x24/QSvFA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@30.0.1: - resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-resolve-dependencies@30.0.2: - resolution: {integrity: sha512-Lp1iIXpsF5fGM4vyP8xHiIy2H5L5yO67/nXoYJzH4kz+fQmO+ZMKxzYLyWxYy4EeCLeNQ6a9OozL+uHZV2iuEA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-resolve@30.0.2: - resolution: {integrity: sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runner@30.0.2: - resolution: {integrity: sha512-6H+CIFiDLVt1Ix6jLzASXz3IoIiDukpEIxL9FHtDQ2BD/k5eFtDF5e5N9uItzRE3V1kp7VoSRyrGBytXKra4xA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runtime@30.0.2: - resolution: {integrity: sha512-H1a51/soNOeAjoggu6PZKTH7DFt8JEGN4mesTSwyqD2jU9PXD04Bp6DKbt2YVtQvh2JcvH2vjbkEerCZ3lRn7A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-snapshot@30.0.2: - resolution: {integrity: sha512-KeoHikoKGln3OlN7NS7raJ244nIVr2K46fBTNdfuxqYv2/g4TVyWDSO4fmk08YBJQMjs3HNfG1rlLfL/KA+nUw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-util@30.0.2: - resolution: {integrity: sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-validate@30.0.2: - resolution: {integrity: sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-watcher@30.0.2: - resolution: {integrity: sha512-vYO5+E7jJuF+XmONr6CrbXdlYrgvZqtkn6pdkgjt/dU64UAdc0v1cAVaAeWtAfUUMScxNmnUjKPUMdCpNVASwg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-worker@30.0.2: - resolution: {integrity: sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest@30.0.2: - resolution: {integrity: sha512-HlSEiHRcmTuGwNyeawLTEzpQUMFn+f741FfoNg7RXG2h0WLJKozVCpcQLT0GW17H6kNCqRwGf+Ii/I1YVNvEGQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pretty-format@30.0.2: - resolution: {integrity: sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - pure-rand@7.0.1: - resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - synckit@0.11.8: - resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} - engines: {node: ^14.18.0 || >=16.0.0} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - - unrs-resolver@1.9.0: - resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 + dev: true - '@babel/compat-data@7.27.5': {} + /@babel/compat-data@7.28.0: + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/core@7.27.4': + /@babel/core@7.28.0: + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} + engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 + '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.5 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -1461,243 +89,401 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - '@babel/generator@7.27.5': + /@babel/generator@7.28.0: + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 + dev: true - '@babel/helper-compilation-targets@7.27.2': + /@babel/helper-compilation-targets@7.27.2: + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.27.5 + '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.0 + browserslist: 4.25.1 lru-cache: 5.1.1 semver: 6.3.1 + dev: true - '@babel/helper-module-imports@7.27.1': + /@babel/helper-globals@7.28.0: + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-module-imports@7.27.1: + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': + /@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0): + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/helper-plugin-utils@7.27.1': {} + /@babel/helper-plugin-utils@7.27.1: + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-string-parser@7.27.1': {} + /@babel/helper-string-parser@7.27.1: + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-identifier@7.27.1': {} + /@babel/helper-validator-identifier@7.27.1: + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-option@7.27.1': {} + /@babel/helper-validator-option@7.27.1: + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helpers@7.27.6': + /@babel/helpers@7.27.6: + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 + dev: true - '@babel/parser@7.27.5': + /@babel/parser@7.28.0: + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 + dev: true - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.4)': + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.4)': + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': + /@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0): + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.4)': + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': + /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0): + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.4)': + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.4)': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.4)': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.4)': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.4)': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': + /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0): + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + dev: true - '@babel/template@7.27.2': + /@babel/template@7.27.2: + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + dev: true - '@babel/traverse@7.27.4': + /@babel/traverse@7.28.0: + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 debug: 4.4.1 - globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/types@7.27.6': + /@babel/types@7.28.0: + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + dev: true - '@bcoe/v8-coverage@0.2.3': {} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@emnapi/core@1.4.3': + /@emnapi/core@1.4.4: + resolution: {integrity: sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==} + requiresBuild: true dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.3 tslib: 2.8.1 + dev: true optional: true - '@emnapi/runtime@1.4.3': + /@emnapi/runtime@1.4.4: + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} + requiresBuild: true dependencies: tslib: 2.8.1 + dev: true optional: true - '@emnapi/wasi-threads@1.0.2': + /@emnapi/wasi-threads@1.0.3: + resolution: {integrity: sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==} + requiresBuild: true dependencies: tslib: 2.8.1 + dev: true optional: true - '@isaacs/balanced-match@4.0.1': {} + /@isaacs/balanced-match@4.0.1: + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + dev: true - '@isaacs/brace-expansion@5.0.0': + /@isaacs/brace-expansion@5.0.0: + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} dependencies: '@isaacs/balanced-match': 4.0.1 + dev: true - '@isaacs/cliui@8.0.2': + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true - '@istanbuljs/load-nyc-config@1.1.0': + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 + dev: true - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/console@30.0.2': + /@jest/console@30.0.4: + resolution: {integrity: sha512-tMLCDvBJBwPqMm4OAiuKm2uF5y5Qe26KgcMn+nrDSWpEW+eeFmqA0iO4zJfL16GP7gE3bUUQ3hIuUJ22AqVRnw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 chalk: 4.1.2 jest-message-util: 30.0.2 jest-util: 30.0.2 slash: 3.0.0 + dev: true - '@jest/core@30.0.2': + /@jest/core@30.0.4: + resolution: {integrity: sha512-MWScSO9GuU5/HoWjpXAOBs6F/iobvK1XlioelgOM9St7S0Z5WTI9kjCQLPeo4eQRRYusyLW25/J7J5lbFkrYXw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - '@jest/console': 30.0.2 + '@jest/console': 30.0.4 '@jest/pattern': 30.0.1 - '@jest/reporters': 30.0.2 - '@jest/test-result': 30.0.2 - '@jest/transform': 30.0.2 + '@jest/reporters': 30.0.4 + '@jest/test-result': 30.0.4 + '@jest/transform': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 4.2.0 + ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.0.2 - jest-config: 30.0.2(@types/node@24.0.3) + jest-config: 30.0.4(@types/node@24.0.12) jest-haste-map: 30.0.2 jest-message-util: 30.0.2 jest-regex-util: 30.0.1 jest-resolve: 30.0.2 - jest-resolve-dependencies: 30.0.2 - jest-runner: 30.0.2 - jest-runtime: 30.0.2 - jest-snapshot: 30.0.2 + jest-resolve-dependencies: 30.0.4 + jest-runner: 30.0.4 + jest-runtime: 30.0.4 + jest-snapshot: 30.0.4 jest-util: 30.0.2 jest-validate: 30.0.2 - jest-watcher: 30.0.2 + jest-watcher: 30.0.4 micromatch: 4.0.8 pretty-format: 30.0.2 slash: 3.0.0 @@ -1706,65 +492,99 @@ snapshots: - esbuild-register - supports-color - ts-node + dev: true - '@jest/create-cache-key-function@29.7.0': + /@jest/create-cache-key-function@29.7.0: + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 + dev: true - '@jest/diff-sequences@30.0.1': {} + /@jest/diff-sequences@30.0.1: + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + dev: true - '@jest/environment@30.0.2': + /@jest/environment@30.0.4: + resolution: {integrity: sha512-5NT+sr7ZOb8wW7C4r7wOKnRQ8zmRWQT2gW4j73IXAKp5/PX1Z8MCStBLQDYfIG3n1Sw0NRfYGdp0iIPVooBAFQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/fake-timers': 30.0.2 + '@jest/fake-timers': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 jest-mock: 30.0.2 + dev: true - '@jest/expect-utils@30.0.2': + /@jest/expect-utils@30.0.4: + resolution: {integrity: sha512-EgXecHDNfANeqOkcak0DxsoVI4qkDUsR7n/Lr2vtmTBjwLPBnnPOF71S11Q8IObWzxm2QgQoY6f9hzrRD3gHRA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/get-type': 30.0.1 + dev: true - '@jest/expect@30.0.2': + /@jest/expect@30.0.4: + resolution: {integrity: sha512-Z/DL7t67LBHSX4UzDyeYKqOxE/n7lbrrgEwWM3dGiH5Dgn35nk+YtgzKudmfIrBI8DRRrKYY5BCo3317HZV1Fw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - expect: 30.0.2 - jest-snapshot: 30.0.2 + expect: 30.0.4 + jest-snapshot: 30.0.4 transitivePeerDependencies: - supports-color + dev: true - '@jest/fake-timers@30.0.2': + /@jest/fake-timers@30.0.4: + resolution: {integrity: sha512-qZ7nxOcL5+gwBO6LErvwVy5k06VsX/deqo2XnVUSTV0TNC9lrg8FC3dARbi+5lmrr5VyX5drragK+xLcOjvjYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 24.0.3 + '@types/node': 24.0.12 jest-message-util: 30.0.2 jest-mock: 30.0.2 jest-util: 30.0.2 + dev: true - '@jest/get-type@30.0.1': {} + /@jest/get-type@30.0.1: + resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + dev: true - '@jest/globals@30.0.2': + /@jest/globals@30.0.4: + resolution: {integrity: sha512-avyZuxEHF2EUhFF6NEWVdxkRRV6iXXcIES66DLhuLlU7lXhtFG/ySq/a8SRZmEJSsLkNAFX6z6mm8KWyXe9OEA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/environment': 30.0.2 - '@jest/expect': 30.0.2 + '@jest/environment': 30.0.4 + '@jest/expect': 30.0.4 '@jest/types': 30.0.1 jest-mock: 30.0.2 transitivePeerDependencies: - supports-color + dev: true - '@jest/pattern@30.0.1': + /@jest/pattern@30.0.1: + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@types/node': 24.0.3 + '@types/node': 24.0.12 jest-regex-util: 30.0.1 - '@jest/reporters@30.0.2': + /@jest/reporters@30.0.4: + resolution: {integrity: sha512-6ycNmP0JSJEEys1FbIzHtjl9BP0tOZ/KN6iMeAKrdvGmUsa1qfRdlQRUDKJ4P84hJ3xHw1yTqJt4fvPNHhyE+g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.0.2 - '@jest/test-result': 30.0.2 - '@jest/transform': 30.0.2 + '@jest/console': 30.0.4 + '@jest/test-result': 30.0.4 + '@jest/transform': 30.0.4 '@jest/types': 30.0.1 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 24.0.3 + '@jridgewell/trace-mapping': 0.3.29 + '@types/node': 24.0.12 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -1783,47 +603,67 @@ snapshots: v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 + dev: true - '@jest/schemas@30.0.1': + /@jest/schemas@30.0.1: + resolution: {integrity: sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@sinclair/typebox': 0.34.35 + '@sinclair/typebox': 0.34.37 - '@jest/snapshot-utils@30.0.1': + /@jest/snapshot-utils@30.0.4: + resolution: {integrity: sha512-BEpX8M/Y5lG7MI3fmiO+xCnacOrVsnbqVrcDZIT8aSGkKV1w2WwvRQxSWw5SIS8ozg7+h8tSj5EO1Riqqxcdag==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 + dev: true - '@jest/source-map@30.0.1': + /@jest/source-map@30.0.1: + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 callsites: 3.1.0 graceful-fs: 4.2.11 + dev: true - '@jest/test-result@30.0.2': + /@jest/test-result@30.0.4: + resolution: {integrity: sha512-Mfpv8kjyKTHqsuu9YugB6z1gcdB3TSSOaKlehtVaiNlClMkEHY+5ZqCY2CrEE3ntpBMlstX/ShDAf84HKWsyIw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/console': 30.0.2 + '@jest/console': 30.0.4 '@jest/types': 30.0.1 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + dev: true - '@jest/test-sequencer@30.0.2': + /@jest/test-sequencer@30.0.4: + resolution: {integrity: sha512-bj6ePmqi4uxAE8EHE0Slmk5uBYd9Vd/PcVt06CsBxzH4bbA8nGsI1YbXl/NH+eii4XRtyrRx+Cikub0x8H4vDg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/test-result': 30.0.2 + '@jest/test-result': 30.0.4 graceful-fs: 4.2.11 jest-haste-map: 30.0.2 slash: 3.0.0 + dev: true - '@jest/transform@30.0.2': + /@jest/transform@30.0.4: + resolution: {integrity: sha512-atvy4hRph/UxdCIBp+UB2jhEA/jJiUeGZ7QPgBi9jUUKNgi3WEoMXGNG7zbbELG2+88PMabUNCDchmqgJy3ELg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@jest/types': 30.0.1 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 babel-plugin-istanbul: 7.0.0 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -1838,274 +678,548 @@ snapshots: write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color + dev: true - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.0.3 + '@types/node': 24.0.12 '@types/yargs': 17.0.33 chalk: 4.1.2 + dev: true - '@jest/types@30.0.1': + /@jest/types@30.0.1: + resolution: {integrity: sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/pattern': 30.0.1 '@jest/schemas': 30.0.1 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.0.3 + '@types/node': 24.0.12 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.8': + /@jridgewell/gen-mapping@0.3.12: + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 + dev: true - '@jridgewell/resolve-uri@3.1.2': {} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true - '@jridgewell/set-array@1.2.1': {} + /@jridgewell/sourcemap-codec@1.5.4: + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} + dev: true - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.29: + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 + dev: true - '@napi-rs/wasm-runtime@0.2.11': + /@napi-rs/wasm-runtime@0.2.11: + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + requiresBuild: true dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/core': 1.4.4 + '@emnapi/runtime': 1.4.4 '@tybys/wasm-util': 0.9.0 + dev: true optional: true - '@pkgjs/parseargs@0.11.0': + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true optional: true - '@pkgr/core@0.2.7': {} + /@pkgr/core@0.2.7: + resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true - '@sinclair/typebox@0.27.8': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@sinclair/typebox@0.34.35': {} + /@sinclair/typebox@0.34.37: + resolution: {integrity: sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw==} - '@sinonjs/commons@3.0.1': + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/fake-timers@13.0.5': + /@sinonjs/fake-timers@13.0.5: + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} dependencies: '@sinonjs/commons': 3.0.1 + dev: true - '@swc/core-darwin-arm64@1.12.4': + /@swc/core-darwin-arm64@1.12.11: + resolution: {integrity: sha512-J19Jj9Y5x/N0loExH7W0OI9OwwoVyxutDdkyq1o/kgXyBqmmzV7Y/Q9QekI2Fm/qc5mNeAdP7aj4boY4AY/JPw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@swc/core-darwin-x64@1.12.4': + /@swc/core-darwin-x64@1.12.11: + resolution: {integrity: sha512-PTuUQrfStQ6cjW+uprGO2lpQHy84/l0v+GqRqq8s/jdK55rFRjMfCeyf6FAR0l6saO5oNOQl+zWR1aNpj8pMQw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@swc/core-linux-arm-gnueabihf@1.12.4': + /@swc/core-linux-arm-gnueabihf@1.12.11: + resolution: {integrity: sha512-poxBq152HsupOtnZilenvHmxZ9a8SRj4LtfxUnkMDNOGrZR9oxbQNwEzNKfi3RXEcXz+P8c0Rai1ubBazXv8oQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@swc/core-linux-arm64-gnu@1.12.4': + /@swc/core-linux-arm64-gnu@1.12.11: + resolution: {integrity: sha512-y1HNamR/D0Hc8xIE910ysyLe269UYiGaQPoLjQS0phzWFfWdMj9bHM++oydVXZ4RSWycO7KyJ3uvw4NilvyMKQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@swc/core-linux-arm64-musl@1.12.4': + /@swc/core-linux-arm64-musl@1.12.11: + resolution: {integrity: sha512-LlBxPh/32pyQsu2emMEOFRm7poEFLsw12Y1mPY7FWZiZeptomKSOSHRzKDz9EolMiV4qhK1caP1lvW4vminYgQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true optional: true - '@swc/core-linux-x64-gnu@1.12.4': + /@swc/core-linux-x64-gnu@1.12.11: + resolution: {integrity: sha512-bOjiZB8O/1AzHkzjge1jqX62HGRIpOHqFUrGPfAln/NC6NR+Z2A78u3ixV7k5KesWZFhCV0YVGJL+qToL27myA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@swc/core-linux-x64-musl@1.12.4': + /@swc/core-linux-x64-musl@1.12.11: + resolution: {integrity: sha512-4dzAtbT/m3/UjF045+33gLiHd8aSXJDoqof7gTtu4q0ZyAf7XJ3HHspz+/AvOJLVo4FHHdFcdXhmo/zi1nFn8A==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true optional: true - '@swc/core-win32-arm64-msvc@1.12.4': + /@swc/core-win32-arm64-msvc@1.12.11: + resolution: {integrity: sha512-h8HiwBZErKvCAmjW92JvQp0iOqm6bncU4ac5jxBGkRApabpUenNJcj3h2g5O6GL5K6T9/WhnXE5gyq/s1fhPQg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@swc/core-win32-ia32-msvc@1.12.4': + /@swc/core-win32-ia32-msvc@1.12.11: + resolution: {integrity: sha512-1pwr325mXRNUhxTtXmx1IokV5SiRL+6iDvnt3FRXj+X5UvXXKtg2zeyftk+03u8v8v8WUr5I32hIypVJPTNxNg==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@swc/core-win32-x64-msvc@1.12.4': + /@swc/core-win32-x64-msvc@1.12.11: + resolution: {integrity: sha512-5gggWo690Gvs7XiPxAmb5tHwzB9RTVXUV7AWoGb6bmyUd1OXYaebQF0HAOtade5jIoNhfQMQJ7QReRgt/d2jAA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@swc/core@1.12.4': + /@swc/core@1.12.11: + resolution: {integrity: sha512-P3GM+0lqjFctcp5HhR9mOcvLSX3SptI9L1aux0Fuvgt8oH4f92rCUrkodAa0U2ktmdjcyIiG37xg2mb/dSCYSA==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.12.4 - '@swc/core-darwin-x64': 1.12.4 - '@swc/core-linux-arm-gnueabihf': 1.12.4 - '@swc/core-linux-arm64-gnu': 1.12.4 - '@swc/core-linux-arm64-musl': 1.12.4 - '@swc/core-linux-x64-gnu': 1.12.4 - '@swc/core-linux-x64-musl': 1.12.4 - '@swc/core-win32-arm64-msvc': 1.12.4 - '@swc/core-win32-ia32-msvc': 1.12.4 - '@swc/core-win32-x64-msvc': 1.12.4 + '@swc/core-darwin-arm64': 1.12.11 + '@swc/core-darwin-x64': 1.12.11 + '@swc/core-linux-arm-gnueabihf': 1.12.11 + '@swc/core-linux-arm64-gnu': 1.12.11 + '@swc/core-linux-arm64-musl': 1.12.11 + '@swc/core-linux-x64-gnu': 1.12.11 + '@swc/core-linux-x64-musl': 1.12.11 + '@swc/core-win32-arm64-msvc': 1.12.11 + '@swc/core-win32-ia32-msvc': 1.12.11 + '@swc/core-win32-x64-msvc': 1.12.11 + dev: true - '@swc/counter@0.1.3': {} + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true - '@swc/jest@0.2.38(@swc/core@1.12.4)': + /@swc/jest@0.2.38(@swc/core@1.12.11): + resolution: {integrity: sha512-HMoZgXWMqChJwffdDjvplH53g9G2ALQes3HKXDEdliB/b85OQ0CTSbxG8VSeCwiAn7cOaDVEt4mwmZvbHcS52w==} + engines: {npm: '>= 7.0.0'} + peerDependencies: + '@swc/core': '*' dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.12.4 + '@swc/core': 1.12.11 '@swc/counter': 0.1.3 jsonc-parser: 3.3.1 + dev: true - '@swc/types@0.1.23': + /@swc/types@0.1.23: + resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==} dependencies: '@swc/counter': 0.1.3 + dev: true - '@tybys/wasm-util@0.9.0': + /@tybys/wasm-util@0.9.0: + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + requiresBuild: true dependencies: tslib: 2.8.1 + dev: true optional: true - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 + dev: true - '@types/babel__generator@7.27.0': + /@types/babel__generator@7.27.0: + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 + dev: true - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + dev: true - '@types/babel__traverse@7.20.7': + /@types/babel__traverse@7.20.7: + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 + dev: true - '@types/istanbul-lib-coverage@2.0.6': {} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - '@types/istanbul-lib-report@3.0.3': + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports@3.0.4': + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/node@24.0.3': + /@types/jest@30.0.0: + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + dependencies: + expect: 30.0.4 + pretty-format: 30.0.2 + dev: true + + /@types/node@24.0.12: + resolution: {integrity: sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==} dependencies: undici-types: 7.8.0 - '@types/stack-utils@2.0.3': {} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true - '@types/yargs-parser@21.0.3': {} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.33': + /@types/yargs@17.0.33: + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} dependencies: '@types/yargs-parser': 21.0.3 - '@ungap/structured-clone@1.3.0': {} + /@ungap/structured-clone@1.3.0: + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-android-arm-eabi@1.9.0': + /@unrs/resolver-binding-android-arm-eabi@1.11.0: + resolution: {integrity: sha512-LRw5BW29sYj9NsQC6QoqeLVQhEa+BwVINYyMlcve+6stwdBsSt5UB7zw4UZB4+4PNqIVilHoMaPWCb/KhABHQw==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-android-arm64@1.9.0': + /@unrs/resolver-binding-android-arm64@1.11.0: + resolution: {integrity: sha512-zYX8D2zcWCAHqghA8tPjbp7LwjVXbIZP++mpU/Mrf5jUVlk3BWIxkeB8yYzZi5GpFSlqMcRZQxQqbMI0c2lASQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-darwin-arm64@1.9.0': + /@unrs/resolver-binding-darwin-arm64@1.11.0: + resolution: {integrity: sha512-YsYOT049hevAY/lTYD77GhRs885EXPeAfExG5KenqMJ417nYLS2N/kpRpYbABhFZBVQn+2uRPasTe4ypmYoo3w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-darwin-x64@1.9.0': + /@unrs/resolver-binding-darwin-x64@1.11.0: + resolution: {integrity: sha512-PSjvk3OZf1aZImdGY5xj9ClFG3bC4gnSSYWrt+id0UAv+GwwVldhpMFjAga8SpMo2T1GjV9UKwM+QCsQCQmtdA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-freebsd-x64@1.9.0': + /@unrs/resolver-binding-freebsd-x64@1.11.0: + resolution: {integrity: sha512-KC/iFaEN/wsTVYnHClyHh5RSYA9PpuGfqkFua45r4sweXpC0KHZ+BYY7ikfcGPt5w1lMpR1gneFzuqWLQxsRKg==} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': + /@unrs/resolver-binding-linux-arm-gnueabihf@1.11.0: + resolution: {integrity: sha512-CDh/0v8uot43cB4yKtDL9CVY8pbPnMV0dHyQCE4lFz6PW/+9tS0i9eqP5a91PAqEBVMqH1ycu+k8rP6wQU846w==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': + /@unrs/resolver-binding-linux-arm-musleabihf@1.11.0: + resolution: {integrity: sha512-+TE7epATDSnvwr3L/hNHX3wQ8KQYB+jSDTdywycg3qDqvavRP8/HX9qdq/rMcnaRDn4EOtallb3vL/5wCWGCkw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': + /@unrs/resolver-binding-linux-arm64-gnu@1.11.0: + resolution: {integrity: sha512-VBAYGg3VahofpQ+L4k/ZO8TSICIbUKKTaMYOWHWfuYBFqPbSkArZZLezw3xd27fQkxX4BaLGb/RKnW0dH9Y/UA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': + /@unrs/resolver-binding-linux-arm64-musl@1.11.0: + resolution: {integrity: sha512-9IgGFUUb02J1hqdRAHXpZHIeUHRrbnGo6vrRbz0fREH7g+rzQy53/IBSyadZ/LG5iqMxukriNPu4hEMUn+uWEg==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': + /@unrs/resolver-binding-linux-ppc64-gnu@1.11.0: + resolution: {integrity: sha512-LR4iQ/LPjMfivpL2bQ9kmm3UnTas3U+umcCnq/CV7HAkukVdHxrDD1wwx74MIWbbgzQTLPYY7Ur2MnnvkYJCBQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': + /@unrs/resolver-binding-linux-riscv64-gnu@1.11.0: + resolution: {integrity: sha512-HCupFQwMrRhrOg7YHrobbB5ADg0Q8RNiuefqMHVsdhEy9lLyXm/CxsCXeLJdrg27NAPsCaMDtdlm8Z2X8x91Tg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': + /@unrs/resolver-binding-linux-riscv64-musl@1.11.0: + resolution: {integrity: sha512-Ckxy76A5xgjWa4FNrzcKul5qFMWgP5JSQ5YKd0XakmWOddPLSkQT+uAvUpQNnFGNbgKzv90DyQlxPDYPQ4nd6A==} + cpu: [riscv64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': + /@unrs/resolver-binding-linux-s390x-gnu@1.11.0: + resolution: {integrity: sha512-HfO0PUCCRte2pMJmVyxPI+eqT7KuV3Fnvn2RPvMe5mOzb2BJKf4/Vth8sSt9cerQboMaTVpbxyYjjLBWIuI5BQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + /@unrs/resolver-binding-linux-x64-gnu@1.11.0: + resolution: {integrity: sha512-9PZdjP7tLOEjpXHS6+B/RNqtfVUyDEmaViPOuSqcbomLdkJnalt5RKQ1tr2m16+qAufV0aDkfhXtoO7DQos/jg==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-linux-x64-musl@1.9.0': + /@unrs/resolver-binding-linux-x64-musl@1.11.0: + resolution: {integrity: sha512-qkE99ieiSKMnFJY/EfyGKVtNra52/k+lVF/PbO4EL5nU6AdvG4XhtJ+WHojAJP7ID9BNIra/yd75EHndewNRfA==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-wasm32-wasi@1.9.0': + /@unrs/resolver-binding-wasm32-wasi@1.11.0: + resolution: {integrity: sha512-MjXek8UL9tIX34gymvQLecz2hMaQzOlaqYJJBomwm1gsvK2F7hF+YqJJ2tRyBDTv9EZJGMt4KlKkSD/gZWCOiw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + requiresBuild: true dependencies: '@napi-rs/wasm-runtime': 0.2.11 + dev: true optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': + /@unrs/resolver-binding-win32-arm64-msvc@1.11.0: + resolution: {integrity: sha512-9LT6zIGO7CHybiQSh7DnQGwFMZvVr0kUjah6qQfkH2ghucxPV6e71sUXJdSM4Ba0MaGE6DC/NwWf7mJmc3DAng==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': + /@unrs/resolver-binding-win32-ia32-msvc@1.11.0: + resolution: {integrity: sha512-HYchBYOZ7WN266VjoGm20xFv5EonG/ODURRgwl9EZT7Bq1nLEs6VKJddzfFdXEAho0wfFlt8L/xIiE29Pmy1RA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': + /@unrs/resolver-binding-win32-x64-msvc@1.11.0: + resolution: {integrity: sha512-+oLKLHw3I1UQo4MeHfoLYF+e6YBa8p5vYUw3Rgt7IDzCs+57vIZqQlIo62NDpYM0VG6BjWOwnzBczMvbtH8hag==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - ansi-regex@6.1.0: {} + /ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: true - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: true - babel-jest@30.0.2(@babel/core@7.27.4): + /async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + dev: true + + /babel-jest@30.0.4(@babel/core@7.28.0): + resolution: {integrity: sha512-UjG2j7sAOqsp2Xua1mS/e+ekddkSu3wpf4nZUSvXNHuVWdaOUXQ77+uyjJLDE9i0atm5x4kds8K9yb5lRsRtcA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 dependencies: - '@babel/core': 7.27.4 - '@jest/transform': 30.0.2 + '@babel/core': 7.28.0 + '@jest/transform': 30.0.4 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.27.4) + babel-preset-jest: 30.0.1(@babel/core@7.28.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-istanbul@7.0.0: + /babel-plugin-istanbul@7.0.0: + resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + engines: {node: '>=12'} dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 @@ -2114,142 +1228,271 @@ snapshots: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-jest-hoist@30.0.1: + /babel-plugin-jest-hoist@30.0.1: + resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 '@types/babel__core': 7.20.5 + dev: true - babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.4): + /babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0): + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.4) + '@babel/core': 7.28.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0) + dev: true - babel-preset-jest@30.0.1(@babel/core@7.27.4): + /babel-preset-jest@30.0.1(@babel/core@7.28.0): + resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 babel-plugin-jest-hoist: 30.0.1 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) + dev: true - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - brace-expansion@1.1.12: + /brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true - brace-expansion@2.0.2: + /brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} dependencies: balanced-match: 1.0.2 + dev: true - braces@3.0.3: + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: fill-range: 7.1.1 + dev: true - browserslist@4.25.0: + /browserslist@4.25.1: + resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - caniuse-lite: 1.0.30001723 - electron-to-chromium: 1.5.171 + caniuse-lite: 1.0.30001727 + electron-to-chromium: 1.5.180 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) + update-browserslist-db: 1.1.3(browserslist@4.25.1) + dev: true - bser@2.1.1: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - camelcase@5.3.1: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true - camelcase@6.3.0: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true - caniuse-lite@1.0.30001723: {} + /caniuse-lite@1.0.30001727: + resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - char-regex@1.0.2: {} + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true - ci-info@4.2.0: {} + /ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} + engines: {node: '>=8'} - cjs-module-lexer@2.1.0: {} + /cjs-module-lexer@2.1.0: + resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - co@4.6.0: {} + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true - collect-v8-coverage@1.0.2: {} + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true - cross-spawn@7.0.6: + /cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true - debug@4.4.1: + /debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - dedent@1.6.0: {} + /dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deepmerge@4.3.1: {} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true - detect-newline@3.1.0: {} + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true - electron-to-chromium@1.5.171: {} + /ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.9.2 + dev: true - emittery@0.13.1: {} + /electron-to-chromium@1.5.180: + resolution: {integrity: sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==} + dev: true - emoji-regex@8.0.0: {} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emoji-regex@9.2.2: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true - error-ex@1.3.2: + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true - escalade@3.2.0: {} + /escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + dev: true - escape-string-regexp@2.0.0: {} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.6 get-stream: 6.0.1 @@ -2260,52 +1503,99 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true - exit-x@0.2.2: {} + /exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} + engines: {node: '>= 0.8.0'} + dev: true - expect@30.0.2: + /expect@30.0.4: + resolution: {integrity: sha512-dDLGjnP2cKbEppxVICxI/Uf4YemmGMPNy0QytCbfafbpYk9AFQsxb8Uyrxii0RPK7FWgLGlSem+07WirwS3cFQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/expect-utils': 30.0.2 + '@jest/expect-utils': 30.0.4 '@jest/get-type': 30.0.1 - jest-matcher-utils: 30.0.2 + jest-matcher-utils: 30.0.4 jest-message-util: 30.0.2 jest-mock: 30.0.2 jest-util: 30.0.2 + dev: true - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true - fill-range@7.1.1: + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true - foreground-child@3.3.1: + /foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-package-type@0.1.0: {} + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true - glob@10.4.5: + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 @@ -2313,8 +1603,12 @@ snapshots: minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + dev: true - glob@11.0.3: + /glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true dependencies: foreground-child: 3.3.1 jackspeak: 4.1.1 @@ -2322,8 +1616,11 @@ snapshots: minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 2.0.0 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2331,106 +1628,177 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - globals@11.12.0: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graceful-fs@4.2.11: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - has-flag@4.0.0: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - html-escaper@2.0.2: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true - human-signals@2.1.0: {} - - import-local@3.2.0: + /import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + dev: true - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true - is-generator-fn@2.1.0: {} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-instrument@6.0.3: + /istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} dependencies: - '@babel/core': 7.27.4 - '@babel/parser': 7.27.5 + '@babel/core': 7.28.0 + '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@5.0.6: + /istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 debug: 4.4.1 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.7: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - jackspeak@3.4.3: + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + dev: true - jackspeak@4.1.1: + /jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} dependencies: '@isaacs/cliui': 8.0.2 + dev: true - jest-changed-files@30.0.2: + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-changed-files@30.0.2: + resolution: {integrity: sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: execa: 5.1.1 jest-util: 30.0.2 p-limit: 3.1.0 + dev: true - jest-circus@30.0.2: + /jest-circus@30.0.4: + resolution: {integrity: sha512-o6UNVfbXbmzjYgmVPtSQrr5xFZCtkDZGdTlptYvGFSN80RuOOlTe73djvMrs+QAuSERZWcHBNIOMH+OEqvjWuw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/environment': 30.0.2 - '@jest/expect': 30.0.2 - '@jest/test-result': 30.0.2 + '@jest/environment': 30.0.4 + '@jest/expect': 30.0.4 + '@jest/test-result': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0 is-generator-fn: 2.1.0 jest-each: 30.0.2 - jest-matcher-utils: 30.0.2 + jest-matcher-utils: 30.0.4 jest-message-util: 30.0.2 - jest-runtime: 30.0.2 - jest-snapshot: 30.0.2 + jest-runtime: 30.0.4 + jest-snapshot: 30.0.4 jest-util: 30.0.2 p-limit: 3.1.0 pretty-format: 30.0.2 @@ -2440,16 +1808,25 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-cli@30.0.2(@types/node@24.0.3): + /jest-cli@30.0.4: + resolution: {integrity: sha512-3dOrP3zqCWBkjoVG1zjYJpD9143N9GUCbwaF2pFF5brnIgRLHmKcCIw+83BvF1LxggfMWBA0gxkn6RuQVuRhIQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - '@jest/core': 30.0.2 - '@jest/test-result': 30.0.2 + '@jest/core': 30.0.4 + '@jest/test-result': 30.0.4 '@jest/types': 30.0.1 chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.0.2(@types/node@24.0.3) + jest-config: 30.0.4(@types/node@24.0.12) jest-util: 30.0.2 jest-validate: 30.0.2 yargs: 17.7.2 @@ -2459,26 +1836,41 @@ snapshots: - esbuild-register - supports-color - ts-node + dev: true - jest-config@30.0.2(@types/node@24.0.3): + /jest-config@30.0.4(@types/node@24.0.12): + resolution: {integrity: sha512-3dzbO6sh34thAGEjJIW0fgT0GA0EVlkski6ZzMcbW6dzhenylXAE/Mj2MI4HonroWbkKc6wU6bLVQ8dvBSZ9lA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@jest/get-type': 30.0.1 '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.0.2 + '@jest/test-sequencer': 30.0.4 '@jest/types': 30.0.1 - babel-jest: 30.0.2(@babel/core@7.27.4) + '@types/node': 24.0.12 + babel-jest: 30.0.4(@babel/core@7.28.0) chalk: 4.1.2 - ci-info: 4.2.0 + ci-info: 4.3.0 deepmerge: 4.3.1 glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 30.0.2 + jest-circus: 30.0.4 jest-docblock: 30.0.1 - jest-environment-node: 30.0.2 + jest-environment-node: 30.0.4 jest-regex-util: 30.0.1 jest-resolve: 30.0.2 - jest-runner: 30.0.2 + jest-runner: 30.0.4 jest-util: 30.0.2 jest-validate: 30.0.2 micromatch: 4.0.8 @@ -2486,45 +1878,58 @@ snapshots: pretty-format: 30.0.2 slash: 3.0.0 strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 24.0.3 transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-diff@30.0.2: + /jest-diff@30.0.4: + resolution: {integrity: sha512-TSjceIf6797jyd+R64NXqicttROD+Qf98fex7CowmlSn7f8+En0da1Dglwr1AXxDtVizoxXYZBlUQwNhoOXkNw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/diff-sequences': 30.0.1 '@jest/get-type': 30.0.1 chalk: 4.1.2 pretty-format: 30.0.2 + dev: true - jest-docblock@30.0.1: + /jest-docblock@30.0.1: + resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: detect-newline: 3.1.0 + dev: true - jest-each@30.0.2: + /jest-each@30.0.2: + resolution: {integrity: sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/get-type': 30.0.1 '@jest/types': 30.0.1 chalk: 4.1.2 jest-util: 30.0.2 pretty-format: 30.0.2 + dev: true - jest-environment-node@30.0.2: + /jest-environment-node@30.0.4: + resolution: {integrity: sha512-p+rLEzC2eThXqiNh9GHHTC0OW5Ca4ZfcURp7scPjYBcmgpR9HG6750716GuUipYf2AcThU3k20B31USuiaaIEg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/environment': 30.0.2 - '@jest/fake-timers': 30.0.2 + '@jest/environment': 30.0.4 + '@jest/fake-timers': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 jest-mock: 30.0.2 jest-util: 30.0.2 jest-validate: 30.0.2 + dev: true - jest-haste-map@30.0.2: + /jest-haste-map@30.0.2: + resolution: {integrity: sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -2535,20 +1940,29 @@ snapshots: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + dev: true - jest-leak-detector@30.0.2: + /jest-leak-detector@30.0.2: + resolution: {integrity: sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/get-type': 30.0.1 pretty-format: 30.0.2 + dev: true - jest-matcher-utils@30.0.2: + /jest-matcher-utils@30.0.4: + resolution: {integrity: sha512-ubCewJ54YzeAZ2JeHHGVoU+eDIpQFsfPQs0xURPWoNiO42LGJ+QGgfSf+hFIRplkZDkhH5MOvuxHKXRTUU3dUQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/get-type': 30.0.1 chalk: 4.1.2 - jest-diff: 30.0.2 + jest-diff: 30.0.4 pretty-format: 30.0.2 + dev: true - jest-message-util@30.0.2: + /jest-message-util@30.0.2: + resolution: {integrity: sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@babel/code-frame': 7.27.1 '@jest/types': 30.0.1 @@ -2559,27 +1973,46 @@ snapshots: pretty-format: 30.0.2 slash: 3.0.0 stack-utils: 2.0.6 + dev: true - jest-mock@30.0.2: + /jest-mock@30.0.2: + resolution: {integrity: sha512-PnZOHmqup/9cT/y+pXIVbbi8ID6U1XHRmbvR7MvUy4SLqhCbwpkmXhLbsWbGewHrV5x/1bF7YDjs+x24/QSvFA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 jest-util: 30.0.2 + dev: true - jest-pnp-resolver@1.2.3(jest-resolve@30.0.2): - optionalDependencies: + /jest-pnp-resolver@1.2.3(jest-resolve@30.0.2): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: jest-resolve: 30.0.2 + dev: true - jest-regex-util@30.0.1: {} + /jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.0.2: + /jest-resolve-dependencies@30.0.4: + resolution: {integrity: sha512-EQBYow19B/hKr4gUTn+l8Z+YLlP2X0IoPyp0UydOtrcPbIOYzJ8LKdFd+yrbwztPQvmlBFUwGPPEzHH1bAvFAw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: jest-regex-util: 30.0.1 - jest-snapshot: 30.0.2 + jest-snapshot: 30.0.4 transitivePeerDependencies: - supports-color + dev: true - jest-resolve@30.0.2: + /jest-resolve@30.0.2: + resolution: {integrity: sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -2588,45 +2021,51 @@ snapshots: jest-util: 30.0.2 jest-validate: 30.0.2 slash: 3.0.0 - unrs-resolver: 1.9.0 + unrs-resolver: 1.11.0 + dev: true - jest-runner@30.0.2: + /jest-runner@30.0.4: + resolution: {integrity: sha512-mxY0vTAEsowJwvFJo5pVivbCpuu6dgdXRmt3v3MXjBxFly7/lTk3Td0PaMyGOeNQUFmSuGEsGYqhbn7PA9OekQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/console': 30.0.2 - '@jest/environment': 30.0.2 - '@jest/test-result': 30.0.2 - '@jest/transform': 30.0.2 + '@jest/console': 30.0.4 + '@jest/environment': 30.0.4 + '@jest/test-result': 30.0.4 + '@jest/transform': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-docblock: 30.0.1 - jest-environment-node: 30.0.2 + jest-environment-node: 30.0.4 jest-haste-map: 30.0.2 jest-leak-detector: 30.0.2 jest-message-util: 30.0.2 jest-resolve: 30.0.2 - jest-runtime: 30.0.2 + jest-runtime: 30.0.4 jest-util: 30.0.2 - jest-watcher: 30.0.2 + jest-watcher: 30.0.4 jest-worker: 30.0.2 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color + dev: true - jest-runtime@30.0.2: + /jest-runtime@30.0.4: + resolution: {integrity: sha512-tUQrZ8+IzoZYIHoPDQEB4jZoPyzBjLjq7sk0KVyd5UPRjRDOsN7o6UlvaGF8ddpGsjznl9PW+KRgWqCNO+Hn7w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/environment': 30.0.2 - '@jest/fake-timers': 30.0.2 - '@jest/globals': 30.0.2 + '@jest/environment': 30.0.4 + '@jest/fake-timers': 30.0.4 + '@jest/globals': 30.0.4 '@jest/source-map': 30.0.1 - '@jest/test-result': 30.0.2 - '@jest/transform': 30.0.2 + '@jest/test-result': 30.0.4 + '@jest/transform': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 chalk: 4.1.2 cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 @@ -2637,31 +2076,34 @@ snapshots: jest-mock: 30.0.2 jest-regex-util: 30.0.1 jest-resolve: 30.0.2 - jest-snapshot: 30.0.2 + jest-snapshot: 30.0.4 jest-util: 30.0.2 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color + dev: true - jest-snapshot@30.0.2: + /jest-snapshot@30.0.4: + resolution: {integrity: sha512-S/8hmSkeUib8WRUq9pWEb5zMfsOjiYWDWzFzKnjX7eDyKKgimsu9hcmsUEg8a7dPAw8s/FacxsXquq71pDgPjQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 - '@jest/expect-utils': 30.0.2 + '@babel/core': 7.28.0 + '@babel/generator': 7.28.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/types': 7.28.0 + '@jest/expect-utils': 30.0.4 '@jest/get-type': 30.0.1 - '@jest/snapshot-utils': 30.0.1 - '@jest/transform': 30.0.2 + '@jest/snapshot-utils': 30.0.4 + '@jest/transform': 30.0.4 '@jest/types': 30.0.1 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.0) chalk: 4.1.2 - expect: 30.0.2 + expect: 30.0.4 graceful-fs: 4.2.11 - jest-diff: 30.0.2 - jest-matcher-utils: 30.0.2 + jest-diff: 30.0.4 + jest-matcher-utils: 30.0.4 jest-message-util: 30.0.2 jest-util: 30.0.2 pretty-format: 30.0.2 @@ -2669,17 +2111,22 @@ snapshots: synckit: 0.11.8 transitivePeerDependencies: - supports-color + dev: true - jest-util@30.0.2: + /jest-util@30.0.2: + resolution: {integrity: sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 chalk: 4.1.2 - ci-info: 4.2.0 + ci-info: 4.3.0 graceful-fs: 4.2.11 picomatch: 4.0.2 - jest-validate@30.0.2: + /jest-validate@30.0.2: + resolution: {integrity: sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/get-type': 30.0.1 '@jest/types': 30.0.1 @@ -2687,364 +2134,713 @@ snapshots: chalk: 4.1.2 leven: 3.1.0 pretty-format: 30.0.2 + dev: true - jest-watcher@30.0.2: + /jest-watcher@30.0.4: + resolution: {integrity: sha512-YESbdHDs7aQOCSSKffG8jXqOKFqw4q4YqR+wHYpR5GWEQioGvL0BfbcjvKIvPEM0XGfsfJrka7jJz3Cc3gI4VQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@jest/test-result': 30.0.2 + '@jest/test-result': 30.0.4 '@jest/types': 30.0.1 - '@types/node': 24.0.3 + '@types/node': 24.0.12 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 jest-util: 30.0.2 string-length: 4.0.2 + dev: true - jest-worker@30.0.2: + /jest-worker@30.0.2: + resolution: {integrity: sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: - '@types/node': 24.0.3 + '@types/node': 24.0.12 '@ungap/structured-clone': 1.3.0 jest-util: 30.0.2 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.0.2(@types/node@24.0.3): + /jest@30.0.4: + resolution: {integrity: sha512-9QE0RS4WwTj/TtTC4h/eFVmFAhGNVerSB9XpJh8sqaXlP73ILcPcZ7JWjjEtJJe2m8QyBLKKfPQuK+3F+Xij/g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - '@jest/core': 30.0.2 + '@jest/core': 30.0.4 '@jest/types': 30.0.1 import-local: 3.2.0 - jest-cli: 30.0.2(@types/node@24.0.3) + jest-cli: 30.0.4 transitivePeerDependencies: - '@types/node' - babel-plugin-macros - esbuild-register - supports-color - ts-node + dev: true - js-tokens@4.0.0: {} + /js-angusj-clipper@1.3.1: + resolution: {integrity: sha512-/qru4QXxN/gBbQjL4WaFl296YSM8kh5XKpNuNqfZhJ4t4Hw3KeLc5ERj3XHAeLi6pBrqeh6o9PFZUpS3QThEEQ==} + dev: true - js-yaml@3.14.1: + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: true - jsesc@3.1.0: {} + /jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + dev: true - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true - jsonc-parser@3.3.1: {} + /jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + dev: true - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true - lru-cache@10.4.3: {} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true - lru-cache@11.1.0: {} + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + dev: true - lru-cache@5.1.1: + /lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.7.2 + dev: true - makeerror@1.0.12: + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: true - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - micromatch@4.0.8: + /micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.3 picomatch: 2.3.1 + dev: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true - minimatch@10.0.3: + /minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} dependencies: '@isaacs/brace-expansion': 5.0.0 + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.12 + dev: true - minimatch@9.0.5: + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.2 + dev: true - minipass@7.1.2: {} + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.2 + dev: true - ms@2.1.3: {} + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true - napi-postinstall@0.2.4: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true - natural-compare@1.4.0: {} + /napi-postinstall@0.3.0: + resolution: {integrity: sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + dev: true - node-int64@0.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - node-releases@2.0.19: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true - normalize-path@3.0.0: {} + /node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + dev: true - npm-run-path@4.0.1: + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true - package-json-from-dist@1.0.1: {} + /package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true - path-scurry@1.11.1: + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: lru-cache: 10.4.3 minipass: 7.1.2 + dev: true - path-scurry@2.0.0: + /path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} dependencies: lru-cache: 11.1.0 minipass: 7.1.2 + dev: true - picocolors@1.1.1: {} + /picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + dev: true - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - picomatch@4.0.2: {} + /picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} - pirates@4.0.7: {} + /pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: true - pretty-format@30.0.2: + /pretty-format@30.0.2: + resolution: {integrity: sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} dependencies: '@jest/schemas': 30.0.1 ansi-styles: 5.2.0 react-is: 18.3.1 + dev: true - pure-rand@7.0.1: {} + /pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + dev: true - react-is@18.3.1: {} + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true - rimraf@6.0.1: + /rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true dependencies: glob: 11.0.3 package-json-from-dist: 1.0.1 + dev: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true - semver@7.7.2: {} + /semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true - source-map-support@0.5.13: + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: true - string-length@4.0.2: + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.1.0 + dev: true - strip-bom@4.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - synckit@0.11.8: + /synckit@0.11.8: + resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} + engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.2.7 + dev: true - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - tmpl@1.0.5: {} + /three@0.178.0: + resolution: {integrity: sha512-ybFIB0+x8mz0wnZgSGy2MO/WCO6xZhQSZnmfytSPyNpM0sBafGRVhdaj+erYh5U+RhQOAg/eXqw5uVDiM2BjhQ==} + dev: false - to-regex-range@5.0.1: + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - tslib@2.8.1: + /ts-jest@29.4.0(@babel/core@7.28.0)(jest@30.0.4)(typescript@5.8.3): + resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 + esbuild: '*' + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + jest-util: + optional: true + dependencies: + '@babel/core': 7.28.0 + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 30.0.4 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.2 + type-fest: 4.41.0 + typescript: 5.8.3 + yargs-parser: 21.1.1 + dev: true + + /tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + requiresBuild: true + dev: true optional: true - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.21.3: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true - typescript@5.8.3: {} + /type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + dev: true - undici-types@7.8.0: {} + /typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true - unrs-resolver@1.9.0: + /undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + + /unrs-resolver@1.11.0: + resolution: {integrity: sha512-uw3hCGO/RdAEAb4zgJ3C/v6KIAFFOtBoxR86b2Ejc5TnH7HrhTWJR2o0A9ullC3eWMegKQCw/arQ/JivywQzkg==} + requiresBuild: true dependencies: - napi-postinstall: 0.2.4 + napi-postinstall: 0.3.0 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.0 - '@unrs/resolver-binding-android-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-x64': 1.9.0 - '@unrs/resolver-binding-freebsd-x64': 1.9.0 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-musl': 1.9.0 - '@unrs/resolver-binding-wasm32-wasi': 1.9.0 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 + '@unrs/resolver-binding-android-arm-eabi': 1.11.0 + '@unrs/resolver-binding-android-arm64': 1.11.0 + '@unrs/resolver-binding-darwin-arm64': 1.11.0 + '@unrs/resolver-binding-darwin-x64': 1.11.0 + '@unrs/resolver-binding-freebsd-x64': 1.11.0 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.0 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.0 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.0 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.0 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.0 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.0 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.0 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.0 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.0 + '@unrs/resolver-binding-linux-x64-musl': 1.11.0 + '@unrs/resolver-binding-wasm32-wasi': 1.11.0 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.0 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.0 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.0 + dev: true - update-browserslist-db@1.1.3(browserslist@4.25.0): + /update-browserslist-db@1.1.3(browserslist@4.25.1): + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: - browserslist: 4.25.0 + browserslist: 4.25.1 escalade: 3.2.0 picocolors: 1.1.1 + dev: true - v8-to-istanbul@9.3.0: + /v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + dev: true - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: true - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - write-file-atomic@5.0.1: + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yallist@3.1.1: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.2.0 @@ -3053,5 +2849,15 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + '@gitea.cf/MES-FE/webcad-api/archive/0.0.60.tar.gz': + resolution: {tarball: http://gitea.cf/MES-FE/webcad-api/archive/0.0.60.tar.gz} + name: cadapi + version: 0.0.3 + dev: true diff --git a/samples/businessCapability/blockDetailHelper.ts b/samples/businessCapability/blockDetailHelper.ts new file mode 100644 index 0000000..9304a1a --- /dev/null +++ b/samples/businessCapability/blockDetailHelper.ts @@ -0,0 +1,152 @@ +import { FaceType, PlaceBlock, PlaceBlockDetail, PlaceBorderContour, PlaceMaterial, PlaceStyle, SizeExpand } from "../confClass" +import { BlockDetailHelperBase } from "../handleAbility/blockDetailHelperBase" +import { PolylineHelper } from "../handleAbility/common/LayoutEngine/PolylineHelper" +import { KnifeHelper } from "../handleAbility/knifeHelper" + + +/** 小板明细 相关的计算 孔 造型 以及轮廓 */ +export class BlockDetailHelper extends BlockDetailHelperBase { + /** 预铣(板件外扩)值 */ + preMillingSize = 0; + + constructor(config?: any) { + super() + if(config){ + this.updateConfig(config) + } + } + updateConfig(config) { + if (config) { + let keys = Object.keys(config) + for (const key of keys) { + if (Reflect.has(this, key)) { + this[key] = config[key] + } + } + } + + } + /** 小板初始化:1各种轮廓|走刀路径|,2尺寸扩展后的轮廓与走刀路径 */ + initBlock(block: PlaceBlock, pm: PlaceMaterial) { + if (block.blockDetail == null) { + // 异常情况 + console.error(`【initBlock()】${block.blockNo}没用板件明细,请检查`); + return + } + if (block.blockDetail.borderContour) return // 已初始化 + + // const pm = block.placeMaterial + + const bd = block.blockDetail + + if (pm == null) { + return // 异常 + } + const cutKnifeR = pm.diameter / 2 + const cutGap = pm.cutKnifeGap + // 开料偏移值 ,矩形波倒角 + bd.offsetKnifeRadius = pm.diameter / 2 + bd.isOffsetRounding = true // 默认要倒角 + bd.preMillingSize = pm.preMillingSize + + if (bd.points.length == 0) // 矩形板,设置不倒角 + { + bd.isOffsetRounding = false// sysConfig.RegularBlockFilletCurve; + } + else // 异形板 + { + // 异形板倒角 + bd.isOffsetRounding = true // sysConfig.isUnRegularBlockChamfer + } + + // 初始化 小板基础轮廓 + // 1.原始轮廓,成品轮廓 + + const border_final = this.createFinalBorder(bd, block) + // 2.开料轮廓 <不含预铣> + const border_org = this.createOrgBorder(bd) + + bd.borderContour = new PlaceBorderContour(PlaceStyle.FRONT, border_final, border_org) + + // 3.开料轮廓_带预铣, 外扩尺寸 + bd.borderContour.borderPreMilling = border_org + bd.preMillingExpandSize = new SizeExpand() + // console.log('开料轮廓_带预铣, 外扩尺寸', block, bd.preMillingExpandSize, sysConfig.preMillingSize) + if (this.preMillingSize > 0.0001) { + const rt = this.creatOrgBorderWithPrevCut(block, border_org, this.sysConfig.preMillingSize) + bd.borderContour.borderPreMilling = rt.newBorders + bd.preMillingExpandSize = rt.newSizeExpand + // console.log('开料轮廓_带预铣, 外扩尺寸==》after', block, rt.newSizeExpand) + } + + // 4. 板内走刀路径,板内空间 + const innerGroup = this.analyeInners(bd, cutKnifeR, cutGap) + + bd.borderContour.borderModelThrough = innerGroup.borders_inner_org + bd.borderContour.borderModelThroughR = innerGroup.borders_inner_r + bd.borderContour.cutLinesModelThrough = innerGroup.borders_inner_cut + bd.borderContour.borderInnerPlace = innerGroup.borders_inner_place + bd.borderContour.blockInnerSpace = innerGroup.spaces + + // 5 造型外扩轮廓, 外扩尺寸 + const { pls_model, sizeout: sizeout_model } = this.createPolyline_model(block) + bd.borderContour.polylinesOutModel = pls_model + bd.modelExpandSize = sizeout_model + + // 6. 2V刀路 外扩轮廓,外扩尺寸 + const { pls_2v, sizeout_2v } = this.createPolyline_2vModel(block) + bd.borderContour.polylines2vModel = pls_2v + bd.vKnifeModelExpandSize = sizeout_2v + + // 7.同刀辅助 外扩尺寸 + let isUseSameKnifeToHelpCut = this.sysConfig.helpCutStyle || 0 + let useSameKnifeToHelpCutGap = this.sysConfig.helpCutGap || 0 + const isSameKnifeToCut = isUseSameKnifeToHelpCut && useSameKnifeToHelpCutGap > 0 + if (isSameKnifeToCut == false || bd.isUseSameKnifeToHelpCut == false) { + // 未启动同刀辅助, 或 该小板 不需要同刀辅助 + bd.useSameKnifeToHelpCutGap = 0 + bd.sameKnfieHelpExpandSize = new SizeExpand() + } + else { + const gap = useSameKnifeToHelpCutGap + bd.useSameKnifeToHelpCutGap = gap + bd.sameKnfieHelpExpandSize = new SizeExpand({ left: gap, right: gap, under: gap, upper: gap }) + } + // 2V刀路,预洗,同刀辅助开料,出板造型刀 + this.resetBlock(block, pm) + } + + /** 二维刀路初始化 */ + init2VModel(blockDetail: PlaceBlockDetail, isCNC = false, _knifeHelper: KnifeHelper) { + for (let model of blockDetail.models) { + if (!model.isVKnifeModel) + continue + let vModels: any = [] + model.VLines = vModels + let isFaceB = model.face == FaceType.BACK + if (model.pointList.length < 1) + continue + let ps = model.pointList.map((t) => { return { x: t.pointX, y: t.pointY, bul: t.curve } }) + let pl = PolylineHelper.create(ps) + if (model.VLines?.length > 0) + return // 已经分析了 + model.VLines = [] + for (let os of model.offsetList) { + let knife1 = isCNC ? null : _knifeHelper.getModelKnifeByName(os.name) // getModelKnifeByName(os.name) + let knifeR = os.radius + let knifeId = knife1 ? knife1.knifeId : -1 + try { + let vps_1 = PolylineHelper.getVModelPoints_offset(pl, os.offset, os.depth, os.angle) + let vLine = { isFaceB, name: os.name, value: os.offset, knife: knife1, knifeId, knifeRadius: knifeR, depth: os.depth, points: vps_1, offset: os } + vModels.push(vLine) // 偏移路径 + model.VLines.push(vLine) + } + catch (err) { + console.log('v型刀走刀路径算法出错。' + err) + } + } + model.VLines = vModels + } + } + +} \ No newline at end of file diff --git a/samples/businessCapability/businessRectOptimizeMachine.ts b/samples/businessCapability/businessRectOptimizeMachine.ts new file mode 100644 index 0000000..0cc5982 --- /dev/null +++ b/samples/businessCapability/businessRectOptimizeMachine.ts @@ -0,0 +1,283 @@ +import { ConfigBase } from "../../src/models/config"; +import { confItem, HoleArrange, Knife, PlaceBlock, PlaceBlockDetail, PlaceMaterial } from "../confClass"; +import { Big_bang, ComposingType, LineType, WorkerItemType, xbang } from "../handleAbility/RectOptimizeWorker/bang"; + + +/** 配置列表 */ +export const confList: confItem[] = [ + { + key: 'isCutProcess', + label: '开料机(雕刻机)加工', + value: true + }, + { + key: 'isCutAndCNCProcess', + label: '开料机CNC组合', + value: false + }, + { + key: 'isCustomized', + label: '定制加工', + value: false + }, + { + key: 'cutBoardBorder', + label: '总修边宽度', + value: 3 + }, + { + key: 'blockKnifeLineSpacing', + label: '刀路间距', + value: 0 + }, + { + key: 'isDoubleFaceBlockFirst', + label: '双面开料优先排版', + value: true + }, + { + key: 'isRectPlace', + label: '新优化规则排版', + value: false + }, + { + // yuLiaoBoardDo2FaceBlock + key: 'isDoubleFaceBlockInRemain', + label: '余料板允许排入双面加工的小板', + value: true + }, +] +/** + * 新优化 + * 调用流程 + * 1、准备工作 加载配置 + 加载刀库 + 设置 回调函数 + * 2、调用 startPlaceThreed + * 入参:data (数据源 必须包含 小板数据列表和小板明细数据列表) + * pm 优化的材质 + * pm.diameter = knife?.diameter + pm.cutKnifeName = knife.knifeName + */ +export class BusinessRectOptimizeMachine extends ConfigBase { + /** 多线程数据集 */ + workerList: WorkerItemType[] = [] + + /** 优化回调 */ + placeCallBack: Function = () => { } + constructor() { + super() + + + } + /** 设置优化回调 */ + setPlaceTaskCallBackFun(func: Function) { + this.placeCallBack = func + } + /**开始优化线程 输入的数据没有初始化 + * @param data 数据源 包含小板列表和小板明细列表 data内需要包含blockList(小板列表) 和 blockDetailList(小板明细列表) + * @param pm 优化的材质 包含该材质的可用开料大板信息 需包含开料刀的信息 pm.diameter pm.cutKnifeName + */ + startPlaceThreed(data, pm: PlaceMaterial) { + let { blockList, blockDetailList } = data + let bList: any = [] + + blockList.map(e => { + if (e.goodsId == pm.goodsId) { + bList[e.blockNo] = e + let detail = blockDetailList.find(x => x.blockId == e.blockId) + if (!Reflect.has(bList[e.blockNo], 'blockDetail')) { + bList[e.blockNo].blockDetail = new PlaceBlockDetail(detail) + } + // bList[e.blockNo].isTurnFaceToPlace = !this.getDoFace(bList[e.blockNo], this.processMode()) + // 是否翻面后续处理 + bList[e.blockNo].isTurnFaceToPlace = true + pm.blockList.push(e) + } + }) + pm.cutBorder = this.cutBoardBorder + pm.cutKnifeGap = this.blockKnifeLineSpacing + + /** 小板 */ + let bans: xbang[] = [] + + // 实际开料大板的列表 + let big_Bang: Big_bang[] = [] + let big_BangSL: number[] = [] + + + let border = this.cutBoardBorder + let borderOff = (pm.diameter + pm.cutKnifeGap) / 2 + + // 余料板 以及实际开料大板 + for (const cuttingBoard of pm.remainBoardList) { + big_Bang.push({ w: cuttingBoard.width - border * 2 + borderOff * 2, l: cuttingBoard.length - border * 2 + borderOff * 2, x: border - borderOff, y: border - borderOff }) + big_BangSL.push(cuttingBoard.count || 999) + } + // big_Bang = [] + // big_BangSL = [] + // 母板 兜底的 + big_Bang.push({ w: pm.width - border * 2 + borderOff * 2, l: pm.length - border * 2 + borderOff * 2, x: border - borderOff, y: border - borderOff }) + // 生成小板 + for (let key in bList) { + let b = bList[key] + + let bid = b.blockNo + + let width = b.placeFullWidth + let length = b.placeFullLength + let line = this.toLine(b.texture) + + bans.push({ + l: length, + w: width, + line, + face: this.toface(b), + id: bid, + bno: b.blockNo, + holeFaceCount: 3, + isRect: !b.isUnRegular, + hasHole: false, + isdtwosided: true, + }) + } + + let bestCount = 0 + if (bans.length == 0) // 没有板了 + { + let best = [] + let yl: Big_bang[] = [] + let fit = 0 + let resObj = { + data: { bList, best, yl, fit, bans, width: pm.width, length: pm.length, bestCount: bestCount++, pm }, + info: { + times: -1, + type: 'noBan' + } + } + this.placeCallBack(resObj) + return + } + let xyhcs = 50 + if (bans.length > 1000) { xyhcs = 40 } + else if (bans.length > 1500) { xyhcs = 30 } + else if (bans.length > 2000) { xyhcs = 25 } + else if (bans.length > 4000) { xyhcs = 20 } + else if (bans.length > 6000) { xyhcs = 15 } + else if (bans.length > 10000) { xyhcs = 10 } + else if (bans.length > 15000) { xyhcs = 5 } + else if (bans.length > 20000) { xyhcs = 1 } + let isDoubleFaceBlockFirst = this.isDoubleFaceBlockFirst // 双面加工排前面 + let gap = this.blockKnifeLineSpacing + // this.bestfit = 0 + + for (let j = 0; j < 1; j++) { + + let w = new Worker(new URL('../handleAbility/RectOptimizeWorker/RectOptimizeWorker.worker', import.meta.url), { type: 'module' }) + const data = { + type: 'start', + data: [bans, big_Bang, big_BangSL, xyhcs, isDoubleFaceBlockFirst, gap, this.isRectPlace, this.isDoubleFaceBlockInRemain], + } + let item: WorkerItemType = { + w: w, + goodsId: pm.goodsId, + pm, + status: 'start' + } + if (this.workerList.findIndex(e => e.goodsId == item.goodsId) == -1) { + this.workerList.push(item) + } + + + let workItem = this.workerList.find(e => e.goodsId == pm.goodsId) + if (workItem && workItem != undefined) { + workItem.w?.postMessage(data) + + workItem.w.onmessage = async (d) => { + let [best, yl, fit, info] = d.data as [any[], Big_bang[], number, any] + + switch (info.type) { + case 'loop': + let resObj = { + data: { bList, best, yl, fit, bans, width: pm.width, length: pm.length, bestCount: bestCount++, pm }, + info + } + this.placeCallBack(resObj) + break; + case 'stop': + console.error('stop =》dataHandleBase', info, this.workerList) + this.terminateWorker({ goodsId: pm.goodsId }) + break; + case 'isStop': + // console.error('isStop', info) + break; + default: + break; + } + + } + } + + console.log('新算法线程启动', pm.goodsId, this.workerList) + } + } + /** 停止优化 */ + async stopPlaceTask() { + + for (const key in this.workerList) { + await this.terminateWorker({ key }) + + } + } + /** + * 获取加工面 + * @param block + * @param processMode + * @returns + */ + getDoFace(block: PlaceBlock, processMode: number = 0): boolean { + // 模式0: 开料机处理排钻, 造型, 采用大孔面作为正面的模式. 正面多加工, cnc多加工 + if (processMode == 0) { + // 先考虑 设计开料面 + if (block.placeHole == HoleArrange.FRONT) + return true + if (block.placeHole == HoleArrange.BACK) + return false + // 造型单面 作为开料面 + if (block.modelCountFront() > 0 && block.modelCountBack() == 0) + return true + if (block.modelCountFront() == 0 && block.modelCountBack() > 0) + return false + + // 优先考虑 大孔面 多孔面 + return this.getHoleFaceMore(block) + } else { + return false + } + } + processMode() { + let processMode = 0; + if (this.isCutProcess) processMode = 0; + if (this.isCutAndCNCProcess) processMode = 1; + if (this.isCustomized) processMode = 2; + return processMode; + } + /** + * 正纹 = 0, 可翻转 = 1, 反纹 = 2; + * 正文 Positive = 0, 反纹 Reverse = 1, 可翻转 CanReversal = 2, + */ + toLine(texture): LineType { + if (texture == 0) + return LineType.Positive + if (texture == 1) + return LineType.CanReversal + return LineType.Reverse + } + /** 小板加工面:Positive=0正面 Reverse=1反面 Arbitrary=2任意 */ + toface(block: PlaceBlock): ComposingType { + let turnF = block.isTurnFaceToPlace + if (this.isTurnFaceToPlace) + turnF = !turnF + if (!turnF) + return ComposingType.Positive + return ComposingType.Reverse + } +} diff --git a/samples/businessCapability/业务功能目录.md b/samples/businessCapability/业务功能目录.md new file mode 100644 index 0000000..e69de29 diff --git a/samples/confClass.ts b/samples/confClass.ts index b344034..4c8cfc4 100644 --- a/samples/confClass.ts +++ b/samples/confClass.ts @@ -1,6 +1,18 @@ +import { StringFormat } from "./handleAbility/common/base/StringFormat" +import type * as CAD from './handleAbility/common/base/CAD' +import { Polyline } from "cadapi" +import { ArrayExt } from "./handleAbility/common/ArrayExt" - +/**配置项属性 */ +export class confItem { + /** 属性key */ + key: string + /** 说明 */ + label: string + /** 属性value 值 */ + value: Array | any +} /** 内部指令 接收 */ export class CodeAction { code?: String @@ -17,6 +29,16 @@ export class GCodeResType { } } +/** 排孔类型 */ +export enum HoleArrange { + /** 正面 */ + FRONT = 0, + /** 反面 */ + BACK = 1, + /** 随意面 */ + RANDOM_FACE = 2, +} + // 加工项 点数据 export class CodeParams { @@ -60,7 +82,7 @@ export class CodeParams { } -export type _knifeType = Partial +export type _knifeType = Partial /** * 板面类型 @@ -85,6 +107,8 @@ export enum FaceType { CURVED_SIDE = 29, /** 异形侧面 */ SPECIAL_SHAPED_SIDE = 30, + /** 未设置 */ + UNSET = -1 } /** 开料刀 */ @@ -177,8 +201,22 @@ export class Knife { axisStopCode = ''; // /** 高级加工指令 */ // advancedCode = ''; - - + /** 开料刀 */ + isCuttingKnife() { + return this.isEnabled && this.ability.includes(AbilityType.CUT); + } + /** 造型刀 */ + isModelingKnife() { + return this.isEnabled && this.ability.includes(AbilityType.MILLING_MODEL); + } + /** 钻刀 */ + isDrillingKnife() { + return this.isEnabled && this.ability.includes(AbilityType.DRILL_HOLE); + } + /** 铣孔 */ + isCutting4HoleKnife() { + return this.isEnabled && this.ability.includes(AbilityType.MILLING_HOLE); + } /** 设置刀具(轴号, 刀名, 刀直径, 是否主刀, 是否铣孔, 是否开料刀) */ // set(axleId: number, name: string, diameter: number, isMainKnife: boolean, isMillingAllowed: boolean, isCuttingKnife: boolean) /** 设置刀具(轴号, 刀名, 刀类型, 刀直径, 刀长, 是否默认刀) */ @@ -335,14 +373,2390 @@ export enum PlaceStyle { } /** 小板边的位置类型 */ -export enum EdgeType - { - /** 下=0 */ - BOTTOM = 0, - /** 右=1 */ - RIGHT = 1, - /** 上=2 */ - TOP = 2, - /** 左=3 */ - LEFT = 3, +export enum EdgeType { + /** 下=0 */ + BOTTOM = 0, + /** 右=1 */ + RIGHT = 1, + /** 上=2 */ + TOP = 2, + /** 左=3 */ + LEFT = 3, } + +/** 开料小板 */ +export class PlaceBlock { + /** 小板明细(异形,孔,造型) */ + blockDetail: PlaceBlockDetail | null = null + // 订单信息---------------------------------------------------------- + + /** 订单号 */ + orderId: number = 0 + /** 板材ID */ + goodsId = '' + // 小板属性----------------------------------------------------------- + // 房间名, 柜体名, 小板ID, 小板编号,小板名称, 板材名称, 备注 + // 房间ID + roomId = '' + /** 房间名 */ + roomName = '' + /** 柜体号 */ + bodyId = '' + /** 柜体名 */ + bodyName = '' + /** 小板ID */ + blockId = 0 + /** 原小板ID */ + oldBlockId: number = 0 + /** 板编号 */ + blockNo: number = 0 + /** 自定义板编号 */ + customPlateNo: any = '' + /** 明细ID */ + itemId: number = 0 + /** 标签板号 */ + labelNo = '' + /** 板名称 */ + blockName = '' + /** 板件备注 */ + plateRemark = '' + /** 备注1 */ + remark1 = '' + /** 备注2 */ + remark2 = '' + /** 备注3 */ + remark3 = '' + /** 备注4 */ + remark4 = '' + /** 备注5 */ + remark5 = '' + /** 铰链备注 */ + extraRemark: object = {} + + // 尺寸,封边,开料尺寸----------------------------------------------------- + + /** 板宽 */ + width = 0 + /** 板长 */ + length = 0 + /** 板厚 */ + thickness = 0 + /** 面积 Size */ + area = 0 + + /** 左封边 BorderLeft */ + sealLeft = 0 + /** 右封边 BorderRight */ + sealRight = 0 + /** 上封边 BorderUpper */ + sealTop = 0 + /** 下封边 BorderUnder */ + sealBottom = 0 + + /** 无封边板宽 开料板宽 CuttingWidth */ + cutWidth = 0 + /** 无封边板长 开料板长 CuttingLength */ + cutLength = 0 + /** 无封边面积 开料面积 CuttingSize */ + cutArea = 0 + + // 高级------------------------------------------------------------- + + /** 自增小板 */ + isAdditionalBlock = false + /** 余料板 IsScrapBlock */ + isRemainBlock = false + /** 开料纹路 */ + texture = TextureType.ROTATABLE_TEXTURE // 可翻转 + /** 排版面 PaiKong */ + placeHole = HoleArrange.RANDOM_FACE // 随意面 + /** 异型偏移x BorderLengthHeavy */ + abnormalOffsetX = 0 + /** 异型偏移y BorderLengthLight */ + abnormalOffsetY = 0 + + /** 正面有大孔 */ + bigHoleInFaceA(): boolean { + let res = false + if (this.blockDetail && this.blockDetail.bigHoleInFaceA) { + res = true + } + return res + } + + /** 是否异形 */ + isUnRegular = false + // isUnRegular(): boolean { + // return this.blockDetail && this.blockDetail.isUnRegular || false + // } + + /** 正面孔数 */ + holeCountFront(): number { + return this.blockDetail && this.blockDetail.holeCountFront || 0 + } + + /** 反面孔数 */ + holeCountBack(): number { + return this.blockDetail && this.blockDetail.holeCountBack || 0 + } + + /** 通孔数 */ + holeCountThrough(): number { + return this.blockDetail && this.blockDetail.holeCountThrough || 0 + } + + /** 侧孔数 HoleCount_Side */ + holeCountSide(): number { + return this.blockDetail && this.blockDetail.holeCountSide || 0 + } + + /** 左侧孔数 HoleCount_Left */ + holeCountLeft() { return this.blockDetail && this.blockDetail.holeCountLeft } + /** 右侧孔数 HoleCount_Right */ + holeCountRight() { return this.blockDetail && this.blockDetail.holeCountRight } + /** 侧孔数 HoleCount_Upper */ + holeCountTop() { return this.blockDetail && this.blockDetail.holeCountTop } + /** 侧孔数 HoleCount_Under */ + holeCountBottom() { return this.blockDetail && this.blockDetail.holeCountBottom } + /** 正面造型数 */ + modelCountFront(): number { + return this.blockDetail && this.blockDetail.modelCountFront || 0 + } + + /** 反面造型数 */ + modelCountBack(): number { + return this.blockDetail && this.blockDetail.modelCountBack || 0 + } + + /** 打穿造型数 */ + modelCountThrough(): number { + return (this.blockDetail && this.blockDetail.modelCountThrough) || 0 + } + + /** 有挖穿造型 */ + hasModelThrough(): boolean { + return (this.blockDetail && this.blockDetail.hasModelThrogh) || false + } + + /** 需双面处理 */ + isDoubleFaceProcess(): boolean { + if (this.placeHole == HoleArrange.RANDOM_FACE) // 随意面 + { + return (this.blockDetail && this.blockDetail.isTwoFaceProcess) || false + } + else if (this.placeHole == HoleArrange.FRONT) // 正面 + { + return this.holeCountBack() + this.modelCountBack() > 0 + } + else { + return this.holeCountFront() + this.modelCountFront() > 0 + } + } // (根据排版规格计算) + + /** 优化排版时,需反面(不是真正的反面开料) */ + isTurnFaceToPlace = false + + /** 优化排版时,可双面排版 */ + isTwoFaceToPlace = false + /** 是否弧形地脚,不处理异形 IsHXDJX */ + isCurvedGroundLine = false + /** 封边偏移值x */ + offsetX(): number { + return (this.blockDetail && this.blockDetail.offsetX) || 0 + } + + /** 封边偏移值y */ + offsetY(): number { + return (this.blockDetail && this.blockDetail.offsetY) || 0 + } + + // 异形、孔、造型明细列表 + points(): BlockPoint[] { + return (this.blockDetail && this.blockDetail.points) || [] + } + + orgPoints(): BlockPoint[] { + return (this.blockDetail && this.blockDetail.orgPoints) || [] + } + + holes(): BlockHole[] { + return (this.blockDetail && this.blockDetail.holes) || [] + } + + models(): BlockModel[] { + return (this.blockDetail && this.blockDetail.models) || [] + } + + holeListOrgFaceA(): BlockHole[] { + return (this.blockDetail && this.blockDetail.holeListFaceA) || [] + } + + holeListOrgFaceB(): BlockHole[] { + return (this.blockDetail && this.blockDetail.holeListFaceB) || [] + } + + holeListOrgThrough(): BlockHole[] { + return (this.blockDetail && this.blockDetail.holeListThrough) || [] + } + + holeListOrgFaceSide(): SideHole[] { + return (this.blockDetail && this.blockDetail.holeListSide) || [] + } + + modelListOrgFaceA(): BlockModel[] { + return (this.blockDetail && this.blockDetail.modelListFaceA) || [] + } + + modelListOrgFaceB(): BlockModel[] { + return (this.blockDetail && this.blockDetail.modelListFaceB) || [] + } + + modelListOrgTrough(): BlockModel[] { + + return (this.blockDetail && this.blockDetail?.modelListThrough) || [] + } + + // 排版情况 + /** 已排版 */ + isPlaced = false + /** 全局大板Id */ + fullBoardId = 0 + /** 大板ID */ + boardId = 0 + /** 排单ID */ + placeId = 0 + /** 坐标X */ + placeX = 0 + /** 坐标Y */ + placeY = 0 + /** 排版方式 */ + placeStyle: PlaceStyle = PlaceStyle.FRONT // 正面 + /** 下刀点区域 */ + cutRegion = BlockRegion.LEFT_BOTTOM // 左下 + /** 开料顺序 */ + cutOrder = 0 + /** 下刀点位 */ + cutPointId = 0 + /** 开料宽 */ + placeWidth = 0 + /** 开料长 */ + placeLength = 0 + /** 开料左封边 */ + placeSealLeft = 0 + /** 开料右封边 */ + placeSealRight = 0 + /** 开料上封边 */ + placeSealTop = 0 + /** 开料下封边 */ + placeSealBottom = 0 + /** 原造型下刀超出板外情况 OrgSizeOutOff */ + orgSizeExpand: SizeExpand = new SizeExpand() + /** 造型下刀超出板外情况 尺寸扩展 SizeOutOff */ + sizeExpand() { return this.blockDetail ? this.blockDetail.currentSizeExpand : '' }; + /** 排版宽 加上预铣等外括 ,开料刀半径 ,缝隙 */ + // placeFullWidth() { return this.cutWidth + this.blockDetail.currentSizeExpand.width } + placeFullWidth() { return this.cutWidth + (this.blockDetail ? this.blockDetail?.currentSizeExpand?.width || 0 : 0) } + /** 排版长 加上预铣等外括 ,开料刀半径 ,缝隙 */ + placeFullLength() { return this.cutLength + (this.blockDetail ? this.blockDetail?.currentSizeExpand?.length || 0 : 0) } + /** 坐标偏移情况 */ + placeOffX = 0 + placeOffY = 0 + /** 原始排版坐标 */ + placeOrgX() { return this.placeX - this.placeOffX } + placeOrgY() { return this.placeY - this.placeOffY } + /** 反面开料 */ + isTurnOver(): boolean { + return this.placeStyle > 3 + } + + /** 后转180 */ + isTurnBack(): boolean { + return ( + this.placeStyle == PlaceStyle.BACK_TURN_BACK + || this.placeStyle == PlaceStyle.FRONT_TURN_BACK + ) + } + + /** 反纹开料 */ + isTurnDown(): boolean { + return this.placeStyle % 2 == 1 + } + + /** 自动排版 */ + isAutoPlaced = true + /** 超出板外 */ + isOutBoard = false + /** 已重叠 */ + isOverlap = false + /** 高方向 */ + placeDirection = '→' + /** 长边方向 */ + placeDirection_Length = '→' + + // 开料情况 + + // isUseSameKnifeToHelpCut() { return this.blockDetail ? this.blockDetail.isHelpCut : false; }; + /** 是否排钻 IsDoHoling */ + isDrilling = true + /** 是否造型 IsDoModeling */ + isModeling = true + /** 超限板标识 : -1=不是; 0=不判断 1=是 */ + overBlockFlag = 0 + /** 开料时需翻面 IsDoOtherFace */ + isCutOtherFace = false + /** 开料反面要处理 NeedTurnFaceToDo */ + isCutTurnOver = false + + /** 开料面孔数 HoleCount_DoFaceA */ + holeCountFaceA(): number { + return this.holeListFaceA.length + } + + /** 开料反面孔数 HoleCount_DoFaceB */ + holeCountFaceB(): number { + return this.holeListFaceB.length + } + + /** 开料左侧孔数 HoleCount_DoLeft */ + holeCountSideLeft = 0 + /** 开料右侧孔数 HoleCount_DoRight */ + holeCountSideRight = 0 + /** 开料上侧孔数 HoleCount_DoUpper */ + holeCountSideTop = 0 + /** 开料下侧孔数 HoleCount_DoUnder */ + holeCountSideBottom = 0 + /** 开料面造型数 ModelCount_DoFaceA */ + modelCountFaceA(): number { + return this.modelListFaceA.length + } + + /** 开料反面造型数 ModelCount_DoFaceB */ + modelCountFaceB(): number { + return this.modelListFaceB.length + } // 不显示 + + /** 开料面孔 Holes_DoFaceA */ + holeListFaceA: BlockHole[] = [] // 不显示 + /** 开料反面孔 Holes_DoFaceB */ + holeListFaceB: BlockHole[] = [] // 不显示 + /** 开料面造型 Models_DoFaceA */ + modelListFaceA: BlockModel[] = [] // 不显示 + /** 开料反面造型 Models_DoFaceB */ + modelListFaceB: BlockModel[] = [] + + /** 贴标位置x NotePosX */ + labelPosX = 0 + /** 贴标位置y NotePosY */ + labelPosY = 0 + + // CNC高级对接-------------------------------------------------------- + + /** CNC正面条码 CNC_NoteA */ + isCncLabelA = false + /** CNC反面条码 CNC_NoteB */ + isCncLabelB = false + /** CNC翻面条码 CNC_NoteT */ + isCncLabelTurnOver = false + /** 类型 */ + type = '' + /** 加工组 */ + processGroupName = '' + /** 开门类型 */ + openDoorType = OpenDoorType.NONE // 无 + /** 自增小板的id接口获取 */ + _blockId = '' + + constructor(data: any = null) { + if (data != null) { + + for (const key in data) { + if (Reflect.has(this, key)) { + if (['goodsId'].includes(key)) { + this[key] = data[key].toString() + } else if (['width', 'length', 'thickness', 'sealLeft', 'sealRight', 'sealTop', 'sealBottom'].includes(key)) { + this[key] = StringFormat.toFixed(data[key], 3) + } else if (key == 'texture') { + this.texture = data.texture + } else if (key == 'placeHole') { + this.placeHole = data.placeHole + } else if (key == 'remarkJson') { + let remarkList = JSON.parse(data.remarkJson == null || data.remarkJson == '' ? '[]' : data.remarkJson) + this.remark1 = remarkList[0] == null ? '' : remarkList[0] + this.remark2 = remarkList[1] == null ? '' : remarkList[1] + this.remark3 = remarkList[2] == null ? '' : remarkList[2] + this.remark4 = remarkList[3] == null ? '' : remarkList[3] + this.remark5 = remarkList[4] == null ? '' : remarkList[4] + } + else { + try { + if (Object.getOwnPropertyDescriptor(this, key)?.writable == true) { + this[key] = data[key] + } + + } catch (error) { + console.log(error) + } + + } + } else { + // console.log('PlaceBlock Init', key) + } + } + this.cutWidth = this.width - this.sealLeft - this.sealRight + this.cutLength = this.length - this.sealTop - this.sealBottom + this.cutArea = this.cutWidth * this.cutLength * 0.000001 + this._blockId = data.blockId + + } + } + + getRemark(rname, st = '', ed = '') { + if (!this.extraRemark) + return '' + if (!this.extraRemark[rname]) + return '' + let text: string = this.extraRemark[rname] + if (st != '') { + let index = text.indexOf(st) + if (index > -1) { + // text = text.substr(index + st.length, 99999); + text = text.substring(index + st.length, 99999) + } + } + if (ed != '') { + let index = text.indexOf(ed) + if (index > -1) { + text = text.substring(0, index) + } + } + return text + } +} +/** 小板明细(异形,造型,孔) */ +export class PlaceBlockDetail { + // 数据库定义列 + /** 用户ID */ + organId: number = 0 + /** 数据类型 */ + dataType: number = 0 + /** 订单号 */ + orderId: number = 0 + /** 小板ID */ + blockId: number = 0 + /** 原柜体编号rawBoxNo */ + rawBoxNo: number = 0 + /** 异形定义明细 */ + pointDetail: any = [] + /** 造型定义明细 */ + modelDetail: any = [] + /** 排钻定义明细 */ + holeDetail: any = [] + + /** 封边偏移值x */ + offsetX = 0 + /** 封边偏移值y */ + offsetY = 0 + /** 开料宽度 KaiLiaoWidth */ + cutWidth = 0 + /** 开料长度 KaiLiaoLength */ + cutLength = 0 + + /** 异形点阵 */ + points: BlockPoint[] = [] + /** 异形点阵含封边 */ + orgPoints: BlockPoint[] = [] + /** 原轮廓数据 */ + orgContourData = null + + /** 排钻 */ + holes: BlockHole[] = [] + /** 正面孔列表(不包含通孔和孔深大于板厚) Holes_FaceA */ + holeListFaceA: BlockHole[] = [] + /** 反面孔列表(不包含通孔和孔深大于板厚) Holes_FaceB */ + holeListFaceB: BlockHole[] = [] + /** 穿孔列表(通孔和孔深大于板厚) Holes_Through */ + holeListThrough: BlockHole[] = [] + /** 侧孔列表 Holes_FaceSide */ + holeListSide: SideHole[] = [] + + /** 造型点阵 */ + models: BlockModel[] = [] + /** 正面造型列表(不包含打穿) Models_FaceA */ + modelListFaceA: BlockModel[] = [] + /** 反面造型列表(不包含打穿) Models_FaceB */ + modelListFaceB: BlockModel[] = [] + /** 打穿造型列表 Models_Through */ + modelListThrough: BlockModel[] = [] + /** 侧面造型 BlockModel SideModels 20241111 改为 BlockModel */ + modelListSide: SideModel[] = [] + + + // /** 切割板宽 */ + // cuttingWidth = 0; + // /** 切割板厚 */ + // cuttingLength = 0; + /** 板厚 */ + thickness = 18 + /** 是否异形 */ + isUnRegular = false + /** 正面有打孔 */ + bigHoleInFaceA = false + /** 正面孔数 */ + holeCountFront = 0 + /** 反面孔数 */ + holeCountBack = 0 + /** 穿孔数 */ + holeCountThrough = 0 + /** 侧孔数 */ + holeCountSide = 0 + /** 左侧孔数 */ + holeCountLeft = 0 + /** 右侧孔数 */ + holeCountRight = 0 + /** 上侧孔数 */ + holeCountTop = 0 + /** 下侧孔数 */ + holeCountBottom = 0 + + /** 斜孔数量 */ + holeCountBevelled = 0 + + + /** 正面造型数 */ + modelCountFront = 0 + /** 反面造型数 */ + modelCountBack = 0 + /** 打穿造型数 */ + modelCountThrough = 0 + + /** 侧面造型数量 */ + modelCountSide(): number { + return this.modelListSide.length + } + /** 下侧造型数量 */ + modelCountBottom(): number { + return this.modelListSide.filter(sideModel => sideModel.face == 0).length + } + /** 右侧造型数量 */ + modelCountRight(): number { + return this.modelListSide.filter(sideModel => sideModel.face == 1).length + } + /** 下侧造型数量 */ + modelCountTop(): number { + return this.modelListSide.filter(sideModel => sideModel.face == 2).length + } + /** 下侧造型数量 */ + modelCountLeft(): number { + return this.modelListSide.filter(sideModel => sideModel.face == 3).length + } + + /** 是否有挖穿的造型 */ + hasModelThrogh = false + + /** 双面处理 Do2Face */ + isTwoFaceProcess = false + // isTwoFaceProcess(): boolean + // { + // return this.blockDetail && this.blockDetail.isTwoFaceProcess + // } + // 为了缺角空间 放在右边 + /** 当需要正面正纹的,最佳放置方式: 正面或正面后转 Ps00 */ + placeStyleFront = PlaceStyle.FRONT // 正面 + /** 正面反纹放置方式 Ps01 */ + placeStyleFrontReverse = PlaceStyle.FRONT_TURN_RIGHT // 正面右转 + /** 反面正纹放置方式 Ps10 */ + placeStyleBack = PlaceStyle.BACK // 反面 + /** 反面反纹放置方式 Ps11 */ + placeStyleBackReverse = PlaceStyle.BACK_TURN_LEFT // 反面左转 + + /** 开料序号贴标位置x */ + labelPosX = -1 + /** 开料序号贴标位置y */ + labelPosY = -1 + + /** 是否初始化 */ + isInited = false + /** 是否已检查 */ + isChecked = false + + /** 全部二维刀路径集合 { model, modelID, lineID, isFaceB, name, value, knife, knifeRadius, depth, points, offset} */ + // vKnifeModels: any[]; + + /** 是否偏移倒角 IsOffsetRounding */ + isOffsetRounding = false + /** 偏移值刀半径 CutR */ + offsetKnifeRadius = 0 + + /** 当前的预铣值 preCutValue */ + preMillingSize = 0 + /** 该板需要辅助开料 isNeedHelpCut */ + isUseSameKnifeToHelpCut = false + /** 同刀辅助值 */ + useSameKnifeToHelpCutGap = 2 + + /** 预铣外扩尺寸 preCutSizeOutOff */ + preMillingExpandSize: SizeExpand | null = null + /** 板外造型外扩尺寸 modelKnifeOutOff */ + modelExpandSize: SizeExpand | null = null + /** 2V刀路V外扩尺寸 */ + vKnifeModelExpandSize: SizeExpand | null = null + /** 同刀辅助外扩尺寸 sameKnfieHelpOutOff */ + sameKnfieHelpExpandSize: SizeExpand | null = null + /** 当前外扩 currentOutOff */ + currentSizeExpand: SizeExpand | null = null + /** 边框轮廓,走刀路径等(包含偏移后的轮廓结合) borderUnit */ + borderContour: PlaceBorderContour | null = null + + // 板件扩展尺寸 数据集 + plateExtraRemark: any + + /** 优化前的配置及其轮廓等用于恢复 */ + savedSetting + + /** 备注 数据集 */ + remarkParams: any + constructor(data: any = null, sourceType: number = 2) { + if (data != null) { + this.remarkParams = data.remarkParams + this.orderId = data.orderId + this.dataType = data.dataType + this.orderId = data.orderId + this.blockId = data.blockId + this.rawBoxNo = data.rawBoxNo + + // 封边偏移值 + this.offsetX = data.offSet && data.offSet.x ? StringFormat.toFixed(data.offSet.x, 3) : 0 + this.offsetY = data.offSet && data.offSet.y ? StringFormat.toFixed(data.offSet.y, 3) : 0 + // 开料长宽(不含封边) + this.cutWidth = data.cutSize ? StringFormat.toFixed(data.cutSize.width, 3) : 0 + this.cutLength = data.cutSize ? StringFormat.toFixed(data.cutSize.height, 3) : 0 + // 初始化 异形点阵 + data.pointDetail.forEach((p) => { this.points.push(new BlockPoint(p)) }) + // 初始化 异形点阵 含封边 + if (!data.orgPointDetail) { + data.orgPointDetail = [] + } + data.orgPointDetail.forEach((p) => { this.orgPoints.push(new BlockPoint(p)) }) + + if (!data.holes) { + data.holes = data.holeDetail || [] + } + // 初始化 排钻列表 + data.holes.forEach((h) => { this.holes.push(new BlockHole(h)) }) + // 初始化 侧孔列表 + if (!data.holeListSide) { + data.holeListSide = data.sideHoleDetail || [] + } + data.holeListSide.forEach((sh) => { this.holeListSide.push(new SideHole(sh)) }) + // 初始化 造型列表 + data.modelDetail.forEach((t) => { this.models.push(new BlockModel(t)) }) + // 初始化 侧面造型列表 + if (!data.modelListSide) { + data.modelListSide = [] + } + + this.plateExtraRemark = data.plateExtraRemark + + data.modelListSide.forEach((t) => { this.modelListSide.push(new SideModel(t)) }) // 侧面 + + this.holeListFaceA = this.holes.filter(t => t.face == FaceType.FRONT) // 正面 + this.holeListFaceB = this.holes.filter(t => t.face == FaceType.BACK) // 反面 + this.holeListThrough = [] + + this.modelListFaceA = this.models.filter(t => t.face == FaceType.FRONT && (t.depth < this.thickness || t.isVKnifeModel())) + this.modelListFaceB = this.models.filter(t => t.face == FaceType.BACK && (t.depth < this.thickness || t.isVKnifeModel())) + this.modelListThrough = this.models.filter(t => t.depth > this.thickness - 0.01 && t.isVKnifeModel() == false) + + this.holeCountFront = this.holeListFaceA.length + this.holeCountBack = this.holeListFaceB.length + this.holeCountThrough = this.holeListThrough.length + this.holeCountSide = this.holeListSide.length + + this.modelCountFront = this.modelListFaceA.length + this.modelCountBack = this.modelListFaceB.length + this.modelCountThrough = this.modelListThrough.length + + this.hasModelThrogh = this.modelListThrough.length > 0 + this.bigHoleInFaceA = this.holeListFaceA.some(t => t.holeType == HoleType.BIG_HOLE) // 大孔 + + } + + this.isUnRegular = this.points.length > 0 + + } + + /** 保存 开料配置 */ + saveSetting() { + this.savedSetting = {} + + this.savedSetting.offsetKnifeRadius = this.offsetKnifeRadius + this.savedSetting.preMillingSize = this.preMillingSize + this.savedSetting.isUseSameKnifeToHelpCut = this.isUseSameKnifeToHelpCut + this.savedSetting.useSameKnifeToHelpCutGap = this.useSameKnifeToHelpCutGap + // SizeExpand + this.savedSetting.preMillingExpandSize = this.preMillingExpandSize + this.savedSetting.modelExpandSize = this.modelExpandSize + this.savedSetting.vKnifeModelExpandSize = this.vKnifeModelExpandSize + this.savedSetting.sameKnfieHelpExpandSize = this.sameKnfieHelpExpandSize + this.savedSetting.currentExpandSize = this.currentSizeExpand + // 轮廓,铣刀路径 + if (this.borderContour != null) { + this.savedSetting.borderContour = this.borderContour.clone() + } + + } + + loadSetting() { + if (!this.savedSetting) + return + this.offsetKnifeRadius = this.savedSetting.offsetKnifeRadius + this.preMillingSize = this.savedSetting.preMillingSize + this.isUseSameKnifeToHelpCut = this.savedSetting.isUseSameKnifeToHelpCut + this.useSameKnifeToHelpCutGap = this.savedSetting.useSameKnifeToHelpCutGap + // SizeOutOff + this.preMillingExpandSize = this.savedSetting.preMillingExpandSize + this.modelExpandSize = this.savedSetting.modelExpandSize + this.vKnifeModelExpandSize = this.savedSetting.vKnifeModelExpandSize + this.sameKnfieHelpExpandSize = this.savedSetting.sameKnfieHelpExpandSize + this.currentSizeExpand = this.savedSetting.currentSizeExpand + // 轮廓,铣刀路径 + this.borderContour = this.savedSetting.borderContour + } +} +/** 开门类型(0无 1左 2右 3上 4下) */ +export enum OpenDoorType { + /** 无 */ + NONE = 0, + /** 左 */ + LEFT = 1, + /** 右 */ + RIGHT = 2, + /** 上 */ + TOP = 3, + /** 下 */ + BOTTOM = 4, +} + +/** 纹理类型 */ +export enum TextureType { + /** 正纹 */ + NORMAL_TEXTURE = 0, + /** 可翻转 */ + ROTATABLE_TEXTURE = 1, + /** 反纹 */ + REVERSE_TEXTURE = 2, +} + +/** 排钻 */ +export class BlockHole { + /** 孔类别 */ + holeType: HoleType = 0 + /** 面 */ + face: FaceType = 0 + /** 侧孔所在面 */ + sideFace: FaceType = FaceType.FRONT // 正面 + /** 坐标x */ + pointX: number = 0 + /** 坐标y */ + pointY: number = 0 + /** 坐标z */ + pointZ: number = 0 + /** 半径 */ + radius: number = 5 + /** 深度 */ + depth: number = 12 + /** 终点坐标 */ + endPoint: string = '' + /** 角度 */ + angle: number = 0 + /** CNC不能加工 cncUndo */ + isCncCanNotProcess: boolean = false + /** 不能加工类型 unDoType */ + cncCanNotProcessType = '' + /** 是否在开料机上处理 IsDo */ + isCutting: boolean = true + + knife: Knife | null = null + + + constructor(data: any = null) { + if (data != null) { + this.holeType = data.holeType + this.face = data.face + this.pointX = StringFormat.toFixed(data.pointX, 3) + this.pointY = StringFormat.toFixed(data.pointY, 3) + this.pointZ = StringFormat.toFixed(data.pointZ, 3) + this.radius = StringFormat.toFixed(data.radius, 3) + this.depth = StringFormat.toFixed(data.depth, 3) + this.angle = data.angle ? data.angle : 0 + this.endPoint = data.endPoint + } + } + + ToSideHole(block: PlaceBlock): SideHole { + let newH = new SideHole() + newH.holeType = this.holeType + newH.faceId = 0 + newH.sideFace = SideFaceType.BOTTOM // 下侧面 + newH.pointX = this.pointX + newH.pointY = this.pointY + newH.pointZ = this.pointZ + + newH.radius = 4 + let diameter = this.radius * 2 + if (Math.abs(diameter - 8.3) < 0.1 || Math.abs(diameter - 6.3) < 0.1 || Math.abs(diameter - 11.5) < 0.1 || Math.abs(diameter - 12) < 0.1) { + newH.radius = this.radius + } + newH.depth = this.depth + + let cells = this.endPoint.split(',') + if (cells.length >= 3) { + // 起点坐标 + let bx = Number.parseFloat(cells[0]) + let by = Number.parseFloat(cells[1]) + + // x 相等 , 侧孔方向 上下 + if (Math.abs(bx - this.pointX) < 0.1) { + let toUpper = this.isToTop(block, by) + if (toUpper) // y+ 向上 + { + newH.pointX2 = bx + newH.pointY2 = this.pointY + this.depth + newH.direct = 0 + newH.faceId = 0 + newH.sideFace = SideFaceType.BOTTOM_SIDE // 下侧面 + } // y- 向下 + else { + newH.pointX2 = bx + newH.pointY2 = this.pointY - this.depth + newH.direct = 2 + newH.faceId = 2 + newH.sideFace = SideFaceType.TOP_SIDE // 上侧面 + } + } + else if (Math.abs(by - this.pointY) < 0.1) { + let toRight = this.isToRight(block, bx) + // y相等, 侧孔方向左右 + if (toRight) { + // x+ 向右 + newH.pointX2 = this.pointX + this.depth + newH.pointY2 = by + newH.direct = 3 + newH.faceId = 3 + newH.sideFace = SideFaceType.LEFT_SIDE // 左侧面 + } // x- 向左 + else { + newH.pointX2 = this.pointX - this.depth + newH.pointY2 = by + newH.direct = 1 + newH.faceId = 1 + newH.sideFace = SideFaceType.RIGHT_SIDE // 右侧面 + } + } // x ,y 都不相等 + else { + newH.pointX2 = bx + newH.pointY2 = by + newH.direct = -1 + newH.faceId = 4 + newH.sideFace = SideFaceType.SPECIAL_SHAPED_SIDE // 异形侧面 + } + } + + return newH + } + + /** 向右(bx: 起点坐标X) */ + private isToRight(block: PlaceBlock, bx: number): boolean { + // 在左侧外 + if (bx < 0) + return true + // 在板内 靠左侧 + if (bx > 22 && bx < 40) + return true + + // 在右侧外 + if (bx > block.width) + return false + // 在右侧外 + if (bx > block.width - 40 && bx < block.width - 22) + return false + + for (let i = 0; i < block.points.length; i++) { + let j = i + 1 + if (j == block.points.length) + j = 0 + let p1 = block.points[i] + let p2 = block.points[j] + if (Math.abs(p1.pointX - this.pointX) < 3 && Math.abs(p2.pointX - this.pointX) < 3 && (p1.pointY > this.pointY != p2.pointY > this.pointY)) { + return p1.pointY > p2.pointY + } + } + + return false + } + + /** 向上(起点坐标Y) */ + private isToTop(block: PlaceBlock, by: number): boolean { + // 在下侧外 + if (by < 0) + return true + // 靠近下侧 + if (by > 22 && by < 40) + return true + + if (by > block.length) + return false + if (by > block.length - 40 && by < block.length - 20) + return false + + for (let i = 0; i < block.points.length; i++) { + let j = i + 1 + if (j == block.points.length) + j = 0 + let p1 = block.points[i] + let p2 = block.points[j] + if (Math.abs(p1.pointY - this.pointY) < 3 && Math.abs(p2.pointY - this.pointY) < 3 && (p1.pointX > this.pointX != p2.pointX > this.pointX)) { + return p1.pointX < p2.pointX + } + } + + return false + } +} +/** 异形点 */ +export class BlockPoint { + /** 坐标x */ + pointX: number = 0 + /** 坐标y */ + pointY: number = 0 + /** 凹凸度 */ + curve: number = 0 + /** 半径 */ + radius: number = 0 + /** 封边 */ + sealSize: number = 0 + /** 是否这条边需预洗 */ + isPreCutRequired = false + + constructor(data: any = null) { + if (data != null) { + let x = data.PointX != undefined ? data.PointX : data.pointX + let y = data.PointY != undefined ? data.PointY : data.pointY + let curve = data.Curve != undefined ? data.Curve : data.curve + let radius = 1 / curve + this.pointX = StringFormat.toFixed(x) + this.pointY = StringFormat.toFixed(y) + this.curve = curve + this.radius = StringFormat.toFixed(Math.abs(radius)) + if (Math.abs(this.curve) < 1e-5) { + this.curve = 0 + this.radius = 0 + } + this.sealSize = data.SealSize != undefined ? data.SealSize : data.sealSize || 0 + } + } + + copy(): BlockPoint { + let nw = new BlockPoint() + nw.pointX = this.pointX + nw.pointY = this.pointY + nw.curve = this.curve + nw.radius = this.radius + nw.sealSize = this.sealSize + return nw + } +} + +/** 侧孔 */ +export class SideHole { + /** 孔类别 */ + holeType: HoleType = 0 + /** 面 */ + faceId: number = 0 + /** 侧孔所在面 */ + sideFace: SideFaceType = SideFaceType.BOTTOM // 正面 + /** 方向 0向上 1向左 2向下 3向右 -1斜 */ + direct: number = 0 + /** 坐标x */ + pointX: number = 0 + /** 坐标y */ + pointY: number = 0 + /** 坐标z */ + pointZ: number = 0 + /** 半径 */ + radius: number = 5 + /** 深度 */ + depth: number = 12 + + /** 坐标x */ + pointX2: number = 0 + /** 坐标y */ + pointY2: number = 0 + + // cncUndo: boolean = true; //cnc不能做. + /** CNC不能处理 */ + isCncCanNotProcess: boolean = true + + /** 是否可处理 IsDo */ + isProcess: boolean = true + + knife: Knife | null = null + + constructor(data: any = null) { + if (data != null) { + this.holeType = data.holeType + this.faceId = data.face + this.sideFace = data.sideFace + this.direct = data.sideFace + this.pointX = StringFormat.toFixed(data.pointX, 3) + this.pointY = StringFormat.toFixed(data.pointY, 3) + this.pointZ = StringFormat.toFixed(data.pointZ, 3) + this.radius = StringFormat.toFixed(data.radius, 3) + this.depth = StringFormat.toFixed(data.depth, 3) + this.pointX2 = StringFormat.toFixed(data.pointX2, 3) + this.pointY2 = StringFormat.toFixed(data.pointY2, 3) + } + } +} + +/** 孔类型 */ +export enum HoleType { + /** 大孔 */ + BIG_HOLE = 0, + /** 小孔 */ + TINY_HOLE = 10, + /** 木削 */ + WOOD_DUST = 20, + /** 木削大孔 */ + WOOD_DUST_BIG_HOLE = 21, + /** 层板钉 */ + LAMINATED_NAIL = 30, + /** 通孔 */ + THROUGH_HOLE = 40, + /** 造型孔 */ + MODELING_HOLE = -10, + /** 连接杆 */ + CONNECTING_ROD = 50, +} + +/** 板件造型 */ +export class BlockModel { + /** 订单号 */ + orderId: string = '' + /** 小板号 */ + blockId: number = 0 + /** 造型Id */ + modelId: number = 0 + /**线ID */ + lineId: number = 0; + /** 纹路Id */ + textureId: number = 0 + /** 板面 */ + face: FaceType = FaceType.UNSET + /** 刀号 */ + knifeName: string = '' + /** 刀半径 */ + knifeRadius: number = 0 + /** 深度 */ + depth: number = 0 + /** 是否可以挖空后排版 */ + canSpace = false + /** 是否是矩形 */ + isRect = false + /** 是否倾斜 至少有一条边是斜的 */ + isTilt = false + + type = '' + + knife: Knife | null | undefined = null + /** 有轮廓 */ + hasContour() { + let val = false + try { + if (this.originModeling != null && this.originModeling.outline != 0 && this.originModeling?.outline.map(e => e?.pts).length > 0) { + val = true + } + } catch (error) { + console.log('handle hasContour error',error) + } + + return val // this.originModeling?.outline.map(e=>e?.pts).length >0 //this.originModeling?.outline?.pts?.length > 0 + } + + modelWidth: any = 0 + modelLength: any = 0 + + modelStartPoint: any = null + modelEndPoint: any = null + /** + * 造型轮廓(孔转的造型,没有造型轮廓) + * OriginModeling.outline.pts.x | y ; outline.buls + */ + originModeling: any = null + + /** 点列表 */ + pointList: BlockModelPoint[] = [] + /** 实际替代刀直径 */ + realKnifeRadius = 0 + /** 实际替代刀点阵 */ + realPointList: BlockModelPoint[] = [] + /** 实际刀编号 */ + realKnifeId = -1 + + /** cnc不能加工 cncUndo */ + isCncCanNotProcess: boolean = true + /** 超限类型(cnc为何不能加工) unDoType */ + cncCanNotProcessType = '' + + /** 是否在开料机加工 IsDo */ + isCutting: boolean = true + + /** 二维造型的偏移数组 */ + offsetList: ModelOffsetData[] = [] + + /** 转换过的二维刀路路径{isFaceB, name刀名称, offset偏移, knife刀, knifeId刀Id, knifeRadius刀半径, depth深度, points{x,y,z,bul,r}, orgOffset(源偏移)} */ + VLines :any[] = [] + + offsetInfo = '' + /** 是否二维造型 */ + isVKnifeModel(): boolean { + return this.offsetList.length > 0 + } + + /** 是否三维造型 */ + is3VModel(): boolean { + return this.offsetList.length == 0 && this.pointList.some(t => Math.abs(t.depth - this.depth) > 0.01) + } + + constructor(data: any = null) { + if (data != null) { + this.modelId = data.modelId + this.lineId = data.lineId + this.textureId = data.textureId + this.face = data.face + this.knifeName = data.knifeName ? data.knifeName.trim() : '' + this.knifeRadius = StringFormat.toFixed(data.knifeRadius, 3) + this.depth = StringFormat.toFixed(data.depth, 3) + + if (data.modelPoint) + data.modelPoint.forEach(pt => { + + this.pointList.push(new BlockModelPoint(pt)) + }) + if (data.modelOffSet) + data.modelOffSet.forEach(os => this.offsetList.push(new ModelOffsetData(os))) + + if (this.offsetList.length > 0) { + let names: any = [] + for (let os of this.offsetList) { + if (os.name == this.knifeName) + continue + if (names.includes(os.name)) + continue + names.push(name) + } + if (names.length == 0) + this.offsetInfo = `${this.offsetList.length - 1}` + else + this.offsetInfo = `${this.offsetList.length - 1}(${names.join(' ')})` + } + + if (data.originModeling) { + this.originModeling = JSON.parse(JSON.stringify(data.originModeling)) + // 计算造型 + // this.countModelWidthAndLength(this) + } + } + } +} + +/** 造型点 */ +export class BlockModelPoint { + /** 坐标X */ + pointX: number = 2 + /** 坐标Y */ + pointY: number = 2 + /** 半径 */ + radius: number = 0 + /** 深度 */ + depth: number = 6 + /** 凹凸度 */ + curve: number = 0 + + constructor(data: any = null) { + if (data != null) { + this.pointX = StringFormat.toFixed(data.PointX || data.pointX) + this.pointY = StringFormat.toFixed(data.PointY || data.pointY) + this.radius = StringFormat.toFixed(Math.abs(data.Radius || data.radius)) + this.depth = StringFormat.toFixed(data.Depth || data.depth) + this.curve = data.Curve || data.curve + } + } + + copy(): BlockModelPoint { + let obj = new BlockModelPoint() + obj.pointX = this.pointX + obj.pointY = this.pointY + obj.radius = this.radius + obj.depth = this.depth + obj.curve = this.curve + return obj + } +} + +/** 二维造型的偏移数据 */ +export class ModelOffsetData { + /** 刀名称 */ + name: string = '' + /** 偏移 */ + offset: number = 0 + /** 刀半径 */ + radius: number = 0 + /** 深度 */ + depth: number = 0 + /** 角度 */ + angle: number = 0 + /** 板面类型 */ + face: FaceType = FaceType.UNSET + + fullName() { + return `偏移${this.offset} 深${this.depth} 刀${this.name}` + } + + constructor(data: any = null) { + if (data != null) { + let off = 0 + if (data.offset != undefined) { + off = data.offset + } else if (data.value != undefined) { + off = data.value + } else if (data.value != undefined) { + off = data.value + } + this.name = data.Name != undefined ? data.Name : data.name + this.offset = StringFormat.toFixed(data.offset || data.value || data.value) + this.radius = StringFormat.toFixed(data.Radius || data.radius) + this.depth = StringFormat.toFixed(data.Deep || data.depth) + this.face = data.Face != undefined ? data.Face : data.face + this.angle = StringFormat.toFixed(data.Angle || data.angle) + } + } +} + +/** + * 侧面造型 所在的面 0 下 1 右 2上 3 左 其它待测试 + */ +export enum SideFaceType { + /** 下 */ + BOTTOM = 0, + /** 右 */ + RIGHT = 1, + /** 上 */ + TOP = 2, + /** 左 */ + LEFT = 3, + + /** 左侧面 */ + LEFT_SIDE = 21, + /** 右侧面 */ + RIGHT_SIDE = 22, + /** 上侧面 */ + TOP_SIDE = 23, + /** 下侧面 */ + BOTTOM_SIDE = 24, + /** 弧形侧面 */ + CURVED_SIDE = 29, + /** 异形侧面 */ + SPECIAL_SHAPED_SIDE = 30, +} + +/** 侧边造型 + * + * 侧面造型的点阵判断逻辑 + * + * 提要: + * 1、 face 为 该造型在该板件的第几条边上 + * 2、 originModeling 内的造型轮廓点阵的 X Y轴 为 : + * 以该造型为正面 且小板板面朝上 造型为正面的左下角为原点 板厚 为 Y 横象为X + * 注:最终使用的时候 要得到该造型 对应机台的 轮廓数据和刀路数据 + * + * 平行判断 参考 checkIsTilt 修改一个新的方法 + * 是否在板内 可使用 isPointInBlock + * + * 要求:要得到 + * + * 转换逻辑 + * 1、通过face 获取 该造型所在的边 + * 2、将这条边 与 板件的坐标轴做比较 判断平行 + * 情况1:与板件的X轴 平行 则造型 可能为 上 || 下 ,使用 isPointInBlock 判断 具体是上 还是下 + * 情况2:与板件的Y轴 平行 则造型 可能为 左 || 右 , 使用 isPointInBlock 判断 具体是左 还是右 + * 情况3:都不平行 则 朝向的值为斜边 + * 最终得到造型的朝向 + * 3、依据边的坐标和造型的朝向 可以 根据造型的轮廓数据转为 对应机台的轮廓数据 和刀路数据 +*/ +export class SideModel { + /** 订单号 */ + orderId: string = '' + /** 小板号 */ + blockId: number = 0 + /** 造型Id */ + modelId: number = 0 + /**线ID */ + lineId: number = 0; + /** 纹路Id */ + textureId: number = 0 + /** 板面 造型所在的边 第几条边 */ + face: SideFaceType = 0 + /** 刀号 */ + knifeName: string = '' + /** 刀半径 */ + knifeRadius: number = 0 + /** 深度 */ + depth: number = 0 + /** 是否可以挖空后排版 */ + canSpace = false + /** 是否是矩形 */ + isRect = false + /** 是否倾斜 至少有一条边是斜的 */ + isTilt = false + /** 暂时没用 */ + type = '' + + /** 造型方向 -2 未知(是异常情况 要排查) -1 斜的 0 下 1右 2上 3左 10 左下斜 11 右下斜 12 右上斜 13 左上斜 */ + + direction = 0 + + + knife: Knife | null = null + /** 有轮廓 */ + hasContour() { return this.originModeling != null && this.originModeling.outline != 0 && this.originModeling?.outline?.pts?.length > 0 } + + /** 侧面造型 宽 */ + modelWidth: any = 0 + + /** 侧面造型 长 */ + modelLength: any = 0 + + /** 侧面造型 起点 */ + modelStartPoint: any = null + + /** 侧面造型 终点 */ + modelEndPoint: any = null + /** + * 造型轮廓(孔转的造型,没有造型轮廓) + * OriginModeling.outline.pts.x | y ; outline.buls + */ + originModeling: any = null + + /** 点列表 */ + pointList: BlockSideModelPoint[] = [] + /** 实际替代刀直径 */ + realKnifeRadius = 0 + /** 实际替代刀点阵 */ + realPointList: BlockSideModelPoint[] = [] + /** 实际刀编号 */ + realKnifeId = -1 + + /** cnc不能加工 cncUndo */ + isCncCanNotProcess: boolean = true + /** 超限类型(cnc为何不能加工) unDoType */ + cncCanNotProcessType = '' + + /** 是否在开料机加工 IsDo */ + isCutting: boolean = true + + /** 二维造型的偏移数组 */ + offsetList: ModelOffsetData[] = [] + + /** 转换过的二维刀路路径{isFaceB, name刀名称, offset偏移, knife刀, knifeId刀Id, knifeRadius刀半径, depth深度, points{x,y,z,bul,r}, orgOffset(源偏移)} */ + VLines = [] + + offsetInfo = '' + /** 是否二维造型 */ + isVKnifeModel(): boolean { + return this.offsetList.length > 0 + } + + /** 是否三维造型 */ + is3VModel(): boolean { + return this.offsetList.length == 0 && this.pointList.some(t => Math.abs(t.depth - this.depth) > 0.01) + } + + constructor(data: any = null) { + if (data != null) { + this.modelId = data.modelId + this.lineId = data.lineId + this.textureId = data.textureId + this.face = data.face + this.knifeName = data.knifeName ? data.knifeName.trim() : '' + this.knifeRadius = StringFormat.toFixed(data.knifeRadius, 3) + this.depth = StringFormat.toFixed(data.depth, 3) + + + // if (data.originModeling) + // { + // this.originModeling = JSON.parse(JSON.stringify(data.originModeling)) + // MachineHelper.countModelWidthAndLength(this) + // } + } + } + +} + +/** 小板区域 */ +export enum BlockRegion { + /** 左下 = 0 */ + LEFT_BOTTOM = 0, + /** 右下 = 1 */ + RIGHT_BOTTOM = 1, + /** 右上 = 2 */ + RIGHT_TOP = 2, + /** 左上 = 3 */ + LEFT_TOP = 3, +} + +/** 造型偏移 */ +export class SizeExpand { + /** 左 */ + left: number = 0 + /** 右 */ + right: number = 0 + /** 上 */ + top: number = 0 + /** 下 */ + bottom: number = 0 + /** 板外扩宽 */ + width: number = 0 + /** 板外扩长 */ + length: number = 0 + /** 排版外扩宽 */ + outWidth: boolean + /** 排版外扩长 */ + outLength: boolean + /** 是否完成 */ + hasDone: boolean + + constructor(data: any = null) { + if (data != null) { + this.left = data.left || 0 + this.right = data.right || 0 + this.bottom = data.bottom || 0 + this.top = data.top || 0 + this.width = (this.left + this.right) || 0 + this.length = (this.top + this.bottom) || 0 + } + } + + /** 设置长宽 */ + setSize() { + this.width = this.left + this.right + this.length = this.top + this.bottom + } + + toString() { + return `左:${this.left.toFixed(2)} 右:${this.right.toFixed(2)} 上:${this.top.toFixed(2)} 下:${this.bottom.toFixed(2)}` + } +} + +/** + * 板件侧面早些点阵 + */ +export class BlockSideModelPoint { + /** 坐标X */ + pointX: number = 2 + /** 坐标Y */ + pointY: number = 2 + /** 坐标Z */ + pointZ: number = 2 + /** 半径 */ + radius: number = 0 + /** 深度 */ + depth: number = 6 + /** 凹凸度 */ + curve: number = 0 + + constructor(data: any = null) { + if (data != null) { + this.pointX = StringFormat.toFixed(data.pointX || data.x) + this.pointY = StringFormat.toFixed(data.pointY || data.y) + this.pointZ = StringFormat.toFixed(data.pointZ || data.z) + this.radius = StringFormat.toFixed(Math.abs(data.radius || 0)) + this.depth = StringFormat.toFixed(data.depth) + this.curve = data.curve || data.buls || 0 + + if (this.radius == 0 && this.curve != 0) { + this.radius = 1 / this.curve + } + } + } + + copy(): BlockSideModelPoint { + let obj = new BlockSideModelPoint() + obj.pointX = this.pointX + obj.pointY = this.pointY + obj.radius = this.radius + obj.depth = this.depth + obj.curve = this.curve + return obj + } +} + + +/** 放置板的边框集合,内部轮廓,偏移后轮廓 */ +export class PlaceBorderContour { + /** 放置方式 */ + placeStyle: PlaceStyle = PlaceStyle.FRONT // 正面 + /** 1成品轮廓 必须提前生成 */ + borderFinal: CAD.Curve2d[] + /** 2原始轮廓 <不含预铣> 必须提前生成 */ + borderOrg: CAD.Curve2d[] + /** 2.原始轮廓含预铣 border_preCut */ + borderPreMilling: CAD.Curve2d[] = [] + + /** 2原始多段线 《不含预铣》 必须提前生成,用于 计算造型,2v板外干涉轮廓 */ + polylineOrg: Polyline | null = null + + /** 3.1开料轮廓 <含预铣> */ + border: CAD.Curve2d[] = [] + + /** 3.2真.开料轮廓.同刀辅助._有预铣带预铣) border_tdfz */ + borderSameKnifeHelpCut: CAD.Curve2d[] = [] + /** 走刀路径(预铣) */ + cutLines: CAD.Curve2d[] = [] + + /** 走刀路径2(预铣 同刀辅助) cutLines_tdfz */ + cutLinesSameKnifeHelpCut: CAD.Curve2d[] = [] + + /** 排版轮廓+预铣+同刀辅助+刀半径+缝隙/2 再与造型外扩并集 border_moving */ + borderMoving: CAD.Curve2d[] = [] + /** 优化轮廓,用于王者优化 border_wxyh */ + borderKingOptimize: CAD.Curve2d[] = [] + + /** 板内轮廓挖穿造型(borders_inner) */ + borderModelThrough: CAD.Curve2d[][] = [] + /** 板内轮廓挖穿r(borders_inner_r) */ + borderModelThroughR: number[] = [] + /** 板内挖穿造型走刀路径,内部走刀轮廓(cutLines_inner) */ + cutLinesModelThrough: CAD.Curve2d[][] = [] + /** 板内排版轮廓,用于手动排版定位(borders_inner_place) */ + borderInnerPlace: CAD.Curve2d[][] = [] + /** 板内空间:挖穿造型(spaces_inner) */ + blockInnerSpace: PlaceSpace[] = [] + /** 板外空间:缺角(spaces_outer) */ + blockOuterSpace: PlaceSpace[] = [] + + /** 空间,包括造型矩形与缺角空间 */ + spaces: PlaceSpace[] = [] + + /** 2v刀路,板外轮廓 */ + polylines2vModel: Polyline[] = [] + + /** 造型,板外轮廓 */ + polylinesOutModel: Polyline[] = [] + + /** 翻转后的这些轮廓集合 */ + placeContours: PlaceBorderContour[] + + constructor(placeStyle: PlaceStyle, borderFinal: CAD.Curve2d[], borderOrg: CAD.Curve2d[]) { + this.placeStyle = placeStyle + this.borderFinal = borderFinal + this.borderOrg = borderOrg + this.placeContours = [] + } + + /** 开料刀 半径变化了 */ + cutKnifeChanged() { + this.cutLines = [] + this.cutLinesSameKnifeHelpCut = [] + this.borderMoving = [] + // this.borderKingOptimize = null; + + this.borderModelThrough = [] + this.borderInnerPlace = [] + this.blockInnerSpace = [] + this.blockOuterSpace = [] + if (this.placeContours) + this.placeContours.forEach(t => t.cutKnifeChanged()) + } + + /** 预铣值变化, 将有关轮廓全部清理 */ + preValueChanged() { + // console.log('预铣值变化, 将有关轮廓全部清理') + this.border = [] + this.borderSameKnifeHelpCut = [] + this.cutLines = [] + this.cutLinesSameKnifeHelpCut = [] + this.borderMoving = [] + // this.borderKingOptimize = null; + this.blockOuterSpace = [] + if (this.placeContours) + this.placeContours.forEach(t => t.preValueChanged()) + } + + /** 同刀辅助 变化了 */ + sameKnifeGapChanged() { + this.borderSameKnifeHelpCut = [] + this.cutLinesSameKnifeHelpCut = [] + this.borderMoving = [] + // this.borderKingOptimize = null; + this.blockOuterSpace = [] + if (this.placeContours) + this.placeContours.forEach(t => t.sameKnifeGapChanged()) + } + + /** 克隆 */ + clone(): PlaceBorderContour { + let newObj = new PlaceBorderContour(this.placeStyle, this.borderFinal, this.borderOrg) + newObj.borderPreMilling = this.borderPreMilling + newObj.polylineOrg = this.polylineOrg + newObj.border = this.border + newObj.borderSameKnifeHelpCut = this.borderSameKnifeHelpCut + newObj.cutLines = this.cutLines + newObj.cutLinesSameKnifeHelpCut = this.cutLinesSameKnifeHelpCut + newObj.borderMoving = this.borderMoving + // newObj.borderKingOptimize = this.borderKingOptimize; + newObj.borderModelThrough = this.borderModelThrough + newObj.borderModelThroughR = this.borderModelThroughR + newObj.cutLinesModelThrough = this.cutLinesModelThrough + newObj.borderInnerPlace = this.borderInnerPlace + newObj.blockInnerSpace = this.blockInnerSpace + newObj.blockOuterSpace = this.blockOuterSpace + newObj.spaces = this.spaces + newObj.polylines2vModel = this.polylines2vModel + newObj.polylinesOutModel = this.polylinesOutModel + newObj.placeContours = [] + for (let pc of this.placeContours) { + if (pc) { + let npc = pc.clone() + newObj.placeContours.push(npc) + } + } + console.log('克隆', newObj) + return newObj + } +} + + +/** 优化空间 */ +export class PlaceSpace { + /** 大板ID */ + boardId: number + /** 空间ID */ + spaceId: number + /** 坐标x */ + x: number + /** 坐标y */ + y: number + /** 宽 */ + width: number + /** 长 */ + length: number + /** 是否是小板内部造型空间 IsInner */ + isBlockInnerSpace = false + /** 顶点Y */ + topY(): number { return this.y + this.length } + /** 右边X */ + topX(): number { return this.x + this.width }; + + constructor(x: number, y: number, width: number, length: number) { + this.boardId = 0 + this.spaceId = 0 + this.x = x + this.y = y + this.width = width + this.length = length + } + + /** 克隆 */ + clone(): PlaceSpace { + let obj = new PlaceSpace(this.x, this.y, this.width, this.length) + return obj + } + + static create(x1, y1, x2, y2): PlaceSpace { + return new PlaceSpace(x1, y1, x2 - x1, y2 - y1) + } +} + +/** 开料板材 */ +export class PlaceMaterial { + /** 订单号(*) */ + orderId = '' + /** 板材ID(*) */ + goodsId = '' + /** 板材名称(*) */ + goodsName = '' + /** 规格(*) */ + spec = '' + /** 材质(*) */ + material = '' + /** 颜色(*) */ + color = '' + /** 品牌(*) */ + brand = '' + /** 有纹路 */ + hasTexture = false + /** 最后保存时间 */ + updateTime = '' + /** 纹路标识 */ + get textureFlag(): string { return this.hasTexture ? '有' : '无' } + /** 板材全名 */ + get fullName(): string { return `${this.hasTexture ? '' : '【无纹】'}${this.thickness} ${this.goodsName} ${this.material} ${this.color}` } + /** 板材原宽 */ + orgWidth = 1220 + /** 板材原长 */ + orgLength = 2440 + /** 板宽,用于生产 */ + width = 1220 + /** 板长 */ + length = 2440 + /** 板厚 */ + thickness = 18 + /** 全部尺寸 */ + get fullSize(): string { return `${this.length}*${this.width}*${this.thickness}` } + + /** 修边值(*) Border */ + cutBorder = 3 + /** 开料刀直径(*) CutDia */ + diameter = 6 + /** 开料刀路间隙(*) CutGap */ + cutKnifeGap = 1 + /** 预铣值 PreCutValue */ + preMillingSize = 0 + /** 是否辅助开料 HelpCut */ + isHelpCut = false + /** 辅助开料标识 */ + get strHelpCut() { return this.isHelpCut ? '✔' : '✘' } + /** 同刀辅助开料偏移 SameKnifeHelpCutGap */ + helpCutGap = 0 + + /** 开料刀ID */ + cutKnifeId = -1 + /** 开料刀名称 */ + cutKnifeName = '' + /** 辅助刀ID */ + helpKnifeId = -1 + /** 辅助刀名称 */ + helpKnifeName = '' + get strHelpKnifeName() { return this.isHelpCut ? this.helpKnifeName : '' } + + /** 是否已优化(*) isSorted */ + isOptimized = false + get optimizedFlag() { return this.isOptimized ? '是' : '-' } + /** 大板数(*) */ + boardCount = 0 + /** 余料板数 */ + remainBoardCount = 0 + /** 最小板号(*) */ + minBoardId = 0 + /** 最大板号(*) */ + maxBoardId = 0 + /** 当前板号 */ + currentBoardId = 0 + + /** 总平均利用率(*) AvgLyr_All */ + avgUsageRateAll = 0 + /** 前N块板(不包含最后一块板)的平均利用率(*) AvgLyr_NoLastOne */ + avgUsageRateExcludeLastBoard = 0 + /** 最后一块板的利用率(*) Lyr_LastOne */ + usageRateLastBoard = 0 + /** 分配到该板材的 小板数量 */ + allBlockCount = 0 + /**分配到该板材的优化后小板数量 -- 选择优化的板件数目 */ + selectedBlockCount = 0 + /** 分配到该板材的优化后 未被优化的 小板数量 */ + noPlaceBlockCount = 0 + /** 优化时大板数(*) */ + optimizingBoardCount = 0 + /** 优化时余料板数 */ + optimizingRemainBoardCount = 0 + /** 优化时不含余料的大板数 */ + get OptimizingNoRemainBoardCount() { return this.optimizingBoardCount - this.optimizingRemainBoardCount } + /** 优化时总平均利用率(*) */ + optimizingAvgUsageRateAll = 0 + /** 优化时前N块板(不包含最后一块板)的平均利用率(*) */ + optimizingAvgUsageRateExcludeLastBoard = 0 + /** 优化时最后一块板的利用率(*) */ + optimizingUsageRateLastBoard = 0 + + /** 优化时间 */ + + placeTime + /** 使用大板情况(*) */ + usedBoardInfo = '' + /** 小板排版情况(*) */ + blockPlaceInfo = '' + /** 余料板情况 */ + remainBoardInfo = '' + + /** 翻面开料的大板数 BoardCount_do2Face */ + boardCountFlipFace = 0 + /** 小板数 */ + blockCount = 0 + /** 小板总面积 */ + blockArea = 0 + + /** 封边长度 [{t:1,l:233}, {t:2,l:100}] */ + edgeSealLengthList = [] + edgeSealLengthStr() { + let s = '' + for (let rt of this.edgeSealLengthList) { + s += `[${rt.t}]${rt.l}米;` + } + return s + } + + /** 余料前利用(异形优化) */ + // ScrapBoardList: ScrapBoard[] = []; + remainBoardList: RemainBoard[] = [] + /** 后余料板 */ + remainList: any[] = [] + + /** 大板(优化)列表 */ + boardList: PlaceBoard[] = [] + /** 小板(优化)列表 */ + blockList: PlaceBlock[] = [] + /** 是否有锁定的大板 */ + hasBoardLocked() { return this.boardList.some(t => t.isLocked) } + + /** 最优优化结果(临时) */ + tempBestPlaceResult: MaterialPlaceResult | null = null + tempBestPlaceResultLast: MaterialPlaceResult | null = null + tempBestPlaceResultLastTime = 0 + /** 需要最后一片重新计算 */ + rePlaceLastBoardRequired = false + tempPlaceUnregular: boolean = false + /** 最优优化结果(临时)标识 */ + tempPlaceResultFlag() { return (this.tempBestPlaceResult) ? '有' : '-' } + /** 最优优化结果是否只使用没锁定的 */ + tempPlaceResultOnyUnlockedBoard = false + /** 最后优化错误信息 */ + tempPlaceResultError: string = '' + /** 移动小板临时仓 */ + moveBlockList: PlaceBlock[] = [] + + /** 新优化前原配置,用于取消优化后还原到原先的配置 */ + savedSetting + + constructor(data: any = null) { + if (data != null) { + this.boardList = data?.boardList || [] + this.boardCount = data?.boardCount || 0 + this.orderId = data.orderId + this.goodsId = data.goodsId + this.goodsName = data.goodsName + this.spec = data.spec + this.material = data.material + this.color = data.color + this.brand = data.brand + this.hasTexture = true + if (!(data.hasTexture == null || data.hasTexture == undefined)) + this.hasTexture = data.hasTexture + this.orgWidth = StringFormat.toFixed(Number(data.orgWidth || data.width)) + this.orgLength = StringFormat.toFixed(Number(data.orgLength || data.length)) + this.width = StringFormat.toFixed(Number(data.width)) + this.length = StringFormat.toFixed(Number(data.length)) + this.thickness = StringFormat.toFixed(Number(data.thickness)) + this.cutBorder = StringFormat.toFixed(Number(data.cutBorder)) + this.diameter = StringFormat.toFixed(Number(data.diameter)) + this.cutKnifeGap = StringFormat.toFixed(Number(data.cutKnifeGap)) + this.preMillingSize = data.preMillingSize || 0 + this.isHelpCut = data.isHelpCut || false + this.helpCutGap = data.helpCutGap || 0 + this.cutKnifeId = data.cutKnifeId || -1 + this.helpKnifeId = data.helpKnifeId || -1 + this.isOptimized = Boolean(data.isOptimized) + this.boardCount = StringFormat.toFixed(Number(data.boardCount)) + this.remainBoardCount = StringFormat.toFixed(data.remainBoardCount ? Number(data.remainBoardCount) : 0) + this.minBoardId = Number(data.minBoardId) + this.maxBoardId = Number(data.maxBoardId) + this.avgUsageRateAll = StringFormat.toFixed(Number(data.avgUsageRateAll)) + this.avgUsageRateExcludeLastBoard = StringFormat.toFixed(Number(data.avgUsageRateExcludeLastBoard)) + this.usageRateLastBoard = StringFormat.toFixed(Number(data.usageRateLastBoard)) + this.usedBoardInfo = data.usedBoardInfo + this.blockPlaceInfo = data.blockPlaceInfo + this.remainBoardInfo = data.remainBoardInfo ? data.remainBoardInfo : '' + // this.remainBoardList = data.remainBoardList ? data.remainBoardList : [] + + if (Array.isArray(data.remainBoardList)) { + this.remainBoardList = data.remainBoardList + } else { + this.remainBoardList = data.remainBoardInfo ? JSON.parse(this.remainBoardInfo) : '' + } + + this.updateTime = data['this.updateTime'] || '' + } + } + + /** 保存 原尺寸,开料刀,预铣,辅助开料 */ + saveSetting() { + let setting: any = {} + // 尺寸, + setting.orgWidth = this.orgWidth + setting.orgLength = this.orgLength + setting.width = this.width + setting.length = this.length + setting.thickness = this.thickness + + setting.preMillingSize = this.preMillingSize + setting.isHelpCut = this.isHelpCut + setting.helpCutGap = this.helpCutGap + + setting.diameter = this.diameter + setting.cutKnifeId = this.cutKnifeId + setting.cutKnifeName = this.cutKnifeName + setting.helpKnifeId = this.helpKnifeId + setting.helpKnifeName = this.helpKnifeName + this.savedSetting = setting + + // 小板备份资料 + let createTime = Date.now() + for (let block of this.blockList) { + if (block.blockDetail) { + let savedObj = block.blockDetail.savedSetting + if (savedObj && savedObj.createTime == createTime) + break // 已备份 + + + block.blockDetail.saveSetting() + block.blockDetail.savedSetting.createTime = createTime + } + + } + } + + loadSetting() { + if (this.savedSetting == null) + return + // 尺寸, + this.orgWidth = this.savedSetting.orgWidth + this.orgLength = this.savedSetting.orgLength + this.width = this.savedSetting.width + this.length = this.savedSetting.length + this.thickness = this.savedSetting.thickness + + this.preMillingSize = this.savedSetting.preMillingSize + this.isHelpCut = this.savedSetting.isHelpCut + this.helpCutGap = this.savedSetting.helpCutGap + this.diameter = this.savedSetting.diameter + this.cutKnifeId = this.savedSetting.cutKnifeId + this.cutKnifeName = this.savedSetting.cutKnifeName + this.helpKnifeId = this.savedSetting.helpKnifeId + this.helpKnifeName = this.savedSetting.helpKnifeName + + for (let block of this.blockList) { + if (block.blockDetail) { + block.blockDetail.loadSetting() + block.blockDetail.savedSetting = null + } + + } + } +} + +/** 排单大板 */ +export class PlaceBoard { + /** 数据源ID */ + sourceId = 0 + + /** 大板编码(余料板号) */ + boardNo = '' + /** 大板ID */ + boardId = 0 + /** 大板ID(按全排单) */ + fullBoardId = 0 + /** 大板宽 */ + width = 0 + /** 大板长/高 */ + length = 0 + /** 面积 */ + area = 0 + + /** 小板数 */ + blockCount = 0 + /** 利用面积 BlockSize */ + blockArea = 0 + /** 利用率 */ + usageRate = 0 + /** 余料板异形 IsOddmengt */ + isAdnormal() { return this.points && this.points.length > 0 } + /** 余料板异形点{x,y,bul} */ + points: any[] = [] + + /** 是否加工2面, 需反面 IsDo2Face */ + isTwoFaceProcessing() { + let res = this.blockList.some(e => e.isDoubleFaceProcess()) + return res + } + /** 是否锁定 */ + isLocked = false + + /** 是否开料 */ + isCuted = false + /** 开料状态 + * + * 0 未开料 1 开料中 2 已开料 + */ + cutedType = 0 + /** 小板列表 */ + blockList: PlaceBlock[] = [] + /** 余料板列表 ScrapBlockList */ + remainBlockList: RemainBlock[] = [] + /** 需要生成余料空间 needToScrapSpace */ + isCreateRemainSpace = false + /** 异形大板的轮廓线 */ + polyline?: Polyline + /** 无法加工的左边出现造型 */ + hasModelOnLeft = false + /** 无法加工的右边出现造型 */ + hasModelOnRight = false + + /** 构造函数 */ + constructor(boardId: number, width: number, length: number, sourceId = 0, boardNo = '') { + this.sourceId = sourceId + this.boardId = boardId + this.width = width + this.length = length + this.boardNo = boardNo + this.area = width * length * 0.000001 + this.blockList = [] + } + + reset() { + this.blockCount = this.blockList.length + this.blockArea = ArrayExt.sum(this.blockList, t => t.area) + this.usageRate = (100 * this.blockArea) / this.area + // this.isTwoFaceProcessing = this.blockList.some(t => t.isCutOtherFace) + } + + addBlock(block: PlaceBlock) { + if (this.blockList.includes(block)) + return + this.blockList.push(block) + this.reset() + } + + removeBlock(block: PlaceBlock) { + let index = this.blockList.findIndex(t => t == block) + if (index == -1) + return + this.blockList.splice(index, 1) + this.reset() + } + + getSize(): string { + return `${this.width}*${this.length}` + } +} + +/** 实际开料的板材 || 余料板材 */ +export class RemainBoard { + /** 余料板ID */ + id: number | string = '' + /** 源排单ID */ + orgPlanId: number | string = '' + /** 排单ID */ + planId: number | string = '' + /** 状态(未使用 = 0, 已使用 = 1) */ + status: number = 0 + /** 商品ID */ + goodsId: number | string = '' + /** 商品名 */ + goodsName: string = '' + /** 材质 */ + material: string = '' + // /** 材料名 */ + // materialName: string = ''; + /** 颜色 */ + color: string = '' + /** 宽 */ + width: number = 0 + /** 长 */ + length: number = 0 + /** 品牌 */ + brand: string = '' + // /** 保存仓库 */ + // storeHouse: string = ''; + /** 纹路 */ + texture?: string + /** 排单号 */ + planCode: string = '' + /** 数量 */ + count: number = 0 + /** 排版宽 */ + placeWidth() { return this.placeStyle % 2 == 0 ? this.width : this.length } + /** 排版长 */ + placeLength() { return this.placeStyle % 2 == 0 ? this.length : this.width } + /** 厚度 */ + thickness: number | undefined + /** 轮廓 */ + outLineJson: string = '{}' + /** 备注 */ + remark: string = '' + /** */ + basePolyline: Polyline | undefined + /** 排版样式 */ + placeStyle: PlaceStyle = PlaceStyle.FRONT + /** 排版多段线 */ + placePolyline: Polyline | undefined + /** 是否已使用 */ + isUsed: boolean = false + /** 是否已入库 */ + isStored = false + + /** 是否开料 */ + isCuted = false + + /**是否开料 */ + cutedType = 0 + /** 实际优化板材的优化数据 */ + // placeBoardList: BoardPlaceResult[] = [] + /** 实际开料大板的数量 */ + usedCount = 0 + + /** 总利用率 */ + avgUsageRateAll = 0 + /** 前N块板利用率 */ + avgUsageRateExcludeLastBoard = 0 + /** 最后一块板利用率 */ + usageRateLastBoard = 0 + copy(): RemainBoard { + let obj = new RemainBoard() + obj.id = this.id + obj.planId = this.planId + obj.status = this.status + obj.goodsId = this.goodsId + obj.goodsName = this.goodsName + obj.material = this.material + obj.color = this.color + obj.width = this.width + obj.length = this.length + obj.thickness = this.thickness + obj.outLineJson = this.outLineJson + obj.remark = this.remark + obj.placeStyle = this.placeStyle + obj.isUsed = this.isUsed + obj.texture = this.texture + return obj + } +} + +/** 余料小板 */ +export class RemainBlock { + /** 余料板ID */ + remainId: number = 0 + /** 排版坐标x */ + placeX: number + /** 排版坐标y */ + placeY: number + /** 开料宽 */ + placeWidth: number + /** 开料长 */ + placeLength: number + /** 是否不规则 */ + isUnRegular = false + /** 是否重叠 */ + isOverlap = false + /** 是否已录入余料库 */ + isStored = false + + private pointlist: any = [] + points() { + if (this.pointlist.length == 0) { + this.pointlist.push({ x: 0, y: 0 }) + this.pointlist.push({ x: this.placeWidth, y: 0 }) + this.pointlist.push({ x: this.placeWidth, y: this.placeLength }) + this.pointlist.push({ x: 0, y: this.placeLength }) + } + return this.pointlist + } + + private pl: Polyline | null = null + get polyline() { return this.pl } + set polyline(v) { this.pl = v; this.polylineOffset = null } + /** 多段线偏移 */ + polylineOffset?: Polyline | null + + constructor(x, y, width, length) { + this.placeX = x + this.placeY = y + this.placeWidth = width + this.placeLength = length + } + + /** 修改大小 */ + reSize(width, length) { + if (this.isUnRegular) + return + this.placeWidth = width + this.placeLength = length + this.pointlist = [] + this.pl = null + this.polylineOffset = null + } + + setPoints(pts) { + this.pointlist = pts + if (this.pointlist.length == 0 || this.pointlist.length == 4) + this.isUnRegular = false + + else + this.isUnRegular = true + + this.polyline = null + this.polylineOffset = null + } + + load(data) { + this.remainId = data.remainId + this.placeX = data.placeX + this.placeY = data.placeY + this.placeWidth = data.placeWidth + this.placeLength = data.placeLength + this.isUnRegular = data.isUnRegular + this.pointlist = data.pointlist + this.isStored = data.isStored || false + } +} + +/** 板材优化结果 */ +export class MaterialPlaceResult { + /** 线程ID */ + threadId = 0 + /** 使用时间 */ + usedTime = 0 + /** 优化次数 */ + placeCount = 0 + /** 大板数 */ + boardCount = 0 + /** 总平均利用率 */ + avgUsageRateAll = 0 + /** 前N块板(不包含最后一块板)的平均利用率 */ + avgUsageRateExcludeLastBoard = 0 + /** 最后一块板的利用率 */ + usageRateLastBoard = 0 + /** 余料板数 */ + remainBoardCount = 0 + /** 大板列表 */ + boards: BoardPlaceResult[] = [] + /** 小板优化数据 */ + results: BlockPlaceResult[] = [] + /** 优化是否全部完成 */ + placeStoped = false + /** 余料板利用情况 */ + remailBoardList: any[] = [] + + constructor() { + + } + + /** 比other 更好 */ + isBetterThan(other: MaterialPlaceResult): boolean { + if (this.boardCount < other.boardCount) + return true + if (this.usageRateLastBoard < other.usageRateLastBoard) + return true + return false + } +} + + +export class BoardPlaceResult { + /** 大板ID */ + boardId = 0 + /** 宽 */ + width = 0 + /** 长 */ + length = 0 + /** 是否余料板 */ + isRemainBoard = false + /** 余料板编码 */ + remainNo = '' + /** 余料板ID */ + remainId = 0 + /** 是否废弃物 */ + isScrap = false + /** 点列表 */ + points: any[] = [] + /** 小板排版结果 */ + blocks: BlockPlaceResult[] = [] + /** 小板排版 */ + objects: any[] = [] + /** 面积 */ + area = 0 + /** 是否双面加工 */ + isTwoFaceProcess = false + + cutedType = 0 + isLock = false + /**当前大板的利用率 */ + // avgUsageRate = 0 + + constructor() { + + } + + /** 是否有异形板重叠 */ + hasOverLapBlock() { + for (let i = 0; i < this.blocks.length; i++) { + let b1 = this.blocks[i] + for (let j = i + 1; j < this.blocks.length; j++) { + let b2 = this.blocks[j] + if (this.isOverLap(b1, b2)) + return true + } + } + return false + } + + /** 两块板是否是否重叠 */ + isOverLap(b1: BlockPlaceResult, b2: BlockPlaceResult): boolean { + let l1 = { x: b1.placeX, y: b1.placeY + b1.length } + let r1 = { x: b1.placeX + b1.width, y: b1.placeY } + let l2 = { x: b2.placeX, y: b2.placeY + b2.length } + let r2 = { x: b2.placeX + b2.width, y: b2.placeY } + + if (l1.x > r2.x || l2.x > r1.x) + return false + if (l1.y < r2.y || l2.y < r1.y) + return false + return true + } +} + +/** 小板优化结果 */ +export class BlockPlaceResult { + /** 小板号 */ + blockId = 0 + + /** 小板编号 */ + blockNo = '' + /** 大板ID */ + boardId: number + /** 排版情况: 排版ID */ + placeId: number + /** 排版情况: 大板坐标X */ + placeX: number // 坐标 + /** 排版情况: 大板坐标Y */ + placeY: number + /** 宽 */ + width: number + /** 长 */ + length: number + /** 排版情况正纹 */ + placeStyle: PlaceStyle + /** 面积 */ + area: number + + constructor(blockId: number, boardId: number, placeId: number, x: number, y: number, width: number, length: number, pstyle: PlaceStyle, area: number) { + this.blockId = blockId + this.boardId = boardId + this.placeId = placeId + this.placeX = x + this.placeY = y + this.placeStyle = pstyle + this.width = width + this.length = length + this.area = area + } +} \ No newline at end of file diff --git a/samples/demoDataHandleServer.ts b/samples/demoDataHandleServer.ts new file mode 100644 index 0000000..4e9cf7f --- /dev/null +++ b/samples/demoDataHandleServer.ts @@ -0,0 +1,33 @@ +import { Processor, ProcessorCollection, ProcessorModule } from "../src/device"; + + +export class ProcessorManager implements ProcessorCollection { + private processors = new Map>(); + private currentProcessor?: Processor; + + constructor(){ + + } + /** 注册模块流程 */ + registerProcessor(name: string, processor: Processor): this { + this.processors.set(name, processor); + return this; + } + /** 使用处理器 */ + useProcessor(name: string): Processor { + const processor = this.processors.get(name); + if (!processor) { + throw new Error(`Processor ${name} not found`); + } + this.currentProcessor = processor; + return processor; + } + /** 获取处理器 */ + getProcessor(name: string): Processor | undefined { + return this.processors.get(name); + } + /** 获取正在使用的处理器 */ + getCurrentProcessor(): Processor | undefined { + return this.currentProcessor; + } +} \ No newline at end of file diff --git a/samples/demoDatahandle/demoDataHandle1.ts b/samples/demoDatahandle/demoDataHandle1.ts new file mode 100644 index 0000000..6c7a550 --- /dev/null +++ b/samples/demoDatahandle/demoDataHandle1.ts @@ -0,0 +1,75 @@ + +import { ProcessorModule, StepControllerProcessor } from "../../src/device"; +import { RectOptimizeMachineModule } from "../moduleManager/module1"; +/** + * demo 开料机处理器 + * + * +*/ +export class demoHandleGroupCutting { + processorName = "cutting" + processor: StepControllerProcessor + constructor() { + + const callbackStyleModule: ProcessorModule = { + moduleName: "callbackStyle", + process(input, next, context) { + + console.log("做优化"); + const _input = input + const _next = next + const _context = context + // 可以在这里调用异步操作 + + Reflect.set(context, 'CallBack', callBack1) + // 决定是否调用 next + + function callBack1(v) { + console.log('接收到其它模块回传的数据', v); + } + // 调用 next 继续流程 + return next(input); + } + }; + const demoModule: ProcessorModule = { + moduleName: "demoModule", + + process(input, next, context) { + // 写入上下文 + context.processedAt = new Date().toLocaleString(); + context.originalLength = input.length; + // 设置下一步需要的上下文 + context.previousStep = "demoModule"; + if (context.CallBack) { + context.CallBack("demoModule end and callback") + } + return next(input); + } + }; + + this.processor = new StepControllerProcessor(); + this.processor.use([ + { + moduleName: "traditional", + handle(input, next) { + // 第一个流程 + console.log(`第一个模块功能:有${input?.blockList.length}片小板,可以做些计算`) + return next ? next(input) : input; + } + }, + callbackStyleModule, + demoModule, + RectOptimizeMachineModule, + { + moduleName: "final", + process(input, next) { + // 不调用 next,终止流程 + console.log('结束了') + return next(input); + } + } + ]) + + } + +} \ No newline at end of file diff --git a/samples/demoDatahandle/demoDataHandle2.ts b/samples/demoDatahandle/demoDataHandle2.ts new file mode 100644 index 0000000..586a535 --- /dev/null +++ b/samples/demoDatahandle/demoDataHandle2.ts @@ -0,0 +1,18 @@ +import { DeviceBase } from "../../src/device"; +import { ConfigBase } from "../../src/models/config"; +import { BusinessRectOptimizeMachine } from "../businessCapability/businessRectOptimizeMachine"; + +/** + * 某个处理器 一个 功能 和 业务功能的集合 + * 可以包含多个业务功能和 基础功能 + * + * +*/ +export class demoHandleGroup extends DeviceBase { + + constructor(){ + super() + } + + +} \ No newline at end of file diff --git a/samples/demoKnives.ts b/samples/demoKnives.ts index 374f17d..f866673 100644 --- a/samples/demoKnives.ts +++ b/samples/demoKnives.ts @@ -1,7 +1,7 @@ -import { _knifeType } from "./confClass" +import { _knifeType, Knife } from "./confClass" /** demo 刀具数据 */ -export const knifeData :_knifeType= { +export const knifeData :Knife= { "isEnabled": true, "axleId": 2, "knifeId": 2, diff --git a/samples/demoParser.ts b/samples/demoParser.ts index 2ebe109..10d186f 100644 --- a/samples/demoParser.ts +++ b/samples/demoParser.ts @@ -18,6 +18,8 @@ export class DemoParser extends ParserBase { // // } // } + + const gcodeActions = new GCodeAction(); this.codeManager['FSTART'] = { name: 'FileStart', diff --git a/samples/handleAbility/RectOptimizeWorker/RectOptimizeMachine.ts b/samples/handleAbility/RectOptimizeWorker/RectOptimizeMachine.ts new file mode 100644 index 0000000..b3e83d6 --- /dev/null +++ b/samples/handleAbility/RectOptimizeWorker/RectOptimizeMachine.ts @@ -0,0 +1,1746 @@ +import type { Big_bang, Con, Inv, xbang } from './bang' +import { LineType } from './bang' + +export class RectOptimizeMachine { + private _Stop = false + + public CallBack: (best: Inv, yl: Big_bang[], fit: number, info: any) => void | Promise + + Stop(d?:any) { + console.log('优化 stop=》RectOptimizeMachine',d) + this._Stop = true + } + + /** + * @param xbangs 小板 + * @param bigBang 大板(N个元素,前N-1个元素表示余料板且余料板须为矩形,第N个元素表示大板) + * @param bigBangSL 余料板数量(bigBang中前N-1个元素对应的数量,如果bigBang中只有一个元素即只有大板没有余料板,则为空数组) + * @param xyhcs 新优化次数 + * @param isdtwosided 双面加工的小板是否优先排入 + * @param gap 排版缝隙 = 开料刀直径 + 缝隙 + * @param hssf 规则排版 + * @param YuLiaoBoardDo2FaceBlock 余料板是否排入双面加工的小板 + */ + async Start(xbangs: xbang[], bigBang: Big_bang[], bigBangSL: number[], xyhcs: number, isdtwosided: boolean, gap: number, hssf: boolean, YuLiaoBoardDo2FaceBlock: boolean) { + this._Stop = false + + // let bestFit = Infinity; //最佳的利用率 35*10 + 最后一张板 + let bestFit = Number.POSITIVE_INFINITY // 最佳的利用率 35*10 + 最后一张板 + let bestInv: Inv + + let i = 0 + let inv; let re_ylb; let fit: any = null + + while (!this._Stop) { + + const qfsh = hssf ? false : i % 2 === 0 // 电子锯算法, 永远不合并空间 + + let tempArr = SnameYH(xbangs.slice(), bigBang, bigBangSL, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) + + inv = tempArr[0] + re_ylb = tempArr[1] + if (xbangs.length > 1000) { + // debugger + } + fit = GetInvFit(inv) + let info = { + times: i, + type: 'loop' + } + if (fit < bestFit) { + bestFit = fit + bestInv = inv + this.CallBack(inv, re_ylb, fit, info) + } + /** 优化次数限制 逻辑 */ + // if (xyhcs == i) { + // await this.Stop(info); + // info.type = 'stop' + // this.CallBack(inv, re_ylb, fit, info) + // } + await Sleep(Math.max(5, 20 - Math.floor(xbangs.length / 10000))) + i++ + } + } +} + +// 优化所有余料 +function YLYH_all(xbangs: xbang[], yuliao_bang: Big_bang[], ylzs: number[], xyhcs: number, qfsh: boolean, isdtwosided: boolean, gap: number, YuLiaoBoardDo2FaceBlock: boolean): [Inv, xbang[], Big_bang[]] // 余料优化 +{ + let get_regelt: Inv = [] + let temp_yan_bang: Big_bang[] = [] + let re_Bigbang: Big_bang[] = [] + temp_yan_bang = [] + // console.log('余料总数:', ylzs) + for (let i = 0; i < ylzs.length; i++) { + if (xbangs.length == 0) { + break + } + else { + temp_yan_bang = [] + for (let sl = 0; sl < ylzs[i]; sl++) { + temp_yan_bang.push(yuliao_bang[i]) + } + let temp:any = [] + temp = ylyh(xbangs, temp_yan_bang, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) + for (let yhsl = 0; yhsl < temp[0].length; yhsl++) { + get_regelt.push(temp[0][yhsl]) + } + for (let ylsl = 0; ylsl < temp[2].length; ylsl++) { + re_Bigbang.push(temp[2][ylsl]) + } + xbangs = temp[1].slice() + // re_Bigbang.push(temp[2].slice()); + } + } + return [get_regelt, xbangs, re_Bigbang] +} + +// 优化余料中的一个尺寸的小板 +function ylyh(xbangs: xbang[], yuliao_bang: Big_bang[], xyhcs: number, qfsh: boolean, isdtwosided: boolean, gap: number, YuLiaoBoardDo2FaceBlock: boolean): [Inv, xbang[], Big_bang[]] // 余料优化 +{ + let finbang: xbang[] + let yh_result: Inv = [] + let l: number + let w: number + let ylzs: number// 余料张数 + let temp_yan_bang: Big_bang[] = [] + let re_yan_bang: Big_bang[] = [] + let temp_max_YH: Inv = [] + temp_yan_bang = [] + temp_yan_bang.push(yuliao_bang[0]) + l = yuliao_bang[0].l + w = yuliao_bang[0].w + + if (YuLiaoBoardDo2FaceBlock) // 余料板允许加入双面小板 + { + finbang = find_bang_k_g(l, w, xbangs, false).slice() + } + else { + finbang = find_bang_k_g(l, w, xbangs, true).slice() + } + + if (finbang.length > 0) { + if (YuLiaoBoardDo2FaceBlock) // 余料板允许加入双面小板 + { + temp_max_YH = YHJS(finbang, temp_yan_bang, xyhcs, qfsh, isdtwosided, gap) // 余料板 不优先 双面加工板 + } + else { + temp_max_YH = YHJS(finbang, temp_yan_bang, xyhcs, qfsh, false, gap) + } + + if (yuliao_bang.length > temp_max_YH.length) { + ylzs = temp_max_YH.length + } + else { + ylzs = yuliao_bang.length + } + for (let i = 0; i < ylzs; i++) { + yh_result.push(temp_max_YH[i]) + re_yan_bang.push(yuliao_bang[0]) + for (let n = 0; n < temp_max_YH[i].length; n++) { + for (let bsl = xbangs.length - 1; bsl >= 0; bsl--) + if (temp_max_YH[i][n].bangid == xbangs[bsl].id) { + xbangs.splice(bsl, 1) + } + } + } + } + return [yh_result, xbangs, re_yan_bang] +} +// 相同板材优化 +function SnameYH(xbangs: xbang[], B_bang: Big_bang[], ylsl: number[], xyhcs: number, qfsh: boolean, isdtwosided: boolean, gap: number, YuLiaoBoardDo2FaceBlock: boolean): [Inv, Big_bang[]] { + let same_yh_bang: Inv = [] + let temp_max_YH: Inv = [] + let ylbang_max_yh: Big_bang[] = [] + let temp_same_yh: [Inv, xbang[]] + let isend: boolean = false + let Bigbang: Big_bang[] = [] + Bigbang.push(B_bang[B_bang.length - 1]) + + let ylbang: Big_bang[] = B_bang.slice() + ylbang.pop() + + let tempresult = [] + + tempresult = YLYH_all(xbangs, ylbang, ylsl, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) // 余料优化 + + for (let i = 0; i < tempresult[0].length; i++) { + same_yh_bang.push(tempresult[0][i]) + } + xbangs = tempresult[1].slice() + ylbang_max_yh = tempresult[2].slice() + + while (isend === false) { + if (xbangs.length == 0) { break } + temp_max_YH = YHJS(xbangs, Bigbang, xyhcs, qfsh, isdtwosided, gap) + temp_same_yh = Get_bs_bang(temp_max_YH, xbangs, isdtwosided) + for (let i = 0; i < temp_same_yh[0].length; i++) { + same_yh_bang.push(temp_same_yh[0][i]) + xbangs = temp_same_yh[1].slice() + } + } + + return [same_yh_bang, ylbang_max_yh] +} + +// 优化计算. +function YHJS(xbangs: xbang[], B_bang: Big_bang[], cs: number, qfsh: boolean, isdtwosided: boolean, gap: number): Inv { + let xbangs_bak = xbangs.slice() + let bestFit = Number.POSITIVE_INFINITY + // let bestFit = Infinity; + let bestInv: Inv + for (let i = 0; i < cs; i++) { + xbangs = xbangs_bak.slice() + + let result_yh: Inv + if (qfsh) + result_yh = CBJS(xbangs, B_bang, gap, isdtwosided) + else + result_yh = CBJS1(xbangs, B_bang, gap, isdtwosided) + + let fit = GetInvFit(result_yh) + if (fit < bestFit) { + bestFit = fit + bestInv = result_yh + } + } + return bestInv +} + +// 得到利用率最高板材,及返回倍数板及剩下的小板 +function Get_bs_bang(inv: Inv, listbang: xbang[], isdtwosided: boolean): [Inv, xbang[]] { + let [bestCon] = arrayMax(inv, GetConFit)// 最优大板 + + let temp_yh_bang: Con = [] + let temp_list_yh_bang: Inv = [] + let isfindend: boolean = false + + while (isfindend == false) { + if (listbang.length == 0) { break } + + let unPlacelist = listbang.slice() + for (let br of bestCon) { + let temp_result = find_same_bang(br.pbg, br.pbk, unPlacelist, isdtwosided) + if (temp_result.findid > -1) // 找到合适的板 + { + temp_yh_bang.push( + { + bangid: temp_result.id, + line: temp_result.line, + x: br.x, + y: br.y, + pbg: temp_result.pbg, + pbk: temp_result.pbk, + }, + ) + unPlacelist.splice(temp_result.findid, 1)// 这里不会错误的原因是 必然会有一次成功 并且下面会备份这个数组 + } + else // 没找到 合适的板 退出 + { + isfindend = true + break + } + } + if (isfindend == false) // 找到合适的 + { + temp_list_yh_bang.push(temp_yh_bang) + temp_yh_bang = [] + listbang = unPlacelist.slice()// 备份数组 + } + } + return [temp_list_yh_bang, listbang] +} + +function GetInvFit(inv: Inv) { + let fit = (inv.length - 1) * 10 + fit += GetConFit(arrayLast(inv)) + return fit +} + +function GetConFit(con: Con) { + let fit = 0 + for (let p of con) + fit += p.pbg * p.pbk * 1e-6 + return fit +} + +// 初步优化计算 横竖算法,无空间合并 +function CBJS1(Listbang: xbang[], yanbang: Big_bang[], dt: number, isdtwosided: boolean): Inv // [(YHB_LST)[], (Big_bang[])[], (Big_bang[])[]] +{ + let yanbang_bk: Big_bang[] = yanbang.slice() + // let zfkj: Big_bang[] = []; + // let list_zfkj: (Big_bang[])[] = []; + let list_yh_bng: Inv = [] + // let list_yang_bang: (Big_bang[])[] = []; + let result_yh: Con = [] + + while (Listbang.length > 0) { + // zfkj = []; + yanbang = yanbang_bk.slice() + result_yh = [] + while (yanbang.length > 0) { + let lx: number = Math.floor(Math.random() * 3) // lx:0 面积最大 1 最高 2 最宽 + let fs: boolean // fs:留板方式,0:左右 1:上下 + if (Math.floor(Math.random() * 2) == 0) { fs = false } else { fs = true } + let get_result = [] + get_result = jsyb(yanbang[0], lx, fs, dt, Listbang, isdtwosided) // lx:0面积最大 1最高 2最宽 fs:取板方式,false:左右(取同宽) true:上下(取同高) dt:刀头间隙 + yanbang.shift() + if (get_result[0] > 0) { + for (let i = 0; i < get_result[0]; i++) + yanbang.push(get_result[2][i]) + } + if (get_result[1] > 0) { + for (let i = 0; i < get_result[1]; i++) + result_yh.push(get_result[3][i]) + } + Listbang = get_result[4].slice() + if (Listbang.length == 0) { break } + } + // list_zfkj.push(zfkj); + list_yh_bng.push(result_yh) + // list_yang_bang.push(yanbang); + // list_zfkj.push(zfkj); + // Draw_Yan_bang(yanbang, 3, 0); + // Draw_Yan_bang(zfkj, 5, 0); + } + + // return [list_yh_bng, list_zfkj, list_yang_bang]; + return list_yh_bng +} + +// 初步优化计算 交叉算法,有空间合并 +function CBJS(Listbang: xbang[], yanbang: Big_bang[], dt: number, isdtwosided: boolean): Inv // [(YHB_LST)[], (Big_bang[])[], (Big_bang[])[]] +{ + let yanbang_bk: Big_bang[] = yanbang.slice() + // let zfkj: Big_bang[] = []; + // let list_zfkj: (Big_bang[])[] = []; + let list_yh_bng: Inv = [] + // let list_yang_bang: (Big_bang[])[] = []; + let result_yh: Con = [] + + // let temp: number = 0; + while (Listbang.length > 0)// while (temp < 2)// + { + // temp++; + // zfkj = []; + yanbang = yanbang_bk.slice() + result_yh = [] + while (yanbang.length > 0) { + let lx: number = Math.floor(Math.random() * 3) // lx:0 面积最大 1 最高 2 最宽 + let fs: boolean // fs:留板方式,0:左右 1:上下 + if (Math.floor(Math.random() * 2) == 0) { fs = false } else { fs = true } + let get_result = [] + let temp_yanbang = [] + temp_yanbang = HBKJ(yanbang, Listbang, dt) + yanbang = temp_yanbang[0] + get_result = jsyb1(yanbang[temp_yanbang[1]], lx, fs, dt, Listbang, isdtwosided) // lx:0面积最大 1最高 2最宽 fs:取板方式,false:取同宽) true:取同高) dt:刀头间隙 + yanbang.splice(temp_yanbang[1], 1) + if (get_result[0] > 0) { + for (let i = 0; i < get_result[0]; i++) + yanbang.push(get_result[2][i]) + } + if (get_result[1] > 0) { + for (let i = 0; i < get_result[1]; i++) + result_yh.push(get_result[3][i]) + } + Listbang = get_result[4].slice() + if (Listbang.length == 0) { break } + } + // list_zfkj.push(zfkj); + list_yh_bng.push(result_yh) + // list_yang_bang.push(yanbang); + // list_zfkj.push(zfkj); + // Draw_Yan_bang(yanbang, 3, 0); + // Draw_Yan_bang(zfkj, 5, 0); + } + + // return [list_yh_bng, list_zfkj, list_yang_bang]; + return list_yh_bng +} + +// 空间合并(相加) +function hb(yanbang: Big_bang[], dt: number): Big_bang[] { + let i: number = -1 + yanbang.sort((a1, a2) => a1.x - a2.x) + while (true) { + i++ + + if (yanbang.length < 2 || i === yanbang.length - 1) + break + + if (yanbang[i].y === yanbang[i + 1].y + && yanbang[i].x + yanbang[i].w + dt === yanbang[i + 1].x + && yanbang[i].l === yanbang[i + 1].l) { + yanbang[i].w = yanbang[i].w + yanbang[i + 1].w + dt + yanbang.splice(i + 1, 1) + i = -1 + } + } + return yanbang +} + +// 整理空间 +function zlkj(yanbang: Big_bang[], listbang: xbang[], dt: number): [Big_bang[], boolean] // false 继续合并 ture 不在合并 +{ + let k: number + let g: number + let isjshb: boolean = true// false 继续合并 ture 不在合并 + let minY: number = 100000 + let yanindex: number + if (listbang.length == 0) + return [yanbang, true] + + for (let i = 0; i < yanbang.length; i++) { + if (yanbang[i].y < minY) { + minY = yanbang[i].y + yanindex = i + } + } + k = yanbang[yanindex].w + g = yanbang[yanindex].l + if (yanindex == 0 && yanbang.length > 1) { + if (yanbang[yanindex].x + yanbang[yanindex].w + dt == yanbang[yanindex + 1].x)// && yanbang[i].y + yanbang[i].l == yanbang[i + 1].y + yanbang[i + 1].l) + { + if (find_max_mz(g, k, listbang, false).findid == -1) { + yanbang[yanindex].y = yanbang[yanindex + 1].y + yanbang[yanindex].l = yanbang[yanindex + 1].l + isjshb = false + } + } + } + else if (yanindex == yanbang.length - 1 && yanbang.length > 1) { + if (yanbang[yanindex - 1].x + yanbang[yanindex - 1].w + dt == yanbang[yanindex].x && yanbang.length > 1)// && yanbang[i].y + yanbang[i].l == yanbang[i - 1].y + yanbang[i - 1].l && (yanbang[i - 1].x + yanbang[i - 1].w + dt == yanbang[i].x)) + { + if (find_max_mz(g, k, listbang, false).findid == -1) { + yanbang[yanindex].y = yanbang[yanindex - 1].y + yanbang[yanindex].l = yanbang[yanindex - 1].l + isjshb = false + } + } + } + else if (yanbang.length > 1) { + if (yanbang[yanindex - 1].y > yanbang[yanindex + 1].y) { + if (yanbang[yanindex].x + yanbang[yanindex].w + dt == yanbang[yanindex + 1].x)// && yanbang[i].y + yanbang[i].l == yanbang[i + 1].y + yanbang[i + 1].l) + { + if (find_max_mz(g, k, listbang, false).findid == -1) { + yanbang[yanindex].y = yanbang[yanindex + 1].y + yanbang[yanindex].l = yanbang[yanindex + 1].l + isjshb = false + } + } + } + else { + if (yanbang[yanindex - 1].x + yanbang[yanindex - 1].w + dt == yanbang[yanindex].x)// && yanbang.length > 1 && yanbang[i].y + yanbang[i].l == yanbang[i - 1].y + yanbang[i - 1].l && (yanbang[i - 1].x + yanbang[i - 1].w + dt == yanbang[i].x)) + { + if (find_max_mz(g, k, listbang, false).findid == -1) { + yanbang[yanindex].y = yanbang[yanindex - 1].y + yanbang[yanindex].l = yanbang[yanindex - 1].l + isjshb = false + } + } + } + } + // console.log("zlkj"); + // console.log(g, k); + // console.log(yanbang); + // console.log(listbang); + + // Sleep(0); + return [yanbang, isjshb] +} + +// 合并空间 +function HBKJ(yanbang: Big_bang[], listbang: xbang[], dt: number): [Big_bang[], number] { + let get_result: Big_bang[] + let minY: number = 10000 + let yanindex: number + + get_result = hb(yanbang, dt) + yanbang = get_result + + let isend: boolean = false + while (isend == false) { + if (yanbang.length == 1) { break } + for (let i = 0; i < yanbang.length; i++) { + let temp_result = [] + temp_result = zlkj(yanbang, listbang, dt) + if (temp_result[1] == false) { + yanbang = temp_result[0] + get_result = hb(yanbang, dt) + yanbang = get_result + } + else + isend = true + } + } + for (let i = 0; i < yanbang.length; i++) { + if (yanbang[i].y < minY) { + minY = yanbang[i].y + yanindex = i + } + } + return [yanbang, yanindex] +} + +// 寻找符合面积的板 +function find_bang_k_g(g: number, k: number, Listbang: xbang[], oneFaceBlock: boolean): xbang[] // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 isdtwosided: boolean true 翻板提前 +{ + let finbang: xbang[] = [] + if (oneFaceBlock == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && Listbang[i].isdtwosided == false) { + finbang.push(Listbang[i]) + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && Listbang[i].isdtwosided == false) { + finbang.push(Listbang[i]) + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && Listbang[i].isdtwosided == false) { + finbang.push(Listbang[i]) + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && Listbang[i].isdtwosided == false) { + finbang.push(Listbang[i]) + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k) { + finbang.push(Listbang[i]) + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g) { + finbang.push(Listbang[i]) + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k) { + finbang.push(Listbang[i]) + } + else if (Listbang[i].l <= k && Listbang[i].w <= g) { + finbang.push(Listbang[i]) + } + } + } + } + + return finbang +} // 寻找面积最的板 + +// 寻找面积最大的板 +function find_max_mz(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 isdtwosided: boolean true 翻板提前 +{ + let max: number = 0 + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + let temp_max: number + + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + temp_max = Listbang[i].l * Listbang[i].w / 1000000 + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max && Listbang[i].isdtwosided == true) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max && Listbang[i].isdtwosided == true) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max && Listbang[i].isdtwosided == true) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max && Listbang[i].isdtwosided == true) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + temp_max = Listbang[i].l * Listbang[i].w / 1000000 + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + temp_max = Listbang[i].l * Listbang[i].w / 1000000 + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < temp_max) { + max = temp_max + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < temp_max) { + max = temp_max + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +} // 寻找面积最的板 + +// 寻找最高的板 +function find_max_g(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 +{ + let max: number = 0 + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l && Listbang[i].isdtwosided == true) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w && Listbang[i].isdtwosided == true) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l && Listbang[i].isdtwosided == true) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w && Listbang[i].isdtwosided == true) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +} + +// 寻找同高的板 +function find_same_g(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 +{ + let max: number = g + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].l) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].w) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +}// 寻找同高的板 + +// 寻找最宽的板 +function find_max_k(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 +{ + let max: number = 0 + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w && Listbang[i].isdtwosided == true) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l && Listbang[i].isdtwosided == true) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w && Listbang[i].isdtwosided == true) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l && Listbang[i].isdtwosided == true) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max < Listbang[i].w) { + max = Listbang[i].w + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max < Listbang[i].l) { + max = Listbang[i].l + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +} // 寻找最高的板 + +// 寻同宽的板 +function find_same_k(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 lx:0 面积最大 1 最高 2 最宽 +{ + let max: number = k + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l <= g && Listbang[i].w <= k && max == Listbang[i].w) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l <= k && Listbang[i].w <= g && max == Listbang[i].l) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +} // 寻同宽的板 + +// 找到同样大小尺寸的板材 && Listbang[i].isdtwosided == true) +function find_same_bang(g: number, k: number, Listbang: xbang[], isdtwosided: boolean): findbang // g 高 k 宽 listbang:小板列表 1 同高 2 同宽 +{ + let bangindex: number = -1 + let line: LineType = LineType.Positive + let pbg: number = 0 + let pbk: number = 0 + let bangid: number = 0 + if (isdtwosided == true) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l == g && Listbang[i].w == k && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l == k && Listbang[i].w == g && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l == g && Listbang[i].w == k && Listbang[i].isdtwosided == true) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l == k && Listbang[i].w == g && Listbang[i].isdtwosided == true) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + if (bangindex == -1) { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l == g && Listbang[i].w == k) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l == k && Listbang[i].w == g) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l == g && Listbang[i].w == k) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l == k && Listbang[i].w == g) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + } + else { + for (let i = 0; i < Listbang.length; i++) { + if (Listbang[i].line == 0) { + if (Listbang[i].l == g && Listbang[i].w == k) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + } + else if (Listbang[i].line == 1) { + if (Listbang[i].l == k && Listbang[i].w == g) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + else { + if (Listbang[i].l == g && Listbang[i].w == k) { + bangindex = i + line = 0 + pbg = Listbang[i].l + pbk = Listbang[i].w + bangid = Listbang[i].id + break + } + else if (Listbang[i].l == k && Listbang[i].w == g) { + bangindex = i + line = 1 + pbg = Listbang[i].w + pbk = Listbang[i].l + bangid = Listbang[i].id + break + } + } + } + } + return { + findid: bangindex, + line, + pbg, + pbk, + id: bangid, + } +} // 寻找同高或同宽的板 + +// 计算生成的余板 返回 余板数组,连带的板 小板数组 +// lx:0面积最大 1最高 2最宽 fs:取板方式,false:左右(取同宽) true:上下(取同高) dt:刀头间隙 +function jsyb(bigbang: Big_bang, lx: number, fs: boolean, dt: number, listbang: xbang[], isdtwosided: boolean): [number, number, Big_bang[], Con, xbang[], number, Big_bang[]] { + let x: number = bigbang.x + let y: number = bigbang.y + let k: number = bigbang.w + let g: number = bigbang.l + let isend: boolean = false + let ybg: number = g + let ybk: number = k + let x1: number = x + let y1: number = y + let yb: Big_bang[] = [] // #余板 坐标跟高宽; + let yhxbang: Con = [] // #连带小板的Id,及坐标 + let zfkj: Big_bang[] = [] // 作废的空间 + let l: number + let w: number + + let get_result: findbang + let temp_get: findbang + if (lx === 0) { + // get_result = find_max_mz(g, k, listbang); + get_result = find_max_mz(g, k, listbang, isdtwosided) + } + else if (lx == 1) { + // get_result = find_max_g(g, k, listbang); + get_result = find_max_g(g, k, listbang, isdtwosided) + } + else { + // get_result = find_max_k(g, k, listbang); + get_result = find_max_k(g, k, listbang, isdtwosided) + } + + if (get_result.findid > -1) { + yhxbang.push({ + bangid: get_result.id, + line: get_result.line, + x, + y, + pbg: get_result.pbg, + pbk: get_result.pbk, + }) + listbang.splice(get_result.findid, 1) + l = get_result.pbg + w = get_result.pbk + if (fs == false) // false:左右(取同宽) true:上下(取同高) + { + ybg = g - l - dt + y1 = y + l + dt + while (isend == false) { + // temp_get = find_same_k(ybg, w, listbang); + temp_get = find_same_k(ybg, w, listbang, isdtwosided) + if (temp_get.findid > -1) { + yhxbang.push({ + bangid: temp_get.id, + line: temp_get.line, + x, + y: y1, + pbg: temp_get.pbg, + pbk: temp_get.pbk, + }) + y1 = y1 + temp_get.pbg + dt + ybg = ybg - temp_get.pbg - dt + listbang.splice(temp_get.findid, 1) + } + else { + if (ybg > 0) { + yb.push({ + l: ybg, + w, + x, + y: y1, + }) + } + if (k - w - dt > 0) { + yb.push({ + l: g, + w: k - w - dt, + x: x + w + dt, + y, + }) + } + break + } + } + } + else // true:上下(取同高) + { + ybk = k - w - dt + x1 = x + w + dt + while (isend == false) { + temp_get = find_same_g(l, ybk, listbang, isdtwosided) + if (temp_get.findid > -1) { + yhxbang.push({ + bangid: temp_get.id, + line: temp_get.line, + x: x1, + y, + pbg: temp_get.pbg, + pbk: temp_get.pbk, + }) + x1 = x1 + temp_get.pbk + dt + ybk = ybk - temp_get.pbk - dt + listbang.splice(temp_get.findid, 1) + } + else { + if (ybk > 0) { + yb.push({ + l, + w: ybk, + x: x1, + y, + }) + } + if (g - l - dt > 0) { + yb.push({ + l: g - l - dt, + w: k, + x, + y: y + l + dt, + }) + } + break + } + } + } // false:左右(取同宽) true:上下(取同高) + let ybsl: number = 0 + let yhsl: number = 0 + if (yb.length > 0) { ybsl = yb.length } + if (yhxbang.length > 0) { yhsl = yhxbang.length } + return [ybsl, yhsl, yb, yhxbang, listbang, 0, zfkj] + } + else { + zfkj.push({ + l: g, + w: k, + x, + y, + }) + let ybsl: number = 0 + let yhsl: number = 0 + if (yb.length > 0) { ybsl = yb.length } + if (yhxbang.length > 0) { yhsl = yhxbang.length } + return [ybsl, yhsl, yb, yhxbang, listbang, 1, zfkj] + } +} + +// 计算生成的余板 返回 余板数组,连带的板 小板数组 都是左右分隔空间,后面再来空间合并 +// lx:0面积最大 1最高 2最宽 fs:取板方式,false:取同宽 true:取同高 dt:刀头间隙 +function jsyb1(bigbang: Big_bang, lx: number, fs: boolean, dt: number, listbang: xbang[], isdtwosided: boolean): [number, number, Big_bang[], Con, xbang[], number, Big_bang[]] { + let x: number = bigbang.x + let y: number = bigbang.y + let k: number = bigbang.w + let g: number = bigbang.l + let isend: boolean = false + let ybg: number = g + let ybk: number = k + let x1: number = x + let y1: number = y + let yb: Big_bang[] = [] // #余板 坐标跟高宽; + let yhxbang: Con = []// #连带小板的Id,及坐标 + let zfkj: Big_bang[] = [] // 作废的空间 + let l: number + let w: number + + let get_result: findbang + let temp_get: findbang + if (lx == 0) { + // get_result = find_max_mz(g, k, listbang); + get_result = find_max_mz(g, k, listbang, isdtwosided) + } + else if (lx == 1) { + // get_result = find_max_g(g, k, listbang); + get_result = find_max_g(g, k, listbang, isdtwosided) + } + else { + // get_result = find_max_k(g, k, listbang); + get_result = find_max_k(g, k, listbang, isdtwosided) + } + + if (get_result.findid > -1) { + yhxbang.push({ + bangid: get_result.id, + line: get_result.line, + x, + y, + pbg: get_result.pbg, + pbk: get_result.pbk, + }) + listbang.splice(get_result.findid, 1) + ////////////// + l = get_result.pbg + w = get_result.pbk + if (fs == false) // false:左右(取同宽) true:上下(取同高) + { + ybg = g - l - dt + y1 = y + l + dt + while (isend == false) { + temp_get = find_same_k(ybg, w, listbang, isdtwosided) + if (temp_get.findid > -1) { + yhxbang.push({ + bangid: temp_get.id, + line: temp_get.line, + x, + y: y1, + pbg: temp_get.pbg, + pbk: temp_get.pbk, + }) + y1 = y1 + temp_get.pbg + dt + ybg = ybg - temp_get.pbg - dt + listbang.splice(temp_get.findid, 1) + } + else { + if (ybg > 0) { + yb.push({ + l: ybg, + w, + x, + y: y1, + }) + } + if (k - w - dt > 0) { + yb.push({ + l: g, + w: k - w - dt, + x: x + w + dt, + y, + }) + } + break + } + } + } + else // true:上下(取同高) + { + ybk = k - w - dt + x1 = x + w + dt + while (isend == false) { + temp_get = find_same_g(l, ybk, listbang, isdtwosided) + if (temp_get.findid > -1) { + yhxbang.push({ + bangid: temp_get.id, + line: temp_get.line, + x: x1, + y, + pbg: temp_get.pbg, + pbk: temp_get.pbk, + }) + x1 = x1 + temp_get.pbk + dt + ybk = ybk - temp_get.pbk - dt + listbang.splice(temp_get.findid, 1) + } + else { + if (ybk > 0) { + yb.push({ + l: g, + w: ybk, + x: x1, + y, + }) + } + if (g - l - dt > 0) { + yb.push({ + l: g - l - dt, + w: k - ybk - dt, + x, + y: y + l + dt, + }) + } + break + } + } + } // false:左右(取同宽) true:上下(取同高) + + //////////////////////////////////////////////////////////////////////////// + + let ybsl: number = 0 + let yhsl: number = 0 + if (yb.length > 0) { ybsl = yb.length } + if (yhxbang.length > 0) { yhsl = yhxbang.length } + return [ybsl, yhsl, yb, yhxbang, listbang, 0, zfkj] + } + else { + zfkj.push({ + l: g, + w: k, + x, + y, + }) + let ybsl: number = 0 + let yhsl: number = 0 + if (yb.length > 0) { ybsl = yb.length } + if (yhxbang.length > 0) { yhsl = yhxbang.length } + return [ybsl, yhsl, yb, yhxbang, listbang, 1, zfkj] + } +} + +interface findbang { + findid: number + line: LineType + pbg: number + pbk: number + id: number +} + +interface Lyr { + pfs: number// 平方数 + lry: number// 利用率 + ys: number// 页数 +} + +/** 获取数组最后一个元素 */ +function arrayLast(arr: { [key: number]: T; length: number }): T +{ + return arr[arr.length - 1] +} + +/** 查找数组中最大的元素 */ +function arrayMax(arr: T[], f: (item: T) => number = a => (a as unknown as number)): [T, number] +{ + let max = Number.NEGATIVE_INFINITY + let maxIndex = -1 + for (let i = 0; i < arr.length; i++) + { + let item = arr[i] + let v = f(item) + if (v > max) + { + maxIndex = i + max = v + } + } + return [arr[maxIndex], maxIndex] +} +async function Sleep(time: number) +{ + return new Promise((res) => + { + setTimeout(res, time) + }) +} diff --git a/samples/handleAbility/RectOptimizeWorker/RectOptimizeWorkerWorker.ts b/samples/handleAbility/RectOptimizeWorker/RectOptimizeWorkerWorker.ts new file mode 100644 index 0000000..984bc08 --- /dev/null +++ b/samples/handleAbility/RectOptimizeWorker/RectOptimizeWorkerWorker.ts @@ -0,0 +1,66 @@ +import type { Big_bang, xbang } from './bang' +import { RectOptimizeMachine } from './RectOptimizeMachine' +import {Worker} from "worker_threads" + +const ctx: Worker = self as any + +ctx.addListener('message', async (event) => { + let m = new RectOptimizeMachine() + m.CallBack = async (best, fit, arg, info) => { + + ctx.postMessage([best, fit, arg, info]) + } + if (event.data.type == 'start') { + /** + * blockList 小板列表 + * boardList 大板(N个元素,前N-1个元素表示余料板且余料板须为矩形,第N个元素表示大板) + * boardCount 余料板数量(bigBang中前N-1个元素对应的数量,如果bigBang中只有一个元素即只有大板没有余料板,则为空数组) + * optimizeTimes 新优化次数 + * isDoubleFaceBlockFirst 双面加工的小板是否优先排入 + * gap 排版缝隙 = 开料刀直径 + 缝隙 + * gzpb 规则排版 + * isDoubleFaceBlockInRemain 余料板是否排入双面加工的小板 + */ + let [blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain] = (event.data.data) as [xbang[], Big_bang[], number[], number, boolean, number, boolean, boolean] + + m.Start(blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain) + } else { + const info = { + type: 'isStop', + } + await m.Stop(info) + ctx.postMessage([[], null, null, info]) + ctx?.terminate() + } +}) +// ctx.addEventListener('message', async (event) => { +// let m = new RectOptimizeMachine() +// m.CallBack = async (best, fit, arg, info) => { + +// ctx.postMessage([best, fit, arg, info]) +// } +// if (event.data.type == 'start') { +// /** +// * blockList 小板列表 +// * boardList 大板(N个元素,前N-1个元素表示余料板且余料板须为矩形,第N个元素表示大板) +// * boardCount 余料板数量(bigBang中前N-1个元素对应的数量,如果bigBang中只有一个元素即只有大板没有余料板,则为空数组) +// * optimizeTimes 新优化次数 +// * isDoubleFaceBlockFirst 双面加工的小板是否优先排入 +// * gap 排版缝隙 = 开料刀直径 + 缝隙 +// * gzpb 规则排版 +// * isDoubleFaceBlockInRemain 余料板是否排入双面加工的小板 +// */ +// let [blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain] = (event.data.data) as [xbang[], Big_bang[], number[], number, boolean, number, boolean, boolean] + +// m.Start(blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain) +// } else { +// const info = { +// type: 'isStop', +// } +// await m.Stop(info) +// ctx.postMessage([[], null, null, info]) +// ctx?.terminate() +// } +// }) + +export default {} as typeof Worker & (new () => Worker) diff --git a/samples/handleAbility/RectOptimizeWorker/bang.ts b/samples/handleAbility/RectOptimizeWorker/bang.ts new file mode 100644 index 0000000..8100800 --- /dev/null +++ b/samples/handleAbility/RectOptimizeWorker/bang.ts @@ -0,0 +1,115 @@ + +export type Con = YH_bang[];//单块1220*2440的板结果 Container +export type Inv = Con[]; //个体:优化结果 包含多个大板 Individual + +/**纹路类型 Positive=0正纹 Reverse=1反纹 CanReversal=2可翻转 */ +export enum LineType +{ + /**正纹 */ + Positive = 0, + /**反纹 */ + Reverse = 1, + /**可翻转 */ + CanReversal = 2, +} + +/**优化的大板 */ +export interface YH_bang +{ + /**板ID */ + bangid: number; + /**纹路 */ + line: LineType; + x: number; + y: number; + /**排版高 */ + pbg: number; + /**排版宽 */ + pbk: number; + + ishb?: boolean;//是否参与合并的板 + hb?: number[]; //合在并的板 + isgr?: boolean; //是否关连 + gr?: number[];//关联的板的集合 + grid?: number; //跟别的板关联的ID + isbig?: boolean;//是否为合并的大板 + isqg?: boolean;//是否被切掉的板 +} + +/**版面类型: Positive=0正面 Reverse=1反面 Arbitrary=2任意面 */ +export enum ComposingType +{ + /**正面 */ + Positive = 0, + /**反面 */ + Reverse = 1, + /**任意面 */ + Arbitrary = 2 +} + +/**孔类型 None=0无 Positive=1正面 Reverse=2反面 Two=3正反 */ +export enum HoleType +{ + /**无 */ + None = 0, + /**正面 */ + Positive = 1, + /**反面 */ + Reverse = 2, + /**正反 */ + Two = 3 +} + +/** 小板 */ +export interface xbang +{ + /**长 */ + l: number; + /**宽 */ + w: number; + /**纹路 */ + line: LineType; + /**排版面 */ + face: ComposingType; + /**小板ID */ + id: number; + /**小板编号 */ + bno: string; + /**孔面: 0无孔 1正面有孔 2反面有孔 3正反面都有孔 */ + holeFaceCount: HoleType; + /**是矩形 */ + isRect?: boolean; + /**有孔 */ + hasHole?: boolean; + /**false单面 true双面 */ + isdtwosided?: boolean; +} + +/** 大板 */ +export interface Big_bang //待优化的板 +{ + l: number; //长 + w: number; //宽 + x: number; //x + y: number; //y +} + + +export enum BlockRegion + { + /** 左下 = 0 */ + LEFT_BOTTOM = 0, + /** 右下 = 1 */ + RIGHT_BOTTOM = 1, + /** 右上 = 2 */ + RIGHT_TOP = 2, + /** 左上 = 3 */ + LEFT_TOP = 3, +} + +export class WorkerItemType { + w?: Worker + goodsId?: string | number + pm?: any + status?: 'start' | 'stop' +} \ No newline at end of file diff --git a/samples/handleAbility/RectOptimizeWorker/新优化.md b/samples/handleAbility/RectOptimizeWorker/新优化.md new file mode 100644 index 0000000..dccfca2 --- /dev/null +++ b/samples/handleAbility/RectOptimizeWorker/新优化.md @@ -0,0 +1 @@ +# 新优化 \ No newline at end of file diff --git a/samples/handleAbility/ability_1.ts b/samples/handleAbility/ability_1.ts new file mode 100644 index 0000000..af2059a --- /dev/null +++ b/samples/handleAbility/ability_1.ts @@ -0,0 +1,13 @@ +import { ConfigBase } from "../../src/models/config"; + +/** 基础功能1 -- 新优化 */ +export class BlockPlace extends ConfigBase{ + // 优化过程中的回调函数 + callBack?:Function + constructor(){ + super() + this.name = 'XXX' + this.version = '20250707' + } + +} \ No newline at end of file diff --git a/samples/handleAbility/blockDetailHelperBase.ts b/samples/handleAbility/blockDetailHelperBase.ts new file mode 100644 index 0000000..f696fe4 --- /dev/null +++ b/samples/handleAbility/blockDetailHelperBase.ts @@ -0,0 +1,132 @@ +import { FaceType, PlaceBlock, PlaceBlockDetail, PlaceBorderContour, PlaceMaterial, PlaceStyle, SizeExpand } from "../confClass" +import { Arc2d, Curve2d, Line2d } from "./common/base/CAD" +import { PolylineHelper } from "./common/LayoutEngine/PolylineHelper" +import { KnifeHelper } from "./knifeHelper" + +/** 小板明细 相关的计算 孔 造型 以及轮廓 */ +export class BlockDetailHelperBase { + + /** 造型轮廓(含封边),扣除封边, 变成开料坐标 */ + resetModelContour(bd: PlaceBlockDetail) { + let ox = bd.offsetX + let oy = bd.offsetY + for (let m of bd.models) { + if (m.hasContour()) { + let ptsArr = m.originModeling.outline.map(e => e.pts) + for (let pt of ptsArr) { + // 23.8.5 发现矩形的挖穿轮廓坐标是不含封边的 + pt.x -= ox + pt.y -= oy + } + } + } + } + // 原始轮廓,成品轮廓 + createFinalBorder(bd: PlaceBlockDetail, block: PlaceBlock): Curve2d[] { + const orgPoints = bd.orgPoints + const orgBorderCurveList = new Array() + if (orgPoints && orgPoints.length > 1) // 异形 + { + + const count = orgPoints.length + for (let i = 0; i < count; i++) { + const p0 = orgPoints[i] + const p1 = i == count - 1 ? orgPoints[0] : orgPoints[i + 1] + const sideHoleCount = bd.holeListSide.filter(t => t.faceId == i).length + if (p0.curve == 0) // 直线 + { + const newLine = Line2d.New(p0.pointX, p0.pointY, p1.pointX, p1.pointY) + newLine.tagData = p0.sealSize + newLine.tagData2 = sideHoleCount + orgBorderCurveList.push(newLine) + p0.radius = 0 + } + else // 曲线 + { + const crc = Arc2d.New(p0.pointX, p0.pointY, p1.pointX, p1.pointY, p0.curve) + crc.tagData = p0.sealSize + crc.tagData2 = sideHoleCount + p0.radius = crc.m_Radius + orgBorderCurveList.push(crc) + } + } + } + else // 矩形板 + { + const w = block.width + const l = block.length + + const line0 = Line2d.New(0, 0, w, 0) + line0.tagData = block.sealBottom + line0.tagData2 = block.holeCountBottom() || 0 + + const line1 = Line2d.New(w, 0, w, l) + line1.tagData = block.sealRight + line1.tagData2 = block.holeCountRight() || 0 + + const line2 = Line2d.New(w, l, 0, l) + line2.tagData = block.sealTop + line2.tagData2 = block.holeCountTop() || 0 + + const line3 = Line2d.New(0, l, 0, 0) + line3.tagData = block.sealLeft + line3.tagData2 = block.holeCountLeft() || 0 + + orgBorderCurveList.push(line0) + orgBorderCurveList.push(line1) + orgBorderCurveList.push(line2) + orgBorderCurveList.push(line3) + } + return orgBorderCurveList + } + /** 创建 开料轮廓不含预铣 */ + createOrgBorder(bd: PlaceBlockDetail): Curve2d[] { + const borders = new Array() + if (bd.points && bd.points.length > 1) // 异形 + { + const count = bd.points.length + for (let i = 0; i < count - 1; i++) // 异形点(无封边,起点终点 是重复的) + { + const p0 = bd.points[i] + const p1 = i == count - 1 ? bd.points[0] : bd.points[i + 1] + const sideHoleCount = bd.holeListSide.filter(t => t.faceId == i).length + if (p0.curve == 0) // 直线 + { + const newLine = Line2d.New(p0.pointX, p0.pointY, p1.pointX, p1.pointY) + newLine.tagData = p0.sealSize + newLine.tagData2 = sideHoleCount + borders.push(newLine) + p0.radius = 0 + } + else // 曲线 + { + const crc = Arc2d.New(p0.pointX, p0.pointY, p1.pointX, p1.pointY, p0.curve) + crc.tagData = p0.sealSize + crc.tagData2 = sideHoleCount + p0.radius = crc.m_Radius + if (p0.radius < 2) { + p0.curve = 0 + p0.radius = 0 + } + borders.push(crc) + } + } + } + else // 矩形板 + { + const w = bd.cutWidth + const l = bd.cutLength + const line0 = Line2d.New(0, 0, w, 0) + const line1 = Line2d.New(w, 0, w, l) + const line2 = Line2d.New(w, l, 0, l) + const line3 = Line2d.New(0, l, 0, 0) + + borders.push(line0) + borders.push(line1) + borders.push(line2) + borders.push(line3) + } + + return borders + } +} \ No newline at end of file diff --git a/samples/handleAbility/blockHelper.ts b/samples/handleAbility/blockHelper.ts new file mode 100644 index 0000000..29ac6e9 --- /dev/null +++ b/samples/handleAbility/blockHelper.ts @@ -0,0 +1,4 @@ +/** 小板相关的计算 */ +export class BlockHelper{ + +} \ No newline at end of file diff --git a/samples/handleAbility/common/ArrayExt.ts b/samples/handleAbility/common/ArrayExt.ts new file mode 100644 index 0000000..2a446dd --- /dev/null +++ b/samples/handleAbility/common/ArrayExt.ts @@ -0,0 +1,392 @@ +export class List extends Array +{ + /** 返回符合条件的第一个元素 */ + first(fn: (item: Item) => boolean): Item + { + if (this.length == 0) + return null + for (const item of this) + { + if (fn(item)) + return item + } + return null + } + + /** 返回符合条件的最后一元素 */ + last(fn: (t: Item) => boolean): Item + { + if (this.length == 0) + return null + for (let i = this.length - 1; i >= 0; i--) + { + if (fn(this[i])) + return this[i] + } + return null + } + + /** 最大值 */ + max(fn: (item: Item) => T): T + { + let maxV: T + for (const i of this) + { + let v = fn(i) + if (maxV == null) + { + maxV = fn(i) + } + else + { + if (v > maxV) + { + maxV = v + } + } + } + return maxV + } + + /** 最小值 */ + min(fn: (item: Item) => T): T + { + let minV: T + for (const i of this) + { + let v = fn(i) + if (minV == null) + { + minV = fn(i) + } + else + { + if (v < minV) + { + minV = v + } + } + } + return minV + } + + /** 累加 */ + sum(fn: (item: Item) => number): number + { + let v: number = 0 + for (const t of this) + { + v = v + fn(t) + } + return v + } + + /** 平均值 */ + avg(fn: (item: Item) => number): number + { + if (this.length == 0) + return 0 + let sum = this.sum(fn) + return sum / this.length + } + + /** 满足条件的元素数量 */ + count(fn: (item: Item) => number): number + { + if (this.length == 0) + return 0 + let c = 0 + for (const item of this) + { + if (fn(item)) + c = c + 1 + } + return c + } + + FindMax(fn: (item: Item) => T): Item + { + return this.reduce((a: Item, b: Item): Item => fn(a) > fn(b) ? a : b) + } +} + +export class ArrayExt +{ + /** 返回满足条件的元素数量 */ + static count(list: Item[], fn: (item: Item) => boolean): number + { + if (list.length == 0) + return 0 + let c = 0 + for (const item of list) + { + if (fn(item)) + c = c + 1 + } + return c + } + + /** 移除 */ + static remove(list: Item[], obj: Item) + { + let index = list.findIndex(t => t == obj) + if (index == -1) + return + list.splice(index, 1) + } + + /** 返回符合条件的第一个元素 */ + static first(list: Item[], fn: (item: Item) => boolean, orderFn1: (item: Item) => number = null, orderFn2: (item: Item) => number = null): Item + { + if (list.length == 0) + return null + if (orderFn1 == null) + { + for (const item of list) + { + if (fn(item)) + return item + } + return null + } + + let minValue1: number + let minValue2: number + let minItem: Item + for (const item of list) + { + if (fn(item) == false) + continue + let v1 = orderFn1(item) + let v2 = orderFn2 != null ? orderFn2(item) : 0 + if (minValue1 == null || v1 < minValue1 || (v1 == minValue1 && v2 < minValue2)) + { + minValue1 = v1 + minValue2 = v2 + minItem = item + } + } + return minItem + } + + /** 返回符合条件的最后一元素 */ + static last(list: Item[], fn: (t: Item) => boolean, orderFn1: (item: Item) => number = null, orderFn2: (item: Item) => number = null): Item + { + if (list.length == 0) + return null + if (orderFn1 == null) + { + for (let i = list.length - 1; i >= 0; i--) + { + if (fn(list[i])) + return list[i] + } + return null + } + + // + let maxValue1: number + let maxValue2: number + let maxItem: Item + for (const item of list) + { + if (fn(item) == false) + continue + let v1 = orderFn1(item) + let v2 = orderFn2 ? orderFn2(item) : 0 + if (maxValue1 == null || v1 > maxValue1 || (v1 == maxValue1 && v2 > maxValue2)) + { + maxValue1 = v1 + maxValue2 = v2 + maxItem = item + } + } + return maxItem + } + + /** 取最大值 */ + static max(list: T1[], fn: (item: T1) => T2, whereF: (item: T1) => boolean = null, defaultV: T2 = null): T2 + { + let maxV: T2 + for (const i of list) + { + if (whereF && whereF(i) == false) + continue + let v = fn(i) + if (maxV == undefined) + { + maxV = fn(i) + } + else + { + if (v > maxV) + { + maxV = v + } + } + } + if (maxV != undefined) + return maxV + return defaultV + } + + /** 最小值 */ + static min(list: Item[], fn: (item: Item) => T, whereF: (item: Item) => boolean = null, defaultV: T = null): T + { + let minV: T + for (const i of list) + { + if (whereF && whereF(i) == false) + continue + let v = fn(i) + if (minV == undefined) + { + minV = v + } + else + { + if (v < minV) + { + minV = v + } + } + } + if (minV != undefined) + return minV + return defaultV + } + + /** 累加 */ + static sum(list: Item[], fn: (item: Item) => number, wn?: (item: Item) => boolean): number + { + let v: number = 0 + for (const t of list) + { + if (wn && wn(t) == false) + continue + v = v + fn(t) + } + return v + } + + /** 平均值 */ + static avg(list: Item[], fn: (item: Item) => number): number + { + if (this.length == 0) + return 0 + let sum = ArrayExt.sum(list, fn) + return sum / this.length + } + + /** 排序 */ + static sortBy(list: Item[], fn: (item: Item) => number, fn2: (item: Item) => number = null) + { + if (fn2 == null) + return list.sort((a: Item, b: Item): number => fn(a) - fn(b)) + else + return list.sort((a: Item, b: Item): number => fn(a) == fn(b) ? (fn2(a) - fn2(b)) : fn(a) - fn(b)) + } + + /** 降序 排序 */ + static sortByDescending(list: Item[], fn: (item: Item) => number) + { + list.sort((a: Item, b: Item): number => fn(b) - fn(a)) + } + + /** 排序成新的数组 */ + static orderBy(list: Item[], fn: (item: Item) => number, fn2: (item: Item) => number = null): Item[] + { + let newList = list.concat([]) + if (fn2 == null) + return newList.sort((a: Item, b: Item): number => fn(a) - fn(b)) + else + return newList.sort((a: Item, b: Item): number => fn(a) == fn(b) ? (fn2(a) - fn2(b)) : fn(a) - fn(b)) + } + + /** 降序成新的数组 */ + static orderByDescending(list: Item[], fn: (item: Item) => number, fn2: (item: Item) => number = null): Item[] + { + let newList = list.concat([]) + if (fn2 == null) + return list.sort((a: Item, b: Item): number => fn(b) - fn(a)) + else + return list.sort((a: Item, b: Item): number => fn(a) == fn(b) ? (fn2(b) - fn2(a)) : fn(b) - fn(a)) + } + + /** 分组 */ + static groupBy(list: Item[], fn: (item: Item) => gT): GroupItem[] + { + let groups = new Array>() + + for (const item of list) + { + let key = fn(item) + let group = groups.find(t => t.key == key) + if (group == null) + { + group = new GroupItem(key) + groups.push(group) + } + group.push(item) + } + return groups + } + + /** + * 选择 + * let newObjectList = ArrayExt.Select(list,t=>({pA:t.name, pB:t.age + "_"+ t.month}) ) ; + */ + static Select(list: Item[], fn: (item: Item) => rT): rT[] + { + let newList = new Array() + for (const t of list) + { + newList.push(fn(t)) + } + return newList + } + + /** 过来,并按顺序排序 */ + static where(list: Item[], whereFn: (item: Item) => boolean, orderfn1: (item: Item) => number = null, orderfn2: (item: Item) => number = null): Item[] + { + let newList = list.filter(whereFn) + if (orderfn1 == null && orderfn2 == null) + return newList + return ArrayExt.sortBy(newList, orderfn1, orderfn2) + } +} + +export class GroupItem +{ + key: gT + get count() { return this.list.length } + list: Item[] + + constructor(k: gT) + { + this.key = k + this.list = [] + } + + push(d: Item) + { + this.list.push(d) + } +} + +/** + * 对排序好的数组进行去重操作 + * @param {(e1, e2) => boolean} [checkFuction] 校验对象相等函数 + * @returns {Array} 返回自身 + */ +export function arrayRemoveDuplicateBySort(arr: Array, checkFuction: (e1: T, e2: T) => boolean = checkEqual): Array +{ + if (arr.length < 2) + return arr + let j = 1 + for (let i = 1, l = arr.length; i < l; i++) + if (!checkFuction(arr[j - 1], arr[i])) + arr[j++] = arr[i] + arr.length = j + return arr +} diff --git a/samples/handleAbility/common/Box2.ts b/samples/handleAbility/common/Box2.ts new file mode 100644 index 0000000..2f71489 --- /dev/null +++ b/samples/handleAbility/common/Box2.ts @@ -0,0 +1,183 @@ +import { Vector2 } from './Vector2.js' +import type { Point } from './Point.js' + +export class Box2 +{ + min: Vector2 + max: Vector2 + constructor(min = new Vector2(+Number.POSITIVE_INFINITY, +Number.POSITIVE_INFINITY), max = new Vector2(Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY)) + { + this.min = min + this.max = max + } + + /** 获取面积 */ + get area(): number + { + return (this.max.x - this.min.x) * (this.max.y - this.min.y) + } + + /** */ + set(min: Vector2, max: Vector2): Box2 + { + this.min.copy(min) + this.max.copy(max) + return this + } + + setFromPoints(points: Iterable): Box2 + { + this.makeEmpty() + for (let p of points) + { + this.expandByPoint(p) + } + return this + } + + private static _setFromCenterAndSize_v1 = new Vector2() + setFromCenterAndSize(center: Vector2, size: Vector2): Box2 + { + const v1 = Box2._setFromCenterAndSize_v1 + const halfSize = v1.copy(size).multiplyScalar(0.5) + this.min.copy(center).sub(halfSize) + this.max.copy(center).add(halfSize) + return this + } + + clone(): Box2 + { + return new (this.constructor as any)().copy(this) + } + + copy(box: Box2): Box2 + { + this.min.copy(box.min) + this.max.copy(box.max) + return this + } + + makeEmpty(): Box2 + { + this.min.x = this.min.y = +Number.POSITIVE_INFINITY + this.max.x = this.max.y = Number.NEGATIVE_INFINITY + return this + } + + isEmpty(): boolean + { + // this is a more robust check for empty than (volume <= 0) because volume can get positive with two negative axes + return (this.max.x < this.min.x) || (this.max.y < this.min.y) + } + + getCenter(result: Vector2 = new Vector2()): Vector2 + { + return this.isEmpty() ? result.set(0, 0) : result.addVectors(this.min, this.max).multiplyScalar(0.5) + } + + getSize(result: Vector2 = new Vector2()): Vector2 + { + return this.isEmpty() ? result.set(0, 0) : result.subVectors(this.max, this.min) + } + + expandByPoint(point: Point): Box2 + { + this.min.min(point) + this.max.max(point) + return this + } + + expandByVector(vector: Vector2): Box2 + { + this.min.sub(vector) + this.max.add(vector) + return this + } + + expandByScalar(scalar: number): Box2 + { + this.min.addScalar(-scalar) + this.max.addScalar(scalar) + return this + } + + containsPoint(point: Vector2): boolean + { + if (point.x < this.min.x || point.x > this.max.x + || point.y < this.min.y || point.y > this.max.y) + { + return false + } + return true + } + + containsBox(box: Box2): boolean + { + if ((this.min.x <= box.min.x) && (box.max.x <= this.max.x) + && (this.min.y <= box.min.y) && (box.max.y <= this.max.y)) + { + return true + } + return false + } + + getParameter(point: Vector2, result: Vector2 = new Vector2()): Vector2 + { + // This can potentially have a divide by zero if the box + // has a size dimension of 0. + return result.set( + (point.x - this.min.x) / (this.max.x - this.min.x), + (point.y - this.min.y) / (this.max.y - this.min.y), + ) + } + + intersectsBox(box: Box2): boolean + { + // using 6 splitting planes to rule out intersections. + if (box.max.x < this.min.x || box.min.x > this.max.x + || box.max.y < this.min.y || box.min.y > this.max.y) + { + return false + } + return true + } + + clampPoint(point: Vector2, result: Vector2 = new Vector2()): Vector2 + { + return result.copy(point).clamp(this.min, this.max) + } + + private static _distanceToPoint_v1 = new Vector2() + distanceToPoint(point: Vector2): number + { + const v1 = Box2._distanceToPoint_v1 + const clampedPoint = v1.copy(point).clamp(this.min, this.max) + return clampedPoint.sub(point).length() + } + + intersect(box: Box2): Box2 + { + this.min.max(box.min) + this.max.min(box.max) + return this + } + + union(box: Box2): Box2 + { + this.min.min(box.min) + this.max.max(box.max) + return this + } + + translate(offset: Point): Box2 + { + this.min.add(offset) + this.max.add(offset) + return this + } + + equals(box: Box2): boolean + { + return box.min.equals(this.min) && box.max.equals(this.max) + } +}; diff --git a/samples/handleAbility/common/ClipperCpp.ts b/samples/handleAbility/common/ClipperCpp.ts new file mode 100644 index 0000000..7bb2a5f --- /dev/null +++ b/samples/handleAbility/common/ClipperCpp.ts @@ -0,0 +1,25 @@ +import * as clipperLib from 'js-angusj-clipper/web/index.js' + +// nodejs style require + +export const clipperCpp: { lib?: clipperLib.ClipperLibWrapper } = {} +export function InitClipperCpp(): Promise +{ + if (clipperCpp.lib) + return + if (!globalThis.document) + globalThis.document = {} as any + return new Promise((res, rej) => + { + clipperLib.loadNativeClipperLibInstanceAsync( + // let it autodetect which one to use, but also available WasmOnly and AsmJsOnly + // clipperLib.NativeClipperLibRequestedFormat.WasmWithAsmJsFallback + clipperLib.NativeClipperLibRequestedFormat.WasmOnly, + ).then((c) => + { + clipperCpp.lib = c + res() + console.log('载入成功!') + }) + }) +} diff --git a/samples/handleAbility/common/Filer.ts b/samples/handleAbility/common/Filer.ts new file mode 100644 index 0000000..a319f18 --- /dev/null +++ b/samples/handleAbility/common/Filer.ts @@ -0,0 +1,31 @@ +/** + * CAD文件数据 + */ +export class NestFiler +{ + private readIndex: number = 0 + constructor(public _datas: any[] = []) { } + + Clear() + { + this._datas.length = 0 + return this.Reset() + } + + Reset() + { + this.readIndex = 0 + return this + } + + Write(data: any) + { + this._datas.push(data) + return this + } + + Read(): any + { + return this._datas[this.readIndex++] + } +} diff --git a/samples/handleAbility/common/LayoutEngine/Curves2Parts.ts b/samples/handleAbility/common/LayoutEngine/Curves2Parts.ts new file mode 100644 index 0000000..e9735cf --- /dev/null +++ b/samples/handleAbility/common/LayoutEngine/Curves2Parts.ts @@ -0,0 +1,255 @@ +import type { PolylineProps } from 'cadapi' +import { Circle, Polyline, Polyline2Points } from 'cadapi' +import { EndType, JoinType } from 'js-angusj-clipper/web' +import type { Box3, Vector3 } from 'three' +import { Vector2 } from 'three' +import { clipperCpp } from '../ClipperCpp' +import type { Point } from '../Point' +import { Path, PathScale } from '../core/Path' +import type { IOffset } from './Simplify2' +import { SimplifyDouglasPeucker } from './Simplify2' + +/** 内外接多边形 */ +export function Circle2Points(circle: Circle, knifRadius: number, splitSize = 10, outside = false): Point[] { + let radius = circle.Radius + const an = Math.PI * 2 / splitSize + + if (outside) + radius = radius / Math.cos(an / 2) + knifRadius + else + radius -= knifRadius + + const cenP = circle.Center + const pts: Vector3[] = [] + for (let i = 0; i < splitSize; i++) + pts.push(polar(cenP.clone(), an * i, radius)) + + return pts as Point[] +} + +export function Curve2Path(curve: Polyline, outside = false): Path { + if (curve.IsClockWise) + curve.Reverse() + const w = new CurveWrap(curve, 3, outside) + return new Path(outside ? w.GetOutsidePoints() : w.GetInsidePoints()) +} + +export class CurveWrap { + BoundingBox: Box3 + + Area: number + + SimplyPolyline: Polyline + SimplyOffset: IOffset + Used = false + Holes: CurveWrap[] = [] + + Points: Point[] + + constructor(public Curve: Polyline | Circle, public KnifRadius: number, public IsOutside: boolean) { + this.BoundingBox = Curve.BoundingBox + + if (Curve instanceof Polyline) { + const pts = Polyline2Points(Curve, IsOutside, 0)[1] + /** + * 精简算法SimplifyDouglasPeucker 会导致轮廓变大, + * 修改成直接取点 陈雄 QQ聊天记录 23.9.18 + * 23.10.9 by lrx + */ + + const [spts, offset] = SimplifyDouglasPeucker(pts, KnifRadius ** 2 + KnifRadius) + if (spts.length !== pts.length && spts.length > 2) { + this.SimplyOffset = offset + + this.SimplyPolyline = Path2Polyline(spts) + this.Curve = this.SimplyPolyline// 保险起见,也更新它 + this.Area = this.SimplyPolyline.Area + } + else// 此处更新多段线 + { this.Curve = Path2Polyline(pts) } + this.Points = spts + + // 以下修改后的 + // this.Curve = Path2Polyline(pts); + // this.Points = pts; + } + + if (this.Area === undefined) + this.Area = this.Curve.Area + } + + ContainsCurve(curve: CurveWrap): boolean { + if (this.SimplyPolyline) + return this.SimplyPolyline.PtInCurve(curve.Curve.StartPoint) + return this.Curve.PtInCurve(curve.Curve.StartPoint) + } + + GetOutsidePoints(): Point[] { + if (this.Curve instanceof Circle) { + const pts = Circle2Points(this.Curve, this.KnifRadius, 10, true) + return pts + } + else { + const pl = this.SimplyPolyline || this.Curve + let offset = this.KnifRadius + if (this.SimplyOffset) + offset += this.SimplyOffset.positiveOffset + + if (offset > 0) { + let pts = pl.GetStretchPoints() as Point[] + pts = clipperCpp.lib.offsetToPaths({ + delta: offset * 1e4, + offsetInputs: [{ data: PathScale(pts, 1e4), joinType: JoinType.Miter, endType: EndType.ClosedPolygon }], + })[0] + try { + PathScale(pts, 1e-4) + } + catch { + console.log('err') + } + return pts + } + else { return this.Points } + } + } + + GetInsidePoints(): Point[] { + return this.GetInsidePoints2(this.KnifRadius) + } + + GetInsidePoints2(d: number): Point[] { + if (this.Curve instanceof Circle) { + const pts = Circle2Points(this.Curve, d, 10, false) + return pts + } + else { + const pl = this.SimplyPolyline || this.Curve + let offset = -d + if (this.SimplyOffset) + offset += this.SimplyOffset.negativeOffset + + if (offset < -0.01) { + const pls = pl.GetOffsetCurves(offset) + if (pls.length) + return pls[0].GetStretchPoints() + } + else { return this.Points } + } + } + + /** 引入Polyline 已经含刀半径, 获得精简后的点阵 */ + GetOrgPoints(outside = true): Point[] { + if (this.Curve instanceof Circle) { + const pts = Circle2Points(this.Curve, 0, 10, outside) + return pts + } + else { + const pl = this.SimplyPolyline || this.Curve + let offset = 0 + if (this.SimplyOffset) + offset += this.SimplyOffset.positiveOffset + + if (offset > 0) { + let pts = pl.GetStretchPoints() as Point[] + pts = clipperCpp.lib.offsetToPaths({ + delta: offset * 1e4, + offsetInputs: [{ data: PathScale(pts, 1e4), joinType: JoinType.Miter, endType: EndType.ClosedPolygon }], + })[0] + try { + PathScale(pts, 1e-4) + } + catch { + console.log('err') + } + return pts + } + else { + return this.Points + } + } + } +} + +/** 多段线 转点整 已弃用,整合到CAD api 23.11.2 */ +// export function Polylin2Points(pl: Polyline, outside: boolean, knifRadius: number): [Polyline, Point[]] +// { +// let pts: Point[] = []; + +// if (!outside) knifRadius = -knifRadius; +// if (pl.IsClockWise) pl.Reverse(); +// for (let i = 0; i < pl.EndParam; i++) +// { +// pts.push(pl.GetPointAtParam(i)); + +// let bul = pl.GetBulgeAt(i); +// if (bul !== 0) +// { +// let arc = pl.GetCurveAtIndex(i) as Arc; + +// let allAngle = arc.AllAngle; +// let arcLength = arc.Length; + +// // let splitCount = Math.round(allAngle / 0.4); +// // if (arcLength < 300) +// // splitCount = 2; +// // else +// // splitCount = Math.max(arcLength / 200, splitCount,2); + +// let minCount = Math.floor(allAngle * 4 / Math.PI); +// let splitCount = Math.round(allAngle / 0.4); +// if (arcLength < 300) +// splitCount = Math.max(2, minCount); +// else +// splitCount = Math.max(Math.floor(arcLength / 200), splitCount,2, minCount); + +// let radius = arc.Radius; +// if (outside === bul > 0) +// radius = radius / Math.cos(allAngle / (splitCount * 2)); + +// let cp = arc.Center; +// for (let j = outside ? 0.5 : 0; j < splitCount; j++) +// { +// let a = arc.GetAngleAtParam(j * (1 / splitCount)); +// let p = polar(cp.clone(), a, radius); +// pts.push(p); +// } +// } +// } + +// if (knifRadius !== 0) +// { +// pts = clipperCpp.lib.offsetToPaths({ +// delta: knifRadius * 1e4, +// offsetInputs: [{ data: PathScale(pts, 1e4), joinType: JoinType.Miter, endType: EndType.ClosedPolygon }] +// })[0]; +// PathScale(pts, 1e-4); +// } +// return [pl, pts]; +// } + +export function Path2Polyline(path: Point[]): Polyline { + const pl = new Polyline() + pl.LineData = path.map((p) => { + return { pt: new Vector2(p.x, p.y), bul: 0 } + }) + pl.CloseMark = true + return pl +} + +export function Points2Polyline(pts: any[]): Polyline { + const lined: PolylineProps[] = [] + const count = pts.length + for (let i = 0; i < count; i++) { + const p0 = pts[i] + lined.push({ pt: new Vector2(p0.x, p0.y), bul: p0.bul }) + } + const pls = new Polyline(lined) + pls.CloseMark = true + return pls +} + +export function polar(v: T, an: number, dis: number): T { + v.x += Math.cos(an) * dis + v.y += Math.sin(an) * dis + return v +} diff --git a/samples/handleAbility/common/LayoutEngine/PolylineHelper.ts b/samples/handleAbility/common/LayoutEngine/PolylineHelper.ts new file mode 100644 index 0000000..43666f0 --- /dev/null +++ b/samples/handleAbility/common/LayoutEngine/PolylineHelper.ts @@ -0,0 +1,369 @@ +import type { PolylineProps } from 'cadapi' +import { CADFiler, Circle, Polyline, Status, VKnifToolPath, isTargetCurInOrOnSourceCur } from 'cadapi' +import type { Box3 } from 'three' +import { Vector2, Vector3 } from 'three' +import { arrayRemoveDuplicateBySort } from '../ArrayExt' +import type { Curve2d } from '../base/CAD' +import { Arc2d, Point2d, copyTextToClipboard } from '../base/CAD' +import { CurveWrap } from './Curves2Parts' + +// import type { Curve2d } from '../../common/base/CAD' + +export class PolylineHelper { + /** 创建闭合多段线 */ + static create(pts: any[], closeMark = false): Polyline { + let lined: PolylineProps[] = [] + let count = pts.length + for (let i = 0; i < count; i++) { + let p0 = pts[i] + + lined.push({ pt: new Vector2(p0.x, p0.y), bul: p0.bul || 0 }) + } + let pls = new Polyline(lined) + pls.CloseMark = closeMark + return pls + } + + static createByCurve2d(curs: Curve2d[], closeMark = true): Polyline { + let lined: PolylineProps[] = [] + for (let cur of curs) { + let x = cur.StartPoint.m_X + let y = cur.StartPoint.m_Y + let bul = 0 + if (cur instanceof Arc2d) + bul = cur.Bul || 0 + lined.push({ pt: new Vector2(x, y), bul }) + } + let pls = new Polyline(lined) + pls.CloseMark = true + return pls + } + + static createByPts(pts: any[], buls: number[], closeMark = false): Polyline { + let plps: PolylineProps[] = [] + let count = pts.length + for (let i = 0; i < count; i++) { + let p0 = pts[i] + plps.push({ pt: new Vector2(p0.x, p0.y), bul: buls[i] }) + } + let pls = new Polyline(plps) + pls.CloseMark = closeMark + return pls + } + + static getSimplePoints(pts: any[], offset: number): any[] { + let pl = PolylineHelper.create(pts) + pl.CloseMark = true + let cureW = new CurveWrap(pl, offset, true) + let pts2 = cureW.GetOutsidePoints() + arrayRemoveDuplicateBySort(pts2, (p1, p2) => (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y) < 1e-2) + return pts2 + } + + static createByWidthLength(w: number, l: number): Polyline { + let plps: PolylineProps[] = [] + plps.push({ pt: new Vector2(0, 0), bul: 0 }) + plps.push({ pt: new Vector2(w, 0), bul: 0 }) + plps.push({ pt: new Vector2(w, l), bul: 0 }) + plps.push({ pt: new Vector2(0, l), bul: 0 }) + let pls = new Polyline(plps) + pls.CloseMark = true + return pls + } + + /** 多段线,添加位置移动 返回新多段线 */ + static moveTo(pl: Polyline, x: number, y: number): Polyline { + let lindData = pl.LineData + let pos = pl.Position + + let newPts: PolylineProps[] = [] + for (let p of lindData) { + let nx = p.pt.x + pos.x + x + let ny = p.pt.y + pos.y + y + if (ny < 7.9) { + // console.log('修边小于 7.9????', ny) + } + let bul = p.bul + newPts.push({ pt: new Vector2(nx, ny), bul }) + } + let npl = new Polyline(newPts) + npl.CloseMark = pl.CloseMark + return npl + } + + /** 重设 多段线的几点 */ + static resetPosition(pl: Polyline): Polyline { + let lindData = pl.LineData + let pos = pl.Position + + let newPts: PolylineProps[] = [] + for (let p of lindData) { + let nx = p.pt.x + pos.x + let ny = p.pt.y + pos.y + let bul = p.bul + newPts.push({ pt: new Vector2(nx, ny), bul }) + } + let npl = new Polyline(newPts) + npl.CloseMark = pl.CloseMark + return npl + } + + /** 获得v型刀走刀路径 */o + static getVModelPoints(pl: Polyline, depth: number, ang: number): any[] { + // let ang = Math.PI * (0.5 * angle) / 180 ; + let ps = [] + let bx = pl.Position.x + let by = pl.Position.y + if (ang > 0.01) { + let rt = VKnifToolPath(pl, depth, ang / 2) + ps = rt.map((t) => { return { x: t.pt.x + bx, y: t.pt.y + by, z: t.pt.z, bul: t.bul, r: 0 } }) + } + else { + ps = pl.LineData.map((t) => { return { x: t.pt.x + bx, y: t.pt.y + by, z: 0, bul: t.bul, r: 0 } }) + } + for (let i = 0; i < ps.length; i++) { + let p = ps[i] + if (p.bul == 0) + continue + let p2 = (i == ps.length - 1 ? ps[0] : ps[i + 1]) + let r = this.getArcRadius(p.x, p.y, p2.x, p2.y, p.bul) + p.r = r + } + return ps + } + + static ConverPolyLin2Circle(polyline: Polyline, fuzz = 0.1): Circle | undefined { + let box = polyline.BoundingBox + let size = box.getSize(new Vector3()) + if (!this.equaln(size.x, size.y, fuzz))// 盒子四方 + return undefined + + let circleLength = 2 * Math.PI * size.x + if (!this.equaln(circleLength, polyline.Length, fuzz * 2)) + return undefined + + let circleArea = Math.PI * size.x * size.x + if (!this.equaln(circleArea, polyline.Area, fuzz * 2)) + return undefined + + let r = size.x// 必须备份(因为我们要复用这个vector变量) + return new Circle(box.getCenter(size), r) + } + // 有问题 + static getVModelPoints_offset(pl: Polyline, offset: number, depth: number, angle: number) { + let npl = offset == 0 ? pl : pl.GetOffsetCurves(offset)[0] + // if(offset != 0) + // { + // ClipboardTest.write2PolyLine(pl,npl); + // } + return PolylineHelper.getVModelPoints(npl, depth, angle) + } + + static getArcRadius(x1: number, y1: number, x2: number, y2: number, bul: number): number { + let bul2 = Math.abs(bul) + let d = Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) / 2 + return 0.5 * d * (1 + bul2 ** 2) / bul2 + } + + // 圆 转 多段线 + static cicleToPolyline(c: Circle): Polyline { + let arcs = c.GetSplitCurves([0, 0.5]) + let pl = Polyline.FastCombine(arcs) + return pl + } + + /** 判断多段线是否 重叠 */ + static isIntersect(pl1: Polyline, pl2: Polyline): boolean { + let box1 = this.getBox(pl1) + let box2 = this.getBox(pl2) + + if (!box1.intersectsBox(box2)) + return false // 肯定不相交 + + let ipts = pl1.IntersectWith(pl2, 0) + if (ipts.length === 0) { + if (pl1.Area > pl2.Area)// 缓存面积 + { + if (isTargetCurInOrOnSourceCur(pl1, pl2)) + return true // 包含 + } + else { + if (isTargetCurInOrOnSourceCur(pl2, pl1)) + return true // 包含 + } + return false + } + else { + return true // 有交点 一定有交集 + } + } + + // 多段线 圆弧合并 + static mergeCurve(pl2: Polyline): Polyline { + const curves = pl2.Explode() + arrayRemoveDuplicateBySort(curves, (c1, c2) => { + return c1.Join(c2) === Status.True + }) + + return Polyline.FastCombine(curves) + } + + /** + * pl2 包含在pl1 内 + * + */ + // static isInside(pl1:Polyline,pl2:Polyline):boolean + // { + // let box1 = this.getBox(pl1); + // let box2 = this.getBox(pl2); + // if (!box1.intersectsBox(box2)) return false; //肯定不相交 + + // let ipts = pl1.IntersectWith(pl2, 0); + // if (ipts.length > 0) return true; //有交点 一定有交集 + // } + + /** + * 两片板的干涉检查 + * + * @param pl1 + * @param pls1_inner + * @param pls1_model + * @param pl2 + * @param pls2_inner + * @param pls2_model + * @returns + */ + static isOverLap(pl1: Polyline, pls1_inner: Polyline[], pls1_model: Polyline[], pl2: Polyline, pls2_inner: Polyline[], pls2_model: Polyline[]) { + // 是否干涉, 被包含在造型洞,不算干涉 + let isOverlap = this.boxIsOverlap(pl1, pls1_inner, pl2, pls2_inner) + + if (isOverlap) + return true + + // 造型 ,2v 刀路 是否干涉 + for (let pl1_model of pls1_model) { + if (pl1_model.IntersectWith(pl2, 0).length > 0) + return true + for (let pl2_inner of pls2_inner) { + if (pl1_model.IntersectWith(pl2_inner, 0).length > 0) + return true + } + } + + for (let pl2_model of pls2_model) { + if (pl2_model.IntersectWith(pl1, 0).length > 0) + return true + for (let pl1_inner of pls1_inner) { + if (pl2_model.IntersectWith(pl1_inner, 0).length > 0) + return true + } + } + + return false + } + + private static boxIsOverlap(pl1: Polyline, pls1_inner: Polyline[], pl2: Polyline, pls2_inner: Polyline[]) { + let box1 = this.getBox(pl1) + let box2 = this.getBox(pl2) + + if (!box1.intersectsBox(box2)) + return false // 肯定不相交 + + let ipts = pl1.IntersectWith(pl2, 0) + if (ipts.length > 0) + return true // 有交点 一定有交集 + + if (pl1.Area > pl2.Area)// 缓存面积 + { + if (isTargetCurInOrOnSourceCur(pl1, pl2)) // pl1包含 pl2 + { + for (let mpl of pls1_inner) // 如果pl1有造型洞包含pl2, 则表示不干涉,返回false + + { + if (isTargetCurInOrOnSourceCur(mpl, pl2) == true) + return false + } + + return true + } + } + else { + if (isTargetCurInOrOnSourceCur(pl2, pl1)) // pl2包含 pl1 + { + for (let mpl of pls2_inner) // 如果pl2有造型洞包含pl1, 则表示不干涉,返回false + + { + if (isTargetCurInOrOnSourceCur(mpl, pl1) == true) + return false + } + + return true + } + } + + return false + } + + /** 判断 点是否在多段线内 */ + static isPointInPolyline(pl1: Polyline, x: number, y: number): boolean { + return pl1.PtInCurve(new Vector3(x, y, 0)) + } + + static getBox(pl1: Polyline): Box3 { + if (!pl1.box_tp) + pl1.box_tp = pl1.BoundingBox + + return pl1.box_tp as Box3 + } + + static getArea(pl1: Polyline): number { + if (!pl1.area_tp) + pl1.area_tp = pl1.Area + + return pl1.area_tp as number + } + + static getPath(pl: Polyline): Path2D { + let path = new Path2D() + let p0 = pl.LineData[0].pt + path.moveTo(p0.x, p0.y) + + for (let i = 0; i < pl.LineData.length; i++) { + let p0 = pl.LineData[i].pt + let p1 = (i == pl.LineData.length - 1) ? pl.LineData[0].pt : pl.LineData[i + 1].pt + let bul = pl.LineData[i].bul + if (bul == 0) { + path.lineTo(p1.x, p1.y) + } + else { + let arc = new Arc2d(new Point2d(p0.x, p0.y), new Point2d(p1.x, p1.y), bul) + path.arc(arc.m_Center.m_X, arc.m_Center.m_Y, arc.m_Radius, arc.m_StartAngle, arc.m_EndAngle, bul < 0) + } + } + path.closePath() + return path + } + + static equaln(v1: number, v2: number, fuzz = 1e-5) { + return Math.abs(v1 - v2) <= fuzz + } + + static toClipboard(en: Polyline | any) { + let f = new CADFiler() + f.Write(1)// 实体个数 + f.WriteObject(en) + + copyTextToClipboard(f.ToString()) + } + + static getStrPLs(ens: any[]) { + if (ens.length == 0) + return '' + let f = new CADFiler() + f.Write(ens.length)// 实体个数 + for (let en of ens) + f.WriteObject(en) + + return f.ToString() + } +} diff --git a/samples/handleAbility/common/LayoutEngine/Simplify2.ts b/samples/handleAbility/common/LayoutEngine/Simplify2.ts new file mode 100644 index 0000000..0316ba0 --- /dev/null +++ b/samples/handleAbility/common/LayoutEngine/Simplify2.ts @@ -0,0 +1,85 @@ +import { Vector2 } from "../Vector2" + +interface P { + x: number + y: number +} + +export interface IOffset { + negativeOffset: number + positiveOffset: number +} + +/** 点p到线段P1P2 的最短距离的平方,线段不延伸 */ +function GetSqSegDist(p: P, p1: P, p2: P): number { + let x = p1.x + let y = p1.y + let dx = p2.x - x + let dy = p2.y - y + + if (dx !== 0 || dy !== 0)// 不是0长度线 + { + const t = ((p.x - x) * dx + (p.y - y) * dy) / (dx * dx + dy * dy) + if (t > 1) { + x = p2.x + y = p2.y + } + else if (t > 0) { + x += dx * t + y += dy * t + } + } + dx = p.x - x + dy = p.y - y + return dx * dx + dy * dy +} + +function CrossVector2(a: P, b: P) +{ + return a.x * b.y - a.y * b.x +} + +// Ramer-Douglas-Peucker algorithm +function SimplifyDPStep(points: P[], first: number, last: number, sqTolerance: number, simplified: P[], offset: IOffset): void { + let maxSqDist = 0 + let index: number + const fp = points[first] + const lp = points[last] + + for (let i = first + 1; i < last; i++) { + const p = points[i] + const sqDist = GetSqSegDist(p, fp, lp) + if (sqDist > maxSqDist) { + index = i + maxSqDist = sqDist + } + } + + if (maxSqDist > sqTolerance) { + if (index - first > 1) + SimplifyDPStep(points, first, index, sqTolerance, simplified, offset) + simplified.push(points[index]) + if (last - index > 1) + SimplifyDPStep(points, index, last, sqTolerance, simplified, offset) + } + else { + // 记录偏移 + const v = new Vector2(lp.x - fp.x, lp.y - fp.y).normalize() + for (let i = first + 1; i < last; i++) { + const p = points[i] + const offsetDist = -CrossVector2(v, { x: p.x - fp.x, y: p.y - fp.y }) + offset.positiveOffset = Math.max(offset.positiveOffset, offsetDist) + offset.negativeOffset = Math.min(offset.negativeOffset, offsetDist) + } + } +} + +// Ramer-Douglas-Peucker 算法 +export function SimplifyDouglasPeucker(points: P[], sqTolerance: number): [P[], IOffset] { + const last = points.length - 1 + const simplified: P[] = [points[0]] + const offset: IOffset = { negativeOffset: 0, positiveOffset: 0 } + SimplifyDPStep(points, 0, last, sqTolerance, simplified, offset) + simplified.push(points[last]) + return [simplified, offset] +} diff --git a/samples/handleAbility/common/Point.ts b/samples/handleAbility/common/Point.ts new file mode 100644 index 0000000..87927a5 --- /dev/null +++ b/samples/handleAbility/common/Point.ts @@ -0,0 +1,5 @@ +export interface Point +{ + x: number + y: number +} diff --git a/samples/handleAbility/common/Util.ts b/samples/handleAbility/common/Util.ts new file mode 100644 index 0000000..a42dd3e --- /dev/null +++ b/samples/handleAbility/common/Util.ts @@ -0,0 +1,38 @@ +/** 判断两个值是否相等 */ +export function equaln(v1: number, v2: number, fuzz = 1e-5) +{ + return Math.abs(v1 - v2) <= fuzz +} + +/** 修正数组索引号 */ +export function FixIndex(index: number, arr: Array | number) +{ + let count = (Array.isArray(arr)) ? arr.length : arr + if (index < 0) + return count + index + else if (index >= count) + return index - count + else + return index +} + +/** + * 获取数组最大元素的索引号 + * @param compart t2大于t1返回t2 + * @returns 索引 + */ +export function Max(arr: T[], compart: (t1: T, t2: T) => boolean): number +{ + let best: T = arr[0] + let bestIndex = 0 + for (let i = 1; i < arr.length; i++) + { + let t1 = arr[i] + if (compart(best, t1)) + { + best = t1 + bestIndex = i + } + } + return bestIndex +} diff --git a/samples/handleAbility/common/Vector2.ts b/samples/handleAbility/common/Vector2.ts new file mode 100644 index 0000000..e2687d1 --- /dev/null +++ b/samples/handleAbility/common/Vector2.ts @@ -0,0 +1,335 @@ +import type { Point } from './Point.js' + +/** 二维向量 */ +export class Vector2 +{ + x: number + y: number + readonly isVector2: boolean = true + constructor(x: number = 0, y: number = 0) + { + this.x = x + this.y = y + } + + get width(): number { return this.x } + set width(value: number) { this.x = value } + get height(): number { return this.y } + set height(value: number) { this.y = value } + set(x: number, y: number): Vector2 + { + this.x = x + this.y = y + return this + } + + setScalar(scalar: number): Vector2 + { + this.x = scalar + this.y = scalar + return this + } + + setX(x: number): Vector2 + { + this.x = x + return this + } + + setY(y: number): Vector2 + { + this.y = y + return this + } + + setComponent(index: number, value: number): Vector2 + { + switch (index) + { + case 0: this.x = value; break + case 1: this.y = value; break + default: throw new Error(`index is out of range: ${index}`) + } + return this + } + + getComponent(index: number): number + { + switch (index) + { + case 0: return this.x + case 1: return this.y + default: throw new Error(`index is out of range: ${index}`) + } + } + + clone(): Vector2 + { + return new (this.constructor as any)().copy(this) + } + + copy(v: Vector2): Vector2 + { + this.x = v.x + this.y = v.y + return this + } + + add(v: Point): Vector2 + { + this.x += v.x + this.y += v.y + return this + } + + addScalar(s: number): Vector2 + { + this.x += s + this.y += s + return this + } + + addVectors(a: Vector2, b: Vector2): Vector2 + { + this.x = a.x + b.x + this.y = a.y + b.y + return this + } + + addScaledVector(v: Vector2, s: number): Vector2 + { + this.x += v.x * s + this.y += v.y * s + return this + } + + sub(v: Vector2): Vector2 + { + this.x -= v.x + this.y -= v.y + return this + } + + subScalar(s: number): Vector2 + { + this.x -= s + this.y -= s + return this + } + + subVectors(a: Vector2, b: Vector2): Vector2 + { + this.x = a.x - b.x + this.y = a.y - b.y + return this + } + + multiply(v: Vector2): Vector2 + { + this.x *= v.x + this.y *= v.y + return this + } + + multiplyScalar(scalar: number): Vector2 + { + if (Number.isFinite(scalar)) + { + this.x *= scalar + this.y *= scalar + } else + { + this.x = 0 + this.y = 0 + } + return this + } + + divide(v: Vector2): Vector2 + { + this.x /= v.x + this.y /= v.y + return this + } + + divideScalar(scalar: number): Vector2 + { + return this.multiplyScalar(1 / scalar) + } + + min(v: Point): Vector2 + { + this.x = Math.min(this.x, v.x) + this.y = Math.min(this.y, v.y) + return this + } + + max(v: Point): Vector2 + { + this.x = Math.max(this.x, v.x) + this.y = Math.max(this.y, v.y) + return this + } + + clamp(min: Vector2, max: Vector2): Vector2 + { + // This function assumes min < max, if this assumption isn't true it will not operate correctly + this.x = Math.max(min.x, Math.min(max.x, this.x)) + this.y = Math.max(min.y, Math.min(max.y, this.y)) + return this + } + + private static clampScalar_min = new Vector2() + private static clampScalar_max = new Vector2() + clampScalar(minVal: number, maxVal: number): Vector2 + { + const min: Vector2 = Vector2.clampScalar_min.set(minVal, minVal) + const max: Vector2 = Vector2.clampScalar_max.set(maxVal, maxVal) + return this.clamp(min, max) + } + + clampLength(min: number, max: number): Vector2 + { + const length: number = this.length() + return this.multiplyScalar(Math.max(min, Math.min(max, length)) / length) + } + + floor(): Vector2 + { + this.x = Math.floor(this.x) + this.y = Math.floor(this.y) + return this + } + + ceil(): Vector2 + { + this.x = Math.ceil(this.x) + this.y = Math.ceil(this.y) + return this + } + + round(): Vector2 + { + this.x = Math.round(this.x) + this.y = Math.round(this.y) + return this + } + + roundToZero(): Vector2 + { + this.x = (this.x < 0) ? Math.ceil(this.x) : Math.floor(this.x) + this.y = (this.y < 0) ? Math.ceil(this.y) : Math.floor(this.y) + return this + } + + negate(): Vector2 + { + this.x = -this.x + this.y = -this.y + return this + } + + dot(v: Vector2): number + { + return this.x * v.x + this.y * v.y + } + + lengthSq(): number + { + return this.x * this.x + this.y * this.y + } + + length(): number + { + return Math.sqrt(this.x * this.x + this.y * this.y) + } + + lengthManhattan(): number + { + return Math.abs(this.x) + Math.abs(this.y) + } + + normalize(): Vector2 + { + return this.divideScalar(this.length()) + } + + angle(): number + { + // computes the angle in radians with respect to the positive x-axis + let angle: number = Math.atan2(this.y, this.x) + if (angle < 0) + angle += 2 * Math.PI + return angle + } + + distanceTo(v: Vector2): number + { + return Math.sqrt(this.distanceToSquared(v)) + } + + distanceToSquared(v: Vector2): number + { + const dx: number = this.x - v.x; const dy: number = this.y - v.y + return dx * dx + dy * dy + } + + distanceToManhattan(v: Vector2): number + { + return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + } + + setLength(length: number): Vector2 + { + return this.multiplyScalar(length / this.length()) + } + + lerp(v: Vector2, alpha: number): Vector2 + { + this.x += (v.x - this.x) * alpha + this.y += (v.y - this.y) * alpha + return this + } + + lerpVectors(v1: Vector2, v2: Vector2, alpha: number): Vector2 + { + return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1) + } + + equals(v: Vector2): boolean + { + return ((v.x === this.x) && (v.y === this.y)) + } + + fromArray(array: Float32Array | number[], offset: number = 0): Vector2 + { + this.x = array[offset] + this.y = array[offset + 1] + return this + } + + toArray(array: Float32Array | number[] = [], offset: number = 0): Float32Array | number[] + { + array[offset] = this.x + array[offset + 1] = this.y + return array + } + + fromAttribute(attribute: any, index: number, offset: number = 0): Vector2 + { + index = index * attribute.itemSize + offset + this.x = attribute.array[index] + this.y = attribute.array[index + 1] + return this + } + + rotateAround(center: Vector2, angle: number): Vector2 + { + const c: number = Math.cos(angle); const s: number = Math.sin(angle) + const x: number = this.x - center.x + const y: number = this.y - center.y + this.x = x * c - y * s + center.x + this.y = x * s + y * c + center.y + return this + } +} diff --git a/samples/handleAbility/common/base/CAD.ts b/samples/handleAbility/common/base/CAD.ts new file mode 100644 index 0000000..83c40ea --- /dev/null +++ b/samples/handleAbility/common/base/CAD.ts @@ -0,0 +1,1625 @@ +export class Vector2d +{ + m_X = 0 + m_Y = 0 + + /** 长度 */ + Length = 0 + /** 角度 */ + Angle = 0 + + constructor(x: number, y: number) + { + this.m_X = x + this.m_Y = y + + this.GetLength() + this.GetAngle() + } + + private GetLength() + { + this.Length = Math.sqrt(this.m_X * this.m_X + this.m_Y * this.m_Y) + } + + // 角度 + private GetAngle() + { + let a = Math.atan2(this.m_Y, this.m_X) + if (a < 0) + a = Math.PI * 2 + a + this.Angle = a + } + + Normal(): Vector2d + { + if (this.Length != 0) + { + let k = 1 / this.Length + this.m_X *= k + this.m_Y *= k + this.Length = 1 + } + return this + } + + static OpDivide(v: Vector2d, c: number): Vector2d + { + return new Vector2d(v.m_X / c, v.m_Y / c) + } + + static OpMultiply(v: Vector2d, c: number): Vector2d + { + return new Vector2d(v.m_X * c, v.m_Y * c) + } + + static OpAdd(v1: Vector2d, v2: Vector2d): Vector2d + { + return new Vector2d(v1.m_X + v2.m_X, v1.m_Y + v2.m_Y) + } + + static OpMultiplyValue(v1: Vector2d, v2: Vector2d): number + { + return v1.m_X * v2.m_X + v1.m_Y * v2.m_Y + } + + /** 点积 */ + DotProduct(v1: Vector2d): number + { + return Vector2d.OpMultiplyValue(this, v1) + } + + /** 叉积 */ + CrossProduct(v: Vector2d): number + { + return this.m_X * v.m_Y - this.m_Y * v.m_X + } + + IsEqual(v: Vector2d, fuzz = 1e-3): boolean + { + return DoubleUtil.EqualX(this.m_X, v.m_X, fuzz) && DoubleUtil.EqualX(this.m_Y, v.m_Y, fuzz) + } + + /** 返回和另外一个向量的夹角 */ + AngleTo(v: Vector2d): number + { + let an = Math.abs(this.Angle - v.Angle) + if (DoubleUtil.EqualX(v.Length, 0, 1e-5) || DoubleUtil.EqualX(this.Length, 0, 1e-5)) + { + return -Math.PI// 随缘给 + } + else if (Math.abs(Math.sin(an)) < 0) + { + return this.Normal().IsEqual(v.Normal()) ? 0 : Math.PI + } + else + { + let p0 = new Point2d(0, 0) + let p1 = Point2d.OpAdd(new Point2d(0, 0), this) + let p2 = Point2d.OpAdd(new Point2d(0, 0), v) + let s = this.sign(Utils.Det(p1, p0, p2)) + if (an > Math.PI) + { + return ((2 * Math.PI) - an) * s + } + else + { + return an * s + } + } + } + + private sign(x: number): number + { + if (x == 0) + { + return 0 + } + else if (x > 0) + { + return -1 + } + else + { + return 1 + } + } +} + +/** CAD 点 */ +export class Point2d +{ + m_X = 0 + m_Y = 0 + + constructor(x: number, y: number) + { + this.m_X = x + this.m_Y = y + } + + DistensTo(pt: Point2d): number + { + return Point2d.OpSubtract(pt, this).Length + } + + Polar(angle: number, distens: number): Point2d + { + let x1 = this.m_X + Math.cos(angle) * distens + let y1 = this.m_Y + Math.sin(angle) * distens + return new Point2d(x1, y1) + } + + Mid(pt: Point2d): Point2d + { + return new Point2d((this.m_X + pt.m_X) * 0.5, (this.m_Y + pt.m_Y) * 0.5) + } + + AsVector(): Vector2d + { + return new Vector2d(this.m_X, this.m_Y) + } + + /** 减以 - */ + static OpSubtract(p1: Point2d, p2: Point2d): Vector2d + { + return new Vector2d(p1.m_X - p2.m_X, p1.m_Y - p2.m_Y) + } + + static OpAdd(p1: Point2d, p2: Vector2d): Point2d + { + return new Point2d(p1.m_X + p2.m_X, p1.m_Y + p2.m_Y) + } +} + +function equaln(v1: number, v2: number, fuzz = 1e-5) +{ + return Math.abs(v1 - v2) <= fuzz +} +function equalp(v1: Point2d, v2: Point2d, fuzz = 1e-5) +{ + return equaln(v1.m_X, v2.m_X, fuzz) && equaln(v1.m_Y, v2.m_Y, fuzz) +} + +/** 二维曲线:直线,圆弧 */ +export abstract class Curve2d +{ + // 求交点 + abstract IntersectWith(cu: Curve2d, retIns: Point2d[]): void + abstract Offset(distens: number): Curve2d + + // 点在线内部 + abstract PtInCurve(pt: Point2d): boolean + abstract ClosePointTo(pt: Point2d): Point2d + + // 获得参数 返回0或1 + abstract GetParametersAt(pt: Point2d): number + + abstract Parse() + + PtOnCurve(p: Point2d): boolean + { + return equalp(p, this.m_StartPoint) || equalp(p, this.m_EndPoint) || this.ParamOnCurve(this.GetParametersAt(p)) + } + + ParamOnCurve(param: number, fuzz = 1e-6): boolean { return !Number.isNaN(param) && param >= -fuzz && param <= 1 + fuzz } + + get EndPoint(): Point2d + { + return this.m_EndPoint + } + + set EndPoint(p: Point2d) + { + this.m_EndPoint = p + try + { + this.Parse() + } catch (error) + { + + } + } + + get StartPoint(): Point2d + { + return this.m_StartPoint + } + + set StartPoint(p: Point2d) + { + this.m_StartPoint = p + try + { + this.Parse() + } catch (error) + { + + } + } + + protected m_StartPoint: Point2d + protected m_EndPoint: Point2d + tagData: number // 特殊数据 异形边 封边值 + tagData2: number // 特殊数据 侧孔数 +} + +/** 直线 */ +export class Line2d extends Curve2d +{ + get toString() + { + return `[${this.m_StartPoint.m_X.toFixed(1)},${this.m_StartPoint.m_Y.toFixed(1)}] [${this.m_EndPoint.m_X.toFixed(1)},${this.m_EndPoint.m_Y.toFixed(1)}]` + } + + constructor(p1: Point2d, p2: Point2d) + { + super() + this.m_StartPoint = p1 + this.m_EndPoint = p2 + this.Parse() + } + + /** 求交点 */ + IntersectWith(cu: Curve2d, retIns: Point2d[]) + { + if (cu instanceof Line2d) + { + let l = cu as Line2d + let dx1 = this.StartPoint.m_X - this.EndPoint.m_X + let dx2 = l.StartPt.m_X - l.EndPt.m_X + let dx3 = l.EndPt.m_X - this.EndPoint.m_X + let dy1 = this.StartPoint.m_Y - this.EndPoint.m_Y + let dy2 = l.StartPt.m_Y - l.EndPt.m_Y + let dy3 = l.EndPt.m_Y - this.EndPoint.m_Y + + let det = (dx2 * dy1) - (dy2 * dx1) + let pt = new Point2d(0, 0) + + if (DoubleUtil.EqualX(det, 0.0, 1e-5)) + { + if (DoubleUtil.EqualX(dx2 * dy3, dy2 * dx3, 1e-5)) + { + if (l.StartPoint.DistensTo(this.EndPoint) < 1e-3) + { + retIns.push(this.EndPoint) + } + } + return + } + + let ratio = ((dx1 * dy3) - (dy1 * dx3)) / det + pt.m_X = (ratio * dx2) + l.EndPt.m_X + pt.m_Y = (ratio * dy2) + l.EndPt.m_Y + retIns.push(pt) + } + else + { + let arc = cu as Arc2d + arc.IntersectWith(this, retIns) + } + } + + /** 偏移 */ + Offset(distens: number): Curve2d + { + let an = Point2d.OpSubtract(this.EndPt, this.StartPt).Angle - Math.PI * 0.5 + return new Line2d(this.StartPt.Polar(an, distens), this.EndPt.Polar(an, distens)) + } + + /** 判断点在线内 */ + PtInCurve(pt: Point2d): boolean + { + // 首先判断平行 + let minX = Math.min(this.m_StartPoint.m_X, this.m_EndPoint.m_X) + let maxX = Math.max(this.m_StartPoint.m_X, this.m_EndPoint.m_X) + + if (DoubleUtil.EqualX(minX, maxX, 1e-3)) + { + let minY = Math.min(this.m_StartPoint.m_Y, this.m_EndPoint.m_Y) + let maxY = Math.max(this.m_StartPoint.m_Y, this.m_EndPoint.m_Y) + return (pt.m_Y >= minY - 1e-4 && pt.m_Y <= maxY + 1e-4) + } + + if (pt.m_X >= minX - 0.0001 && pt.m_X <= maxX + 0.0001) + { + let vec = Point2d.OpSubtract(this.m_EndPoint, this.m_StartPoint)// 标准向量 + let k = vec.m_Y / vec.m_X + return DoubleUtil.EqualX(this.m_StartPoint.m_Y + k * (pt.m_X - this.m_StartPoint.m_X), pt.m_Y, 0.01) + } + else + { + return false + } + } + + ClosePointTo(pt: Point2d): Point2d + { + let an = Point2d.OpSubtract(this.m_EndPoint, this.m_StartPoint).Angle + Math.PI / 2 + let vec = new Point2d(0, 0).Polar(an, 1).AsVector() + let p2 = Point2d.OpAdd(pt, vec) + let line = new Line2d(pt, p2) + let ptLst: Point2d[] = [] + this.IntersectWith(line, ptLst) + return ptLst[0] + } + + Parse() + { + if (this.EndPoint != null) + { + this.m_Length = this.StartPoint.DistensTo(this.EndPoint) + } + } + + GetParametersAt(pt: Point2d): number + { + let nearPt = this.ClosePointTo(pt) + + let vec = Point2d.OpSubtract(nearPt, this.m_StartPoint) + let vec2 = Point2d.OpSubtract(this.EndPoint, this.StartPoint) + + let an = vec.DotProduct(vec2) + + return Math.sign(an) * vec.Length / this.m_Length + } + + get StartPt(): Point2d { return this.StartPoint } + get EndPt(): Point2d { return this.EndPoint } + + m_Length: number + + static New(x0: number, y0: number, x1: number, y1: number): Line2d + { + let p0 = new Point2d(x0, y0) + let p1 = new Point2d(x1, y1) + return new Line2d(p0, p1) + } +} + +/** 圆弧 */ +export class Arc2d extends Curve2d +{ + constructor(p1: Point2d, p2: Point2d, bul: number) + { + super() + this.m_StartPoint = p1 + this.m_EndPoint = p2 + + this.m_Bul = bul + let vec = Point2d.OpSubtract(p2, p1) + let an = vec.Angle + let length = vec.Length + + this.m_Radius = length / Math.sin(2 * Math.atan(bul)) / 2 + this.m_AllAngle = Math.atan(bul) * 4 + let delDis = bul * length / 2 + + let toDis = this.m_Radius - delDis + + an += Math.PI * 0.5 + + this.m_Center = p1.Mid(p2) + this.m_Center = this.m_Center.Polar(an, toDis) + + this.m_StartAngle = Point2d.OpSubtract(this.StartPoint, this.m_Center).Angle + this.m_EndAngle = Point2d.OpSubtract(this.EndPoint, this.m_Center).Angle + + if (this.m_Bul < 0) + this.m_Radius = Math.abs(this.m_Radius) + } + + /** 圆心 */ + m_Center: Point2d + /** 半径 */ + m_Radius: number + /** 起始弧度 */ + m_StartAngle: number + /** 结束弧度 */ + m_EndAngle: number + /** 所有的弧度 */ + m_AllAngle: number + + IntersectWith(cu: Curve2d, retIns: Point2d[]) + { + if (cu instanceof Line2d) + { + let l = cu as Line2d + let a = DoubleUtil.Sqr(l.EndPt.m_X - l.StartPt.m_X) + DoubleUtil.Sqr(l.EndPt.m_Y - l.StartPt.m_Y) + + let b = (2.0) * ((l.EndPt.m_X - l.StartPt.m_X) * (l.StartPt.m_X - this.m_Center.m_X) + + (l.EndPt.m_Y - l.StartPt.m_Y) * (l.StartPt.m_Y - this.m_Center.m_Y)) + + let c = DoubleUtil.Sqr(this.m_Center.m_X) + DoubleUtil.Sqr(this.m_Center.m_Y) + + DoubleUtil.Sqr(l.StartPt.m_X) + DoubleUtil.Sqr(l.StartPt.m_Y) + - (2.0) * (this.m_Center.m_X * l.StartPt.m_X + this.m_Center.m_Y * l.StartPt.m_Y) - DoubleUtil.Sqr(this.m_Radius) + + let det = b * b - (4.0) * a * c + + if (DoubleUtil.EqualX(det, 0.0, 0.1)) + { + let delta = -b / ((2.0) * a) + + let pt = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + retIns.push(pt) + return + } + else if (det > (0.0)) + { + let sqrt_det = Math.sqrt(det) + let delta = (-b + sqrt_det) / ((2.0) * a) + let p2 = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + + delta = (-b - sqrt_det) / ((2.0) * a) + let p3 = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + + retIns.push(p2) + retIns.push(p3) + return + } + } + else if (cu instanceof Arc2d) + { + let arc = cu as (Arc2d) + let dist = arc.m_Center.DistensTo(this.m_Center) + + if (dist < Math.abs(this.m_Radius - cu.m_Radius) - 1e-3 + || dist > (this.m_Radius + cu.m_Radius + 1e-3)) + return + + let dstsqr = dist * dist + let r1sqr = this.m_Radius * this.m_Radius + let r2sqr = arc.m_Radius * arc.m_Radius + + let a = (dstsqr - r2sqr + r1sqr) / (2 * dist) + let h = Math.sqrt(Math.abs(r1sqr - (a * a))) + + let ratio_a = a / dist + let ratio_h = h / dist + + let dx = arc.m_Center.m_X - this.m_Center.m_X + let dy = arc.m_Center.m_Y - this.m_Center.m_Y + + let phix = this.m_Center.m_X + (ratio_a * dx) + let phiy = this.m_Center.m_Y + (ratio_a * dy) + + dx = dx * ratio_h + dy = dy * ratio_h + + let pt = new Point2d(phix + dy, phiy - dx) + let p2 = new Point2d(phix - dy, phiy + dx) + retIns.push(pt) + retIns.push(p2) + } + } + + Offset(distens: number): Curve2d + { + let rn = new Arc2d(new Point2d(0, 0), new Point2d(0, 0), 0) + rn.m_Center = this.m_Center + rn.m_Radius = this.m_Radius + rn.m_StartAngle = this.m_StartAngle + rn.m_EndAngle = this.m_EndAngle + if (this.m_Bul > 0) + rn.m_Radius += distens + else + rn.m_Radius -= distens + rn.Bul = this.m_Bul + rn.ParsePointFormAngle() + return rn + } + + Parse() + { + // 解析角度 + this.ParseAngleFormPoint() + this.ParseAllAngle() + this.ParseBul() + } + + ParseAllAngle() + { + this.m_AllAngle = this.ComputeAnlge(this.m_EndAngle) + } + + ComputeAnlge(endAngle: number) + { + // 顺时针 + if (this.m_Bul < 0) + { + if (this.m_StartAngle > endAngle) + return this.m_StartAngle - endAngle + else // 越过0点绘制圆弧 + return (Math.PI * 2) - (endAngle - this.m_StartAngle) + } + else + { + if (endAngle > this.m_StartAngle) + return endAngle - this.m_StartAngle + else + return (Math.PI * 2) - (this.m_StartAngle - endAngle) + } + } + + ParseBul() + { + this.m_Bul = Math.tan(this.m_AllAngle * 0.25) * (this.m_Bul < 0 ? -1 : 1) + } + + ParsePointFormAngle() + { + this.m_StartPoint = this.m_Center.Polar(this.m_StartAngle, this.m_Radius) + this.m_EndPoint = this.m_Center.Polar(this.m_EndAngle, this.m_Radius) + } + + ParseAngleFormPoint() + { + this.m_StartAngle = Point2d.OpSubtract(this.StartPoint, this.m_Center).Angle + this.m_EndAngle = Point2d.OpSubtract(this.EndPoint, this.m_Center).Angle + } + + PtInCurve(pt: Point2d): boolean + { + let param = this.GetParametersAt(pt) + return param > -1e-3 && param < 1.0001 + } + + ClosePointTo(pt: Point2d): Point2d + { + return null + } + + GetParametersAt(pt: Point2d): number + { + let vec = Point2d.OpSubtract(pt, this.m_Center) + let an = vec.Angle + this.ParseAllAngle() + + // 如果以pt为终点,那么所有的角度为 + let ptAllAn = this.ComputeAnlge(an) + let allAn = this.m_AllAngle + + // 减去圆弧角度,剩余角度的一半 + let surplusAngleHalf = Math.PI - allAn / 2 + + if (ptAllAn > allAn + surplusAngleHalf)// 返回负数 + return ((ptAllAn - allAn) - (surplusAngleHalf * 2)) / allAn + else// 返回正数 + return ptAllAn / allAn + } + + GetAngleAtParam(param: number) + { + return this.clampRad(this.m_StartAngle + param * this.m_AllAngle) + } + + private clampRad(an: number) + { + an = an % (Math.PI * 2) + if (an < 0) + an += Math.PI * 2 + return an + } + + /** 凸度. */ + m_Bul: number + get Bul() { return this.m_Bul } + set Bul(v: number) { this.m_Bul = v } + + static New(x0: number, y0: number, x1: number, y1: number, bul: number): Arc2d + { + return new Arc2d(new Point2d(x0, y0), new Point2d(x1, y1), bul) + } +} +/** 圆弧 */ +export class Arc2d_new extends Curve2d +{ + constructor(p1: Point2d, p2: Point2d, bul: number) + { + super() + this.m_StartPoint = p1 + this.m_EndPoint = p2 + + this.m_Bul = bul + let vec = Point2d.OpSubtract(p2, p1) + let an = vec.Angle + let length = vec.Length + + this.m_Radius = length / Math.sin(2 * Math.atan(bul)) / 2 + this.m_AllAngle = Math.atan(bul) * 4 + let delDis = bul * length / 2 + + let toDis = this.m_Radius - delDis + + an += Math.PI * 0.5 + + this.m_Center = p1.Mid(p2) + this.m_Center = this.m_Center.Polar(an, toDis) + + this.m_StartAngle = Point2d.OpSubtract(this.StartPoint, this.m_Center).Angle + this.m_EndAngle = Point2d.OpSubtract(this.EndPoint, this.m_Center).Angle + + if (this.m_Bul < 0) + this.m_Radius = Math.abs(this.m_Radius) + } + + /** 圆心 */ + m_Center: Point2d + /** 半径 */ + m_Radius: number + /** 起始弧度 */ + m_StartAngle: number + /** 结束弧度 */ + m_EndAngle: number + /** 所有的弧度 */ + m_AllAngle: number + + IntersectWith(cu: Curve2d, retIns: Point2d[]) + { + if (cu instanceof Line2d) + { + let l = cu as Line2d + let a = DoubleUtil.Sqr(l.EndPt.m_X - l.StartPt.m_X) + DoubleUtil.Sqr(l.EndPt.m_Y - l.StartPt.m_Y) + + let b = (2.0) * ((l.EndPt.m_X - l.StartPt.m_X) * (l.StartPt.m_X - this.m_Center.m_X) + + (l.EndPt.m_Y - l.StartPt.m_Y) * (l.StartPt.m_Y - this.m_Center.m_Y)) + + let c = DoubleUtil.Sqr(this.m_Center.m_X) + DoubleUtil.Sqr(this.m_Center.m_Y) + + DoubleUtil.Sqr(l.StartPt.m_X) + DoubleUtil.Sqr(l.StartPt.m_Y) + - (2.0) * (this.m_Center.m_X * l.StartPt.m_X + this.m_Center.m_Y * l.StartPt.m_Y) - DoubleUtil.Sqr(this.m_Radius) + + let det = b * b - (4.0) * a * c + + if (DoubleUtil.EqualX(det, 0.0, 0.1)) + { + let delta = -b / ((2.0) * a) + + let pt = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + retIns.push(pt) + return + } + else if (det > (0.0)) + { + let sqrt_det = Math.sqrt(det) + let delta = (-b + sqrt_det) / ((2.0) * a) + let p2 = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + + delta = (-b - sqrt_det) / ((2.0) * a) + let p3 = new Point2d(l.StartPt.m_X + delta * (l.EndPt.m_X - l.StartPt.m_X), l.StartPt.m_Y + delta * (l.EndPt.m_Y - l.StartPt.m_Y)) + + retIns.push(p2) + retIns.push(p3) + return + } + } + else if (cu instanceof Arc2d) + { + let arc = cu as (Arc2d) + let dist = arc.m_Center.DistensTo(this.m_Center) + + if (dist < Math.abs(this.m_Radius - cu.m_Radius) - 1e-3 + || dist > (this.m_Radius + cu.m_Radius + 1e-3)) + return + + let dstsqr = dist * dist + let r1sqr = this.m_Radius * this.m_Radius + let r2sqr = arc.m_Radius * arc.m_Radius + + let a = (dstsqr - r2sqr + r1sqr) / (2 * dist) + let h = Math.sqrt(Math.abs(r1sqr - (a * a))) + + let ratio_a = a / dist + let ratio_h = h / dist + + let dx = arc.m_Center.m_X - this.m_Center.m_X + let dy = arc.m_Center.m_Y - this.m_Center.m_Y + + let phix = this.m_Center.m_X + (ratio_a * dx) + let phiy = this.m_Center.m_Y + (ratio_a * dy) + + dx = dx * ratio_h + dy = dy * ratio_h + + let pt = new Point2d(phix + dy, phiy - dx) + let p2 = new Point2d(phix - dy, phiy + dx) + retIns.push(pt) + retIns.push(p2) + } + } + + Offset(distens: number): Curve2d + { + let rn = new Arc2d(new Point2d(0, 0), new Point2d(0, 0), 0) + rn.m_Center = this.m_Center + rn.m_Radius = this.m_Radius + rn.m_StartAngle = this.m_StartAngle + rn.m_EndAngle = this.m_EndAngle + if (this.m_Bul > 0) + rn.m_Radius += distens + else + rn.m_Radius -= distens + rn.Bul = this.m_Bul + rn.ParsePointFormAngle() + return rn + } + + Parse() + { + // 解析角度 + this.ParseAngleFormPoint() + this.ParseAllAngle() + this.ParseBul() + } + + ParseAllAngle() + { + this.m_AllAngle = this.ComputeAnlge(this.m_EndAngle) + } + + ComputeAnlge(endAngle: number) + { + // 顺时针 + if (this.m_Bul < 0) + { + if (this.m_StartAngle > endAngle) + return this.m_StartAngle - endAngle + else // 越过0点绘制圆弧 + return (Math.PI * 2) - (endAngle - this.m_StartAngle) + } + else + { + if (endAngle > this.m_StartAngle) + return endAngle - this.m_StartAngle + else + return (Math.PI * 2) - (this.m_StartAngle - endAngle) + } + } + + ParseBul() + { + this.m_Bul = Math.tan(this.m_AllAngle * 0.25) * (this.m_Bul < 0 ? -1 : 1) + } + + ParsePointFormAngle() + { + this.m_StartPoint = this.m_Center.Polar(this.m_StartAngle, this.m_Radius) + this.m_EndPoint = this.m_Center.Polar(this.m_EndAngle, this.m_Radius) + } + + ParseAngleFormPoint() + { + this.m_StartAngle = Point2d.OpSubtract(this.StartPoint, this.m_Center).Angle + this.m_EndAngle = Point2d.OpSubtract(this.EndPoint, this.m_Center).Angle + } + + PtInCurve(pt: Point2d): boolean + { + let param = this.GetParametersAt(pt) + return param > -1e-3 && param < 1.0001 + } + + ClosePointTo(pt: Point2d): Point2d + { + return null + } + + GetParametersAt(pt: Point2d): number + { + let vec = Point2d.OpSubtract(pt, this.m_Center) + let an = vec.Angle + this.ParseAllAngle() + + // 如果以pt为终点,那么所有的角度为 + let ptAllAn = this.ComputeAnlge(an) + let allAn = this.m_AllAngle + + // 减去圆弧角度,剩余角度的一半 + let surplusAngleHalf = Math.PI - allAn / 2 + + if (ptAllAn > allAn + surplusAngleHalf)// 返回负数 + return ((ptAllAn - allAn) - (surplusAngleHalf * 2)) / allAn + else// 返回正数 + return ptAllAn / allAn + } + + GetAngleAtParam(param: number) + { + return this.clampRad(this.m_StartAngle + param * this.m_AllAngle) + } + + private clampRad(an: number) + { + an = an % (Math.PI * 2) + if (an < 0) + an += Math.PI * 2 + return an + } + + /** 凸度. */ + m_Bul: number + get Bul() { return this.m_Bul } + set Bul(v: number) { this.m_Bul = v } + + static New(x0: number, y0: number, x1: number, y1: number, bul: number): Arc2d + { + return new Arc2d(new Point2d(x0, y0), new Point2d(x1, y1), bul) + } +} +function EntityEncode(c: Curve2d) +{ + if (c instanceof Line2d) + return 1 + else return 2 +} +function EntityEncode2(c1: Curve2d, c2: Curve2d) +{ + return EntityEncode(c1) & EntityEncode(c2) +} + +/** CAD 运算库 */ +export class Utils +{ + static Intersec(e1: Curve2d, e2: Curve2d, oldE1: Curve2d): Point2d + { + if (e1.EndPoint.DistensTo(e2.StartPoint) < 1e-2) + { + return e1.EndPoint + } + let ptsIns: Point2d[] = [] + e1.IntersectWith(e2, ptsIns) + if (ptsIns.length == 1) + { + return ptsIns[0] + } + else if (ptsIns.length == 2) + { + // 求一个最近的点. + let pt = oldE1.EndPoint + let d1 = pt.DistensTo(ptsIns[0]) + let d2 = pt.DistensTo(ptsIns[1]) + return d1 < d2 ? ptsIns[0] : ptsIns[1] + } + else // 0点 + { + return null + } + } + + /** 曲线偏移 */ + + static offsetPoints(points, offsetDistens: number): any[] + { + let ens: Curve2d[] = [] + for (let i = 0; i < points.length; i++) + { + let j = i + 1 + if (j == points.length) + j = 0 + + let line = new Line2d(new Point2d(points[i].x, points[i].y), new Point2d(points[j].x, points[j].y)) + if (line.m_Length == 0) + continue + ens.push(line) + } + + let ens2 = Utils.OffsetCurveList(ens, offsetDistens) + + let newPs = [] + for (let c of ens2) + { + newPs.push({ x: c.StartPoint.m_X, y: c.StartPoint.m_Y }) + } + return newPs + } + + // 1.曲线外偏移. + //* 2.曲线尝试首尾相连 + //* ->如果两条不相连,导致曲线连接失败,将添加圆弧过度 + //* + //* 2017-11-17对曲线相连算法进行修改. + //* 现在会先求出连接点,然后在重新进行曲线连接,避免连接点出错. 参见#118 + static OffsetCurveList(ens: Curve2d[], offsetDistens: number): Curve2d[] + { + // 只处理偏移的曲线 + let offEns: Curve2d[] = [] + + ens = ens.filter(e => e.StartPoint.DistensTo(e.EndPoint) > 0.05) + for (const item of ens) + { + offEns.push(item.Offset(offsetDistens)) + } + // 处理偏移 并且对交点进行处理 + let offEns2: Curve2d[] = [] + let linkPts: Point2d[] = [] + + // 计算链接点,如果有必要会新增圆弧 + for (let i = 0; i < offEns.length; i++) + { + let index2 = i + 1 == offEns.length ? 0 : i + 1 + + let e1 = offEns[i] + let e2 = offEns[index2] + + offEns2.push(offEns[i]) + + let iPts: Point2d[] = [] + e1.IntersectWith(e2, iPts) + let tPts = iPts.filter(p => e1.PtOnCurve(p) && e2.PtOnCurve(p)) + + let code = EntityEncode2(e1, e2) + if (code === 1) + { + if (tPts.length > 0) + linkPts.push(tPts[0])// 直接连接 + else + { + let refP = ens[i].EndPoint + let distSq = iPts[0].DistensTo(refP) + if (distSq > offsetDistens ** 2 * 2.1) // 补圆弧 + { + let arc = new Arc2d(e1.EndPoint, e2.StartPoint, Math.sign(offsetDistens)) + arc.m_Center = ens[i].EndPoint + arc.m_Radius = offsetDistens// 半径 + + linkPts.push(e1.EndPoint) + linkPts.push(e2.StartPoint) + offEns2.push(arc)// 添加圆弧. + } + else + linkPts.push(iPts[0]) + } + } + else if ( + code === 2 + && ( + equalp((e1).m_Center, (e2).m_Center, 0.1) // 都是圆弧,且同心圆(由于精度丢失,这里我们给0.01的容差) + || equalp(e1.EndPoint, e2.StartPoint, 0.1)) + ) + linkPts.push(e1.EndPoint) + else + { + function SelectNearP(pts: Point2d[], refPt: Point2d): Point2d + { + if (pts.length > 1) + { + let dist1 = refPt.DistensTo(pts[0]) + let dist2 = refPt.DistensTo(pts[1]) + return dist1 <= dist2 ? pts[0] : pts[1] + } + return pts[0] + } + + let refP = ens[i].EndPoint + if (tPts.length > 0) + linkPts.push(SelectNearP(iPts, refP))// 直接连接 + else + { + let arc = new Arc2d(e1.EndPoint, e2.StartPoint, Math.sign(offsetDistens)) + arc.m_Center = ens[i].EndPoint + arc.m_Radius = offsetDistens// 半径 + + linkPts.push(e1.EndPoint) + linkPts.push(e2.StartPoint) + offEns2.push(arc)// 添加圆弧. + } + } + } + + // 更新链接点位置 + for (let i = 0; i < offEns2.length; i++) + { + offEns2[i].EndPoint = linkPts[i] + let nextIndex = i == offEns2.length - 1 ? 0 : i + 1 + offEns2[nextIndex].StartPoint = linkPts[i] + } + + // 测试数据 + // TestPolyline([ens, offEns2]) + + return offEns2 + } + + /** //自交曲线优化 去除自交部分. */ + static RemoveSelfIntersect(cus: Curve2d[]): Curve2d[] + { + let res = new Array() + let cout = cus.length + for (let i = 0; i < cout; i++) + { + let cu = cus[i] + res.push(cu) + for (let j = cout - 2; j > i + 1; j--) + { + let cu2 = cus[j] + + let pts = new Array() + cu.IntersectWith(cu2, pts) + + // + if (pts.length == 0) + { + continue + } + if (pts.length == 2) + { + if (cu instanceof Line2d) + { + if (cu.GetParametersAt(pts[0]) > cu.GetParametersAt(pts[1])) + { + pts[0] = pts[1] + } + } + else if (cu instanceof Arc2d) + { + // 使用上一条线. 因为我们保证它和上一条线是有一个交点的 + + let arc = cu as Arc2d + + // last cu + let lastIndex = i - 1 + if (i == 0) + lastIndex = cout - 1 + + let lastCu = cus[lastIndex] + + let insPts = new Array() + lastCu.IntersectWith(cu, insPts) + + for (let insP of insPts) + { + let p1 = arc.GetParametersAt(insP) + let p2 = arc.GetParametersAt(insP) + // 从起点圆弧开始 + if (insP.DistensTo(cu.StartPoint) < 1e-3) + { + if (p1 > p2) + { + pts[0] = pts[1] + } + break + } + // 从终点圆弧开始. + else if (insP.DistensTo(cu.EndPoint) < 1e-3) + { + if (p1 < p2) + { + pts[0] = pts[1] + } + break + } + } + } + } + + if (cu.PtInCurve(pts[0]) && cu2.PtInCurve(pts[0])) + { + Utils.changeP(cus, cu, i, -1, pts[0]) + Utils.changeP(cus, cu, j, 1, pts[0]) + + i = j - 1 + break + } + } + } + + Utils.RemoveZeroCurve(res) + return res + } + + static changeP(cus: Curve2d[], cu: Curve2d, index: number, next: number, _pt: Point2d) + { + let cout = cus.length + let lastIndex = index + next + + let _cu = cus[index] + if (lastIndex == -1) + lastIndex = cout - 1 + else if (lastIndex == cout) + lastIndex = 0 + + let lastCu = cus[lastIndex] + + let insPts = new Array() + lastCu.IntersectWith(_cu, insPts) + + for (const insP of insPts) + { + if (insP.DistensTo(_cu.StartPoint) < 1e-3) + { + _cu.EndPoint = _pt + break + } + else if (insP.DistensTo(_cu.EndPoint) < 1e-3) + { + _cu.StartPoint = _pt + break + } + } + if (cu instanceof Arc2d) + { + cu.Parse() + } + } + + static RemoveZeroCurve(cus: Curve2d[]) + { + // remove zero length curve + /* + cus.RemoveAll((Curve2d o) => + { + if (o is Line2d) + { + return ((Line2d)o).m_Length < 1e-3; + } + else if (o is Arc2d) + { + return ((Arc2d)o).m_AllAngle < 1e-3; + } + return false; + }); + */ + + let length = cus.length + let isZero = false + for (let i = length - 1; i >= 0; i--) + { + let o = cus[i] + + isZero = false + if (o instanceof Line2d) + { + let line = o as Line2d + isZero = line.m_Length < 1e-3 + } + else if (o instanceof Arc2d) + { + let arc = o as Arc2d + isZero = arc.m_AllAngle < 1e-3 + } + + if (isZero) + { + cus.splice(i, 1) + } + } + } + + /** 曲线倒角 */ + static FilletCurveList(culist: Curve2d[], offsetDistens: number): Curve2d[] + { + /* + let rn = new List(); + let len = cuList.Count; + for (int i = 0; i < len; i++) + { + let en = cuList[i]; + let index =i==len-1 ? 0 : i + 1; + rn.Add(en); + if (en is Line2d && cuList[index] is Line2d) + { + let l1 = en as Line2d; + let l2 = cuList[index] as Line2d; + if (l1.m_Length < offsetDistens || l2.m_Length < offsetDistens + || (l1.EndPoint-l1.StartPoint).CrossProduct(l2.EndPoint-l2.StartPoint) <1e-3 + ) + { + continue; + } + + let tempEn1 = en.Offset(-offsetDistens) as Line2d; + let tempEn2 = cuList[index].Offset(-offsetDistens)as Line2d; + + let pts = new List(); + tempEn1.IntersectWith(tempEn2, pts); + if (pts.Count>0 && tempEn1.PtInCurve(pts.First())) + { + let pt = pts.First(); + //求交点. + en.EndPoint= en.ClosePointTo(pt); + let en2 = cuList[index]; + en2.StartPoint = en2.ClosePointTo(pt); + + let arc2d = new Arc2d(en.EndPoint, en2.StartPoint, 1);//凸圆弧 + arc2d.m_Center = pt; + arc2d.m_Radius = pt.DistensTo(en.EndPoint); + arc2d.Parse();//解析凸度 角度 + rn.Add(arc2d); + } + } + } + return rn; + */ + + let rn = new Array() + let len = culist.length + for (let i = 0; i < len; i++) + { + let en = culist[i] + let index = i == len - 1 ? 0 : i + 1 + rn.push(en) + + if (en instanceof Line2d && culist[index] instanceof Line2d) + { + let l1 = en as Line2d + let l2 = culist[index] as Line2d + if (l1.m_Length < offsetDistens || l2.m_Length < offsetDistens + || (Point2d.OpSubtract(l1.EndPoint, l1.StartPoint)).CrossProduct(Point2d.OpSubtract(l2.EndPoint, l2.StartPoint)) < 1e-3 + ) + { + continue + } + + let tempEn1 = en.Offset(-offsetDistens) as Line2d + let tempEn2 = culist[index].Offset(-offsetDistens) as Line2d + + let pts = new Array() + tempEn1.IntersectWith(tempEn2, pts) + if (pts.length > 0 && tempEn1.PtInCurve(pts[0])) + { + let pt = pts[0] + // 求交点. + en.EndPoint = en.ClosePointTo(pt) + let en2 = culist[index] + en2.StartPoint = en2.ClosePointTo(pt) + + let arc2d = new Arc2d(en.EndPoint, en2.StartPoint, 1)// 凸圆弧 + arc2d.m_Center = pt + arc2d.m_Radius = pt.DistensTo(en.EndPoint) + arc2d.Parse()// 解析凸度 角度 + rn.push(arc2d) + } + } + } + return rn + } + + /** 圆弧细分 如果大于90度则分割 */ + static SplitCurveListArc(cuList: Curve2d[]): Curve2d[] + { + /* C# 代码 + let rnList = new List();//返回的曲线表 + foreach (let cu in cuList) + { + if (cu is Arc2d) + { + let arc = cu as Arc2d; + arc.Parse();//解析圆弧的凸度 角度 + if (arc.m_AllAngle > Math.PI * 0.5) + { + int cout =(int)( arc.m_AllAngle / (Math.PI * 0.5)) + 1; + let an = arc.m_AllAngle / cout; + let startAn = arc.m_StartAngle; + for (int i = 0; i < cout; i++) + { + let arcNew = new Arc2d(arc.StartPoint, arc.EndPoint, 0); + arcNew.m_Radius = arc.m_Radius; + arcNew.m_Center = arc.m_Center; + arcNew.m_StartAngle = startAn; + arcNew.m_EndAngle = arcNew.m_StartAngle + an; + startAn = arcNew.m_EndAngle; + rnList.Add(arcNew); + } + } + else + { + rnList.Add(cu); + } + } + else + { + rnList.Add(cu); + } + } + return rnList; + + */ + let rnList = new Array()// 返回的曲线表 + for (let cu of cuList) + { + if (cu instanceof Arc2d) + { + let arc = cu as Arc2d + arc.Parse()// 解析圆弧的凸度 角度 + if (arc.m_AllAngle > Math.PI * 0.5) + { + let cout = arc.m_AllAngle / (Math.PI * 0.5) + 1 + let an = arc.m_AllAngle / cout + let startAn = arc.m_StartAngle + for (let i = 0; i < cout; i++) + { + let arcNew = new Arc2d(arc.StartPoint, arc.EndPoint, 0) + arcNew.m_Radius = arc.m_Radius + arcNew.m_Center = arc.m_Center + arcNew.m_StartAngle = startAn + arcNew.m_EndAngle = arcNew.m_StartAngle + an + startAn = arcNew.m_EndAngle + rnList.push(arcNew) + } + } + else + { + rnList.push(cu) + } + } + else + { + rnList.push(cu) + } + } + return rnList + } + + // 三点面积 + static Det(p1: Point2d, p2: Point2d, p3: Point2d): number + { + return this.Det2(p1.AsVector(), p2.AsVector(), p3.AsVector()) + } + + // 三点面积 + static Det2(p1: Vector2d, p2: Vector2d, p3: Vector2d): number + { + return p1.CrossProduct(p2) + p2.CrossProduct(p3) + p3.CrossProduct(p1) + } + + // + static AngleForm3Pt(pSrc: Point2d, p1: Point2d, p2: Point2d): number + { + /* + double angle = 0.0f; // 夹角 + + let vec1 = p1 - pSrc; + let vec2 = p2 - pSrc; + + double productValue = vec1 * vec2; + double cosValue = productValue / (vec1.Length * vec2.Length); // 余弦公式 + + // acos的输入参数范围必须在[-1, 1]之间,否则会"domain error" + // 对输入参数作校验和处理 + if (cosValue < -1 && cosValue > -2) + cosValue = -1; + else if (cosValue > 1 && cosValue < 2) + cosValue = 1; + + // acos返回的是弧度值,转换为角度值 + angle = Math.Acos(cosValue) * 180 / Math.PI; + return angle; + */ + let angle = 0.0 // 夹角 + + let vec1 = Point2d.OpSubtract(p1, pSrc) + let vec2 = Point2d.OpSubtract(p2, pSrc) + + let productValue = Vector2d.OpMultiplyValue(vec1, vec2) + let cosValue = productValue / (vec1.Length * vec2.Length) // 余弦公式 + + // acos的输入参数范围必须在[-1, 1]之间,否则会"domain error" + // 对输入参数作校验和处理 + if (cosValue < -1 && cosValue > -2) + cosValue = -1 + else if (cosValue > 1 && cosValue < 2) + cosValue = 1 + + // acos返回的是弧度值,转换为角度值 + angle = Math.acos(cosValue) * 180 / Math.PI + return angle + } +} + +export class DoubleUtil +{ + static EqualX(v1: number, v2: number, fuzz: number): boolean + { + return (Math.abs(v1 - v2) < fuzz) + } + + static Sqr(v: number): number + { + return v * v + } +} + +export class CADExt +{ + static GetX(arc: Curve2d): number + { + return Math.min(arc.StartPoint.m_X, arc.EndPoint.m_X) + } + + static GetY(arc: Curve2d): number + { + return Math.min(arc.StartPoint.m_Y, arc.EndPoint.m_Y) + } + + static GetWidth(arc: Curve2d): number + { + return Math.abs(arc.StartPoint.m_X - arc.EndPoint.m_X) + } + + static GetHeight(arc: Curve2d): number + { + return Math.abs(arc.StartPoint.m_Y - arc.EndPoint.m_Y) + } + + static GetRadius(p1: Point2d, p2: Point2d, bul: number): number + { + // let arc = new Arc2d(p1, p2, bul); + // return arc.m_Radius; + // this.m_Radius = length / Math.sin(2 * Math.atan(bul)) / 2; + return CADExt.getR(p1.m_X, p1.m_Y, p2.m_X, p2.m_Y, bul) + } + + static getR(x1: number, y1: number, x2: number, y2: number, bul: number): number + { + let length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) + return length / Math.sin(2 * Math.atan(bul)) / 2 + } + + /** 圆弧分割成count段 */ + static SplitArc(arc: Arc2d, count: number): Arc2d[] + { + let list: Arc2d[] + list = [] + + let an = arc.m_AllAngle / count + let an_0 = arc.m_StartAngle + for (let i = 0; i < count; i++) + { + let arcNew = new Arc2d(arc.StartPoint, arc.EndPoint, 0) + arcNew.m_Radius = arc.m_Radius + arcNew.m_Center = arc.m_Center + arcNew.m_StartAngle = an_0 + arcNew.m_EndAngle = arcNew.m_StartAngle + an + an_0 = arcNew.m_EndAngle + arcNew.ParsePointFormAngle() + + list.push(arcNew) + } + return list + } + + static SplitArcByCell(ar: Arc2d, cellWidth: number): any[] + { + // 弧长 + let fullLenth = Math.abs(ar.m_Radius * (ar.m_EndAngle - ar.m_StartAngle)) + let count = fullLenth / cellWidth + if (count < 2) + count = 2 + let childs = CADExt.SplitArc(ar, count) + let pts = [] + for (let c of childs) + { + pts.push({ x: c.StartPoint.m_X, y: c.StartPoint.m_Y }) + } + pts.push({ x: ar.EndPoint.m_X, y: ar.EndPoint.m_Y }) + return pts + } + + /** 根据两点,深的弧度 中间的n个点 */ + static getCurvePoints(x1: number, y1: number, x2: number, y2: number, d: number, num: number): any + { + // atan(h/(L/2)) * 4 h: + let dis = 0.5 * Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) + let mul = d / dis + let arc = new Arc2d(new Point2d(x1, y1), new Point2d(x2, y2), mul) + + let arc_list = CADExt.SplitArc(arc, num - 1) + let points = [] + for (let li of arc_list) + { + points.push({ x: li.StartPoint.m_X, y: li.StartPoint.m_Y }) + } + points.push({ x: x2, y: y2 }) + return points + } + + /** 求弧长 */ + static getLength(arc: Arc2d): number + { + return arc.m_Radius * Math.abs(arc.m_AllAngle) + } + + /** 按固定线长分割圆弧 */ + static getPointsFromCurve(x1: number, y1: number, x2: number, y2: number, bul: number, dis: number) + { + let arc = new Arc2d(new Point2d(x1, y1), new Point2d(x2, y2), bul) + let length = this.getLength(arc) + let count = Math.max(4, Math.ceil(length / dis)) + let arc_list = CADExt.SplitArc(arc, count) + let points = [] + for (let li of arc_list) + { + points.push({ x: li.StartPoint.m_X, y: li.StartPoint.m_Y }) + } + points.push({ x: x2, y: y2 }) + return points + } + + /** 返回弧形中心点 (不是圆心点) */ + static getCenterPoint(arc: Arc2d): Point2d + { + let arcNew = new Arc2d(arc.StartPoint, arc.EndPoint, 0) + arcNew.m_Radius = arc.m_Radius + arcNew.m_Center = arc.m_Center + arcNew.m_StartAngle = arc.m_StartAngle + arcNew.m_EndAngle = arc.m_StartAngle + arc.m_AllAngle / 2 + arcNew.ParsePointFormAngle() + return arcNew.EndPoint + } + + /** 获得第3点到前2点的距离差 */ + static getDisOff(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): number + { + let dis31 = Math.sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1)) + let dis32 = Math.sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2)) + let dis12 = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) + return dis31 + dis32 - dis12 + } +} +function TestPolyline(offEnsS: Curve2d[][]) +{ + let str = `[${offEnsS.length}` + for (let i = 0; i < offEnsS.length; i++) + { + let offEns = offEnsS[i] + let linedString = `${offEns.length},` + for (let cu of offEns) + { + let bul = (cu instanceof Arc2d) ? cu.m_Bul : 0 + linedString += `[${cu.StartPoint.m_X},${cu.StartPoint.m_Y}],${bul},` + } + str += `,"Polyline",8,2,116,false,1,${7 + i % 2},0,[1,0,0,0,0,1,0,0,0,0,1,0,${Math.floor(i / 2) * 1000},0,0,1],0,0,true,[1,0,0,0,0,1,0,0,0,0,1,0,3000,0,0,1],0,2,${linedString}true` + } + str += ']' + console.log(str) + copyTextToClipboard(str) +} + +let DebugCurves: (Curve2d[])[] = [] +export function CADDebugInit() +{ + DebugCurves = [] +} + +export function CADCopyPolylines() +{ + TestPolyline(DebugCurves) + DebugCurves = [] +} + +function fallbackCopyTextToClipboard(text: string) +{ + let textArea = document.createElement('textarea') + textArea.value = text + document.body.appendChild(textArea) + textArea.focus() + textArea.select() + + try + { + let successful = document.execCommand('copy') + } catch (err) + { + } + document.body.removeChild(textArea) +} +export async function copyTextToClipboard(text: string) +{ + if (!navigator.clipboard) + { + fallbackCopyTextToClipboard(text) + return + } + return await navigator.clipboard.writeText(text) +} + +// ref: https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript + +/** + * 读取剪切板的字符串 + */ +export async function readClipboardText() +{ + if (navigator.clipboard) + return await navigator.clipboard.readText() + return '' +} diff --git a/samples/handleAbility/common/base/StringFormat.ts b/samples/handleAbility/common/base/StringFormat.ts new file mode 100644 index 0000000..6ed1616 --- /dev/null +++ b/samples/handleAbility/common/base/StringFormat.ts @@ -0,0 +1,126 @@ +export class StringFormat +{ + /** + * 对Date的扩展,将 Date 转化为指定格式的String + * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 + * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) + * eg: + * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 + * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 + * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 + * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 + * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 + */ + static Date(date: Date, fmt): string + { + let o = { + 'M+': date.getMonth() + 1, // 月份 + 'd+': date.getDate(), // 日 + 'h+': date.getHours() % 12 == 0 ? 12 : date.getHours() % 12, // 小时 + 'H+': date.getHours(), // 小时 + 'm+': date.getMinutes(), // 分 + 's+': date.getSeconds(), // 秒 + 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 + 'S': date.getMilliseconds(), // 毫秒 + } + let week = { + 0: '/u65e5', + 1: '/u4e00', + 2: '/u4e8c', + 3: '/u4e09', + 4: '/u56db', + 5: '/u4e94', + 6: '/u516d', + } + if (/(y+)/.test(fmt)) + { + fmt = fmt.replace(RegExp.$1, (`${date.getFullYear()}`).substr(4 - RegExp.$1.length)) + } + if (/(E+)/.test(fmt)) + { + fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '/u661f/u671f' : '/u5468') : '') + week[`${date.getDay()}`]) + } + for (let k in o) + { + if (new RegExp(`(${k})`).test(fmt)) + { + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((`00${o[k]}`).substr((`${o[k]}`).length))) + } + } + return fmt + } + + /** 返回数字的固定小数点 123.00 */ + static number(value: number, bit: number): string + { + return value?.toFixed(bit).toString() + } + + static toFixed(value: number, bit: number = 3): number + { + let tt = 10 ** bit + return Math.round(value * tt) / tt + } + + static filterIllegalChar(str: string): string + { + // var pattern = new RegExp("[/:*?'<>|\\]"); + // var rs = ""; + // for (var i = 0; i < str.length; i++) + // { + // rs = rs + str.substr(i, 1).replace(pattern, ''); + // } + // return rs; + + let rt = str.replace(/\\/g, '').replace(/\:/g, '').replace(/\*/g, '').replace(/\?/g, '').replace(/\"/g, '').replace(/\/g, '').replace(/\|/g, '').replace(/\'/g, '') + return rt + } + + /** 文本格式化 */ + static format(str: string, ...args: any[]): string + { + let data = args + let tmpl = str + for (const item of tmpl.matchAll(/\{(.+?)\}/g)) + { + let parts = item[1].split(',').map(i => i.trim()) + let index = Number(parts[0]) + let arg = data[index] + + let val = (arg || '').toString() // 默认 + + if (arg instanceof Date) // 日期 + { + let fm = 'MM-dd HH;mm' + if (parts.length > 1) + { + fm = parts[1] + } + val = this.Date(arg, fm) + } + + if (parts.length > 1 && parts[1][0] === '#') + { + // {2,#3} -> 数字 转成3位 001,...023, + val = val.padStart(Number(parts[1].substring(1)), '0') + } + tmpl = tmpl.replace(item[0], val) + } + + return tmpl + } + + /** 实现右对齐,右边填充 (25,4,'*') => '25**' */ + static PadEnd(num: number, totalWidth: number, paddingChar: string): string + { + let str = num.toString() + return str.padEnd(totalWidth, paddingChar[0]) + } + + /** 实现右对齐,左边填充 (25,4,'0') => '0025' */ + static PadStart(num: number, totalWidth: number, paddingChar: string): string + { + let str = num.toString() + return str.padStart(totalWidth, paddingChar[0]) + } +} diff --git a/samples/handleAbility/common/core/Path.ts b/samples/handleAbility/common/core/Path.ts new file mode 100644 index 0000000..e324527 --- /dev/null +++ b/samples/handleAbility/common/core/Path.ts @@ -0,0 +1,381 @@ +import { Box2 } from '../Box2.js' +import { clipperCpp } from '../ClipperCpp.js' +import type { NestFiler } from '../Filer.js' +import type { Point } from '../Point.js' +import { equaln } from '../Util.js' +import { Vector2 } from '../Vector2.js' + +/** + * 轮廓路径类 + * 可以求NFP,和保存NFPCahce + * 因为NFP结果是按照最低点移动的,所以将点旋转后,按照盒子将点移动到0点. + */ +export class Path +{ + Id: number + Points: Point[] + OutsideNFPCache: { [key: number]: Point[][] } = {} + InsideNFPCache: { [key: number]: Point[][] } = {} + + constructor(public OrigionPoints?: Point[], rotation: number = 0) + { + if (OrigionPoints) + this.Init(OrigionPoints, rotation) + } + + Origion: Path + // 点表在旋转后的原始最小点.使用这个点将轮廓移动到0点 + OrigionMinPoint: Vector2 + Rotation: number + + Size: Vector2// 序列化 + private Init(origionPoints: Point[], rotation: number) + { + this.Rotation = rotation + if (rotation === 0) + this.Points = origionPoints.map((p) => { return { ...p } }) + else + { + let c = Math.cos(rotation) + let s = Math.sin(rotation) + + let npts: Point[] = [] + for (let p of origionPoints) + { + let x = p.x + let y = p.y + const x1 = x * c - y * s + const y1 = x * s + y * c + npts.push({ x: x1, y: y1 }) + } + this.Points = npts + } + + let box = new Box2() + let v2 = new Vector2() + for (let p of this.Points) + { + v2.x = p.x + v2.y = p.y + box.expandByPoint(v2) + } + + this.OrigionMinPoint = box.min + this.Size = box.max.sub(box.min) + + for (let p of this.Points) + { + p.x -= box.min.x + p.y -= box.min.y + } + } + + GetNFPs(path: Path, outside: boolean): Point[][] + { + // 寻找内轮廓时,面积应该比本path小,这个判断移交给使用者自己判断 + // if (!outside && this.Area < path.Area) return []; + let nfps = clipperCpp.lib.minkowskiSumPath(this.BigIntPoints, path.MirrorPoints, true) + + // 必须删除自交,否则将会出错 + nfps = clipperCpp.lib.simplifyPolygons(nfps) + nfps = nfps.filter((nfp) => + { + let area = Area(nfp) + // if (area > 1) return outside;//第一个不一定是外轮廓,但是面积为正时肯定为外轮廓 (因为使用了简化多段线,所以这个代码已经不能有了) + if (Math.abs(area) < 10) + return false// 应该不用在移除这个了 + + let { x, y } = nfp[0] + if (outside) + { + if (this.Area > path.Area) + { + let p = { x: path.InPoint.x + x, y: path.InPoint.y + y } + if (p.x < 0 || p.y < 0 || p.x > this.BigSize.x || p.y > this.BigSize.y) + return true + let dir = clipperCpp.lib.pointInPolygon(p, this.BigIntPoints) + return dir === 0 + } + else + { + let p = { x: this.InPoint.x - x, y: this.InPoint.y - y } + if (p.x < 0 || p.y < 0 || p.x > path.BigSize.x || p.y > path.BigSize.y) + return true + let dir = clipperCpp.lib.pointInPolygon(p, path.BigIntPoints) + return dir === 0 + } + } + else + { + let p = { x: path.InPoint.x + x, y: path.InPoint.y + y } + if (p.x < 0 || p.y < 0 || p.x > this.BigSize.x || p.y > this.BigSize.y) + return false + let dir = clipperCpp.lib.pointInPolygon(p, this.BigIntPoints) + return dir === 1 + } + }) + return nfps + } + + GetOutsideNFP(path: Path): Point[][] + { + let nfps = this.OutsideNFPCache[path.Id] + if (nfps) + return nfps + + if (this.IsRect && path.IsRect) + { + let [ax, ay] = [this.Size.x * 1e4, this.Size.y * 1e4] + let [bx, by] = [path.Size.x * 1e4, path.Size.y * 1e4] + nfps = [[ + { x: -bx, y: -by }, + { x: ax, y: -by }, + { x: ax, y: ay }, + { x: -bx, y: ay }, + ]] + } + else + nfps = this.GetNFPs(path, true) + this.OutsideNFPCache[path.Id] = nfps + // 虽然有这种神奇的特性,但是好像并不会提高性能。 + // path.OutsideNFPCache[this.id] = (this, nfps.map(nfp => + // { + // return nfp.map(p => + // { + // return { x: -p.x, y: -p.y }; + // }); + // })); + return nfps + } + + GetInsideNFP(path: Path): Point[][] + { + if (path.Area > this.Area) + return + let nfp = this.InsideNFPCache[path.Id] + if (nfp) + return nfp + + let nfps: Point[][] + if (this.IsRect) + { + let [ax, ay] = [this.Size.x * 1e4, this.Size.y * 1e4] + let [bx, by] = [path.Size.x * 1e4, path.Size.y * 1e4] + + let l = ax - bx + let h = ay - by + + const MinNumber = 200// 清理的数值是100,所以200是可以接受的, 200=0.020问题不大(过盈配合) + if (l < -MinNumber || h < -MinNumber) + return + + if (l < MinNumber) + l = MinNumber + else + l += MinNumber + + if (h < MinNumber) + h = MinNumber + else + h += MinNumber + + nfps = [[ + { x: 0, y: 0 }, + { x: l, y: 0 }, + { x: l, y: h }, + { x: 0, y: h }, + ]] + } + else + nfps = this.GetNFPs(path, false) + + if (path.Id !== undefined) + this.InsideNFPCache[path.Id] = nfps + return nfps + } + + private _InPoint: Point + + /** + * 用这个点来检测是否在Path内部 + */ + private get InPoint() + { + if (this._InPoint) + return this._InPoint + let mp = { x: (this.Points[0].x + this.Points[1].x) / 2, y: (this.Points[0].y + this.Points[1].y) / 2 } + let normal = new Vector2(this.Points[1].x - this.Points[0].x, this.Points[1].y - this.Points[0].y).normalize() + // [normal.x, normal.y] = [normal.y, -normal.x]; + mp.x -= normal.y + mp.y += normal.x + + mp.x *= 1e4 + mp.y *= 1e4 + this._InPoint = mp + return mp + } + + protected _BigIntPoints: Point[] + get BigIntPoints() + { + if (this._BigIntPoints) + return this._BigIntPoints + this._BigIntPoints = this.Points.map((p) => + { + return { + x: Math.round(p.x * 1e4), + y: Math.round(p.y * 1e4), + } + }) + return this._BigIntPoints + } + + private _BigSize: Vector2 + get BigSize() + { + if (this._BigSize) + return this._BigSize + this._BigSize = new Vector2(this.Size.x * 1e4, this.Size.y * 1e4) + return this._BigSize + } + + protected _MirrorPoints: Point[] + get MirrorPoints() + { + if (!this._MirrorPoints) + this._MirrorPoints = this.BigIntPoints.map((p) => + { + return { x: -p.x, y: -p.y } + }) + + return this._MirrorPoints + } + + protected _BoundingBox: Box2 + get BoundingBox() + { + if (!this._BoundingBox) + { + this._BoundingBox = new Box2(new Vector2(), this.Size) + } + return this._BoundingBox + } + + protected _Area: number + get Area() + { + if (this._Area === undefined) + this._Area = Area(this.Points) + return this._Area + } + + set Area(a: number) + { + this._Area = a + } + + private _IsRect: boolean + get IsRect() + { + if (this._IsRect === undefined) + { + let s = this.BoundingBox.getSize(new Vector2()) + this._IsRect = equaln(this.Area, s.x * s.y, 1) + } + return this._IsRect + } + + ReadFile(file: NestFiler): void + { + let ver = file.Read() + this.Id = file.Read() + let arr = file.Read() + this.Points = [] + for (let i = 0; i < arr.length; i += 2) + { + let p = { x: arr[i], y: arr[i + 1] } + this.Points.push(p) + } + + this.Size = new Vector2(file.Read(), file.Read()) + this._Area = file.Read() + let id = file.Read() + if (id !== -1) + { + this.Origion = id + this.Rotation = file.Read() + this.OrigionMinPoint = new Vector2(file.Read(), file.Read()) + } + } + + WriteFile(file: NestFiler): void + { + file.Write(1)// ver + file.Write(this.Id) + let arr: number[] = [] + for (let p of this.Points) + arr.push(p.x, p.y) + file.Write(arr) + + file.Write(this.Size.x) + file.Write(this.Size.y) + file.Write(this._Area) + if (this.Origion && this.Origion.Id) + { + // 如果有原始的id,则传递它,以便后续进行NFP复用. + file.Write(this.Origion.Id) + file.Write(this.Rotation) + file.Write(this.OrigionMinPoint.x) + file.Write(this.OrigionMinPoint.y) + } + else + file.Write(-1) + } +} + +// 点表面积 +export function Area(pts: Point[]): number +{ + let cnt = pts.length + if (cnt < 3) + return 0 + let a = 0 + for (let i = 0, j = cnt - 1; i < cnt; ++i) + { + a += (pts[j].x + pts[i].x) * (pts[j].y - pts[i].y) + j = i + } + return -a * 0.5 +} + +/** + * 平移点表,返回新点表 + */ +export function TranslatePath(pts: Point[], p: Point): Point[] +{ + return pts.map((px) => + { + return { x: p.x + px.x, y: p.y + px.y } + }) +} + +export function TranslatePath_Self(pts: Point[], mx: number, my: number): Point[] +{ + for (let pt of pts) + { + pt.x += mx + pt.y += my + } + return pts +} + +// 缩放点表,返回原始点表 +export function PathScale(pts: Point[], scale: number): Point[] +{ + for (let p of pts) + { + p.x *= scale + p.y *= scale + } + return pts +} diff --git a/samples/handleAbility/common/工具类.md b/samples/handleAbility/common/工具类.md new file mode 100644 index 0000000..e69de29 diff --git a/samples/handleAbility/knifeHelper.ts b/samples/handleAbility/knifeHelper.ts new file mode 100644 index 0000000..f9c54d9 --- /dev/null +++ b/samples/handleAbility/knifeHelper.ts @@ -0,0 +1,202 @@ +import { _knifeType, Knife, SideModel } from "../confClass"; +import { knifeData,knifeData1,knifeData2 } from "../demoKnives"; +/** 刀库 管理刀具*/ +export class KnifeHelper { + knifeList: Knife[] + constructor(_knifeList) { + + this.knifeList.push(knifeData); + + + if (Array.isArray(_knifeList) && _knifeList.length >0 ) { + this.loadKnifeList(_knifeList) + } + } + + loadKnifeList(_knifeList) { + this.knifeList = _knifeList || [] + } + + /** 根据刀名称获取造型刀 */ + getModelKnifeByName(name: string): Knife | undefined { + return this.knifeList.find(t => t.knifeName.trim() == name.trim() && t.isModelingKnife()); + } + + /** 根据半径获取造型刀 */ + getModelKnifeByRadius(radius: number, depth: number): Knife | undefined { + return this.knifeList.find(t => t.isModelingKnife() && Math.abs(t.diameter - 2 * radius) < 0.02 && t.length >= depth - 0.01); + } + + /** 获取合适的开料刀作为造型刀 */ + getFittedModelKnife(radius: number, depth: number): Knife | null { + const knives = this.knifeList.filter(t => t.isModelingKnife() && t.length > depth - 0.01 && t.diameter / 2 < radius - 0.02); + if (knives) { + knives.sort((a, b) => b.diameter - a.diameter); //按刀直径倒序排序 + return knives[0]; + } + + return null; + } + + /** 根据厚度获取开料刀 */ + getKnifeByThickness(thickness: number): Knife | undefined { + return this.knifeList.find(t => t.length >= thickness); + } + /** 通用 找刀具 根据查询条件 */ + getKnifeByParams(params: _knifeType) { + let knife: Knife | null = null + + if (params) { + let tempKnifeList: Knife[] = [...this.knifeList] // [] + let keys = Object.keys(params) + if (keys.length > 0) { + keys.forEach(key => { + if (Array.isArray(params[key]) && key == 'ability') { + // 进来的应该是ability 是数组 判断刀的能力 + for (const arrItem of params[key]) { + let _knifeList = this.knifeList.filter(e => e.ability.includes(arrItem)) + _knifeList.forEach(k => { + if (!this.KnifeIsInKnifeList(k, tempKnifeList)) { + tempKnifeList.push(k) + } + }) + } + } else if (['string', 'number'].includes(typeof (params[key]))) { + if (params && params[key] && typeof (params[key]) == 'number') { + + if (key == 'length') { + tempKnifeList = tempKnifeList.filter(e => e[key] >= params[key]) + } else { + tempKnifeList = tempKnifeList.filter(e => e[key] == params[key]) + } + + + } + } + }); + if (tempKnifeList.length > 0) { + knife = tempKnifeList[0] + } + } else { + console.log('传入的查询条件 没有参数') + } + } + return knife + } + + /** 判断 刀是否在 刀列表内 + * true 存在 + * false 不存在 + */ + KnifeIsInKnifeList(_knife: Knife, _knifeList: Knife[]) { + let k = _knifeList.find(e => _knife.axleId == e.axleId + && _knife.diameter == e.diameter + && _knife.knifeId == e.knifeId) + + if (k) { + return true + } else { + return false + } + } + getSideModelKnife(model: SideModel): Knife | undefined | null { + if (model.knifeName && model.knifeName.trim() != '') { + return this.getModelKnifeByName(model.knifeName.trim()); + } + //获取刀半径(直径)和长度与造型定义的刀半径和深度一致的刀 + const knife = this.getSideModelKnifeByRadius(model.knifeRadius, model.depth, model.direction); + if (knife) return knife; + //获取刀半径(直径)小于造型定义的刀半径、长度不小于造型深度的刀 + return this.getFittedSideModelKnife(model.knifeRadius, model.depth, model.direction); + } + /** 获取合适的开料刀作为造型刀 */ + getFittedSideModelKnife(radius: number, depth: number, direction): Knife | null { + let processFaceArr: number[] = []; + processFaceArr.push(5) + switch (direction) { + case 0: + processFaceArr.push(4) + + break; + case 1: + processFaceArr.push(2) + + break; + case 2: + processFaceArr.push(3) + + break; + case 3: + + processFaceArr.push(1) + break; + case 10: + + + break; + case 11: + + break; + case 12: + + break; + case 13: + + break; + default: + break; + } + const knives = this.knifeList.filter(t => t.isModelingKnife() && t.length > depth - 0.01 && t.diameter / 2 < radius - 0.02 && processFaceArr.includes(t.processFace)); + if (knives) { + knives.sort((a, b) => b.diameter - a.diameter); //按刀直径倒序排序 + return knives[0]; + } + + return null; + } + /** 根据半径获取造型刀 */ + // direction 0 下 1右 2上 3左 10 左下斜 11 右下斜 12右上斜 13 左上斜 + // processFace: number // 加工面 2024 11 21 : 正面 0 反面 1 左侧面 2 右侧面 3 上侧面 4 下侧面 5 任意 6 + getSideModelKnifeByRadius(radius: number, depth: number, direction): Knife | undefined { + + let processFaceArr: number[] = []; + processFaceArr.push(5) + switch (direction) { + case 0: + processFaceArr.push(4) + + break; + case 1: + processFaceArr.push(2) + + break; + case 2: + processFaceArr.push(3) + + break; + case 3: + + processFaceArr.push(1) + break; + case 10: + + + break; + case 11: + + break; + case 12: + + break; + case 13: + + break; + default: + break; + } + let knife = this.knifeList.find(t => t.isModelingKnife() && Math.abs(t.diameter - 2 * radius) < 0.02 && t.length >= depth - 0.01 && processFaceArr.includes(t.processFace)) + + return knife; + } + +} \ No newline at end of file diff --git a/samples/handleAbility/基础功能目录.md b/samples/handleAbility/基础功能目录.md new file mode 100644 index 0000000..a757038 --- /dev/null +++ b/samples/handleAbility/基础功能目录.md @@ -0,0 +1,2 @@ +# 基础功能目录 + 该目录下的功能函数尽量不包含业务逻辑 \ No newline at end of file diff --git a/samples/moduleManager/module1.ts b/samples/moduleManager/module1.ts new file mode 100644 index 0000000..6aac9aa --- /dev/null +++ b/samples/moduleManager/module1.ts @@ -0,0 +1,262 @@ +import { ProcessorModule } from "../../src/device"; +import { confItem, PlaceBlock, PlaceBlockDetail, PlaceMaterial } from "../confClass"; +import { Big_bang, ComposingType, LineType, WorkerItemType, xbang } from "../handleAbility/RectOptimizeWorker/bang"; +import resData from './res1.json' +import {Worker} from 'worker_threads' + +/** 模块 新优化 + * + * input 入参 + * + * ProcessorModule这里的any 可以自定义 根据组件需求 +*/ + + +export const RectOptimizeMachineModule: ProcessorModule = { + moduleName: "RectOptimizeMachine", + config: { + workerList: [], + placeStyle: 1, + }, + + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + before(input) { + // console.log(`优化前要做的事情`, input); + }, + + process(input, next, context) { + let { blockList, materialList } = input + let bList: any = [] + let pm = materialList[0] + blockList.map(e => { + if (e.goodsId == pm.goodsId) { + bList[e.blockNo] = e + // let detail = blockDetailList.find(x => x.blockId == e.blockId) + // // 处理可能出现的异常 --没有板明细 + // if (!Reflect.has(bList[e.blockNo], 'blockDetail')) { + // bList[e.blockNo].blockDetail = new PlaceBlockDetail(detail) + // } + // bList[e.blockNo].isTurnFaceToPlace = !this.getDoFace(bList[e.blockNo], this.processMode()) + // 是否翻面后续处理 + bList[e.blockNo].isTurnFaceToPlace = true + if (Array.isArray(pm.blockList)) { + + pm.blockList.push(e) + } else { + pm.blockList = [e] + } + } + }) + pm.cutBorder = this.cutBoardBorder + pm.cutKnifeGap = this.blockKnifeLineSpacing + + /** 小板 */ + let bans: xbang[] = [] + + // 实际开料大板的列表 + let big_Bang: Big_bang[] = [] + let big_BangSL: number[] = [] + + + let border = this.cutBoardBorder + let borderOff = (pm.diameter + pm.cutKnifeGap) / 2 + + // 余料板 以及实际开料大板 + for (const cuttingBoard of pm.remainBoardList) { + big_Bang.push({ w: cuttingBoard.width - border * 2 + borderOff * 2, l: cuttingBoard.length - border * 2 + borderOff * 2, x: border - borderOff, y: border - borderOff }) + big_BangSL.push(cuttingBoard.count || 999) + } + // big_Bang = [] + // big_BangSL = [] + // 母板 兜底的 + big_Bang.push({ w: pm.width - border * 2 + borderOff * 2, l: pm.length - border * 2 + borderOff * 2, x: border - borderOff, y: border - borderOff }) + // 生成小板 + for (let key in bList) { + let b = bList[key] + + let bid = b.blockNo + + let width = b.placeFullWidth + let length = b.placeFullLength + let line = toLine(b.texture) + + bans.push({ + l: length, + w: width, + line, + face: toface(b), + id: bid, + bno: b.blockNo, + holeFaceCount: 3, + isRect: !b.isUnRegular, + hasHole: false, + isdtwosided: true, + }) + } + + let bestCount = 0 + if (bans.length == 0) // 没有板了 + { + + if (context.CallBack) { + let best = [] + let yl: Big_bang[] = [] + let fit = 0 + let resObj = { + data: { bList, best, yl, fit, bans, width: pm.width, length: pm.length, bestCount: bestCount++, pm }, + info: { + times: -1, + type: 'noBan' + } + } + context.CallBack(resObj) + } + + return + } + let xyhcs = 50 + if (bans.length > 1000) { xyhcs = 40 } + else if (bans.length > 1500) { xyhcs = 30 } + else if (bans.length > 2000) { xyhcs = 25 } + else if (bans.length > 4000) { xyhcs = 20 } + else if (bans.length > 6000) { xyhcs = 15 } + else if (bans.length > 10000) { xyhcs = 10 } + else if (bans.length > 15000) { xyhcs = 5 } + else if (bans.length > 20000) { xyhcs = 1 } + let isDoubleFaceBlockFirst = this.isDoubleFaceBlockFirst // 双面加工排前面 + let gap = this.blockKnifeLineSpacing + // this.bestfit = 0 + + /** 这里要做个多线程 测试环境下 这部分有问题 暂时略过 */ + for (let j = 0; j < 1; j++) { + + // let w = new Worker(new URL('../handleAbility/RectOptimizeWorker/RectOptimizeWorker.worker', import.meta.url), { type: 'module' }) + let w= new Worker('../handleAbility/RectOptimizeWorker/RectOptimizeWorker.worker') + const data = { + type: 'start', + data: [bans, big_Bang, big_BangSL, xyhcs, isDoubleFaceBlockFirst, gap, this.isRectPlace, this.isDoubleFaceBlockInRemain], + } + let item: WorkerItemType = { + w: w, + goodsId: pm.goodsId, + pm, + status: 'start' + } + if (this.config.workerList.findIndex(e => e.goodsId == item.goodsId) == -1) { + this.config.workerList.push(item) + } + + + let workItem = this.config.workerList.find(e => e.goodsId == pm.goodsId) + if (workItem && workItem != undefined) { + workItem.w?.postMessage(data) + + workItem.w.onmessage = async (d) => { + let [best, yl, fit, info] = d.data as [any[], Big_bang[], number, any] + + switch (info.type) { + case 'loop': + let resObj = { + data: { bList, best, yl, fit, bans, width: pm.width, length: pm.length, bestCount: bestCount++, pm }, + info + } + if (context.CallBack) { + context.CallBack(resObj) + } + + break; + case 'stop': + console.error('stop =》dataHandleBase', info, this.config.workerList) + this.terminateWorker({ goodsId: pm.goodsId }) + break; + case 'isStop': + // console.error('isStop', info) + break; + default: + break; + } + + } + } + } + if (context.CallBack) { + context.CallBack(resData) + } + + return next ? next(input) : input; + }, + + after(result) { + console.log(`优化后要做的事情`,); + }, + + onError(error) { + console.log('出错了哦', error); + } +}; + + +function toLine(texture): LineType { + if (texture == 0) + return LineType.Positive + if (texture == 1) + return LineType.CanReversal + return LineType.Reverse +} +/** 小板加工面:Positive=0正面 Reverse=1反面 Arbitrary=2任意 */ +function toface(block: PlaceBlock): ComposingType { + let turnF = block.isTurnFaceToPlace + // if (this.isTurnFaceToPlace) + if (true) + turnF = !turnF + if (!turnF) + return ComposingType.Positive + return ComposingType.Reverse +} +/** 配置列表 */ +export const confList: confItem[] = [ + { + key: 'isCutProcess', + label: '开料机(雕刻机)加工', + value: true + }, + { + key: 'isCutAndCNCProcess', + label: '开料机CNC组合', + value: false + }, + { + key: 'isCustomized', + label: '定制加工', + value: false + }, + { + key: 'cutBoardBorder', + label: '总修边宽度', + value: 3 + }, + { + key: 'blockKnifeLineSpacing', + label: '刀路间距', + value: 0 + }, + { + key: 'isDoubleFaceBlockFirst', + label: '双面开料优先排版', + value: true + }, + { + key: 'isRectPlace', + label: '新优化规则排版', + value: false + }, + { + // yuLiaoBoardDo2FaceBlock + key: 'isDoubleFaceBlockInRemain', + label: '余料板允许排入双面加工的小板', + value: true + }, +] \ No newline at end of file diff --git a/samples/moduleManager/res1.json b/samples/moduleManager/res1.json new file mode 100644 index 0000000..5fb3ec6 --- /dev/null +++ b/samples/moduleManager/res1.json @@ -0,0 +1,29615 @@ +{ + "data": { + "bList": [], + "best": [ + [ + { + "bangid": "25044454403", + "line": 0, + "x": 0, + "y": 0, + "pbg": 1091.42, + "pbk": 1147.278 + }, + { + "bangid": "25044454401", + "line": 0, + "x": 0, + "y": 1091.42, + "pbg": 805.01, + "pbk": 505.01 + }, + { + "bangid": "25044454402", + "line": 0, + "x": 505.01, + "y": 1091.42, + "pbg": 1029.721, + "pbk": 171.01 + }, + { + "bangid": "25044454400", + "line": 0, + "x": 676.02, + "y": 1091.42, + "pbg": 711.352, + "pbk": 356.01 + }, + { + "bangid": "25044454405", + "line": 0, + "x": 1032.03, + "y": 1091.42, + "pbg": 106.01, + "pbk": 171.01 + }, + { + "bangid": "25044454404", + "line": 0, + "x": 1032.03, + "y": 1197.43, + "pbg": 105.01, + "pbk": 171.01 + } + ] + ], + "yl": [], + "fit": 2.1241277987899996, + "bans": [ + { + "l": 711.352, + "w": 356.01, + "line": 0, + "face": 1, + "id": "25044454400", + "bno": "25044454400", + "holeFaceCount": 3, + "isRect": false, + "hasHole": false, + "isdtwosided": true + }, + { + "l": 805.01, + "w": 505.01, + "line": 0, + "face": 1, + "id": "25044454401", + "bno": "25044454401", + "holeFaceCount": 3, + "isRect": true, + "hasHole": false, + "isdtwosided": true + }, + { + "l": 1029.721, + "w": 171.01, + "line": 0, + "face": 1, + "id": "25044454402", + "bno": "25044454402", + "holeFaceCount": 3, + "isRect": true, + "hasHole": false, + "isdtwosided": true + }, + { + "l": 1091.42, + "w": 1147.278, + "line": 0, + "face": 1, + "id": "25044454403", + "bno": "25044454403", + "holeFaceCount": 3, + "isRect": false, + "hasHole": false, + "isdtwosided": true + }, + { + "l": 105.01, + "w": 171.01, + "line": 0, + "face": 1, + "id": "25044454404", + "bno": "25044454404", + "holeFaceCount": 3, + "isRect": true, + "hasHole": false, + "isdtwosided": true + }, + { + "l": 106.01, + "w": 171.01, + "line": 0, + "face": 1, + "id": "25044454405", + "bno": "25044454405", + "holeFaceCount": 3, + "isRect": true, + "hasHole": false, + "isdtwosided": true + } + ], + "width": 1220, + "length": 2440, + "bestCount": 0, + "pm": { + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "goodsName": "18mm - 湖水绿 - 禾香板", + "spec": "", + "material": "禾香板", + "color": "湖水绿", + "brand": "虎宝宝", + "hasTexture": true, + "updateTime": "", + "orgWidth": 1220, + "orgLength": 2440, + "width": 1220, + "length": 2440, + "thickness": 18, + "cutBorder": 3, + "diameter": 6, + "cutKnifeGap": 0, + "preMillingSize": 0, + "isHelpCut": false, + "helpCutGap": 0, + "cutKnifeId": -1, + "cutKnifeName": "T1", + "helpKnifeId": -1, + "helpKnifeName": "", + "isOptimized": false, + "boardCount": 0, + "remainBoardCount": 0, + "minBoardId": null, + "maxBoardId": null, + "currentBoardId": 0, + "avgUsageRateAll": null, + "avgUsageRateExcludeLastBoard": null, + "usageRateLastBoard": null, + "allBlockCount": 0, + "selectedBlockCount": 0, + "noPlaceBlockCount": 0, + "optimizingBoardCount": 0, + "optimizingRemainBoardCount": 0, + "optimizingAvgUsageRateAll": 0, + "optimizingAvgUsageRateExcludeLastBoard": 0, + "optimizingUsageRateLastBoard": 0, + "remainBoardInfo": "", + "boardCountFlipFace": 0, + "blockCount": 0, + "blockArea": 0, + "edgeSealLengthList": [], + "remainBoardList": [], + "remainList": [], + "boardList": [], + "blockList": [ + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518380273665", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": 1.2, + "cutWidth": 348.2, + "cutLength": 703.542, + "points": [ + { + "pointX": 0, + "pointY": 703.542, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 48.8, + "curve": 0.41421356237309476, + "radius": 48.80000000000001, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 48.8, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 348.2, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 348.2, + "pointY": 703.542, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgPoints": [ + { + "pointX": 0, + "pointY": 705.342, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 50, + "curve": 0.41421356237309476, + "radius": 50.00000000000002, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 50, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 350, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 350, + "pointY": 705.342, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceB": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": true, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 8, + "modelCountBack": 9, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": true, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 705.342 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 50 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 655.342 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 50 + }, + "m_EndPoint": { + "m_X": 50, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Center": { + "m_X": 50.00000000000003, + "m_Y": 50.000000000000014 + }, + "m_Radius": 50.00000000000002, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 50, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 350, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 300 + }, + { + "m_StartPoint": { + "m_X": 350, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 350, + "m_Y": 705.342 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 705.342 + }, + { + "m_StartPoint": { + "m_X": 350, + "m_Y": 705.342 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 705.342 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 350 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 703.542 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 48.8 + }, + "bul": 0.41421356237309476 + }, + { + "pt": { + "x": 48.8, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 348.2, + "y": 0 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [ + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 228.7, + "y": 95.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 278.9, + "y": 95.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 278.9, + "y": 202.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 228.7, + "y": 202.3 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + } + ], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518380273665", + "oldBlockId": "1907276518380273665", + "blockNo": "25044454400", + "customPlateNo": "F007 - R001 - C001 - P001", + "labelNo": "", + "blockName": "顶板2", + "plateRemark": "前边封厚边", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 350, + "length": 705.342, + "thickness": 18, + "area": 0.247, + "sealLeft": 0, + "sealRight": 0, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 350, + "cutLength": 705.342, + "cutArea": 0.24686969999999997, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": true, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518380273665" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518397050890", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": 0.6, + "cutWidth": 498.2, + "cutLength": 798.2, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000007, + "y": 504.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000047, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.8000000000002, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000047, + "y": 604.7423027509686, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000047, + "y": 604.7423027509687, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000013, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000007, + "y": 504.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000047, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceB": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.8000000000002, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000047, + "y": 604.7423027509686, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000047, + "y": 604.7423027509687, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000013, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 8, + "modelCountBack": 9, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 500, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 500 + }, + { + "m_StartPoint": { + "m_X": 500, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 500, + "m_Y": 800 + }, + "tagData": 1, + "m_Length": 800 + }, + { + "m_StartPoint": { + "m_X": 500, + "m_Y": 800 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 800 + }, + "tagData": 1, + "m_Length": 500 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 800 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 800 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 498.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 498.2, + "y": 798.2 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 798.2 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518397050890", + "oldBlockId": "1907276518397050890", + "blockNo": "25044454401", + "customPlateNo": "F007 - R001 - C001 - P002", + "labelNo": "", + "blockName": "顶板1", + "plateRemark": "前边封厚边", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 500, + "length": 800, + "thickness": 20, + "area": 0.4, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 1, + "sealBottom": 0, + "cutWidth": 499, + "cutLength": 799, + "cutArea": 0.39870099999999997, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518397050890" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518409633793", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 1032.511, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 1023.711 + }, + "tagData": 1, + "m_Length": 1023.711 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 1023.711 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1023.711 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1023.711 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 1023.711 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 1032.511 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 1032.511 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518409633793", + "oldBlockId": "1907276518409633793", + "blockNo": "25044454402", + "customPlateNo": "F007 - R001 - C001 - P003", + "labelNo": "", + "blockName": "层板", + "plateRemark": "上下侧面正面斜切63度, 斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 1023.711, + "thickness": 6, + "area": 0.17, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 1023.711, + "cutArea": 0.168912315, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518409633793" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518426411009", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.176, + "offsetY": 1, + "cutWidth": 1138.917, + "cutLength": 1083.174, + "points": [ + { + "pointX": 217.514, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 921.403, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 1138.917, + "pointY": 669.438, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 569.458, + "pointY": 1083.174, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 669.438, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgPoints": [ + { + "pointX": 217.963, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 923.305, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 1141.268, + "pointY": 670.82, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 570.634, + "pointY": 1085.41, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 670.82, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + } + ], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.6878156830016, + "y": 258.99999999999994, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 259, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 757.7302620514309, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 409.82039324993667, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.68781568300204, + "y": 409.8203932499368, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 2, + "face": 0, + "knifeName": "V90v - 40", + "knifeRadius": 20, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": null, + "pointList": [ + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 318.098, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 820.818, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 0, + "realPointList": [], + "realKnifeId": -1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [ + { + "name": "V90v - 40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "V90v - 40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + ], + "VLines": [ + { + "isFaceB": false, + "name": "V90v - 40", + "value": 0, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.82912664182254, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 307.5812217510182, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.8291266418225, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 831.3347554234352, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v - 40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "V90v - 40", + "value": -10, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.0958582321697, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 198.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270777, + "y": 198.99796306050695, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.8201417631819, + "y": 334.41, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v - 40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -2.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603736, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 320.72665912028793, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603735, + "y": 201.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 201.49999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 818.1893465849366, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 323.35531824057574, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 204, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 204.00000000000003, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 815.5606931698733, + "y": 334.40999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -7.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 325.9839773608636, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 812.9320397548099, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + } + ], + "offsetInfo": "4()" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.6878156830016, + "y": 258.99999999999994, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 259, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 757.7302620514309, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 409.82039324993667, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.68781568300204, + "y": 409.8203932499368, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 2, + "face": 0, + "knifeName": "V90v - 40", + "knifeRadius": 20, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": null, + "pointList": [ + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 318.098, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 820.818, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 0, + "realPointList": [], + "realKnifeId": -1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [ + { + "name": "V90v - 40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "V90v - 40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + ], + "VLines": [ + { + "isFaceB": false, + "name": "V90v - 40", + "value": 0, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.82912664182254, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 307.5812217510182, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.8291266418225, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 831.3347554234352, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v - 40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "V90v - 40", + "value": -10, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.0958582321697, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 198.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270777, + "y": 198.99796306050695, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.8201417631819, + "y": 334.41, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v - 40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -2.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603736, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 320.72665912028793, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603735, + "y": 201.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 201.49999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 818.1893465849366, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 323.35531824057574, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 204, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 204.00000000000003, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 815.5606931698733, + "y": 334.40999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -7.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 325.9839773608636, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 812.9320397548099, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + } + ], + "offsetInfo": "4()" + } + ], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": true, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 2, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": true, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 217.963, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 923.305, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.342 + }, + { + "m_StartPoint": { + "m_X": 923.305, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1141.268, + "m_Y": 670.82 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3420034061492 + }, + { + "m_StartPoint": { + "m_X": 1141.268, + "m_Y": 670.82 + }, + "m_EndPoint": { + "m_X": 570.634, + "m_Y": 1085.41 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3424913160982 + }, + { + "m_StartPoint": { + "m_X": 570.634, + "m_Y": 1085.41 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 670.82 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3424913160982 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 670.82 + }, + "m_EndPoint": { + "m_X": 217.963, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3420034061492 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 217.514, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 921.403, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 1138.917, + "y": 669.438 + }, + "bul": 0 + }, + { + "pt": { + "x": 569.458, + "y": 1083.174 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [ + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 812.4284830162819, + "y": 483.95274355862404 + }, + "bul": 0 + }, + { + "pt": { + "x": 779.2588165160631, + "y": 508.05198056447705 + }, + "bul": 0 + }, + { + "pt": { + "x": 766.3757445019467, + "y": 490.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 372.5412986195547, + "y": 490.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 359.65832880799826, + "y": 508.05196443564796 + }, + "bul": 0 + }, + { + "pt": { + "x": 326.48858181925226, + "y": 483.9528382128452 + }, + "bul": 0 + }, + { + "pt": { + "x": 339.37155163080985, + "y": 466.2208737771955 + }, + "bul": 0 + }, + { + "pt": { + "x": 303.20394344493695, + "y": 354.9100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 287.58122175101823, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 287.58122175101823, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 303.20394344493695, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 339.3715516308099, + "y": 202.59912622280433 + }, + "bul": 0 + }, + { + "pt": { + "x": 326.48858181925266, + "y": 184.86716178715557 + }, + "bul": 0 + }, + { + "pt": { + "x": 359.65832880799763, + "y": 160.76803556435135 + }, + "bul": 0 + }, + { + "pt": { + "x": 372.54129861955454, + "y": 178.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 766.375744501946, + "y": 178.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 779.2588165160631, + "y": 160.7680194355229 + }, + "bul": 0 + }, + { + "pt": { + "x": 812.4284830162819, + "y": 184.8672564413759 + }, + "bul": 0 + }, + { + "pt": { + "x": 799.5454110021647, + "y": 202.59923700585415 + }, + "bul": 0 + }, + { + "pt": { + "x": 835.7121611642901, + "y": 313.9099999999998 + }, + "bul": 0 + }, + { + "pt": { + "x": 851.3347554234352, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 851.3347554234352, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 835.7121611642903, + "y": 354.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 799.5454110021647, + "y": 466.22076299414584 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 805.1630385458965, + "y": 473.95274355862404 + }, + "bul": 0 + }, + { + "pt": { + "x": 771.9933720456777, + "y": 498.05198056447705 + }, + "bul": 0 + }, + { + "pt": { + "x": 759.1103000315613, + "y": 480.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 379.8066920610485, + "y": 480.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.92372224949236, + "y": 498.05196443564785 + }, + "bul": 0 + }, + { + "pt": { + "x": 333.7539752607463, + "y": 473.9528382128452 + }, + "bul": 0 + }, + { + "pt": { + "x": 346.6369450723041, + "y": 456.2208737771954 + }, + "bul": 0 + }, + { + "pt": { + "x": 313.7185799260885, + "y": 354.9100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 298.0958582321697, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 298.0958582321697, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 313.7185799260885, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 346.63694507230406, + "y": 212.5991262228044 + }, + "bul": 0 + }, + { + "pt": { + "x": 333.7539752607469, + "y": 194.8671617871555 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.9237222494919, + "y": 170.7680355643513 + }, + "bul": 0 + }, + { + "pt": { + "x": 379.8066920610488, + "y": 188.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 759.1103000315616, + "y": 188.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 771.9933720456776, + "y": 170.7680194355229 + }, + "bul": 0 + }, + { + "pt": { + "x": 805.1630385458964, + "y": 194.86725644137596 + }, + "bul": 0 + }, + { + "pt": { + "x": 792.2799665317791, + "y": 212.5992370058542 + }, + "bul": 0 + }, + { + "pt": { + "x": 825.197547504037, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 840.8201417631819, + "y": 313.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 840.8201417631819, + "y": 354.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 825.1975475040371, + "y": 354.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 792.2799665317793, + "y": 456.22076299414596 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 821.8150549758003, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 821.3437306830127, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 821.8150549758003, + "y": 335.8605994155594 + }, + "bul": 0 + }, + { + "pt": { + "x": 820.7611439442396, + "y": 336.20303294082026 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 469.33400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.1842722235191, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.0852742468801, + "y": 470.6246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 776.1475359223443, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 362.76949485517287, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.8317350705015, + "y": 470.62470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.73273032792525, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603736, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603736, + "y": 469.333979675754 + }, + "bul": 0 + }, + { + "pt": { + "x": 318.15486408407435, + "y": 336.20302040820377 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.1009410398309, + "y": 335.8605751966195 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.57226817594244, + "y": 334.4100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.1009410398309, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 318.15486408407435, + "y": 332.6169795917964 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603735, + "y": 199.4860203242461 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603735, + "y": 198.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.73273032792525, + "y": 198.50000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.8317350705015, + "y": 198.19529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 362.76949485517287, + "y": 198.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 776.1475359223446, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.0852742468801, + "y": 198.19531295277605 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.1842722235193, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 199.48599561969053 + }, + "bul": 0 + }, + { + "pt": { + "x": 820.7611439442396, + "y": 332.61696705917973 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 819.186401560737, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.7150772679494, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 819.186401560737, + "y": 335.86059941555936 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.1324905291763, + "y": 336.2030329408202 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 466.83400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.3679111059226, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.2689131292838, + "y": 468.1246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 774.331174804748, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 364.5858432155463, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.648083430875, + "y": 468.12470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.54907868829866, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 466.833979675754 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.78352320436215, + "y": 336.2030204082037 + }, + "bul": 0 + }, + { + "pt": { + "x": 319.7296001601187, + "y": 335.8605751966195 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.20092729623025, + "y": 334.4100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 319.7296001601187, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.78352320436215, + "y": 332.6169795917964 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 201.9860203242461 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.5490786882988, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.64808343087503, + "y": 200.69529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 364.5858432155464, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 774.3311748047481, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.2689131292838, + "y": 200.6953129527761 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.367911105923, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 201.98599561969058 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.1324905291763, + "y": 332.6169670591796 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 816.5577481456736, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 816.086423852886, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 816.5577481456736, + "y": 335.8605994155594 + }, + "bul": 0 + }, + { + "pt": { + "x": 815.5038371141129, + "y": 336.20303294082026 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 464.33400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.5515499883267, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.4525520116873, + "y": 465.6246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 772.5148136871517, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.4021915759199, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.4644317912486, + "y": 465.62470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.36542704867236, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 464.3339796757539 + }, + "bul": 0 + }, + { + "pt": { + "x": 323.41218232465, + "y": 336.20302040820366 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.35825928040657, + "y": 335.86057519661944 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.8295864165181, + "y": 334.41 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.35825928040657, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 323.41218232465, + "y": 332.61697959179634 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 204.48602032424608 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.36542704867236, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.4644317912486, + "y": 203.19529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.40219157591997, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 772.5148136871517, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.4525520116873, + "y": 203.1953129527761 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.5515499883263, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 204.48599561969058 + }, + "bul": 0 + }, + { + "pt": { + "x": 815.5038371141129, + "y": 332.61696705917973 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + } + ], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518426411009", + "oldBlockId": "1907276518426411009", + "blockNo": "25044454403", + "customPlateNo": "F007 - R001 - C001 - P004", + "labelNo": "", + "blockName": "背板", + "plateRemark": "2边排孔 + 2边侧槽 + 1边隐形件造型槽", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 1141.268, + "length": 1085.41, + "thickness": 18, + "area": 1.239, + "sealLeft": 0, + "sealRight": 0, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 1141.268, + "cutLength": 1085.41, + "cutArea": 1.23874369988, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": true, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518426411009" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518443188225", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 103.4, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 100 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 100 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 103.4 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 103.4 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518443188225", + "oldBlockId": "1907276518443188225", + "blockNo": "25044454404", + "customPlateNo": "F007 - R001 - C001 - P005", + "labelNo": "", + "blockName": "右侧板", + "plateRemark": "侧边反面斜切63度, 斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 100, + "thickness": 18, + "area": 0.017, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 1, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 99, + "cutArea": 0.016335, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 0, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518443188225" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518443188233", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 103.8, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 100 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 100 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 100 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 103.8 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 103.8 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518443188233", + "oldBlockId": "1907276518443188233", + "blockNo": "25044454405", + "customPlateNo": "F007 - R001 - C001 - P006", + "labelNo": "", + "blockName": "左侧板", + "plateRemark": "侧边正面斜切63度, 斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 100, + "thickness": 18, + "area": 0.017, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 100, + "cutArea": 0.0165, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 0, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518443188233" + } + ], + "tempBestPlaceResult": null, + "tempBestPlaceResultLast": null, + "tempBestPlaceResultLastTime": 0, + "rePlaceLastBoardRequired": false, + "tempPlaceUnregular": false, + "tempPlaceResultOnyUnlockedBoard": false, + "tempPlaceResultError": "", + "moveBlockList": [] + } + }, + "info": { + "times": 0, + "type": "loop" + } +} \ No newline at end of file diff --git a/src/device.ts b/src/device.ts new file mode 100644 index 0000000..30b7967 --- /dev/null +++ b/src/device.ts @@ -0,0 +1,248 @@ + +// 回调函数类型定义 +type ProcessCallback = ( + input: T, + next: (input: T) => R | Promise, + context?: any +) => R | Promise; + + +// 模块配置类型 +type ModuleConfig = Record; + +// 回调函数类型 +type ModuleCallback = (result: R, input?: T) => void | Promise; + +// 扩展后的功能模块接口 +export interface ProcessorModule { + // 主处理函数(可回调) + process?: ProcessCallback; + + // 直接是处理函数(无回调) + handle?: (input: T, next?: (input: T) => R | Promise, context?: Record) => R | Promise; + + // 模块名称(用于标识和排序) + moduleName?: string; + + // 模块配置 + config?: ModuleConfig; + + getConfigList?: () => ModuleConfig + // 设置配置的方法 + setConfig?: (config: ModuleConfig) => void; + + // 前置回调(在模块处理前执行) + before?: ModuleCallback; + + // 后置回调(在模块处理后执行) + after?: ModuleCallback; + + // 错误处理回调 + onError?: (error: unknown, input?: T) => void | Promise; +} + +export interface Processor { + // 注册模块 + use(module: ProcessorModule | ProcessorModule[]): this; + + // 调整模块顺序 + reorderModules(moduleNames: string[]): this; + + // 执行处理流程 + process(input: T): Promise; + + // 获取当前模块列表 + getModules(): ProcessorModule[]; + + // 新增方法:更新模块配置 + updateModuleConfig(moduleName: string, config: ModuleConfig): this; +} + +// 处理器集合接口 +export interface ProcessorCollection { + // 注册处理器 + registerProcessor(name: string, processor: Processor): this; + + // 切换当前处理器 + useProcessor(name: string): Processor; + + // 获取处理器 + getProcessor(name: string): Processor | undefined; +} + +/** 流程管理器 处理器内组件的执行流程管理器 + * + * 负责管理 组件执行顺序 和执行模块 + */ + +export class StepControllerProcessor implements Processor { + private modules: ProcessorModule[] = []; + private modulesMap = new Map>(); + + use(module: ProcessorModule | ProcessorModule[]): this { + const modules = Array.isArray(module) ? module : [module]; + + modules.forEach(m => { + if (m.moduleName) { + this.modulesMap.set(m.moduleName, m); + } + this.modules.push(m); + }); + + return this; + } + + reorderModules(moduleNames: string[]): this { + const orderedModules = moduleNames + .map(name => this.modulesMap.get(name)) + .filter(Boolean) as ProcessorModule[]; + + const remainingModules = this.modules.filter( + m => !m.moduleName || !moduleNames.includes(m.moduleName) + ); + + this.modules = [...orderedModules, ...remainingModules]; + return this; + } + + updateModuleConfig(moduleName: string, config: ModuleConfig): this { + const module = this.modulesMap.get(moduleName); + if (module && module.setConfig) { + module.setConfig(config); + } else if (module) { + module.config = { ...module.config, ...config }; + } + return this; + } + + private async executeModule( + module: ProcessorModule, + input: T, + next: (input: T) => Promise, + context: Record + ): Promise { + try { + // 执行前置回调 + if (module.before) { + await module.before(input, input); + } + + // 执行主处理逻辑(支持两种风格) + let result: R; + + if (module.process) { + // 回调风格 + const processResult = module.process(input, next, context); + result = processResult instanceof Promise ? await processResult : processResult; + } else if (module.handle) { + // 传统风格 + const handleResult = module.handle(input, next, context); + result = handleResult instanceof Promise ? await handleResult : handleResult; + } else { + // 默认直接调用 next + result = await next(input); + } + + // 执行后置回调 + if (module.after) { + await module.after(result, input); + } + + return result; + } catch (error) { + // 执行错误处理 + if (module.onError) { + await module.onError(error, input); + // 即使出错也继续流程(除非抛出) + return await next(input); + } + throw error; + } + } + async process(input: T): Promise { + if (this.modules.length === 0) { + throw new Error("No modules registered"); + } + + let currentIndex = 0; + const modules = this.modules; + const context: Record = {}; + + const executeNext = async (currentInput: T): Promise => { + const currentModule = modules[currentIndex++]; + if (!currentModule) { + return currentInput as unknown as R; + } + + // 创建 next 函数 + const next = async (nextInput: T): Promise => { + return executeNext(nextInput); + }; + + return this.executeModule(currentModule, currentInput, next, context); + }; + + return executeNext(input); + } + + // async process(input: T): Promise { + // if (this.modules.length === 0) { + // throw new Error("No modules registered"); + // } + + // let currentIndex = 0; + // const modules = this.modules; + // const context: Record = {}; // 共享上下文 + + // const executeNext = async (currentInput: T): Promise => { + // const currentModule = modules[currentIndex++]; + // if (!currentModule) { + // return currentInput as unknown as R; + // } + + // try { + // // 执行前置回调 + // if (currentModule.before) { + // await currentModule.before(currentInput, currentInput); + // } + + // // 执行主处理函数 + // const next = async (nextInput: T): Promise => { + // return executeNext(nextInput); + // }; + + // let result: R; + // const processResult = currentModule.process(currentInput, next, context); + + // if (processResult instanceof Promise) { + // result = await processResult; + // } else { + // result = processResult; + // } + + // // 执行后置回调 + // if (currentModule.after) { + // await currentModule.after(result, currentInput); + // } + + // return result; + // } catch (error) { + // // 执行错误处理 + // if (currentModule.onError) { + // await currentModule.onError(error, currentInput); + // } else { + // throw error; // 如果没有错误处理,则向上抛出 + // } + + // // 根据错误处理结果决定是否继续 + // return currentInput as unknown as R; + // } + // }; + + // return executeNext(input); + // } + + getModules(): ProcessorModule[] { + return [...this.modules]; + } +} \ No newline at end of file diff --git a/tests/paser.test.ts b/tests/paser.test.ts index 7cd935a..6533c78 100644 --- a/tests/paser.test.ts +++ b/tests/paser.test.ts @@ -1,5 +1,9 @@ import { test } from '@jest/globals' import { DemoParser } from '../samples/demoParser'; +import { ProcessorModule, StepControllerProcessor } from '../src/device'; +import { ProcessorManager } from '../samples/demoDataHandleServer'; +import { demoHandleGroupCutting } from '../samples/demoDatahandle/demoDataHandle1'; +import testJson from "./test.json" test('demoParser', () => { const text = `FSTART TD 5 @@ -13,4 +17,23 @@ FEND const demoParser = new DemoParser(); const result = demoParser.execTest(text); console.log(result); + + +}) + +test('data', async () => { + const json = testJson + // 创建处理器集合 + const processorManager = new ProcessorManager(); + // 这里省略了 选择处理器的环节 --这里选了demo开料机 + const cuttingHandle = new demoHandleGroupCutting() + // 注册处理器 + processorManager.registerProcessor(cuttingHandle.processorName, cuttingHandle.processor) + // 使用XX处理器 会返回激活【正在使用】的 处理器 + const processor = processorManager.useProcessor(cuttingHandle.processorName) + + const res = await processor.process(json) + console.log('处理器所有流程都结束了', res); + + }) \ No newline at end of file diff --git a/tests/test.json b/tests/test.json new file mode 100644 index 0000000..5b258f9 --- /dev/null +++ b/tests/test.json @@ -0,0 +1,29439 @@ +{ + "blockList": [ + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518380273665", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": 1.2, + "cutWidth": 348.2, + "cutLength": 703.542, + "points": [ + { + "pointX": 0, + "pointY": 703.542, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 48.8, + "curve": 0.41421356237309476, + "radius": 48.80000000000001, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 48.8, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 348.2, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 348.2, + "pointY": 703.542, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgPoints": [ + { + "pointX": 0, + "pointY": 705.342, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 50, + "curve": 0.41421356237309476, + "radius": 50.00000000000002, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 50, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 350, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 350, + "pointY": 705.342, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 198.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 98.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 192.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 104.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 186.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 110.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 180.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 116.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 120.85, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 176.75, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 461.083, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 461.083, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 461.083, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115215 + }, + { + "pointX": 150.123, + "pointY": 440.981, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268363 + }, + { + "pointX": 151.457, + "pointY": 435.376, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 435.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053616 + }, + { + "pointX": 155.96, + "pointY": 431.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 431.674, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053599 + }, + { + "pointX": 196.257, + "pointY": 435.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 468.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053603 + }, + { + "pointX": 205.519, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 495.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053646 + }, + { + "pointX": 170.947, + "pointY": 495.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 474.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 140.318, + "pointY": 468.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.834, + "pointY": 495.013, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268357 + }, + { + "pointX": 142.447, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 166.461, + "pointY": 491.263, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611515 + }, + { + "pointX": 147.365, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.731, + "pointY": 486.414, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140894 + }, + { + "pointX": 153.438, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140949 + }, + { + "pointX": 149.147, + "pointY": 447.683, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 145.979, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268329 + }, + { + "pointX": 191.344, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 444.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.256, + "pointY": 431.889, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114835 + }, + { + "pointX": 185.602, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 440.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 432.353, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140479 + }, + { + "pointX": 178.925, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 437.219, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 433.495, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.143, + "pointY": 435.376, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268338 + }, + { + "pointX": 206.986, + "pointY": 468.747, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 456, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 197.477, + "pointY": 440.981, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114949 + }, + { + "pointX": 204.771, + "pointY": 463.429, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 454.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 198.453, + "pointY": 447.683, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140658 + }, + { + "pointX": 201.621, + "pointY": 457.432, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 453.709, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737182, + "y": 461.0828709383395, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262843, + "y": 461.0828709383395, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.153, + "pointY": 474.389, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268312 + }, + { + "pointX": 176.766, + "pointY": 495.013, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 474.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.235, + "pointY": 477.389, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114727 + }, + { + "pointX": 181.139, + "pointY": 491.263, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 477.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 194.162, + "pointY": 480.389, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140522 + }, + { + "pointX": 185.869, + "pointY": 486.414, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 480.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceB": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 600.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 529.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 573.243, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053597 + }, + { + "pointX": 140.318, + "pointY": 568.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.343, + "pointY": 535.028, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053655 + }, + { + "pointX": 155.96, + "pointY": 531.674, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.64, + "pointY": 531.674, + "radius": 3, + "depth": 2, + "curve": 0.726542528005359 + }, + { + "pointX": 196.257, + "pointY": 535.028, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 207.282, + "pointY": 568.962, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053639 + }, + { + "pointX": 205.519, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.653, + "pointY": 595.361, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053636 + }, + { + "pointX": 170.947, + "pointY": 595.361, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.081, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 574.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 594.434, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 577.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 586.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 535.955, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 568.389, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 556, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 545.663, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 560.535, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 554.854, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.4903010084442, + "y": 526.2470588337941, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915565, + "y": 526.2470588337942, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336713, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.80000000000035, + "y": 604.1423027509678, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663346, + "y": 574.388967136571, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 540.927, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 535.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 544.636, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 532.247, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 98.8, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 198.7999999999999, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 199.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 98.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 193.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 104.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 187.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 110.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 181.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 116.3, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 120.4, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 177.2, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.80000000000035, + "y": 248.79999999999978, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 248.8, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 248.8, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 248.8, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 248.8, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 248.8, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 248.8, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 248.8, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 248.8, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 248.8, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": true, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 8, + "modelCountBack": 9, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": true, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 705.342 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 50 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 655.342 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 50 + }, + "m_EndPoint": { + "m_X": 50, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Center": { + "m_X": 50.00000000000003, + "m_Y": 50.000000000000014 + }, + "m_Radius": 50.00000000000002, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 50, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 350, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 300 + }, + { + "m_StartPoint": { + "m_X": 350, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 350, + "m_Y": 705.342 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 705.342 + }, + { + "m_StartPoint": { + "m_X": 350, + "m_Y": 705.342 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 705.342 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 350 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 703.542 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 48.8 + }, + "bul": 0.41421356237309476 + }, + { + "pt": { + "x": 48.8, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 348.2, + "y": 0 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 703.542 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 654.7420000000001 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 48.8 + }, + "m_EndPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Center": { + "m_X": 48.800000000000026, + "m_Y": 48.80000000000001 + }, + "m_Radius": 48.80000000000001, + "m_StartAngle": 3.141592653589793, + "m_EndAngle": 4.712388980384689, + "m_AllAngle": 1.5707963267948957, + "m_Bul": 0.41421356237309476 + }, + { + "m_StartPoint": { + "m_X": 48.8, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 299.4 + }, + { + "m_StartPoint": { + "m_X": 348.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 348.2, + "m_Y": 703.542 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.542 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [ + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 228.7, + "y": 95.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 278.9, + "y": 95.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 278.9, + "y": 202.3 + }, + "bul": 0 + }, + { + "pt": { + "x": 228.7, + "y": 202.3 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + } + ], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518380273665", + "oldBlockId": "1907276518380273665", + "blockNo": "25044454400", + "customPlateNo": "F007-R001-C001-P001", + "labelNo": "", + "blockName": "顶板2", + "plateRemark": "前边封厚边", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 350, + "length": 705.342, + "thickness": 18, + "area": 0.247, + "sealLeft": 0, + "sealRight": 0, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 350, + "cutLength": 705.342, + "cutArea": 0.24686969999999997, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": true, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518380273665" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518397050890", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": 0.6, + "cutWidth": 498.2, + "cutLength": 798.2, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000007, + "y": 504.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000047, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.8000000000002, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000047, + "y": 604.7423027509686, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000047, + "y": 604.7423027509687, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000013, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000007, + "y": 504.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 198.80000000000047, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.80000000000024, + "y": 604.7423027509692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.79999999999987, + "y": 504.7423027509691, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 604.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 195.85, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 151.75, + "pointY": 504.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 189.85, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 598.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.75, + "pointY": 510.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 183.85, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 592.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.75, + "pointY": 516.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 177.85, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 586.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.75, + "pointY": 522.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 526.792, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 582.692, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 3, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.15, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 148.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 198.80000000000013, + "y": 454.74230275096886, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 6, + "addWidth": 0.1, + "addDepth": 0.15 + }, + "pointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 195.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.15, + "curve": -0.9999999999999999 + }, + { + "pointX": 151.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 192.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 154.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 189.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 157.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 186.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 160.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 183.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 163.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 180.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 166.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 177.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 169.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 174.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.15, + "curve": 0.9999999999999999 + }, + { + "pointX": 172.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.15, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 213.859, + "pointY": 242.459, + "radius": 40.059, + "depth": 2, + "curve": -0.9999999999999999 + }, + { + "pointX": 133.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 210.859, + "pointY": 242.459, + "radius": 37.059, + "depth": 2, + "curve": 0.9999999999999999 + }, + { + "pointX": 136.741, + "pointY": 242.459, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.123, + "pointY": 262.562, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611474 + }, + { + "pointX": 142.829, + "pointY": 240.113, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.457, + "pointY": 268.166, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683165 + }, + { + "pointX": 140.614, + "pointY": 234.796, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053575 + }, + { + "pointX": 142.081, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 208.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053642 + }, + { + "pointX": 176.653, + "pointY": 208.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 229.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053541 + }, + { + "pointX": 207.282, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 268.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053606 + }, + { + "pointX": 191.64, + "pointY": 271.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 271.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053635 + }, + { + "pointX": 151.343, + "pointY": 268.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 234.58, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 2, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268403 + }, + { + "pointX": 170.834, + "pointY": 208.529, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 142.447, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611564 + }, + { + "pointX": 166.461, + "pointY": 212.28, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 147.365, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141409 + }, + { + "pointX": 161.731, + "pointY": 217.128, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 159.773, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 153.438, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 3, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.104, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 149.147, + "pointY": 255.859, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140445 + }, + { + "pointX": 145.979, + "pointY": 246.11, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 4, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 258.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 191.344, + "pointY": 271.653, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872682543 + }, + { + "pointX": 156.256, + "pointY": 271.653, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 262.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.602, + "pointY": 271.189, + "radius": 31.059, + "depth": 2, + "curve": 0.1973885948611406 + }, + { + "pointX": 161.998, + "pointY": 271.189, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 266.323, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 178.925, + "pointY": 270.047, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030139656 + }, + { + "pointX": 168.675, + "pointY": 270.047, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 5, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.986, + "pointY": 234.796, + "radius": 34.059, + "depth": 2, + "curve": 0.27735861872683215 + }, + { + "pointX": 196.143, + "pointY": 268.166, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 247.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.771, + "pointY": 240.113, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486114788 + }, + { + "pointX": 197.477, + "pointY": 262.562, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 248.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 201.621, + "pointY": 246.11, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030140512 + }, + { + "pointX": 198.453, + "pointY": 255.859, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.496, + "pointY": 249.834, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 4, + "lineId": 6, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 130.74056818737137, + "y": 242.45943181262854, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 216.85943181262797, + "y": 242.45943181262854, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.766, + "pointY": 208.529, + "radius": 34.059, + "depth": 2, + "curve": 0.2773586187268398 + }, + { + "pointX": 205.153, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 229.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.139, + "pointY": 212.28, + "radius": 31.059, + "depth": 2, + "curve": 0.19738859486115573 + }, + { + "pointX": 200.235, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 226.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.869, + "pointY": 217.128, + "radius": 28.059, + "depth": 2, + "curve": 0.09210362030141397 + }, + { + "pointX": 194.162, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 187.827, + "pointY": 223.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListFaceB": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 150.67, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.93, + "pointY": 174.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 211.225, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 103.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 136.375, + "pointY": 130.299, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 2, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.947, + "pointY": 108.181, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 176.653, + "pointY": 108.181, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 205.519, + "pointY": 129.153, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053591 + }, + { + "pointX": 207.282, + "pointY": 134.58, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 196.257, + "pointY": 168.514, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053571 + }, + { + "pointX": 191.64, + "pointY": 171.868, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 155.96, + "pointY": 171.868, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053641 + }, + { + "pointX": 151.343, + "pointY": 168.514, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 140.318, + "pointY": 134.58, + "radius": 3, + "depth": 2, + "curve": 0.7265425280053626 + }, + { + "pointX": 142.081, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 170.646, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.133, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 143.056, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 3, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 158.158, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 141.106, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 154.631, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 151.645, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 146.813, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 4, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 164.939, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 161.953, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 152.289, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 5, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 204.544, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 183.467, + "pointY": 129.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 176.954, + "pointY": 109.108, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.311, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 185.647, + "pointY": 126.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 182.661, + "pointY": 116.962, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 6, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 206.494, + "pointY": 135.153, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 167.587, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 189.442, + "pointY": 147.542, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 200.787, + "pointY": 143.007, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 195.955, + "pointY": 157.879, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 192.969, + "pointY": 148.688, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 7, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 2, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 173.7999999999998, + "y": 99.4, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 214.75195321336662, + "y": 129.15333561439692, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 199.1096989915563, + "y": 177.29524391717393, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 148.49030100844396, + "y": 177.29524391717422, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 132.84804678663306, + "y": 129.15333561439746, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 162.615, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 181.618, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 165.982, + "pointY": 168.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 173.8, + "pointY": 158.907, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 190.851, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + }, + { + "pointX": 156.749, + "pointY": 171.295, + "radius": 0, + "depth": 2, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 5, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.8000000000002, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 278.80000000000047, + "y": 604.7423027509686, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000047, + "y": 604.7423027509687, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 228.80000000000015, + "y": 504.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 605.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 275.9, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 231.7, + "pointY": 504.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 269.9, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 599.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.7, + "pointY": 510.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 263.9, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 593.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.7, + "pointY": 516.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 257.9, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 587.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.7, + "pointY": 522.242, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 526.342, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 253.8, + "pointY": 583.142, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 6, + "lineId": 1, + "face": 1, + "knifeName": "", + "knifeRadius": 3, + "depth": 10.3, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 228.80000000000013, + "y": 454.74230275096863, + "z": null + }, + "buls": 0.9999999999999999, + "radius": null + }, + { + "pts": { + "x": 278.8000000000001, + "y": 454.74230275096863, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 7, + "addWidth": 0.2, + "addDepth": 0.3 + }, + "pointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 275.8, + "pointY": 454.742, + "radius": 22, + "depth": 10.3, + "curve": -0.9999999999999999 + }, + { + "pointX": 231.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 272.8, + "pointY": 454.742, + "radius": 19, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 234.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 269.8, + "pointY": 454.742, + "radius": 16, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 237.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 266.8, + "pointY": 454.742, + "radius": 13, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 240.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 263.8, + "pointY": 454.742, + "radius": 10, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 243.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 260.8, + "pointY": 454.742, + "radius": 7, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 246.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 257.8, + "pointY": 454.742, + "radius": 4, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 249.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 254.8, + "pointY": 454.742, + "radius": 1, + "depth": 10.3, + "curve": 0.9999999999999999 + }, + { + "pointX": 252.8, + "pointY": 454.742, + "radius": 0, + "depth": 10.3, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + } + ], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 8, + "modelCountBack": 9, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 500, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 500 + }, + { + "m_StartPoint": { + "m_X": 500, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 500, + "m_Y": 800 + }, + "tagData": 1, + "m_Length": 800 + }, + { + "m_StartPoint": { + "m_X": 500, + "m_Y": 800 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 800 + }, + "tagData": 1, + "m_Length": 500 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 800 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 800 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 498.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 498.2, + "y": 798.2 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 798.2 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_Length": 798.2 + }, + { + "m_StartPoint": { + "m_X": 498.2, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_Length": 498.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 798.2 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 798.2 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518397050890", + "oldBlockId": "1907276518397050890", + "blockNo": "25044454401", + "customPlateNo": "F007-R001-C001-P002", + "labelNo": "", + "blockName": "顶板1", + "plateRemark": "前边封厚边", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 500, + "length": 800, + "thickness": 20, + "area": 0.4, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 1, + "sealBottom": 0, + "cutWidth": 499, + "cutLength": 799, + "cutArea": 0.39870099999999997, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518397050890" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518409633793", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 1032.511, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 1023.711 + }, + "tagData": 1, + "m_Length": 1023.711 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 1023.711 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1023.711 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1023.711 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 1023.711 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 1032.511 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 1032.511 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_Length": 1032.511 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 1032.511 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 1032.511 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518409633793", + "oldBlockId": "1907276518409633793", + "blockNo": "25044454402", + "customPlateNo": "F007-R001-C001-P003", + "labelNo": "", + "blockName": "层板", + "plateRemark": "上下侧面正面斜切63度,斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 1023.711, + "thickness": 6, + "area": 0.17, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 1023.711, + "cutArea": 0.168912315, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518409633793" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518426411009", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.176, + "offsetY": 1, + "cutWidth": 1138.917, + "cutLength": 1083.174, + "points": [ + { + "pointX": 217.514, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 921.403, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 1138.917, + "pointY": 669.438, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 569.458, + "pointY": 1083.174, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 669.438, + "curve": 0, + "radius": 0, + "sealSize": 0, + "isPreCutRequired": false + } + ], + "orgPoints": [ + { + "pointX": 217.963, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 923.305, + "pointY": 0, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 1141.268, + "pointY": 670.82, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 570.634, + "pointY": 1085.41, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + }, + { + "pointX": 0, + "pointY": 670.82, + "curve": 0, + "radius": 0, + "sealSize": 1, + "isPreCutRequired": false + } + ], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.6878156830016, + "y": 258.99999999999994, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 259, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 757.7302620514309, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 409.82039324993667, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.68781568300204, + "y": 409.8203932499368, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 2, + "face": 0, + "knifeName": "V90v-40", + "knifeRadius": 20, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": null, + "pointList": [ + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 318.098, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 820.818, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 0, + "realPointList": [], + "realKnifeId": -1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [ + { + "name": "V90v-40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "V90v-40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + ], + "VLines": [ + { + "isFaceB": false, + "name": "V90v-40", + "value": 0, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.82912664182254, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 307.5812217510182, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.8291266418225, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 831.3347554234352, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v-40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "V90v-40", + "value": -10, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.0958582321697, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 198.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270777, + "y": 198.99796306050695, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.8201417631819, + "y": 334.41, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v-40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -2.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603736, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 320.72665912028793, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603735, + "y": 201.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 201.49999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 818.1893465849366, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 323.35531824057574, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 204, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 204.00000000000003, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 815.5606931698733, + "y": 334.40999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -7.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 325.9839773608636, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 812.9320397548099, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + } + ], + "offsetInfo": "4( )" + } + ], + "modelListFaceA": [ + { + "orderId": "", + "blockId": 0, + "modelId": 1, + "lineId": 1, + "face": 0, + "knifeName": "", + "knifeRadius": 3, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": { + "outline": [ + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.6878156830016, + "y": 258.99999999999994, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 259, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 757.7302620514309, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 733.2280038711823, + "y": 409.82039324993667, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 405.68781568300204, + "y": 409.8203932499368, + "z": null + }, + "buls": 0, + "radius": null + }, + { + "pts": { + "x": 381.1855575027534, + "y": 334.4101966249683, + "z": null + }, + "buls": 0, + "radius": null + } + ], + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + }, + "pointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 3, + "realPointList": [ + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 406.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 754.576, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 731.049, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 407.868, + "pointY": 262, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 384.34, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 265, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 751.422, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 728.869, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 410.048, + "pointY": 403.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 387.495, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 268, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 748.268, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.69, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.227, + "pointY": 400.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 390.649, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 271, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 745.113, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 724.51, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 414.407, + "pointY": 397.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 393.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 274, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 741.959, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 722.33, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 416.586, + "pointY": 394.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 396.958, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 277, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 738.804, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 720.151, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 418.766, + "pointY": 391.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 400.112, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 280, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 735.65, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 717.971, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 420.946, + "pointY": 388.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 403.267, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 283, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 732.496, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 715.791, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 423.125, + "pointY": 385.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 406.421, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 286, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 729.341, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.612, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.305, + "pointY": 382.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 409.575, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 289, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 726.187, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 711.432, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 427.485, + "pointY": 379.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 412.73, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 292, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 723.032, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 709.253, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 429.664, + "pointY": 376.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 415.884, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 295, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 719.878, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.073, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.844, + "pointY": 373.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 419.039, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 298, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 716.724, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.893, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.023, + "pointY": 370.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 422.193, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 301, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 713.569, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 702.714, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 436.203, + "pointY": 367.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 425.347, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 304, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 710.415, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.534, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 438.383, + "pointY": 364.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 428.502, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 307, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 707.261, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 698.354, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 440.562, + "pointY": 361.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 431.656, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 310, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 704.106, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 696.175, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 442.742, + "pointY": 358.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 434.811, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 313, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 700.952, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 693.995, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.922, + "pointY": 355.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 437.965, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 316, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 697.797, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.816, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.101, + "pointY": 352.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 441.119, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 319, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 694.643, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 689.636, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 449.281, + "pointY": 349.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 444.274, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 322, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 691.489, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 687.456, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 451.46, + "pointY": 346.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 447.428, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 325, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 688.334, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.277, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.64, + "pointY": 343.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 450.582, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 328, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 685.18, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 683.097, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 455.82, + "pointY": 340.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 453.737, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 331, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 682.025, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 680.917, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 457.999, + "pointY": 337.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 456.891, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.871, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 678.738, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.179, + "pointY": 334.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 460.046, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeId": 1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [], + "VLines": [], + "offsetInfo": "" + }, + { + "orderId": "", + "blockId": 0, + "modelId": 2, + "lineId": 2, + "face": 0, + "knifeName": "V90v-40", + "knifeRadius": 20, + "depth": 10, + "canSpace": false, + "isRect": false, + "isTilt": false, + "type": "", + "knife": null, + "modelWidth": 0, + "modelLength": 0, + "modelStartPoint": null, + "modelEndPoint": null, + "originModeling": null, + "pointList": [ + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 318.098, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 362.096, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 199, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 820.818, + "pointY": 334.41, + "radius": 0, + "depth": 10, + "curve": 0 + }, + { + "pointX": 776.821, + "pointY": 469.82, + "radius": 0, + "depth": 10, + "curve": 0 + } + ], + "realKnifeRadius": 0, + "realPointList": [], + "realKnifeId": -1, + "isCncCanNotProcess": true, + "cncCanNotProcessType": "", + "isCutting": true, + "offsetList": [ + { + "name": "V90v-40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "V90v-40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + }, + { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + }, + { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + ], + "VLines": [ + { + "isFaceB": false, + "name": "V90v-40", + "value": 0, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.82912664182254, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 307.5812217510182, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 318.098, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 354.8291266418225, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 362.096, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 188.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 199, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 831.3347554234352, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 820.818, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.821, + "y": 469.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 784.0879243974632, + "y": 479.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v-40", + "offset": 0, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "V90v-40", + "value": -10, + "knifeId": -1, + "knifeRadius": 20, + "depth": 10, + "points": [ + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.3613934414942, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 318.0958582321697, + "y": 334.40999999999997, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 328.6126364811515, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 362.0945200833167, + "y": 198.99796306050692, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 369.36139344149416, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270777, + "y": 198.99796306050695, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296145, + "y": 209, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 820.8201417631819, + "y": 334.41, + "z": 10, + "bul": 0, + "r": 0 + }, + { + "x": 810.3033863397467, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 769.5555555296146, + "y": 459.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 776.8224799270778, + "y": 469.82203693949305, + "z": 10, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "V90v-40", + "offset": -10, + "radius": 20, + "depth": 10, + "angle": 1.571 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -2.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603736, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 320.72665912028793, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 363.9123483603735, + "y": 201.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 201.49999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 818.1893465849366, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 775.0046388824036, + "y": 467.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -2.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 323.35531824057574, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 365.72869672074705, + "y": 204, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 204.00000000000003, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 815.5606931698733, + "y": 334.40999999999997, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 773.1882777648073, + "y": 464.82, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + }, + { + "isFaceB": false, + "name": "ZD5", + "value": -7.5, + "knifeId": -1, + "knifeRadius": 2.5, + "depth": 10, + "points": [ + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 325.9839773608636, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 367.54504508112063, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 206.5, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 812.9320397548099, + "y": 334.41, + "z": 0, + "bul": 0, + "r": 0 + }, + { + "x": 771.3719166472108, + "y": 462.32, + "z": 0, + "bul": 0, + "r": 0 + } + ], + "offset": { + "name": "ZD5", + "offset": -7.5, + "radius": 2.5, + "depth": 10, + "angle": 0 + } + } + ], + "offsetInfo": "4( )" + } + ], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": true, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 2, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": true, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 217.963, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 923.305, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.342 + }, + { + "m_StartPoint": { + "m_X": 923.305, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1141.268, + "m_Y": 670.82 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3420034061492 + }, + { + "m_StartPoint": { + "m_X": 1141.268, + "m_Y": 670.82 + }, + "m_EndPoint": { + "m_X": 570.634, + "m_Y": 1085.41 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3424913160982 + }, + { + "m_StartPoint": { + "m_X": 570.634, + "m_Y": 1085.41 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 670.82 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3424913160982 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 670.82 + }, + "m_EndPoint": { + "m_X": 217.963, + "m_Y": 0 + }, + "tagData": 1, + "tagData2": 0, + "m_Length": 705.3420034061492 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 217.514, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 921.403, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 1138.917, + "y": 669.438 + }, + "bul": 0 + }, + { + "pt": { + "x": 569.458, + "y": 1083.174 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 217.514, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.889 + }, + { + "m_StartPoint": { + "m_X": 921.403, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8888946701744 + }, + { + "m_StartPoint": { + "m_X": 1138.917, + "m_Y": 669.438 + }, + "m_EndPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8899277422571 + }, + { + "m_StartPoint": { + "m_X": 569.458, + "m_Y": 1083.174 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 669.438 + }, + "tagData": 0, + "tagData2": 0, + "m_Length": 703.8891187253856 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [ + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 812.4284830162819, + "y": 483.95274355862404 + }, + "bul": 0 + }, + { + "pt": { + "x": 779.2588165160631, + "y": 508.05198056447705 + }, + "bul": 0 + }, + { + "pt": { + "x": 766.3757445019467, + "y": 490.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 372.5412986195547, + "y": 490.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 359.65832880799826, + "y": 508.05196443564796 + }, + "bul": 0 + }, + { + "pt": { + "x": 326.48858181925226, + "y": 483.9528382128452 + }, + "bul": 0 + }, + { + "pt": { + "x": 339.37155163080985, + "y": 466.2208737771955 + }, + "bul": 0 + }, + { + "pt": { + "x": 303.20394344493695, + "y": 354.9100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 287.58122175101823, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 287.58122175101823, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 303.20394344493695, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 339.3715516308099, + "y": 202.59912622280433 + }, + "bul": 0 + }, + { + "pt": { + "x": 326.48858181925266, + "y": 184.86716178715557 + }, + "bul": 0 + }, + { + "pt": { + "x": 359.65832880799763, + "y": 160.76803556435135 + }, + "bul": 0 + }, + { + "pt": { + "x": 372.54129861955454, + "y": 178.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 766.375744501946, + "y": 178.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 779.2588165160631, + "y": 160.7680194355229 + }, + "bul": 0 + }, + { + "pt": { + "x": 812.4284830162819, + "y": 184.8672564413759 + }, + "bul": 0 + }, + { + "pt": { + "x": 799.5454110021647, + "y": 202.59923700585415 + }, + "bul": 0 + }, + { + "pt": { + "x": 835.7121611642901, + "y": 313.9099999999998 + }, + "bul": 0 + }, + { + "pt": { + "x": 851.3347554234352, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 851.3347554234352, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 835.7121611642903, + "y": 354.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 799.5454110021647, + "y": 466.22076299414584 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 805.1630385458965, + "y": 473.95274355862404 + }, + "bul": 0 + }, + { + "pt": { + "x": 771.9933720456777, + "y": 498.05198056447705 + }, + "bul": 0 + }, + { + "pt": { + "x": 759.1103000315613, + "y": 480.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 379.8066920610485, + "y": 480.32000000000005 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.92372224949236, + "y": 498.05196443564785 + }, + "bul": 0 + }, + { + "pt": { + "x": 333.7539752607463, + "y": 473.9528382128452 + }, + "bul": 0 + }, + { + "pt": { + "x": 346.6369450723041, + "y": 456.2208737771954 + }, + "bul": 0 + }, + { + "pt": { + "x": 313.7185799260885, + "y": 354.9100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 298.0958582321697, + "y": 354.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 298.0958582321697, + "y": 313.90999999999985 + }, + "bul": 0 + }, + { + "pt": { + "x": 313.7185799260885, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 346.63694507230406, + "y": 212.5991262228044 + }, + "bul": 0 + }, + { + "pt": { + "x": 333.7539752607469, + "y": 194.8671617871555 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.9237222494919, + "y": 170.7680355643513 + }, + "bul": 0 + }, + { + "pt": { + "x": 379.8066920610488, + "y": 188.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 759.1103000315616, + "y": 188.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 771.9933720456776, + "y": 170.7680194355229 + }, + "bul": 0 + }, + { + "pt": { + "x": 805.1630385458964, + "y": 194.86725644137596 + }, + "bul": 0 + }, + { + "pt": { + "x": 792.2799665317791, + "y": 212.5992370058542 + }, + "bul": 0 + }, + { + "pt": { + "x": 825.197547504037, + "y": 313.90999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 840.8201417631819, + "y": 313.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 840.8201417631819, + "y": 354.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 825.1975475040371, + "y": 354.91 + }, + "bul": 0 + }, + { + "pt": { + "x": 792.2799665317793, + "y": 456.22076299414596 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 821.8150549758003, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 821.3437306830127, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 821.8150549758003, + "y": 335.8605994155594 + }, + "bul": 0 + }, + { + "pt": { + "x": 820.7611439442396, + "y": 336.20303294082026 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 469.33400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.1842722235191, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.0852742468801, + "y": 470.6246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 776.1475359223443, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 362.76949485517287, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.8317350705015, + "y": 470.62470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.73273032792525, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603736, + "y": 470.31999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603736, + "y": 469.333979675754 + }, + "bul": 0 + }, + { + "pt": { + "x": 318.15486408407435, + "y": 336.20302040820377 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.1009410398309, + "y": 335.8605751966195 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.57226817594244, + "y": 334.4100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 317.1009410398309, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 318.15486408407435, + "y": 332.6169795917964 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603735, + "y": 199.4860203242461 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.4123483603735, + "y": 198.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.73273032792525, + "y": 198.50000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 361.8317350705015, + "y": 198.19529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 362.76949485517287, + "y": 198.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 776.1475359223446, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.0852742468801, + "y": 198.19531295277605 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.1842722235193, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 198.49999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 777.5046388824036, + "y": 199.48599561969053 + }, + "bul": 0 + }, + { + "pt": { + "x": 820.7611439442396, + "y": 332.61696705917973 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 819.186401560737, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.7150772679494, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 819.186401560737, + "y": 335.86059941555936 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.1324905291763, + "y": 336.2030329408202 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 466.83400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.3679111059226, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.2689131292838, + "y": 468.1246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 774.331174804748, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 364.5858432155463, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.648083430875, + "y": 468.12470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.54907868829866, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 467.81999999999994 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 466.833979675754 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.78352320436215, + "y": 336.2030204082037 + }, + "bul": 0 + }, + { + "pt": { + "x": 319.7296001601187, + "y": 335.8605751966195 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.20092729623025, + "y": 334.4100000000001 + }, + "bul": 0 + }, + { + "pt": { + "x": 319.7296001601187, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 320.78352320436215, + "y": 332.6169795917964 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 201.9860203242461 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.22869672074705, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.5490786882988, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 363.64808343087503, + "y": 200.69529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 364.5858432155464, + "y": 201 + }, + "bul": 0 + }, + { + "pt": { + "x": 774.3311748047481, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.2689131292838, + "y": 200.6953129527761 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.367911105923, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 201.00000000000003 + }, + "bul": 0 + }, + { + "pt": { + "x": 775.6882777648073, + "y": 201.98599561969058 + }, + "bul": 0 + }, + { + "pt": { + "x": 818.1324905291763, + "y": 332.6169670591796 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 816.5577481456736, + "y": 332.9594005844406 + }, + "bul": 0 + }, + { + "pt": { + "x": 816.086423852886, + "y": 334.40999999999997 + }, + "bul": 0 + }, + { + "pt": { + "x": 816.5577481456736, + "y": 335.8605994155594 + }, + "bul": 0 + }, + { + "pt": { + "x": 815.5038371141129, + "y": 336.20303294082026 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 464.33400438030947 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.5515499883267, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.4525520116873, + "y": 465.6246870472239 + }, + "bul": 0 + }, + { + "pt": { + "x": 772.5148136871517, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.4021915759199, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.4644317912486, + "y": 465.62470094532136 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.36542704867236, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 465.32 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 464.3339796757539 + }, + "bul": 0 + }, + { + "pt": { + "x": 323.41218232465, + "y": 336.20302040820366 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.35825928040657, + "y": 335.86057519661944 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.8295864165181, + "y": 334.41 + }, + "bul": 0 + }, + { + "pt": { + "x": 322.35825928040657, + "y": 332.9594248033806 + }, + "bul": 0 + }, + { + "pt": { + "x": 323.41218232465, + "y": 332.61697959179634 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 204.48602032424608 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.04504508112063, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.36542704867236, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 365.4644317912486, + "y": 203.19529905467863 + }, + "bul": 0 + }, + { + "pt": { + "x": 366.40219157591997, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 772.5148136871517, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.4525520116873, + "y": 203.1953129527761 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.5515499883263, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 203.5 + }, + "bul": 0 + }, + { + "pt": { + "x": 773.8719166472108, + "y": 204.48599561969058 + }, + "bul": 0 + }, + { + "pt": { + "x": 815.5038371141129, + "y": 332.61696705917973 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + } + ], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518426411009", + "oldBlockId": "1907276518426411009", + "blockNo": "25044454403", + "customPlateNo": "F007-R001-C001-P004", + "labelNo": "", + "blockName": "背板", + "plateRemark": "2边排孔+2边侧槽+1边隐形件造型槽", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 1141.268, + "length": 1085.41, + "thickness": 18, + "area": 1.239, + "sealLeft": 0, + "sealRight": 0, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 1141.268, + "cutLength": 1085.41, + "cutArea": 1.23874369988, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 1, + "isUnRegular": true, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518426411009" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518443188225", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 103.4, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 100 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 100 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 103.4 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 103.4 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_Length": 103.4 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.4 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.4 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518443188225", + "oldBlockId": "1907276518443188225", + "blockNo": "25044454404", + "customPlateNo": "F007-R001-C001-P005", + "labelNo": "", + "blockName": "右侧板", + "plateRemark": "侧边反面斜切63度,斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 100, + "thickness": 18, + "area": 0.017, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 1, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 99, + "cutArea": 0.016335, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 0, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518443188225" + }, + { + "blockDetail": { + "organId": 0, + "blockId": "1907276518443188233", + "pointDetail": [], + "modelDetail": [], + "holeDetail": [], + "offsetX": 1.2, + "offsetY": -4.4, + "cutWidth": 164.2, + "cutLength": 103.8, + "points": [], + "orgPoints": [], + "orgContourData": null, + "holes": [], + "holeListFaceA": [], + "holeListFaceB": [], + "holeListThrough": [], + "holeListSide": [], + "models": [], + "modelListFaceA": [], + "modelListFaceB": [], + "modelListThrough": [], + "modelListSide": [], + "thickness": 18, + "isUnRegular": false, + "bigHoleInFaceA": false, + "holeCountFront": 0, + "holeCountBack": 0, + "holeCountThrough": 0, + "holeCountSide": 0, + "holeCountLeft": 0, + "holeCountRight": 0, + "holeCountTop": 0, + "holeCountBottom": 0, + "holeCountBevelled": 0, + "modelCountFront": 0, + "modelCountBack": 0, + "modelCountThrough": 0, + "hasModelThrogh": false, + "isTwoFaceProcess": false, + "placeStyleFront": 0, + "placeStyleFrontReverse": 1, + "placeStyleBack": 4, + "placeStyleBackReverse": 7, + "labelPosX": -1, + "labelPosY": -1, + "isInited": false, + "isChecked": false, + "isOffsetRounding": false, + "offsetKnifeRadius": 3, + "isUseSameKnifeToHelpCut": false, + "useSameKnifeToHelpCutGap": 0, + "preMillingExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "modelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "vKnifeModelExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "sameKnfieHelpExpandSize": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "currentSizeExpand": { + "left": 3.005, + "right": 3.005, + "top": 3.005, + "bottom": 3.005, + "width": 6.01, + "length": 6.01 + }, + "borderContour": { + "placeStyle": 0, + "borderFinal": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 166, + "m_Y": 100 + }, + "tagData": 1, + "m_Length": 100 + }, + { + "m_StartPoint": { + "m_X": 166, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 100 + }, + "tagData": 0, + "m_Length": 166 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 100 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "tagData": 0, + "m_Length": 100 + } + ], + "borderOrg": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "borderPreMilling": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "polylineOrg": { + "_isErase": false, + "IsEmbedEntity": false, + "OnlyRenderType": true, + "HasEdgeRenderType": false, + "HasPlaceFaceRenderType": false, + "HasBigHoleFaceRenderType": false, + "_CacheDrawObject": {}, + "_Color": 7, + "_Matrix": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_SpaceOCS": { + "elements": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + }, + "_Visible": true, + "_VisibleInRender": true, + "_Freeze": false, + "_LockMaterial": false, + "__ProcessingGroupList": [], + "NeedUpdateFlag": 0, + "AutoUpdate": true, + "__UpdateVersion__": 1, + "_RoomName": "", + "_CabinetName": "", + "_LineData": [ + { + "pt": { + "x": 0, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 0 + }, + "bul": 0 + }, + { + "pt": { + "x": 164.2, + "y": 103.8 + }, + "bul": 0 + }, + { + "pt": { + "x": 0, + "y": 103.8 + }, + "bul": 0 + } + ], + "_DisplayAccuracy": 0, + "_ClosedMark": true + }, + "border": [ + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 0 + }, + "m_EndPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_Length": 103.8 + }, + { + "m_StartPoint": { + "m_X": 164.2, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_Length": 164.2 + }, + { + "m_StartPoint": { + "m_X": 0, + "m_Y": 103.8 + }, + "m_EndPoint": { + "m_X": 0, + "m_Y": 0 + }, + "m_Length": 103.8 + } + ], + "borderSameKnifeHelpCut": null, + "cutLines": null, + "cutLinesSameKnifeHelpCut": null, + "borderMoving": null, + "borderModelThrough": [], + "borderModelThroughR": [], + "cutLinesModelThrough": [], + "borderInnerPlace": [], + "blockInnerSpace": [], + "blockOuterSpace": null, + "polylines2vModel": [], + "polylinesOutModel": [], + "placeContours": [] + }, + "remarkParams": {} + }, + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "roomId": 0, + "bodyId": 0, + "blockId": "1907276518443188233", + "oldBlockId": "1907276518443188233", + "blockNo": "25044454405", + "customPlateNo": "F007-R001-C001-P006", + "labelNo": "", + "blockName": "左侧板", + "plateRemark": "侧边正面斜切63度,斜边隐形连接件", + "remark1": "", + "remark2": "", + "remark3": "", + "remark4": "", + "remark5": "", + "extraRemark": {}, + "width": 166, + "length": 100, + "thickness": 18, + "area": 0.017, + "sealLeft": 0, + "sealRight": 1, + "sealTop": 0, + "sealBottom": 0, + "cutWidth": 165, + "cutLength": 100, + "cutArea": 0.0165, + "isAdditionalBlock": false, + "isRemainBlock": false, + "texture": 0, + "placeHole": 0, + "isUnRegular": false, + "isTurnFaceToPlace": true, + "isTwoFaceToPlace": false, + "isCurvedGroundLine": false, + "isPlaced": false, + "fullBoardId": 0, + "boardId": 0, + "placeId": 0, + "placeX": 0, + "placeY": 0, + "placeStyle": 0, + "cutRegion": 0, + "cutOrder": 0, + "cutPointId": 0, + "placeWidth": 0, + "placeLength": 0, + "placeSealLeft": 0, + "placeSealRight": 0, + "placeSealTop": 0, + "placeSealBottom": 0, + "orgSizeExpand": { + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "width": 0, + "length": 0 + }, + "placeOffX": 0, + "placeOffY": 0, + "isAutoPlaced": true, + "isOutBoard": false, + "isOverlap": false, + "placeDirection": "→", + "placeDirection_Length": "→", + "isDrilling": true, + "isModeling": true, + "overBlockFlag": 0, + "isCutOtherFace": false, + "isCutTurnOver": false, + "holeCountSideLeft": 0, + "holeCountSideRight": 0, + "holeCountSideTop": 0, + "holeCountSideBottom": 0, + "holeListFaceA": [], + "holeListFaceB": [], + "modelListFaceA": [], + "modelListFaceB": [], + "labelPosX": 0, + "labelPosY": 0, + "isCncLabelA": false, + "isCncLabelB": false, + "isCncLabelTurnOver": false, + "type": 2, + "openDoorType": 0, + "_blockId": "1907276518443188233" + } + ], + "materialList": [ + { + "orderId": "1907276351086264320", + "goodsId": "BD10010006", + "goodsName": "18mm-湖水绿-禾香板", + "spec": "", + "material": "禾香板", + "color": "湖水绿", + "brand": "虎宝宝", + "width": 1220, + "length": 2440, + "thickness": 18, + "boardCount": 0, + "cutKnifeGap": 0.01, + "hasTexture": true, + "orgWidth": 1220, + "orgLength": 2440, + "remainBoardList": [], + "diameter": 6 + } + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index f89957e..2452d09 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,12 @@ { - "include": ["src"], + "include": ["src/**/*"], "exclude": ["node_modules","samples","tests"], "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - + // "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "target": "ES6", /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ // "rootDir": "./", /* Specify the root folder within your source files. */ @@ -15,12 +15,14 @@ /* Emit */ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ "outDir": "./dist", /* Specify an output folder for all emitted files. */ + "rootDir": "./src", "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "skipLibCheck": true, /* Skip type checking all .d.ts files. */ + "sourceMap": true } }