SMT打样了一块板子,上面的有好几片不能贴的密脚器件,需要拿回来自己装。

本人手比较残,总是确定不好上锡量,决定搞一块钢网来刷未贴装的器件,然后用风枪吹。

于是做了个SMT打样加钢网手工贴装的试验板。

SMT打样的板子已经贴了一些器件,做钢网要贴合得好,必须在这些已经贴装的器件上开孔。

器件在画封装的时候都会做一个边界层,可以用来检测是否干涉。

在KiCad中这一层叫Courtyard,我把已经贴装的器件的边界层复制到Paste层,然后再用合并了边界层的Paste层去做钢网,这样已经贴装的器在钢网上就是一个和它边界一样大的孔。

下钢网单的时候只能单独下,因为已经SMT的PCB订单不能再下钢网了。下单的时候备注中说明完全按照Gerber文件做,不做任何调整补偿。不过审核小姐姐不放心,还是电话确认了一下。

做出来效果如下:


已经贴了部分器件的板子



已贴器件开边界孔的钢网



由于已经贴了一些器件,钢网上的孔和这些器件配合,正好能固定钢网不乱移动。

钢网和已经SMT的板子合体



刮锡膏的时候要小心一些,特别是左下角那个晶振,刮中间芯片的锡膏就比较随意了


KiCAD中把边界层复制到Paste层的Python脚本代码


def CopyModuleCourtyard(module, brd = None, layer = pcbnew.F_Paste):
    ''' Copy module courtyard to the destination layer
    '''
    if not brd:
        brd = pcbnew.GetBoard()
    poly = module.GetPolyCourtyardFront()
    dw = pcbnew.DRAWSEGMENT()
    dw.SetShape(pcbnew.S_POLYGON)
    dw.SetLayer(layer)
    dw.SetPolyShape(poly)
    brd.Add(dw)
    
def CopyCourtyard(refs = None, brd = None, layer = pcbnew.F_Paste):
    ''' Copy board modules courtyard to the destination layer
    '''
    if not brd:
        brd = pcbnew.GetBoard()
    if not refs:
        for m in brd.GetModules():
            if m.GetReference().find('J') == -1:
                CopyModuleCourtyard(m, brd, layer)
    else:
        for ref in MakeRefs(refs):
            m = brd.FindModuleByReference(ref)
            if m:
                CopyModuleCourtyard(m, brd, layer)

    pcbnew.Refresh()





扫码关注“嘉立创SMT”公众号,了解更多行业干货


#嘉立创SMT# #原立创社区精华帖#

#嘉立创SMT#
#原立创社区精华帖#
嘉立创SMT

还没有评论,抢个沙发!