!2650 新增:填写拆单尺寸板件严格清除孔槽等加工

pull/2827/MERGE
钱若寒 4 months ago committed by 黄诗津
parent 896cdfd48f
commit 021320fdb9

@ -0,0 +1,41 @@
import { app } from "../ApplicationServices/Application";
import { HostApplicationServices } from "../ApplicationServices/HostApplicationServices";
import { Board } from "../DatabaseServices/Entity/Board";
import { Command } from "../Editor/CommandMachine";
import { PromptStatus } from "../Editor/PromptResult";
export class Command_ClearCDBrHoleModeling implements Command
{
async exec()
{
let ssRes = await app.Editor.GetSelection({ Msg: "选择具有拆单尺寸的板,清除它的孔槽:", UseSelect: true });
if (ssRes.Status !== PromptStatus.OK) return;
const ents = ssRes.SelectSet.SelectEntityList.filter(e => !e.IsErase && e instanceof Board) as Board[];
const { partialSplitValueCanTakesEffect } = HostApplicationServices.chaidanOption;
for (let br of ents)
{
if (partialSplitValueCanTakesEffect)
{
if (br.BoardProcessOption.spliteHeight || br.BoardProcessOption.spliteWidth || br.BoardProcessOption.spliteThickness)
{
br.Modeling2D = [];
br.ClearBoardModeling();
br.ClearAllDrillList();
br.ClearLayerNails();
br.ClearRelevance();
}
}
else
{
if (br.BoardProcessOption.spliteHeight && br.BoardProcessOption.spliteWidth && br.BoardProcessOption.spliteThickness)
{
br.Modeling2D = [];
br.ClearBoardModeling();
br.ClearLayerNails();
br.ClearRelevance();
}
}
}
}
}

@ -3,6 +3,7 @@ import { observable } from "mobx";
import { Box3, Matrix4, Vector3 } from "three";
import { begin } from "xaop";
import { app } from "../../ApplicationServices/Application";
import { HostApplicationServices } from "../../ApplicationServices/HostApplicationServices";
import { appCache } from "../../Common/AppCache";
import { arrayLast, arrayRemoveIf } from "../../Common/ArrayExt";
import { EBoardKeyList } from "../../Common/BoardKeyList";
@ -1455,9 +1456,19 @@ export class DrawDrillingTool extends Singleton
}
private IsSplitBoard(board: Board)
{
if (board.BoardProcessOption.spliteHeight && board.BoardProcessOption.spliteWidth && board.BoardProcessOption.spliteThickness)
return true;
else false;
const { partialSplitValueCanTakesEffect, cancelHoleProcessing } = HostApplicationServices.chaidanOption;
if (partialSplitValueCanTakesEffect && cancelHoleProcessing)
{
if (board.BoardProcessOption.spliteHeight || board.BoardProcessOption.spliteWidth || board.BoardProcessOption.spliteThickness)
return true;
else false;
}
else
{
if (board.BoardProcessOption.spliteHeight && board.BoardProcessOption.spliteWidth && board.BoardProcessOption.spliteThickness)
return true;
else false;
}
}
private async GetSpliteBoards(brs: Board[])

@ -43,6 +43,8 @@ const ForbidReactorCmd = new Set([
//封边
CommandNames.,
// 板件取消孔槽加工
CommandNames.ClearCDBrHoleModeling,
//对纹组
CommandNames.AlignLineGroup,

@ -97,6 +97,7 @@ export class IHostApplicationServices
sealValues: '',//封边值列表
hardwareExpressionFormattingAccuracy: 2,//复合实体表达式值格式化精度
partialSplitValueCanTakesEffect: false,
cancelHoleProcessing: false,//填写拆单尺寸板件取消孔槽加工
};
@ProxyValue viewSize = {

@ -399,4 +399,5 @@ export enum CommandNames
DeleteAlignLineGroup = "DELETEALIGNLINEGROUP",//删除对纹组
HighlightNode = "HIGHLIGHTNODE",//高亮本节点
HighlightNodeAndChilds = "HIGHLIGHTNODEANDCHILDS",//亮显本节点及子节点
ClearCDBrHoleModeling = "CLEARCDBRHOLEMODELING",//板件取消孔槽加工
}

@ -216,6 +216,7 @@ import { Command_DrawArcBoard } from "../Add-on/ArcBoard/DrawArcBoard";
import { OneClickInspection } from "../Add-on/BoardInspection/OneClickInspection";
import { ImportCFData } from "../Add-on/CF/Import/CFImport";
import { ChangeColorByRoomCabinet } from "../Add-on/ChangeColorByRoomOrCabinet/ChangeColorByRoomOrCabinet";
import { Command_ClearCDBrHoleModeling } from "../Add-on/ClearCDBrHoleModeling";
import { Command_RemovePolylineRepeatPos } from "../Add-on/Cmd_RemovePolylineRepeatPos";
import { Command_Modeling } from "../Add-on/Command_Modeling";
import { Command_PickUp2DModelCsgs } from "../Add-on/Command_PickUp2DModelCsgs";
@ -923,6 +924,9 @@ export function registerCommand()
commandMachine.RegisterCommand(CommandNames.Attach, new TemplateAttach());
commandMachine.RegisterCommand(CommandNames.Attach2, new TemplateAttach2());
commandMachine.RegisterCommand(CommandNames.TemplateArray, new TemplateArray());
// 填写拆单尺寸板件取消孔槽加工
commandMachine.RegisterCommand(CommandNames.ClearCDBrHoleModeling, new Command_ClearCDBrHoleModeling());
}
export async function LimitCommand()

@ -128,6 +128,7 @@ export class UserConfig implements IConfigStore
hardwareExpressionFormattingAccuracy: 2,//复合实体表达式值格式化精度
partialSplitValueCanTakesEffect: false,//板件属性中填写局部拆单值可生效
xlineLength: 20000, //构造线长度默认使用20000
cancelHoleProcessing: false,//填写拆单尺寸板件取消孔槽加工
};
@observable viewSize = {
minViewHeight: 1e-3,
@ -244,6 +245,7 @@ export class UserConfig implements IConfigStore
hardwareExpressionFormattingAccuracy: 2,
partialSplitValueCanTakesEffect: false,
xlineLength: 20000,
cancelHoleProcessing: false,
});
Object.assign(this.textStyleOption, {
appointTextHight: false,

@ -370,6 +370,32 @@ export function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>
}
board.Clear2DPathCache();
// 填写拆单尺寸板件取消孔槽加工
const { partialSplitValueCanTakesEffect, cancelHoleProcessing } = HostApplicationServices.chaidanOption;
if (partialSplitValueCanTakesEffect && cancelHoleProcessing)
{
if (board.BoardProcessOption.spliteHeight || board.BoardProcessOption.spliteWidth || board.BoardProcessOption.spliteThickness)
{
board.Modeling2D = [];
board.ClearBoardModeling();
board.ClearLayerNails();
board.ClearRelevance();
}
}
else
{
if (board.BoardProcessOption.spliteHeight && board.BoardProcessOption.spliteWidth && board.BoardProcessOption.spliteThickness)
{
if (cancelHoleProcessing)
{
board.Modeling2D = [];
board.ClearBoardModeling();
board.ClearLayerNails();
board.ClearRelevance();
}
}
}
app.Editor.ModalManage.Destory();
board.AutoUpdate = oldAutoUpdate;

@ -3011,7 +3011,15 @@ export const CommandList: ICommand[] = [
chName: "对纹组",
chDes: "查看或编辑对纹组",
},
{
typeId: "cd",
link: "#",
defaultCustom: "CLEARCDBRHOLEMODELING",
command: CommandNames.ClearCDBrHoleModeling,
type: "拆单",
chName: "板件取消孔槽加工",
chDes: "板件取消孔槽加工",
},
// 共享命令
{
icon: IconEnum.CommodityManage,

@ -1,4 +1,4 @@
import { Card, Checkbox, Classes, Label, Radio, RadioGroup } from "@blueprintjs/core";
import { Card, Checkbox, Classes, Label, Radio, RadioGroup, Tooltip } from "@blueprintjs/core";
import { observer } from "mobx-react";
import * as React from 'react';
import { CheckObjectType } from '../../../../Common/CheckoutVaildValue';
@ -168,6 +168,13 @@ export class ChaiDanPanel extends React.Component
checked={userConfig.chaidanOption.partialSplitValueCanTakesEffect}
onChange={() => userConfig.chaidanOption.partialSplitValueCanTakesEffect = !userConfig.chaidanOption.partialSplitValueCanTakesEffect}
/>
<Tooltip content={"请检查填写了拆单尺寸且有孔槽的板件"}>
<Checkbox
label="填写拆单尺寸板件取消孔槽加工"
checked={userConfig.chaidanOption.cancelHoleProcessing}
onChange={() => userConfig.chaidanOption.cancelHoleProcessing = !userConfig.chaidanOption.cancelHoleProcessing}
/>
</Tooltip>
</Card>
);
}

Loading…
Cancel
Save