mirror of https://gitee.com/cf-fz/WebCAD.git
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;
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in new issue