修复:门板,抽屉在两点空间和三点空间定位错误的问题(使用可视化空间小盒子定位)

pull/1762/MERGE
ChenX 3 years ago
parent f75ec8b10a
commit 2c42f7b458

@ -10,7 +10,6 @@ import { HardwareCompositeEntity } from "../../../DatabaseServices/Hardware/Hard
import { ObjectId } from "../../../DatabaseServices/ObjectId";
import { TemplateParam } from "../../../DatabaseServices/Template/Param/TemplateParam";
import { TemplateSizeBoard } from "../../../DatabaseServices/Template/ProgramTempate/TemplateSizeBoard";
import { TemplateVisualSpace } from "../../../DatabaseServices/Template/ProgramTempate/TemplateVisualSpace";
import { GetOnlineTemplate } from "../../../DatabaseServices/Template/TempateUtils";
import { TemplateRecord } from "../../../DatabaseServices/Template/TemplateRecord";
import { Box3Ext } from "../../../Geometry/Box";
@ -162,10 +161,10 @@ export class DrawDoorTool
protected GetRootTemplate()
{
let templateSpace: TemplateRecord;
if (this.spaceParse.BoardMap.size === 0)
templateSpace = new TemplateVisualSpace().InitBaseParams();
else
templateSpace = new TemplateRecord().InitBaseParams();
// if (this.spaceParse.BoardMap.size === 0) //使用自动绘制的小盒子
// templateSpace = new TemplateVisualSpace().InitBaseParams();
// else
templateSpace = new TemplateRecord().InitBaseParams();
templateSpace.Name = "根空间";
templateSpace.IsSign = true;

@ -12,7 +12,6 @@ import { HardwareTopline } from "../../DatabaseServices/Hardware/HardwareTopline
import { ObjectId } from "../../DatabaseServices/ObjectId";
import { TemplateParam } from "../../DatabaseServices/Template/Param/TemplateParam";
import { TemplateSizeBoard } from "../../DatabaseServices/Template/ProgramTempate/TemplateSizeBoard";
import { TemplateVisualSpace } from "../../DatabaseServices/Template/ProgramTempate/TemplateVisualSpace";
import { GetOnlineTemplate, SetTemplatePositionAndSetParent } from "../../DatabaseServices/Template/TempateUtils";
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
import { TemplateSplitType } from "../../DatabaseServices/Template/TemplateType";
@ -158,7 +157,7 @@ export class DrawDrawrer implements Command
//UI行是从上而下,绘制抽屉是由下而上
rowHeighs.reverse();
//根空间
//根空间 (名称:抽屉总空间)
let rootSpaceTemplate = this.GetTotalSpaceTemplate();
let isLockHeigt = store.IsLockMidHeight;
let xlkSpace = this.GetLkSpace(store.m_Option.isLockBottomOffset || !isLockHeigt || !store.m_Option.isLockTopOffset, store.m_Option.downOffsetExpr, false);
@ -253,11 +252,7 @@ export class DrawDrawrer implements Command
{
const option = store.m_Option;
let templateSpace: TemplateRecord;
if (spaceParse.BoardMap.size === 0)
templateSpace = new TemplateVisualSpace().InitBaseParams();
else
templateSpace = new TemplateRecord().InitBaseParams();
let templateSpace = new TemplateRecord().InitBaseParams();
templateSpace.Name = "抽屉根空间";
templateSpace.IsSign = true;
templateSpace.SplitType = TemplateSplitType.X;
@ -504,7 +499,11 @@ export class DrawDrawrer implements Command
}
private GetTotalSpaceTemplate()
{
let templateSpace = new TemplateRecord().InitBaseParams();
let templateSpace: TemplateRecord;
// if (spaceParse.BoardMap.size === 0) //使用自动生成的小盒子
// templateSpace = new TemplateVisualSpace().InitBaseParams();
// else
templateSpace = new TemplateRecord().InitBaseParams();
templateSpace.Name = "抽屉总空间";
templateSpace.IsSign = true;
templateSpace.SplitType = TemplateSplitType.Z;

@ -17,6 +17,7 @@ import { SelectBox } from "../../Editor/SelectBox";
import { SelectPick } from "../../Editor/SelectPick";
import { AxisSnapMode } from "../../Editor/SnapServices";
import { TempEditor } from "../../Editor/TempEditor";
import { VisualSpaceBox } from "../../Editor/VisualSpaceBox";
import { Box3Ext } from "../../Geometry/Box";
import { AsVector3, equaln, isParallelTo, isPerpendicularityTo, ZAxis, ZeroVec } from "../../Geometry/GeUtils";
import { ClampSpaceParse } from "../../Geometry/SpaceParse/ClampSpaceParse";
@ -1334,6 +1335,18 @@ export async function SetTemplatePositionAndSetParent(spaceParse: ISpaceParse, t
template.Positioning = positioning;
//可能需要把父节点设置为空
//如果顶层没有对象,并且使用临时定位,那么下次更新会出问题,所以我们绘制一个临时空间对象来避免这个问题
if (template.Objects.length === 0)
{
let vis = new VisualSpaceBox(0.1, 0.1, 0.1);
vis.DisplayHeight = false;
vis.DisplayLength = false;
vis.DisplayWidth = false;
vis.IsRoot = true;
template.Db.ModelSpace.Append(vis);
template.Objects.push(vis.Id);
}
}
//继承板厚

Loading…
Cancel
Save