diff --git a/src/Add-on/BoardCutting/CuttingUtils2.ts b/src/Add-on/BoardCutting/CuttingUtils2.ts index b2136c743..27bae8c1b 100644 --- a/src/Add-on/BoardCutting/CuttingUtils2.ts +++ b/src/Add-on/BoardCutting/CuttingUtils2.ts @@ -6,9 +6,8 @@ import { Board } from "../../DatabaseServices/Entity/Board"; import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude"; import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity"; import { Box3Ext } from "../../Geometry/Box"; -import { DownPanelStore } from "../../UI/Store/DownPanelStore"; -export async function CuttingBoardByBoard(meats: Board[], knifs: Board[], isRelevance = true): Promise +export function CuttingBoardByBoard(meats: Board[], knifs: Board[], isRelevance = true) { // //进度条 // let down = DownPanelStore.GetInstance() as DownPanelStore; diff --git a/src/Add-on/twoD2threeD/Polyline2Board.ts b/src/Add-on/twoD2threeD/Polyline2Board.ts index 50adc96ac..b3cb25e64 100644 --- a/src/Add-on/twoD2threeD/Polyline2Board.ts +++ b/src/Add-on/twoD2threeD/Polyline2Board.ts @@ -24,6 +24,7 @@ import { BoardModalType } from "../../UI/Components/Board/BoardModal"; import { UpdateBoardInfos } from "../BoardEditor/UpdateBoardInfos"; import { FixDigits } from "../../Common/Utils"; import { GetRectData } from "../../Common/CurveUtils"; +import { CuttingBoardByBoard } from "../BoardCutting/CuttingUtils2"; const MaxBoardDistance = 200;//左右侧板,顶底板距离边缘的最大距离 @@ -98,6 +99,8 @@ export class Polyline2Board implements Command //板名设置属性配置 maxThickness: number = 20; backBrName = "背板"; + behindIsRelative = false; + footThickness: number; InitData(store: Rec2BrStore) { let option = store.m_Option; @@ -123,6 +126,8 @@ export class Polyline2Board implements Command this.grooveWidth = safeEval(option.grooveOption.grooveAddWidth); this.maxThickness = option.maxThickness; this.backBrName = option.backBrName; + this.behindIsRelative = option.behindIsRelative; + this.footThickness = option.footerThickness; } //绘制 传入曲线id表 async Doit(pls: Polyline[]) @@ -472,12 +477,12 @@ export class Polyline2Board implements Command //修改板名和前缩 for (let br of leftBoards) { - br.ColorIndex = 15; + br.ColorIndex = 11; br.Name = storeOption.farLeftVerticalBrName; } for (let br of rightBoards) { - br.ColorIndex = 12; + br.ColorIndex = 11; br.Name = storeOption.farRightVerticalBrName; } @@ -502,17 +507,17 @@ export class Polyline2Board implements Command br.ColorIndex = 8; } - const FixdjsktThickness = (br: Board) => + const FixdjsktThickness = (br: Board, thicknee?: number) => { let oldPt = br.MinPoint; - br.Thickness = this.boardThick; + br.Thickness = thicknee ?? this.boardThick; let newPt = br.MinPoint; br.Position = br.Position.add(oldPt.sub(newPt)); }; for (let br of djxs)//地脚 { - FixdjsktThickness(br); + FixdjsktThickness(br, this.footThickness); if (storeOption.isbottomMostBackBrName) br.Name = storeOption.bottomMostBackBrName; @@ -558,12 +563,19 @@ export class Polyline2Board implements Command UpdateBoardInfos.ModifyBr(b, nameOption); } - for (let br of layerVerBoards) + if (this.behindIsRelative) { - //柜体内缩 - CurtailFunc(br, this.fontDis); - br.Subtract(backBoards); + for (let br of layerVerBoards) + CurtailFunc(br, this.fontDis); + CuttingBoardByBoard(layerVerBoards, backBoards); } + else + for (let br of layerVerBoards) + { + //柜体内缩 + CurtailFunc(br, this.fontDis); + br.Subtract(backBoards); + } } DrawBoard(pls: Polyline[], isBack = false, color?: number): Board[] diff --git a/src/Add-on/twoD2threeD/R2BProcessComponent.tsx b/src/Add-on/twoD2threeD/R2BProcessComponent.tsx index 123d70a29..d72dca191 100644 --- a/src/Add-on/twoD2threeD/R2BProcessComponent.tsx +++ b/src/Add-on/twoD2threeD/R2BProcessComponent.tsx @@ -44,6 +44,7 @@ export class R2BProcessComponent extends React.Component
+
背板规则
@@ -98,6 +105,7 @@ export class R2BConfigComponent extends React.Component + store.m_Option.behindIsRelative = !store.m_Option.behindIsRelative} />
前缩
diff --git a/src/Add-on/twoD2threeD/R2bInterface.ts b/src/Add-on/twoD2threeD/R2bInterface.ts index aaaaf19d0..09c2bb619 100644 --- a/src/Add-on/twoD2threeD/R2bInterface.ts +++ b/src/Add-on/twoD2threeD/R2bInterface.ts @@ -64,4 +64,6 @@ export interface IRec2BrOption extends IBaseOption useBrName: boolean; //使用板件名配置 configName: string; backBrName: string;//背板名称 + behindIsRelative: boolean; + footerThickness: number; } diff --git a/src/Add-on/twoD2threeD/Rec2BrStore.ts b/src/Add-on/twoD2threeD/Rec2BrStore.ts index 287306e80..1b9694b77 100644 --- a/src/Add-on/twoD2threeD/Rec2BrStore.ts +++ b/src/Add-on/twoD2threeD/Rec2BrStore.ts @@ -26,7 +26,7 @@ export class Rec2BrStore extends BoardStore } HasInvailValue() { - return CheckoutValid.HasInvailValue(this.m_Option, CheckObjectType.R2B);// + return CheckoutValid.HasInvailValue(this.UIOption, CheckObjectType.R2B);// } SaveConfig() { @@ -59,6 +59,13 @@ export class Rec2BrStore extends BoardStore cof.option.version = 2; cof.option.backBrName = "背板"; } + if (cof.option.version < 3) + { + cof.option.version = 3; + cof.option.behindIsRelative = false; + cof.option.footerThickness = 18; + } + let grooveOption = cof.option.grooveOption; delete cof.option.grooveOption; Object.assign(this.m_Option, cof.option); diff --git a/src/Common/CheckoutVaildValue.ts b/src/Common/CheckoutVaildValue.ts index a86e154d5..ac53e41ba 100644 --- a/src/Common/CheckoutVaildValue.ts +++ b/src/Common/CheckoutVaildValue.ts @@ -286,12 +286,18 @@ export namespace CheckoutValid case "cabinetDeep": case "cabinetBrThick": case "backBrThick": - case "maxThickness": if (isNaN(val)) return "数值不能为空且必须为数字"; if (!(val >= 0)) return "数值必须大于等于0"; return ""; + case "maxThickness": + case "footerThickness": + if (isNaN(val)) + return "数值不能为空且必须为数字"; + if (val <= 0) + return "数值必须大于0"; + return ""; case "cabinetCurtail": case "backBrBiggerThanHeight": case "backBrBiggerThanWidth": diff --git a/src/Editor/DefaultConfig.ts b/src/Editor/DefaultConfig.ts index 8150be2b9..2adbd027a 100644 --- a/src/Editor/DefaultConfig.ts +++ b/src/Editor/DefaultConfig.ts @@ -647,5 +647,7 @@ export const DefaultR2bOption: IRec2BrOption = { useBrName: true, configName: "", backBrName: "背板", + behindIsRelative: false, + footerThickness: 18, }; Object.freeze(DefaultR2bOption); diff --git a/src/UI/Components/Board/BoardCommon.tsx b/src/UI/Components/Board/BoardCommon.tsx index eb350ee28..73acf7f8d 100644 --- a/src/UI/Components/Board/BoardCommon.tsx +++ b/src/UI/Components/Board/BoardCommon.tsx @@ -35,6 +35,7 @@ export interface ISetItemOption mounted?(); /**组件挂载完成触发 */ isUpper?: boolean; tip?: string; + titleStyle?: React.CSSProperties; } interface ISetBlockOption { @@ -75,7 +76,7 @@ export class SetBoardDataItem extends React.Component const props = this.props; return (
- + {props.title}: