修复异形轮廓应用崩溃的问题

pull/298/head
ChenX 5 years ago
parent 7fdf7844f0
commit 5e7fcb9354

@ -81,23 +81,33 @@ export async function SelectExtrudeContour(selectInside = false)
let ens = ssRes.SelectSet.SelectEntityList as ExtureContourCurve[];
let en = ens[0];
if (en instanceof Curve && (selectInside || !en.IsClose))
if (en instanceof Curve)
{
let cus = app.m_Viewer.VisibleEntitys.filter(e => e instanceof Curve) as Curve[];
if (selectInside || !en.IsClose)
{
let cus = app.m_Viewer.VisibleEntitys.filter(e => e instanceof Curve) as Curve[];
let cuGroups = curveLinkGroup(cus);
let cuGroups = curveLinkGroup(cus);
for (let g of cuGroups)
{
if (g.includes(en))
for (let g of cuGroups)
{
let pl = Contour.Combine(g, false) as Polyline;
arrayRemove(cuGroups, g);
return { contour: pl, gourp: cuGroups, useCurves: g };
if (g.includes(en))
{
let pl = Contour.Combine(g, false) as Polyline;
arrayRemove(cuGroups, g);
return { contour: pl, gourp: cuGroups, useCurves: g };
}
}
//不能选到合适的曲线.
return {};
}
//isClose = true;
return { contour: en, useCurves: [en] };
}
else return { contour: en };
return { contour: en };
}
/**

@ -18,7 +18,11 @@ export class DrawSpecialShapedBoardByContour implements Command
let targetBoards = brRes.SelectSet.SelectEntityList as Board[];
let { contour, useCurves } = await SelectExtrudeContour(false);
if (!contour)
{
console.log("未选择到闭合的轮廓!");
return;
}
let keyWord = await app.m_Editor.GetKeyWords({
Msg: "不改变板件大小:",
@ -29,7 +33,8 @@ export class DrawSpecialShapedBoardByContour implements Command
BoardApplyContour(contour, targetBoards, keyWord.StringResult === "Y");
//删除被应用的轮廓
for (let c of useCurves)
c.Erase();
if (useCurves)
for (let c of useCurves)
c.Erase();
}
}

Loading…
Cancel
Save