!1326 功能:铰链信息写入到板件备注,命令:parsehinge

pull/1326/MERGE
ZoeLeeFZ 4 years ago committed by ChenX
parent d87225032e
commit 067a1ece68

@ -0,0 +1,51 @@
import { Vector3 } from "three";
import { app } from "../../ApplicationServices/Application";
import { arrayRemoveIf } from "../../Common/ArrayExt";
import { FixedNotZero } from "../../Common/Utils";
import { Board } from "../../DatabaseServices/Entity/Board";
import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity";
import { Command } from "../../Editor/CommandMachine";
import { PromptStatus } from "../../Editor/PromptResult";
import { BoardOpenDir } from "../../UI/Store/BoardInterface";
export class ParseHinge implements Command
{
async exec()
{
let res = await app.Editor.GetSelection({
Msg: "请选择需要分析铰链的门板",
Filter: {
filterFunction: (o, e) => e instanceof Board && e.OpenDir !== BoardOpenDir.None
}
});
if (res.Status === PromptStatus.OK)
{
let doors = res.SelectSet.SelectEntityList as Board[];
for (let door of doors)
{
let hingeMap = new Map<string, string>();
for (let hid of door.RelativeHardware)
{
let hw = hid.Object;
if (hw instanceof HardwareCompositeEntity)
{
if (hw.HardwareOption.name.includes("铰链"))
{
let pos = new Vector3().setFromMatrixPosition(hw.SpaceOCS).applyMatrix4(door.OCSInv);
let posStr = hingeMap.get("jl-" + hw.HardwareOption.name);
if (!posStr)
posStr = "";
posStr += `${FixedNotZero(pos.x, 2)},${FixedNotZero(pos.y, 2)},${FixedNotZero(pos.z, 2)}|`;
hingeMap.set("jl-" + hw.HardwareOption.name, posStr);
}
}
}
let oldRemarks = door.BoardProcessOption.remarks.slice();
arrayRemoveIf(oldRemarks, (r) => hingeMap.has(r[0]));
oldRemarks.push(...hingeMap.entries());
door.BoardProcessOption.remarks = oldRemarks;
}
}
}
}

@ -71,6 +71,7 @@ export class OrderDataBlock
ObjIDs: BlockObjIds; ObjIDs: BlockObjIds;
KaiLiaoWidth: number; KaiLiaoWidth: number;
KaiLiaoHeight: number; KaiLiaoHeight: number;
RemarkExtra: string;
} }
export enum CadType export enum CadType
{ {

@ -164,7 +164,10 @@ export class ErpParseData
block.KaiLiaoHeight = boardData.info.kaiLiaoHeight; block.KaiLiaoHeight = boardData.info.kaiLiaoHeight;
let kaiLiaoArray = [boardData.info.kaiLiaoWidth, boardData.info.kaiLiaoHeight]; let kaiLiaoArray = [boardData.info.kaiLiaoWidth, boardData.info.kaiLiaoHeight];
block.CadData = JSON.stringify([pointInfoArray, basepositionArray, cadModelArray, offsetArray, kaiLiaoArray]); block.CadData = JSON.stringify([pointInfoArray, basepositionArray, cadModelArray, offsetArray, kaiLiaoArray]);
block.RemarkJson = JSON.stringify(this.GetRemark(boardData.info.remarks)); let filter = (remark: [string, string]) => { return !remark[0].startsWith('jl-'); };
block.RemarkJson = JSON.stringify(this.GetRemark(boardData.info.remarks, filter).map(t => t[1]));
let jlFilter = (remark: [string, string]) => { return remark[0].startsWith('jl-'); };
block.RemarkExtra = JSON.stringify(this.GetRemark(boardData.info.remarks, jlFilter));
let boxSize = boxSizeList.get(entity); let boxSize = boxSizeList.get(entity);
block.BoxWidth = boxSize.x; block.BoxWidth = boxSize.x;
block.BoxDepth = boxSize.y; block.BoxDepth = boxSize.y;
@ -680,9 +683,13 @@ export class ErpParseData
} }
return add; return add;
} }
GetRemark(remarks: [string, string][]) GetRemark(remarks: [string, string][], filter: (block: [string, string]) => boolean)
{ {
return remarks.map(t => t[1]); if (filter)
{
return remarks.filter(t => filter(t));
}
return remarks;
} }
GetAllDrillsObjects(boardList: Board[]) GetAllDrillsObjects(boardList: Board[])
{ {

@ -195,4 +195,5 @@ export enum CommandNames
Knife = "KNIFES",//编辑BBS Knife = "KNIFES",//编辑BBS
R2B2 = "RECT2BOARD2", R2B2 = "RECT2BOARD2",
FixIntSelfContour = "FIXINTSELFCONTOUR", FixIntSelfContour = "FIXINTSELFCONTOUR",
ParseHinge = "PARSEHINGE",//分析门板的铰链
} }

@ -191,7 +191,6 @@ import { Polyline2Board } from "../Add-on/twoD2threeD/Polyline2Board";
import { Redo, Undo } from "../Add-on/Undo"; import { Redo, Undo } from "../Add-on/Undo";
import { ViewChange } from "../Add-on/ViewChange"; import { ViewChange } from "../Add-on/ViewChange";
import { OneKeyLayout } from "../Add-on/Viewport/OneKeyLayout"; import { OneKeyLayout } from "../Add-on/Viewport/OneKeyLayout";
import { OneKeyPrint } from "../Add-on/Viewport/OneKeyPrint";
import { Command_Wblock } from "../Add-on/Wblock"; import { Command_Wblock } from "../Add-on/Wblock";
import { ZoomE } from "../Add-on/ZoomE"; import { ZoomE } from "../Add-on/ZoomE";
import { CommandNames } from "../Common/CommandNames"; import { CommandNames } from "../Common/CommandNames";
@ -212,6 +211,8 @@ import { ShowKinfeManageModal } from './../Add-on/showModal/ShowKnifeManageModal
import { commandMachine } from './CommandMachine'; import { commandMachine } from './CommandMachine';
import { Rect2Board } from "../Add-on/twoD2threeD/Rect2Board"; import { Rect2Board } from "../Add-on/twoD2threeD/Rect2Board";
import { FixIntersectSelfContour } from "../Add-on/DrawBoard/FixIntersectSelfContour"; import { FixIntersectSelfContour } from "../Add-on/DrawBoard/FixIntersectSelfContour";
import { OneKeyPrint } from "../Add-on/Viewport/OneKeyPrint";
import { ParseHinge } from "../Add-on/DrawBoard/ParseHinge";
export function registerCommand() export function registerCommand()
{ {
@ -591,6 +592,7 @@ export function registerCommand()
commandMachine.RegisterCommand(CommandNames.R2B2, new Rect2Board()); commandMachine.RegisterCommand(CommandNames.R2B2, new Rect2Board());
commandMachine.RegisterCommand(CommandNames.FixIntSelfContour, new FixIntersectSelfContour()); commandMachine.RegisterCommand(CommandNames.FixIntSelfContour, new FixIntersectSelfContour());
commandMachine.RegisterCommand(CommandNames.ParseHinge, new ParseHinge());
} }
export async function RegistCustomCommand() export async function RegistCustomCommand()

@ -361,7 +361,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
switch (key) switch (key)
{ {
case "Name": case "Name":
arr.push(b.Name); arr.push(`"${b.Name}"`);
break; break;
case "Width": case "Width":
case "Height": case "Height":
@ -443,10 +443,10 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
} }
break; break;
case "remarks": case "remarks":
arr.push(b.BoardProcessOption.remarks.reduce((s, r) => s += ` ${r[0]}:${r[1]} `, "")); arr.push(`"${b.BoardProcessOption.remarks.reduce((s, r) => s += ` ${r[0]}:${r[1]} `, "")}"`);
break; break;
default: default:
arr.push(b.BoardProcessOption[key]); arr.push(`"${b.BoardProcessOption[key]}"`);
} }
} }
this.boardDataInArray.push({ br: b, arr: arr }); this.boardDataInArray.push({ br: b, arr: arr });

Loading…
Cancel
Save