!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;
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 errGrooves: ExtrudeSolid[] = [];

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

@ -31,7 +31,9 @@ export class CheckInterfereTool
{
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 });
ens.push(...es);
}

@ -361,6 +361,9 @@ export class FeedingToolPath extends Singleton
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)
m.knifeRadius = userConfig.chaidanOption.radius;
let cus = this.GetModelFeedPath(br, m);

Loading…
Cancel
Save