|
|
|
@ -105,11 +105,12 @@ export class Polyline2Board implements Command
|
|
|
|
|
footThickness: number;
|
|
|
|
|
stripThickness: number;
|
|
|
|
|
useSktTemplate: boolean;
|
|
|
|
|
sktTemplate: TemplateRecord;
|
|
|
|
|
|
|
|
|
|
leftSktTemplate: TemplateRecord;
|
|
|
|
|
rightSktTemplate: TemplateRecord;
|
|
|
|
|
topSktTemplate: TemplateRecord;
|
|
|
|
|
InitData(store: Rec2BrStore)
|
|
|
|
|
{
|
|
|
|
|
let option = store.m_Option;
|
|
|
|
|
const { m_Option: option, SktTemplates } = store;
|
|
|
|
|
this.boardThick = option.cabinetBrThick;//18;
|
|
|
|
|
this.boardDepth = option.cabinetDeep;//300;
|
|
|
|
|
this.fontDis = option.cabinetCurtail;//0;
|
|
|
|
@ -126,7 +127,9 @@ export class Polyline2Board implements Command
|
|
|
|
|
this.backDownExtend = option.backBrDownExtend;//0;
|
|
|
|
|
this.isMultiBackCab = option.isMultiBackBr;
|
|
|
|
|
this.useSktTemplate = option.useSktTemplate;//false;
|
|
|
|
|
this.sktTemplate = option.sktTemplate;
|
|
|
|
|
this.leftSktTemplate = SktTemplates.sktTemplate;
|
|
|
|
|
this.rightSktTemplate = SktTemplates.rightSktTemplate;
|
|
|
|
|
this.topSktTemplate = SktTemplates.topSktTemplate;
|
|
|
|
|
//材料信息
|
|
|
|
|
this.knifeRadius = safeEval(store.UiGrooveOption.knifeRadius);
|
|
|
|
|
this.grooveDepth = safeEval(store.UiGrooveOption.grooveAddDepth);
|
|
|
|
@ -194,6 +197,7 @@ export class Polyline2Board implements Command
|
|
|
|
|
let allBoards: Board[] = [];
|
|
|
|
|
let layerVerBoards: Board[] = this.DrawBoard(otherPls, false);
|
|
|
|
|
let skts: Board[] = [];//收口条
|
|
|
|
|
let sktDris = [];//收口条方向
|
|
|
|
|
let tzdj = this.DrawBoard(facePls, false, 4);//条子或地脚板
|
|
|
|
|
allBoards.push(...tzdj);
|
|
|
|
|
|
|
|
|
@ -472,7 +476,7 @@ export class Polyline2Board implements Command
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//收口条
|
|
|
|
|
//收口条和地脚线
|
|
|
|
|
skts.push(...backs.filter(br => br.ColorIndex === 4));
|
|
|
|
|
let down = Infinity;
|
|
|
|
|
for (let br of skts)
|
|
|
|
@ -480,12 +484,35 @@ export class Polyline2Board implements Command
|
|
|
|
|
let p = br.MinPoint.applyMatrix4(spaceInv);
|
|
|
|
|
if (p.z < down) down = p.z;
|
|
|
|
|
}
|
|
|
|
|
//地脚线
|
|
|
|
|
|
|
|
|
|
//提取地脚线和收口条方向信息
|
|
|
|
|
arrayRemoveIf(skts, br =>
|
|
|
|
|
{
|
|
|
|
|
let isdjx = br.Width > br.Height && (br.MinPoint.applyMatrix4(spaceInv).z < bigBox.min.y + 6);
|
|
|
|
|
if (isdjx)
|
|
|
|
|
djxs.push(br);
|
|
|
|
|
const base = br.MinPoint.applyMatrix4(spaceInv);
|
|
|
|
|
let isdjx = false;
|
|
|
|
|
if (br.Width > br.Height)
|
|
|
|
|
{
|
|
|
|
|
if ((base.z < bigBox.min.y + 6))
|
|
|
|
|
{
|
|
|
|
|
djxs.push(br);
|
|
|
|
|
isdjx = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sktDris.push(["topSktTemplate", br]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (base.x < bigBox.min.x + 6)
|
|
|
|
|
{
|
|
|
|
|
sktDris.push(["leftSktTemplate", br]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sktDris.push(["rightSktTemplate", br]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return isdjx;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@ -701,14 +728,14 @@ export class Polyline2Board implements Command
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.useSktTemplate && this.sktTemplate)
|
|
|
|
|
if (this.useSktTemplate)
|
|
|
|
|
{
|
|
|
|
|
let newSktBoards: Board[] = [];
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < skts.length; i++)
|
|
|
|
|
for (const [tempName, en] of sktDris)
|
|
|
|
|
{
|
|
|
|
|
let en = skts[i];
|
|
|
|
|
let template = app.Database.WblockCloneObejcts([this.sktTemplate], app.Database.TemplateTable, new Map(), DuplicateRecordCloning.Ignore)[0] as TemplateRecord;
|
|
|
|
|
const temp = this[tempName];
|
|
|
|
|
if (!temp) continue;
|
|
|
|
|
let template = app.Database.WblockCloneObejcts([temp], app.Database.TemplateTable, new Map(), DuplicateRecordCloning.Ignore)[0] as TemplateRecord;
|
|
|
|
|
let pos = new PositioningBoardSpace();
|
|
|
|
|
pos.ObjectId = en.Id;
|
|
|
|
|
|
|
|
|
|