!57 选择实体,生成构建代码,并添加复杂面域的生成测试.

Merge pull request !57 from ChenX/GenerateCode
pull/713034/MERGE
ChenX 7 years ago
parent e9fffdc9f5
commit 52776df171

@ -1,5 +1,6 @@
import { Vector3 } from 'three'; import { Vector3 } from 'three';
import { CADFile } from '../../src/DatabaseServices/CADFile';
import { Curve } from '../../src/DatabaseServices/Curve';
import { Line } from './../../src/DatabaseServices/Line'; import { Line } from './../../src/DatabaseServices/Line';
import { RegionParse } from './../../src/Geometry/RegionParse'; import { RegionParse } from './../../src/Geometry/RegionParse';
@ -226,3 +227,43 @@ test('保护伞', () =>
expectReg(g); expectReg(g);
}); });
test('带圆弧的复杂图形测试', () =>
{
let file = new CADFile();
file.Data = [
["Line", 1, 1, 105, false, 0, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [135.10332884629918, 7.41153204925861, 0], [141.2013396407662, -3.6141642356868466, 0]],
["Line", 1, 1, 106, false, 1, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [141.2013396407662, -3.6141642356868466, 0], [129.0669141204631, -3.614164235686845, 0]],
["Line", 1, 1, 107, false, 2, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [129.0669141204631, -3.614164235686845, 0], [118.90356279635137, 9.936970863128803, 0]],
["Line", 1, 1, 108, false, 3, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [118.90356279635137, 9.936970863128803, 0], [129.25170232635605, 16.219769863488786, 0]],
["Line", 1, 1, 109, false, 4, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [129.25170232635605, 16.219769863488786, 0], [131.77714114022623, 24.28885485414719, 0]],
["Line", 1, 1, 110, false, 5, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [131.77714114022623, 24.28885485414719, 0], [121.09714288582433, 18.21968481731883, 0]],
["Line", 1, 1, 111, false, 6, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [121.09714288582433, 18.21968481731883, 0], [115.57737509027845, 20.531494667657398, 0]],
["Line", 1, 1, 112, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [115.57737509027845, 20.531494667657398, 0], [118.90356279635137, 9.936970863128803, 0]],
["Line", 1, 1, 113, false, 0, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [129.25170232635605, 16.219769863488786, 0], [135.10332884629918, 7.41153204925861, 0]],
["Line", 1, 1, 114, false, 1, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [135.10332884629918, 7.41153204925861, 0], [141.07814750350425, 7.411532049258609, 0]],
["Line", 1, 1, 115, false, 2, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [141.07814750350425, 7.411532049258609, 0], [150.9951145530921, 6.9187635002107655, 0]],
["Line", 1, 1, 116, false, 3, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [150.9951145530921, 6.9187635002107655, 0], [146.62179368029246, 22.625761001110725, 0]],
["Line", 1, 1, 171, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [115.57737509027845, 20.531494667657398, 0], [122.16815443379333, 33.2818808742703, 0]],
["Line", 1, 1, 172, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [122.16815443379333, 33.2818808742703, 0], [131.77714114022623, 24.28885485414719, 0]],
["Line", 1, 1, 173, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [131.77714114022623, 24.28885485414719, 0], [140.3389946799325, 29.339732481887566, 0]],
["Line", 1, 1, 174, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [140.3389946799325, 29.339732481887566, 0], [146.62179368029246, 22.625761001110725, 0]],
["Arc", 1, 1, 175, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [151.10541370131332, 26.821442121699068, 0], [0, 0, 1], 6.14056907448819, 3.8938276244846772, 6.018122149019185, false],
["Arc", 1, 1, 176, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [161.1393080144557, 24.097737845466003, 0], [0, 0, 1], 4.256430496141867, 2.8765294954293896, 5.103001249079749, true],
["Arc", 1, 1, 177, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [164.0426698023552, 17.04682100167833, 0], [0, 0, 1], 3.368852318904628, 1.9614085954899536, 5.109952481560101, false],
["Arc", 1, 1, 178, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [168.0577082733428, 7.485478534075631, 0], [0, 0, 1], 7.001287685275334, 1.9683598279703076, 3.2491377039705007, true],
["Arc", 1, 1, 179, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [156.0343039466818, 6.18741259702873, 0], [0, 0, 1], 5.091984278064126, 0.10754505038070734, 2.997466317295445, false],
["Arc", 1, 1, 180, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [146.05997836303806, 7.635012886374687, 0], [0, 0, 1], 4.986840923627034, 6.139058970885238, 3.1864217771069283, true],
["Arc", 1, 1, 181, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, [138.09073817490173, 7.277519322534491, 0], [0, 0, 1], 2.9904136682983347, 0.04482912351713572, 3.0967635300726575, false]];
let cus: Curve[] = [];
for (let i = 0; i < file.Data.length; i++)
{
cus.push(file.ReadObject(undefined) as Curve);
}
let g = new RegionParse(cus);
expect(g.m_RegionsInternal.length).toBe(7);
expect(g.m_RegionsOutline.length).toBe(1);
});

@ -0,0 +1,31 @@
import { app } from '../ApplicationServices/Application';
import { Command } from "../Editor/CommandMachine";
import { PromptStatus } from "../Editor/PromptResult";
import { CADFile } from '../DatabaseServices/CADFile';
import { copyTextToClipboard } from '../Common/Utils';
/**
* ,.
*
* @export
* @class Command_GenerateCode
* @implements {Command}
*/
export class Command_GenerateCode implements Command
{
async exec()
{
let ssRes = await app.m_Editor.GetSelection({ UseSelect: true });
if (ssRes.Status != PromptStatus.OK) return;
let file = new CADFile();
for (let en of ssRes.SelectSet.SelectEntityList)
{
file.WriteObject(en);
}
copyTextToClipboard(JSON.stringify(file.Data));
app.m_Editor.m_CommandStore.Prompt("成功拷贝到剪切板.");
}
}

@ -1,11 +1,15 @@
import { DrawAxis } from '../Add-on/AddAxis'; import { DrawAxis } from '../Add-on/AddAxis';
import { Command_ClosePt } from '../Add-on/closetest'; // import { DrawFloor } from '../Add-on/DrawFloor';
// import { RevTarget, SaveTarget } from '../Add-on/RenderTarget';
import { Command_Array } from '../Add-on/Array';
import { Union } from '../Add-on/CSGUnion';
import { Command_Copy } from '../Add-on/Copy'; import { Command_Copy } from '../Add-on/Copy';
import { CustomUcs } from '../Add-on/CostumUCS'; import { CustomUcs } from '../Add-on/CostumUCS';
import { Union } from '../Add-on/CSGUnion';
import { DrawArc } from '../Add-on/DrawArc'; import { DrawArc } from '../Add-on/DrawArc';
import { Command_DrawBoard } from '../Add-on/DrawBoard'; import { Command_DrawBoard } from '../Add-on/DrawBoard';
import { DrawAlignedDimension } from '../Add-on/DrawDim/DrawAlignedDimension'; import { DrawAlignedDimension } from '../Add-on/DrawDim/DrawAlignedDimension';
import { DrawLineAngularDimension } from '../Add-on/DrawDim/DrawLineAngularDimension';
import { DrawLinearDimension } from '../Add-on/DrawDim/DrawLinearDimension';
import { DrawEllipse } from '../Add-on/DrawEllipse'; import { DrawEllipse } from '../Add-on/DrawEllipse';
import { DrawFloor } from '../Add-on/DrawFloor'; import { DrawFloor } from '../Add-on/DrawFloor';
import { DrawGripStretch } from '../Add-on/DrawGripStretch'; import { DrawGripStretch } from '../Add-on/DrawGripStretch';
@ -15,27 +19,24 @@ import { DrawRegion } from '../Add-on/DrawRegion';
import { DrawSky } from '../Add-on/DrawSky'; import { DrawSky } from '../Add-on/DrawSky';
import { DrawSpline } from '../Add-on/DrawSpline'; import { DrawSpline } from '../Add-on/DrawSpline';
import { DrawRegTest } from '../Add-on/DrawTestReg'; import { DrawRegTest } from '../Add-on/DrawTestReg';
import { DrawText } from '../Add-on/DrawText';
import { DrawCircle0 } from '../Add-on/DrawZeroCircle'; import { DrawCircle0 } from '../Add-on/DrawZeroCircle';
import { Entsel } from '../Add-on/Entsel'; import { Entsel } from '../Add-on/Entsel';
import { Command_Erase } from '../Add-on/Erase'; import { Command_Erase } from '../Add-on/Erase';
import { Command_Export } from '../Add-on/Export'; import { Command_Export } from '../Add-on/Export';
import { Command_Extend } from '../Add-on/Extends'; import { Command_Extend } from '../Add-on/Extends';
import { CommandFillet } from '../Add-on/Fillet'; import { CommandFillet } from '../Add-on/Fillet';
import { Command_INsTest } from '../Add-on/instest'; import { Command_GenerateCode } from '../Add-on/GenerateCode';
import { Fbx } from '../Add-on/loadfbx';
import { LoadImg } from '../Add-on/LoadImg'; import { LoadImg } from '../Add-on/LoadImg';
import { Command_Move } from '../Add-on/Move'; import { Command_Move } from '../Add-on/Move';
import { Command_Offset, Command_TestOffset } from '../Add-on/Offset'; import { Command_Offset, Command_TestOffset } from '../Add-on/Offset';
import { Open } from '../Add-on/Open'; import { Open } from '../Add-on/Open';
import { Command_PLTest } from '../Add-on/polytest';
import { Command_RevPl } from '../Add-on/RevPl'; import { Command_RevPl } from '../Add-on/RevPl';
import { Command_Rotate } from '../Add-on/Rotate'; import { Command_Rotate } from '../Add-on/Rotate';
import { Save } from '../Add-on/Save'; import { Save } from '../Add-on/Save';
import { Command_Ssget } from '../Add-on/ssget';
import { Stretch } from '../Add-on/Stretch'; import { Stretch } from '../Add-on/Stretch';
import { Command_SwitchCamera } from '../Add-on/SwitchCamera'; import { Command_SwitchCamera } from '../Add-on/SwitchCamera';
import { Command_SwitchPass } from '../Add-on/SwitchPass'; import { Command_SwitchPass } from '../Add-on/SwitchPass';
import { Test } from '../Add-on/test';
import { Command_TestBox } from '../Add-on/TestBox'; import { Command_TestBox } from '../Add-on/TestBox';
import { Command_DrawBoard2 } from '../Add-on/TestDrawBoard'; import { Command_DrawBoard2 } from '../Add-on/TestDrawBoard';
import { TestDrawDirectionalLight } from '../Add-on/TestDrawDirectionalLight'; import { TestDrawDirectionalLight } from '../Add-on/TestDrawDirectionalLight';
@ -44,15 +45,14 @@ import { TestDrawSpotLight } from '../Add-on/TestDrawSpotLight';
import { Command_Trim } from '../Add-on/Trim'; import { Command_Trim } from '../Add-on/Trim';
import { Redo, Undo } from '../Add-on/Undo'; import { Redo, Undo } from '../Add-on/Undo';
import { ViewToFront, ViewToRight, ViewToTop } from '../Add-on/ViewChange'; import { ViewToFront, ViewToRight, ViewToTop } from '../Add-on/ViewChange';
import { commandMachine } from './CommandMachine'; import { Command_ClosePt } from '../Add-on/closetest';
import { DrawLinearDimension } from '../Add-on/DrawDim/DrawLinearDimension'; import { Command_INsTest } from '../Add-on/instest';
import { DrawLineAngularDimension } from '../Add-on/DrawDim/DrawLineAngularDimension'; import { Fbx } from '../Add-on/loadfbx';
import { Command_DimTest } from '../DatabaseServices/Dimension/dimTest'; import { Command_PLTest } from '../Add-on/polytest';
import { DrawText } from '../Add-on/DrawText';
// import { DrawFloor } from '../Add-on/DrawFloor';
// import { RevTarget, SaveTarget } from '../Add-on/RenderTarget';
import { Command_Array } from '../Add-on/Array';
import { Command_PtInCu } from '../Add-on/ptincu'; import { Command_PtInCu } from '../Add-on/ptincu';
import { Command_Ssget } from '../Add-on/ssget';
import { Command_DimTest } from '../DatabaseServices/Dimension/dimTest';
import { commandMachine } from './CommandMachine';
export function registerCommand() export function registerCommand()
{ {
commandMachine.RegisterCommand("l", new DrawLine()) commandMachine.RegisterCommand("l", new DrawLine())
@ -160,6 +160,7 @@ export function registerCommand()
commandMachine.RegisterCommand("incu", new Command_PtInCu()); commandMachine.RegisterCommand("incu", new Command_PtInCu());
commandMachine.RegisterCommand("code", new Command_GenerateCode());
// commandMachine.RegisterCommand("st", new SaveTarget()) // commandMachine.RegisterCommand("st", new SaveTarget())
// commandMachine.RegisterCommand("rt", new RevTarget()) // commandMachine.RegisterCommand("rt", new RevTarget())

Loading…
Cancel
Save