From b7399fd6e757b4b82ae98edc9df408fb198f4da6 Mon Sep 17 00:00:00 2001 From: lixiang <504331699@qq.com> Date: Tue, 22 Jul 2025 18:38:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../businessCapability/blockDetailHelper.ts | 2 +- samples/confClass.ts | 32 +- samples/demoDatahandle/demoDataHandle1.ts | 75 +- samples/demoParser.ts | 2 +- .../RectOptimizeWorker/RectOptimizeMachine.js | 1752 + .../RectOptimizeWorker/RectOptimizeMachine.ts | 1746 + .../RectOptimizeWorkerWorker.js | 75 + .../RectOptimizeWorkerWorker.ts | 42 + .../moduleManager/RectOptimizeWorker/bang.js | 60 + .../moduleManager/RectOptimizeWorker/bang.ts | 1605 + .../module_RectOptimizeMachine.ts | 245 + .../moduleManager/module_autoCalcCutOrder.ts | 130 + samples/moduleManager/module_checkBlocks.ts | 76 + samples/moduleManager/module_checkMaterial.ts | 77 + samples/moduleManager/module_demoCallback.ts | 58 + .../module_handleMaterialPlaceResult.ts | 152 + ...module_handlePlaceResultToPlaceMaterial.ts | 639 + samples/moduleManager/module_init2VModel.ts | 83 + .../moduleManager/module_resetModelContour.ts | 66 + samples/moduleManager/module_tools.ts | 93 + src/device.ts | 38 +- src/paser.test.ts | 221 + src/test.json | 29451 ++++++++++++++++ 23 files changed, 36662 insertions(+), 58 deletions(-) create mode 100644 samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.js create mode 100644 samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.ts create mode 100644 samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.js create mode 100644 samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.ts create mode 100644 samples/moduleManager/RectOptimizeWorker/bang.js create mode 100644 samples/moduleManager/RectOptimizeWorker/bang.ts create mode 100644 samples/moduleManager/module_RectOptimizeMachine.ts create mode 100644 samples/moduleManager/module_autoCalcCutOrder.ts create mode 100644 samples/moduleManager/module_checkBlocks.ts create mode 100644 samples/moduleManager/module_checkMaterial.ts create mode 100644 samples/moduleManager/module_demoCallback.ts create mode 100644 samples/moduleManager/module_handleMaterialPlaceResult.ts create mode 100644 samples/moduleManager/module_handlePlaceResultToPlaceMaterial.ts create mode 100644 samples/moduleManager/module_init2VModel.ts create mode 100644 samples/moduleManager/module_resetModelContour.ts create mode 100644 samples/moduleManager/module_tools.ts create mode 100644 src/paser.test.ts create mode 100644 src/test.json diff --git a/samples/businessCapability/blockDetailHelper.ts b/samples/businessCapability/blockDetailHelper.ts index 9304a1a..998b977 100644 --- a/samples/businessCapability/blockDetailHelper.ts +++ b/samples/businessCapability/blockDetailHelper.ts @@ -1,6 +1,6 @@ import { FaceType, PlaceBlock, PlaceBlockDetail, PlaceBorderContour, PlaceMaterial, PlaceStyle, SizeExpand } from "../confClass" import { BlockDetailHelperBase } from "../handleAbility/blockDetailHelperBase" -import { PolylineHelper } from "../handleAbility/common/LayoutEngine/PolylineHelper" +// import { PolylineHelper } from "../handleAbility/common/LayoutEngine/PolylineHelper" import { KnifeHelper } from "../handleAbility/knifeHelper" diff --git a/samples/confClass.ts b/samples/confClass.ts index c4becaf..1c5ee71 100644 --- a/samples/confClass.ts +++ b/samples/confClass.ts @@ -237,27 +237,7 @@ export enum KnifeType { BLADE = 5 } -/** 刀功能: - ** 1-CUT开料/切割 2-PULLING_GROOVE拉槽 3-MILLING_MODEL铣型 4-MILLING_HOLE铣孔 - ** 5-DRILL_HOLE钻孔 6-RAMINO拉米诺 7-EASY_FASTEN乐扣 8-T_TYPE T型 */ -export enum AbilityType { - /** 1开料/切割 */ - CUT = 1, - /** 2拉槽 */ - PULLING_GROOVE = 2, - /** 3铣型 */ - MILLING_MODEL = 3, - /** 4铣孔 */ - MILLING_HOLE = 4, - /** 5钻孔 */ - DRILL_HOLE = 5, - /** 6拉米诺 */ - RAMINO = 6, - /** 7乐扣 */ - EASY_FASTEN = 7, - /** 8T型 */ - T_TYPE = 8 -} + /** 枚举 坐标轴类型 */ export enum AxisType { @@ -511,13 +491,15 @@ export class PlaceBlock { } /** 左侧孔数 HoleCount_Left */ - holeCountLeft() { return this.blockDetail && this.blockDetail.holeCountLeft } + holeCountLeft() { return this?.blockDetail?.holeCountLeft || 0 } /** 右侧孔数 HoleCount_Right */ - holeCountRight() { return this.blockDetail && this.blockDetail.holeCountRight } + holeCountRight() { + return this?.blockDetail?.holeCountRight || 0 + } /** 侧孔数 HoleCount_Upper */ - holeCountTop() { return this.blockDetail && this.blockDetail.holeCountTop } + holeCountTop() { return this?.blockDetail?.holeCountTop || 0 } /** 侧孔数 HoleCount_Under */ - holeCountBottom() { return this.blockDetail && this.blockDetail.holeCountBottom } + holeCountBottom() { return this?.blockDetail?.holeCountBottom || 0 } /** 正面造型数 */ modelCountFront(): number { return this.blockDetail && this.blockDetail.modelCountFront || 0 diff --git a/samples/demoDatahandle/demoDataHandle1.ts b/samples/demoDatahandle/demoDataHandle1.ts index 7a7b729..7510598 100644 --- a/samples/demoDatahandle/demoDataHandle1.ts +++ b/samples/demoDatahandle/demoDataHandle1.ts @@ -5,7 +5,10 @@ import { ToolsModule } from "../moduleManager/module_tools"; import { CheckMaterial } from "../moduleManager/module_checkMaterial"; import { CheckBlocks } from "../moduleManager/module_checkBlocks"; import { ResetModelContour } from "../moduleManager/module_resetModelContour"; -import { Init2VModel } from "../moduleManager/module_init2VModel"; +import { AutoCalcCutOrder } from "../moduleManager/module_autoCalcCutOrder"; +import { HandleMaterialPlaceResult } from "../moduleManager/module_handleMaterialPlaceResult"; +import { handlePlaceResultToPlaceMaterial } from "../moduleManager/module_handlePlaceResultToPlaceMaterial"; +// import { Init2VModel } from "../moduleManager/module_init2VModel"; /** * demo 开料机处理器 * @@ -15,6 +18,7 @@ export class demoHandleGroupCutting { processorName = "cutting" processor: StepControllerProcessor constructor() { + // 主线程 const demoCallbackModule: ProcessorModule = { moduleName: "callbackStyle", process(input, next, context) { @@ -41,28 +45,67 @@ export class demoHandleGroupCutting { this.processor = new StepControllerProcessor(); this.processor.setOnMessageFunc(this.getMessageByModules) + this.processor.use([ - demoCallbackModule, + // demoCallbackModule, ToolsModule, // 刀库 - CheckMaterial, - CheckBlocks, - ResetModelContour, - Init2VModel, + // CheckMaterial, + // CheckBlocks, + // ResetModelContour, + // Init2VModel, RectOptimizeMachineModule, // 优化 - { - moduleName: "final", - process(input, next) { - // 不调用 next,终止流程 - console.log('结束了') - return next(input); - } - } + // { + // moduleName: "final", + // process(input, next,context) { + // // 不调用 next,终止流程 + // console.log('结束了') + // return next(input); + // } + // } ]) } - - getMessageByModules(data) { + // 获取到模块的消息 + async getMessageByModules(data) { console.log('getMessageByModules', data); + this.processor = new StepControllerProcessor(); + switch (data.moduleName) { + // 处理优化模块的消息 + case 'RectOptimizeMachine': + + // 处理优化数据 + this.processor.use([HandleMaterialPlaceResult, + handlePlaceResultToPlaceMaterial, + AutoCalcCutOrder]) + this.processor.setOnMessageFunc(this.getMessageByModules) + let bList = [] + data.pm.blockList.forEach(b => { + bList[b.blockNo] = b + }); + let params = { + bList: bList, + best:data.result[0], + yl:data.result[1], + pm:data.pm, + width:data.pm.width, + length:data.pm.length + } + let context = { + MaterialPlaceSource:params + } + let res = await this.processor.process(data.input,context) + + console.log(res); + + // this.processor.use(handlePlaceResultToPlaceMaterial) + // let params1 = res + // let res1 = await this.processor.process(res) + break; + + default: + break; + } } + } \ No newline at end of file diff --git a/samples/demoParser.ts b/samples/demoParser.ts index 10d186f..e792f58 100644 --- a/samples/demoParser.ts +++ b/samples/demoParser.ts @@ -1,5 +1,5 @@ -import { ConfigBase } from "../src/base"; +import { ConfigBase } from "../src"; import { ParserBase } from "../src/parsers"; import { _knifeType, CodeParams } from "./confClass"; import { knifeData, knifeData1, knifeData2 } from "./demoKnives"; diff --git a/samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.js b/samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.js new file mode 100644 index 0000000..ffe0f1a --- /dev/null +++ b/samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.js @@ -0,0 +1,1752 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RectOptimizeMachine = void 0; +var bang_1 = require("./bang"); +var RectOptimizeMachine = /** @class */ (function () { + function RectOptimizeMachine() { + this._Stop = false; + } + RectOptimizeMachine.prototype.Stop = function (d) { + 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 余料板是否排入双面加工的小板 + */ + RectOptimizeMachine.prototype.Start = function (xbangs, bigBang, bigBangSL, xyhcs, isdtwosided, gap, hssf, YuLiaoBoardDo2FaceBlock) { + return __awaiter(this, void 0, void 0, function () { + var bestFit, bestInv, i, inv, re_ylb, fit, qfsh, tempArr, info; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this._Stop = false; + bestFit = Number.POSITIVE_INFINITY // 最佳的利用率 35*10 + 最后一张板 + ; + i = 0; + fit = null; + _a.label = 1; + case 1: + if (!!this._Stop) return [3 /*break*/, 3]; + qfsh = hssf ? false : i % 2 === 0 // 电子锯算法, 永远不合并空间 + ; + 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); + 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) + // } + return [4 /*yield*/, Sleep(Math.max(5, 20 - Math.floor(xbangs.length / 10000)))]; + case 2: + /** 优化次数限制 逻辑 */ + // if (xyhcs == i) { + // await this.Stop(info); + // info.type = 'stop' + // this.CallBack(inv, re_ylb, fit, info) + // } + _a.sent(); + i++; + return [3 /*break*/, 1]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return RectOptimizeMachine; +}()); +exports.RectOptimizeMachine = RectOptimizeMachine; +// 优化所有余料 +function YLYH_all(xbangs, yuliao_bang, ylzs, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) { + var get_regelt = []; + var temp_yan_bang = []; + var re_Bigbang = []; + temp_yan_bang = []; + // console.log('余料总数:', ylzs) + for (var i = 0; i < ylzs.length; i++) { + if (xbangs.length == 0) { + break; + } + else { + temp_yan_bang = []; + for (var sl = 0; sl < ylzs[i]; sl++) { + temp_yan_bang.push(yuliao_bang[i]); + } + var temp = []; + temp = ylyh(xbangs, temp_yan_bang, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock); + for (var yhsl = 0; yhsl < temp[0].length; yhsl++) { + get_regelt.push(temp[0][yhsl]); + } + for (var 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, yuliao_bang, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) { + var finbang; + var yh_result = []; + var l; + var w; + var ylzs; // 余料张数 + var temp_yan_bang = []; + var re_yan_bang = []; + var temp_max_YH = []; + 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 (var i = 0; i < ylzs; i++) { + yh_result.push(temp_max_YH[i]); + re_yan_bang.push(yuliao_bang[0]); + for (var n = 0; n < temp_max_YH[i].length; n++) { + for (var 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, B_bang, ylsl, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock) { + var same_yh_bang = []; + var temp_max_YH = []; + var ylbang_max_yh = []; + var temp_same_yh; + var isend = false; + var Bigbang = []; + Bigbang.push(B_bang[B_bang.length - 1]); + var ylbang = B_bang.slice(); + ylbang.pop(); + var tempresult = []; + tempresult = YLYH_all(xbangs, ylbang, ylsl, xyhcs, qfsh, isdtwosided, gap, YuLiaoBoardDo2FaceBlock); // 余料优化 + for (var 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 (var 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, B_bang, cs, qfsh, isdtwosided, gap) { + var xbangs_bak = xbangs.slice(); + var bestFit = Number.POSITIVE_INFINITY; + // let bestFit = Infinity; + var bestInv; + for (var i = 0; i < cs; i++) { + xbangs = xbangs_bak.slice(); + var result_yh = void 0; + if (qfsh) + result_yh = CBJS(xbangs, B_bang, gap, isdtwosided); + else + result_yh = CBJS1(xbangs, B_bang, gap, isdtwosided); + var fit_1 = GetInvFit(result_yh); + if (fit_1 < bestFit) { + bestFit = fit_1; + bestInv = result_yh; + } + } + return bestInv; +} +// 得到利用率最高板材,及返回倍数板及剩下的小板 +function Get_bs_bang(inv, listbang, isdtwosided) { + var bestCon = arrayMax(inv, GetConFit)[0]; // 最优大板 + var temp_yh_bang = []; + var temp_list_yh_bang = []; + var isfindend = false; + while (isfindend == false) { + if (listbang.length == 0) { + break; + } + var unPlacelist = listbang.slice(); + for (var _i = 0, bestCon_1 = bestCon; _i < bestCon_1.length; _i++) { + var br = bestCon_1[_i]; + var 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) { + var fit = (inv.length - 1) * 10; + fit += GetConFit(arrayLast(inv)); + return fit; +} +function GetConFit(con) { + var fit = 0; + for (var _i = 0, con_1 = con; _i < con_1.length; _i++) { + var p = con_1[_i]; + fit += p.pbg * p.pbk * 1e-6; + } + return fit; +} +// 初步优化计算 横竖算法,无空间合并 +function CBJS1(Listbang, yanbang, dt, isdtwosided) { + var yanbang_bk = yanbang.slice(); + // let zfkj: Big_bang[] = []; + // let list_zfkj: (Big_bang[])[] = []; + var list_yh_bng = []; + // let list_yang_bang: (Big_bang[])[] = []; + var result_yh = []; + while (Listbang.length > 0) { + // zfkj = []; + yanbang = yanbang_bk.slice(); + result_yh = []; + while (yanbang.length > 0) { + var lx = Math.floor(Math.random() * 3); // lx:0 面积最大 1 最高 2 最宽 + var fs = void 0; // fs:留板方式,0:左右 1:上下 + if (Math.floor(Math.random() * 2) == 0) { + fs = false; + } + else { + fs = true; + } + var 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 (var i = 0; i < get_result[0]; i++) + yanbang.push(get_result[2][i]); + } + if (get_result[1] > 0) { + for (var 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, yanbang, dt, isdtwosided) { + var yanbang_bk = yanbang.slice(); + // let zfkj: Big_bang[] = []; + // let list_zfkj: (Big_bang[])[] = []; + var list_yh_bng = []; + // let list_yang_bang: (Big_bang[])[] = []; + var result_yh = []; + // let temp: number = 0; + while (Listbang.length > 0) // while (temp < 2)// + { + // temp++; + // zfkj = []; + yanbang = yanbang_bk.slice(); + result_yh = []; + while (yanbang.length > 0) { + var lx = Math.floor(Math.random() * 3); // lx:0 面积最大 1 最高 2 最宽 + var fs = void 0; // fs:留板方式,0:左右 1:上下 + if (Math.floor(Math.random() * 2) == 0) { + fs = false; + } + else { + fs = true; + } + var get_result = []; + var 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 (var i = 0; i < get_result[0]; i++) + yanbang.push(get_result[2][i]); + } + if (get_result[1] > 0) { + for (var 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, dt) { + var i = -1; + yanbang.sort(function (a1, a2) { return 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, listbang, dt) { + var k; + var g; + var isjshb = true; // false 继续合并 ture 不在合并 + var minY = 100000; + var yanindex; + if (listbang.length == 0) + return [yanbang, true]; + for (var 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, listbang, dt) { + var get_result; + var minY = 10000; + var yanindex; + get_result = hb(yanbang, dt); + yanbang = get_result; + var isend = false; + while (isend == false) { + if (yanbang.length == 1) { + break; + } + for (var i = 0; i < yanbang.length; i++) { + var 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 (var 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, k, Listbang, oneFaceBlock) { + var finbang = []; + if (oneFaceBlock == true) { + for (var 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 (var 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, k, Listbang, isdtwosided) { + var max = 0; + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + var temp_max; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} // 寻找面积最的板 +// 寻找最高的板 +function find_max_g(g, k, Listbang, isdtwosided) { + var max = 0; + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} +// 寻找同高的板 +function find_same_g(g, k, Listbang, isdtwosided) { + var max = g; + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} // 寻找同高的板 +// 寻找最宽的板 +function find_max_k(g, k, Listbang, isdtwosided) { + var max = 0; + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} // 寻找最高的板 +// 寻同宽的板 +function find_same_k(g, k, Listbang, isdtwosided) { + var max = k; + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} // 寻同宽的板 +// 找到同样大小尺寸的板材 && Listbang[i].isdtwosided == true) +function find_same_bang(g, k, Listbang, isdtwosided) { + var bangindex = -1; + var line = bang_1.LineType.Positive; + var pbg = 0; + var pbk = 0; + var bangid = 0; + if (isdtwosided == true) { + for (var 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 (var 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 (var 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: line, + pbg: pbg, + pbk: pbk, + id: bangid, + }; +} // 寻找同高或同宽的板 +// 计算生成的余板 返回 余板数组,连带的板 小板数组 +// lx:0面积最大 1最高 2最宽 fs:取板方式,false:左右(取同宽) true:上下(取同高) dt:刀头间隙 +function jsyb(bigbang, lx, fs, dt, listbang, isdtwosided) { + var x = bigbang.x; + var y = bigbang.y; + var k = bigbang.w; + var g = bigbang.l; + var isend = false; + var ybg = g; + var ybk = k; + var x1 = x; + var y1 = y; + var yb = []; // #余板 坐标跟高宽; + var yhxbang = []; // #连带小板的Id,及坐标 + var zfkj = []; // 作废的空间 + var l; + var w; + var get_result; + var temp_get; + 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: x, + y: 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: 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: w, + x: x, + y: y1, + }); + } + if (k - w - dt > 0) { + yb.push({ + l: g, + w: k - w - dt, + x: x + w + dt, + y: 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: 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: l, + w: ybk, + x: x1, + y: y, + }); + } + if (g - l - dt > 0) { + yb.push({ + l: g - l - dt, + w: k, + x: x, + y: y + l + dt, + }); + } + break; + } + } + } // false:左右(取同宽) true:上下(取同高) + var ybsl = 0; + var yhsl = 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: x, + y: y, + }); + var ybsl = 0; + var yhsl = 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, lx, fs, dt, listbang, isdtwosided) { + var x = bigbang.x; + var y = bigbang.y; + var k = bigbang.w; + var g = bigbang.l; + var isend = false; + var ybg = g; + var ybk = k; + var x1 = x; + var y1 = y; + var yb = []; // #余板 坐标跟高宽; + var yhxbang = []; // #连带小板的Id,及坐标 + var zfkj = []; // 作废的空间 + var l; + var w; + var get_result; + var temp_get; + 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: x, + y: 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: 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: w, + x: x, + y: y1, + }); + } + if (k - w - dt > 0) { + yb.push({ + l: g, + w: k - w - dt, + x: x + w + dt, + y: 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: 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: y, + }); + } + if (g - l - dt > 0) { + yb.push({ + l: g - l - dt, + w: k - ybk - dt, + x: x, + y: y + l + dt, + }); + } + break; + } + } + } // false:左右(取同宽) true:上下(取同高) + //////////////////////////////////////////////////////////////////////////// + var ybsl = 0; + var yhsl = 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: x, + y: y, + }); + var ybsl = 0; + var yhsl = 0; + if (yb.length > 0) { + ybsl = yb.length; + } + if (yhxbang.length > 0) { + yhsl = yhxbang.length; + } + return [ybsl, yhsl, yb, yhxbang, listbang, 1, zfkj]; + } +} +/** 获取数组最后一个元素 */ +function arrayLast(arr) { + return arr[arr.length - 1]; +} +/** 查找数组中最大的元素 */ +function arrayMax(arr, f) { + if (f === void 0) { f = function (a) { return a; }; } + var max = Number.NEGATIVE_INFINITY; + var maxIndex = -1; + for (var i = 0; i < arr.length; i++) { + var item = arr[i]; + var v = f(item); + if (v > max) { + maxIndex = i; + max = v; + } + } + return [arr[maxIndex], maxIndex]; +} +function Sleep(time) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, new Promise(function (res) { + setTimeout(res, time); + })]; + }); + }); +} diff --git a/samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.ts b/samples/moduleManager/RectOptimizeWorker/RectOptimizeMachine.ts new file mode 100644 index 0000000..b3e83d6 --- /dev/null +++ b/samples/moduleManager/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/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.js b/samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.js new file mode 100644 index 0000000..22d8b5c --- /dev/null +++ b/samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.js @@ -0,0 +1,75 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var RectOptimizeMachine_1 = require("./RectOptimizeMachine"); +var ctx = this; +if (typeof window !== 'undefined' && 'Worker' in window) { + ctx.addEventListener('message', function (event) { return __awaiter(void 0, void 0, void 0, function () { + var m, _a, blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain, info; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + m = new RectOptimizeMachine_1.RectOptimizeMachine(); + m.CallBack = function (best, fit, arg, info) { return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + ctx.postMessage([best, fit, arg, info]); + return [2 /*return*/]; + }); + }); }; + if (!(event.data.type == 'start')) return [3 /*break*/, 1]; + _a = (event.data.data), blockList = _a[0], boardList = _a[1], boardCount = _a[2], optimizeTimes = _a[3], isDoubleFaceBlockFirst = _a[4], gap = _a[5], gzpb = _a[6], isDoubleFaceBlockInRemain = _a[7]; + m.Start(blockList, boardList, boardCount, optimizeTimes, isDoubleFaceBlockFirst, gap, gzpb, isDoubleFaceBlockInRemain); + return [3 /*break*/, 3]; + case 1: + info = { + type: 'isStop', + }; + return [4 /*yield*/, m.Stop(info)]; + case 2: + _b.sent(); + ctx.postMessage([[], null, null, info]); + ctx === null || ctx === void 0 ? void 0 : ctx.terminate(); + _b.label = 3; + case 3: return [2 /*return*/]; + } + }); + }); }); +} +else { +} +exports.default = {}; diff --git a/samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.ts b/samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.ts new file mode 100644 index 0000000..0469d8d --- /dev/null +++ b/samples/moduleManager/RectOptimizeWorker/RectOptimizeWorkerWorker.ts @@ -0,0 +1,42 @@ +import type { Big_bang, xbang } from './bang' +import { RectOptimizeMachine } from './RectOptimizeMachine' +// import {Worker} from "worker_threads" +import { Worker as NodeWorker } from 'worker_threads'; +const ctx: NodeWorker | Worker = self as any +debugger +if (typeof window !== 'undefined' && 'Worker' in window) { + 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() + } + }) +} else { + +} + + +export default {} as typeof Worker & (new () => Worker) diff --git a/samples/moduleManager/RectOptimizeWorker/bang.js b/samples/moduleManager/RectOptimizeWorker/bang.js new file mode 100644 index 0000000..b0437ba --- /dev/null +++ b/samples/moduleManager/RectOptimizeWorker/bang.js @@ -0,0 +1,60 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WorkerItemType = exports.BlockRegion = exports.Big_bang = exports.HoleType = exports.ComposingType = exports.LineType = void 0; +/**纹路类型 Positive=0正纹 Reverse=1反纹 CanReversal=2可翻转 */ +var LineType; +(function (LineType) { + /**正纹 */ + LineType[LineType["Positive"] = 0] = "Positive"; + /**反纹 */ + LineType[LineType["Reverse"] = 1] = "Reverse"; + /**可翻转 */ + LineType[LineType["CanReversal"] = 2] = "CanReversal"; +})(LineType || (exports.LineType = LineType = {})); +/**版面类型: Positive=0正面 Reverse=1反面 Arbitrary=2任意面 */ +var ComposingType; +(function (ComposingType) { + /**正面 */ + ComposingType[ComposingType["Positive"] = 0] = "Positive"; + /**反面 */ + ComposingType[ComposingType["Reverse"] = 1] = "Reverse"; + /**任意面 */ + ComposingType[ComposingType["Arbitrary"] = 2] = "Arbitrary"; +})(ComposingType || (exports.ComposingType = ComposingType = {})); +/**孔类型 None=0无 Positive=1正面 Reverse=2反面 Two=3正反 */ +var HoleType; +(function (HoleType) { + /**无 */ + HoleType[HoleType["None"] = 0] = "None"; + /**正面 */ + HoleType[HoleType["Positive"] = 1] = "Positive"; + /**反面 */ + HoleType[HoleType["Reverse"] = 2] = "Reverse"; + /**正反 */ + HoleType[HoleType["Two"] = 3] = "Two"; +})(HoleType || (exports.HoleType = HoleType = {})); +/** 大板 */ +var Big_bang //待优化的板 + = /** @class */ (function () { + function Big_bang() { + } + return Big_bang; +}()); +exports.Big_bang = Big_bang; +var BlockRegion; +(function (BlockRegion) { + /** 左下 = 0 */ + BlockRegion[BlockRegion["LEFT_BOTTOM"] = 0] = "LEFT_BOTTOM"; + /** 右下 = 1 */ + BlockRegion[BlockRegion["RIGHT_BOTTOM"] = 1] = "RIGHT_BOTTOM"; + /** 右上 = 2 */ + BlockRegion[BlockRegion["RIGHT_TOP"] = 2] = "RIGHT_TOP"; + /** 左上 = 3 */ + BlockRegion[BlockRegion["LEFT_TOP"] = 3] = "LEFT_TOP"; +})(BlockRegion || (exports.BlockRegion = BlockRegion = {})); +var WorkerItemType = /** @class */ (function () { + function WorkerItemType() { + } + return WorkerItemType; +}()); +exports.WorkerItemType = WorkerItemType; diff --git a/samples/moduleManager/RectOptimizeWorker/bang.ts b/samples/moduleManager/RectOptimizeWorker/bang.ts new file mode 100644 index 0000000..facec27 --- /dev/null +++ b/samples/moduleManager/RectOptimizeWorker/bang.ts @@ -0,0 +1,1605 @@ + +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 class 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' +} + +//开料生产 +export class KLSC +{ + xbang: YH_bang[]; //小板集合 + Bakbang: YH_bang[]; //备份小板集合 + HB_bang: number[] = []; //合并的板 + HB: number[][] = []; //合并板的数组 + B_k: number; //大板宽 + B_g: number; //大板高 + dt: number; //刀头大小(含修边) + wzx: number; //临时用于打印 + wzy: number; //临时用于打印 + jl_mz: number; //用于测试距离或者面积优选 + + SCid: number[] = []; //用于存化顺序的板的bangid + //f = () => 5; + constructor(xbang: YH_bang[], Bang_k: number, Bang_g: number, dt: number, wzx: number, wzy: number, JL_MZ: number) //false JL ture MZ + { + this.xbang = JSON.parse(JSON.stringify(xbang)); + //this.xbang = [...xbang]; + this.Bakbang = JSON.parse(JSON.stringify(xbang)); + this.B_g = Bang_g; + this.B_k = Bang_k; + this.dt = dt; + this.wzx = wzx; + this.wzy = wzy; + this.jl_mz = JL_MZ; + this.XDscjs(); + }; + + //查找距离中心最近,且跟最大的板相差不大于容差面积 rcmz 的板 返加YH_bang[].bangid + MaxMZ = (rcmz: number): number => + { + let tmepckb: number; + let tmepckb1: number; + let tempxbang: YH_bang[] = []; + this.xbang.sort((b, a) => a.pbg * a.pbk - b.pbg * b.pbk); + let maxmz = this.xbang[0].pbg * this.xbang[0].pbk / 1000000; + let maxbangid = this.xbang[0].bangid; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].pbg > this.xbang[i].pbk) + { + tmepckb = this.xbang[i].pbg / this.xbang[i].pbk; + } + else + { + tmepckb = this.xbang[i].pbk / this.xbang[i].pbg; + } + if (this.xbang[0].pbg > this.xbang[0].pbk) + { + tmepckb1 = this.xbang[0].pbg / this.xbang[0].pbk; + } + else + { + tmepckb1 = this.xbang[0].pbk / this.xbang[0].pbg; + } + + if (equaln(this.xbang[i].pbg * this.xbang[i].pbk / 1000000, maxmz, rcmz) && equaln(tmepckb, tmepckb1, 2)) + { + tempxbang.push(this.xbang[i]); + } + } + if (tempxbang.length > 0) + { + return this.minJL(tempxbang); + } + else + { + return maxbangid; + } + + }; + + //查找指定Bangid的板 返回在数组中的位置ID f = () => 5; + getID = (bangid: number): number => this.xbang.findIndex((n) => n.bangid == bangid); + + //查找备份板Bangid的板 返回在数组中的位置ID f = () => 5; + getID_Bkb = (bangid: number): number => this.Bakbang.findIndex((n) => n.bangid == bangid); + + + //查找距离最近的板 返加YH_bang[].bangid + minJL = (xbang: YH_bang[]): number => { xbang.sort((b, a) => Math.hypot(this.B_k / 2 - b.x - b.pbk / 2, this.B_g / 2 - b.y - b.pbg / 2) - Math.hypot(this.B_k / 2 - a.x - a.pbk / 2, this.B_g / 2 - a.y - a.pbg / 2)); return xbang[0].bangid; }; + + //查找左边且Y位置一样的板,, 返加YH_bang[].bangid + F_Left = (bangid: number): number => + { + let a = this.xbang.find((n) => equaln(n.x + n.pbk + this.dt, this.xbang[this.getID(bangid)].x, 0.001) + && equaln(n.y, this.xbang[this.getID(bangid)].y, 0.001) && n.ishb == false); + if (a == undefined) { return; } return a.bangid; + }; + //查找左边关连的板,并写入 + F_GL_LR = () => + { + let temp: number; + let bangIndex: number; + let maxkd: number = 0; + let maxid: number; //bangid + if (this.xbang.length > 1) + { + for (let i = 0; i < this.xbang.length; i++) + { + bangIndex = i; + while (1) //左边 + { + if (this.xbang[bangIndex].pbg > this.xbang[bangIndex].pbk && this.xbang[bangIndex].pbk < 200 && this.xbang[bangIndex].ishb == false) + { + temp = this.xbang.findIndex(n => n.x + n.pbk < this.xbang[bangIndex].x && n.y <= this.xbang[bangIndex].y && this.XJcd(n.bangid, this.xbang[bangIndex].bangid)[1] > this.xbang[bangIndex].pbk); + if (temp != -1) + { + if (this.xbang[temp].pbk > maxkd) + { + maxkd = this.xbang[temp].pbk; + maxid = this.xbang[temp].bangid; + } + if (this.xbang[temp].pbk > 200) + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[bangIndex].bangid); + this.xbang[bangIndex].grid = this.xbang[temp].bangid; + break; + } + else + { + bangIndex = temp; + } + + } + else + { + break; + } + } + else + { + break; + } + + } + bangIndex = i; + while (1) //右边 + { + if (this.xbang[bangIndex].pbg > this.xbang[bangIndex].pbk && this.xbang[bangIndex].pbk < 200 && this.xbang[bangIndex].ishb == false) + { + temp = this.xbang.findIndex(n => n.x > this.xbang[bangIndex].x + this.xbang[bangIndex].pbk + && this.LR_is(this.xbang[bangIndex].bangid, n.bangid) == false + && n.pbg > 300 + && this.XJcd(n.bangid, this.xbang[bangIndex].bangid)[1] > this.xbang[bangIndex].pbk); + if (temp != -1) + { + if (this.xbang[temp].pbk > maxkd) + { + maxkd = this.xbang[temp].pbk; + maxid = this.xbang[temp].bangid; + } + if (this.xbang[temp].pbk > 200) + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[bangIndex].bangid); + this.xbang[bangIndex].grid = this.xbang[temp].bangid; + break; + } + else + { + bangIndex = temp; + } + + } + else + { + break; + } + } + else + { + break; + } + + } + + + } + }; + }; + + //查找上下边关连的板,并写入 + F_GL_TD = () => + { + let temp: number; + let bangIndex: number; + let maxkd: number = 0; + let maxid: number; //bangid + if (this.xbang.length > 1) + { + for (let i = 0; i < this.xbang.length; i++) + { + bangIndex = i; + while (1) //上面 + { + if (this.xbang[bangIndex].pbg < this.xbang[bangIndex].pbk && this.xbang[bangIndex].pbg < 200 && this.xbang[bangIndex].ishb == false) + { + temp = this.xbang.findIndex(n => n.y > this.xbang[bangIndex].y + this.xbang[bangIndex].pbg && n.x + 0.01 <= this.xbang[bangIndex].x + && this.XJcd(n.bangid, this.xbang[bangIndex].bangid)[0] > this.xbang[bangIndex].pbg); + if (temp != -1) + { + if (this.xbang[temp].pbg > maxkd) + { + maxkd = this.xbang[temp].pbg; + maxid = this.xbang[temp].bangid; + } + if (this.xbang[temp].pbg > 200) + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[bangIndex].bangid); + this.xbang[bangIndex].grid = this.xbang[temp].bangid; + break; + } + else + { + bangIndex = temp; + } + + } + else + { + break; + } + } + else + { + break; + } + + } + bangIndex = i; + while (1) //下面 + { + + if (this.xbang[bangIndex].pbg < this.xbang[bangIndex].pbk && this.xbang[bangIndex].pbg < 200 && this.xbang[bangIndex].ishb == false) + { + + temp = this.xbang.findIndex(n => n.y + n.pbg < this.xbang[bangIndex].y + this.xbang[bangIndex].pbg && n.x - 0.01 <= this.xbang[bangIndex].x + && this.XJcd(n.bangid, this.xbang[bangIndex].bangid)[0] > this.xbang[bangIndex].pbg); + if (temp != -1) + { + if (this.xbang[temp].pbg > maxkd) + { + maxkd = this.xbang[temp].pbg; + maxid = this.xbang[temp].bangid; + } + if (this.xbang[temp].pbg > 200) + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[bangIndex].bangid); + this.xbang[bangIndex].grid = this.xbang[temp].bangid; + break; + } + else + { + bangIndex = temp; + } + + } + else + { + break; + } + } + else + { + break; + } + + } + + + } + }; + }; + + //查找有异形交集关连的板,并写入 + F_GL_JJB = () => + { + let temp: number; + if (this.xbang.length > 1) + { + for (let i = 0; i < this.xbang.length; i++) + { + temp = this.xbang.findIndex(n => this.XJcd(n.bangid, this.xbang[i].bangid)[0] > 50 + && this.XJcd(n.bangid, this.xbang[i].bangid)[1] > 50 && n.bangid != this.xbang[i].bangid); + if (temp != -1) + { + if (this.xbang[i].pbg * this.xbang[i].pbk > this.xbang[temp].pbg * this.xbang[temp].pbk) + { + this.xbang[i].isgr = true; + this.xbang[i].gr.push(this.xbang[temp].bangid); + this.xbang[temp].grid = this.xbang[i].bangid; + } + else if (equaln(this.xbang[i].pbg * this.xbang[i].pbk, this.xbang[temp].pbg * this.xbang[temp].pbk, 0.01)) + { + if (this.xbang[temp].x > this.xbang[i].x) + { + + this.xbang[i].isgr = true; + this.xbang[i].gr.push(this.xbang[temp].bangid); + this.xbang[temp].grid = this.xbang[i].bangid; + } + else + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[i].bangid); + this.xbang[i].grid = this.xbang[temp].bangid; + } + } + else + { + this.xbang[temp].isgr = true; + this.xbang[temp].gr.push(this.xbang[i].bangid); + this.xbang[i].grid = this.xbang[temp].bangid; + } + + } + } + }; + for (let k = 0; k < this.xbang.length; k++) + { + let newgr = [... new Set(this.xbang[k].gr)]; + this.xbang[k].gr = newgr; + } + }; + + //判断有关联的板跟大板之间是否有交集,如果有取消这块板的关联 + Is_big_gr = () => + { + for (let k = 0; k < this.xbang.length; k++) + { + let newgr = [... new Set(this.xbang[k].gr)]; + this.xbang[k].gr = newgr; + } + let tempx: number; + let tempy: number; + let bangIndex1 = this.xbang[this.getID(this.HB[0][0])]; + let bangIndex2: number; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].isgr == true) + { + tempx = 0; + tempy = 0; + for (let j = 0; j < this.xbang[i].gr.length; j++) + { + bangIndex2 = this.getID(this.xbang[i].gr[j]); + if (this.xbang[i].bangid == 10)////////////////////用于调试 + { + console.log(this.xbang[i].bangid); + } + if (this.xbang[bangIndex2].pbg > this.xbang[bangIndex2].pbk) + { + tempy = this.Jcxj(bangIndex1.y, bangIndex1.pbg, this.xbang[bangIndex2].y, this.xbang[bangIndex2].pbg); + } + else + { + tempx = this.Jcxj(bangIndex1.x, bangIndex1.pbk, this.xbang[bangIndex2].x, this.xbang[bangIndex2].pbk); + } + } + if (tempx > 50 || tempy > 50) + { + this.xbang[i].isgr = false; + } + } + } + + }; + + + //检测两块板之间的右上角是否有板 false 没有 true 有 + LR_is = (bangid1: number, bangid2: number): boolean => + { + let tb: YH_bang[] = []; + tb.push(this.xbang[this.getID(bangid1)]); + tb.push(this.xbang[this.getID(bangid2)]); + if (tb[0].pbg + tb[0].y > tb[1].pbg + tb[1].y)//右上空间 左边高 + { + return this.JCQY_is_bang(tb[1].x, tb[1].y + tb[1].pbg + this.dt, tb[1].pbk, tb[0].pbg - tb[1].pbg - this.dt); + } + else + { + return false; + } + }; + + //检测两块板之间的右上角是否有板 false 没有 true 有 + TD_is = (bangid1: number, bangid2: number): boolean => + { + let tb: YH_bang[] = []; + tb.push(this.xbang[this.getID(bangid1)]); + tb.push(this.xbang[this.getID(bangid2)]); + if (tb[0].pbk + tb[0].x > tb[1].pbk + tb[1].x)//右下空间 左边高 + { + return this.JCQY_is_bang(tb[1].x, tb[1].y + tb[1].pbg + this.dt, tb[1].pbk, tb[0].pbg - tb[1].pbg - this.dt); + } + else + { + return false; + } + }; + + //查找左边且Y位置一样的板,, 返加YH_bang[].bangid + F_Left_Big = (bangid: number, gbcd: number): number => + { + let tempjh: YH_bang[] = []; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].x + this.xbang[i].pbk < this.xbang[this.getID(bangid)].x && this.XJcd(this.xbang[i].bangid, this.xbang[this.getID(bangid)].bangid)[1] > gbcd) + { + tempjh.push(this.xbang[i]); + } + } + if (tempjh.length > 0) + { + tempjh.sort((a, b) => a.x - b.x); + return tempjh[0].bangid; + } + else + { + return -1; + } + }; + + //找到左右靠边最长的高度 返回 [0]长度 [1] y位置 [2] 0左边 1 右边 + L_R_kbcd = (bangid: number): [number, number, number] => + { + let l_b: YH_bang[] = []; + let cd_l = 0; let cd_r: number = 0; let wzl: number; let wzr: number; + let tb = [...this.xbang]; + let tempx: number = this.xbang[this.getID(bangid)].x; + let tempy: number = this.xbang[this.getID(bangid)].y; + let tempk: number = this.xbang[this.getID(bangid)].pbk; + let tempid: number; + let isend: boolean = true; + for (let i = 0; i < 2; i++) + { + l_b = []; + tb = [...this.xbang]; + isend = true; + while (isend == true) + { + if (i == 0) { tempid = tb.findIndex((n) => equaln(n.x + n.pbk + this.dt, tempx, 0.001) && (n.y <= tempy)); } + else { tempid = tb.findIndex((n) => equaln(n.x, tempx + tempk + this.dt, 0.001) && (n.y <= tempy)); } + + if (tempid != -1) + { + l_b.push(tb[tempid]); + tb.splice(tempid, 1); + } + else + { + isend = false; + } + } + if (l_b.length > 0) + { + l_b.sort((a, b) => b.pbg - a.pbg); + if (i == 0) { cd_l = l_b[0].pbg; wzl = l_b[0].y; } else { cd_r = l_b[0].pbg; wzr = l_b[0].y; } + } + } + if (cd_l > cd_r || cd_l == cd_r && cd_l > 0) + { + return [cd_l, wzl, 0]; + } + else if (cd_l < cd_r) + { + return [cd_r, wzr, 1]; + } + else + { + return [0, 0, 0]; + } + + }; + + //查找右边且Y位置一样的板,, 返加YH_bang[].bangid + F_Right = (bangid: number): number => + { + let a = this.xbang.find((n) => equaln(n.x, this.xbang[this.getID(bangid)].x + this.xbang[this.getID(bangid)].pbk + this.dt, 0.001) + && equaln(n.y, this.xbang[this.getID(bangid)].y, 0.001) && n.ishb == false); + if (a == undefined) { return; } return a.bangid; + }; + + //查找右边且Y位置一样的板,, 返加YH_bang[].bangid + F_Right_Big = (bangid: number, gbcd: number): number => + { + let tempjh: YH_bang[] = []; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].x > this.xbang[this.getID(bangid)].x + this.xbang[this.getID(bangid)].pbk && this.XJcd(this.xbang[i].bangid, this.xbang[this.getID(bangid)].bangid)[1] > gbcd) + { + tempjh.push(this.xbang[i]); + } + } + if (tempjh.length > 0) + { + tempjh.sort((a, b) => a.x - b.x); + return tempjh[0].bangid; + } + else + { + return -1; + } + }; + + //查找下边且X位置一样的板,, 返加YH_bang[].bangid + F_Down = (bangid: number): number => + { + let a = this.xbang.find((n) => equaln(n.y + n.pbg + this.dt, this.xbang[this.getID(bangid)].y, 0.001) + // && n.x > 10 + && equaln(n.x, this.xbang[this.getID(bangid)].x, 0.001) && n.ishb == false); + if (a == undefined) { return; } return a.bangid; + }; + + //查找上边且X位置一样的板,, 返加YH_bang[].bangid + F_TOP = (bangid: number): number => + { + let a = this.xbang.find((n) => equaln(n.y, this.xbang[this.getID(bangid)].y + this.xbang[this.getID(bangid)].pbg + this.dt, 0.001) + //&& n.x > 10 + && equaln(n.x, this.xbang[this.getID(bangid)].x, 0.001) && n.ishb == false); + if (a == undefined) { return; } return a.bangid; + }; + + + //查找上边且X位置一样的板,, 返加YH_bang[].bangid hbcd为大于共边的长度 + F_Top_Big = (bangid: number, gbcd: number): number => + { + let tempjh: YH_bang[] = []; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].y > this.xbang[this.getID(bangid)].y + this.xbang[this.getID(bangid)].pbg + && this.xbang[i].x + this.xbang[i].pbk <= this.xbang[this.getID(bangid)].x + this.xbang[this.getID(bangid)].pbk + 0.1 + && this.XJcd(this.xbang[i].bangid, this.xbang[this.getID(bangid)].bangid)[0] > gbcd) + { + tempjh.push(this.xbang[i]); + } + } + if (tempjh.length > 0) + { + tempjh.sort((a, b) => a.x - b.x); + return tempjh[0].bangid; + } + else + { + return -1; + } + }; + + + //查找下边且X位置一样的板,, 返加YH_bang[].bangid + F_Down_Big = (bangid: number, gbcd: number): number => + { + let tempjh: YH_bang[] = []; + for (let i = 0; i < this.xbang.length; i++) + { + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].y + this.xbang[i].pbg < this.xbang[this.getID(bangid)].y + && this.xbang[i].x >= this.xbang[this.getID(bangid)].x && this.xbang[i].pbg > 300 + && this.XJcd(this.xbang[i].bangid, this.xbang[this.getID(bangid)].bangid)[0] > gbcd) + { + tempjh.push(this.xbang[i]); + } + } + } + if (tempjh.length > 0) + { + tempjh.sort((a, b) => a.x - b.x); + return tempjh[0].bangid; + } + else + { + return -1; + } + }; + + + //合并同高相邻的板 isbig: true 为第一回合并的大板 wz为方位 L 左 R右 T上 D下 返回是否有合并过 false 为没有合并过 true 有合并过 + HB_LR = (bangid: number, isbig: boolean): boolean => + { + let isend: boolean = true; + let tempbangid: number; + let ishb: boolean = false; + + while (isend == true) + { + tempbangid = this.F_Left(bangid); + if (tempbangid != undefined) + { + let temp = this.JC_is_bang(bangid, tempbangid); //[f/t,1:x,2:y,3:k,4:g] + if (temp[0] == false) + { + this.addbang(bangid, tempbangid, temp[1], temp[2], temp[3], temp[4], isbig); + ishb = true; + } + else + { + isend = false; + } + } + else + { + isend = false; + } + } + isend = true; + while (isend == true) + { + tempbangid = this.F_Right(bangid); + if (tempbangid != undefined) + { + let temp = this.JC_is_bang(bangid, tempbangid); //[f/t,1:x,2:y,3:k,4:g] + if (temp[0] == false) + { + this.addbang(bangid, tempbangid, temp[1], temp[2], temp[3], temp[4], isbig); + ishb = true; + } + else + { + isend = false; + } + } + else + { + isend = false; + } + } + return ishb; + }; + + //合并同宽相邻的板 isbig: true 为第一回合并的大板 wz为方位 L 左 R右 T上 D下 返回是否有合并过 false 为没有合并过 true 有合并过 + HB_TD = (bangid: number, isbig: boolean): boolean => + { + let isend: boolean = true; + let tempbangid: number; + let ishb: boolean = false; + while (isend == true) + { + tempbangid = this.F_Down(bangid); + if (tempbangid != undefined) + { + let temp = this.JC_is_bang(bangid, tempbangid); //[f/t,1:x,2:y,3:k,4:g] + if (temp[0] == false) + { + this.addbang(bangid, tempbangid, temp[1], temp[2], temp[3], temp[4], isbig); + ishb = true; + } + else + { + isend = false; + } + + } + else + { + isend = false; + } + } + isend = true; + while (isend == true) + { + tempbangid = this.F_TOP(bangid); + if (tempbangid != undefined) + { + let temp = this.JC_is_bang(bangid, tempbangid); //[f/t,1:x,2:y,3:k,4:g] + if (temp[0] == false) + { + this.addbang(bangid, tempbangid, temp[1], temp[2], temp[3], temp[4], isbig); + ishb = true; + } + else + { + isend = false; + } + } + else + { + isend = false; + } + } + return ishb; + }; + + addbang = (id1: number, id2: number, x: number, y: number, k: number, g: number, isbig: boolean) => //把合并的板写入,并改板的大小 + { + let tempid1 = this.getID(id1); + let tempid2 = this.getID(id2); + if (this.xbang[tempid1].ishb == false) + { + this.HB_bang.push(id1); + } + this.HB_bang.push(id2); + this.xbang[tempid1].x = x; + this.xbang[tempid1].y = y; + this.xbang[tempid1].pbk = k; + this.xbang[tempid1].pbg = g; + this.xbang[tempid1].ishb = true; + this.xbang[tempid2].ishb = true; + if (isbig == true) { this.xbang[tempid1].isbig = true; this.xbang[tempid2].isbig = true; } + }; + + //计算相邻两块板中有空位的地方是否有其它小板 返回 false 为没有其它板,true 有其它板 x,y,k,g + JC_is_bang = (bangid1: number, bangid2: number): [boolean, number, number, number, number] => + { + let tb: YH_bang[] = []; + tb.push(this.xbang[this.getID(bangid1)]); + tb.push(this.xbang[this.getID(bangid2)]); + if (equaln(tb[0].y, tb[1].y, 0.01)) //左右相邻 + { + tb.sort((a, b) => a.x - b.x); + if (tb[0].pbg < tb[1].pbg)//左上空间 右边高 + { + return [this.JCQY_is_bang(tb[0].x, tb[0].y + tb[0].pbg + this.dt, tb[0].pbk, tb[1].pbg - tb[0].pbg - this.dt), + tb[0].x, tb[0].y, tb[0].pbk + tb[1].pbk + this.dt, tb[1].pbg]; + } + else if (tb[0].pbg > tb[1].pbg)//右上空间 左边高 + { + return [this.JCQY_is_bang(tb[1].x, tb[1].y + tb[1].pbg + this.dt, tb[1].pbk, tb[0].pbg - tb[1].pbg - this.dt), + tb[0].x, tb[0].y, tb[0].pbk + tb[1].pbk + this.dt, tb[0].pbg]; + } + else //一样高 + { + return [false, tb[0].x, tb[0].y, tb[0].pbk + tb[1].pbk + this.dt, tb[0].pbg]; + } + } + else //上下空间 + { + tb.sort((b, a) => a.y - b.y); + if (tb[0].pbk < tb[1].pbk)//右上空间 上边短 + { + return [this.JCQY_is_bang(tb[0].x + tb[0].pbk + this.dt, tb[0].y, tb[1].pbk - tb[0].pbk - this.dt, tb[0].pbg), + tb[1].x, tb[1].y, tb[1].pbk, tb[0].pbg + tb[1].pbg + this.dt]; + } + else if (tb[0].pbk > tb[1].pbk)//右下空间 下边短 + { + return [this.JCQY_is_bang(tb[1].x + tb[1].pbk + this.dt, tb[1].y, tb[0].pbk - tb[1].pbk - this.dt, tb[1].pbg), + tb[1].x, tb[1].y, tb[0].pbk, tb[0].pbg + tb[1].pbg + this.dt]; + } + else //一样高 + { + return [false, tb[1].x, tb[1].y, tb[0].pbk, tb[0].pbg + tb[1].pbg + this.dt]; + } + } + }; + + //检测两块板之间相交的长度且两块板之间没有其它板 ,返回长度,第一个为X相交长度 第二个为Y相交长度 + XJcd = (bangid1: number, bangid2: number): [number, number] => + { + let tempbang: YH_bang[] = []; + tempbang.push(this.xbang[this.getID(bangid1)]); + tempbang.push(this.xbang[this.getID(bangid2)]); + + let tempx = this.Jcxj(tempbang[0].x, tempbang[0].pbk, tempbang[1].x, tempbang[1].pbk); + let tempy = this.Jcxj(tempbang[0].y, tempbang[0].pbg, tempbang[1].y, tempbang[1].pbg); + if (tempx > 0 && tempy > 0) + { + return [tempx, tempy]; + } + else if (tempx > 0) + { + tempbang.sort((a, b) => a.x - b.x); + if (tempbang[0].y > tempbang[1].y) + { + if (this.JCQY_is_bang(tempbang[1].x, tempbang[1].y + tempbang[1].pbg, tempx, tempbang[0].y - tempbang[1].y - tempbang[1].pbg) == false) + { + return [tempx, 0]; + } + else + { + return [0, 0]; + } + } + else + { + if (this.JCQY_is_bang(tempbang[1].x, tempbang[0].y + tempbang[0].pbg, tempx, tempbang[1].y - tempbang[0].y - tempbang[0].pbg) == false) + { + return [tempx, 0]; + } + else + { + return [0, 0]; + } + } + + } + else if (tempy > 0) + { + tempbang.sort((a, b) => a.x - b.x); + if (tempbang[0].y > tempbang[1].y) + { + if (this.JCQY_is_bang(tempbang[0].x + tempbang[0].pbk, tempbang[0].y, tempbang[1].x - tempbang[0].x - tempbang[0].pbk, tempy) == false) + { + return [0, tempy]; + } + else + { + return [0, 0]; + } + } + else + { + if (this.JCQY_is_bang(tempbang[0].x + tempbang[0].pbk, tempbang[1].y, tempbang[1].x - tempbang[0].x - tempbang[0].pbk, tempy) == false) + { + return [0, tempy]; + } + else + { + return [0, 0]; + } + } + } + else + { + return [0, 0]; + } + }; + + //检测指定区域内否有其它小板 返回 false 为没有其它板,true 有其它板 + JCQY_is_bang = (x: number, y: number, k: number, g: number): boolean => + { + let result = this.xbang.findIndex((n) => (k + n.pbk - Math.abs(x - n.x) - Math.abs(x - n.x + k - n.pbk)) / 2 > 0.01 && + (g + n.pbg - Math.abs(y - n.y) - Math.abs(y - n.y + g - n.pbg)) / 2 > 0.01); + if (result == -1) { return false; } else { return true; } + }; + + //计算两边相交长度/ + Jcxj = (wz1: number, l1: number, wz2: number, l2: number): number => { return (l1 + l2 - Math.abs(wz1 - wz2) - Math.abs(wz1 - wz2 + l1 - l2)) / 2; }; + + Find_BS = (): number[] => + { + let temp = this.Find_BS_gr(); + if (temp[0] > 2) + { + return this.Find_BS_wgr()[1]; + } + else + { + if (temp[1][0] == 0) + { + return this.Find_BS_wgr()[1]; + } + else + { + return temp[1]; + } + + + } + }; + //找到共边最少的板的集合 订算有关系的板 + Find_BS_gr = (): [number, number[]] => + { + let bs: number = 6; + let id: number[] = []; + let tempsl: number[]; + if (this.xbang.length == 1) + { + return [0, [0]]; + } + else + { + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].isgr == false && this.xbang[i].ishb == false && this.xbang[i].isqg == false) + { + tempsl = this.JSgbsl(this.xbang[i].bangid); + if (bs == tempsl[0]) + { + id.push(this.xbang[i].bangid); + } + else if (bs > tempsl[0]) + { + bs = tempsl[0]; + id = []; + id.push(this.xbang[i].bangid); + } + + } + } + if (id.length > 0) + { return [bs, id]; } + else + { + //console.log("没找到最少边"); + return [0, [0]]; + } + + } + }; + + //找到共边最少的板的集合 订算没有算关系的板 + Find_BS_wgr = (): [number, number[]] => + { + let bs: number = 6; + let id: number[] = []; + let tempsl: number[]; + if (this.xbang.length == 1) + { + return [0, [0]]; + } + else + { + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].ishb == false && this.xbang[i].isqg == false) + { + tempsl = this.JSgbsl(this.xbang[i].bangid); + if (bs == tempsl[0]) + { + id.push(this.xbang[i].bangid); + } + else if (bs > tempsl[0]) + { + bs = tempsl[0]; + id = []; + id.push(this.xbang[i].bangid); + } + } + } + if (id.length > 0) { return [bs, id]; } else { return [0, [0]]; } + + } + }; + + + //计算这块板的与其它板的相交的边数,及每条边数跟权重 0数量 1左 2右 3上 4下 5权重 + JSgbsl = (bangid: number): [number, number, number, number, number, number] => + { + let left = 0, right = 0, top = 0, down = 0, qz = 0; + let bangIndex = this.getID(bangid); + for (let j = 0; j < this.xbang.length; j++) + { + if (bangIndex != j && this.xbang[j].isqg == false) + { + let jjy = this.Jcxj(this.xbang[bangIndex].y, this.xbang[bangIndex].pbg, this.xbang[j].y, this.xbang[j].pbg); + let jjx = this.Jcxj(this.xbang[bangIndex].x, this.xbang[bangIndex].pbk, this.xbang[j].x, this.xbang[j].pbk); + if (this.xbang[bangIndex].pbg > this.xbang[bangIndex].pbk) + { + if (jjy < this.xbang[bangIndex].pbk && jjy < 50) { jjy = 0; } + } + if (this.xbang[bangIndex].pbk > this.xbang[bangIndex].pbg) + { + if (jjx < this.xbang[bangIndex].pbg && jjx < 50) { jjx = 0; } + } + if (jjy > 0 && this.xbang[bangIndex].x > this.xbang[j].x + this.xbang[j].pbk) { left = 1; } + if (jjy > 0 && this.xbang[j].x > this.xbang[bangIndex].x + this.xbang[bangIndex].pbk) { right = 1; } + if (jjx > 0 && this.xbang[bangIndex].y > this.xbang[j].y + this.xbang[j].pbg) { down = 1; } + if (jjx > 0 && this.xbang[j].y > this.xbang[bangIndex].y + this.xbang[bangIndex].pbg) { top = 1; } + if ((left == 1 && right == 1) || (down == 1 && top == 1)) { qz = 1; } + } + } + return [left + right + top + down + qz, left, right, top, down, qz]; + }; + Jcsb = (bangid1: number, bangid2: number): boolean => // 把bang1 要去掉, bang2 是否少边 返加True 有少边 False 没有少边 + { + let xj = this.XJcd(bangid1, bangid2); + let jjx = xj[0]; let jjy = xj[1]; + + + if (jjx > 0 && this.xbang[this.getID(bangid1)].pbg < this.xbang[this.getID(bangid2)].pbg) + { + return true; + } + else if (jjx > 0 && jjx > 0 && this.xbang[this.getID(bangid1)].pbk * this.xbang[this.getID(bangid1)].pbg < this.xbang[this.getID(bangid2)].pbk * this.xbang[this.getID(bangid2)].pbg) + { + return false; + } + else if (jjy > 0 && this.xbang[this.getID(bangid1)].pbg < this.xbang[this.getID(bangid2)].pbg) + { + return false; + } + else if (jjy > 0 && this.xbang[this.getID(bangid1)].pbg > this.xbang[this.getID(bangid2)].pbg) + { + return true; + } + // else if (jjy > 0 && this.xbang[this.getID(bangid2)].pbk > this.xbang[this.getID(bangid2)].pbg + // && this.xbang[this.getID(bangid2)].pbk * this.xbang[this.getID(bangid2)].pbg < this.xbang[this.getID(bangid1)].pbk * this.xbang[this.getID(bangid1)].pbg) + // { + // return true; + // } + else + { + return false; + } + + + + // if (bangid1 == 2 && bangid2 == 10) + // { + // console.log(bangid1); + // } + // let bs1 = this.JSgbsl(bangid1)[0]; + // let bs2 = this.JSgbsl(bangid2)[0]; + // let sb2 = this.is_sb(bangid1, bangid2)[0]; + // let sb1 = this.is_sb(bangid2, bangid1)[0]; + + // if (sb2 < bs1 && sb1 < bs2) + // { + // return true; + // } + // else + // { + // return false; + // } + + }; + + //检测所有会让其它板少条且最小的的板 + JS_sb_minmz = (): number => + { + let Bangidzh = this.Find_BS(); + if (Bangidzh[0] != 0) + { + let tempbang: YH_bang[] = []; + for (let m = 0; m < Bangidzh.length; m++) + { + tempbang.push(this.xbang[this.getID(Bangidzh[m])]); + } + if (tempbang.length > 0) + { + tempbang.sort((a, b) => a.pbg * a.pbk - b.pbg * b.pbk); + return tempbang[0].bangid; + } + else if (tempbang.length == 1) + { + return tempbang[0].bangid; + } + else + { + return -1; + } + } + else + { + return -1; + } + }; + //合并所有的板 + HB_b = () => + { + let jshb_lr: boolean = true; + let jshb_td: boolean = true; + let jshb: boolean; + for (let i = 0; i < this.xbang.length; i++) + { + if (this.xbang[i].ishb == false) { jshb = true; } else { jshb = false; } + while (jshb == true) + { + if (this.xbang[i].pbg > this.xbang[i].pbk && this.xbang[i].pbk > 100) //左右 + { + jshb_lr = this.HB_LR(this.xbang[i].bangid, false); + } + else + { + jshb_lr = false; + } + + if ((this.xbang[i].pbg < this.xbang[i].pbk && this.xbang[i].pbg > 100)) //上下合并 + { + jshb_td = this.HB_TD(this.xbang[i].bangid, false); + } + else + { + jshb_td = false; + } + if (jshb_lr == true || jshb_td == true) + { + jshb = true; + } + else if (jshb_lr == false || jshb_td == false) + { + if ((this.xbang[i].pbg > 100 && this.xbang[i].pbk > 100)) //上下合并 + { + jshb_lr = this.HB_LR(this.xbang[i].bangid, false); + jshb_td = this.HB_TD(this.xbang[i].bangid, false); + if (jshb_lr == true || jshb_td == true) { jshb = true; } else { jshb = false; } + } + else + { + jshb = false; + } + } + else + { + jshb = true; + } + } + if (this.HB_bang.length > 0) + { + this.HB.push(this.HB_bang); + this.HB_bang = []; + } + } + }; + + //合并指定的板 第一步 + HB_Max_bang = (Bangid: number) => + { + if (Bangid > 0) + { + let jshb_lr: boolean = true; + let jshb_td: boolean = true; + let jshb: boolean; + let bangid = this.getID(Bangid); + if (this.xbang[bangid].ishb == false) { jshb = true; } else { jshb = false; } + while (jshb == true) + { + if (this.xbang[bangid].pbg > this.xbang[bangid].pbk && this.xbang[bangid].pbk > 100) //左右 + { + jshb_lr = this.HB_LR(this.xbang[bangid].bangid, false); + } + else + { + jshb_lr = false; + } + + if ((this.xbang[bangid].pbg < this.xbang[bangid].pbk && this.xbang[bangid].pbg > 100)) //上下合并 + { + jshb_td = this.HB_TD(this.xbang[bangid].bangid, false); + } + else + { + jshb_td = false; + } + if (jshb_lr == true || jshb_td == true) + { + jshb = true; + } + else if (jshb_lr == false || jshb_td == false) + { + if ((this.xbang[bangid].pbg > 100 && this.xbang[bangid].pbk > 100)) //上下合并 + { + jshb_lr = this.HB_LR(this.xbang[bangid].bangid, false); + jshb_td = this.HB_TD(this.xbang[bangid].bangid, false); + if (jshb_lr == true || jshb_td == true) { jshb = true; } else { jshb = false; } + } + else + { + jshb = false; + } + } + else + { + jshb = true; + } + } + if (this.HB_bang.length > 0) + { + this.HB.push(this.HB_bang); + this.HB_bang = []; + } + else + { + this.HB.push([Bangid]); + this.xbang[bangid].ishb = true; + } + } + }; + + + //合并上面的大板 cd为共边长度 + HB_top = (bangid: number, cd: number) => + { + let hbbang: number[] = []; + let fid: number = bangid; + while (fid > -1) + { + fid = this.F_Top_Big(fid, cd); + if (fid > -1) + { + this.xbang[this.getID(fid)].ishb = true; + hbbang.push(fid); + //this.printstr(fid, 1, "大合", -30, 80, 50); + } + } + if (hbbang.length > 0) { this.HB.push(hbbang); } + }; + //合并下面的大板 cd为共边长度 + HB_down = (bangid: number, cd: number) => + { + let hbbang: number[] = []; + let fid: number = bangid; + while (fid > -1) + { + fid = this.F_Down_Big(fid, cd); + if (fid > -1) + { + this.xbang[this.getID(fid)].ishb = true; + hbbang.push(fid); + // this.printstr(fid, 1, "大合", 10, 80, 50); + } + } + if (hbbang.length > 0) { this.HB.push(hbbang); } + }; + + //寻找最后一块要切割的板 + F_last_mz = (jlID: number): number => + { + let bangid: number; + let temp: number[]; + let index: number = 1; + let lastId: number; + if (jlID == 0) { lastId = this.F_minMZ(); } else { lastId = jlID; } + while (true) + { + if (lastId == -1) { break; } + bangid = this.JS_sb_Bxl(lastId); //检测所有会让其它板少条且有两块或者多块边相邻的板 + if (bangid > -1) + { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + bangid = this.JS_sb_minmz(); //检测所有会让其它板少条且最小的的板 + if (bangid > -1) + { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + if (lastId == -1) { break; } + bangid = this.F_minJL(lastId); + if (bangid > -1) { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + bangid = this.F_minMZ(); //找到面积最小的板 + this.add_last(bangid, index); + index++; + lastId = bangid; + } + } + } + // bangid = this.F_minJL(bangid); + //if (bangid > -1) { this.add_last(bangid, index); index++; } + + temp = this.Find_BS(); + + if (temp[0] == 0) + { + break; + } + } + return index; + + }; + + + //寻找最后一块要切割的板 + F_last_jl = (jlID: number): number => + { + let bangid: number; + let temp: number[]; + let index: number = 1; + let lastId: number; + if (jlID == 0) { lastId = this.F_minMZ(); } else { lastId = jlID; } + let tempend: boolean = false; + while (true) + { + if (lastId == -1) { break; } + bangid = this.JS_sb_Bxl(lastId); //检测所有会让其它板少条且有两块或者多块边相邻的板 + if (bangid > -1) + { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + if (lastId == -1) { break; } + bangid = this.F_minJL(lastId); + if (bangid > -1) + { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + //bangid = this.F_minMZ(); //找到面积最小的板 + // if (lastId == -1) { break; } + // bangid = this.F_minJL(lastId); + bangid = this.JS_sb_minmz(); //检测所有会让其它板少条且最小的的板 + + if (bangid > -1) { this.add_last(bangid, index); index++; lastId = bangid; } + else + { + bangid = this.F_minMZ(); //找到面积最小的板 + this.add_last(bangid, index); + index++; + lastId = bangid; + } + } + } + // bangid = this.F_minJL(bangid); + //if (bangid > -1) { this.add_last(bangid, index); index++; } + + temp = this.Find_BS(); + + if (temp[0] == 0) + { + break; + } + + } + return index; + + }; + + //打印并添加最后一块 + add_last = (bangid: number, index: number) => + { + let tempx: number; + //if (index > 9) { tempx = 27; } else { tempx = 10; } 这两行用于测试打印 + //this.printstr(bangid, 1, index.toString(), this.xbang[this.getID(bangid)].pbk / 2 - tempx, this.xbang[this.getID(bangid)].pbg / 2 - 20, 50); + this.SCid.push(bangid); + this.xbang[this.getID(bangid)].isqg = true; + let tempid = this.xbang[this.getID(bangid)].grid; + if (this.xbang[this.getID(bangid)].grid > -1) + { + let tempin = this.xbang[this.getID(tempid)].gr.findIndex((n) => n == bangid); + if (tempin > -1) + { + this.xbang[this.getID(tempid)].gr.splice(tempin, 1); + if (this.xbang[this.getID(tempid)].gr.length == 0) { this.xbang[this.getID(tempid)].isgr = false; } + } + } + }; + + //找到面积最小的板 + F_minMZ = (): number => + { + let jhb = this.Find_BS(); + if (jhb[0] != 0) + { + let tempBang: YH_bang[] = []; + if (jhb.length == 1) + { + return jhb[0]; + } + else + { + for (let i = 0; i < jhb.length; i++) + { + tempBang.push(this.xbang[this.getID(jhb[i])]); + } + tempBang = tempBang.sort((a, b) => + { + if (a.pbg * a.pbk == b.pbg * b.pbk) + { + return Math.hypot(this.B_k - a.x - a.pbk / 2, this.B_g - a.y - a.pbg / 2) - Math.hypot(this.B_k - b.x - b.pbk / 2, this.B_g - b.y - b.pbg / 2); + } + else + { + return a.pbg * a.pbk - b.pbg * b.pbk ? -1 : 1; + } + }); + + return tempBang[0].bangid; + } + } + else + { + return -1; + } + }; + + //按位置最近排序 + F_minJL = (bangid: number): number => + { + let jhb = this.Find_BS(); + if (jhb.length[0] != 0) + { + let tempBang: YH_bang[] = []; + if (jhb.length > 0) + { + for (let i = 0; i < jhb.length; i++) + { + tempBang.push(this.xbang[this.getID(jhb[i])]); + } + let wzx = this.xbang[this.getID(bangid)].x + this.xbang[this.getID(bangid)].pbk / 2; + let wzy = this.xbang[this.getID(bangid)].y + this.xbang[this.getID(bangid)].pbg / 2; + tempBang.sort((a, b) => a.pbk * a.pbg - b.pbk * b.pbg); + if (tempBang[tempBang.length - 1].pbg * tempBang[tempBang.length - 1].pbk / 1000000 - tempBang[0].pbg * tempBang[0].pbk / 1000000 > 0.2) + { + return tempBang[0].bangid; + } + else + { + tempBang.sort((a, b) => Math.hypot(wzx - a.x - a.pbk / 2, wzy - a.y - a.pbg / 2) - Math.hypot(wzx - b.x - b.pbk / 2, wzy - b.y - b.pbg / 2)); + return tempBang[0].bangid; + } + } + else if (jhb.length == 1) + { + return jhb[0]; + } + else + { + return -1; + } + } + else + { + return -1; + } + }; + //检测所有会让其它板少条且有两块或者多块边相邻的板 + JS_sb_Bxl = (bangid: number): number => + { + let Bangidzh = this.Find_BS(); + if (Bangidzh[0] != 0) + { + let tempbang: YH_bang[] = []; + let tempxj: YH_bang[] = []; + let temp: YH_bang; + for (let m = 0; m < Bangidzh.length; m++) + { + for (let n = 0; n < Bangidzh.length; n++) + { + if (m != n) + { + if (this.Jcsb(Bangidzh[m], Bangidzh[n]) == true) + { + tempbang.push(this.xbang[this.getID(Bangidzh[m])]); + } + } + } + } + if (tempbang.length == 1) + { + return tempbang[0].bangid; + } + else if (tempbang.length == 0) + { + return -1; + } + else //(tempbang.length > 1); + { + let wzx = this.xbang[this.getID(bangid)].x + this.xbang[this.getID(bangid)].pbk / 2; + let wzy = this.xbang[this.getID(bangid)].y + this.xbang[this.getID(bangid)].pbg / 2; + tempbang.sort((a, b) => Math.hypot(wzx - a.x - a.pbk / 2, wzy - a.y - a.pbg / 2) - Math.hypot(wzx - b.x - b.pbk / 2, wzy - b.y - b.pbg / 2)); + return tempbang[0].bangid; + + } + } + else + { + return -1; + } + + }; + + //用于计算下刀顺序 + XDscjs = () => + { + let bangid = this.MaxMZ(0.05); + this.HB_Max_bang(bangid); + this.HB_top(bangid, 200); + this.HB_down(bangid, 200); + this.F_GL_LR(); + this.F_GL_TD(); + this.Is_big_gr(); + this.F_GL_JJB(); + + let index: number; + + if (this.jl_mz == 1) + { + index = this.F_last_jl(0); + } else + { + index = this.F_last_mz(0); + } + this.printHBCS(index); + + + }; + printHBCS = (index: number) => + { + for (let m = this.HB.length - 1; m >= 0; m--) + { + for (let n = this.HB[m].length - 1; n >= 0; n--) + { + //this.printstr(this.HB[m][n], 1, index.toString(), this.Bakbang[this.getID_Bkb(this.HB[m][n])].pbk / 2, this.Bakbang[this.getID_Bkb(this.HB[m][n])].pbg / 2, 50); + this.SCid.push(this.HB[m][n]); + index++; + }; + } + }; +}; + +function equaln(v1: number, v2: number, fuzz = 1e-5) +{ + return Math.abs(v1 - v2) <= fuzz; +} diff --git a/samples/moduleManager/module_RectOptimizeMachine.ts b/samples/moduleManager/module_RectOptimizeMachine.ts new file mode 100644 index 0000000..51edad8 --- /dev/null +++ b/samples/moduleManager/module_RectOptimizeMachine.ts @@ -0,0 +1,245 @@ +import { Processor, 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 { UniversalWorker } from "../WorkerHelper"; +import { RectOptimizeMachine } from "./RectOptimizeWorker/RectOptimizeMachine"; +/** 模块 新优化 + * + * input 入参 + * + * ProcessorModule这里的any 可以自定义 根据组件需求 +*/ + + +export const RectOptimizeMachineModule: ProcessorModule = { + moduleName: "RectOptimizeMachine", + moduleVersion: '20250714', + config: { + + placeStyle: 1, + /** 总修边宽度 */ + cutBoardBorder: 3, + cutKnifeGap: 1, + isDoubleFaceBlockFirst: true, + blockKnifeLineSpacing: 0, + isRectPlace: false, + isDoubleFaceBlockInRemain: true, + }, + workerList: [], + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + before(input) { + // console.log(`优化前要做的事情`, input); + }, + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + 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.config.cutBoardBorder + pm.cutKnifeGap = this.config.cutKnifeGap + + /** 小板 */ + let bans: xbang[] = [] + + // 实际开料大板的列表 + let big_Bang: Big_bang[] = [] + let big_BangSL: number[] = [] + + + let border = this.config.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.config.isDoubleFaceBlockFirst // 双面加工排前面 + let gap = this.config.blockKnifeLineSpacing + + /** 这里要做个多线程 测试环境下 这部分有问题 暂时略过 */ + const m = new RectOptimizeMachine() + const self = this + m.CallBack = async (best, fit, arg, info) => { + + console.log('优化结果', pm, [best, fit, arg, info]); + let res={ + moduleName:self.moduleName, + pm, + result: [best, fit, arg, info], + input, + context + } + self.onMessage(res) + } + const data = { + type: 'start', + data: [bans, big_Bang, big_BangSL, xyhcs, isDoubleFaceBlockFirst, gap, this.config.isRectPlace, this.config.isDoubleFaceBlockInRemain], + } + m.Start(bans, big_Bang, big_BangSL, xyhcs, isDoubleFaceBlockFirst, gap, this.config.isRectPlace, this.config.isDoubleFaceBlockInRemain) + + + return next ? next(input) : input; + }, + + + + after(result, input, context) { + 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/module_autoCalcCutOrder.ts b/samples/moduleManager/module_autoCalcCutOrder.ts new file mode 100644 index 0000000..bec373e --- /dev/null +++ b/samples/moduleManager/module_autoCalcCutOrder.ts @@ -0,0 +1,130 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; +import { KLSC, YH_bang } from "./RectOptimizeWorker/bang"; + +/** 模块 开料顺序 + * + * input 入参 + +*/ + +/** 开料顺序 */ +export const AutoCalcCutOrder: ProcessorModule = { + moduleName: "AutoCalcCutOrder", + moduleVersion: '20250714', + config: { + boardWidth: 0, + boardLength: 0, + placeStyle: 1, + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { materialList } = input + + for (const pm of materialList) { + for (const pb of pm.boardList) { + let selectBs = pb.blockList; + let beginId = 0; + const has0 = pb.blockList.filter(t => t.cutOrder == 0); + const has1 = pb.blockList.filter(t => t.cutOrder > 0); + const has2 = pb.blockList.filter(t => t.cutOrder < 0); + //有手动指定开料顺序的 + if (has0.length > 0 && (has1.length + has2.length) > 0) { + selectBs = has0; + if (has1.length > 0) //开头的 + { + const bs = has1.sort((a, b) => a.cutOrder - b.cutOrder); + for (const b of bs) { + beginId++; + b.cutOrder = beginId; + } + } + if (has2.length > 0) //结尾的 + { + const bs = has2.sort((a, b) => a.cutOrder - b.cutOrder); + let endId = has0.length + has1.length; + for (const b of bs) { + endId++; + b.cutOrder = endId; + } + } + } + + let bangs: YH_bang[] = []; + let blocks = new Array(); + for (let i = 0; i < selectBs.length; i++) { + let block = selectBs[i]; + let bangid = i + 1; + let x = block.placeX; + let y = block.placeY; + let pbg = block.placeLength; + let pbk = block.placeWidth; + blocks[bangid] = block; + + bangs.push({ + bangid, + line: 0, + pbg, + pbk, + x, + y, + ishb: false, + hb: [], + isbig: false, + isqg: false, + isgr: false, + gr: [], + grid: -1 + }); + } + let dt = pm.diameter + pm.cutKnifeGap; + let k = pb.width; + let g = pb.length; + + let xdsc: KLSC = new KLSC(bangs, k, g, dt, 0, 0, 1); + // try { + // xdsc + // } catch (error) { + // console.log(error); + // } + let rt = xdsc.SCid; + // let rt = JSXDSC(bangs, dt, k, g); + + if (rt.length < selectBs.length) return; + for (let i = 0; i < rt.length; i++) { + let bid = rt[i]; + beginId++; + blocks[bid].cutOrder = beginId; + } + + } + } + + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_checkBlocks.ts b/samples/moduleManager/module_checkBlocks.ts new file mode 100644 index 0000000..3849853 --- /dev/null +++ b/samples/moduleManager/module_checkBlocks.ts @@ -0,0 +1,76 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; + +/** 模块 检查异常板 + * + * input 入参 + +*/ + +export const CheckBlocks: ProcessorModule = { + moduleName: "CheckMaterial", + moduleVersion: '20250714', + config: { + minBlockWidth: 0, + minBlockThickness: 0, + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { materialList, blockList } = input + const self = this; + let checkArr = checkBlocks(materialList, blockList) + if (checkArr.length > 0) { + const _errinfo: ErrorInfo = { + moduleName: this.moduleName, + moduleVersion: this.moduleVersion, + info: { + data: checkArr, + msg: '该订单内小板有异常' + } + } + this.onError(_errinfo) + } + function checkBlocks(materialList, blockList): any[] { + + let allBlocks: any[] = [] + for (let pm of materialList) { + let bList = blockList.filter(e => e.goodsId == pm.goodsId) + for (const pb of bList) { + if (pb.width < self.minBlockWidth) { + allBlocks.push(pb) + } + if (pb.thickness < self.minBlockThickness) { + allBlocks.push(pb) + } + } + } + return allBlocks + } + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_checkMaterial.ts b/samples/moduleManager/module_checkMaterial.ts new file mode 100644 index 0000000..1f1b604 --- /dev/null +++ b/samples/moduleManager/module_checkMaterial.ts @@ -0,0 +1,77 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; + +/** 模块 检查是否 板材尺寸大于机台尺寸 + * + * input 入参 + +*/ + +/** 检查是否 板材尺寸大于机台尺寸 */ +export const CheckMaterial: ProcessorModule = { + moduleName: "CheckMaterial", + moduleVersion: '20250714', + config: { + boardWidth: 0, + boardLength: 0, + placeStyle:1, + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { materialList } = input + const self = this; + let checkArr = checkMetrial(materialList) + if (checkArr.length > 0) { + const _errinfo: ErrorInfo = { + moduleName: this.moduleName, + moduleVersion: this.moduleVersion, + info: { + data: checkArr, + msg: '该订单内大板有异常' + } + } + this.onError(_errinfo) + } + + function checkMetrial(materialList): any[] { + + let errPMs: any = [] + + if (self.placeStyle !== 1) { + for (let pm of materialList) { + if (pm.orgWidth > self.boardWidth || pm.orgLength > self.boardLength) { + // console.log('板材尺寸大于机台尺寸', PlaceStore.sysConfig) + errPMs.push(pm) + } + } + } + return errPMs + } + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_demoCallback.ts b/samples/moduleManager/module_demoCallback.ts new file mode 100644 index 0000000..e868216 --- /dev/null +++ b/samples/moduleManager/module_demoCallback.ts @@ -0,0 +1,58 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; + +/** 模块 开料顺序 + * + * input 入参 + +*/ + +/** 开料顺序 */ +export const AutoCalcCutOrder: ProcessorModule = { + moduleName: "CheckMaterial", + moduleVersion: '20250714', + config: { + boardWidth: 0, + boardLength: 0, + placeStyle:1, + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { materialList } = input + // if (pb.isLocked) return; + // let blocks = pb.blockList; + + // if (blocks.length == 0) return; + // if (blocks.length == 1) { + // blocks[0].cutOrder = 1; + // } + // else { + // this.autoSortBlockNew(pm, pb); + // } + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_handleMaterialPlaceResult.ts b/samples/moduleManager/module_handleMaterialPlaceResult.ts new file mode 100644 index 0000000..be94230 --- /dev/null +++ b/samples/moduleManager/module_handleMaterialPlaceResult.ts @@ -0,0 +1,152 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; +import { BlockPlaceResult, BoardPlaceResult, BoardPosition, MaterialPlaceResult, PlaceStyle } from "../confClass"; + +/** 模块 处理优化源数据 数据处理 将优化数据转 为 MaterialPlaceResult + * + * input 入参 + +*/ + +export const HandleMaterialPlaceResult: ProcessorModule = { + moduleName: "HandleMaterialPlaceResult", + moduleVersion: '20250714', + config: { + cutBoardBorder:3, + // 是否跟随大板定位 + placeOriginByBoardLocation: true, + boardLocation: 0 + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + + let { + bList, best, yl, pm, width, length + } = context.MaterialPlaceSource + let blocks = bList + let retData = new MaterialPlaceResult() + let boardCount = 0 + let remainCount = 0 + let border = this.config.cutBoardBorder + let borderOff = (pm.diameter + pm.cutKnifeGap) / 2 + + + // 所有大板上的小板面积 + let size_all = 0 + + for (let i = 0; i < best.length; i++) { + let bd = best[i] + let isRemainBoard = false + boardCount = retData.boards.length + 1 + if (i < yl.length) // 余料板 + { + width = yl[i].w + border * 2 - borderOff * 2 + length = yl[i].l + border * 2 - borderOff * 2 + isRemainBoard = true + remainCount++ + } + + let boardResult = new BoardPlaceResult() + boardResult.boardId = boardCount + boardResult.width = width + boardResult.length = length + boardResult.isRemainBoard = isRemainBoard + + let pid = 0 + for (let b of bd) { + pid++ + let block = blocks[b.bangid] + let placeStyle = PlaceStyle.FRONT + if (!block) { + return + } + let faceF = block.isTurnFaceToPlace || false + let isTurnFaceToPlace = this.config.placeOriginByBoardLocation && ( + this.config.boardLocation == BoardPosition.RIGHT_BOTTOM || this.boardLocation == BoardPosition.LEFT_TOP) + if (isTurnFaceToPlace) + faceF = !faceF + if (faceF) // 翻面开料 + { + if (block.texture == 0) { + placeStyle = PlaceStyle.BACK + } + else if (block.texture == 2) { + placeStyle = PlaceStyle.BACK_TURN_LEFT + } + else { + placeStyle = (b.pbg == block.placeFullLength ? PlaceStyle.BACK : PlaceStyle.BACK_TURN_LEFT) + } + } + else { + if (block.texture == 0) { + placeStyle = PlaceStyle.FRONT + } + else if (block.texture == 2) { + placeStyle = PlaceStyle.FRONT_TURN_RIGHT + } + else { + placeStyle = (b.pbg == block.placeFullLength ? PlaceStyle.FRONT : PlaceStyle.FRONT_TURN_RIGHT) + } + } + + let br: any = null + br = new BlockPlaceResult(block.blockNo, boardCount, pid, b.x, b.y, b.pbk, b.pbg, placeStyle, block.area) + boardResult.blocks.push(br) + boardResult.area += block.area + } + retData.boards.push(boardResult) + size_all += boardResult.area + + let val = (size_all - boardResult.area) / (retData.boards.length - 1) + retData.avgUsageRateAll = size_all / retData.boards.length + retData.avgUsageRateExcludeLastBoard = Number.isNaN(val) ? boardResult.area : val + retData.usageRateLastBoard = boardResult.area + retData.boardCount = retData.boards.length + } + retData.boardCount = retData.boards.length // 大板数 + let remainBoardCount = retData.boards.filter(t => t.remainNo != '').length // 异形大板数 + let remianCount = 0 + + if (Array.isArray(pm.remainBoardList)) { + pm.remainBoardList.forEach(e => { + if (e?.placeBoardJSON) { + let str = e?.placeBoardJSON + e.placeBoardList = JSON.parse(str) + remianCount += e.placeBoardList.length + } + }) + } + + retData.remainBoardCount = pm?.remainBoardList ? remianCount : yl.length + remainBoardCount + + console.log({ placeResult: retData, pm } ) + let res = { module:this.moduleName, placeResult: retData, pm } + + Reflect.set(context,'MaterialPlaceResult',res) + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_handlePlaceResultToPlaceMaterial.ts b/samples/moduleManager/module_handlePlaceResultToPlaceMaterial.ts new file mode 100644 index 0000000..0e1a081 --- /dev/null +++ b/samples/moduleManager/module_handlePlaceResultToPlaceMaterial.ts @@ -0,0 +1,639 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; +import { BoardPosition, PlaceBlock, PlaceBoard, PlaceMaterial, PlaceStyle } from "../confClass"; +import { ArrayExt } from "../handleAbility/common/ArrayExt"; + +/** 模块 检查是否 板材尺寸大于机台尺寸 + * + * input 入参 + +*/ +class Point { + /** 坐标x */ + x: number + /** 坐标y */ + y: number + + constructor(x: number, y: number) { + this.x = x + this.y = y + } +} + +/** 检查是否 板材尺寸大于机台尺寸 */ +export const handlePlaceResultToPlaceMaterial: ProcessorModule = { + moduleName: "handlePlaceResultToPlaceMaterial", + moduleVersion: '20250714', + config: { + boardWidth: 0, + boardLength: 0, + placeStyle: 1, + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + // const { placeResult,pm } = input + + let pm: PlaceMaterial = context.MaterialPlaceResult.pm + pm.tempBestPlaceResult = context.MaterialPlaceResult.placeResult + // 没发现优化结果 + if (!pm.tempBestPlaceResult) { + let errInfo: ErrorInfo = { + moduleName: this.moduleName, + info: '没有优化数据' + } + return errInfo + } + + let placeResult = pm.tempBestPlaceResult + + let orgBoardList = pm.boardList + + let dic: any = [] // 存放当前 优化的小板 + + pm.boardList = [] + let boardId = 1 + // 第一次 false + if (pm.tempPlaceResultOnyUnlockedBoard) { + for (let pb of orgBoardList) { + if (pb.isLocked == false && pb.cutedType == 0) // 未锁定 + { + pb.blockList.forEach(i => dic[i.blockNo] = i) + } + else // 锁定 + { + if (pb.isAdnormal) { + let sb = pm.remainBoardList.find(t => t.id == Number(pb.boardNo)) + if (sb) + sb.isUsed = true + } + pb.boardId = boardId + pm.boardList.push(pb) + boardId++ + } + } + } + else { + pm.blockList.forEach(i => dic[i.blockNo] = i) + } + + // 0904 修复 需求改造后 导致 这里的dic 最终为空 + if (Object.keys(dic).length == 0) { + pm.blockList.forEach(i => dic[i.blockNo] = i) + } + + let locator = this.boardLocation + // 大板优化结果 + + for (let bpr of placeResult.boards) { + boardId++ + // bpr.isRemainBoard false + let bW = bpr.isRemainBoard ? bpr.width : pm.width + let bL = bpr.isRemainBoard ? bpr.length : pm.length + let pb = new PlaceBoard(boardId, bW, bL, bpr.remainId, bpr.remainNo) + pb.isCreateRemainSpace = true + + for (let bInfo of bpr.blocks) { + let block: PlaceBlock = dic[bInfo.blockId] + + if (block) { + block.isPlaced = true + block.boardId = boardId + block.placeId = bInfo.placeId + block.placeX = bInfo.placeX + block.placeY = bInfo.placeY + // console.log('重置 开料面 开料信息 after', block.boardId, block.blockNo, block, block.placeStyle, bInfo.placeStyle) + + /** + * 雕刻机(钻孔、拉槽、开料)优化排版,开料排版面(开料正面)选择顺序:排版面>>造型>>排钻>>设计正面 + 1. 排版面 + 小板设计排版面为正面或反面,设置对应面为开料排版面, + 小板设计排版面为随意面,则继续; + 2. 造型 + 小板只有单面造型,设置对应面为开料排版面, + 小板双面无造型或双面有造型,则继续; + 3. 排钻 + 小板有大孔(偏心轮锁孔),设置对应面为开料排版面, + 小板无大孔(偏心轮锁孔),则设置孔多的面为开料排版面, + 小板无孔,则继续; + 4. 设计正面 + 默认设置设计正面为开料排版面。 + */ + + block.placeStyle = bInfo.placeStyle + + let posOff = this.getOffDis(block) + + block.placeOffX = posOff.x + block.placeOffY = posOff.y + block.placeX = bInfo.placeX + posOff.x + block.placeY = bInfo.placeY + posOff.y + + if (bInfo.placeStyle == PlaceStyle.FRONT || bInfo.placeStyle == PlaceStyle.FRONT_TURN_BACK + || bInfo.placeStyle == PlaceStyle.BACK || bInfo.placeStyle == PlaceStyle.BACK_TURN_BACK) { + block.placeWidth = block.cutWidth + block.placeLength = block.cutLength + } + else { + block.placeWidth = block.cutLength + block.placeLength = block.cutWidth + } + + block.isAutoPlaced = true + block.isOverlap = false + block.cutOrder = 0 + pb.blockList.push(block) + pb.blockCount++ + pb.blockArea += block.area + delete dic[bInfo.blockId] // 移除block; + } else { + + } + } + if (bpr.isScrap) { + // 设置前余料板的使用状态,将不需要的释放. + console.log('设置前余料板的使用状态,将不需要的释放.') + let sb = pm.remainBoardList.find(t => t.id == bpr.remainId) + if (sb) { + sb.isUsed = true + + if (sb.placeStyle % 2 != 0) { + pb.width = sb.length + pb.length = sb.width + } + let pl = sb.placePolyline + pb.points = sb?.placePolyline?.LineData.map((t) => { return { x: t.pt.x, y: t.pt.y, bul: t.bul } }) || [] + // pb.StoreNo = sb.StoreHouse; + } + } + pb.usageRate = Math.round(10000 * pb.blockArea / pb.area) / 100 + pm.boardList.push(pb) + console.log('大板靠板翻转', pb.boardId, locator) + + // 大板靠板翻转 + this.turnPlacePosition(pb, locator) + for (let block of pb.blockList) { + // 重置 开料面 开料信息 + // console.log('重置 开料面 开料信息', block.boardId, block.blockNo, block, block.placeStyle) + if (block.placeStyle == null || block.placeStyle == undefined) { + console.log('handleTempPlaceResultToPlaceMaterial error !block.placeStyle is null or undefined') + } else { + this.resetPlaceStyle(block, block.placeStyle) + } + + } + } + + + //【功能】 大板长边两侧 width 范围内 避免出现造型 DisPoseModelInBoardBorderWidth > 0 生效 + // this.DisPoseModelInBoardBorder( + // pm, + // this.boardBorderModelRange, + // this.boardBorderModelModeToFace, + // this.boardBorderModelByMachine, + // this.modelNearBoardBorder, + // ) + + // for (let pb of pm.boardList) { + // // 重设大板汇总 重设 大板开料 顺序,下刀点 + // this.resetPlaceBoard(pm, pb) + // // 检查干涉 + // if (pb.isLocked == false && pb.cutedType == 0) + // this.checkOverlapInBoard(pm, pb) + // } + + let rBoardCount = placeResult.boardCount + let rUseSize_avg = placeResult.avgUsageRateAll + let rUseSize_noLast = placeResult.avgUsageRateExcludeLastBoard + let rUseSize_last = placeResult.usageRateLastBoard + + pm.avgUsageRateAll = rUseSize_avg + pm.avgUsageRateExcludeLastBoard = rUseSize_noLast + pm.usageRateLastBoard = rUseSize_last + pm.boardCount = pm.boardList.length + pm.remainBoardCount = placeResult.remainBoardCount + pm.minBoardId = 1 + pm.maxBoardId = pm.boardCount + //【功能】 获取封边长度 + // pm.edgeSealLengthList = this.getMaterialSealEdge(pm.blockList) + + pm.boardCountFlipFace = ArrayExt.count(pm.boardList, t => t.isTwoFaceProcessing) + + pm.isOptimized = true + pm.tempBestPlaceResult = null + pm.tempPlaceResultError = '' + + let mesg = '' + let c = 0 + for (let v in dic) { + mesg += `${v} ` + c++ + } + + mesg = `有${c}片小板未能排入大板,有可能是尖角导致优化失败.${mesg}` + + if (c > 0) { + console.log(pm) + // createMessage.error(mesg) + + throw new Error(mesg) + } + + // return pm + let res = { module:this.moduleName, pm } + Reflect.set(context,this.moduleName,res) + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + }, + /** 获得板件偏移值 */ + getOffDis(block: PlaceBlock, placeStyle?: PlaceStyle): any { + // console.log('获得板件偏移值') + if (placeStyle == null || placeStyle == undefined) { + placeStyle = block.placeStyle + } + + let expandSize: any = block.sizeExpand + let posOff = { x: 0, y: 0, left: 0, right: 0, top: 0, bottom: 0 } + if (expandSize) { + switch (placeStyle) { + case PlaceStyle.FRONT: // 正面 + posOff.x = expandSize.left + posOff.y = expandSize.bottom + posOff.left = expandSize.left + posOff.right = expandSize.right + posOff.bottom = expandSize.bottom + posOff.top = expandSize.top + break + case PlaceStyle.FRONT_TURN_RIGHT: // 正面右转 + posOff.x = expandSize.bottom + posOff.y = expandSize.right + posOff.left = expandSize.bottom + posOff.right = expandSize.top + posOff.bottom = expandSize.right + posOff.top = expandSize.left + break + case PlaceStyle.FRONT_TURN_BACK: // 正面后转 + posOff.x = expandSize.right + posOff.y = expandSize.top + posOff.left = expandSize.right + posOff.right = expandSize.left + posOff.bottom = expandSize.top + posOff.top = expandSize.bottom + break + case PlaceStyle.FRONT_TURN_LEFT: // 正面左转 + posOff.x = expandSize.top + posOff.y = expandSize.left + posOff.left = expandSize.top + posOff.right = expandSize.bottom + posOff.bottom = expandSize.left + posOff.top = expandSize.right + break + case PlaceStyle.BACK: // 反面 + posOff.x = expandSize.right + posOff.y = expandSize.bottom + posOff.left = expandSize.right + posOff.right = expandSize.left + posOff.bottom = expandSize.bottom + posOff.top = expandSize.top + break + case PlaceStyle.BACK_TURN_RIGHT: // 反面右转 + posOff.x = expandSize.bottom + posOff.y = expandSize.left + posOff.left = expandSize.bottom + posOff.right = expandSize.top + posOff.bottom = expandSize.left + posOff.top = expandSize.right + break + case PlaceStyle.BACK_TURN_BACK: // 反面后转 + posOff.x = expandSize.left + posOff.y = expandSize.top + posOff.left = expandSize.left + posOff.right = expandSize.right + posOff.bottom = expandSize.top + posOff.top = expandSize.bottom + break + case PlaceStyle.BACK_TURN_LEFT: // 反面左转 + posOff.x = expandSize.top + posOff.y = expandSize.right + posOff.left = expandSize.bottom + posOff.right = expandSize.bottom + posOff.bottom = expandSize.right + posOff.top = expandSize.left + break + default: + break + } + } + + return posOff + }, + /**翻转 */ + turnPlacePosition(pb: PlaceBoard, newlocator: BoardPosition) { + if (this.placeOriginByBoardLocation == false) + return + if (pb.isAdnormal()) + return // 余料板是余料板,不参与翻转 + let width = pb.width + let length = pb.length + // RIGHT_BOTTOM, 靠板 + if (newlocator == BoardPosition.RIGHT_BOTTOM) { + for (let block of pb.blockList) { + let x = width - block.placeX - block.placeWidth + let y = block.placeY + let placeStyle = this.getPlaceStyle_zy(block) + block.placeX = x + block.placeY = y + block.placeStyle = placeStyle + } + } + // RIGHT_TOP, 靠板 + if (newlocator == BoardPosition.RIGHT_TOP) { + console.log('BoardPosition=BoardPosition.RIGHT_TOP') + for (let block of pb.blockList) { + let x = width - block.placeX - block.placeWidth + let y = length - block.placeLength - block.placeY + let placeStyle = this.getPlaceStyle_dj(block) + block.placeX = x + block.placeY = y + block.placeStyle = placeStyle + } + } + // 左上角, 靠板 + if (newlocator == BoardPosition.LEFT_TOP) { + console.log('BoardPosition=BoardPosition.左上角') + for (let block of pb.blockList) { + let x = block.placeX + let y = length - block.placeLength - block.placeY + let placeStyle = this.getPlaceStyle_sx(block) + block.placeX = x + block.placeY = y + block.placeStyle = placeStyle + } + } + }, + /** 板放置后,重置placeWidth, placeLength, 封边, 正反面, 面孔, 造型等 */ + resetPlaceStyle(_block: PlaceBlock, newStyle: PlaceStyle) { + let block = new PlaceBlock(_block) + block = { ..._block } + // console.debug('resetPlaceStyle test!!!',newStyle) + block.placeStyle = newStyle + + // tryFix + let _width = block.cutWidth + let _lenth = block.cutLength + if (block.width > block.length) { + block.cutWidth = Math.max(_width, _lenth) + block.cutLength = Math.min(_width, _lenth) + } else { + block.cutWidth = Math.min(_width, _lenth) + block.cutLength = Math.max(_width, _lenth) + } + + + switch (newStyle) { + case PlaceStyle.FRONT: // 正面 + block.placeWidth = block.cutWidth + block.placeLength = block.cutLength + block.placeSealLeft = block.sealLeft + block.placeSealRight = block.sealRight + block.placeSealTop = block.sealTop + block.placeSealBottom = block.sealBottom + block.holeCountSideLeft = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountBottom || 0 + block.placeDirection = '→' + block.placeDirection_Length = block.length > block.width - 0.001 ? '→' : '↓' + break + case PlaceStyle.FRONT_TURN_RIGHT: // 正面右转 + block.placeWidth = block.cutLength + block.placeLength = block.cutWidth + block.placeSealLeft = block.sealBottom + block.placeSealRight = block.sealTop + block.placeSealTop = block.sealLeft + block.placeSealBottom = block.sealRight + block.holeCountSideLeft = block?.blockDetail?.holeCountBottom || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountRight || 0 + block.placeDirection = '↓' + block.placeDirection_Length = block.length > block.width - 0.001 ? '↓' : '←' + break + case PlaceStyle.FRONT_TURN_BACK: // 正面后转 + block.placeWidth = block.cutWidth + block.placeLength = block.cutLength + block.placeSealLeft = block.sealRight + block.placeSealRight = block.sealLeft + block.placeSealTop = block.sealBottom + block.placeSealBottom = block.sealTop + block.holeCountSideLeft = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountBottom || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountTop || 0 + block.placeDirection = '←' + block.placeDirection_Length = block.length > block.width - 0.001 ? '←' : '↑' + break + case PlaceStyle.FRONT_TURN_LEFT: // 正面左转 + block.placeWidth = block.cutLength + block.placeLength = block.cutWidth + block.placeSealLeft = block.sealTop + block.placeSealRight = block.sealBottom + block.placeSealTop = block.sealRight + block.placeSealBottom = block.sealLeft + block.holeCountSideLeft = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountBottom || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountLeft || 0 + block.placeDirection = '↑' + block.placeDirection_Length = block.length > block.width - 0.001 ? '↑' : '→' + break + case PlaceStyle.BACK: // 反面 + block.placeWidth = block.cutWidth + block.placeLength = block.cutLength + block.placeSealLeft = block.sealRight + block.placeSealRight = block.sealLeft + block.placeSealTop = block.sealTop + block.placeSealBottom = block.sealBottom + block.holeCountSideLeft = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountBottom || 0 + block.placeDirection = '→' + block.placeDirection_Length = block.length > block.width - 0.001 ? '→' : '↑' + break + case PlaceStyle.BACK_TURN_RIGHT: // 反面右转 + block.placeWidth = block.cutLength + block.placeLength = block.cutWidth + block.placeSealLeft = block.sealBottom + block.placeSealRight = block.sealTop + block.placeSealTop = block.sealRight + block.placeSealBottom = block.sealLeft + block.holeCountSideLeft = block?.blockDetail?.holeCountBottom || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountLeft || 0 + block.placeDirection = '↓' + block.placeDirection_Length = block.length > block.width - 0.001 ? '↓' : '→' + break + case PlaceStyle.BACK_TURN_BACK: // 反面后转 + block.placeWidth = block.cutWidth + block.placeLength = block.cutLength + block.placeSealLeft = block.sealLeft + block.placeSealRight = block.sealRight + block.placeSealTop = block.sealTop + block.placeSealBottom = block.sealBottom + block.holeCountSideLeft = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountRight || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountBottom || 0 + block.placeDirection = '←' + block.placeDirection_Length = block.length > block.width - 0.001 ? '←' : '↓' + break + case PlaceStyle.BACK_TURN_LEFT: // 反面左转 + block.placeWidth = block.cutLength + block.placeLength = block.cutWidth + block.placeSealLeft = block.sealTop + block.placeSealRight = block.sealBottom + block.placeSealTop = block.sealLeft + block.placeSealBottom = block.sealRight + block.holeCountSideLeft = block?.blockDetail?.holeCountTop || 0 + block.holeCountSideRight = block?.blockDetail?.holeCountBottom || 0 + block.holeCountSideTop = block?.blockDetail?.holeCountLeft || 0 + block.holeCountSideBottom = block?.blockDetail?.holeCountRight || 0 + block.placeDirection = '↑' + block.placeDirection_Length = block.length > block.width - 0.001 ? '↑' : '←' + break + default: + break + } + this.resetDoFace_HoleModel(block) + }, + resetDoFace_HoleModel(block: PlaceBlock) { + + let isTurnOver = block.isTurnOver + if (block.blockDetail == null) { + console.error('resetDoFace_HoleModel error,with out blockDetail'); + return + } + let orgMA = block.blockDetail.modelListFaceA + let orgMB = block.blockDetail.modelListFaceB + let orgMT = block.blockDetail.modelListThrough + let orgHA = block.blockDetail.holeListFaceA + let orgHB = block.blockDetail.holeListFaceB + let orgHT = block.blockDetail.holeListThrough + + if (isTurnOver) { + block.modelListFaceA = orgMB.concat(orgMT); + block.modelListFaceB = orgMA; + block.holeListFaceA = orgHB.concat(orgHT); + block.holeListFaceB = orgHA; + } + else { + block.modelListFaceA = orgMA.concat(orgMT); + block.modelListFaceB = orgMB; + block.holeListFaceA = orgHA.concat(orgHT);; + block.holeListFaceB = orgHB; + } + + + //获取贴标位置 + let p = this.getPlaceXYInBlock(block, block.blockDetail.labelPosX, block.blockDetail.labelPosY, false, false); + block.labelPosX = p.x; + block.labelPosY = p.y; + }, + getPlaceXYInBlock(block: PlaceBlock, x: number, y: number, isSealed: boolean, isFaceB = false, preCutValueOff = null): Point { + let bwidth = block.cutWidth + let blength = block.cutLength + let x0: any = x + let y0: any = y + if (isSealed) // 已封边 + { + bwidth = block.width + blength = block.length + x0 += block.offsetX + y0 += block.offsetY + } + if (!isSealed && preCutValueOff) // 没封边,且有封边 + { + bwidth += preCutValueOff.w + blength += preCutValueOff.l + x0 += preCutValueOff.x + y0 += preCutValueOff.y + } + + let _point: any = this.getPlacedPostionInBlock(block.placeStyle, bwidth, blength, x0, y0, isFaceB) + + return _point + }, + /** 获得翻转后的新坐标 */ + getPlacedPostionInBlock(placeStyle: PlaceStyle, bwidth: number, blength: number, x0: number, y0: number, isFaceB: boolean): Point { + let posX = x0 + let posY = y0 + let placeWidth = bwidth + switch (placeStyle) { + case PlaceStyle.FRONT: + break + case PlaceStyle.FRONT_TURN_RIGHT: + posX = y0 + posY = bwidth - x0 + placeWidth = blength + break + case PlaceStyle.FRONT_TURN_BACK: + posX = bwidth - x0 + posY = blength - y0 + break + case PlaceStyle.FRONT_TURN_LEFT: + posX = blength - y0 + posY = x0 + placeWidth = blength + break + case PlaceStyle.BACK: + posX = bwidth - x0 + posY = y0 + break + case PlaceStyle.BACK_TURN_RIGHT: + posX = y0 + posY = x0 + placeWidth = blength + break + case PlaceStyle.BACK_TURN_BACK: + posX = x0 + posY = blength - y0 + break + case PlaceStyle.BACK_TURN_LEFT: + posX = blength - y0 + posY = bwidth - x0 + placeWidth = blength + break + default: + break + } + if (isFaceB) { + posX = placeWidth - posX + } + return new Point(posX, posY) + } +} + diff --git a/samples/moduleManager/module_init2VModel.ts b/samples/moduleManager/module_init2VModel.ts new file mode 100644 index 0000000..4e0aff7 --- /dev/null +++ b/samples/moduleManager/module_init2VModel.ts @@ -0,0 +1,83 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; +import { FaceType, PlaceBlockDetail } from "../confClass"; +// import { PolylineHelper } from "../handleAbility/common/LayoutEngine/PolylineHelper"; +// import {PolylineHelper} from "../handleAbility/common/LayoutEngine/PolylineHelper.js" +/** 模块 造型轮廓(含封边),扣除封边, 变成开料坐标 + * !!!!!! 有异常 要调整 + * input 入参 + +*/ + +export const Init2VModel: ProcessorModule = { + moduleName: "Init2VModel", + moduleVersion: '20250714', + config: { + + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { blockDetailList } = input + for (const bd of blockDetailList) { + init2VModel(bd); + } + + function init2VModel(blockDetail: PlaceBlockDetail, isCNC = false) { + 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 : this.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 + } + } + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_resetModelContour.ts b/samples/moduleManager/module_resetModelContour.ts new file mode 100644 index 0000000..e36dcaa --- /dev/null +++ b/samples/moduleManager/module_resetModelContour.ts @@ -0,0 +1,66 @@ +import { Processor, ProcessorModule } from "../../src/device"; + +import { ErrorInfo } from "../../src/device"; +import { PlaceBlockDetail } from "../confClass"; + +/** 模块 造型轮廓(含封边),扣除封边, 变成开料坐标 + * !!!!!!!!! 有异常 要调整 + * input 入参 + +*/ + +export const ResetModelContour: ProcessorModule = { + moduleName: "ResetModelContour", + moduleVersion: '20250714', + config: { + + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + const { blockDetailList } = input + for (const bd of blockDetailList) { + let blockDetail = new PlaceBlockDetail(bd); + resetModelContour(blockDetail); + } + /** 造型轮廓(含封边),扣除封边, 变成开料坐标 */ + function 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 + } + } + } + } + + return next ? next(input) : input; + }, + + + + + + onError(error) { + + console.error('出错了哦', error); + + } +}; + diff --git a/samples/moduleManager/module_tools.ts b/samples/moduleManager/module_tools.ts new file mode 100644 index 0000000..5728eef --- /dev/null +++ b/samples/moduleManager/module_tools.ts @@ -0,0 +1,93 @@ +import { Processor, ProcessorModule } from "../../src/device"; +import { confItem, Knife, PlaceBlock, PlaceBlockDetail, PlaceMaterial, _knifeType } from "../confClass"; +import { Big_bang, ComposingType, LineType, WorkerItemType, xbang } from "../handleAbility/RectOptimizeWorker/bang"; + +/** 模块 刀库 + * + * input 入参 + +*/ + +/** 优化前的 刀库 */ +export const ToolsModule: ProcessorModule = { + moduleName: "RectOptimizeMachine", + moduleVersion: '20250714', + config: { + knifeList: [], + }, + setConfig(config) { + this.config = { ...this.config, ...config }; + }, + + // 会在处理器自动执行 + /** + * + * @param input 输入数据 + * @param next 下一个流程的函数 + * @param context 上下文 + * @returns + */ + + process(input, next, context) { + + + // 将刀库添加到上下文 + Reflect.set(context, 'knifeList', this.config.knifeList) + // 将刀具查询方法加到上下文 + Reflect.set(context, 'getKnifeByParams', getKnifeByParams) + /** 通用 找刀具 根据查询条件 */ + function getKnifeByParams(params: _knifeType, knifeList: Knife[]) { + let knife: Knife | null = null + + if (params) { + let tempKnifeList: Knife[] = [...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 = 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 + } + + return next ? next(input) : input; + }, + + + + + + + onError(error) { + console.log('出错了哦', error); + } +}; + + \ No newline at end of file diff --git a/src/device.ts b/src/device.ts index 7705fa1..912b00f 100644 --- a/src/device.ts +++ b/src/device.ts @@ -3,7 +3,7 @@ import { error } from "console"; // 回调函数类型定义 type ProcessCallback = ( input: T, - next: (input: T) => R | Promise, + next?: (input: T) => R | Promise, context?: any ) => R | Promise; @@ -12,7 +12,7 @@ type ProcessCallback = ( type ModuleConfig = Record; // 回调函数类型 -type ModuleCallback = (result: R, input?: T) => void | Promise; +type ModuleCallback = (result: R, input?: T,context?:any) => void | Promise; export interface ErrorInfo { moduleName?: string @@ -56,8 +56,8 @@ export interface ProcessorModuleBase { // 主处理函数(可回调) process?: ProcessCallback; - // 直接是处理函数(无回调) - handle?: (input: T, next?: (input: T) => R | Promise, context?: Record) => R | Promise; + // // 直接是处理函数(无回调) + // handle?: (input: T, next?: (input: T) => R | Promise, context?: Record) => R | Promise; // 模块名称(用于标识和排序) moduleName?: string; @@ -65,25 +65,25 @@ export interface ProcessorModuleBase { moduleVersion?: string // 模块配置 config?: ModuleConfig; - // 多线程列表 - workerList?: any[] + // // 多线程列表 + // workerList?: any[] // 获取配置列表 getConfigList?: () => any[] // 设置配置的方法 setConfig?: (config: ModuleConfig) => void; - // 前置回调(在模块处理前执行) - before?: ModuleCallback; + // // 前置回调(在模块处理前执行) + // before?: ModuleCallback; - // 后置回调(在模块处理后执行) - after?: ModuleCallback; + // // 后置回调(在模块处理后执行) + // after?: ModuleCallback; // 错误处理回调 onError?: (error: unknown, input?: T) => void | Promise; // 消息传递 模块将数据传给处理器 onMessage?: Function//(data:unknown) => void | Promise; - // [key: string]:any + [key: string]:any } /** 支持自定义函数 */ @@ -211,7 +211,7 @@ export class StepControllerProcessor implements Processor { let str = log.map(e => { let s = '模块:' + e.moduleName if (e.configKey) { - s = s + ',' + e.configKey + s = s + '-' + e.configKey } s = s + ',' + e.info + ';' return s @@ -292,7 +292,7 @@ export class StepControllerProcessor implements Processor { // 执行后置回调 if (module.after) { - await module.after(result, input); + await module.after(result, input,context); } return result; @@ -306,18 +306,26 @@ export class StepControllerProcessor implements Processor { throw error; } } - async process(input: T): Promise { + + private async executeModuleByModuleName(moduleName:string,input){ + let module =this.modulesMap.get(moduleName) + + return module.process(input) + } + + async process(input: T,_context?:Record): Promise { if (this.modules.length === 0) { throw new Error("No modules registered"); } let currentIndex = 0; const modules = this.modules; - const context: Record = {}; + const context: Record = {..._context}; const executeNext = async (currentInput: T): Promise => { const currentModule = modules[currentIndex++]; if (!currentModule) { + console.log('执行结束,上下文',context); return currentInput as unknown as R; } diff --git a/src/paser.test.ts b/src/paser.test.ts new file mode 100644 index 0000000..acb610f --- /dev/null +++ b/src/paser.test.ts @@ -0,0 +1,221 @@ +import { describe, it, expect, test } from 'vitest'; +import { DemoParser } from '../samples/demoParser'; +// import { ProcessorModule, StepControllerProcessor } from '../src/device'; +import { ProcessorManager, StepControllerProcessor } from '../src/device'; +import { demoHandleGroupCutting } from '../samples/demoDatahandle/demoDataHandle1'; +import testJson from "./test.json" +import { RectOptimizeMachineModule } from '../samples/moduleManager/module_RectOptimizeMachine'; +// import { Worker, parentPort } from 'worker_threads'; +// import { UniversalWorker } from '../samples/WorkerHelper'; + + +// 在测试文件中直接使用 console.log 或 debugger 语句 +test('demoParser', () => { + // expect(1 + 1).toBe(2); + const text = `FSTART +TD 5 +G0 X100 Y100 Z10 F8000 +g0 x100 y100 z18 f8000 +g2 x120 y120 z18 R20 f8000 +g3 x100 y100 z18 i20 j0 f8000 +TN T2 +FEND + ` + const demoParser = new DemoParser(); + const result = demoParser.execTest(text); + console.log(result); +}); + +test('dataHandle', async () => { + const sysConfig = { + placeStyle: 1, + boardWidth: 2440, + boardLength: 1220, + cutBoardBorder:3, + cutKnifeGap:1, + isDoubleFaceBlockFirst:true, + // 测试刀库数据 + knifeList: [knifeData, knifeData1, knifeData2] + + } + const json = testJson + // 创建处理器集合 + const processorManager = new ProcessorManager(); + // 这里省略了 选择处理器的环节 --这里选了demo开料机 + const cuttingHandle = new demoHandleGroupCutting() + // 注册处理器 + processorManager.registerProcessor(cuttingHandle.processorName, cuttingHandle.processor) + // 使用XX处理器 会返回激活【正在使用】的 处理器 + let processor = processorManager.useProcessor(cuttingHandle.processorName) + // 或者 这样 获取 正在使用的处理器 注:若未执行useProcessor 将会返回 undefind + // processor = processorManager.getCurrentProcessor() + /** 处理器配置加载 */ + processor.updateModuleConfig(sysConfig) + // 方式1 + const res = await processor.process(json) + console.log('处理器所有流程都结束了', res); +}) +test('Module Test',async()=>{ + //测试 模块 + // 配置项 + const sysConfig = { + placeStyle: 1, + boardWidth: 2440, + boardLength: 1220, + // 测试刀库数据 + knifeList: [knifeData, knifeData1, knifeData2] + + } + // 测试数据 + const json = testJson + // 处理器集合 的管理器 + const processorManager = new ProcessorManager(); + // 处理器的管理器 + const stepManager = new StepControllerProcessor(); + // 处理器 要调用的模块 可设置多个 + stepManager.use([RectOptimizeMachineModule]) + stepManager.setOnMessageFunc(callBack) + function callBack(data){ + console.log('数据回调,这里测试优化',) + } + // + let processName = 'testRectOptimize' + processorManager.registerProcessor(processName,stepManager) + processorManager.useProcessor(processName,) +}) + +/** demo 刀具数据 */ +export const knifeData = { + "isEnabled": true, + "axleId": 2, + "knifeId": 2, + "processFace": "", + "knifeName": "T1", + "knifeType": 3, + "ability": [ + 5 + ], + "diameter": 5, + "length": 20, + "sawThiness": 7, + "sawDirection": 2, + "processDirection": 4, + "speed": 0, + "stepDepth": 0, + "offsetX": 0, + "offsetY": 0, + "offsetZ": 0, + "baseX": 0, + "baseY": 0, + "isModularDrill": false, + "isPreStartEnabled": false, + "preStartAheadActionCount": 5, + "isPreStartToolChangeDelay": false, + "preStartToolChangeDelayCode": "", + "isAxisStartCodePostpost": false, + "isAxisStopCodePrepose": false, + "drillGroupCode": "", + "axisStartCode": "M03 S18000\n", + "knifeStartCode": `M06 T1\nG43 H1\n`, + "drillGroupStartCode": "T1", + "drillGroupEndCode": "", + "knifeStopCode": "", + "axisStopCode": "M05\n", + "preStartActionDeferCode": "", + "useHolesGroupKnife": false, + "preStartActionStepsLimit": "", + "knifeNo": "", + "editable": true, + "isDefaultCutKnife": false, + "isPreStartChangeKnifeDefer": false +} +export const knifeData1 = { + "isEnabled": true, + "axleId": 2, + "knifeId": 2, + "processFace": "", + "knifeName": "T2", + "knifeType": 3, + "ability": [ + 5 + ], + "diameter": 6, + "length": 20, + "sawThiness": 7, + "sawDirection": 2, + "processDirection": 4, + "speed": 0, + "stepDepth": 0, + "offsetX": 0, + "offsetY": 0, + "offsetZ": 0, + "baseX": 0, + "baseY": 0, + "isModularDrill": false, + "isPreStartEnabled": false, + "preStartAheadActionCount": 5, + "isPreStartToolChangeDelay": false, + "preStartToolChangeDelayCode": "", + "isAxisStartCodePostpost": false, + "isAxisStopCodePrepose": false, + "drillGroupCode": "", + "axisStartCode": "M03 S18000\n", + "knifeStartCode": `M06 T2\nG43 H2\n`, + "drillGroupStartCode": "T2", + "drillGroupEndCode": "", + "knifeStopCode": "", + "axisStopCode": "M05\n", + "preStartActionDeferCode": "", + "useHolesGroupKnife": false, + "preStartActionStepsLimit": "", + "knifeNo": "", + "editable": true, + "isDefaultCutKnife": false, + "isPreStartChangeKnifeDefer": false +} +export const knifeData2 = { + "isEnabled": true, + "axleId": 2, + "knifeId": 2, + "processFace": "", + "knifeName": "T3", + "knifeType": 3, + "ability": [ + 5 + ], + "diameter": 6, + "length": 20, + "sawThiness": 7, + "sawDirection": 2, + "processDirection": 4, + "speed": 0, + "stepDepth": 0, + "offsetX": 0, + "offsetY": 0, + "offsetZ": 0, + "baseX": 0, + "baseY": 0, + "isModularDrill": false, + "isPreStartEnabled": false, + "preStartAheadActionCount": 5, + "isPreStartToolChangeDelay": false, + "preStartToolChangeDelayCode": "", + "isAxisStartCodePostpost": false, + "isAxisStopCodePrepose": false, + "drillGroupCode": "", + + "axisStartCode": "M03 S18000\n", + "knifeStartCode": `M06 T2\nG43 H2\n`, + "drillGroupStartCode": "T3", + "drillGroupEndCode": "", + "knifeStopCode": "", + "axisStopCode": "M05\n", + + "preStartActionDeferCode": "", + "useHolesGroupKnife": false, + "preStartActionStepsLimit": "", + "knifeNo": "", + "editable": true, + "isDefaultCutKnife": false, + "isPreStartChangeKnifeDefer": false +} diff --git a/src/test.json b/src/test.json new file mode 100644 index 0000000..db8652a --- /dev/null +++ b/src/test.json @@ -0,0 +1,29451 @@ +{ + "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, + "placeFullLength": 711.352, + "placeFullWidth": 356.01, + "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", + "placeFullLength": 805.01, + "placeFullWidth": 505.01, + "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", + "placeFullLength": 1029.721, + "placeFullWidth": 171.01, + "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", + "placeFullLength": 1091.42, + "placeFullWidth": 1147.278, + "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", + "placeFullLength": 105.01, + "placeFullWidth": 171.01, + "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", + "placeFullLength": 106.01, + "placeFullWidth": 171.01, + "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