|
|
@ -8,6 +8,7 @@ import { ExtrudeHole } from '../DatabaseServices/3DSolid/ExtrudeHole';
|
|
|
|
import { Hole } from '../DatabaseServices/3DSolid/Hole';
|
|
|
|
import { Hole } from '../DatabaseServices/3DSolid/Hole';
|
|
|
|
import { Board } from '../DatabaseServices/Entity/Board';
|
|
|
|
import { Board } from '../DatabaseServices/Entity/Board';
|
|
|
|
import { Entity } from '../DatabaseServices/Entity/Entity';
|
|
|
|
import { Entity } from '../DatabaseServices/Entity/Entity';
|
|
|
|
|
|
|
|
import { DirectionalLight } from '../DatabaseServices/Lights/DirectionalLight';
|
|
|
|
import { Light } from '../DatabaseServices/Lights/Light';
|
|
|
|
import { Light } from '../DatabaseServices/Lights/Light';
|
|
|
|
import { Command } from '../Editor/CommandMachine';
|
|
|
|
import { Command } from '../Editor/CommandMachine';
|
|
|
|
import { JigUtils } from '../Editor/JigUtils';
|
|
|
|
import { JigUtils } from '../Editor/JigUtils';
|
|
|
@ -25,7 +26,13 @@ export class Command_Copy implements Command
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let ssRes = await app.Editor.GetSelection({ Msg: "请选择需要拷贝的实体:", UseSelect: true });
|
|
|
|
let ssRes = await app.Editor.GetSelection({
|
|
|
|
|
|
|
|
Msg: "请选择需要拷贝的实体:", UseSelect: true,
|
|
|
|
|
|
|
|
Filter: {
|
|
|
|
|
|
|
|
filterFunction: (obj, ent) => !(ent instanceof DirectionalLight)//避免拷贝太阳光 太阳光只能有一个
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
if (ssRes.Status !== PromptStatus.OK)
|
|
|
|
if (ssRes.Status !== PromptStatus.OK)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
@ -36,7 +43,7 @@ export class Command_Copy implements Command
|
|
|
|
let ptBase = ptRes.Point;
|
|
|
|
let ptBase = ptRes.Point;
|
|
|
|
let ptLast = ptBase.clone();
|
|
|
|
let ptLast = ptBase.clone();
|
|
|
|
|
|
|
|
|
|
|
|
let orgEns = ssRes.SelectSet.SelectEntityList.filter(e => !(e instanceof Light));
|
|
|
|
let orgEns = ssRes.SelectSet.SelectEntityList;
|
|
|
|
let hasBoard = orgEns.some(en => en instanceof Board);
|
|
|
|
let hasBoard = orgEns.some(en => en instanceof Board);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
@ -62,7 +69,14 @@ export class Command_Copy implements Command
|
|
|
|
if (hasBoard)
|
|
|
|
if (hasBoard)
|
|
|
|
arrayRemoveIf(orgEns, filter);
|
|
|
|
arrayRemoveIf(orgEns, filter);
|
|
|
|
|
|
|
|
|
|
|
|
let jigEns = orgEns.map(e => JigUtils.Draw(e));
|
|
|
|
let jigEns = orgEns.map(e =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let ce = JigUtils.Draw(e);
|
|
|
|
|
|
|
|
if (e instanceof Light)
|
|
|
|
|
|
|
|
e.DrawObject.visible = true;//因为在jig中优化了jig复制显示,仅在copy中保留原始图形的显示
|
|
|
|
|
|
|
|
return ce;
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
while (true)
|
|
|
|
while (true)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
app.Database.hm.StartMark();
|
|
|
|
app.Database.hm.StartMark();
|
|
|
|