分类: KiCad
KiCAD的Courtyard层如何使用?
“ 使用Allegro的小伙伴应该很清楚Courtyard层的用法,但使用Altium Designer的小伙伴可能对Courtyard层完全没有概念。Courtyard层到底是什么?在KiCad中如何使用?”。
或者执行“封装检查”报错“没有定义外框”英文 “Footprint has no courtyard defined”,那这个报错的含义是什么?

Courtyard是指装配或其他功能所需的物理元件周围的区域。该区域内不应放置其他元件。如果元件之间的距离太近,组装可能会很困难或是不可能。
在讨论装配时,需要的区域取决于装配方式(自动或手动)以及其他可能的细节。没有一个绝对正确的区域、形状或Courtyard的尺寸可以保证无问题的装配,同时又是最优的(小)尺寸,可以密集的放置。需要在“方便装配”与“装配区域尽可能小”之间取得妥协。
作为一个粗略的指导,KiCad可以检查组件是否太靠近,即检查Courtyard的碰撞情况,也就是检查重叠的Courtyard区域。Courtyard区域必须是一个封闭的形状。该形状以图形方式绘制在F.Courtyard或B.Courtyard层上。要求与Edge.Cuts 板框层完全相同:每条线必须在下一条开始的地方结束,它们不能交叉,最后一条必须在第一条开始的地方结束。除了这个封闭的形状之外,该层的封装中不能有其他东西。
Courtyard通常用一个长方形表示。
如果一个绘制Courtyard时不遵守这些规则,或者Courtyard存在其他问题,DRC会报错:


第一个错误表示Courtyard图形不封闭;第二个错误表示Courtyard自相交;第三个错误表示两个元件的Courtyard重叠。
违规的严重度可以在“电路板设置”中更改:

如果你设计或修改你自己的封装,由于没有任何硬性规定可以遵循,你可以画一个“足够好”的Courtyard来满足你的目的。如果你想对此进行优化,则需要知道装配过程的限制以及该元件与周围部件之间的相互作用。例如:想象一个很高的元件和一个很矮的元件并排放在一起:高的可能很容易放置,但高的放置完成后,再装配矮的元件可能会有问题,即使Courtyard本身估计足够大。
需要在元件周围留出足够的制造空间。如果需要更严格的设计,需要根据具体情况决定一些Courtyard是否可以与其他Courtyard重叠。DRC中两个组件之间的违规行为可以被排除或忽略。
请注意,虽然从逻辑上讲,在有理想Courtyard的理想情况下,每个元件只需要其周围由自己的Courtyard形成的空间,但重叠的Courtyard是允许的。DRC会检查这种重叠。然而,尽管可以允许两个元件的Courtyard重叠,但这种重叠应该排除一个元件的焊盘,或者元件轮廓(通常是在Fab层上绘制),与另一个元件的Courtyard重叠的情况。
在现实世界中,现代的自动装配过程可以做到相当密集的元件放置。例如,对于0402元件,铜的间隙限制了放置,而不是KiCad官方封装所建议的Courtyard。
参考链接
解决OpenSCAD导出的WRL格式文件不正确的问题
前置条件
- macOS Sequoia (15.2)
- MacBook Pro 2023-Apple M2 Pro (4能效核、8性能核、32GB内存、2TB磁盘)
- OpenSCAD 2025.02.03 (或更高版本)
- FreeCAD 1.0.0 (或更高版本)
- KiCad 8.0.8 (或更高版本)
- MeshLab 2023.12 (或更高版本)
- Wings 3D 2.4.1 (或更高版本)
问题描述
在文章 KiCad-V8.0.8 制作收音机中周(中频变压器)封装 中,我们讨论了如何借助 OpenSCAD 2024.12.13 创建 KiCAD 需要的器件 3D 模型 的过程。
接下来,由于 PCB 板大小的限制,我们需要对部分电阻进行垂直安装,以节约 PCB 面积。可是 KiCAD 自带的电阻 3D模型 都是水平放置的,没有相关的垂直放置模型。这样就迫使我们必须创建电阻的自定义3D模型。
于是我们通过借助 NopSCADlib 绘制电阻的垂直封装,具体代码如下:
|
1 2 3 4 |
// 直插电阻 include <NopSCADlib/lib.scad> ax_res(res1_2, 20000, 1, inch(0.2)); |
渲染效果如下图:
问题现象
当我们使用 FreeCAD 导入这个模型的时候,会发生如下报错:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
23:07:20 opening /var/folders/z8/_cvsdvbd4x51vm4szw5xkw0w0000gn/T/fc-33837-764042-000048.dxf... 23:07:20 drawing 1 polylines... 23:07:20 skipping texts... 23:07:20 skipping dimensions... 23:07:20 skipping points... 23:07:20 skipping leaders... 23:07:20 skipping hatches... 23:07:20 skipping *blocks... 23:07:20 done processing 23:07:20 successfully imported /var/folders/z8/_cvsdvbd4x51vm4szw5xkw0w0000gn/T/fc-33837-764042-000048.dxf 23:07:20 <Exception> makeOffset2D: offset result has no wires. 23:07:20 Offset2D001: makeOffset2D: offset result has no wires. 23:07:20 <Exception> makeOffset2D: offset result has no wires. 23:07:20 Recompute failed : Offset2D001 23:07:20 pyException: Traceback (most recent call last): File "<string>", line 2, in <module> File "/Applications/FreeCAD.app/Contents/Resources/lib/python3.11/site-packages/freecad/module_io.py", line 16, in OpenInsertObject getattr(importerModule, importMethod)(objectPath, *importArgs, **importKwargs) File "/Applications/FreeCAD.app/Contents/Resources/Mod/OpenSCAD/importCSG.py", line 120, in open processcsg(tmpfile) File "/Applications/FreeCAD.app/Contents/Resources/Mod/OpenSCAD/importCSG.py", line 178, in processcsg result = parser.parse(f.read()) ^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/FreeCAD.app/Contents/Resources/lib/python3.11/site-packages/ply/yacc.py", line 333, in parse return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/FreeCAD.app/Contents/Resources/lib/python3.11/site-packages/ply/yacc.py", line 1120, in parseopt_notrack p.callable(pslice) File "/Applications/FreeCAD.app/Contents/Resources/Mod/OpenSCAD/importCSG.py", line 457, in p_offset_action if subobj.Shape.Volume == 0 : ^^^^^^^^^^^^^^^^^^^ <class 'RuntimeError'>: shape is invalid |
KiCad-V8.0.8 制作收音机中周(中频变压器)封装
KiCad封装/元件库(footprint)
在使用KiCAD的时候,如果官方自带的封装库(footprint)缺少元器件的封装,我们可以在一些第三方库中查找。
In addition to the official KiCad libraries, there are other, third party sources for KiCad library packages.
While the following links may be useful sources of library packages, they are not maintained or endorsed by the KiCad project.
Digi-Key
Digi-Key maintains an atomic parts library for KiCad on their GitHub page. These libraries are licensed under an agreement similar to the official libraries.
Octopart
Octopart provides individual KiCad symbols and footprints for many components in their extensive library of components.
SparkFun
SparkFun Electronics provide KiCad library files for many of their products on their GitHub page. These libraries are based on the SparkFun Eagle libraries.
SnapEDA
SnapEDA provides KiCad symbol and footprint libraries for their customers. The libraries are freely available and can be found on their KiCad library page. The library license can be found on their terms of service page.
PCB Libraries
PCB Libraries offers their Professional Edition PCB Footprint Expert product to KiCad users for no cost. Instructions for setting up the Professional Edition license key are available in their documentation.
嘉立创/立创商城KiCad元件库
https://github.com/xtoolbox/lc_kicad_lib
参考链接
解决KiCAD(系统macOS Big Sur)关联封装(Footprint)报错“No PCB footprint libraries are listed in the current footprint library table.”
最近在把macOS Big Sur系统上的KiCAD从5.x升级到6.x之后,新建的项目在进行关联封装操作的时候,报错
|
1 |
No PCB footprint libraries are listed in the current footprint library table. |
具体如下图:

造成这个问题的原因是KiCAD 6.x版本的全局封装库默认存储位置发生了变动,从低版本升级上来,还是会从以前的配置文件中读取原来配置的路径信息,导致找不到新版本的全局封装库路径。
解决方法是删除低版本配置的封装库相关的配置信息即可(删除之前,先关闭KiCAD软件,否则删除无效)。
macOS系统:
|
1 |
$ rm -rf ~/Library/Preferences/kicad |
Windows系统:
|
1 |
$ del C:\Users\ …\AppData\Roaming\kicad |
Linux系统:
|
1 |
$ rm -rf ~/.config/kicad |
完成后,重启KiCAD软件即可。
参考链接
KICAD TUTORIAL-Make Your First Printed Circuit Board
KICAD TUTORIAL-Make Your First Printed Circuit Board
ubuntu 16.04安装以及使用PCB设计软件KiCAD
|
1 2 3 4 5 |
$ sudo add-apt-repository --yes ppa:js-reynaud/kicad-5 $ sudo apt update $ sudo apt install kicad |
