关于 matlab-write-pcb-layout
该 MATLAB 技能指导将 PCB 设计导出为 Gerber 制造文件,面向需要准备电路板生产资料的 RF 设计者。内容涵盖连接器选择、制造服务格式配置和射频连接器设置。
主要功能
- 01将 pcbComponent 或 pcbStack 导出为 Gerber
- 02配置制造服务的输出格式
- 03添加 RF 连接器及焊盘图形
- 04设置板框、阻焊层和坐标单位
适用场景
- 01为 OSH Park 或 Seeed 准备 PCB 制造文件
- 02为板级馈电位置配置 SMA 连接器
- 03从 MATLAB RF 设计生成制造文件包
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-write-pcb-layout安装后在 Claude Code 中输入/matlab-write-pcb-layout确认已加载。
附带文件manifest.yaml
详细介绍
将 PCB 布局写入制造文件
适用场景
- 将 pcbComponent 或 pcbStack 设计导出为 Gerber 制造文件
- 为 PCB 导出选择和配置 RF 连接器(SMA、SMB、MMCX 等)
- 为特定的 PCB 制造服务(OSH Park、Seeed、Advanced Circuits)设置输出格式
- 将 RFConnector 对象附加到目录组件,以进行带屏蔽分析
- 从 MATLAB RF 设计生成完整的制造文件包
不适用场景
- 将 Gerber 文件导入 MATLAB — 使用
matlab-read-pcb-layout - 构建 PCB 设计本身 — 使用
matlab-assemble-pcb-layout或相关设计技能 - 运行 EM 分析 — 使用
matlab-analyze-em
典型工作流
- 之前: 使用设计技能或
matlab-assemble-pcb-layout创建 pcbComponent;使用matlab-analyze-em验证性能;如有需要,使用matlab-optimize-pcb-design进行调优 - 本技能: 添加连接器并设置制造格式,然后导出为 Gerber
快速参考
| 任务 | 代码 |
|---|---|
| 导出 Gerber 文件 | [A,g] = gerberWrite(pcb, W, {C1,C2}) |
| SMA 连接器 | C = PCBConnectors.SMA_Cinch |
| 边缘发射 SMA | C = PCBConnectors.SMAEdge_Samtec |
| PCB 服务写入器 | W = PCBServices.OSHParkWriter |
| 自定义写入器 | W.Filename = 'name'; W.CoordUnits = 'mm' |
| RF 连接器对象 | rc = RFConnector |
| 为 PCB 设计连接器 | rc = design(RFConnector, pcb) |
gerberWrite — 导出为制造文件
gerberWrite 函数可从 pcbComponent 生成制造文件。
基本导出
p = pcbComponent; % Your designed component
W = PCBServices.OSHParkWriter;
W.Filename = 'my_design'; % Controls output zip/folder name (default: 'untitled')
C1 = PCBConnectors.SMA_Cinch;
C2 = PCBConnectors.SMA_Cinch;
[A, outputPath] = gerberWrite(p, W, {C1, C2});
输出
gerberWrite 会生成包含 Gerber 文件和钻孔文件的文件夹:
- 顶层/底层铜层
- 阻焊层
- 丝印层
- 钻孔文件
- 板框
输出 A 是一个包含导出元数据的 PCBWriter 对象。outputPath 是生成文件的路径。
PCBWriter 对象
PCBWriter 对象用于控制导出设置。
属性
| 属性 | 说明 |
|---|---|
Design | 包含 PCB 设计数据的结构体 |
Writer | PCB 服务写入器(输出格式) |
Connector | 连接器对象的元胞数组 |
UseDefaultConnector | 未指定连接器时使用默认连接器 |
ComponentBoundaryLineWidth | 外框线宽 |
PCBMargin | 组件周围额外的板边距(m) |
Soldermask | 'both'、'top'、'bottom' 或 'none' |
Solderpaste | 逻辑值 — 是否生成锡膏层 |
Font | 丝印上的文本字体 |
PCBConnectors — 连接器目录
为导出的电路板添加标准 RF 连接器。
可用连接器(25 种内置类型)
| 类别 | 连接器 |
|---|---|
| SMA 5 焊盘 | SMA、SMA_Cinch、SMA_Multicomp |
| SMA 边缘发射 | SMAEdge、SMAEdge_Cinch、SMAEdge_Samtec、SMAEdge_Amphenol、SMAEdge_Linx |
| SMB/SMC | SMB_Johnson、SMB_Pasternack、SMC_Pasternack、SMCEdge_Pasternack |
| MMCX | MMCX_Cinch、MMCX_Samtec |
| IPX/U.FL | IPX_Jack_Lighthorse、IPX_Plug_Lighthorse、UFL_Hirose |
| 同轴电缆 | Coax_RG11、Coax_RG58、Coax_RG59、Coax_RG174 |
| 半刚性电缆 | Semi_020、Semi_034、Semi_047、Semi_118 |
通过 PCBConnectors.<type> 访问。所有连接器都有以下通用属性:Type、Mfg、Part、Annotation、Impedance(默认值:50 欧姆)、Datasheet、Purchase。
5 焊盘连接器属性:TotalSize、GroundPadSize、SignalPadDiameter、PinHoleDiameter、IsolationRing、VerticalGroundStrips
边缘发射连接器属性:GroundPadSize、GroundSeparation、GroundPadIsolation、SignalPadSize、SignalGap、SignalLineWidth、EdgeLocation('north'|'south'|'east'|'west')、ExtendBoardProfile、FillGroundSide
同轴连接器属性:PinDiameter、DielectricDiameter、ShieldDiameter、AddThermals、ThermalsDiameter、ThermalsBridgeWidth
在 Gerber 导出期间,连接器会放置在馈电位置。它们定义焊盘封装和钻孔图案。
PCBServices — 制造服务写入器
写入器用于为特定制造服务配置输出。
可用服务(5 个内置写入器)
| 服务 | 描述 |
|---|---|
PCBServices.GerbLookWriter | GerbLook 在线查看器 |
PCBServices.ZofZWriter | ZofZ 3-D Gerber 查看器 |
PCBServices.AdvancedCircuitsWriter | Advanced Circuits 制造服务 |
PCBServices.SeeedWriter | Seeed Studio 制造服务 |
PCBServices.OSHParkWriter | OSH Park 制造服务 |
每个写入器都会根据制造厂的命名和图层约定格式化 Gerber 文件。
PCBServices 的关键属性: Filename、CoordUnits('in'/'mm')、CoordPrecision、CreateArchiveFile、DefaultViaDiameter、UseExcellon、BoardProfileFile、SameExtensionForGerberFiles、PostWriteFcn、Files
% Customize a service writer
w = PCBServices.AdvancedCircuitsWriter;
w.Filename = 'my_antenna';
w.CoordUnits = 'mm';
w.CoordPrecision = [3 4];
RF 连接器
RFConnector 用于建模连接到 PCB 结构的同轴连接器(SMA、SMB 等)。
rc = RFConnector;
rc.InnerRadius = 5e-4; % Center pin radius
rc.OuterRadius = 1.5e-3; % Outer conductor radius
rc.PinLength = 3e-3; % Pin insertion depth
rc.PinFootprint = 'Taper'; % 'Taper' or 'Circular'
rc.EpsilonR = 1.7341; % Dielectric fill permittivity
rc.Impedance = 50; % Characteristic impedance
附加到目录对象
将 Connector 附加到目录对象(例如 microstripLine)需要设置 IsShielded = true:
m = microstripLine;
m.IsShielded = true; % Required before setting Connector
m.Connector = RFConnector;
show(m);
为 pcbComponent 进行设计
design() 会自动调整连接器尺寸,使其与 PCB 对象匹配。这需要基于 FEM 的 pcbComponent — 目录对象(如 microstripLine)不支持 FEM:
pcb = pcbComponent; % Must be pcbComponent with SolverType='FEM'
pcb.SolverType = 'FEM';
rc = design(RFConnector, pcb);
从设计到制造的完整工作流
%% Design a filter
f = design(filterCoupledLine, 3e9);
%% Analyze
freq = linspace(1e9, 5e9, 101);
sp = sparameters(f, freq, 'SweepOption', 'interp');
rfplot(sp);
%% Export for manufacturing (convert to pcbComponent first)
pcb = pcbComponent(f);
W = PCBServices.OSHParkWriter;
C1 = PCBConnectors.SMA_Cinch;
C2 = PCBConnectors.SMA_Cinch;
[A, gPath] = gerberWrite(pcb, W, {C1, C2});
注意事项
-
连接器兼容性:并非所有连接器都适用于所有板厚。SMA 边缘发射连接器以标准基板高度为前提。请检查连接器焊盘尺寸是否与电路板匹配。
-
Gerber 光圈限制:复杂的曲线几何形状在 Gerber 格式中可能会用多边形近似。导出期间,非常精细的特征可能会损失分辨率 — 请检查目标制造服务支持的最小特征尺寸。
-
多个连接器需要使用元胞数组:将多个连接器传递给
gerberWrite时,请将它们包装在元胞数组中:gerberWrite(pcb, W, {C1, C2})。对象数组[C1, C2]会导致错误。 -
gerberWrite 需要 pcbComponent 或 pcbStack:
gerberWrite不适用于目录对象(例如microstripLine、filterHairpin)。如有需要,请先转换为pcbComponent。 -
目录对象上的连接器需要 IsShielded。 在目录对象(microstripLine 等)上设置
obj.Connector = RFConnector会导致错误:“SolverType property must be set to 'FEM'”,除非先设置obj.IsShielded = true。目录对象不直接支持 FEM — 请使用IsShielded = true启用 MoM 屏蔽模式。design(RFConnector, obj)仅适用于SolverType='FEM'的pcbComponent对象。 -
IsShielded 与有限电导率冲突。 设置
IsShielded = true会启用类似 FEM 的内部求解器路径。如果同时设置Conductor = metal("Copper")(有限电导率),则会出现错误:“FEM solver does not support finite conductivity. Set conductivity of conductor to Inf.” 使用IsShielded = true或Connector时,请让Conductor保持默认值(PEC)。 -
对 pcbcascade 结果使用 gerberWrite。
pcbcascade会返回一个pcbComponent,可将其直接传递给gerberWrite。不过,请确认端口数量与连接器数量匹配 — pcbcascade 会合并端口并移除已连接的端口,因此最终保留的端口数量可能与输入组件不同。 -
IsShielded 会将求解器切换为 FEM — 影响扫描选项。 设置
IsShielded = true会将内部求解器切换为 FEM。'SweepOption', 'interp'插值扫描针对 MoM 设计,在 FEM 下可能不可用或表现不同。请在添加IsShielded进行导出之前运行 S 参数分析,或使用 FEM 离散频率扫描。
相关技能
matlab-read-pcb-layout— 从 Gerber、ODB++ 和 Allegro 导入布局matlab-assemble-pcb-layout— 使用形状构建自定义 PCB 结构matlab-analyze-em— 导出前运行 EM 分析
版权所有 2026 The MathWorks, Inc.