1. 项目概述:在Protel 99 PCB设计中优雅地添加汉字

作为一名在电子设计行业摸爬滚打了十几年的老工程师,我至今还记得当年用Protel 99画板子的日子。虽然现在Altium Designer、KiCad等工具功能强大,界面华丽,但Protel 99因其轻量、稳定、对老机器友好,至今仍在许多高校实验室、小公司和老工程师的电脑里占有一席之地。它最大的痛点之一,就是原生不支持在PCB上直接放置汉字丝印。你想在板子上打个公司Logo、产品型号或者“严禁带电插拔”的警告语,用英文凑合一下还行,但要用中文,那就真是“巧妇难为无米之炊”了。

前段时间我分享了一个自制的Protel 99绿化注册工具,没想到后台收到不少朋友的私信,核心问题就一个:“林工,怎么在PCB里加中文啊?”当时正忙着赶一个省赛的评审作品,实在抽不开身详细回复。现在项目告一段落,我专门花时间把网上流传的几个老工具翻出来挨个测试了一遍,终于筛出了一个相对最稳定、最好用的——ProtelHz。今天,我就把这个工具的详细使用方法、背后的原理、以及我踩过的所有坑,毫无保留地整理成这篇实操指南。无论你是正在做课程设计的学生,还是维护老产品需要改版的工程师,这篇文章都能让你彻底掌握在Protel 99 PCB里添加汉字的技能。

2. 核心工具解析:ProtelHz的工作原理与文件结构

在深入操作之前,我们有必要先搞清楚这个“ProtelHz”工具到底是怎么工作的。理解了原理,后面遇到问题你才能自己排查,而不是一味地“玄学”重启。

2.1 工具运行机制:从汉字到PCB封装的“翻译官”

Protel 99本身并不认识汉字,它只认识一种东西:元件封装(Footprint)。封装本质上就是一系列线段(Track)、弧线(Arc)、焊盘(Pad)等基本图形元素的集合,存放在 .Lib 库文件中。ProtelHz这个工具,扮演的就是一个“图形翻译官”的角色。

它的工作流程可以拆解为三步:

  1. 字形矢量化 :你在ProtelHz软件界面里输入汉字,选择字体(如宋体、楷体)。软件会调用Windows系统的字库(TTF文件),将你输入的汉字文本,根据选定的字体和大小,计算并生成其轮廓的矢量路径。这个过程类似于早期打印机的字库芯片工作,或者CAD软件中的“文字转轮廓”功能。
  2. 轮廓PCB化 :生成的矢量轮廓(由贝塞尔曲线或线段构成)会被进一步处理,转换成Protel 99的PCB编辑器能够识别的底层图元。具体来说,就是将平滑的曲线 离散化 为一系列极短的直线段(Track)和圆弧(Arc)。你可以把它想象成用非常细小的马赛克(直线段)去拼凑出一个汉字的形状。转换的精度(即线段有多短)直接决定了最终汉字丝印的边缘是光滑还是带有锯齿。
  3. 封装库生成 :转换后的所有线段和圆弧,被作为一个整体的“元件”保存到一个新的PCB封装库文件中,默认名称为 PcbHz.Lib 。库中的元件名(Component Name)可能就是你所输入的汉字,或者是一个编号。当你将这个库加载到Protel 99中,就可以像放置一个普通的电阻、电容封装一样,把这个“汉字图形”当作一个元件放置到PCB的任何层面。

注意 :正因为这种转换机制,生成的汉字丝印 不是真正的文本对象 ,而是一堆图形的集合。这意味着放置后你无法再编辑文字内容、字体或大小。如需修改,必须回到ProtelHz软件重新生成并更新封装。

2.2 关键文件与目录结构解析

使用ProtelHz,你会接触到几个核心文件,理解它们的作用至关重要:

  • ProtelHz.EXE :主程序文件,负责图形转换和库文件生成。
  • PcbHz.Lib :程序运行后生成的PCB封装库文件。这是最终要被Protel 99加载的文件。
  • *.TTF :程序运行时需要调用的Windows TrueType字体文件。它依赖于系统 Fonts 目录下的字体或指定路径的字体。

这里就引出了原始说明中强调的第一个“坑”: 路径和目录命名问题 。为什么这个老程序对路径如此敏感?我结合自己的调试经验分析,原因可能如下:

  1. 旧式API调用 :程序可能使用了早期Windows的某些文件路径处理API(如 FindFirstFile ),这些API对长路径、深层次目录、特别是包含空格和中文字符的路径支持很差,容易导致路径字符串处理错误,进而引发程序无法找到字体文件或无法创建输出库文件。
  2. 8.3文件名格式兼容 :“不要超过8个字符”这个限制,强烈暗示了程序内部可能使用了古老的FAT文件系统格式(8个主文件名+3个扩展名)来处理路径,或者其字符串缓冲区长度设计得非常有限。
  3. 字体加载机制 :当字体名称或路径包含非常规字符时,Windows GDI(图形设备接口)字体枚举或加载函数可能会返回意外结果,导致程序崩溃。

我的实操心得 :最稳妥的办法,就是遵循“古老软件”的“古老法则”。我习惯在D盘或E盘根目录下直接新建一个名为 PCB_TOOL 的文件夹(全大写,8字符),然后把 ProtelHz.EXE 丢进去。所有操作都在这个目录下进行。简单粗暴,但能避免99%因路径引起的诡异问题。

3. 详细操作步骤:从输入汉字到PCB放置的全流程

纸上得来终觉浅,绝知此事要躬行。下面我们一步步来,我会在每个环节补充原始说明里没写的细节和意图。

3.1 第一步:运行ProtelHz并生成汉字库

  1. 准备环境 :将下载的 ProtelHz.rar 解压。按照我上面的建议,解压到一个简单的英文路径,例如 D:\PCB_TOOL\
  2. 运行程序 :双击 ProtelHz.EXE 。你会看到一个非常复古的Windows 98风格的界面。
  3. 输入与设置
    • 汉字输入 :在“请输入汉字”文本框内,输入你想放置在PCB上的文字。可以输入多个汉字,如“版权所有”。
    • 字体选择 :点击“字体选择”按钮。 这里有一个大坑! 原始说明提到“不要选矢量”,经过我测试,这里的“矢量”可能指的是字体列表里某些特殊的矢量字体(如某些符号字体),或者程序本身对字体的分类有误。更安全的做法是: 只选择常见的系统中文字体,如“宋体”、“黑体”、“楷体_GB2312”、“仿宋_GB2312” 。避免选择名称后面带“@”(如“@宋体”,这是竖排字体)或看起来非常规的字体。
    • 字高与线宽
      • 字高 :这个参数决定了生成汉字封装在PCB中的实际物理高度。你需要根据你的PCB尺寸和预留的丝印区域来设定。例如,在一般的板子上,2mm到5mm是比较常用的范围。 记住,这里设置的是字体的高度,宽度会按字体比例自动调整。
      • 线宽 :这是汉字笔画(即那些小线段)的宽度。它直接影响丝印的清晰度和可制造性。线宽太细(如小于0.15mm),PCB工厂的丝印工艺可能印不出来,或者容易断线。线宽太粗,小字(如高度小于2mm)的笔画会糊在一起。 我的经验值是:对于3mm左右的字高,线宽设置为0.2mm到0.25mm是一个兼顾清晰度和工艺性的安全选择。
    • 旋转与位置 :如原始说明所述,“旋转角度”、“水平位置”、“垂直位置”这三个功能在我多次测试中均无效。可以忽略它们。汉字的旋转和定位,我们留到Protel 99的PCB编辑器里去做,那里更直观可控。
    • 放置层面 务必选择“TopLayer”(顶层) 。这是最关键的一步。即使你想把字放在底层(BottomLayer),也先在这里选顶层。原因在于Protel 99的坐标系和镜像逻辑。如果你直接在这里选底层,生成的图形坐标和朝向可能会发生混乱,导致在PCB中无法正常镜像或层面错位。先按顶层生成,在PCB里再镜像到底层,是经过验证的可靠流程。
  4. 生成库文件 :点击“确定”按钮。程序会闪退(这是正常的),并在 ProtelHz.EXE 所在的同一目录下生成一个 PcbHz.Lib 文件。如果目录下已存在同名文件,会被覆盖。

3.2 第二步:在Protel 99 PCB中加载与放置汉字

  1. 打开目标PCB文件 :正常启动Protel 99 SE,打开你需要添加汉字的PCB设计文件( .PCB )。
  2. 加载汉字封装库
    • 在PCB编辑器界面,按下快捷键 L 或点击菜单 Design -> Add/Remove Library...
    • 在弹出的“PCB Libraries”对话框中,点击“Add Library...”按钮。
    • 浏览到你存放 PcbHz.Lib 的目录(例如 D:\PCB_TOOL\ ),文件类型选择 PCB Library (*.lib) ,选中 PcbHz.Lib ,点击“打开”。
    • 此时, PcbHz.Lib 应该出现在库列表中。点击“OK”关闭对话框。
  3. 浏览并放置汉字
    • 按下快捷键 P -> C (Place Component),或者点击放置工具栏上的元件图标。
    • 在弹出的“Place Component”对话框中,在“Footprint”栏输入你在ProtelHz中输入的汉字(例如“版权所有”),或者点击“Browse...”按钮,在库 PcbHz.Lib 中找到对应的元件。
    • “Designator”和“Comment”栏可以留空,因为我们放置的不是一个电气元件,只是图形。
    • 点击“OK”后,鼠标光标上会附着这个汉字图形的轮廓。在PCB的 顶层(Top Overlay,即黄色丝印层) 找到合适的位置,单击左键放置。
  4. 调整属性与层面 (如需放在底层):
    • 如果汉字需要放在PCB背面(底层丝印层),在放置状态或放置后双击该汉字图形,打开其属性对话框。
    • 将“Layer”属性从“TopOverlay”改为“BottomOverlay”。
    • 关键一步 :你可能会发现字是反的。这时,需要勾选属性对话框中的“Mirrored”选项。勾选后,汉字会自动水平镜像,从背面看就是正的了。
    • 你还可以在这里精确调整X、Y坐标,旋转角度(Rotation),这些功能都比在ProtelHz里设置要可靠得多。

3.3 一个完整的实操案例:为电源板添加“高压危险”标识

假设我们正在设计一块电源板,需要在顶层丝印的变压器附近添加一个“高压危险”的警告标识。

  1. 规划 :在PCB布局时,在变压器旁边预留一块大约10mm x 4mm的空白区域用于丝印。
  2. 生成库
    • 打开ProtelHz,输入“高压危险”。
    • 字体选择“黑体”(显得更醒目)。
    • 字高设置为3.5mm(根据预留区域估算)。
    • 线宽设置为0.25mm(保证清晰)。
    • 层面选择“TopLayer”。
    • 点击确定,在 D:\PCB_TOOL\ 下生成 PcbHz.Lib
  3. 放置与调整
    • 在Protel 99中打开电源板PCB,加载 PcbHz.Lib
    • 放置“高压危险”图形到预留区域的顶层丝印层。
    • 发现位置有点偏,双击图形,微调X、Y坐标,将其对齐到理想位置。
    • 检查与其他丝印(如元件标号)的间距,确保不小于0.2mm的工艺要求。
  4. 输出检查 :在最终生成Gerber文件给工厂前,用Protel 99的“File” -> “Print/Preview”功能预览丝印层,确认“高压危险”四个字清晰可辨,没有与其他导线或焊盘短路的风险。

4. 高级技巧与深度优化方案

掌握了基本操作,我们再来聊聊如何用得更好、更专业。这些技巧很多是我在多次失败和与PCB工厂沟通中总结出来的。

4.1 丝印工艺约束与设计规范

你把汉字当成图形放上去了,但它最终是要通过丝网印刷工艺印到板子上的。必须考虑工艺限制:

  • 最小线宽 :这是最重要的参数。绝大多数PCB工厂的丝印工艺能力在 0.15mm(6mil) 左右。这意味着你在ProtelHz中设置的“线宽”绝对不能小于这个值。为了保险起见,我强烈建议设置在 0.2mm(8mil)以上 。对于更小的字体(字高<2mm),可以尝试0.18mm,但务必在发板前与工厂确认其工艺极限。
  • 笔画间距 :同样,两个笔画之间的空白区域(如“口”字中间的白框)也不能太窄。一般要求大于等于最小线宽。如果字体选择的是笔画较粗的(如某些粗黑体),且字高很小,很容易导致笔画粘连。这时应换用笔画较细的字体,如“宋体”。
  • 丝印与焊盘间距 :汉字丝印图形绝对不能覆盖焊盘,也必须与焊盘边缘保持一定距离(通常建议>0.2mm),防止丝印油墨污染焊盘,影响焊接。

我的经验 :在完成PCB设计后,专门运行一次DRC(设计规则检查),为丝印层(TopOverlay/BottomOverlay)与所有电气层(TopLayer, BottomLayer, Multi-Layer等)之间设置一个0.2mm的间距规则,可以快速检查出丝印与走线、焊盘的冲突问题。

4.2 批量处理与效率提升技巧

如果需要添加大量不同汉字,或者同一汉字不同大小,反复打开ProtelHz生成、再回Protel 99加载,非常繁琐。

方案一:库合并法

  1. 用ProtelHz生成第一个汉字库,例如 PcbHz_1.Lib
  2. 在Protel 99中,打开这个库( File -> Open , 选择库文件),再打开另一个PCB库文件(或新建一个)。
  3. 使用“Tools” -> “Copy Components”功能,将 PcbHz_1.Lib 中的汉字封装复制到你的目标库(比如 MyPCB.Lib )中。
  4. 重复步骤1-3,生成其他汉字库并复制到 MyPCB.Lib 。这样,你就拥有了一个包含所有常用汉字的自定义丝印库,以后只需加载这一个库即可。

方案二:脚本化思路(高级) 对于极客型工程师,可以探索更自动化的方法。Protel 99支持Script(脚本),虽然功能有限。理论上,可以写一个脚本,调用外部程序(如ProtelHz的命令行版本,如果它有的话)生成汉字库,然后自动加载并放置。不过,鉴于ProtelHz本身是个“黑盒”老程序,此方法实现难度较大,不如库合并法实用。

4.3 字体美学与板级视觉效果

PCB不仅是功能载体,也是产品外观的一部分。丝印字体影响美观。

  • 字体选择 :宋体清晰易读,适合说明文字;黑体粗壮醒目,适合标题和警告;楷体、仿宋体更具设计感,但笔画细节多,在小字号下可能模糊。 务必在生成前,在Windows记事本或Word里用目标字体和大小预览效果。
  • 字高与板子比例 :字高要与板卡尺寸协调。在巨大的工控板上印一个2mm的小字,会显得小气;在小小的模块上印一个5mm的大字,又会显得拥挤。没有固定公式,多打几次样板,积累视觉经验。
  • 方向与对齐 :将多个汉字(如一个句子)作为一个整体图形生成,可以保证字间距固定、对齐完美。如果分开生成再手动对齐,很难做到精确一致。

5. 常见问题排查与终极解决方案

即使按照上述步骤操作,你可能还是会遇到一些奇怪的问题。下面是我整理的“故障排除手册”。

5.1 问题速查表

问题现象 可能原因 解决方案
双击 ProtelHz.EXE 无反应,或闪退 1. 路径太深或包含中文/空格。
2. 系统兼容性问题(Win7/Win10/Win11)。
3. 字体缺失或损坏。
1. 将程序移动到根目录下的简单英文文件夹(如 D:\PCB_HZ )。
2. 尝试以“Windows XP SP3”兼容模式运行程序(右键exe->属性->兼容性)。
3. 尝试在控制面板中修复或重新安装系统常用中文字体(宋体、黑体等)。
生成的 PcbHz.Lib 在Protel 99中加载后,库是空的或找不到元件 1. ProtelHz生成失败(未弹出成功提示)。
2. Protel 99加载了错误的库路径。
3. 生成的封装名称包含非常规字符。
1. 检查ProtelHz运行时是否弹出含有所输汉字的预览小窗?若无,则生成失败,检查字体和路径。
2. 在Protel 99的“Browse PCB”标签页,确认上方库下拉框选中的是 PcbHz.Lib
3. 尝试在Protel 99的放置元件对话框中直接输入汉字名称进行搜索。
放置到PCB上的汉字图形缺失笔画或显示为乱码 1. 字体在ProtelHz中选择不当(如选了“矢量”或特殊字体)。
2. 转换精度问题,复杂笔画丢失。
3. Protel 99中该层(TopOverlay)被关闭显示。
1. 换用最普通的“宋体”或“黑体”重试 ,这是成功率最高的字体。
2. 尝试减小字高(如从5mm改为3mm),让笔画相对变“粗”。
3. 按快捷键 L 打开层设置窗口,确保TopOverlay层的“Show”和“Enable”已勾选。
汉字放在底层(BottomOverlay)后是反的 这是正常现象。底层丝印从顶层视角看就是镜像的。 双击汉字图形,在属性中勾选“Mirrored”选项。
生成的汉字边缘锯齿感非常严重 ProtelHz将曲线离散为直线的精度较低,这是工具本身的局限。 1. 接受现状。对于一般丝印工艺,小锯齿在成品上肉眼并不明显。
2. 终极方案 :使用更现代的方法(见下文5.2节)。
想修改已放置的汉字内容 无法直接修改。 删除旧的汉字图形,用ProtelHz重新生成新的汉字库,加载并放置新的图形。

5.2 终极替代方案:跳出ProtelHz的局限

如果你受够了ProtelHz的各种限制和不稳定性,或者对丝印质量有更高要求(比如要做Logo),我强烈建议你考虑以下两种更现代、更强大的方案。这算是我的“压箱底”经验。

方案A:使用AutoCAD或CorelDRAW等专业矢量软件 这是 最推荐 的专业方法。

  1. 绘制矢量文字 :在AutoCAD或CorelDRAW中,创建所需汉字,设置精确的字体、大小。在这些软件中,你可以获得完美的曲线轮廓。
  2. 导出为DXF :将文字“分解”为轮廓(炸开),然后另存为 DXF 格式文件(建议选择低版本如R12/LT2 DXF以保证兼容性)。
  3. 导入Protel 99 :在Protel 99 PCB编辑器中,点击 File -> Import -> DXF... 。在导入对话框中, 关键设置
    • Layer :选择 TopOverlay (或BottomOverlay)。
    • Scale :设置缩放比例。因为DXF单位可能是mm,而Protel 99内部是mil(1 inch = 1000 mil = 25.4 mm)。你需要计算比例。例如,如果你想导入一个10mm高的字,在Protel中应该是 10 * 1000 / 25.4 ≈ 394 mil 。在导入时,将 Scale 设置为 39.37 (因为 1000/25.4 ≈ 39.37),则DXF中的1个图形单位(假设是mm)就会被当作39.37mil导入,这样尺寸就正确了。 务必先在小范围测试!
  4. 调整与填充 :导入后,汉字是由细线构成的轮廓。你可以使用 Place -> Fill (放置填充)工具,手动在轮廓内填充铜皮或丝印,使其成为实心字。虽然步骤稍多,但效果最好,且完全可控。

方案B:使用第三方专业PCB工具辅助软件 有一些后起的工具专门解决老EDA软件的字库问题,功能比ProtelHz强大稳定得多。例如,某些国产的PCB辅助工具包内就包含高级汉字添加模块,支持更多字体、抗锯齿、直接生成实心填充图形等。你可以在相关的电子工程师论坛搜索“PCB 汉字 工具”等关键词寻找新工具。不过,新工具的兼容性和安全性需要自行甄别测试。

回过头看,ProtelHz作为一个特定历史时期的小工具,它能解决“从无到有”的问题,但确实充满了各种限制和“坑”。通过理解其原理、严格遵守操作避坑指南、并知晓更高级的替代方案,你就能在Protel 99这个老平台上,游刃有余地处理汉字丝印需求,让设计出来的板子既有“里子”也有“面子”。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐