From 0d65497cfbd15bacd27502a1c07e2d8bba451581 Mon Sep 17 00:00:00 2001 From: ChenX Date: Fri, 20 Oct 2023 16:32:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91:=E6=A8=A1=E6=8B=9F=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Editor/CommandRegister.ts | 3 +- src/Nest/Test/TestDrawYHData.ts | 49 +++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/Editor/CommandRegister.ts b/src/Editor/CommandRegister.ts index eb7e4539d..900994dd7 100644 --- a/src/Editor/CommandRegister.ts +++ b/src/Editor/CommandRegister.ts @@ -270,7 +270,7 @@ import { TemplateArray, TemplateAttach, TemplateAttach2 } from "../DatabaseServi import { DbText } from "../DatabaseServices/Text/Text"; import { RenderType } from "../GraphicsSystem/RenderType"; import { Command_TestContainer } from "../Nest/Test/TestContainer"; -import { Command_TestDrawYHData } from "../Nest/Test/TestDrawYHData"; +import { Command_TestDrawYHData, Command_TestDrawYHData2 } from "../Nest/Test/TestDrawYHData"; import { Command_TestNFP } from "../Nest/Test/TestNFP"; import { Command_TestPlace } from "../Nest/Test/TestPlace"; import { Command_TestParseOddments } from "../Nest/Test/TestPraseOddments"; @@ -694,6 +694,7 @@ export function registerCommand() commandMachine.RegisterCommand("testYH2", new Command_TestYH2()); commandMachine.RegisterCommand("testYHSingle", new Command_TestYHSingle()); commandMachine.RegisterCommand("testYHDraw", new Command_TestDrawYHData()); + commandMachine.RegisterCommand("testYHDraw2", new Command_TestDrawYHData2()); commandMachine.RegisterCommand("testYHSave", new Command_TestSaveYHData()); commandMachine.RegisterCommand("testSum", new Command_TestSum()); commandMachine.RegisterCommand("TestSimplyOddments", new Command_TestSimplyOddments()); diff --git a/src/Nest/Test/TestDrawYHData.ts b/src/Nest/Test/TestDrawYHData.ts index 584e845af..4f00fb86c 100644 --- a/src/Nest/Test/TestDrawYHData.ts +++ b/src/Nest/Test/TestDrawYHData.ts @@ -44,8 +44,7 @@ export class Command_TestDrawYHData implements Command let cus: Curve[] = []; part.UserData = cus; let state = part.RotatedStates[0]; - let pts = state.Contour.Points.map(p => new Vector3(p.x * 1, p.y * 1)); - let pl = Path2Polyline(pts); + let pl = Path2Polyline(state.Contour.Points); cus.push(pl); let ocs = new Matrix4; if (state.Rotation !== 0) @@ -124,3 +123,49 @@ export class Command_TestDrawYHData implements Command } } } + +/** + * 测试工具 使用数据还原优化结果 + */ +@HotCMD +export class Command_TestDrawYHData2 implements Command +{ + async exec() + { + //database data 请提供db数据 + let dd = []; + //place data 请提供place数据 + let pd = []; + + let df = new NestFiler(dd); + let pf = new NestFiler(pd); + let db = new NestDatabase().ReadFile(df); + + for (let part of db.Parts) + { + let state = part.State; + + let pl = Path2Polyline(state.Contour.Points); + TestDraw(pl); + part.UserData = [pl]; + + let ocs = new Matrix4; + if (state.Rotation !== 0) + ocs.makeRotationZ(-state.Rotation); + ocs.setPosition(state.OrigionMinPoint.x, state.OrigionMinPoint.y, 0); + NestVariant.curveMap.set(pl, ocs); + + for (let h of part.Holes) + { + let pl = Path2Polyline(h.Contour.Points); + TestDraw(pl); + part.UserData.push(pl); + NestVariant.curveMap.set(pl, new Matrix4().setPosition(h.OrigionMinPoint.x, h.OrigionMinPoint.y, 0)); + } + } + + let inv = new Individual(db.Parts); + inv.ReadFile(pf); + Place(inv, db.Parts, db.Bin); + } +}