!1197 修复:切割报错,优化:造型,干涉检查

pull/1197/MERGE
ZoeLeeFZ 4 years ago committed by ChenX
parent 8d96d73f3b
commit c159c7d8e6

@ -22,7 +22,24 @@ export class CheckModeling implements Command
if (brRes.Status === PromptStatus.Cancel) return; if (brRes.Status === PromptStatus.Cancel) return;
let brs = brRes.SelectSet.SelectEntityList as Board[]; let brs: Board[] = [];
for (let en of brRes.SelectSet.SelectEntityList as Board[])
{
let bs = en.SplitBoards;
for (let b of bs)
{
if (b.__OriginalEnt__)
{
for (let [k, ds] of en.DrillList)
b.AppendDrillList(k, ds);
b.AppendNails(en.LayerNails);
}
}
brs.push(...bs);
}
let feedingTool = FeedingToolPath.GetInstance() as FeedingToolPath; let feedingTool = FeedingToolPath.GetInstance() as FeedingToolPath;
let errGrooves: ExtrudeSolid[] = []; let errGrooves: ExtrudeSolid[] = [];

@ -813,13 +813,13 @@ export function PolylineSpliteRect(outline: Polyline): Polyline[]
for (let c of cus) for (let c of cus)
{ {
if (c instanceof Arc) return [outline];
let derv = c.GetFistDeriv(0).normalize(); let derv = c.GetFistDeriv(0).normalize();
if (isParallelTo(derv, YAxis, PolylineSpliteRectFuzz)) if (isParallelTo(derv, YAxis, PolylineSpliteRectFuzz))
yCus.push(c); yCus.push(c);
else else
if (!isParallelTo(derv, XAxis, PolylineSpliteRectFuzz) || c instanceof Arc) if (!isParallelTo(derv, XAxis, PolylineSpliteRectFuzz))
{ {
console.log(derv.clone().cross(XAxis).lengthSq());
return [outline]; return [outline];
} }
} }
@ -852,7 +852,7 @@ export function PolylineSpliteRect(outline: Polyline): Polyline[]
let ys: number[] = []; let ys: number[] = [];
for (let par of pars) for (let par of pars)
{ {
let c = outline.GetCurveAtIndex(par); let c = outline.GetCurveAtParam(par);
let derv = c.GetFistDeriv(0).normalize(); let derv = c.GetFistDeriv(0).normalize();
if (isParallelTo(derv, XAxis, PolylineSpliteRectFuzz)) if (isParallelTo(derv, XAxis, PolylineSpliteRectFuzz))
{ {

@ -31,7 +31,9 @@ export class CheckInterfereTool
{ {
if (en instanceof HardwareCompositeEntity) if (en instanceof HardwareCompositeEntity)
{ {
let es = en.GetAllEntity(false, e => e instanceof ExtrudeHole || e instanceof ExtrudeSolid || e instanceof SweepSolid) as Solid3D[]; if (!en.HardwareOption.isHole) continue;
let es = en.GetAllEntity(true, e => (e instanceof ExtrudeHole && e.isHole) || e instanceof ExtrudeSolid || e instanceof SweepSolid) as Solid3D[];
es.forEach(e => e.TempData = { Id: en.Id }); es.forEach(e => e.TempData = { Id: en.Id });
ens.push(...es); ens.push(...es);
} }

@ -361,6 +361,9 @@ export class FeedingToolPath extends Singleton
for (let m of [...modeling, ...sideModeling]) for (let m of [...modeling, ...sideModeling])
{ {
let cu = m.shape.Outline.Curve;
if (cu instanceof Circle && cu.Radius < userConfig.chaidanOption.modeling2HoleRad + 1e-6)
continue;
if (userConfig.chaidanOption.useDefaultRad) if (userConfig.chaidanOption.useDefaultRad)
m.knifeRadius = userConfig.chaidanOption.radius; m.knifeRadius = userConfig.chaidanOption.radius;
let cus = this.GetModelFeedPath(br, m); let cus = this.GetModelFeedPath(br, m);

Loading…
Cancel
Save