ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

weee-symbol.zip 原理图符号库导入指南:解压、挂载与校验

weee-symbol.zip 原理图符号库导入指南:解压、挂载与校验

简介:WEEE 回收标志矢量图标资源包,面向电子产品设计、PCB Layout 与环保合规相关设计师,解决在包装、说明书、产品外壳或电路板丝印中正确放置 WEEE 回收符号的需求。压缩包共 3 个文件,约 380KB,包含 EPS 矢量源文件、PNG 位图以及一个 HTML 说明页,其中 EPS 可借助 Adobe Illustrator 等工具无损缩放编辑,适合印刷与高分辨率输出,PNG 便于快速预览和网页插入,HTML 提供基本使用说明。该标志源自欧盟 WEEE 指令,带交叉线垃圾桶图形,是电子产品制造商必须遵守的回收标识,也可用于指导用户对废弃设备进行分类回收。已有 770 人学习浏览,适合需要规范化标注回收标识的设计师。由于是矢量格式,可无损缩放,不仅能用于产品标签与说明书,也能进入 PCB 设计流程作为板面丝印标识,提醒用户按 WEEE 规定处理废弃设备。

1. weee-symbol.zip 是什么:解压就能用的原理图符号库

如果你画过带 WEEE 检测标识的硬件方案,大概率见过weee-symbol.zip这种命名方式的压缩包。它是 EDA 原理图符号库的资源包,常见于厂商参考设计或开源硬件项目里,解压后能看到.SchLib、.kicad_sym之类的库文件,装进 Altium Designer 或 KiCad 就能直接放置 WEEE 检测相关器件。它的核心价值,是把画原理图里最枯燥的两类劳动替你做了:一是符号形状和引脚定义,二是符号引脚到 PCB 封装焊盘的映射关系。适合每天和原理图、封装库打交道的硬件工程师,也适合做电子竞赛的学生,前提是你知道怎么拆包、导入和校验,而不是解压完就往项目里拖。

2. 拆包先别急着导入:文件构成、格式版本与引脚封装映射

这类 zip 往往来自厂商或开源项目维护者,里面文件乱七八糟,直接双击往 EDA 里塞,十有八九会翻车。我一般会先解压到独立目录,按扩展名归类,再判断能不能被当前的软件版本解析。这个动作花五分钟,能省掉后面一晚上的排查时间。

2.1 先看 zip 里装了什么:按扩展名识别符号库与封装库

压缩包里的文件到底属于哪个 EDA,不看文件名,看扩展名和文件内容。下面这张表是我拿到任何库包后的第一判断依据:

扩展名对应 EDA装的是什么能否用文本编辑器打开
.SchLibAltium Designer原理图符号库(二进制)否,必须用 Altium 库编辑器
.PcbLibAltium DesignerPCB 封装库(二进制)否,必须用 Altium 库编辑器
.kicad_symKiCad 6 及以上原理图符号(JSON 文本)能,直接看引脚定义
.kicad_modKiCad 6 及以上PCB 封装(S 表达式文本)能,直接看焊盘坐标
.libKiCad 5 及以下旧格式原理图符号(文本)能,但格式与新版完全不同
.elib立创 EDA元件库打包文件(二进制)否,只能在立创 EDA 里导入

解压和统计这步,Windows 和 macOS/Linux 我都用命令行做,比较快:

mkdir -p unpacked && cd unpacked unzip -o ../weee-symbol.zip echo "--- 按扩展名统计文件数量 ---" find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn echo "--- 统计 KiCad 符号库的格式版本字段 ---" grep -h '"version"' --include="*.kicad_sym" -r . | sort | uniq -c

逻辑说明:unzip -o遇到同名文件直接覆盖,避免交互卡死;find配合sed把文件名里的最后一个点之后的部分摘出来,拿到扩展名分布,能快速判断这个包里到底有没有封装库;第三段grep只对.kicad_sym文件抓"version"字段,用来预判 KiCad 版本兼容性。参数说明:--include="*.kicad_sym"限定文件类型,-r递归子目录,后面接.表示当前目录。

2.2 引脚映射关系:决定你能不能安全转 PCB

符号(Symbol)和封装(Footprint)在很多 EDA 工具里是两个独立的对象,软件靠「引脚号 ↔ 焊盘号」把它们绑在一起。原理图里符号的 1 脚,到了 PCB 端必须能找到 1 号焊盘,网表连线才是通的。这个映射一旦错位,原理图看着一切正常,一转 PCB 就满屏飞线断网。

常见失配有三种,对照下面的表说明:

器件类型符号引脚号/名封装焊盘号常见失配原因
极性电容1 = 正极,2 = 负极1 = 正极,2 = 负极个别库把负极写成 3,实际焊盘只有 1/2
SOT-23 三极管B/C/E 或 1/2/31/2/3符号用字母、封装用数字,网表导入时对不上
QFN-321..32,33 = E-Pad1..32,33 = E-Pad画漏了散热焊盘,GND 网络全部悬空

SOT-23 这种字母对数字的问题最典型。厂商数据手册里可能写 1=B、2=E、3=C,但封装库的焊盘编号就是 1、2、3,符号引脚号如果你跟手册写成 B/E/C,Altium 导入网表时会直接提示找不到对应焊盘。所以拿到 weee-symbol.zip 后,第一步不是看符号画得美不美,而是随机挑三五个器件,把符号引脚号跟封装焊盘号一对一审一遍。

2.3 格式版本兼容性:先判版本再选 EDA

库文件格式是有版本之分的,高版本 EDA 写出来的库,低版本软件经常打不开。Altium 的.SchLib是二进制格式,没有公开的版本字段,已知现象是 AD17 能开 AD14 的库,但反过来大概率报 “Wrong Library Version”。KiCad 这边透明得多,.kicad_sym顶部就有version字段,你解压后 grep 出来会看到类似20221018或20240108的长整数,它对应的就是符号库格式的发布时间,数值越新,对 KiCad 主版本要求越高。

正确的判定顺序我一般是这么走的:先看扩展名区分工具链,再查格式版本,然后对照自己装的软件版本,最后确认包里是否同时带了封装库。只要有一项不满足,就别硬导,先升级软件或找替代库。常见的做法是把.kicad_sym里的version改小来骗过旧版 KiCad,但我要提醒你,这只是打开文件的临时后悔药,引脚类型、图形偏移这些新字段旧版不认识,打开后依然可能少东西。

提示:判断版本兼容性时,以「能通过 ERC 和 DRC」为准,不以「能打开界面」为准。

3. 导入 Altium 与 KiCad 的可抄作业流程:挂库、放置与三个必调参数

确认格式和版本没问题之后,导入本身并不复杂,但不同 EDA 的挂载逻辑差别很大。Altium 区分工程级库和系统级库,KiCad 把符号库和封装库分开挂载,这两点最容易被新手搞混。

3.1 Altium:装成系统库,别装进当前工程

Altium 里最稳的导入路径是把库装到系统层,这样所有工程都能用。我见过不少人在 Project 菜单里找 Add Existing to Project,把.SchLib加进了工程,结果换一个工程就找不到器件,原理图里全部显示问号。正确做法如下:

cd /d D:\LibBundle tar -xf weee-symbol.zip -C weee-symbol dir /s /b weee-symbol\*.SchLib weee-symbol\*.PcbLib

第一行cd /d是 Windows 命令提示符里切换盘符的固定写法,/d参数表示跨盘符切换,不加会报找不到路径;第二行用 Windows 10 以上自带tar解压,兼容 zip 格式;第三行递归列出所有.SchLib和.PcbLib,方便接下来在界面里逐个安装。

命令行完成后,打开 Altium:右下角 Panels → Libraries 打开库面板;点面板右上角的Libraries按钮,选择Install;在弹出的文件选择框里,把刚才dir出来的.SchLib和.PcbLib全选进去;安装完在 Available Libraries 列表里能看到它们,就说明挂载成功。放置的时候,在库面板搜索框里输入器件名关键字,比如 WEEE_SENSOR,下方会列出候选符号,选中后点Place放入原理图。

3.2 KiCad:符号库和封装库分开挂载,封装按文件夹加载

KiCad 6 之后的逻辑是符号库与封装库两条线,互不干扰,你必须分别挂载。符号库入口在菜单 Preferences → Symbol Libraries,点文件夹图标 Add Existing,选.kicad_sym文件;封装库入口在 Preferences → Footprint Libraries,这里注意,KiCad 的封装是按.pretty文件夹组织的,你要把整个.pretty目录加进去,而不是单独加某个.kicad_mod文件。

.kicad_sym是 JSON 格式,你解压后用文本编辑器打开,内部结构大致是下面这样:

{ "version": 20221018, "symbols": [ { "name": "WEEE_Sensor", "pin_names": { "offset": 1.016 }, "pins": [ { "number": "1", "name": "VDD", "type": "power_in" }, { "number": "2", "name": "GND", "type": "power_in" }, { "number": "3", "name": "OUT", "type": "output" } ] } ] }

逻辑说明:version是格式版本,symbols数组里每个元素是一个符号;pins数组定义了引脚的编号、名字和电气类型。这段 JSON 在你解压出来的文件里会存在,导入后放置器件时,原理图符号上的引脚名称和编号就来源于这里的name和number字段。参数说明:type字段决定 ERC 检查时的电气规则,power_in表示电源输入,output表示输出,如果你的信号接反了类型,ERC 会报错,所以看到 ERC 黄条先回来检查 JSON,而不是改原理图。

3.3 导入后必调的三个参数:位号、封装绑定、图形原点

库导入成功不等于直接能用,我每次放置第一个器件前都会调三个参数,这三个参数决定了后续自动编号、PCB 导入和复制对齐顺不顺畅:

参数位置建议值/检查方式
Designator 位号前缀符号属性面板统一为 U?、R?、C?,且不能被锁定
Footprint 封装绑定符号属性面板 Models必须绑定到已挂载的封装名,不能留空
图形原点库编辑器内必须在 (0,0),全选后检查坐标

位号前缀的问题在于:有些作者习惯把器件名写成 WEEE_SENSOR_1,带了完整序号,你放到原理图里自动编号永远从 1 开始,还会跟已有位号冲突。我的做法是选中器件,在属性面板把 Designator 改成 U?,并在右下角锁形图标上点掉锁定,让 Annotate 接管。封装绑定这步更关键,Altium 里要在 Models 区域 Add Footprint,选择库面板里已安装的.PcbLib里的具体封装名;KiCad 里是在符号属性里点 Footprint 字段,从下拉列表选封装。图形原点如果不在 (0,0),你复制器件时会发现它疯狂跳位置,像随机偏移一样,这问题看起来玄学,实际就是原点偏了。

4. 避坑排查:引脚断网、版本打不开与封装缺失的 5 个记录

这部分内容来自我处理过的各种库包故障现场,每一类都遇到不止一次。下面按现象、原因、解决三段写,照着排查,大部分问题十分钟内能定位。

4.1 PCB 端报 Missing Pad,引脚号和焊盘号对不上

现象:原理图放置后看起来正常,生成网表导入 PCB 时,Messages 面板出现一堆 Missing Pin/Node 错误,器件引脚悬空。

原因:符号引脚号和封装焊盘号不一致。最常见于厂商给出的参考库:符号引脚标了 A/B/C,封装焊盘是 1/2/3;或者极性电容符号负极写 3,封装实际只有两个焊盘。这类错误在原理图阶段看不见,只有导入网表才爆发。

解决:在封装编辑器里把焊盘编号改成和符号一致,或者反过来,以厂商数据手册的引脚功能表为唯一依据,把两边的编号统一。改完重新生成网表,再导入一次验证零错误。注意不要只改一边,要两边一起检查,改完符号还要回到原理图更新缓存。

4.2 新器件在原理图里显示问号,DRC 报 Off-Grid

现象:从库面板放置器件后,符号上全是问号,运行 DRC 报大量 Off-Grid,器件引脚不在网格点上。

原因:这类库文件的作者在绘制符号时没有遵守网格规范。原理图符号要求引脚落在 100mil 网格上,但手工维护的杂牌库经常有 33.123mil 之类的坐标。软件检查网格时自然报错,符号名显示异常也源于库内部属性缺失。

解决:进入库编辑器,选中该符号的全部对象,Edit → Set Location,把图形原点重新放到 (0,0);然后检查每一个引脚的 X/Y 坐标,把小数位清掉。如果是 KiCad 符号,直接改 JSON 里每个 pin 的xy值,改成整数或 0.5 的倍数,重新加载库。有人在论坛里把这个问题归为玄学,其实先查引脚坐标小数点,九成能定位。

4.3 高版本库包打不开,提示格式无效或版本过新

现象:Altium 打开.SchLib提示 Wrong Library Version;KiCad 导入.kicad_sym提示 Symbol file version too new。

原因:包里库文件的格式比当前 EDA 软件新。比如 KiCad 8 写出的符号库格式版本号较高,KiCad 6 打开会拒绝。Altium 同理,新版软件写的.SchLib在老版本里没有对应解析器。

解决:优先升级 EDA 软件到兼容版本,这是最安全的路。临时想看一眼内容,KiCad 下可以用文本编辑器打开.kicad_sym,把version字段改成当前软件支持的旧值(比如20221018),很多情况能强行打开,但只能看,不要直接用来出图,因为新特性字段可能被旧版忽略,引脚类型和图形偏移会丢。Altium 下没有此类后悔药,只能找作者要低版本导出,或者用 Ultra Librarian 这类工具重新生成库。

4.4 包里只有符号库没有封装库,转 PCB 全部没壳

现象:原理图放置没问题,一转到 PCB,所有器件都没有封装图形,DRC 报 Missing Footprint。

原因:weee-symbol 这类包有的做成了「符号专用包」,作者只维护了原理图符号,没放.PcbLib或.kicad_mod。下载说明里没写清楚,你默认以为符号和封装是一套,结果只有半个库。

解决:去原厂官网或立创商城下载对应的封装库,单独挂载;也可以用 IPC-7351B 标准焊盘尺寸自己画。我的习惯是这种混合来源的器件,永远从原厂参考设计里提取封装,而不是随便找个看起来像的顶上。封装这东西尺寸差 0.1mm 贴片就可能立碑,不值得赌。

4.5 自动编号乱跳,C? 不连续,位号重复

现象:放置多个同类器件后,Tools → Annotate 跑完,位号还是乱七八糟,有些 C1 后面直接 C5,前面还带下划线。

原因:库作者在符号属性里给 Designator 填了具体的名字,比如WEEE_SENSOR_1,并且勾选了锁定属性。自动编号工具默认尊重锁定值,于是跳过这些位号,只在未锁定的对象上重新编号,结果看起来就像随机跳号。

解决:原理图里全选所有新放置器件,在属性面板找到 Designator,清空内容或改成C?格式,确认锁形图标处于解锁状态;再执行 Tools → Annotate,选择 Reset All Designators,最后重新编号。这个处理顺序不能反,先重置再编号,否则工具仍会跳过带具体编号的旧值。

5. 批量校验与验证:用脚本和网表把 weee-symbol 变成可信资产

从网上下载的库包不能直接信,我现在的习惯是在导入前先跑一遍一致性脚本。.kicad_sym是 JSON 格式,非常适合批量扫描;Altium 的.SchLib二进制没法用脚本直读,但可以在库编辑器里生成库报告做静态检查。一个几十个符号的包,脚本跑完加人工抽检,半小时内能确认它能不能进项目。

下面这个脚本用于扫描解压目录下的所有.kicad_sym文件,检查引脚号重复和引脚类型非法两类硬伤。重复引脚号会导致网表断脚,非法 type 字段会导致 ERC 误报或漏报,这两类问题在图形界面里一个个点开看非常费眼:

import json import glob import sys ALLOWED_TYPES = { "input", "output", "bidirectional", "tri_state", "passive", "power_in", "power_out", "open_collector", "open_emitter", "no_connect" } def check_kicad_sym(path): data = json.load(open(path, encoding="utf-8")) print(f"== {path}: format version {data.get('version')} ==") for sym in data.get("symbol", []): pins = sym.get("pins", []) numbers = [p["number"] for p in pins] dupes = {n for n in numbers if numbers.count(n) > 1} if dupes: print(f" [FAIL] duplicate pin numbers: {dupes}") for p in pins: if p.get("type") not in ALLOWED_TYPES: print(f" [WARN] illegal type {p.get('type')} on pin {p.get('number')}") for path in glob.glob("unpacked/**/*.kicad_sym", recursive=True): check_kicad_sym(path)

逻辑说明:glob.glob递归找到所有.kicad_sym文件;json.load把文件解析成字典;pins数组里逐个取number和type,用集合去重判断是否有重复引脚号,用白名单判断电气类型是否合法。参数说明:ALLOWED_TYPES里的字符串就是 KiCad 官方规定的引脚电气类型,不要随意加自定义值,ERC 引擎只认这一套;recursive=True表示包含子目录,如果你的 zzz 结构里有多层嵌套目录,这个参数能保证全部扫到。

脚本跑完只是第一关。我还会在原理图里放 5 个代表器件,打开电气规则检查跑一遍 ERC,确认零错误;生成网表后翻开数据手册的引脚功能表,把符号引脚编号和手册逐一对一遍,这一步能防住脚本看不出来的「名对位错」。最后,导出一份 PDF 原理图放大三倍检查丝印位号和引脚名显示,确认没有叠字。Altium 用户可以额外在库编辑器里用 Reports 生成库报告,里面会列出缺失封装绑定和重复引脚号,输出 CSR 文件归档。

这套流程下来,weee-symbol.zip 才算是真正装进了你的设计资产库。别嫌麻烦,库包来源越杂,导入前检查的必要性越大。我自己吃过一次亏,把没查过的库直接塞进量产项目,结果 PCB 打样回来才发现一枚传感器符号的 3 脚和 4 脚画反,只能飞线拯救,从那之后任何 zip 库必须先解压、再脚本扫、后人工抽检。希望这条流程能帮你躲过同样的坑,也希望这份笔记能让你少走点弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进