|
|
|
@ -85,7 +85,7 @@ export class OneKeyLayout implements Command
|
|
|
|
|
let p2: Vector3;//视口的第二个点 UCS
|
|
|
|
|
let tkBoxMinP = new Vector3();//图框盒子的最小点
|
|
|
|
|
let tkPolylineDrawObjects: Object3D[] = [];//图框内的多段线绘制对象
|
|
|
|
|
let specialTexts = new Set<Entity>();
|
|
|
|
|
let specialTexts = new Set<Text>();
|
|
|
|
|
let pagTexts = new Set<Entity>();
|
|
|
|
|
let paperTexts = new Set<Entity>();
|
|
|
|
|
let dateTexts = new Set<Entity>();
|
|
|
|
@ -668,15 +668,27 @@ export class OneKeyLayout implements Command
|
|
|
|
|
let g = new GroupRecord();
|
|
|
|
|
g.Name = "图框";
|
|
|
|
|
app.Database.GroupTable.Add(g);
|
|
|
|
|
let board = bs.find(b => b instanceof Board) as Board;
|
|
|
|
|
let boards = bs.filter(b => b instanceof Board) as Board[];
|
|
|
|
|
for (let c of curves)
|
|
|
|
|
{
|
|
|
|
|
if (this._cacheRect.has(c.TempData)) continue;
|
|
|
|
|
let cloneC = c.Clone();
|
|
|
|
|
if (specialTexts.has(c))
|
|
|
|
|
{
|
|
|
|
|
this.HandleTextMetaData(cloneC as Text, board);
|
|
|
|
|
if (!(<Text>cloneC).TextString)
|
|
|
|
|
let strSet: Set<string> = new Set();
|
|
|
|
|
let metaData = (cloneC as Text).TextString.slice(1);
|
|
|
|
|
|
|
|
|
|
for (let br of boards)
|
|
|
|
|
{
|
|
|
|
|
//由于不同板的 材名 材料 颜色多样式,遍历所有板 其他(如房间名)跳过
|
|
|
|
|
if (!this.HandleTextMetaData(metaData, strSet, br))
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let str = Array.from(strSet).filter((str) => str !== "").join(", ");
|
|
|
|
|
(cloneC as Text).TextString = str;
|
|
|
|
|
|
|
|
|
|
if (!(cloneC as Text).TextString)
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (paperTexts.has(c))
|
|
|
|
@ -755,9 +767,9 @@ export class OneKeyLayout implements Command
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private HandleTextMetaData(text: Text, en?: Board)
|
|
|
|
|
private HandleTextMetaData(metaData: string, strSet: Set<string>, en?: Board)
|
|
|
|
|
{
|
|
|
|
|
let metaData = text.TextString.slice(1);
|
|
|
|
|
let isMaterial = false;
|
|
|
|
|
if (en)
|
|
|
|
|
{
|
|
|
|
|
const option = en.BoardProcessOption;
|
|
|
|
@ -766,26 +778,31 @@ export class OneKeyLayout implements Command
|
|
|
|
|
{
|
|
|
|
|
case "房名":
|
|
|
|
|
case "房间名":
|
|
|
|
|
text.TextString = option[EBoardKeyList.RoomName];
|
|
|
|
|
strSet.add(option[EBoardKeyList.RoomName]);
|
|
|
|
|
break;
|
|
|
|
|
case "柜名":
|
|
|
|
|
text.TextString = option[EBoardKeyList.CabinetName];
|
|
|
|
|
strSet.add(option[EBoardKeyList.CabinetName]);
|
|
|
|
|
break;
|
|
|
|
|
case "板材名":
|
|
|
|
|
text.TextString = option[EBoardKeyList.BrMat];
|
|
|
|
|
strSet.add(option[EBoardKeyList.BrMat]);
|
|
|
|
|
isMaterial = true;
|
|
|
|
|
break;
|
|
|
|
|
case "材料":
|
|
|
|
|
text.TextString = option[EBoardKeyList.Mat];
|
|
|
|
|
strSet.add(option[EBoardKeyList.Mat]);
|
|
|
|
|
isMaterial = true;
|
|
|
|
|
break;
|
|
|
|
|
case "颜色":
|
|
|
|
|
text.TextString = option[EBoardKeyList.Color];
|
|
|
|
|
strSet.add(option[EBoardKeyList.Color]);
|
|
|
|
|
isMaterial = true;
|
|
|
|
|
break;
|
|
|
|
|
case "图纸名称":
|
|
|
|
|
text.TextString = option[EBoardKeyList.PaperName];
|
|
|
|
|
strSet.add(option[EBoardKeyList.PaperName]);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return isMaterial;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|