!2345 优化:检查没空板件,不同孔在板边缘使用不同误差和提示

pull/2346/head
林三 1 year ago committed by ChenX
parent 192a441c1d
commit cdb94d4e00

@ -480,7 +480,7 @@ export namespace Production
for (let h of holes)
{
if (h instanceof ExtrudeHole)
ParseExtrudeHoles(h, br, offsetTanslation, data, sealedContour, true);
ParseExtrudeHoles(h, br, offsetTanslation, data, sealedContour, true, true);
else
ParseCylHoles(h as CylinderHole, br, offsetTanslation, data, sealedContour);
}
@ -701,8 +701,14 @@ export namespace Production
});
}
/**分析自定义圆柱排钻 */
function ParseExtrudeHoles(d: ExtrudeHole, br: Board, offsetTanslation: Vector3, data: IBoardHoleInfo, outline: ExtrudeContourCurve, isCheckGroove = false)
/**
*
* isRelativeHardware 使
* CanDrawHoleFuzz)//区间交集必须大于CanDrawHoleFuzz
* CanDrawHoleFuzz)//区间交集必须大于CanDrawHoleFuzz
*
*/
function ParseExtrudeHoles(d: ExtrudeHole, br: Board, offsetTanslation: Vector3, data: IBoardHoleInfo, outline: ExtrudeContourCurve, isCheckGroove = false, isRelativeHardware = false)
{
if (!d.isHole)
return;
@ -770,8 +776,8 @@ export namespace Production
if (sp.z > -cir.Radius
&& sp.z < br.Thickness + cir.Radius
&& Math.max(minX, 0) < (Math.min(br.Width, maxX) - CanDrawHoleFuzz)//区间交集必须大于CanDrawHoleFuzz
&& Math.max(minY, 0) < (Math.min(br.Height, maxY) - CanDrawHoleFuzz)//区间交集必须大于CanDrawHoleFuzz
&& Math.max(minX, 0) < ((Math.min(br.Width, maxX) + (isRelativeHardware ? -CanDrawHoleFuzz : 1e-6)))//区间交集必须大于CanDrawHoleFuzz
&& Math.max(minY, 0) < (Math.min(br.Height, maxY) + (isRelativeHardware ? -CanDrawHoleFuzz : 1e-6))//区间交集必须大于CanDrawHoleFuzz
)
{
sp.setZ(0);
@ -780,7 +786,7 @@ export namespace Production
let pt = outline.IntersectWith(line, 0)[0];
if (!pt)
{
InteractionLog([{ msg: "警告:" }, { msg: `板件${br.Name}`, entity: [br, d] }, { msg: "的排钻嵌在板件内部,已经跳过!" }], LogType.Warning);
InteractionLog([{ msg: "警告:" }, { msg: `板件${br.Name}`, entity: [br, d] }, { msg: `${isRelativeHardware ? "五金" : "排钻"}嵌在板件内部,已经跳过!` }], LogType.Warning);
return;
}
let position = pt.clone().setZ(oldZ);

Loading…
Cancel
Save