优化:选择过滤,避免打开门板命令出错

pull/1683/head
ChenX 3 years ago
parent 4a3f3e0ca0
commit 28109c091c

@ -89,7 +89,7 @@ export class DrawSpotLight2 implements Command
} }
update(light: SpotLight, p: Vector3) update(light: SpotLight, p: Vector3)
{ {
light.Position = p; light.Position = p.clone().setZ(p.z - 10);
light.Target = light.Position.setZ(p.z - 500); light.Target = light.Position.setZ(p.z - 500);
} }
} }

@ -14,17 +14,16 @@ export class EditorLattice implements Command
let brRes = await app.Editor.GetSelection({ let brRes = await app.Editor.GetSelection({
Msg: "选择要编辑的格子抽", Msg: "选择要编辑的格子抽",
UseSelect: true, UseSelect: true,
Once: true,
Filter: { Filter: {
filterFunction: (o, e) => e.Template !== undefined filterFunction: (o, e) => (e?.Template?.Object) instanceof TemplateLatticeRecord
} }
}); });
if (brRes.Status === PromptStatus.Cancel) return; if (brRes.Status !== PromptStatus.OK) return;
let brs = brRes.SelectSet.SelectEntityList as Board[]; let brs = brRes.SelectSet.SelectEntityList as Board[];
if (brs.length === 0) return;
let editorTemp = brs[0].Template.Object as TemplateLatticeRecord; let editorTemp = brs[0].Template.Object as TemplateLatticeRecord;
const store = LatticeDrawerStore.GetInstance() as LatticeDrawerStore; const store = LatticeDrawerStore.GetInstance() as LatticeDrawerStore;
store.EditorTemplate = editorTemp; store.EditorTemplate = editorTemp;

@ -1,4 +1,4 @@
import { Matrix4 } from 'three'; import { Matrix4, Vector3 } from 'three';
import { app } from '../ApplicationServices/Application'; import { app } from '../ApplicationServices/Application';
import { Log } from '../Common/Log'; import { Log } from '../Common/Log';
import { CylinderHole, GangDrillType } from '../DatabaseServices/3DSolid/CylinderHole'; import { CylinderHole, GangDrillType } from '../DatabaseServices/3DSolid/CylinderHole';
@ -37,7 +37,7 @@ export class Command_Move implements Command
{ {
Msg: "请点击移动终点:", Msg: "请点击移动终点:",
NotSnapZ: true, NotSnapZ: true,
Callback: (p: THREE.Vector3) => Callback: (p: Vector3) =>
{ {
moveMatrix.setPosition(p.clone().sub(ptLast)); moveMatrix.setPosition(p.clone().sub(ptLast));
for (let ent of ensClone) for (let ent of ensClone)

@ -48,6 +48,7 @@ export class Command_OpenCabinet implements Command
UseSelect: true, UseSelect: true,
AllowNone: false, AllowNone: false,
Filter: { Filter: {
filterErase: true,
filterFunction: (obj, ent) => filterFunction: (obj, ent) =>
{ {
return IsDrawer(ent) || IsLattice(ent) || IsDoor(ent) || IsHandle(ent) || (ent instanceof Hole && ent.ColorIndex !== 4); //过滤活动层板排钻,避免错误 return IsDrawer(ent) || IsLattice(ent) || IsDoor(ent) || IsHandle(ent) || (ent instanceof Hole && ent.ColorIndex !== 4); //过滤活动层板排钻,避免错误

@ -9,7 +9,7 @@ import { KeyBoard } from '../../../Common/KeyEnum';
import { ToFixed } from '../../../Common/Utils'; import { ToFixed } from '../../../Common/Utils';
import { Board } from '../../../DatabaseServices/Entity/Board'; import { Board } from '../../../DatabaseServices/Entity/Board';
import { GetOnlineTemplate } from '../../../DatabaseServices/Template/TempateUtils'; import { GetOnlineTemplate } from '../../../DatabaseServices/Template/TempateUtils';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord'; import { SelectTempate } from '../../../DatabaseServices/Template/TemplateTest';
import { PromptStatus } from '../../../Editor/PromptResult'; import { PromptStatus } from '../../../Editor/PromptResult';
import { userConfig } from '../../../Editor/UserConfig'; import { userConfig } from '../../../Editor/UserConfig';
import { BoardModalType } from '../../../UI/Components/Board/BoardModal'; import { BoardModalType } from '../../../UI/Components/Board/BoardModal';
@ -96,18 +96,9 @@ export class Rec2BrModal extends React.Component<{ store: Rec2BrStore; }, {}>
} }
break; break;
case GetOptionState.GetTemplate: case GetOptionState.GetTemplate:
let enRes3 = await app.Editor.GetSelection({ let template = await SelectTempate();
Msg: "选择模板", if (template)
Once: true,
Filter: { filterFunction: (obj, ent) => { return ent.Template !== undefined; } }
});
if (enRes3.Status === PromptStatus.OK)
{
let ens = enRes3.SelectSet.SelectEntityList;
let template = ens[0].Template.Object as TemplateRecord;
this.props.store.m_Option.backBrTemplate = template.Root; this.props.store.m_Option.backBrTemplate = template.Root;
}
break; break;
default: break; default: break;
} }

@ -174,7 +174,7 @@ export class FrameManage extends React.Component<IFrameManageProps> {
Filter: { Filter: {
filterFunction(o, e: Entity) filterFunction(o, e: Entity)
{ {
return (e instanceof Curve || e instanceof Text) && !!e.GroupId; return (e instanceof Curve || e instanceof Text) && !!e?.GroupId;
} }
}, },
}); });

@ -23,6 +23,7 @@ import { PositioningBoardSpace } from '../../../DatabaseServices/Template/Positi
import { TemplateVisualSpace } from '../../../DatabaseServices/Template/ProgramTempate/TemplateVisualSpace'; import { TemplateVisualSpace } from '../../../DatabaseServices/Template/ProgramTempate/TemplateVisualSpace';
import { EditorOnlineTemplate, GetOnlineTemplate, ReplaceTemplate, SetTemplatePositionAndSetParent, UploadTemplate } from '../../../DatabaseServices/Template/TempateUtils'; import { EditorOnlineTemplate, GetOnlineTemplate, ReplaceTemplate, SetTemplatePositionAndSetParent, UploadTemplate } from '../../../DatabaseServices/Template/TempateUtils';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord'; import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
import { SelectTempate } from '../../../DatabaseServices/Template/TemplateTest';
import { TemplateSplitType } from '../../../DatabaseServices/Template/TemplateType'; import { TemplateSplitType } from '../../../DatabaseServices/Template/TemplateType';
import { commandMachine, CommandWrap } from '../../../Editor/CommandMachine'; import { commandMachine, CommandWrap } from '../../../Editor/CommandMachine';
import { JigUtils } from '../../../Editor/JigUtils'; import { JigUtils } from '../../../Editor/JigUtils';
@ -200,28 +201,12 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
}; };
private uploadTemplate = async (name: string, currentDir: IDirectoryProps, callback: Function) => private uploadTemplate = async (name: string, currentDir: IDirectoryProps, callback: Function) =>
{ {
let enRes = await app.Editor.GetSelection({ let template = await SelectTempate();
Msg: "选择模板", if (!template) return;
Once: true,
Filter: {
filterFunction: (obj, ent) =>
{
return ent?.Template?.Object !== undefined;
}
}
});
if (enRes.Status !== PromptStatus.OK)
return;
let ens = enRes.SelectSet.SelectEntityList;
let template = ens[0].Template.Object as TemplateRecord;
template = template.Root; template = template.Root;
template.Name = name; template.Name = name;
if (!template)
return;
let status = await UploadTemplate(template, currentDir.id); let status = await UploadTemplate(template, currentDir.id);
if (status) if (status)
await callback(); await callback();

Loading…
Cancel
Save