一.何为短槽
短槽通常定义:槽长小于2倍槽宽 如:槽长1.8mm,槽宽1.0mm
二.为什么要加短槽加引孔呢
短槽孔在钻孔时孔易偏斜导致槽长偏短, 当槽长宽比越小,则受力越不均匀,在钻第2个孔时,钻头两边受力不均匀再加上是顺时针旋转,会导至第2个孔往逆时针方向偏转且变短(如下图)
短槽偏位问题如何解决呢,在我们PCB行业最佳作法是在钻槽孔之前,先在槽孔两端2个小孔(如下图).
PCB行业已有很多短槽加工方法了
具体方法请链接:PCB钻孔--超短坑槽的加工方法
三.加短槽引孔实现原理
求解思路
1.已知短槽宽1.0mm与短槽2点坐标
2.求出槽长=槽中心距0.8 + 槽宽1.0=1.8mm
3.求出引孔大小=(1.8-0.2)/2 =0.8mm
(0.2为2个引孔间距, 孔径向下取整为钻刀大小)
4.求出短槽的线拉伸距离=
(槽长1.8- 引孔大小0.8mm)-槽中心距0.8mm=0.2mm
5.求引孔坐标,在短槽2点坐标为一条线,在的基础上拉伸0.2mm即可,每边各拉0.1mm,即可得到引孔坐标(下面代码有提供线拉伸函数)
四.C#简易代码实现:
1.加短槽代码
#region 短槽加引孔 ydkdrl List<gL> SlotList = glayer.Llist.Where(tt => ((calc2.p2p_di(tt.ps, tt.pe) + tt.width * 0.001) / (tt.width * 0.001)) < 2).ToList(); if (SlotList.Count() > 0) { if (!g.Check_Layer_Exist("ydkdrl")) g.CreateLayer("ydkdrl"); g.SetAffectedLayer("ydkdrl"); for (int i = 0; i < SlotList.Count; i++) { double HoleSize = ((int)(Math.Floor(((calc2.p2p_di(SlotList[i].ps, SlotList[i].pe) * 1000 + SlotList[i].width)) * 0.5 / 50)) * 50); SlotList[i] = calc2.l_extend(SlotList[i], (SlotList[i].width - HoleSize) * 0.001); addCOM.pad(SlotList[i].ps, HoleSize); addCOM.pad(SlotList[i].pe, HoleSize); } g.SetAffectedLayer(""); } #endregion