开发:清理代码

pull/1991/MERGE
ChenX 2 years ago
parent 45d422d64b
commit ef579c5716

@ -1,4 +1,4 @@
import { InitRectBoardHoleOption, IRectHoleOption, SetRectHighHole } from "../../src/Add-on/DrawDrilling/HoleUtils";
import { IBoardRectHoleType, ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType } from "../../src/Add-on/DrawDrilling/HoleUtils";
import "../Utils/jest.util";
import { LoadBoardsFromFileData } from "../Utils/LoadEntity.util";
@ -7,18 +7,18 @@ test('分析上下左右排钻错误', () =>
let d = { "file": [1, "Board", 8, 2, 100, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -663.6125654450263, 18, -228.07330801010744, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -663.6125654450263, 18, -228.07330801010744, 1], 0, 3, 1583.8020726116358, 409.9999999999068, 18, true, "Polyline", 8, 2, 0, false, 0, 3, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2052, 2475.00000958101, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2052, 2475.00000958101, 0, 1], 0, 2, 4, [-1642.0000000000932, -2475.00000958101], 0, [-1642.0000000000932, -891.1979369693743], 0, [-2052, -891.1979369693743], 0, [-2052, -2475], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "左开门板", "男孩房衣柜", "门板+见光板", "4*9尺华纶卡其L1075", "颗粒板", "华纶卡其L1075", 0, 0, "不排", 2, 0, "0.8", "0.8", "0.8", "0.8", "", "", "", 4, "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": -663.6125654450263, "y": 0, "z": -228.07330801010744 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
let rectHoleOption: IRectHoleOption = {
let rectHoleOption: IBoardRectHoleType = {
up: "",
down: "",
left: "",
right: ""
};
InitRectBoardHoleOption(brs[0], rectHoleOption);
ParseBoardRectHoleType(brs[0], rectHoleOption);
expect(rectHoleOption).toMatchSnapshot();
SetRectHighHole(brs[0], {
SetBrHighHoleTypeFromRectHoleType(brs[0], {
up: "三合一",
down: "二合一",
left: "不排",

@ -5,13 +5,13 @@ import { EBoardKeyList } from "../../Common/BoardKeyList";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Command } from "../../Editor/CommandMachine";
import { PromptStatus } from "../../Editor/PromptResult";
import { InitRectBoardDrillOption, SetRectHighDrill } from "../../UI/Components/Board/CommonBoardOption";
import { IUpdateBoardInfosOption } from "../../UI/Components/Board/UpdateBoardInfointerface";
import { UpdateBoardInfoModal } from "../../UI/Components/Board/UpdateBoardInfos";
import { AppToaster } from "../../UI/Components/Toaster";
import { DRILL_KEYS } from "../../UI/Store/BoardFindInterface";
import { updateBoardInfoStore } from "../../UI/Store/UpdateBoardInfoStore";
import { CuttingBoardByBoard } from "../BoardCutting/CuttingUtils2";
import { ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType } from "../DrawDrilling/HoleUtils";
//根据板件名改属性
export class UpdateBoardInfos implements Command
@ -173,36 +173,36 @@ export class UpdateBoardInfos implements Command
if (option.highDrill.length === 4 && !br.IsSpecialShape)
{
let index = DRILL_KEYS.indexOf(i);
InitRectBoardDrillOption(br, drillOption);
ParseBoardRectHoleType(br, drillOption);
drillOption.up = option.highDrill[index];
SetRectHighDrill(br, drillOption);
SetBrHighHoleTypeFromRectHoleType(br, drillOption);
}
break;
case "downDrill":
if (option.highDrill.length === 4 && !br.IsSpecialShape)
{
let index = DRILL_KEYS.indexOf(i);
InitRectBoardDrillOption(br, drillOption);
ParseBoardRectHoleType(br, drillOption);
drillOption.down = option.highDrill[index];
SetRectHighDrill(br, drillOption);
SetBrHighHoleTypeFromRectHoleType(br, drillOption);
}
break;
case "leftDrill":
if (option.highDrill.length === 4 && !br.IsSpecialShape)
{
let index = DRILL_KEYS.indexOf(i);
InitRectBoardDrillOption(br, drillOption);
ParseBoardRectHoleType(br, drillOption);
drillOption.left = option.highDrill[index];
SetRectHighDrill(br, drillOption);
SetBrHighHoleTypeFromRectHoleType(br, drillOption);
}
break;
case "rightDrill":
if (option.highDrill.length === 4 && !br.IsSpecialShape)
{
let index = DRILL_KEYS.indexOf(i);
InitRectBoardDrillOption(br, drillOption);
ParseBoardRectHoleType(br, drillOption);
drillOption.right = option.highDrill[index];
SetRectHighDrill(br, drillOption);
SetBrHighHoleTypeFromRectHoleType(br, drillOption);
}
break;
case "isChaiDan":

@ -19,10 +19,10 @@ import { SelectSetBase } from "../Editor/SelectBase";
import { equaln } from "../Geometry/GeUtils";
import { IHardwareType, Production } from "../Production/Product";
import BoardFindModifyModal from "../UI/Components/Board/BoardFindModify";
import { InitRectBoardDrillOption, SetRectHighDrill } from "../UI/Components/Board/CommonBoardOption";
import { DRILL_KEYS, ECompareType, EFindType, IBoardFindOption, IFindCondition } from "../UI/Store/BoardFindInterface";
import { BoardFindStore } from "../UI/Store/BoardFindModifyStore";
import { DrillType } from "../UI/Store/BoardInterface";
import { ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType } from "./DrawDrilling/HoleUtils";
import { IsDoor } from "./HideSelect/HideSelectUtils";
export class BoardFindModify implements Command
@ -350,7 +350,7 @@ export class BoardFindModify implements Command
let isChangeHole = (option.condition.rightDrill || option.condition.leftDrill || option.condition.upDrill || option.condition.downDrill);
if (!br.IsSpecialShape && isChangeHole)
InitRectBoardDrillOption(br, drillOption);
ParseBoardRectHoleType(br, drillOption);
for (let i in option.condition)
{
@ -479,7 +479,7 @@ export class BoardFindModify implements Command
else
{
if (isChangeHole)
SetRectHighDrill(br, drillOption);
SetBrHighHoleTypeFromRectHoleType(br, drillOption);
//避免板件变0长度后,不能还原成正常的板
if (br.ContourCurve.EndParam < 4)

@ -140,7 +140,10 @@ export function CyHoleInBoard(cys: CylinderHole[], br: Board, ocs: Matrix4)
return true;
}
export interface IRectHoleOption
/**
* <>
*/
export interface IBoardRectHoleType
{
up: string;
down: string;
@ -148,7 +151,7 @@ export interface IRectHoleOption
right: string;
}
export const TempRectHoleOption: IRectHoleOption = {
export const TempRectHoleOption: IBoardRectHoleType = {
up: "",
down: "",
left: "",
@ -156,7 +159,7 @@ export const TempRectHoleOption: IRectHoleOption = {
};
/**分析上下左右排钻 */
export function InitRectBoardHoleOption(br: Board, option: IRectHoleOption)
export function ParseBoardRectHoleType(br: Board, outBrRectHoleType: IBoardRectHoleType = {} as any)
{
let dir = Math.sign(br.ContourCurve.Area2);
let hightDrill = br.BoardProcessOption.highDrill;
@ -169,24 +172,27 @@ export function InitRectBoardHoleOption(br: Board, option: IRectHoleOption)
if (Math.abs(derv.x) > Math.abs(derv.y))
{
if (derv.x > 0)
option.down = hightDrill[i];
outBrRectHoleType.down = hightDrill[i];
else
option.up = hightDrill[i];
outBrRectHoleType.up = hightDrill[i];
}
else
{
if (derv.y > 0)
option.right = hightDrill[i];
outBrRectHoleType.right = hightDrill[i];
else
option.left = hightDrill[i];
outBrRectHoleType.left = hightDrill[i];
}
}
return outBrRectHoleType;
}
export function ExtureHoleInBoard(holes: ExtrudeHole[], board: Board, ocs: Matrix4)
{
//TODO:自定义排钻判断
return true;
}
export function HoleInBoard(holes: Hole[], br: Board, ocs?: Matrix4)
{
if (holes.length === 0) return false;
@ -201,8 +207,8 @@ export function HoleInBoard(holes: Hole[], br: Board, ocs?: Matrix4)
}
}
/**上下左右排钻写入板件 */
export function SetRectHighHole(br: Board, option: IRectHoleOption)
/**上下左右排钻写入板件的高级排钻中 */
export function SetBrHighHoleTypeFromRectHoleType(br: Board, brRectHoleType: IBoardRectHoleType)
{
let dir = Math.sign(br.ContourCurve.Area2);
let highDrill = br.BoardProcessOption.highDrill;
@ -216,16 +222,16 @@ export function SetRectHighHole(br: Board, option: IRectHoleOption)
if (Math.abs(derv.x) > Math.abs(derv.y))
{
if (derv.x > 0)
highDrill.push(option.down);
highDrill.push(brRectHoleType.down);
else
highDrill.push(option.up);
highDrill.push(brRectHoleType.up);
}
else
{
if (derv.y > 0)
highDrill.push(option.right);
highDrill.push(brRectHoleType.right);
else
highDrill.push(option.left);
highDrill.push(brRectHoleType.left);
}
}
let types = new Set(highDrill);
@ -233,4 +239,4 @@ export function SetRectHighHole(br: Board, option: IRectHoleOption)
br.BoardProcessOption[EBoardKeyList.DrillType] = highDrill[0];
else if (types.size > 1)
br.BoardProcessOption[EBoardKeyList.DrillType] = DrillType.More;
};
}

@ -1,7 +1,7 @@
import { Geometry, Line as TLine, LineSegments, Matrix3, Matrix4, Mesh, Object3D, ShapeGeometry, UVGenerator, Vector3 } from 'three';
import { Board2Regions } from '../../Add-on/BoardEditor/Board2Regions';
import { DeserializationBoard2DModeingData, DeserializationBoard3DModeingData, deserializationBoardData, SerializeBoard2DModeingData, SerializeBoard3DModeingData, serializeBoardData } from '../../Add-on/BoardEditor/SerializeBoardData';
import { CyHoleInBoard, InitRectBoardHoleOption, SetRectHighHole, TempRectHoleOption } from '../../Add-on/DrawDrilling/HoleUtils';
import { CyHoleInBoard, ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType, TempRectHoleOption } from '../../Add-on/DrawDrilling/HoleUtils';
import { HostApplicationServices } from '../../ApplicationServices/HostApplicationServices';
import { arrayRemoveIf, arraySortByNumber, arraySum } from '../../Common/ArrayExt';
import { EBoardKeyList } from '../../Common/BoardKeyList';
@ -352,14 +352,16 @@ export class Board extends ExtrudeSolid
{
let brs = this.SplitExtrudes;
let dridatas: string[];
let highDrills: string[];
let ocsInv: Matrix4;
if (brs.some(br => br.__OriginalEnt__))
{
if (this._BoardProcessOption.highDrill
&& this._BoardProcessOption.highDrill.length > 1
&& !this._BoardProcessOption.highDrill.every(d => d === this._BoardProcessOption.drillType))
dridatas = this._BoardProcessOption.highDrill;
{
highDrills = this._BoardProcessOption.highDrill;
}
ocsInv = this.OCSInv;
}
@ -376,7 +378,7 @@ export class Board extends ExtrudeSolid
br._BoardProcessOption = { ...this._BoardProcessOption };
//修正排钻边的数据
if (dridatas)
if (highDrills)
{
br.BoardProcessOption.highDrill = [];//因为上面用了拷贝,所以这里不能直接改它的数据(我们新建一个数组来改它,否则原始板件的数据就被改掉了)
//矩阵对齐
@ -390,7 +392,7 @@ export class Board extends ExtrudeSolid
let cparam = this.contourCurve.GetParamAtPoint2(cp);
if (cparam !== undefined)
{
let newDri = dridatas[Math.floor(cparam)];
let newDri = highDrills[Math.floor(cparam)];
br._BoardProcessOption.highDrill[i] = newDri ?? br._BoardProcessOption.drillType;
}
else
@ -781,12 +783,12 @@ export class Board extends ExtrudeSolid
else
{
if (this.isRect)
InitRectBoardHoleOption(this, TempRectHoleOption);
ParseBoardRectHoleType(this, TempRectHoleOption);
}
super.ContourCurve = cu;
if (this.isRect && TempRectHoleOption.up)
SetRectHighHole(this, TempRectHoleOption);
SetBrHighHoleTypeFromRectHoleType(this, TempRectHoleOption);
}
Explode()

@ -3,7 +3,7 @@ import { observable } from "mobx";
import { observer } from "mobx-react";
import * as React from 'react';
import { end } from "xaop";
import { IRectHoleOption } from "../../../Add-on/DrawDrilling/HoleUtils";
import { ParseBoardRectHoleType } from "../../../Add-on/DrawDrilling/HoleUtils";
import { EBoardKeyList } from "../../../Common/BoardKeyList";
import { CheckObjectType } from "../../../Common/CheckoutVaildValue";
import { BigFaceSelectOption, ComposingFaceSelectOption, LineTypeSelectOption } from "../../../Common/CommonSelectOption";
@ -16,7 +16,6 @@ import { userConfig } from "../../../Editor/UserConfig";
import { bbsEditorStore, TotalTabbarTitlesInfos } from "../../Store/BBSEditorStore";
import { BoardProcessOption, DrillType, LinesType } from "../../Store/BoardInterface";
import { TopPanelStore } from "../../Store/TopPanelStore";
import { InitRectBoardDrillOption } from "../Board/CommonBoardOption";
import { ToasterInput } from "../Toaster";
import { BBSHighDrillingComponent, BBSProcessGroupItem, BBSRemarksComponent, BBSSealingComponent, BBSSelectComponent } from "./BBSCommon";
import { ListItemSelectEventEmitter } from "./LookOverBoardInfos";
@ -298,12 +297,11 @@ export class BoardInfoList extends React.Component<IBoardInfoListProps, {}>
case "highDrill":
if (!br.IsSpecialShape)
{
let tempOption = {} as IRectHoleOption;
InitRectBoardDrillOption(br, tempOption);
opt.upDrill = tempOption.up;
opt.downDrill = tempOption.down;
opt.leftDrill = tempOption.left;
opt.rightDrill = tempOption.right;
let tempRectHoleType = ParseBoardRectHoleType(br);
opt.upDrill = tempRectHoleType.up;
opt.downDrill = tempRectHoleType.down;
opt.leftDrill = tempRectHoleType.left;
opt.rightDrill = tempRectHoleType.right;
}
break;
case "remarks":

@ -6,7 +6,7 @@ import * as React from 'react';
import { Rnd } from "react-rnd";
import AutoSizer from 'react-virtualized-auto-sizer';
import { begin, end } from "xaop";
import { IRectHoleOption } from "../../../Add-on/DrawDrilling/HoleUtils";
import { IBoardRectHoleType, ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType } from "../../../Add-on/DrawDrilling/HoleUtils";
import { ICountType, lookOverBoardInfosTool } from "../../../Add-on/LookOverBoardInfos/LookOverBoardInfosTool";
import { app } from "../../../ApplicationServices/Application";
import { arrayRemove } from "../../../Common/ArrayExt";
@ -39,7 +39,6 @@ import { EFindType } from "../../Store/BoardFindInterface";
import { ComposingType, FaceDirection, LinesType } from "../../Store/BoardInterface";
import { userConfigStore } from "../../Store/UserConfigStore";
import { BoardModalType } from "../Board/BoardModalType";
import { InitRectBoardDrillOption, SetRectHighDrill } from "../Board/CommonBoardOption";
import { GetCompoentObjectIdString } from "../ComponentObjectId";
import { ModalFooter, ModalHeader } from "../Modal/ModalContainer";
import { ModalState } from "../Modal/ModalInterface";
@ -432,7 +431,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
left: "",
right: "",
};
InitRectBoardDrillOption(b, opt);
ParseBoardRectHoleType(b, opt);
arr.push(
opt.up,
opt.down,
@ -656,15 +655,15 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
return boardList;
let brRes: Board[] = [];
const brTempOption: IRectHoleOption = {
const brTempOption: IBoardRectHoleType = {
up: "",
down: "",
left: "",
right: "",
};
InitRectBoardDrillOption(br, brTempOption);
ParseBoardRectHoleType(br, brTempOption);
const tempOption: IRectHoleOption = {
const tempOption: IBoardRectHoleType = {
up: "",
down: "",
left: "",
@ -701,7 +700,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
case "leftDrill":
for (let b of boardList)
{
InitRectBoardDrillOption(b, tempOption);
ParseBoardRectHoleType(b, tempOption);
if (tempOption.left === brTempOption.left)
brRes.push(b);
}
@ -709,7 +708,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
case "rightDrill":
for (let b of boardList)
{
InitRectBoardDrillOption(b, tempOption);
ParseBoardRectHoleType(b, tempOption);
if (tempOption.right === brTempOption.right)
brRes.push(b);
}
@ -717,7 +716,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
case "downDrill":
for (let b of boardList)
{
InitRectBoardDrillOption(b, tempOption);
ParseBoardRectHoleType(b, tempOption);
if (tempOption.down === brTempOption.down)
brRes.push(b);
}
@ -725,7 +724,7 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
case "upDrill":
for (let b of boardList)
{
InitRectBoardDrillOption(b, tempOption);
ParseBoardRectHoleType(b, tempOption);
if (tempOption.up === brTempOption.up)
brRes.push(b);
}
@ -798,9 +797,9 @@ export class LookOverBoardInfosModal extends React.Component<LookOverBoardInfosM
}
if (isChangehighdrill)
{
let option = {} as IRectHoleOption;
InitRectBoardDrillOption(originBoard, option);
SetRectHighDrill(originBoard, {
let option = {} as IBoardRectHoleType;
ParseBoardRectHoleType(originBoard, option);
SetBrHighHoleTypeFromRectHoleType(originBoard, {
left: opts.leftDrill ?? option.left,
right: opts.rightDrill ?? option.right,
up: opts.upDrill ?? option.up,

@ -2,7 +2,7 @@ import { Intent } from '@blueprintjs/core';
import { action, IObservableValue, observable, toJS } from 'mobx';
import * as React from 'react';
import { MathUtils } from 'three';
import { InitRectBoardHoleOption, IRectHoleOption, SetRectHighHole } from '../../../Add-on/DrawDrilling/HoleUtils';
import { IBoardRectHoleType, ParseBoardRectHoleType, SetBrHighHoleTypeFromRectHoleType } from '../../../Add-on/DrawDrilling/HoleUtils';
import { app } from '../../../ApplicationServices/Application';
import { CheckObjectType, CheckoutValid } from '../../../Common/CheckoutVaildValue';
import { DataAdapter } from '../../../Common/DataAdapter';
@ -24,7 +24,7 @@ export interface ICommonOptionProps
_ConfigOption?: SingleBoardOption;
_ProcessOption?: BoardProcessOption;
_GrooveOption?: IGrooveOption;
drillsOption?: IRectHoleOption;
drillsOption?: IBoardRectHoleType;
canDrawSpecial?: IObservableValue<boolean>;
canModeling?: IObservableValue<boolean>;
_IsSpecialBoard?: IObservableValue<boolean>;
@ -51,7 +51,7 @@ export function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>
grooveAddDepth: "",
knifeRadius: "",
});
public drillsOption: IRectHoleOption = observable({
public drillsOption: IBoardRectHoleType = observable({
up: "",
down: "",
left: "",
@ -170,14 +170,14 @@ export function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>
{
if (this.CurrentBoard)
{
InitRectBoardDrillOption(this.CurrentBoard, this.drillsOption);
ParseBoardRectHoleType(this.CurrentBoard, this.drillsOption);
}
});
public SetRectHighDrill = () =>
{
if (this.CurrentBoard)
{
SetRectHighDrill(this.CurrentBoard, this.drillsOption);
SetBrHighHoleTypeFromRectHoleType(this.CurrentBoard, this.drillsOption);
}
};
handleComfirmOption = () =>
@ -282,12 +282,3 @@ export function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>
};
}
export function InitRectBoardDrillOption(br: Board, option: IRectHoleOption)
{
InitRectBoardHoleOption(br, option);
}
export function SetRectHighDrill(br: Board, option: IRectHoleOption)
{
SetRectHighHole(br, option);
};

@ -3,6 +3,7 @@ import { toJS } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
import * as xaop from 'xaop';
import { ParseBoardRectHoleType } from '../../../Add-on/DrawDrilling/HoleUtils';
import { app } from '../../../ApplicationServices/Application';
import { EBoardKeyList } from '../../../Common/BoardKeyList';
import { CheckObjectType } from '../../../Common/CheckoutVaildValue';
@ -22,7 +23,6 @@ import { ToasterInput, ToasterValueError } from '../Toaster';
import { AutoCutCheckbox, Notes } from './BoardCommon';
import { MatColorCom, SealDrillCom } from './BoardFindCommon';
import { BoardModalType } from "./BoardModalType";
import { InitRectBoardDrillOption } from './CommonBoardOption';
import { Config_ModalType } from './UserConfig';
export interface IUpdateBoardInfoModalProps
@ -409,7 +409,7 @@ export class UpdateBoardInfoModal extends React.Component<IUpdateBoardInfoModalP
case "highDrill":
if (!br.IsSpecialShape && brOption.highDrill.length === 4)
{
InitRectBoardDrillOption(br, rectDrill);
ParseBoardRectHoleType(br, rectDrill);
option.highDrill = [rectDrill.down, rectDrill.right, rectDrill.up, rectDrill.left];
}
break;

Loading…
Cancel
Save