|
|
|
@ -4,7 +4,7 @@ import { Intent } from "../../Common/Toaster";
|
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
|
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
|
|
|
|
|
import { Command } from "../../Editor/CommandMachine";
|
|
|
|
|
import { PromptStatus } from "../../Editor/PromptResult";
|
|
|
|
|
import { PromptSsgetResult, PromptStatus } from "../../Editor/PromptResult";
|
|
|
|
|
import { CreateContour2 } from "../../Geometry/CreateContour2";
|
|
|
|
|
import { AppToaster } from "../../UI/Components/Toaster";
|
|
|
|
|
|
|
|
|
@ -12,11 +12,33 @@ export class FixIntersectSelfContour implements Command
|
|
|
|
|
{
|
|
|
|
|
async exec()
|
|
|
|
|
{
|
|
|
|
|
let brRes = await app.Editor.GetSelection({
|
|
|
|
|
let forceMode = false;
|
|
|
|
|
|
|
|
|
|
let brRes: PromptSsgetResult;
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
brRes = await app.Editor.GetSelection({
|
|
|
|
|
Msg: "选择板件",
|
|
|
|
|
Filter: { filterTypes: [Board] },
|
|
|
|
|
UseSelect: true,
|
|
|
|
|
KeyWordList: [{ key: "Q", msg: forceMode ? "关闭强制修正模式!" : "开启强制修正模式!" }]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (brRes.Status === PromptStatus.Keyword)
|
|
|
|
|
{
|
|
|
|
|
if (brRes.StringResult === "Q")
|
|
|
|
|
{
|
|
|
|
|
forceMode = !forceMode;
|
|
|
|
|
AppToaster.show({
|
|
|
|
|
message: `成功切换到${forceMode ? "强制修正" : "非强制修正"}模式`,
|
|
|
|
|
timeout: 5000,
|
|
|
|
|
intent: Intent.SUCCESS,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (brRes.Status === PromptStatus.Cancel) return;
|
|
|
|
|
|
|
|
|
@ -28,7 +50,7 @@ export class FixIntersectSelfContour implements Command
|
|
|
|
|
{
|
|
|
|
|
let contour = br.ContourCurve;
|
|
|
|
|
if (contour instanceof Polyline &&
|
|
|
|
|
(contour.TempData?.IntSelf || contour.IsIntersectSelf()))
|
|
|
|
|
(forceMode || contour.TempData?.IntSelf || contour.IsIntersectSelf()))
|
|
|
|
|
{
|
|
|
|
|
let newContor = CreateContour2(contour.Explode());
|
|
|
|
|
if (newContor)
|
|
|
|
|