diff --git a/src/Add-on/DrawWineRack/DrawWineRack.ts b/src/Add-on/DrawWineRack/DrawWineRack.ts index 36b361c2b..528b0e60d 100644 --- a/src/Add-on/DrawWineRack/DrawWineRack.ts +++ b/src/Add-on/DrawWineRack/DrawWineRack.ts @@ -1,4 +1,5 @@ import { app } from "../../ApplicationServices/Application"; +import { Board } from "../../DatabaseServices/Entity/Board"; import { PositioningClampSpace } from "../../DatabaseServices/Template/Positioning/PositioningClampSpace"; import { GetDeepestTemplate } from "../../DatabaseServices/Template/TempateUtils"; import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord"; @@ -45,6 +46,13 @@ export class DrawWineRack implements Command wineRack.HParam.expr = space.Size.z; await wineRack.UpdateTemplateTree(); + + let brs = wineRack.Objects.map(id => id.Object as Board); + let dcs = space.DrawCS; + for (let br of brs) + { + br.ApplyMatrix(dcs); + } } } } diff --git a/src/Geometry/SpaceParse/ISpaceParse.ts b/src/Geometry/SpaceParse/ISpaceParse.ts index d2310b371..0a44522ab 100644 --- a/src/Geometry/SpaceParse/ISpaceParse.ts +++ b/src/Geometry/SpaceParse/ISpaceParse.ts @@ -71,6 +71,15 @@ export class ISpaceParse return new Vector3(); } + get DrawCS(): Matrix4 + { + if (!this.ParseOK) return new Matrix4(); + let scs = this.SpaceOCS.clone(); + let p = this.SpaceBox.min.clone().applyMatrix4(scs); + scs.setPosition(p); + return scs; + } + /** * 构造板件类型Map */