hy317 发表于 2018-5-23 09:14:49

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

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

ZXL1969 发表于 2018-5-23 19:20:11

开源的免费的用起来好蛋疼,ad现在公司不准用,有点晕。

笑笑我笑了 发表于 2018-5-24 07:36:14

1.写脚本
2.放置->尺寸标注
3.导入的时候交换封装选删除

hy317 发表于 2018-5-24 08:36:35

笑笑我笑了 发表于 2018-5-24 07:36
1.写脚本
2.放置->尺寸标注
3.导入的时候交换封装选删除

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

hy317 发表于 2018-5-24 08:37:32

ZXL1969 发表于 2018-5-23 19:20
开源的免费的用起来好蛋疼,ad现在公司不准用,有点晕。

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

笑笑我笑了 发表于 2018-5-24 09:16:57

hy317 发表于 2018-5-24 08:36
多谢!请问哪里有相关的脚本例程下载?

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

from pcbnew import *

pcb = LoadBoard('ioexpend.kicad_pcb');

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

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

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

for s in refList:
    refString = 'R10' + s
    realString= 'R7' + s;

    for module in pcb.GetModules():
      if module.GetReference() == refString:
            PosY = module.GetPosition().y;
            PosX = module.GetPosition().x;
            
    print realString

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

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

for s in refList:
    refString = 'D10' + s;
    realString= 'D7' + s;

    for module in pcb.GetModules():
      if module.GetReference() == refString:
            PosY = module.GetPosition().y;
            PosX = module.GetPosition().x;
            
    print realString

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

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

for s in refList:
    refString = 'U10' + s
    realString= 'U7' + s;

    for module in pcb.GetModules():
      if module.GetReference() == refString:
            PosY = module.GetPosition().y;
            PosX = module.GetPosition().x;
            
    print realString

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

#保存
SaveBoard('ioexpend.kicad_pcb', pcb);

max 发表于 2018-5-24 09:31:48

不知道你用的是啥版本,我用5.0版,自己编译的版本

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

hy317 发表于 2018-5-24 11:53:13

笑笑我笑了 发表于 2018-5-24 09:16
以前画的一个64路DO的板子的对齐脚本你参考下

非常感谢!!

hy317 发表于 2018-5-24 11:54:32

max 发表于 2018-5-24 09:31
不知道你用的是啥版本,我用5.0版,自己编译的版本

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

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

ZXL1969 发表于 2018-5-24 19:13:20

hy317 发表于 2018-5-24 08:37
没办法,有得必有失,所以现在尝试一下嘛

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

max 发表于 2018-5-24 19:55:19

ZXL1969 发表于 2018-5-24 19:13
以前的Protel 99 SE格式文能转为kicad文件吗?能转的话就好了。

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

hy317 发表于 2018-5-24 20:01:01

max 发表于 2018-5-24 19:55
试试这个
https://github.com/thesourcerer8/altium2kicad

谢谢!!

ZXL1969 发表于 2018-5-25 07:30:55

max 发表于 2018-5-24 19:55
试试这个
https://github.com/thesourcerer8/altium2kicad

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

max 发表于 2018-5-25 08:36:37

ZXL1969 发表于 2018-5-25 07:30
太谢谢了,有kicad转ad的吗?

这个就不大清楚了

ZXL1969 发表于 2018-5-27 11:01:55

静下心来玩了一下,发现这东西好傻比,其中圆的属性好久都没搞懂,上面x中心y中心是圆的中心坐标,下面x y搞不明白,输入数字都可改变圆半径,而圆半径这一重要属性没地方输入!!!

hy317 发表于 2018-5-28 08:24:31

ZXL1969 发表于 2018-5-27 11:01
静下心来玩了一下,发现这东西好傻比,其中圆的属性好久都没搞懂,上面x中心y中心是圆的中心坐标,下面x y ...

后面那个应该是圆上一个点的坐标
页: [1]
查看完整版本: 关于KiCAD画PCB操作的相关问题请教