qwe2231695 发表于 2024-1-12 14:22:34

分享:可以一键设置位号位置

有的时候需要打印出位号图PDF,要手动摆放位号到原件中间。今天发现可以一键设置,这个功能很不错。

使用方法: 布局菜单 属性位置

keshipt 发表于 2024-1-12 14:24:06

这个功能不错

hero245 发表于 2024-1-12 14:34:48

这个很好啊,可以给SMT出位号图,之前都 要花个十几二十分钟 去整理。

lb0857 发表于 2024-3-1 21:35:43

专业版?   

qwe2231695 发表于 2024-3-2 00:40:49

lb0857 发表于 2024-3-1 21:35
专业版?
(引用自4楼)

是的,基本没人用标准板了吧

dukelec 发表于 2024-3-2 09:10:32

本帖最后由 dukelec 于 2024-3-2 11:28 编辑

我用 kicad 出 bom 资料也是这样操作,不过我会让位号标记和器件方向保持一致,所有芯片正着看位号的时候,左上为一脚
这样和贴片厂沟通起来就方便很多,不容易出错



有时间就用 gimp 反色处理一下,方便对方打印出来


用的是自己写的小脚本,以下内容保存到一个 py 文件,然后 kicad pcb 打开 python 终端,执行以下注释的第一条命令即可(旋转和居中)
另外字体大小、显示图层、以及确保不启用 keep upright 在 Edit -> Edit Text and Graphic Properties 工具中批量操作
做出来的 pcb 我一般是不展示位号,看起来干净清爽,而且可以减少画图工作量
kicad8 测试可用

# exec(open("/mnt/TF/company/dukelec/tips/pcb/reset_ref.py").read())

import pcbnew

board = pcbnew.GetBoard()
mods = board.GetFootprints()

for mod in mods:
    print("ref {}".format(mod.GetReference()))
    ref = mod.Reference()
    ref.SetPos(mod.GetPosition())
    if mod.GetLayerName() == 'F.Cu':
      ref.SetMirrored(False)
      ref.SetTextAngleDegrees(0)
    else:
      ref.SetMirrored(True)
      ref.SetTextAngleDegrees(180)

pcbnew.Refresh()

duxingkei 发表于 2024-3-2 11:48:27

dukelec 发表于 2024-3-2 09:10
我用 kicad 出 bom 资料也是这样操作,不过我会让位号标记和器件方向保持一致,所有芯片正着看位号的时候, ...
(引用自6楼)

大佬厉害了,建议分享出来,做成插件,就更多人用了;
下次画板,也试下

qwe2231695 发表于 2024-3-2 17:13:59

dukelec 发表于 2024-3-2 09:10
我用 kicad 出 bom 资料也是这样操作,不过我会让位号标记和器件方向保持一致,所有芯片正着看位号的时候, ...
(引用自6楼)

厉害 偷走了

dukelec 发表于 2024-4-11 15:57:28

qwe2231695 发表于 2024-3-2 17:13
厉害 偷走了
(引用自8楼)

更新一下,之前升级 kicad8,字符角度漏改了

# exec(open("/mnt/TF/company/dukelec/tips/pcb/reset_ref.py").read())

# 然后 kicad pcb 打开 python 终端,执行以上注释的第一条命令即可(旋转和居中)
# 另外字体大小、显示图层、以及确保不启用 keep upright 在 Edit -> Edit Text and Graphic Properties 工具中批量操作

import pcbnew

board = pcbnew.GetBoard()
mods = board.GetFootprints()

for mod in mods:
    print("ref {}".format(mod.GetReference()))
    ref = mod.Reference()
    ref.SetPos(mod.GetPosition())
    if mod.GetLayerName() == 'F.Cu':
      ref.SetMirrored(False)
      ref.SetTextAngleDegrees(mod.GetOrientationDegrees())
    else:
      ref.SetMirrored(False) # True
      ref.SetTextAngleDegrees(mod.GetOrientationDegrees() + 180)

pcbnew.Refresh()
页: [1]
查看完整版本: 分享:可以一键设置位号位置