ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OrCAD Capture CIS 17.2 多页原理图页码自动标注与交叉引用刷新实战指南

OrCAD Capture CIS 17.2 多页原理图页码自动标注与交叉引用刷新实战指南 1. 多页原理图页码标注为什么让人头疼画过十几页以上的原理图的人都懂那种感觉图纸一多页码就成了一个绕不开的坎。OrCAD Capture CIS 17.2 本身提供了 Title Block 和 Page Number 的机制但默认行为是——你新建一页它给你一个页码你删掉一页后面的页码不会自动补位你调整页序页码纹丝不动。结果就是每次改完图纸都得手动去每一页的 Title Block 里改页码十几页还好几十页上百页的板子改一轮下来眼睛都花了。更麻烦的是交叉引用。原理图里经常要标注见第 X 页第 Y 区这个 X 就是页码。页码一乱交叉引用全废读图的人翻到第 5 页发现内容对不上直接懵。所以页码自动标注这件事本质上解决的是两个问题页码的自动生成与自动更新以及交叉引用中页码字段的同步刷新。这篇内容适合谁看如果你正在用 OrCAD Capture CIS 17.2 画多页原理图尤其是那种层次化设计、页数超过 20 页的项目那这篇就是给你写的。如果你还在用 16.6 或者更早的版本部分操作路径会有差异但核心思路是通的。下面我会从原理讲起然后给出具体的配置步骤最后分享几个我实际踩过的坑。2. OrCAD 页码机制的核心原理拆解2.1 Title Block 里的页码字段到底是什么很多人以为 Title Block 里的页码是 OrCAD 自动填的其实不是。OrCAD Capture 的 Title Block 本质上就是一个普通的原理图符号.olb 里的 Title Block 符号里面的页码、图号、总页数这些信息是通过特殊变量来引用的。这些变量在打印或导出时被替换成实际值。在 Capture CIS 17.2 中与页码相关的核心变量有这么几个变量名含义典型用途PageNumber当前页的页码Title Block 右下角显示第 X 页PageCount整个设计的总页数显示共 X 页PageNumber在交叉引用中被引用页的页码见第 X 页关键点在于PageNumber这个变量的值取决于Page Number 的分配方式。OrCAD 提供了两种模式——Sequential顺序编号和Logical逻辑编号。这两种模式的行为差异是后面所有问题的根源。2.2 Sequential 与 Logical 两种编号模式的本质区别Sequential 模式就是简单的从头到尾按顺序编号第 1 页就是 1第 2 页就是 2不管这页在层次结构里处于什么位置。Logical 模式则是按照层次结构的逻辑顺序来编号比如根页是 1第一个子页是 2子页下面的子页是 3以此类推。这两种模式没有绝对的好坏取决于你的图纸组织方式。如果你的设计是扁平的所有页都在同一层级那两种模式结果一样。但如果是层次化设计Sequential 模式会让页码和层次结构脱节读图的人看到第 15 页不知道它在层次树里的哪个位置Logical 模式则能让页码反映层次关系但代价是页码可能不连续。我个人的经验是如果是给内部团队看的调试用图用 Sequential 更直观如果是要交付给客户或者归档的正式图纸用 Logical 更规范。这个选择在后面的配置里会直接影响页码的生成结果所以要先想清楚。2.3 交叉引用中的页码是怎么来的交叉引用Cross Reference在 OrCAD 里主要出现在两个地方一是层次端口Hierarchical Port和页间连接符Off-Page Connector的交叉引用表二是元件属性里的交叉引用字段。这些交叉引用里的页码来源和 Title Block 里的PageNumber是同一个机制——都是通过变量替换实现的。但区别在于交叉引用的页码是在生成交叉引用报告或刷新交叉引用时计算的而不是实时更新的。这意味着如果你改了页序但没刷新交叉引用交叉引用里的页码就是旧的。这就是为什么很多人遇到Title Block 页码对了但交叉引用页码不对的情况。解决办法只有一个改完页序后手动触发一次交叉引用刷新。这个操作在后面的实操部分会详细讲。3. 5 分钟搞定页码自动标注的完整配置流程3.1 第一步确认 Title Block 符号里用的是变量而非硬编码在动手配置之前先检查你的 Title Block 符号。打开你的原理图工程找到 Title Block 符号通常在Design Cache或者你指定的库路径下双击进入符号编辑器看页码那个位置填的是什么。如果填的是具体的数字比如1那说明这个 Title Block 是硬编码的变量替换不会生效。你需要把它改成PageNumber变量。具体操作是选中那个文本右键选择Edit Properties在Value字段里填入PageNumber注意大小写OrCAD 的变量名是区分大小写的。提示如果你用的是 OrCAD 自带的 Title Block 库比如CAPSYM.OLB里的TitleBlock符号它默认就是用变量的不需要改。但如果是公司自定义的 Title Block很可能被改成了硬编码这一步一定要确认。3.2 第二步设置 Page Number 的编号模式在工程管理器Project Manager里右键点击你的设计文件.dsn选择Properties。在弹出的对话框里找到Page Numbering这一项它有两个选项Sequential和Logical。根据你前面想好的策略选一个。选完之后还有一个关键选项Auto Page Numbering。这个选项默认是勾选的意思是 OrCAD 会自动给每一页分配页码。如果你取消勾选就需要手动指定每一页的页码。绝大多数情况下保持勾选即可。这里有一个容易被忽略的细节Auto Page Numbering的编号顺序是按照原理图页在工程管理器里的排列顺序来的而不是按照你打开页面的顺序。所以如果你想让页码符合预期需要在工程管理器里把页的顺序调整好。调整方法是直接拖拽页面节点或者右键选择Move Up/Move Down。3.3 第三步让 Title Block 显示页码和总页数配置好编号模式后回到原理图页面你应该能看到 Title Block 里的页码已经自动变成了当前页的页码。如果没有变试试按CtrlShiftU刷新页面或者关闭页面重新打开。总页数的显示需要额外配置。在 Title Block 符号里总页数的位置应该填PageCount变量。如果你希望显示成第 X 页 / 共 Y 页的格式可以在 Title Block 里放两个文本对象一个填PageNumber一个填PageCount中间用/隔开。注意PageCount统计的是整个设计的总页数包括所有层次下的页面。如果你有多个 .dsn 文件在同一个工程里PageCount只统计当前 .dsn 的页数不会跨文件统计。3.4 第四步刷新交叉引用中的页码这一步是很多人漏掉的。Title Block 的页码是实时更新的但交叉引用里的页码不是。要刷新交叉引用需要执行以下操作在工程管理器里选中顶层设计文件菜单栏选择Tools→Annotate先做一次元件标注如果还没做的话然后选择Tools→Cross Reference在弹出的对话框里选择Update或Generate等待处理完成交叉引用里的页码就会更新为最新的如果你用的是 Off-Page Connector 的交叉引用表刷新后表格里的页码会自动更新。如果是元件属性里的交叉引用字段可能需要手动触发一次属性更新。3.5 第五步导出 PDF 时确认页码正确最后一步是验证。导出 PDF 的时候OrCAD 会把变量替换成实际值。导出路径是File→Export→PDF。在导出对话框里确认Page Numbering选项和你在设计里设置的一致。导出后打开 PDF翻到任意一页检查 Title Block 里的页码是否和 PDF 的物理页码一致。如果不一致说明你的编号模式或者页序有问题需要回到第二步重新检查。4. 那些让我熬夜排查的页码异常场景4.1 页码从 0 开始而不是从 1 开始这个问题的原因通常有两个一是 Title Block 符号里的变量写成了PageNumber-1之类的表达式有些人为了修正页码反而改错了二是 Page Numbering 的起始值被设成了 0。检查方法打开 Title Block 符号看变量是不是纯粹的PageNumber。然后检查设计属性里的Page Numbering设置看有没有Start Number之类的选项被设成了 0。OrCAD 17.2 默认是从 1 开始的如果变成 0多半是被人改过。4.2 删掉一页后页码出现跳号这是 Sequential 模式下的经典问题。比如你有 10 页删掉第 5 页剩下的页面页码会变成 1,2,3,4,6,7,8,9,10——第 5 页的位置空了。这是因为 OrCAD 的自动编号是基于页面的创建顺序或者内部 ID来的删页不会触发重新编号。解决办法删页之后手动触发一次重新编号。操作是右键点击设计文件 →Properties→ 取消勾选Auto Page Numbering→ 点OK→ 再次打开属性 → 重新勾选Auto Page Numbering→ 点OK。这个取消再勾选的操作会强制 OrCAD 重新分配所有页码。4.3 交叉引用页码和 Title Block 页码不一致前面说过交叉引用的页码需要手动刷新。但有时候刷新了还是不一致原因可能是交叉引用缓存没清干净。这时候可以试试关闭整个工程删除工程目录下的.cache文件夹如果有的话重新打开工程再做一次交叉引用刷新。还有一个可能的原因是交叉引用里引用的页面被删除了但交叉引用记录还在。这种情况下刷新交叉引用会报错或者跳过需要手动找到那个失效的交叉引用并删除。4.4 层次化设计里子页页码不连续层次化设计里如果父页和子页混在一起编号Sequential 模式会让页码看起来很乱。比如父页是 1子页是 2另一个父页是 3它的子页是 4——但读图的人期望的是父页 1子页 1.1、1.2另一个父页 2子页 2.1、2.2。OrCAD 本身不支持这种1.1式的页码格式但可以通过 Logical 模式近似实现。Logical 模式下页码会按照层次遍历的顺序分配父页在前子页在后虽然不是小数点格式但至少能保证父页和子页的页码是连续的。如果你确实需要1.1这种格式只能通过自定义变量和脚本实现超出了本文的范围。我的建议是除非客户强制要求否则不要用小数点格式维护成本太高。5. 让页码维护成本降到零的几个实战习惯5.1 把 Title Block 做成模板一次配置终身受益我见过太多人每次新建工程都从零开始配 Title Block配完还不检查变量对不对。正确的做法是配置好一个标准的 Title Block 符号存到公司库或者个人库的固定路径下以后新建工程直接调用。这个 Title Block 里应该包含PageNumber、PageCount、Title、Date、Rev、Sheet等常用变量。其中Sheet变量在有些版本里和PageNumber是等价的但有些版本里Sheet是只读的不能手动改。建议统一用PageNumber。5.2 改页序之前先备份改完之后立刻刷新交叉引用页码相关的操作有一个特点改的时候很爽改完不刷新就埋雷。我的习惯是每次调整页序或者增删页面之后立刻做三件事——刷新页面CtrlShiftU、刷新交叉引用Tools→Cross Reference、导出一次 PDF 检查页码。这三件事加起来不到两分钟但能避免后面花两小时排查为什么交叉引用页码不对。5.3 用 DRC 检查页码相关的错误OrCAD 的 DRCDesign Rule Check功能可以检查一些页码相关的错误比如 Title Block 变量未定义、交叉引用失效等。虽然 DRC 主要针对电气规则但它的Project检查项里包含了一些图纸级别的检查。运行 DRC 的路径是Tools→Design Rules Check。在Project标签页里勾选Check Title Block和Check Cross Reference相关的选项然后运行。如果有页码相关的错误DRC 报告里会列出来。5.4 导出 PDF 时用按页序导出而不是按打开顺序导出OrCAD 导出 PDF 时有一个选项是Export Order可以选Sequential或者As Opened。如果你选As OpenedPDF 的物理页码会按照你打开页面的顺序来而不是按照设计里的页码顺序。这会导致 PDF 的物理页码和 Title Block 里的页码对不上。正确的做法是选Sequential这样 PDF 的物理页码和设计里的页码是一致的。这个选项在导出对话框的Options里默认可能是As Opened需要手动改。6. 关于页码自动标注我踩过的三个真实坑第一个坑是变量名大小写。OrCAD 的变量名是区分大小写的PageNumber和Pagenumber是两个不同的东西。我有一次手快在 Title Block 里写成了Pagenumber结果页码死活不显示排查了半小时才发现是大小写问题。从那以后我配置 Title Block 的时候都会从别的符号里复制变量名而不是手打。第二个坑是多 .dsn 工程的页码冲突。有一次我做一个项目工程里有三个 .dsn 文件每个 .dsn 都有自己的 Title Block。我以为PageCount会统计所有 .dsn 的总页数结果它只统计当前 .dsn 的。导致 PDF 里显示共 15 页但实际有 45 页。后来改成在每个 .dsn 里单独统计或者在顶层用一个汇总页来显示总页数。第三个坑是交叉引用刷新后页码变了但 PDF 没更新。OrCAD 的 PDF 导出是快照式的导出那一刻的页码是什么PDF 里就是什么。如果你导出 PDF 之后又改了页序PDF 不会自动更新。所以我的习惯是所有页码相关的操作做完之后最后一步才是导出 PDF而不是边改边导。这三个坑说起来都是小事但每一个都让我多花了至少半小时。希望你看完这篇之后能直接跳过这些坑5 分钟搞定页码配置把时间花在真正重要的电路设计上。
返回列表