|
|
@ -5,9 +5,12 @@ import { GetRectData } from "../../Common/CurveUtils";
|
|
|
|
import { safeEval } from "../../Common/eval";
|
|
|
|
import { safeEval } from "../../Common/eval";
|
|
|
|
import { Buy2To3 } from "../../Common/HostUrl";
|
|
|
|
import { Buy2To3 } from "../../Common/HostUrl";
|
|
|
|
import { matrixSetVector } from "../../Common/Matrix4Utils";
|
|
|
|
import { matrixSetVector } from "../../Common/Matrix4Utils";
|
|
|
|
|
|
|
|
import { DuplicateRecordCloning } from "../../Common/Status";
|
|
|
|
import { FixDigits } from "../../Common/Utils";
|
|
|
|
import { FixDigits } from "../../Common/Utils";
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
|
|
|
|
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
|
|
|
|
|
|
|
|
import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity";
|
|
|
|
|
|
|
|
import { PositioningBoardSpace } from "../../DatabaseServices/Template/Positioning/PositioningBoardSpace";
|
|
|
|
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
|
|
|
|
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
|
|
|
|
import { Command } from "../../Editor/CommandMachine";
|
|
|
|
import { Command } from "../../Editor/CommandMachine";
|
|
|
|
import { PromptStatus } from "../../Editor/PromptResult";
|
|
|
|
import { PromptStatus } from "../../Editor/PromptResult";
|
|
|
@ -106,7 +109,7 @@ export class Polyline2Board implements Command
|
|
|
|
this.fontDis = option.cabinetCurtail;//0;
|
|
|
|
this.fontDis = option.cabinetCurtail;//0;
|
|
|
|
this.backBoardThick = option.backBrThick;//18;
|
|
|
|
this.backBoardThick = option.backBrThick;//18;
|
|
|
|
this.backIsTemplate = option.backBrUseTemplate;//false;
|
|
|
|
this.backIsTemplate = option.backBrUseTemplate;//false;
|
|
|
|
// this.backTemplate = option.backBrTemplate;
|
|
|
|
this.backTemplate = option.backBrTemplate;
|
|
|
|
this.backBoardMoveDis = option.backBrFrontMove;//0;
|
|
|
|
this.backBoardMoveDis = option.backBrFrontMove;//0;
|
|
|
|
this.isUseBoardNameToAttr = false;
|
|
|
|
this.isUseBoardNameToAttr = false;
|
|
|
|
this.moveBackLen = option.backBrBiggerThanHeight;
|
|
|
|
this.moveBackLen = option.backBrBiggerThanHeight;
|
|
|
@ -181,7 +184,6 @@ export class Polyline2Board implements Command
|
|
|
|
matrixSetVector(this.SpaceOCS, 2, y);
|
|
|
|
matrixSetVector(this.SpaceOCS, 2, y);
|
|
|
|
|
|
|
|
|
|
|
|
let allBoards: Board[] = [];
|
|
|
|
let allBoards: Board[] = [];
|
|
|
|
|
|
|
|
|
|
|
|
let layerVerBoards: Board[] = this.DrawBoard(otherPls);
|
|
|
|
let layerVerBoards: Board[] = this.DrawBoard(otherPls);
|
|
|
|
let tzdj = this.DrawBoard(facePls, false, 4);//条子或地脚板
|
|
|
|
let tzdj = this.DrawBoard(facePls, false, 4);//条子或地脚板
|
|
|
|
allBoards.push(...tzdj);
|
|
|
|
allBoards.push(...tzdj);
|
|
|
@ -218,29 +220,32 @@ export class Polyline2Board implements Command
|
|
|
|
|
|
|
|
|
|
|
|
for (let b of allBoards)
|
|
|
|
for (let b of allBoards)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
b.KnifeRadius = this.knifeRadius;
|
|
|
|
if (b instanceof Board)
|
|
|
|
b.GroovesAddDepth = this.grooveDepth;
|
|
|
|
{
|
|
|
|
b.GroovesAddWidth = this.grooveWidth;
|
|
|
|
b.KnifeRadius = this.knifeRadius;
|
|
|
|
b.GroovesAddLength = this.grooveLength;
|
|
|
|
b.GroovesAddDepth = this.grooveDepth;
|
|
|
|
b.BoardProcessOption.material = storeOption.material;
|
|
|
|
b.GroovesAddWidth = this.grooveWidth;
|
|
|
|
b.BoardProcessOption.color = storeOption.color;
|
|
|
|
b.GroovesAddLength = this.grooveLength;
|
|
|
|
b.BoardProcessOption.boardName = storeOption.boardMatName;
|
|
|
|
b.BoardProcessOption.material = storeOption.material;
|
|
|
|
|
|
|
|
b.BoardProcessOption.color = storeOption.color;
|
|
|
|
b.BoardProcessOption.roomName = storeOption.roomName;
|
|
|
|
b.BoardProcessOption.boardName = storeOption.boardMatName;
|
|
|
|
b.BoardProcessOption.drillType = storeOption.drillType;
|
|
|
|
|
|
|
|
b.BoardProcessOption.highDrill.fill(storeOption.drillType);
|
|
|
|
b.BoardProcessOption.roomName = storeOption.roomName;
|
|
|
|
b.BoardProcessOption.sealedUp = storeOption.sealedUp;
|
|
|
|
b.BoardProcessOption.drillType = storeOption.drillType;
|
|
|
|
b.BoardProcessOption.sealedDown = storeOption.sealedDown;
|
|
|
|
b.BoardProcessOption.highDrill.fill(storeOption.drillType);
|
|
|
|
b.BoardProcessOption.sealedLeft = storeOption.sealedLeft;
|
|
|
|
b.BoardProcessOption.sealedUp = storeOption.sealedUp;
|
|
|
|
b.BoardProcessOption.sealedRight = storeOption.sealedRight;
|
|
|
|
b.BoardProcessOption.sealedDown = storeOption.sealedDown;
|
|
|
|
|
|
|
|
b.BoardProcessOption.sealedLeft = storeOption.sealedLeft;
|
|
|
|
let remarks: [string, string][] = [];
|
|
|
|
b.BoardProcessOption.sealedRight = storeOption.sealedRight;
|
|
|
|
for (let d of storeOption.remarks)
|
|
|
|
|
|
|
|
{
|
|
|
|
let remarks: [string, string][] = [];
|
|
|
|
if (d[0] && d[1])
|
|
|
|
for (let d of storeOption.remarks)
|
|
|
|
remarks.push([d[0], d[1]]);
|
|
|
|
{
|
|
|
|
|
|
|
|
if (d[0] && d[1])
|
|
|
|
|
|
|
|
remarks.push([d[0], d[1]]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
b.BoardProcessOption.remarks = remarks;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
b.BoardProcessOption.remarks = remarks;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let cabGroup: Board[][] = [];
|
|
|
|
let cabGroup: Board[][] = [];
|
|
|
@ -319,7 +324,6 @@ export class Polyline2Board implements Command
|
|
|
|
else
|
|
|
|
else
|
|
|
|
others.push(br);//层板立板
|
|
|
|
others.push(br);//层板立板
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (others.length > 0)//空的组没意义
|
|
|
|
if (others.length > 0)//空的组没意义
|
|
|
|
cabGroup.push(others);
|
|
|
|
cabGroup.push(others);
|
|
|
|
|
|
|
|
|
|
|
@ -563,6 +567,71 @@ export class Polyline2Board implements Command
|
|
|
|
if (!nameOption) continue;
|
|
|
|
if (!nameOption) continue;
|
|
|
|
UpdateBoardInfos.ModifyBr(b, nameOption);
|
|
|
|
UpdateBoardInfos.ModifyBr(b, nameOption);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
let tempIsHCE = false;//替换模板是否为复合模块
|
|
|
|
|
|
|
|
//背板模块替换
|
|
|
|
|
|
|
|
if (this.backIsTemplate)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (!this.backTemplate) return;
|
|
|
|
|
|
|
|
let newBackBoards: Board[] = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < backBoards.length; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let en = backBoards[i];
|
|
|
|
|
|
|
|
let template = app.Database.WblockCloneObejcts([this.backTemplate], app.Database.TemplateTable, new Map(), DuplicateRecordCloning.Ignore)[0] as TemplateRecord;
|
|
|
|
|
|
|
|
let pos = new PositioningBoardSpace();
|
|
|
|
|
|
|
|
pos.ObjectId = en.Id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template.Positioning = pos;
|
|
|
|
|
|
|
|
template.LParam.expr = "";
|
|
|
|
|
|
|
|
template.WParam.expr = "";
|
|
|
|
|
|
|
|
template.HParam.expr = "";
|
|
|
|
|
|
|
|
template.PYParam.expr = "";
|
|
|
|
|
|
|
|
template.RXParam.expr = "-90";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await template.UpdateTemplateTree();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let br of template.AllEntitys)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//柜名跟随
|
|
|
|
|
|
|
|
if (br instanceof Board)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (storeOption.iscabinetName)
|
|
|
|
|
|
|
|
if (!this.isMultiBackCab)
|
|
|
|
|
|
|
|
br.BoardProcessOption.cabinetName = storeOption.cabinetName + (i + 1);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
br.BoardProcessOption.cabinetName = storeOption.cabinetName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (br instanceof HardwareCompositeEntity)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tempIsHCE = true;
|
|
|
|
|
|
|
|
if (storeOption.iscabinetName)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
br.WriteAllObjectRecord();
|
|
|
|
|
|
|
|
if (!this.isMultiBackCab)
|
|
|
|
|
|
|
|
br.HardwareOption.cabinetName = storeOption.cabinetName + (i + 1);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
br.HardwareOption.cabinetName = storeOption.cabinetName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
newBackBoards.push(br as Board);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
pos.ObjectId.Object.Erase();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
backBoards = newBackBoards;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < backBoards.length; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//其他属性跟随
|
|
|
|
|
|
|
|
if (backBoards[i] instanceof Board)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
backBoards[i].BoardProcessOption.material = storeOption.material;
|
|
|
|
|
|
|
|
backBoards[i].BoardProcessOption.color = storeOption.color;
|
|
|
|
|
|
|
|
backBoards[i].BoardProcessOption.boardName = storeOption.boardMatName;
|
|
|
|
|
|
|
|
backBoards[i].BoardProcessOption.roomName = storeOption.roomName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (this.behindIsRelative)
|
|
|
|
if (this.behindIsRelative)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -571,12 +640,15 @@ export class Polyline2Board implements Command
|
|
|
|
CuttingBoardByBoard(layerVerBoards, backBoards);
|
|
|
|
CuttingBoardByBoard(layerVerBoards, backBoards);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
for (let br of layerVerBoards)
|
|
|
|
for (let br of layerVerBoards)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//柜体内缩
|
|
|
|
//柜体内缩
|
|
|
|
CurtailFunc(br, this.fontDis);
|
|
|
|
CurtailFunc(br, this.fontDis);
|
|
|
|
br.Subtract(backBoards);
|
|
|
|
if (!tempIsHCE)
|
|
|
|
|
|
|
|
br.Subtract(backBoards);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DrawBoard(pls: Polyline[], isBack = false, color?: number): Board[]
|
|
|
|
DrawBoard(pls: Polyline[], isBack = false, color?: number): Board[]
|
|
|
|