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

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)
{
light.Position = p;
light.Position = p.clone().setZ(p.z - 10);
light.Target = light.Position.setZ(p.z - 500);
}
}

@ -14,17 +14,16 @@ export class EditorLattice implements Command
let brRes = await app.Editor.GetSelection({
Msg: "选择要编辑的格子抽",
UseSelect: true,
Once: true,
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[];
if (brs.length === 0) return;
let editorTemp = brs[0].Template.Object as TemplateLatticeRecord;
const store = LatticeDrawerStore.GetInstance() as LatticeDrawerStore;
store.EditorTemplate = editorTemp;

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

@ -48,6 +48,7 @@ export class Command_OpenCabinet implements Command
UseSelect: true,
AllowNone: false,
Filter: {
filterErase: true,
filterFunction: (obj, ent) =>
{
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 { Board } from '../../../DatabaseServices/Entity/Board';
import { GetOnlineTemplate } from '../../../DatabaseServices/Template/TempateUtils';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
import { SelectTempate } from '../../../DatabaseServices/Template/TemplateTest';
import { PromptStatus } from '../../../Editor/PromptResult';
import { userConfig } from '../../../Editor/UserConfig';
import { BoardModalType } from '../../../UI/Components/Board/BoardModal';
@ -96,18 +96,9 @@ export class Rec2BrModal extends React.Component<{ store: Rec2BrStore; }, {}>
}
break;
case GetOptionState.GetTemplate:
let enRes3 = await app.Editor.GetSelection({
Msg: "选择模板",
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;
let template = await SelectTempate();
if (template)
this.props.store.m_Option.backBrTemplate = template.Root;
}
break;
default: break;
}

@ -174,7 +174,7 @@ export class FrameManage extends React.Component<IFrameManageProps> {
Filter: {
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 { EditorOnlineTemplate, GetOnlineTemplate, ReplaceTemplate, SetTemplatePositionAndSetParent, UploadTemplate } from '../../../DatabaseServices/Template/TempateUtils';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
import { SelectTempate } from '../../../DatabaseServices/Template/TemplateTest';
import { TemplateSplitType } from '../../../DatabaseServices/Template/TemplateType';
import { commandMachine, CommandWrap } from '../../../Editor/CommandMachine';
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) =>
{
let enRes = await app.Editor.GetSelection({
Msg: "选择模板",
Once: true,
Filter: {
filterFunction: (obj, ent) =>
{
return ent?.Template?.Object !== undefined;
}
}
});
if (enRes.Status !== PromptStatus.OK)
return;
let template = await SelectTempate();
if (!template) return;
let ens = enRes.SelectSet.SelectEntityList;
let template = ens[0].Template.Object as TemplateRecord;
template = template.Root;
template.Name = name;
if (!template)
return;
let status = await UploadTemplate(template, currentDir.id);
if (status)
await callback();

Loading…
Cancel
Save