共计 1657 个字符,预计需要花费 5 分钟才能阅读完成。
1. 丝印设计基础要素与可制造性
PCB 丝印层(Silkscreen)是电路板表面用于标注元件位置、方向、参数等信息的白色油墨层。新手常忽略其设计规范,导致后续生产问题。核心参数包括:

- 线宽 :建议 0.15mm~0.2mm(6mil~8mil),过细易断线,过粗可能导致字符粘连
- 字体高度 :最小 0.8mm(32mil),常用 1.0mm~1.5mm,BGA 等密集区域可降至 0.6mm
- 间距规则 :字符间距≥0.2mm,与焊盘边缘距离≥0.3mm(防止阻焊覆盖)
实际案例:某设计使用 0.1mm 线宽丝印,导致小批量生产时 30% 板子出现字符缺失,调整至 0.15mm 后问题消失。
2. Allegro Skill 丝印操作指令详解
Allegro 提供两种主要丝印创建方式,适用不同场景:
- axlDBCreateText:创建矢量文字(推荐)
axlDBCreateText(?layer "SILKSCREEN_TOP" ?text "R1" ?origin list(10 10) ?textBlock "SILK_1.0mm" ?rotation 90) textBlock参数关联字体库定义(如 SILK_1.0mm 对应字高 1.0mm)-
支持旋转角度(0/90/180/270 度)
-
axlDBCreateShape:绘制自定义图形(用于特殊符号)
axlDBCreateShape('line ?layer"SILKSCREEN_TOP" ?width 0.15 ?pts list(list(5 5) list(10 5))) - 适合绘制极性标记(如圆圈、三角形)
- 需手动控制线宽和坐标精度
3. 自动化丝印布局 Skill 脚本示例
以下脚本实现元件位号自动对齐与极性标记:
procedure(autoPlaceRefDes()
let((desList)
desList = axlDBGetDesign()->components
foreach(comp desList
; 获取元件中心坐标
compXY = axlPolygonCenter(axlDBGetShape(comp->bBox))
; 创建位号文字(位于元件上方 0.5mm 处)axlDBCreateText(?layer "SILKSCREEN_TOP"
?text comp->refdes
?origin list(compXY->x compXY->y + 0.5)
?textBlock "SILK_1.0mm")
; 添加极性标记(仅含极性的元件)when(comp->pin1
axlDBCreateShape('circle ?layer"SILKSCREEN_TOP"
?width 0.15
?center list(compXY->x-0.3 compXY->y-0.3)
?radius 0.2)
)
)
)
)
关键参数说明:
– comp->bBox 获取元件边界框
– axlPolygonCenter 计算中心坐标
– pin1 判断极性元件
4. 生产常见问题解决方案
| 问题现象 | 原因分析 | 解决方法 |
|---|---|---|
| 丝印与焊盘重叠 | 间距规则未设置 | 使用 axlDRCCheckSilk 命令预检 |
| 字符断线 | 线宽<0.1mm | 统一使用 0.15mm 以上线宽 |
| 极性标记方向错误 | 脚本未考虑元件旋转 | 同步读取 comp->rotation 参数 |
| 小字符模糊 | 字高<0.6mm | 调整 textBlock 或避开密集区域 |
5. 丝印设计 Checklist
- [] 所有位号可见且不与焊盘 / 过孔重叠
- [] 极性标记方向与元件实际极性一致
- [] 最小字高≥0.8mm(特殊区域≥0.6mm)
- [] 线宽≥0.15mm
- [] 与板边距离>1.0mm(避免铣切损坏)
实践文件与思考题
测试板 BRD 文件下载 (含 BGA/QFN 等典型封装)
思考题 :BGA 区域需避免丝印覆盖焊球,可通过以下 Skill 逻辑实现:
1. 识别器件是否为 BGA(通过 pad 数量或器件属性)
2. 获取 BGA 区域外框坐标
3. 在自动布局时添加条件判断:
unless(axlGeoPointInShape(compXY bgaShape)
; 执行丝印放置
)
掌握这些基础规范后,可逐步尝试更复杂的自动化脚本开发,如根据元件高度动态调整丝印位置等进阶技巧。
正文完
发表至: 未分类
近两天内
