搜索
bottom↓
回复: 15

关于KiCAD画PCB操作的相关问题请教

[复制链接]

出0入0汤圆

发表于 2018-5-23 09:14:49 | 显示全部楼层 |阅读模式
最近在尝试用KiCAD软件来画板子,遇到一些问题想请教老司机该怎么操作:
1. 在元件布局时多个元件对齐是怎么操作的。
2. 测量距离有没有什么命令操作,目前我只能通过看坐标来自己计算。
3. 我在画PCB时边画边在修改原理图,发现通过网络表不能使原理图跟PCB一致。比如我先已经导入网络表了,现在在原理图总把一些元件删除或改成其他名称了,直接通过网络表导入后发现已经被删除的元件还在,而且网络都没有变。另外如果我想把网络全部删除掉有没有什么命令操作。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2018-5-23 19:20:11 来自手机 | 显示全部楼层
开源的免费的用起来好蛋疼,ad现在公司不准用,有点晕。

出0入0汤圆

发表于 2018-5-24 07:36:14 | 显示全部楼层
1.写脚本
2.放置->尺寸标注
3.导入的时候交换封装选删除

出0入0汤圆

 楼主| 发表于 2018-5-24 08:36:35 | 显示全部楼层
笑笑我笑了 发表于 2018-5-24 07:36
1.写脚本
2.放置->尺寸标注
3.导入的时候交换封装选删除

多谢!请问哪里有相关的脚本例程下载?

出0入0汤圆

 楼主| 发表于 2018-5-24 08:37:32 | 显示全部楼层
ZXL1969 发表于 2018-5-23 19:20
开源的免费的用起来好蛋疼,ad现在公司不准用,有点晕。

没办法,有得必有失,所以现在尝试一下嘛

出0入0汤圆

发表于 2018-5-24 09:16:57 | 显示全部楼层
hy317 发表于 2018-5-24 08:36
多谢!请问哪里有相关的脚本例程下载?

以前画的一个64路DO的板子的对齐脚本你参考下
  1. # -*- coding: utf-8> -*-

  2. from pcbnew import *

  3. pcb = LoadBoard('ioexpend.kicad_pcb');

  4. for module in pcb.GetModules():
  5.     if module.GetReference() == 'P1001':
  6.         P301PosY = module.GetPosition().y;
  7.         P301PosX = module.GetPosition().x;

  8. for module in pcb.GetModules():
  9.     if module.GetReference() == 'P701':
  10.         P1001PosY = module.GetPosition().y;
  11.         P1001PosX = module.GetPosition().x;

  12. #R10**
  13. refList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10',
  14.         '11', '12', '13', '14', '15', '16', '17', '18', '19','20', '21', '22', '23', '24'];

  15. for s in refList:
  16.     refString = 'R10' + s
  17.     realString= 'R7' + s;

  18.     for module in pcb.GetModules():
  19.         if module.GetReference() == refString:
  20.             PosY = module.GetPosition().y;
  21.             PosX = module.GetPosition().x;
  22.             
  23.     print realString

  24.     for module in pcb.GetModules():
  25.         if module.GetReference() == realString:
  26.             deltaPosX = PosX - P301PosX;
  27.             realPosX = P1001PosX + deltaPosX;
  28.             module.SetPosition(wxPoint(realPosX, PosY));

  29. #D1001-D1008
  30. refList = ['01', '02', '03', '04', '05', '06', '07', '08'];

  31. for s in refList:
  32.     refString = 'D10' + s;
  33.     realString= 'D7' + s;

  34.     for module in pcb.GetModules():
  35.         if module.GetReference() == refString:
  36.             PosY = module.GetPosition().y;
  37.             PosX = module.GetPosition().x;
  38.             
  39.     print realString

  40.     for module in pcb.GetModules():
  41.         if module.GetReference() == realString:
  42.             deltaPosX = PosX - P301PosX;
  43.             realPosX = P1001PosX + deltaPosX;
  44.             module.SetPosition(wxPoint(realPosX, PosY));

  45. refList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11'];

  46. for s in refList:
  47.     refString = 'U10' + s
  48.     realString= 'U7' + s;

  49.     for module in pcb.GetModules():
  50.         if module.GetReference() == refString:
  51.             PosY = module.GetPosition().y;
  52.             PosX = module.GetPosition().x;
  53.             
  54.     print realString

  55.     for module in pcb.GetModules():
  56.         if module.GetReference() == realString:
  57.             deltaPosX = PosX - P301PosX;
  58.             realPosX = P1001PosX + deltaPosX;
  59.             module.SetPosition(wxPoint(realPosX, PosY));

  60. #保存
  61. SaveBoard('ioexpend.kicad_pcb', pcb);
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-5-24 09:31:48 | 显示全部楼层
不知道你用的是啥版本,我用5.0版,自己编译的版本

1.按shift选中需要对齐的元件,右键菜单里就有对齐选项
2.a)有测量工具啊。b)把鼠标放到起始位置,按空格键,底部状态栏里的dx/dy就会清零,然后移动鼠标就可以看到鼠标当前位置相对起始位置的距离
3.a)导入网络表的时候有些选项,比如删除/保留多余的封装,不知你选了没有。b)现在pcbnew跟eeschema都有"update pcb from schematic"功能

出0入0汤圆

 楼主| 发表于 2018-5-24 11:53:13 | 显示全部楼层
笑笑我笑了 发表于 2018-5-24 09:16
以前画的一个64路DO的板子的对齐脚本你参考下

非常感谢!!

出0入0汤圆

 楼主| 发表于 2018-5-24 11:54:32 | 显示全部楼层
max 发表于 2018-5-24 09:31
不知道你用的是啥版本,我用5.0版,自己编译的版本

1.按shift选中需要对齐的元件,右键菜单里就有对齐选项 ...

非常感谢!
我就是在官网下的4.07版

出0入0汤圆

发表于 2018-5-24 19:13:20 来自手机 | 显示全部楼层
hy317 发表于 2018-5-24 08:37
没办法,有得必有失,所以现在尝试一下嘛

以前的Protel 99 SE格式文能转为kicad文件吗?能转的话就好了。

出0入0汤圆

发表于 2018-5-24 19:55:19 来自手机 | 显示全部楼层
ZXL1969 发表于 2018-5-24 19:13
以前的Protel 99 SE格式文能转为kicad文件吗?能转的话就好了。

试试这个
https://github.com/thesourcerer8/altium2kicad

出0入0汤圆

 楼主| 发表于 2018-5-24 20:01:01 | 显示全部楼层
max 发表于 2018-5-24 19:55
试试这个
https://github.com/thesourcerer8/altium2kicad

谢谢!!

出0入0汤圆

发表于 2018-5-25 07:30:55 来自手机 | 显示全部楼层
max 发表于 2018-5-24 19:55
试试这个
https://github.com/thesourcerer8/altium2kicad

太谢谢了,有kicad转ad的吗?

出0入0汤圆

发表于 2018-5-25 08:36:37 | 显示全部楼层
ZXL1969 发表于 2018-5-25 07:30
太谢谢了,有kicad转ad的吗?

这个就不大清楚了

出0入0汤圆

发表于 2018-5-27 11:01:55 来自手机 | 显示全部楼层
静下心来玩了一下,发现这东西好傻比,其中圆的属性好久都没搞懂,上面x中心y中心是圆的中心坐标,下面x y搞不明白,输入数字都可改变圆半径,而圆半径这一重要属性没地方输入!!!

出0入0汤圆

 楼主| 发表于 2018-5-28 08:24:31 | 显示全部楼层
ZXL1969 发表于 2018-5-27 11:01
静下心来玩了一下,发现这东西好傻比,其中圆的属性好久都没搞懂,上面x中心y中心是圆的中心坐标,下面x y ...

后面那个应该是圆上一个点的坐标
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 16:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表