
用 OrCAD 画原理图第一个坎儿往往不是软件装不上而是打开 Capture 后发现想放个电阻都找不到合适的东西。系统库里确实有 R但那只是个通用符号没有阻值、没有封装、没有厂商料号等你导到 PCB 那边一堆问题全冒出来。我在带新人时最常说一句话在 Cadence 里自己建库不是可选项是必选项。这篇把我用 Cadence 17.2 建原理图库、画元器件整套流程完整过一遍以电阻为例从零画出一个可以直接拿来画板子的元件。整个过程不长但每一步背后的逻辑我会讲清楚为了让你不光是会操作还能理解为什么必须这么干。新手照着做就行中间几个坑我会单独标出来。1. 为什么劝你别再用系统库硬撑底层逻辑先掰扯清楚很多人从 Altium 转过来后极不适应Altium 里拖元件太爽了Cadence 的 Capture 却要自己搭。但 Cadence 这套“自建库”机制背后是有道理的想通了你就会觉得它的设计才是真正干活的思路。1.1 Capture 里的“库”到底是什么Capture 的库文件后缀是.olb它不是一个元件一张图而是一个“元件容器”。一个.olb文件里可以装几十上百个元件。你画原理图时从库里面“调取”的其实是这个元件的“符号”也就是我们常说的symbol。一个原理图符号由三部分构成图形shape、引脚pin、属性properties。图形决定了你在原理图上看到的形状引脚决定了电气连接点在哪里属性则是网表导出、PCB导入、BOM生成的依据。三者各司其职缺一不可。很多新手只画了个图形、放了引脚属性不填结果导入 Allegro 时元件全部变成未放置状态。这个后面我会重点讲。1.2 系统库“够用”但是“不好用”Cadence 自带了一个叫TITLE的库文件那当然不是。自带库一般在安装路径下的tools/capture/library里打开 Capture 的元件选择器按Z键或菜单 Place Part能看到的DISCRETE.olb、CONNECTOR.olb、OPAMP.olb这些确实覆盖了常见分类。但实际项目里你发现没有自带库里的元件几乎都没有 PCB Footprint 属性Value 默认也是个空值。也就是说你即使放上去了后续还是得一个个补。与其反复改不如一开始就建自己的一套库一次投入长期复用。另外Cadence 自带库里的元件标准参差不齐不同库之间同类元件的画法不一致。混用多了原理图风格混乱不说导网表时引脚类型冲突就能把你折腾到怀疑人生。1.3 建库的本质是“设计标准化”自己建库的最大意义是你定义标准然后团队跟着你的标准走。比如电阻用哪个符号、引脚怎么排列、Value 写10k还是10K、位号从R?开始、封装名跟 Allegro 封装库里的名字必须一模一样。这些如果每个人各搞一套整个项目后期就是灾难。我见过最典型的翻车案例原理图里电阻的 PCB Footprint 写的是0603但 Allegro 封装库里定名是R0603结果导入 PCB 后所有电阻全部报错找不到封装。最后只能批量改网表属性那个过程要多恶心有多恶心。建库阶段多花十分钟做规范后期能给你省一天。所以下面要讲的这套流程不只是“教你画一个电阻”而是给你一套可以直接套用到所有元件的标准方法。2. 建库前的三件事格点、命名和库文件位置正式开始画之前有几个准备工作必须做。这几个细节直接影响你后面画出来的元件是否规范。2.1 格点设置没有格点引脚就废了在 Capture 里画原理图库最重要的一个设置就是Snap to Grid。Capture 的格点系统默认主格点是 100 mil细格点是 10 mil。引脚必须落在格点上才能正常拉线如果你画的时候没对齐格点放到原理图上引脚边缘会带一个小白方块连线连不上或者导线路径不对齐。设置路径Options - Preferences - Grid Display。我习惯把 Schematic Page 和 Part and Symbol 两个都保持默认主格点勾选细格点不勾选。画库元件时引脚一般落在 100 mil 倍数的位置上既美观又方便对齐。有一种情况要注意如果你画的是引脚密度极高的 BGA 芯片引脚间距可能需要更密的格点。这时可以在Part and Symbol里启用细格点 10 mil但这种情况极少见对新手来说直接用默认格点就够了。2.2 库文件命名用一种一眼懂的方式来管库命名规则决定了你一年后还能不能找到想要的元件。我自己的习惯是按项目建库按元件类型前缀命名。比如我现在做一个电源板项目就会建一个PWR_2024_lib.olb里面放电阻、电容、MOS管、控制IC。库名包含项目名和年份而不是叫my_lib.olb这种无意义的名字。元件名则用R_0603、C_0805、U_TPS5430这种“类型封装/型号”的结构查找效率极高。这里要特别提醒元件名不要用中文。虽然 Cadence 17.2 理论上能支持但网表导出、第三方工具导入时经常出乱码风险大收益为零完全没必要。2.3 库文件保存位置跟着项目走别放 C 盘.olb文件建议放在项目目录下的library子目录里或者放在公司统一的服务器路径下。千万不要放在 C 盘默认路径里一旦系统重做你的所有心血直接清零。如果是团队协作建议库设只读共享由专人维护更新。否则几个人同时改一个.olb文件改完互相覆盖最后元件属性乱七八糟还没法追溯。我以前吃过这个亏和同事共用一套库他改了一个电容的封装名我在不知情的情况下画完一整板原理图结果网表导过去十几个电容匹配不上封装最后只能一个个手动挂。血的教训。3. 电阻元件完整绘制流程从新建库到保存下面进入正题我们以最经典的0603封装电阻为例完整走一遍绘图流程。3.1 新建库文件与元件符号打开 OrCAD Capture执行File - New - Library界面左侧的空板上会出现一个library1.olb的文件节点。右键选择Save As把它存到你项目目录下命名为My_Lib.olb。文件建好之后右键这个.olb文件选择New Symbol弹出属性窗口Name填R_0603这就是你以后在元件选择器里搜到的名字Type默认是Schematic Symbol保持不动Part Reference Prefix填R这决定你放元件时的位号前缀。填了R放出来后默认位号就是R?Annotate 后变成R1、R2……确认后进入元件编辑界面。先看一眼右侧的工具栏有一个红色的矩形、一根像针一样的图标、还有大写字母 A 和一个电气符号。这些就是我们接下来要用的工具。3.2 了解元件编辑界面为什么引脚要“头朝里”进入编辑界面的第一件事别急着画先理解这个界面的坐标系。中间的十字虚线交点就是原点元件就围绕这个原点来画。元件的图形要画在原点附近并且尽量以原点为中心对称这样在原理图上旋转、移动时很顺手。再看一下刚才新建的元件左侧有一根短引脚编号1名称是空。这其实是 Cadence 给你的默认引脚它其实不在格点上。我们绘制时建议先把这根默认引脚全选删掉后面统一用正确的方式重新放置避免遗留奇怪的引脚属性和坐标。在继续之前介绍一下引脚的关键概念。引脚分成两部分电气连接端和本体端。电气连接端就是那个细头放置时它必须朝外原理图连线时连接到这个头本体端必须朝内在元件边框内部。用生活中例子来类比引脚就像插头露在外面的金属片才是被插座接纳的地方。你如果把“金属片”藏进元件框里了外面什么也插不上。3.3 绘制电阻本体先画外形再放引脚电阻的符号是长方形两道短横线是它的国际标准画法。不过我们做原理图库时很多公司直接用一个矩形表示电阻简洁清晰用来画 0603 电阻完全够用。点击工具栏里的Rectangle图标红色矩形在坐标原点附近画一个矩形。我画的尺寸是宽度 600 mil高度 200 mil用格点捕捉保证两端坐标正好落在 100 mil 的倍数点上。画完选中矩形右键选择Edit Properties把Line Style里的Line Width改为1这样在原理图上看起来粗细适中打印出来也清晰。如果你是画复杂器件比如 IC则不需要这一步保持默认即可。接下来放置引脚。点击工具栏里的Pin图标像针那个或者用快捷键P弹出放置引脚对话框。在这里输入Name输入引脚名1电阻引脚不需要名称直接和编号一致就行Number输入1Shape选择Short短引脚Type选择Passive无源Width保持Scalar即可点击 OK 后引脚会悬浮在鼠标上这时右键可以旋转方向。注意一点引脚放置时那个尖头电气连接点朝哪外部连线就从哪边接入。我现在想让引脚 1 从矩形左侧伸出去那么尖头朝左将引脚放在矩形左侧边的中间位置让矩形的左边线和引脚本体重合。一个电阻有两个引脚引脚 2 放在矩形右侧尖头朝右。放第一根引脚时可以直接再次按P来放第二根此时不需要重新输入对话框直接把编号改成2即可。3.4 让引脚位置更精准通过坐标对齐代替肉眼新手极易出现的问题是把引脚放得“差一点”——差 1 mil 对着网格看着没感觉但在原理图连线时可能会引起 DRC 报错。稳妥的做法是直接观察右下角的坐标值把矩形左边的 X 坐标和引脚本体的 X 坐标设置为一致。还有一种更快的对齐方法放完引脚后选中它按AltEnter打开属性对话框里面的Pin Length是默认值而引脚的位置参数Pin to Pin 的坐标直接在图上拖动就行。用格点对齐保证坐标准确比肉眼精确得多。3.5 调整边框线宽与元件整体外观画完引脚之后把矩形框选中右键 -Edit Properties里面可以调整Line Style-Line Width同事看习惯用 1太粗会影响打印辨识度Line Style-Line Style默认实线有些公司画电阻符号时会保留两根竖线有些公司用矩形加两端短线的符号其实都行。关键是统一。你自己库里所有元件风格一致就是成功的库。3.6 保存库文件什么时候保存都有讲究把编辑完的电阻元件保存方式是右键库文件 -Save或者直接按CtrlS。如果你发现保存后库文件名旁边有个星号说明还没存上。有一个细节保存前一定确认当前处于元件编辑界面而不是原理图页面。很多人画完元件没保存库直接关了 Capture以为元件存下来了结果重新打开什么都没有。Capture 会提示你保存的是Library还是Design必须选Library才能存住.olb里的内容。4. 元件的灵魂属性定义与 PCB 封装关联图形和引脚只是元件的外壳属性才是元件真正能驱动流程的“灵魂”。在 Capture 里放一个没有属性的元件等于在 PCB 阶段给自己埋雷。4.1 必备的三个属性Value、位号、封装名打开元件编辑界面按下AltEnter或菜单Options - Package Properties在属性列表里确认以下三个关键项属性名作用电阻示例值Value元件值显示在原理图上10k或具体阻值Reference Designator位号前缀原理图自动编号的依据R?PCB FootprintAllegro 封装库里的封装名必须完全一致0603如果你用Place Part从库中调取元件时看到的Value是空白那说明编辑时没填。建议在库编辑阶段就把 Value 设为典型值。比如建一个10k元件Value 直接填10k后面放的时候可以按需改。封装名的坑前面已经提到过这里再次强调PCB Footprint 的内容不是给人看的是给网表工具和 PCB Editor 做匹配用的。新建一个 Allegro 封装名为0603你就必须原样填写0603多一个空格、大小写不一致都可能导致匹配失败。4.2 引脚类型决定了 DRC 会不会找茬电阻两个引脚的 Type 设置成Passive是常规操作。为什么不用Input或Power因为在 Capture 里Input/Output/Bidirectional类型的引脚在网络连接上有方向限制DRC 时如果误接到错的方向会报警Power类型引脚通常不参与信号逻辑检查适合电源和地引脚Passive是“无源”的意思适用于电阻、电容、电感这类不分方向的元件如果你把电阻的一个引脚设成Output画原理图时给它接了电源也可能触发 DRC 逻辑矛盾。所以无源元件一律用 Passive不要去折腾别的类型。4.3 添加自定义属性BOM、料号、精度如果你公司要求 BOM 里带上厂商料号、精度、功率等信息可以在属性列表里自行添加。操作方法在元件属性对话框中先点击New输入属性名如Manufacturer Part Number输入属性值然后保存。需要注意不要给属性起过于宽泛的名字比如Name、Model。因为在 Capture 里有些属性名是保留的名字一冲突网表导出时行为就不可预期了。我之前加过一个属性叫Part结果网表导出时被当成特殊字段处理导出了乱七八糟的数据排查了很久才发现是名字撞了保留字。4.4 封装名的标准化与“测试性调用”在.olb库里建元件时你只是定了一个字符串。真正能验证这个字符串有没有写错的唯一办法就是把这个元件放到原理图上然后生成网表导入 PCB Editor 看看能不能匹配上。所以我在建库时有个习惯每建完一批元件立刻新建一个测试用原理图把这些元件挨个放上去然后跑一遍Create Netlist在 Allegro 里导入验证封装。这样做虽然多花两三分钟但能够尽早把库的错误暴露在设计早期比画了一个月原理图后才发现封装名错了一堆要强得多。5. 把新库挂进原理图一个让功能生效的隐藏步骤这一步是新手最容易忽略的。很多人画完元件、保存库然后打开原理图按Z打开元件选择器结果搜不到自己刚画的R_0603。原因很简单这个库还没被添加到设计项目里。5.1 在项目里添加 .olb 库在项目右侧的项目管理器窗口Project Manager中展开.dsn设计文件找到Libraries文件夹右键选择Add File定位到你保存的My_Lib.olb确认。此时再按Z打开 Place Part 窗口Libraries列表里就会出现My_Lib选中它后在中间搜索栏输入R_0603元件就会显示在预览窗口里。双击或点击Place Part就能把它放到原理图上。另一个技巧Place Part 窗口还有一个Search模式可以跨库搜索元件名。如果你建的库多了直接搜名字比在列表里翻找高效得多。5.2 全局默认库列表和项目列表的区别需要注意 Capture 有两个库列表一个是全局默认库列表Options - Design Template里可以配置一个是当前项目的库列表。全局列表对每个新设计都生效项目列表只对当前.dsn生效。如果你希望自己的库让所有新项目都能直接用就在Options - Design Template里把库加进去。不过对团队协作来说不建议这么做因为不同项目用的元件版本可能不同库一旦全局化后多人改动就会失控。5.3 为什么放到原理图后元件没有网络连接有时候你把电阻放上去试图连线时发现导线拉不到引脚上或者引脚上出现个红叉。有一半可能是引脚方向放反了另一半可能是引脚没有完全落在格点上。最典型的场景引脚尖头没有朝外外部导线找的不是电气连接点自然连不上。此时回到库编辑界面选中引脚右键Mirror Horizontally或Mirror Vertically调转方向保存更新后再回到原理图。注意这里涉及一个 Capture 的“库更新”机制。5.4 库更新后原理图里的老元件怎么同步在库文件里修改了元件并保存后原理图里已经放置的元件不会自动更新。你需要在原理图页面执行Place - Update Symbols在弹出的对话框里勾选Library Symbol里的文件名然后点击 OK已放置的元件就会同步刷新成最新版本。这里有个很容易踩的坑Update Symbols 会把你手动修改过属性的元件也覆盖。比如你在原理图上把某个电阻的 Value 改成了4.7k但库里默认 Value 是10k执行一次Update Symbols后原理图上所有该元件的 Value 又会被打回10k。所以执行前一定要确认库里已经是最终版本或者更新后逐个检查。6. 从电阻到复杂元件引脚阵列与属性批量处理电阻只是最简单的两个引脚元件。等你开始画 IC、连接器一次要放几十上百个引脚时如果还是一根一根地放那就真的干到天荒地老了。这一章把进阶操作一并讲了。6.1 Pin Array一次性放置一组引脚在放置引脚时弹出的对话框右下角有一排Pin Array参数。勾选Add Pin Array就可以一次性连续放置多根引脚。具体参数含义Pin Count一次放几根Increment引脚编号的间隔一般是 1Spacing引脚间距通常填 100即 100 milStarting Number起始编号比如我要放一个 8 引脚的排针Start Number 填 1Pin Count 填 8Spacing 填 100它会自动生成编号 1 到 8 的引脚排列整齐。这个操作对画单片机、连接器、逻辑芯片效率提升极大。6.2 引脚名称和编号不完全一致时的处理引脚数较多的元件名称往往不等于编号。比如一个 MCU 的PA0引脚物理编号可能是23。在放置引脚对话框里Name 填PA0[0]Number 填23即可。注意如果引脚名带方括号如D[0]Capture 会默认把方括号识别为总线索引。如果不需要总线效果可以关闭Options - Preferences - Miscellaneous - Allow区段命名或在属性里改。否则网表导出时可能会出现怪异的网络命名。6.3 多个子部件Heterogeneous问题一些芯片内部逻辑上有多个独立单元比如双运放 LM358 包含两个运放四与门 74HC08 包含四个门。这类元件在 Capture 里有两种做法同质封装Homogeneous四个门图完全一样引脚编号区分画原理图时每放一次就能自动切到下一个 UnitU?A、U?B。适合逻辑器件。异质封装Heterogeneous每个 Unit 图形不同适合内部包含电源、逻辑等不同结构的混合器件。对新手来说优先建议做成同质封装操作简单原理图也好读。在元件属性里设置Parts Per Package能控制一个 IC 分几个 Unit。6.4 像画电阻一样画完一个库图的检查清单画复杂元件比画电阻更考验细心。我给自己定的检查清单如下每次画完复杂元件都会照着过一遍引脚数量对不对编号是否连续无重复每根引脚的物理位置落在格点上引脚方向是否都朝外没有反的电源脚类型是否设成 Power、其余逻辑脚有没有设对方向Value、位号、封装名是否已经填写完整元件名是否规范符合团队命名规则7. 新手最容易踩的坑从网表报错反推库问题最后这部分全是实战中见过最多的问题。它不发生在画元件时而是发生在你把原理图导出网表、导入 PCB Editor 那一刻。每个坑都是可以提前预防的。7.1 网表报错“Pin number not found”等用Tools - Create Netlist生成网表时如果不报错一般没问题。但常见的一种错误是某个元件引脚编号与实际网表数据不匹配导致 PCB Editor 导入时报错。这时候先在原理图里/查找这个元件AltEnter打开属性看它的引脚编号是否连续且不与引脚名冲突。问题是如果你画库时把引脚编号填成 0 或重复了软件会在网表阶段才告诉你绝不在画库界面报错。这也是为什么我强烈建议你画完一个元件后就立刻做一次网表测试而不是等原理图画完了再统一验证。7.2 Allegro 导入后元件散落原点找不到封装把网表导入 PCB Editor 后所有元件都没有放置在板框内而是堆在坐标原点附近。第一反应不是去手动挪板子而是先检查 PCB Footprint 属性。最常见原因就是封装名不匹配。你可以在 Allegro 的Setup - User Preferences - Design_paths - padpath / psmpath里验证封装文件路径是否指向了正确的封装库目录。然后在 Capture 里检查元件的PCB Footprint值是否和封装库里的.dra文件同名。有个快速排查法在 Allegro 命令行输入dump symbol 元件名如果报Cant find symbol说明封装名和路径都有问题如果提示找到但放置失败则可能是封装里的引脚数与网表不一致。7.3 引脚类型引发的 DRC 报错前面提到了Passive的重要性。新手画电阻电容时如果用了Input类型原理图 DRC 会报网络连接错误比如 “Multiple Output Pins Connected”。这是因为这类引脚在逻辑上不允许并联复接。实际板子里电阻可以并联电容可以并联它们不受这个限制。正确做法是把所有无源元件的引脚 Type 都设为PassiveDRC 不会再无缘无故报错了。7.4 位号重复导致更新失败有时候库元件画完放了一个Annotate 后却出现重号。原因大概率是库编辑时Reference Designator属性里填了一个具体数字比如R1而不是通配符R?。这会导致 Capture 默认该元件位号已经是R1后面另一个元件 Annotate 时又分配R1就撞了。所以库里元件默认位号一定要填R?、C?这种带问号的形式让软件去自动分配不要手动指定。7.5 关于重复引脚的经典教训一个元件两个引脚同名设计变压器或光耦时引脚名经常有重复需求比如初级侧两个引脚可能同名。Capture 在原理图库中默认不允许同一元件内有两个同名引脚有时允许取决于版本配置但这个限制在网表阶段会被放大。最稳妥的方案是同名引脚给个不同的编号然后在原理图上添加网络标签Net Alias让它们在电气上实现连接。别试图在库里绕过同名限制否则导网表时不知道哪个引脚该连到哪。8. 几个让库更好用的进阶习惯如果你已经能把电阻、电容、IC 画得超快那你已经入门了。下面这些习惯是我在大量项目里沉淀出来的不一定在官方文档里能找到但确实很顶用。8.1 给元件加“版本说明”属性我在每个库里都会加一个自定义属性LibVersion填上V1.0、V1.1之类的版本号。后续修改库时同步升版本号配合 Git 或者服务器文件版本可以快速定位是哪个版本导入的原理图。这招在公司团队协作中特别管用。原理图里每个元件都带版本号万一后来发现封装有问题可以直接查哪些原理图用了旧版库。8.2 利用 Capture 的 “Import/Export” 在库间迁移元件Capture 支持在.olb之间复制元件。最省事的做法打开两个.olb直接在左侧元件列表里把元件从一个库拖到另一个库。Cadence 17.2 下默认支持这个操作但复制完一定要检查属性有没有丢失。如果是更大规模的迁移比如从旧版本软件升级到 17.2建议用File - Import - Legacy Design转换整个库。转换后同样要抽查元件属性因为部分旧版属性字段在 17.2 里可能已经改名了。8.3 一个库一个“万能模板元件”我建库时会在每个.olb里放一个“模板元件”——通常是一个有标准引脚间距、标准 Line Width、标准属性字段的空白元件。后续画新元件时直接复制这个模板再改效率极高。为什么不用软件默认的用户模板因为 Capture 的默认模板文件位置深不同版本路径不一样而且模板里如果不小心带了旧版本的属性反而会拖累整个新元件。不如就在库里放一个看得见的“实体模板”谁都能看到、谁都能用。8.4 定期用 Capture 自带的 DRC 检查库文件Cadence 17.2 的 Capture 提供一个专门检查元件库的工具路径File - Design Properties里能设置设计规则然后在原理图页面执行Tools - Design Rules Check。但这是针对原理图设计的。对元件库本身的检查官方提供的方式是通过“测试原理图”间接完成。所以我的例行动作是每画完几个新元件就“放”到一个临时测试原理图页上然后跑一次 DRC、跑一次网表生成全绿才算通过。画一个电阻本身十几分钟就能学会难的是把“画库”这件事当成系统工程来对待。你把这个流程跑顺了Cadence 对你来说就不再是“原理图画图工具”而是“完整设计流程的起点”。建库阶段多操点心后面画板子、出网表、做 BOM、贴片回板每一步都会顺畅不少。