!1611 优化:层板立板背板绘制界面增加支持使用板厚(BH)参数做四则运算

pull/1623/MERGE
黄诗津 3 years ago committed by ChenX
parent 4129437e5b
commit 25a5b12f2f

@ -1,29 +1,30 @@
import { Vector3 } from "three";
import { safeEval } from "../../Common/eval";
import { Log } from "../../Common/Log";
import { Board } from "../../DatabaseServices/Entity/Board";
import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
import { MoveMatrix } from "../../Geometry/GeUtils";
import { ISpaceParse } from "../../Geometry/SpaceParse/ISpaceParse";
import { BehindBoardOption, BehindHeightPositon, BrRelativePos, IGrooveOption, LayerBoardOption, VerticalBoardOption, BoardType } from "../../UI/Store/BoardInterface";
import { Log } from "../../Common/Log";
import { BehindBoardOption, BehindHeightPositon, BoardType, BrRelativePos, IGrooveOption, LayerBoardOption, VerticalBoardOption } from "../../UI/Store/BoardInterface";
export function BuildLayerBoards(opt: LayerBoardOption, space: ISpaceParse): Board[]
{
let spaceBox = space.SpaceBox;
let spaceOCS = space.SpaceOCS;
let size = spaceBox.getSize(new Vector3());
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
let width: number;
if (opt.isTotalLength)
width = size.y;
else
{
width = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
width = safeEval(opt.calcHeight, params);
}
let count = opt.count;
let type = opt.boardRelative;
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
let frontShrink = safeEval(opt.calcFrontShrink, { L: size.x, W: size.y, H: size.z });
let spaceSize = safeEval(opt.calcSpaceSize, params);
let frontShrink = safeEval(opt.calcFrontShrink, params);
width -= frontShrink;
if (width <= 0)
@ -32,8 +33,8 @@ export function BuildLayerBoards(opt: LayerBoardOption, space: ISpaceParse): Boa
return [];
}
let leftShrink = safeEval(opt.calcLeftShrink, { L: size.x, W: size.y, H: size.z });
let rightShrink = safeEval(opt.calcRightShrink, { L: size.x, W: size.y, H: size.z });
let leftShrink = safeEval(opt.calcLeftShrink, params);
let rightShrink = safeEval(opt.calcRightShrink, params);
let thickness = opt.thickness;
let len = size.x - leftShrink - rightShrink;
@ -84,16 +85,17 @@ export function BuildVerticalBoards(opt: VerticalBoardOption, space: ISpaceParse
const spaceBox = space.SpaceBox;
const spaceOCS = space.SpaceOCS;
let size = spaceBox.getSize(new Vector3());
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
let frontShrink = safeEval(opt.calcFrontShrink, { L: size.x, W: size.y, H: size.z });
let bottomShink = safeEval(opt.calcBottomShrink, { L: size.x, W: size.y, H: size.z });
let frontShrink = safeEval(opt.calcFrontShrink, params);
let bottomShink = safeEval(opt.calcBottomShrink, params);
let width: number;
if (opt.isTotalWidth)
width = size.y - frontShrink;
else
{
width = safeEval(opt.calcWidth, { L: size.x, W: size.y, H: size.z });
width = safeEval(opt.calcWidth, params);
}
if (width <= 0)
@ -107,12 +109,12 @@ export function BuildVerticalBoards(opt: VerticalBoardOption, space: ISpaceParse
length = size.z - bottomShink;
else
{
length = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
length = safeEval(opt.calcHeight, params);
}
let count = opt.count;
let type = opt.boardRelative;
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
let spaceSize = safeEval(opt.calcSpaceSize, params);
let thickness = opt.thickness;
let board = Board.CreateBoard(length, width, thickness, BoardType.Vertical);
@ -162,13 +164,14 @@ export function BuildBehindBoards(opt: BehindBoardOption, space: ISpaceParse, gr
//获取背板高度
let size = newBox.getSize(new Vector3());
const params = { L: size.x, W: size.y, H: size.z, BH: opt.thickness };
let height: number;
if (opt.boardPosition === BehindHeightPositon.AllHeight)
height = size.z;
else
height = safeEval(opt.calcHeight, { L: size.x, W: size.y, H: size.z });
height = safeEval(opt.calcHeight, params);
let moveDist = safeEval(opt.calcMoveDist, { L: size.x, W: size.y, H: size.z });
let moveDist = safeEval(opt.calcMoveDist, params);
//判断背板位置,更新背板高度
switch (opt.boardPosition)
@ -187,7 +190,7 @@ export function BuildBehindBoards(opt: BehindBoardOption, space: ISpaceParse, gr
//相对位置
let relPos = opt.boardRelative;
//单层空间宽度
let spaceSize = safeEval(opt.calcSpaceSize, { L: size.x, W: size.y, H: size.z });
let spaceSize = safeEval(opt.calcSpaceSize, params);
let thickness = opt.thickness;
let board = Board.CreateBoard(height, size.x, thickness, BoardType.Behind);

@ -156,7 +156,7 @@ export namespace CheckoutValid
case "calcLeftShrink":
case "calcRightShrink":
case "calcMoveDist":
if (isNaN(safeEval(v, { L: 1, H: 1, W: 1 })))
if (isNaN(safeEval(v, { L: 1, H: 1, W: 1, BH: 1 })))
return "表达式错误";
return "";
case "sealedUp":

Loading…
Cancel
Save