mirror of https://gitee.com/cf-fz/WebCAD.git
!1042 功能:板件替换成模版,命令BoardReplaceTempate
parent
1ac7298efd
commit
55540b90ee
@ -0,0 +1,33 @@
|
||||
import { app } from "../../ApplicationServices/Application";
|
||||
import { Board } from "../../DatabaseServices/Entity/Board";
|
||||
import { PromptStatus } from "../../Editor/PromptResult";
|
||||
import { SelectTempate } from "../../DatabaseServices/Template/TemplateTest";
|
||||
import { PositioningBoardSpace } from "../../DatabaseServices/Template/Positioning/PositioningBoardSpace";
|
||||
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
|
||||
|
||||
export class BoardReplaceTempate
|
||||
{
|
||||
async exec()
|
||||
{
|
||||
let enRes = await app.Editor.GetEntity({ Msg: "选择板件", Filter: { filterTypes: [Board] } });
|
||||
if (enRes.Status !== PromptStatus.OK) return;
|
||||
let en = enRes.Entity as Board;
|
||||
|
||||
let temp = await SelectTempate();
|
||||
if (!temp) return;
|
||||
|
||||
en.IsChaiDan = false;
|
||||
en.Visible = false;
|
||||
|
||||
let pos = new PositioningBoardSpace();
|
||||
pos.ObjectId = en.Id;
|
||||
temp.Positioning = pos;
|
||||
await temp.UpdateTemplateTree();
|
||||
|
||||
if (en.Template && !en.Template.IsErase)
|
||||
{
|
||||
let parentTemplate = en.Template.Object as TemplateRecord;
|
||||
parentTemplate.Children.push(temp.Id);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
import { Vector3 } from "three";
|
||||
import { AutoRecord } from "../../AutoRecord";
|
||||
import { Factory } from "../../CADFactory";
|
||||
import { CADFiler } from "../../CADFiler";
|
||||
import { Board } from "../../Entity/Board";
|
||||
import { ObjectId } from "../../ObjectId";
|
||||
import { Positioning } from "./Positioning";
|
||||
|
||||
@Factory
|
||||
export class PositioningBoardSpace extends Positioning
|
||||
{
|
||||
@AutoRecord ObjectId: ObjectId;
|
||||
/**
|
||||
* 定位
|
||||
*/
|
||||
async Positioning()
|
||||
{
|
||||
this.SpaceCS = undefined;
|
||||
this.SpaceSize = undefined;
|
||||
|
||||
if (!this.ObjectId.IsErase)
|
||||
{
|
||||
let ent = this.ObjectId.Object as Board;
|
||||
this.SpaceCS = ent.OCS;
|
||||
this.SpaceSize = new Vector3(ent.Width, ent.Height, ent.Thickness);
|
||||
}
|
||||
}
|
||||
|
||||
//#region File
|
||||
ReadFile(file: CADFiler): void
|
||||
{
|
||||
let ver = file.Read();
|
||||
this.ObjectId = file.ReadObjectId();
|
||||
}
|
||||
|
||||
WriteFile(file: CADFiler): void
|
||||
{
|
||||
file.Write(1);
|
||||
file.WriteObjectId(this.ObjectId);
|
||||
}
|
||||
//#endregion
|
||||
|
||||
}
|
Loading…
Reference in new issue