功能:查找指定刀半径的板,FindBoardModelingKnife

fix_handle_props
ChenX 4 years ago
parent e2dfb9d575
commit 3cd17b8d18

@ -0,0 +1,35 @@
import { app } from "../ApplicationServices/Application";
import { Board } from "../DatabaseServices/Entity/Board";
import { Command } from "../Editor/CommandMachine";
import { PromptStatus } from "../Editor/PromptResult";
import { equaln } from "../Geometry/GeUtils";
export class Command_FindBoardModelingKnife implements Command
{
async exec()
{
let knifRadiusRes = await app.Editor.GetDistance({ Msg: "输入要查找的刀半径:" });
if (knifRadiusRes.Status !== PromptStatus.OK) return;
let knifeRadius = knifRadiusRes.Distance;
let brRes = await app.Editor.GetSelection({
Msg: "选择搜索的板:",
Filter: {
filterFunction: (obj, ent) =>
{
if (ent instanceof Board && ent.Grooves.length > 0)
{
if (ent.Grooves.length && ent.Grooves.some(g => equaln(g.KnifeRadius, knifeRadius, 0.1)))
return true;
if (ent.RelevanceKnifs.length && ent.RelevanceKnifs.some(g => g.Object && equaln((<Board>g.Object).KnifeRadius, knifeRadius, 0.1)))
return true;
}
return false;
}
},
});
}
}

@ -47,6 +47,8 @@ import { DrawSpecialShapedBoardByContour } from "../Add-on/DrawBoard/DrawSpecial
import { DrawTopBottomBoard } from "../Add-on/DrawBoard/DrawTopBottomBoard";
import { DrawVerticalBoard } from "../Add-on/DrawBoard/DrawVerticalBoard";
import { EditorBoardTemplate } from '../Add-on/DrawBoard/EditorBoardTempate';
import { FindMaxOrMinSizeBoard } from "../Add-on/DrawBoard/FindMaxSizeBoard";
import { SetHoleNoneType } from "../Add-on/DrawBoard/SetHoleType";
import { DrawCircle } from "../Add-on/DrawCircle";
import { DrawCylineder } from "../Add-on/DrawCylinder";
import { Command_AutoDimBrs } from "../Add-on/DrawDim/AutoDimBrs";
@ -104,6 +106,7 @@ import { Command_ExportSTL } from "../Add-on/Exports/ExportSTL";
import { Command_Extend } from "../Add-on/Extends";
import { Command_OpenHistory } from "../Add-on/File/OpenHistory";
import { CommandFillet } from "../Add-on/Fillet";
import { Command_FindBoardModelingKnife } from "../Add-on/FindBoardModelingKnife";
import { Command_Group, Command_UnGroup } from "../Add-on/Group";
import { Command_HideSelected, Command_HideUnselected, Command_ShowAll, Command_SwitchDoor, SelectAll } from "../Add-on/HideSelected";
import { Command_Insert } from "../Add-on/Insert";
@ -200,8 +203,6 @@ import { BuyMaterial } from './../Add-on/BuyMaterial';
import { Interfere } from './../Add-on/interfere';
import { ShowKinfeManageModal } from './../Add-on/showModal/ShowKnifeManageModal';
import { commandMachine } from './CommandMachine';
import { SetHoleNoneType } from "../Add-on/DrawBoard/SetHoleType";
import { FindMaxOrMinSizeBoard } from "../Add-on/DrawBoard/FindMaxSizeBoard";
export function registerCommand()
{
@ -565,6 +566,7 @@ export function registerCommand()
commandMachine.RegisterCommand(CommandNames.SetHoleNoneType, new SetHoleNoneType());
commandMachine.RegisterCommand(CommandNames.FindMaxSizeBoard, new FindMaxOrMinSizeBoard());
commandMachine.RegisterCommand(CommandNames.FindMinSizeBoard, new FindMaxOrMinSizeBoard(false));
commandMachine.RegisterCommand("FindBoardModelingKnife", new Command_FindBoardModelingKnife());
}
export async function RegistCustomCommand()

Loading…
Cancel
Save