From cdb94d4e007ab3718fd0dfecc443e122f6fe5753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Sat, 5 Aug 2023 08:29:04 +0000 Subject: [PATCH] =?UTF-8?q?!2345=20=E4=BC=98=E5=8C=96:=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=B2=A1=E7=A9=BA=E6=9D=BF=E4=BB=B6,=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E5=AD=94=E5=9C=A8=E6=9D=BF=E8=BE=B9=E7=BC=98=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E8=AF=AF=E5=B7=AE=E5=92=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Production/Product.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Production/Product.ts b/src/Production/Product.ts index 368d24147..509de20fa 100644 --- a/src/Production/Product.ts +++ b/src/Production/Product.ts @@ -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);