!120 双击板件属性

Merge pull request !120 from ZoeLeeFZ/dbclick_pr
pull/120/MERGE
ChenX 6 years ago
parent aa11f8af1f
commit 7978186036

@ -47,8 +47,8 @@ export class DrawBehindBoard extends DrawBoardTool
let thickness = parseFloat(opt.thickness);
let board = Board.CreateBoard(height, size.x, thickness, BoardType.Behind);
board.m_BoardConfigOption = opt;
board.m_BoardProcessOption = data.boardProcess;
opt.height = height.toString();
opt.width = size.x.toString();
//等分单层空间大小
let singleSize = (size.y - (thickness * count)) / (count + 1);
@ -56,6 +56,9 @@ export class DrawBehindBoard extends DrawBoardTool
for (let i = 1; i <= count; i++)
{
let b = board.Clone();
b.Name = opt.name;
b.m_BoardProcessOption = Object.assign({}, data.boardProcess);
if (relPos === BrRelativePos.Front)
b.ApplyMatrix(MoveMatrix(newBox.min.clone().add(new Vector3(0, spaceSize * i + (i - 1) * thickness, 0))));
else if (relPos === BrRelativePos.Back)

@ -62,29 +62,30 @@ export class DrawClosingStrip implements Command
//靠上,横板为层板,基点位置为前右上方的点往上移动一个厚度 竖板为背板,基点为前左上方点
if (opt.boardRelative === BrRelativePos.Top)
{
if (opt.type === StripType.H)
if (opt.striptype === StripType.H)
{
br = Board.CreateBoard(size.x, width, thickness,
BoardType.Layer);
pos.set(max.x, min.y, max.z + thickness);
}
else
{
br = Board.CreateBoard(width, size.x, thickness,
BoardType.Behind);
pos.set(min.x, min.y, max.z);
}
}
else
{
br = Board.CreateBoard(size.z, width, thickness,
opt.type === StripType.H ? BoardType.Behind : BoardType.Vertical);
opt.striptype === StripType.H ? BoardType.Behind : BoardType.Vertical);
//靠左,横板为背板,基点为左下角点往x移动一个宽度,竖板为立板,基点为左下角点
//靠右,横板基点为右下角点,竖板基点为左下角点右移动一个厚度
if (opt.boardRelative === BrRelativePos.Left)
{
if (opt.type === StripType.H)
if (opt.striptype === StripType.H)
{
pos.set(min.x - width, min.y, min.z);
}
@ -95,7 +96,7 @@ export class DrawClosingStrip implements Command
}
else
{
if (opt.type === StripType.H)
if (opt.striptype === StripType.H)
{
pos.set(max.x, min.y, min.z);
}
@ -106,8 +107,12 @@ export class DrawClosingStrip implements Command
}
}
br.m_BoardConfigOption = opt;
br.m_BoardProcessOption = this.store.m_BoardProcessOption;
opt.type = br.BoardType;
opt.height = br.Length.toString();
opt.width = br.Width.toString();
br.Name = opt.name;
br.m_BoardProcessOption = Object.assign({}, this.store.m_BoardProcessOption);
//收口条颜色
br.ColorIndex = 4;

@ -27,9 +27,11 @@ export class DrawLayerBoard extends DrawBoardTool
let rightShrink = parseFloat(opt.rightShrink);
let thickness = parseFloat(opt.thickness);
let len = size.x - leftShrink - rightShrink;
let board = Board.CreateBoard(size.x - leftShrink - rightShrink, width, thickness, BoardType.Layer);
board.m_BoardConfigOption = opt;
board.m_BoardProcessOption = data.boardProcess;
opt.height = len.toString();
opt.width = width.toString();
//等分单层空间大小
let singleSize = (size.z - (thickness * count)) / (count + 1);
@ -37,6 +39,9 @@ export class DrawLayerBoard extends DrawBoardTool
for (let i = 1; i <= count; i++)
{
let b = board.Clone() as Board;
b.Name = opt.name;
b.m_BoardProcessOption = Object.assign({}, data.boardProcess);
if (type === BrRelativePos.Top)
b.ApplyMatrix(MoveMatrix(box.min.clone().add(
new Vector3(size.x - leftShrink, frontShrink, size.z - spaceSize * i - (i - 1) * thickness)

@ -49,10 +49,11 @@ export class DrawLeftRight implements Command
leftBoard.ApplyMatrix(MoveMatrix(vec));
rightBoard.ApplyMatrix(MoveMatrix(vec));
leftBoard.m_BoardConfigOption = store.m_BoardOption;
leftBoard.m_BoardProcessOption = store.m_BoardProcessOption;
rightBoard.m_BoardConfigOption = store.m_BoardOption;
rightBoard.m_BoardProcessOption = store.m_BoardProcessOption;
leftBoard.Name = "左侧板"
leftBoard.m_BoardProcessOption = Object.assign({}, store.m_BoardProcessOption);
rightBoard.Name = "右侧板"
rightBoard.m_BoardProcessOption = Object.assign({}, store.m_BoardProcessOption);
app.m_Database.ModelSpace.Append(leftBoard);
app.m_Database.ModelSpace.Append(rightBoard);

@ -8,6 +8,7 @@ import { BoardModal, BoardModalType } from '../../UI/Components/Board/BoardModal
import { ModalPosition } from '../../UI/Components/Modal/ModalsManage';
import { SingleBoardStore } from '../../UI/Store/BoardStore';
import { Jig } from '../../Editor/Jig';
import { Matrix4, Math, Euler } from 'three';
export class DrawSingleBoard implements Command
{
@ -20,8 +21,14 @@ export class DrawSingleBoard implements Command
{
const opt = store.m_BoardOption;
let board = Jig.Draw(Board.CreateBoard(parseFloat(opt.height), parseFloat(opt.width), parseFloat(opt.thickness), opt.type));
board.m_BoardConfigOption = opt;
board.Name = opt.name;
board.m_BoardProcessOption = store.m_BoardProcessOption;
let rx = Math.degToRad(parseFloat(opt.rotateX));
let ry = Math.degToRad(parseFloat(opt.rotateY));
let rz = Math.degToRad(parseFloat(opt.rotateZ));
let eu = new Euler(rx, ry, rz);
board.ApplyMatrix(new Matrix4().makeRotationFromEuler(eu));
let ptRes = await app.m_Editor.GetPoint({
Msg: "选择基点",

@ -9,7 +9,7 @@ import { MoveMatrix } from '../../Geometry/GeUtils';
import { SurroundSpaceParse } from '../../Geometry/SpaceParse/SurroundSpaceParse';
import { BoardModal, BoardModalType } from '../../UI/Components/Board/BoardModal';
import { ModalPosition, ModalState } from '../../UI/Components/Modal/ModalsManage';
import { FaceDirType, TBBoardOption, BoardData } from '../../UI/Store/BoardInterface';
import { PXLFaceType, TBBoardOption, BoardData, ComposingType } from '../../UI/Store/BoardInterface';
import { TopBottomBoardStore } from '../../UI/Store/BoardStore';
export class DrawTopBottomBoard implements Command
@ -108,15 +108,16 @@ export class DrawTopBottomBoard implements Command
offset,
spaceParse.SpaceLength,
parseFloat(opt.footThickness), BoardType.Behind);
footBoard.m_BoardConfigOption = {
name: "地脚线",
height: offset + "",
width: spaceParse.SpaceLength + "",
thickness: opt.footThickness
};
// footBoard.m_BoardConfigOption = {
// type: BoardType.Behind,
// name: "地脚线",
// height: offset.toString(),
// width: spaceParse.SpaceLength.toString(),
// thickness: opt.footThickness
// };
footBoard.m_BoardProcessOption = Object.assign({}, this.store.m_BoardProcessOption);
footBoard.m_BoardProcessOption.composingFace = FaceDirType.Reverse;
footBoard.m_BoardProcessOption.bigHoleDir = FaceDirType.Reverse;
footBoard.m_BoardProcessOption.composingFace = ComposingType.Reverse;
footBoard.m_BoardProcessOption.bigHoleDir = PXLFaceType.Reverse;
footBoard.ApplyMatrix(MoveMatrix(spaceParse.BaseFootPoint));
footBoard.ApplyMatrix(rot);
@ -126,9 +127,15 @@ export class DrawTopBottomBoard implements Command
//移动右缩和前距的距离
basePt.add(new Vector3(rightExt, -forwardDistance));
let board = Board.CreateBoard(length + leftExt + rightExt, spaceParse.SpaceWidth + forwardDistance + parseFloat(opt.behindDistance), thickness, BoardType.Layer);
board.m_BoardConfigOption = opt;
board.m_BoardProcessOption = this.store.m_BoardProcessOption;
let len = length + leftExt + rightExt;
let width = spaceParse.SpaceWidth + forwardDistance + parseFloat(opt.behindDistance);
let board = Board.CreateBoard(len, width, thickness, BoardType.Layer);
// board.m_BoardConfigOption = Object.assign({}, opt);
// board.m_BoardConfigOption.height = len.toString();
// board.m_BoardConfigOption.width = width.toString();
board.m_BoardProcessOption = Object.assign({}, this.store.m_BoardProcessOption);
board.ApplyMatrix(MoveMatrix(basePt));
board.ApplyMatrix(rot);

@ -30,14 +30,18 @@ export class DrawVerticalBoard extends DrawBoardTool
let thickness = parseFloat(opt.thickness);
let board = Board.CreateBoard(length, width, thickness, BoardType.Vertical);
board.m_BoardConfigOption = opt;
board.m_BoardProcessOption = data.boardProcess;
opt.height = length.toString();
opt.width = width.toString();
//等分单层空间大小
let singleSize = (size.x - (thickness * count)) / (count + 1);
for (let i = 1; i <= count; i++)
{
let b = board.Clone() as Board;
b.Name = opt.name;
b.m_BoardProcessOption = Object.assign({}, data.boardProcess);
if (type === BrRelativePos.Left)
b.ApplyMatrix(MoveMatrix(box.min.clone().add(
new Vector3((spaceSize + thickness) * i, frontShrink, bottomShink)

@ -1,3 +1,5 @@
import { equaln } from "../Geometry/GeUtils";
export async function log(msg)
{
let app = (await import("../ApplicationServices/Application")).app;
@ -22,7 +24,7 @@ export function isNum(s: string)
return !isNaN(parseFloat(s));
}
export function clamp(value, min, max)
export function clamp(value: number, min: number, max: number)
{
return Math.max(min, Math.min(max, value));
}
@ -52,7 +54,7 @@ export function formateDate(date: Date, fmt: string)
//如:yyyy
if (/(y+)/.test(fmt))
{
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
fmt = fmt.replace(RegExp.$1, (date.getFullYear().toString()).substr(4 - RegExp.$1.length));
}
//yyyy-MM-dd hh:mm:ss
for (let k in o)
@ -65,10 +67,13 @@ export function formateDate(date: Date, fmt: string)
return fmt;
}
export function isBetweenNums(v1, v2, v)
//判断v在v1和v2之间.(v1>v2 or v2>v1)
export function isBetweenNums(v1: number, v2: number, v: number, fuzz = 1e-8)
{
return v === v1 || v === v2 || (Math.max(v1, v2, v) !== v && Math.min(v1, v2, v) !== v);
if (v1 > v2) [v1, v2] = [v2, v1];
return equaln(v, clamp(v, v1, v2), fuzz);
}
//深复制对象数组
export function sliceDeep(arr: object[], start?: number, end?: number): object[]
{
@ -122,5 +127,32 @@ export function Sleep(time: number)
return new Promise(res =>
{
setTimeout(res, time);
})
});
}
//使用定点表示法来格式化一个数,不尾随空格. 如 FixedNotZero(1.1 , 3) => 1.1
export function FixedNotZero(v: number, fractionDigits: number = 0)
{
if (equaln(v, 0)) return "0";
let str = v.toFixed(fractionDigits);
let commonIndex = str.indexOf(".");
if (commonIndex !== -1)
{
let zeroCount = 0;
let strCount = str.length;
for (let l = strCount; l--;)
{
if (str[l] === "0")
zeroCount++;
else
break;
}
if (zeroCount > 0)
{
if (zeroCount === (strCount - commonIndex - 1))
zeroCount++;
return str.slice(0, strCount - zeroCount);
}
}
return str;
}

@ -4,6 +4,7 @@ import { ColorMaterial } from '../Common/ColorPalette';
import { Box3Ext } from '../Geometry/Box';
import { equaln } from '../Geometry/GeUtils';
import { RenderType } from '../GraphicsSystem/Enum';
import { BoardProcessOption } from '../UI/Store/BoardInterface';
import { Factory } from './CADFactory';
import { CADFile } from './CADFile';
import { Contour } from './Contour';
@ -11,7 +12,6 @@ import { Entity } from './Entity';
import { Line } from './Line';
import { DbPhysicalMaterial } from './PhysicalMaterial';
import { Shape } from './Shape';
import { BoardConfigOption, BoardProcessOption } from '../UI/Store/BoardInterface';
export enum BoardType
{
@ -51,8 +51,8 @@ export class Board extends Entity
private m_Shape: Shape;
private m_BoardType: BoardType;
m_BoardConfigOption: BoardConfigOption;
m_BoardProcessOption: BoardProcessOption;
private m_Name = "";
m_BoardProcessOption: BoardProcessOption = {};
constructor(shape?: Shape, thickness?: number)
{
@ -127,19 +127,48 @@ export class Board extends Entity
{
return this.m_Thickness;
}
get Lenght()
set Thickness(v: number)
{
this.WriteAllObjectRecord();
this.m_Thickness = v;
this.InitBoard(this.m_Length, this.m_Width, this.m_Thickness, this.BoardType);
this.Update();
}
get Length()
{
return this.m_Length
}
set Length(v: number)
{
this.WriteAllObjectRecord();
this.m_Length = v;
this.InitBoard(this.m_Length, this.m_Width, this.m_Thickness, this.BoardType);
this.Update();
}
get Width()
{
return this.m_Width;
}
set Width(v: number)
{
this.WriteAllObjectRecord();
this.m_Width = v;
this.InitBoard(this.m_Length, this.m_Width, this.m_Thickness, this.BoardType);
this.Update();
}
get BoardType(): BoardType
{
return this.m_BoardType;
}
set BoardType(type: BoardType)
{
this.WriteAllObjectRecord();
let boardOcs = this.BoardOCS.clone();
this.m_BoardType = type;
this.ApplyMatrix(this.OCSInv).ApplyMatrix(this.RotateMat).ApplyMatrix(boardOcs);
this.ColorIndex = type + 1;
this.Update();
}
//最左下角的点
get MinPoint(): Vector3
{
@ -180,6 +209,14 @@ export class Board extends Entity
box.applyMatrix4(this.OCS);
return box;
}
get Name()
{
return this.m_Name;
}
set Name(n: string)
{
this.m_Name = n;
}
GetBoardBoxInMat(mat)
{
let min = new Vector3(0, 0, -this.m_Thickness).applyMatrix4(this.OCS).applyMatrix4(mat);
@ -249,7 +286,6 @@ export class Board extends Entity
//避免空的板件生成
this.InitBoard(1e-5, 1e-5, 1e-5);
}
let extrudeSettings = {
steps: 1,
bevelEnabled: false,
@ -297,6 +333,8 @@ export class Board extends Entity
this.m_Thickness = file.Read();
this.m_Matrix.fromArray(file.Read());
this.m_BoardType = file.Read();
this.m_Name = file.Read();
this.m_BoardProcessOption = JSON.parse(file.Read());
this.Update();
}
WriteFile(file: CADFile)
@ -309,5 +347,7 @@ export class Board extends Entity
file.Write(this.m_Thickness);
file.Write(this.m_Matrix.toArray())
file.Write(this.m_BoardType);
file.Write(this.m_Name);
file.Write(JSON.stringify(this.m_BoardProcessOption));
}
}

@ -1,12 +1,9 @@
import { Object3D, Vector3 } from 'three';
import * as THREE from 'three';
import { Vector3 } from 'three';
import { isBetweenNums } from '../../Common/Utils';
import { midPoint } from '../../Geometry/GeUtils';
import { RenderType } from '../../GraphicsSystem/Enum';
import { AlignedDimension } from './AlignedDimension';
import { Line } from '../Line';
import { Factory } from '../CADFactory';
import { Line } from '../Line';
import { AlignedDimension } from './AlignedDimension';
enum DimDir
{

@ -0,0 +1,42 @@
import { PointPick } from "./PointPick";
import { PointLight } from "../DatabaseServices/PointLight";
import { app } from "../ApplicationServices/Application";
import { LightModal } from "../UI/Components/Modal/LightModal";
import { ModalPosition } from "../UI/Components/Modal/ModalsManage";
import { Text } from "../DatabaseServices/Text/Text";
import { Board } from "../DatabaseServices/Board";
import { BoardOptionModal } from "../UI/Components/Board/BoardOptionModal";
import { Singleton } from "../Common/Singleton";
import { TextArea } from "../DatabaseServices/Text/TextArea";
export class DbClickManager
{
OnDbClick()
{
let en = PointPick(app.m_Editor.m_MouseCtrl.m_CurMousePointVCS, app.m_Viewer)[0];
if (!en)
return;
//双击实体取消选中状态
app.m_Editor.m_SelectCtrl.Cancel();
//双击应防止触发实体移动
app.m_Editor.transCtrl.Cancel();
if (en.userData instanceof PointLight)
{
app.m_Editor.m_ModalManage.RenderModeless(LightModal, ModalPosition.Right, { selectedObj: en.userData });
}
else if (en.userData instanceof Text)
{
let textarea = Singleton.GetInstance(TextArea);
textarea.StartEditorText(en);
}
else if (en.userData instanceof Board)
{
app.m_Editor.m_ModalManage.RenderModeless(
BoardOptionModal,
ModalPosition.Right,
{ board: en.userData }
);
}
}
}

@ -4,6 +4,8 @@ import * as THREE from 'three';
import { app } from '../ApplicationServices/Application';
import { Viewer } from '../GraphicsSystem/Viewer';
import { Editor } from './Editor';
import { Singleton } from '../Common/Singleton';
import { DbClickManager } from './DbClick';
export class MouseControls
{
@ -24,7 +26,7 @@ export class MouseControls
let el = this.m_View.m_Render.domElement;
el.addEventListener("mousemove", (e) => { this.onMouseMove(e) }, false);
el.addEventListener("mousedown", (e) => { this.onMouseDown(e) }, false);
el.addEventListener("dblclick", (e) => { this.onDBMouseDown(e) }, false);
el.addEventListener("dblclick", (e) => { this.onDBClick(e) }, false);
el.addEventListener("mouseover", (e) => { this.onMouseMove(e) }, false);
}
onMouseMove = (e: MouseEvent) =>
@ -43,8 +45,9 @@ export class MouseControls
}
this.updateWordPoint(e);
}
onDBMouseDown = (e: MouseEvent) =>
onDBClick(e: MouseEvent)
{
Singleton.GetInstance(DbClickManager).OnDbClick()
}
updateWordPoint = (e: MouseEvent) =>
{

@ -180,4 +180,9 @@ export class TransformServicess implements EditorService
this.m_Enable = e;
this.CurAxes.visible = e;
}
Cancel()
{
this.m_Enable = false;
this.m_Editor.Canel();
}
}

@ -90,9 +90,9 @@ export class SpaceParse
let mat = br.RotateMat;
let p1 = new Vector3(0, 0, -br.Thickness).applyMatrix4(mat);
let p2 = new Vector3(br.Width, br.Lenght, -br.Thickness - dist).applyMatrix4(mat);
let p2 = new Vector3(br.Width, br.Length, -dist).applyMatrix4(mat);
let p3 = new Vector3(0, 0, 0).applyMatrix4(mat);
let p4 = new Vector3(br.Width, br.Lenght, dist).applyMatrix4(mat);
let p4 = new Vector3(br.Width, br.Length, br.Thickness + dist).applyMatrix4(mat);
this.m_Spaces.push(new Box3Ext().setFromPoints([p1, p2]), new Box3Ext().setFromPoints([p3, p4]));
}

@ -129,7 +129,7 @@ export class SurroundSpaceParse extends SpaceParse
return Math.abs(lMinPt.x + rMinPt.x) > Math.max(this.m_LeftBoard.Thickness, this.m_RightBoard.Thickness)
&& Math.abs(lMinPt.y - rMinPt.y) + 1e-6 < Math.max(this.m_LeftBoard.Width, this.m_RightBoard.Width)
&& Math.abs(lMinPt.z - rMinPt.z) + 1e-6 < Math.max(this.m_LeftBoard.Lenght, this.m_RightBoard.Lenght);
&& Math.abs(lMinPt.z - rMinPt.z) + 1e-6 < Math.max(this.m_LeftBoard.Length, this.m_RightBoard.Length);
}
return false;
@ -231,7 +231,7 @@ export class SurroundSpaceParse extends SpaceParse
if ((equaln(lMinPt.y, rMinPt.y)
&& equaln(lMinPt.z, rMinPt.z)
&& equaln(this.m_LeftBoard.Width, this.m_RightBoard.Width)
&& equaln(this.m_LeftBoard.Lenght, this.m_RightBoard.Lenght))
&& equaln(this.m_LeftBoard.Length, this.m_RightBoard.Length))
)
{
this.m_StandardBoard = this.m_LeftBoard;

@ -29,12 +29,12 @@ export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore
return (
<>
<BoardName store={store} className="br-name" />
<BoardName opt={store.m_BoardOption} className="br-name" />
<div className="process-data">
<h6 className={Classes.HEADING}></h6>
<SetBoardDataBlock
pars={this.m_ScaleParameter}
opt={store.m_BoardOption}
opt={store.m_BoardProcessOption}
className="flexWrap"
/>
</div>

@ -1,7 +1,8 @@
import { Checkbox, Classes, Radio, RadioGroup } from '@blueprintjs/core';
import { observer } from 'mobx-react';
import * as React from 'react';
import { BoardConfigOption, BoardOption, BrRelativePos, TBBoardOption } from '../../Store/BoardInterface';
import { BoardType } from '../../../DatabaseServices/Board';
import { BehindBoardOption, BoardConfigOption, BoardOption, BrRelativePos, LayerBoardOption, TBBoardOption, VerticalBoardOption } from '../../Store/BoardInterface';
import { BoardStore } from '../../Store/BoardStore';
interface ISetItemOption
@ -148,8 +149,9 @@ export const BoardModel = () =>
</label>
)
}
export const BoardConfigBlock = observer(
({ opt, opt1 }: { opt: BoardConfigOption, opt1: Map<BrRelativePos, string> }) =>
({ opt, opt1 }: { opt: VerticalBoardOption | LayerBoardOption | BehindBoardOption, opt1: Map<BrRelativePos, string> }) =>
{
let pars = new Map(
[["spaceSize", "空间"], ["count", "板数"], ["thickness", "板厚"]]);
@ -214,16 +216,36 @@ export const Notes = () =>
)
}
export const BoardName = observer(({ store, className }: { store?: BoardStore, className?: string }) =>
export const BoardName = observer(({ opt, className }: { opt?: BoardConfigOption, className?: string }) =>
<label className="bp3-label bp3-inline">
<span></span>
<input
className={"bp3-input " + className}
value={store.m_BoardOption.name}
value={opt.name}
onChange={e =>
{
store.m_BoardOption.name = e.target.value;
opt.name = e.target.value;
}}
dir="auto" />
</label>
)
export const BoardTypeComponent = observer(({ opt }: { opt?: BoardConfigOption }) =>
<label className="bp3-label bp3-inline .modifier">
<span></span>
<div className="bp3-select bp3-inline .modifier">
<select
value={opt.type.toString()}
onChange={e =>
{
opt.name = e.target.options[e.target.selectedIndex].label;
opt.type = parseFloat(e.target.value);
}}
>
<option value={BoardType.Layer.toString()}></option>
<option value={BoardType.Vertical.toString()}></option>
<option value={BoardType.Behind.toString()}></option>
</select>
</div>
</label>
)

@ -0,0 +1,52 @@
import { Button, Checkbox } from "@blueprintjs/core";
import { observer } from "mobx-react";
import * as React from 'react';
import { BoardData } from '../../Store/BoardInterface';
import { BoardName, BoardTypeComponent, SetBoardDataBlock } from "./BoardCommon";
export const BoardConfigModal =
(observer((data: BoardData) =>
{
let pars = new Map([["height", "显示高"], ["width", "显示宽"], ["thickness", "显示厚"],
]);
let groovePars = new Map([
["spliteHeight", "拆单高"], ["spliteWidth", "拆单宽"], ["spliteThickness", "拆单厚"],
["knifeRad", "刀具半径"],
["grooveAddLength", "槽加长"], ["grooveAddWidth", "槽加宽"], ["grooveAddDepth", "槽加深"]
]);
let rotatePars = new Map([
["rotateX", "旋转X"], ["rotateY", "旋转Y"], ["rotateZ", "旋转Z"]
]);
return (
<div>
<BoardTypeComponent opt={data.boardConfig} />
<BoardName opt={data.boardConfig} />
<SetBoardDataBlock
className="flexWrap"
pars={pars}
opt={data.boardConfig}
/>
<SetBoardDataBlock
className="flexWrap"
pars={rotatePars}
opt={data.boardConfig}
/>
<SetBoardDataBlock
className="flexWrap"
pars={groovePars}
opt={data.boardProcess}
/>
<div>
<Checkbox checked={true} label="异型" inline={true} />
<Button className="bp3-intent-primary" text="提取" />
<Button className="bp3-intent-primary" text="修改" />
<Button className="bp3-intent-primary" text="切割" />
</div>
<div>
<Checkbox checked={true} label="造型" inline={true} />
<Button className="bp3-intent-primary" text="造型提取" />
<Button className="bp3-intent-primary" text="造型修改" />
</div>
</div>
)
}));

@ -0,0 +1,166 @@
import { Button, Classes } from '@blueprintjs/core';
import { observable } from 'mobx';
import * as React from 'react';
import { Euler, Math, Matrix4 } from 'three';
import { app } from '../../../ApplicationServices/Application';
import { Board } from '../../../DatabaseServices/Board';
import { equaln } from '../../../Geometry/GeUtils';
import { BoardProcessOption, SingleBoardOption } from '../../Store/BoardInterface';
import { Notes } from './BoardCommon';
import { BoardConfigModal } from './BoardConfigModal';
import { BoardProcessModal } from './BoardProcessModal';
import { FixedNotZero } from '../../../Common/Utils';
export class BoardOptionModal extends React.Component<{ board: Board }, {}>
{
@observable private m_ConfigOption: SingleBoardOption;
@observable private m_ProcessOption: BoardProcessOption;
private m_BoardMap: Map<string, Board> = new Map();
constructor(props)
{
super(props);
let br = this.props.board;
this.SetBrConfig(br);
this.m_ProcessOption = Object.assign({}, br.m_BoardProcessOption);
}
SetBrConfig = (br: Board) =>
{
let rotaMat = new Matrix4().extractRotation(br.BoardOCS);
let euler = new Euler().setFromRotationMatrix(rotaMat);
let newConfig = {
name: br.Name,
type: br.BoardType,
height: FixedNotZero(br.Length, 2),
width: FixedNotZero(br.Width, 2),
thickness: FixedNotZero(br.Thickness, 2),
rotateX: FixedNotZero(Math.radToDeg(euler.x), 2),
rotateY: FixedNotZero(Math.radToDeg(euler.y), 2),
rotateZ: FixedNotZero(Math.radToDeg(euler.z), 2),
}
if (this.m_ConfigOption)
{
Object.assign(this.m_ConfigOption, newConfig);
}
else
{
this.m_ConfigOption = newConfig;
}
}
handleComfirmOption = () =>
{
let board = this.props.board;
Object.assign(board.m_BoardProcessOption, this.m_ProcessOption);
board.Name = this.m_ConfigOption.name;
board.Length = parseFloat(this.m_ConfigOption.height);
board.Width = parseFloat(this.m_ConfigOption.width);
board.Thickness = parseFloat(this.m_ConfigOption.thickness);
board.BoardType = this.m_ConfigOption.type;
//应用旋转分量
let oldEuler = new Euler().setFromRotationMatrix(new Matrix4().extractRotation(board.BoardOCS));
let newEuler = new Euler(
Math.degToRad(parseFloat(this.m_ConfigOption.rotateX)),
Math.degToRad(parseFloat(this.m_ConfigOption.rotateY)),
Math.degToRad(parseFloat(this.m_ConfigOption.rotateZ))
)
if (!equaln(oldEuler.x, newEuler.x)
|| !equaln(oldEuler.y, newEuler.y)
|| !equaln(oldEuler.z, newEuler.z))
{
let pos = board.Position;
board
.ApplyMatrix(board.BoardOCSInv)
.ApplyMatrix(new Matrix4().makeRotationFromEuler(newEuler))
.ApplyMatrix(new Matrix4().setPosition(pos));
}
app.m_Editor.UpdateScreen();
app.m_Editor.m_ModalManage.Clear()
}
componentWillMount()
{
app.m_Viewer.Scene.children.forEach(en =>
{
let br = en.userData;
if (br
&& br instanceof Board && br.Id
&& br.m_BoardProcessOption.roomName === this.props.board.m_BoardProcessOption.roomName)
{
this.m_BoardMap.set(br.Id.Index.toString(), br);
}
})
}
render()
{
return (
<div
className="bp3-dialog-container"
id="boardModal"
>
<div className="bp3-dialog board-config">
<div
className="bp3-dialog-header"
data-id="dragArea"
>
<span className="bp3-icon-large bp3-icon-inbox"></span>
<h4 className="bp3-heading"></h4>
<button
aria-label="Close"
className="bp3-dialog-close-button bp3-icon-small-cross"
onClick={() => app.m_Editor.m_ModalManage.Clear()}
></button>
</div>
<div
className="bp3-dialog-body"
>
<div className="bp3-card">
<div className="bp3-select .modifier">
<select style={{ width: "15rem" }}
onChange={e =>
{
let br = this.m_BoardMap.get(e.target.value);
this.SetBrConfig(br);
Object.assign(this.m_ProcessOption, br.m_BoardProcessOption);
}}
>
{
Array.from(this.m_BoardMap.values()).map(b =>
<option key={b.Id.Index.toString()} value={b.Id.Index.toString()} selected={b === this.props.board}>
:{b.Name}
:{b.m_BoardProcessOption.boardName}
</option>
)
}
</select>
</div>
</div>
<div className="flex">
<div className="bp3-card">
<h6 className={Classes.HEADING}></h6>
<BoardConfigModal boardConfig={this.m_ConfigOption} boardProcess={this.m_ProcessOption} />
</div>
<div className="bp3-card">
<h6 className={Classes.HEADING}></h6>
<BoardProcessModal opt={this.m_ProcessOption} />
</div>
<div className="bp3-card">
<Notes />
</div>
</div>
</div>
<div className="bp3-dialog-footer">
<div className="bp3-dialog-footer-actions">
<Button
className="bp3-intent-success"
text="确定"
onClick={this.handleComfirmOption}
/>
<Button className="bp3-intent-danger" text="取消"
onClick={() => app.m_Editor.m_ModalManage.Clear()}
/>
</div>
</div>
</div>
</div >
);
}
}

@ -1,8 +1,9 @@
import { Checkbox, Classes } from '@blueprintjs/core';
import { Classes } from '@blueprintjs/core';
import { observer } from 'mobx-react';
import * as React from 'react';
import { BoardProcessOption, DrillType, FaceDirType } from '../../Store/BoardInterface';
import { BoardProcessOption, ComposingType, DrillType, LinesType, PXLFaceType } from '../../Store/BoardInterface';
import { BoardModel, SetBoardDataBlock, SetBoardDataItem2 } from './BoardCommon';
export const BoardProcessModal = observer(({ opt }: { opt: BoardProcessOption }) =>
{
let pars = new Map([
@ -38,15 +39,15 @@ export const BoardProcessModal = observer(({ opt }: { opt: BoardProcessOption })
<span></span>
<div className="bp3-select bp3-inline .modifier">
<select
value={opt.lines + ""}
value={opt.lines.toString()}
onChange={e =>
{
opt.lines = parseFloat(e.target.value);
}}
>
<option value={FaceDirType.Positive + ""}></option>
<option value={FaceDirType.Reverse + ""}></option>
<option value={FaceDirType.CanReversal + ""}></option>
<option value={LinesType.Positive.toString()}></option>
<option value={LinesType.Reverse.toString()}></option>
<option value={LinesType.CanReversal.toString()}></option>
</select>
</div>
</label>
@ -54,14 +55,14 @@ export const BoardProcessModal = observer(({ opt }: { opt: BoardProcessOption })
<span></span>
<div className="bp3-select .modifier">
<select
value={opt.bigHoleDir + ""}
value={opt.bigHoleDir.toString()}
onChange={e =>
{
opt.bigHoleDir = parseFloat(e.target.value);
}}
>
<option value={FaceDirType.Positive + ""}></option>
<option value={FaceDirType.Reverse + ""}></option>
<option value={PXLFaceType.Positive.toString()}></option>
<option value={PXLFaceType.Reverse.toString()}></option>
</select>
</div>
</label>
@ -85,40 +86,19 @@ export const BoardProcessModal = observer(({ opt }: { opt: BoardProcessOption })
<span></span>
<div className="bp3-select .modifier">
<select
value={opt.composingFace + ""}
value={opt.composingFace.toString()}
onChange={e =>
{
opt.composingFace = parseFloat(e.target.value);
}}
>
<option value={FaceDirType.Positive + ""}></option>
<option value={FaceDirType.Reverse + ""}></option>
<option value={FaceDirType.All + ""}></option>
<option value={ComposingType.Positive.toString()}></option>
<option value={ComposingType.Reverse.toString()}></option>
<option value={ComposingType.Arbitrary.toString()}></option>
</select>
</div>
</label>
</div>
<label className="bp3-label bp3-inline .modifier">
<span></span>
<div className="inline hole">
<Checkbox
checked={opt.isPositive}
label="正"
onChange={() =>
{
opt.isPositive = !opt.isPositive
}}
/>
<Checkbox
checked={opt.isReverse}
label="反"
onChange={() =>
{
opt.isReverse = !opt.isReverse
}}
/>
</div>
</label>
<h6 className={Classes.HEADING}></h6>
<div className="boardSize center">
<input

@ -27,8 +27,8 @@ export const ClosingStripModal =
<div>
<h6 className={Classes.HEADING}></h6>
<RadioGroup
onChange={e => opt.type = e.currentTarget.value as StripType}
selectedValue={opt.type}
onChange={e => opt.striptype = e.currentTarget.value as StripType}
selectedValue={opt.striptype}
>
<Radio label="横放" value={StripType.H} />
<Radio label="竖放" value={StripType.V} />

@ -16,7 +16,7 @@ export const LayerBoardModal =
let nailOpt = props.store.layerNailOption;
return (
<>
<BoardName store={props.store} className="br-name" />
<BoardName opt={props.store.m_BoardOption} className="br-name" />
<div>
<h6 className={Classes.HEADING}></h6>
<div>

@ -1,42 +1,33 @@
import * as React from 'react';
import { observer } from "mobx-react";
import { BoardType } from "../../../DatabaseServices/Board";
import * as React from 'react';
import { SingleBoardStore } from "../../Store/BoardStore";
import { BoardName, SetBoardDataBlock } from "./BoardCommon";
import { BoardName, BoardTypeComponent, SetBoardDataBlock } from "./BoardCommon";
export const SingleBoardModal =
(observer((props: { store?: SingleBoardStore }) =>
{
let pars = new Map([["height", "板高"], ["width", "柜宽"], ["thickness", "板厚"],
["spliteHeight", "拆单高"], ["spliteWidth", "拆单宽"], ["spliteThickness", "拆单厚"],
["rotateX", "旋转X"], ["rotateY", "旋转Y"], ["rotateZ", "旋转Z"]
]);
let processPars = new Map([
["spliteHeight", "拆单高"], ["spliteWidth", "拆单宽"], ["spliteThickness", "拆单厚"]
])
let opt = props.store.m_BoardOption;
let processOpt = props.store.m_BoardProcessOption;
return (
<div>
<label className="bp3-label bp3-inline .modifier">
<span></span>
<div className="bp3-select bp3-inline .modifier">
<select
value={opt.type + ""}
onChange={e =>
{
props.store.m_BoardOption.name = e.target.options[e.target.selectedIndex].label;
opt.type = parseFloat(e.target.value);
}}
>
<option value={BoardType.Layer + ""}></option>
<option value={BoardType.Vertical + ""}></option>
<option value={BoardType.Behind + ""}></option>
</select>
</div>
</label>
<BoardName store={props.store} />
<BoardTypeComponent opt={opt} />
<BoardName opt={opt} />
<SetBoardDataBlock
pars={pars}
opt={opt}
isInline={true}
/>
<SetBoardDataBlock
pars={processPars}
opt={processOpt}
isInline={true}
/>
</div>
)
}));

@ -13,7 +13,7 @@ export const VerticalBoardModal =
const brOpt = store.m_BoardOption;
return (
<>
<BoardName store={props.store} className="br-name" />
<BoardName opt={props.store.m_BoardOption} className="br-name" />
<div>
<h6 className={Classes.HEADING}></h6 >
<div>

@ -6,11 +6,6 @@ import { Entity } from '../../../DatabaseServices/Entity';
import { PointLight } from '../../../DatabaseServices/PointLight';
import { app } from '../../../ApplicationServices/Application';
export interface LightModalProps
{
selectedObj: Entity;
update: Function,
}
export interface LightModalState
{
@ -29,18 +24,18 @@ export interface LightModalState
decay: string
}
export class LightModal extends React.Component<LightModalProps, LightModalState> {
constructor(props: LightModalProps)
export class LightModal extends React.Component<{ selectedObj: Entity }, LightModalState> {
constructor(props)
{
super(props);
let obj = this.props.selectedObj as PointLight;
this.state = {
x: obj.Position.x + "",
y: obj.Position.y + "",
z: obj.Position.z + "",
intensity: obj.Intensity + "",
distance: obj.Distance + "",
decay: obj.Decay + "",
x: obj.Position.x.toString(),
y: obj.Position.y.toString(),
z: obj.Position.z.toString(),
intensity: obj.Intensity.toString(),
distance: obj.Distance.toString(),
decay: obj.Decay.toString(),
isFocus: false,
color: "#" + obj.Color.getHexString()
}
@ -65,14 +60,14 @@ export class LightModal extends React.Component<LightModalProps, LightModalState
this.setState({ decay: targetValue })
break;
}
this.props.update();
app.m_Editor.UpdateScreen();
}
handleChangeColor = (color) =>
{
let light = this.props.selectedObj as PointLight;
light.Color = new Color(color.hex);
this.setState({ color: color.hex });
this.props.update();
app.m_Editor.UpdateScreen();
}
handleChangePosition = (e: React.ChangeEvent<HTMLInputElement>) =>
{
@ -102,7 +97,7 @@ export class LightModal extends React.Component<LightModalProps, LightModalState
if (isNaN(pos)) return;
let mat = new Matrix4().makeTranslation(moveVec.x, moveVec.y, moveVec.z);
this.props.selectedObj.ApplyMatrix(mat);
this.props.update();
app.m_Editor.UpdateScreen();
}
render()
{
@ -134,7 +129,7 @@ export class LightModal extends React.Component<LightModalProps, LightModalState
onChange={e =>
{
light.Color = new Color(e.target.value);
this.props.update();
app.m_Editor.UpdateScreen();
}}
/>
{

@ -260,7 +260,16 @@
margin-bottom: 0;
}
}
//板件属性
#boardModal>.board-config .bp3-dialog-footer{
justify-content: flex-end;
}
#boardModal>.board-config .flexWrap{
width: 20rem;
}
#boardModal>.board-config .br-set>span{
width: 4.5rem;
}
// /**************阵列模态框样式*************/
#arrayModal h5{

@ -1,18 +1,11 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as xaop from 'xaop';
import { app } from '../../../ApplicationServices/Application';
import { KeyBoard } from '../../../Common/KeyEnum';
import { PointLight } from '../../../DatabaseServices/PointLight';
import { Text } from '../../../DatabaseServices/Text/Text';
import { Sleep } from '../../../Common/Utils';
import { commandMachine } from '../../../Editor/CommandMachine';
import { Editor } from '../../../Editor/Editor';
import { PointPick } from '../../../Editor/PointPick';
import { LightModal } from './LightModal';
import './Modal.less';
import { Sleep } from '../../../Common/Utils';
import { Singleton } from '../../../Common/Singleton';
import { TextArea } from '../../../DatabaseServices/Text/TextArea';
export enum ModalPosition
{
@ -86,11 +79,6 @@ export class ModalManage
//捕获蒙版的事件
this.m_Masking.addEventListener('keydown', e => e.stopPropagation());
this.m_Masking.addEventListener('click', e => e.stopPropagation());
xaop.end(this.m_ed.m_MouseCtrl, this.m_ed.m_MouseCtrl.onDBMouseDown, () =>
{
this.OnMouseDbClick()
});
}
OnKeyDown(e: KeyboardEvent)
{
@ -114,12 +102,11 @@ export class ModalManage
//设置初始位置
if (pos === ModalPosition.Right)
{
this.m_ModalContainer.style.left = window.innerWidth - this.m_ModalContainer.clientWidth + "px";
this.m_ModalContainer.style.left = window.innerWidth - this.m_ModalContainer.clientWidth - 10 + "px";
this.m_ModalContainer.style.top = "40px";
}
else if (pos === ModalPosition.Center)
{
let commandHeight = document.getElementsByClassName("lm_item lm_row")[0].clientHeight;
this.m_ModalContainer.style.left = `calc( 50% - ${this.m_ModalContainer.clientWidth / 2}px)`;
this.m_ModalContainer.style.top = `calc( 50% - ${(this.m_ModalContainer.clientHeight) / 2}px)`;
}
@ -133,25 +120,6 @@ export class ModalManage
this.m_IsModal = true;
this.m_Masking.style.zIndex = "2";
}
OnMouseDbClick()
{
let en = PointPick(app.m_Editor.m_MouseCtrl.m_CurMousePointVCS, app.m_Viewer)[0];
if (!en) return;
app.m_Editor.m_SelectCtrl.Cancel();
if (en && en.userData instanceof PointLight)
{
let light = en.userData as PointLight;
this.RenderModeless(LightModal, ModalPosition.Right, { selectedObj: light, clear: this.Clear, update: this.UpdateView })
}
else if (en && en.userData instanceof Text)
{
let textarea = Singleton.GetInstance(TextArea);
textarea.StartEditorText(en)
}
}
async ExecCmd()
{
if (app.m_Editor.m_CommandStore.isCmdIng)

@ -1,46 +1,38 @@
import { BoardType } from "../../DatabaseServices/Board";
export interface BoardOption { }
//板件数据,配置信息+加工信息
export interface BoardData
{
boardConfig: BoardConfigOption;
boardProcess: BoardProcessOption;
}
export interface BoardProcessOption extends BoardOption
{
roomName: string;
cabinetName: string;
boardName: string;
material: string;
color: string;
lines: FaceDirType;
bigHoleDir: FaceDirType;
drillType: DrillType;
composingFace: FaceDirType;
isPositive: boolean;
isReverse: boolean;
sealedUp: string;
sealedDown: string;
sealedLeft: string;
sealedRight: string;
}
//排钻类型
export enum DrillType
{
Three = "three",
Two = "two",
None = "no"
}
/**
*
*/
export enum FaceDirType
//偏心轮类型
export enum PXLFaceType
{
Positive = 0,
Reverse = 1,
Side = 2,
CanReversal = 3,
All = 4
Positive,
Reverse
}
//纹路类型
export enum LinesType
{
Positive, Reverse, CanReversal
}
// 排版面
export enum ComposingType
{
Positive, Reverse, Arbitrary
}
/**
*
@ -71,7 +63,30 @@ export enum BrRelativePos
Right = "right",
Div = "div"
}
export interface BoardProcessOption extends BoardOption
{
roomName?: string;
cabinetName?: string;//柜名
boardName?: string;//板材名
material?: string;//材料
color?: string;
lines?: LinesType;//纹路
bigHoleDir?: PXLFaceType;//大孔面
drillType?: DrillType;//排钻类型
composingFace?: ComposingType;//排版面
sealedUp?: string;//封边上下左右
sealedDown?: string;
sealedLeft?: string;
sealedRight?: string;
knifeRad?: string;//刀具半径
grooveAddLength?: string;//槽加长/宽/高
grooveAddWidth?: string;
grooveAddDepth?: string;
spliteHeight?: string;//拆单高/宽/厚
spliteWidth?: string;
spliteThickness?: string;
}
/**
*
*
@ -80,14 +95,15 @@ export enum BrRelativePos
*/
export interface BoardConfigOption extends BoardOption
{
type: BoardType;
name: string;
thickness?: string; //厚度
height?: string; //长
width?: string //宽
spaceSize?: string;
count?: string;
boardRelative?: BrRelativePos;
thickness?: string;
height?: string;
width?: string;
}
export interface SideBoardOption extends BoardConfigOption
{
spaceSize?: string; //空间宽度
}
/**
@ -99,16 +115,19 @@ export interface BoardConfigOption extends BoardOption
*/
export interface BehindBoardOption extends BoardConfigOption
{
//上下左右延伸
leftExt: string;
rightExt: string;
topExt: string;
bottomExt: string;
knifeRad: string;
grooveAddLength: string;
grooveAddWidth: string;
grooveAddDepth: string;
//板件位置
boardPosition: BehindHeightPositon;
moveDist: string;
spaceSize?: string;
count?: string;
//板件相对位置
boardRelative?: BrRelativePos;
}
/**
@ -120,11 +139,15 @@ export interface BehindBoardOption extends BoardConfigOption
*/
export interface LayerBoardOption extends BoardConfigOption
{
//前后左右缩
frontShrink: string;
leftShrink: string;
rightShrink: string;
isTotalLength: boolean;
isActive: boolean;
spaceSize?: string;
count?: string;
boardRelative?: BrRelativePos;
}
/**
@ -146,6 +169,7 @@ export interface LayerNailOption
rad: string;
length: string;
depth: string;
}
/**
@ -161,27 +185,27 @@ export interface VerticalBoardOption extends BoardConfigOption
bottomShrink: string;//底缩
isTotalLength: boolean; //是否取总高
isTotalWidth: boolean;//是否取总宽
count?: string;
spaceSize?: string;
boardRelative?: BrRelativePos;
}
export interface TBBoardOption extends BoardConfigOption
{
isDraw: boolean;
forwardDistance: string;
behindDistance: string;
forwardDistance: string; //前距
behindDistance: string; //后距
isWrapSide: boolean;
leftExt: string;
rightExt: string;
offset: string;
footThickness: string;
footThickness: string; //地脚厚
}
export interface SingleBoardOption extends BoardConfigOption
{
type: BoardType;
rotateX: string;
rotateY: string;
rotateZ: string;
spliteHeight: string;
spliteWidth: string;
spliteThickness: string;
}
export enum StripType
{
@ -191,5 +215,5 @@ export enum StripType
export interface ClosingStripOption extends BoardConfigOption
{
boardRelative: BrRelativePos;
type: StripType;
striptype: StripType;//收口条类型
}

@ -3,12 +3,11 @@ import { observable, toJS } from 'mobx';
import { app } from '../../ApplicationServices/Application';
import { BoardType } from '../../DatabaseServices/Board';
import { configOption } from '../Components/Board/BoardModal';
import { BehindBoardOption, BehindHeightPositon, BoardConfigOption, BrRelativePos, ClosingStripOption, LayerBoardOption, LayerNailOption, SingleBoardOption, StripType, TBBoardOption, VerticalBoardOption, BoardProcessOption, FaceDirType, DrillType } from './BoardInterface';
import { BehindBoardOption, BehindHeightPositon, BoardConfigOption, BrRelativePos, ClosingStripOption, LayerBoardOption, LayerNailOption, SingleBoardOption, StripType, TBBoardOption, VerticalBoardOption, BoardProcessOption, PXLFaceType, DrillType, LinesType, ComposingType, SideBoardOption } from './BoardInterface';
import { ModalState } from '../Components/Modal/ModalsManage';
export class BoardStore
{
name: string;
m_BoardOption: BoardConfigOption;
title: string;
@observable m_BoardProcessOption: BoardProcessOption = {
@ -17,16 +16,21 @@ export class BoardStore
boardName: "",
material: "",
color: "",
lines: FaceDirType.Positive,
bigHoleDir: FaceDirType.Positive,
lines: LinesType.Positive,
bigHoleDir: PXLFaceType.Positive,
drillType: DrillType.Three,
composingFace: FaceDirType.All,
isPositive: true,
isReverse: true,
composingFace: ComposingType.Arbitrary,
sealedUp: "1.0",
sealedDown: "1.0",
sealedLeft: "1.0",
sealedRight: "1.0"
sealedRight: "1.0",
knifeRad: "0",
grooveAddLength: "0",
grooveAddWidth: "0",
grooveAddDepth: "0",
spliteHeight: "",
spliteWidth: "",
spliteThickness: ""
}
async OnOk(state: number, isClose: boolean = true)
@ -89,7 +93,8 @@ export class BoardStore
export class SideBoardStore extends BoardStore
{
//板数据
@observable m_BoardOption: BoardConfigOption = {
@observable m_BoardOption: SideBoardOption = {
type: BoardType.Vertical,
name: "",
height: "1200",
width: "600",
@ -102,6 +107,7 @@ export class SideBoardStore extends BoardStore
export class TopBottomBoardStore extends BoardStore
{
@observable topBoardOption: TBBoardOption = {
type: BoardType.Layer,
name: "顶板",
isDraw: true,
thickness: "18",
@ -114,6 +120,7 @@ export class TopBottomBoardStore extends BoardStore
footThickness: "18"
};
@observable bottomBoardOption: TBBoardOption = {
type: BoardType.Layer,
name: "底板",
isDraw: true,
thickness: "18",
@ -157,18 +164,14 @@ export class TopBottomBoardStore extends BoardStore
export class BehindBoardStore extends BoardStore
{
title = "背板";
@observable m_BoardOption: BehindBoardOption = {
type: BoardType.Behind,
name: "背板",
leftExt: "0",
rightExt: "0",
topExt: "0",
bottomExt: "0",
thickness: "18",
knifeRad: "3",
grooveAddLength: "0",
grooveAddWidth: "0",
grooveAddDepth: "0",
boardPosition: BehindHeightPositon.AllHeight,
height: "H",
moveDist: "0",
@ -176,12 +179,18 @@ export class BehindBoardStore extends BoardStore
spaceSize: "0",
count: "1"
};
constructor()
{
super();
this.m_BoardProcessOption.knifeRad = "3";
}
}
export class LayerBoardStore extends BoardStore
{
title = "层板";
@observable m_BoardOption: LayerBoardOption = {
type: BoardType.Layer,
name: "层板",
frontShrink: "0",
leftShrink: "0",
@ -235,6 +244,7 @@ export class VerticalBoardStore extends BoardStore
title = "立板";
@observable m_BoardOption: VerticalBoardOption = {
type: BoardType.Vertical,
name: "立板",
frontShrink: "0",
bottomShrink: "0",
@ -260,18 +270,16 @@ export class SingleBoardStore extends BoardStore
thickness: "18",
rotateX: "0",
rotateY: "0",
rotateZ: "0",
spliteHeight: "",
spliteWidth: "",
spliteThickness: ""
rotateZ: "0"
}
}
export class ClosingStripStore extends BoardStore
{
title = "收口条";
@observable m_BoardOption: ClosingStripOption = {
type: BoardType.Vertical,
name: "收口条",
type: StripType.H,
striptype: StripType.H,
boardRelative: BrRelativePos.Left,
width: "50",
thickness: "18"

Loading…
Cancel
Save