mcpField
M
matlab-write-pcb-layout

matlab-write-pcb-layout

github.com/matlabその他1.2k71 回インストール1 日前に更新
リポジトリ

matlab-write-pcb-layout について

この MATLAB スキルは、RF 設計者向けに PCB 設計を Gerber 製造ファイルへ出力する手順を案内します。コネクターの選択、製造サービス向けの形式設定、RF コネクターの設定を扱います。

主な機能

  1. 01pcbComponent または pcbStack の Gerber 出力
  2. 02製造サービス別の出力形式設定
  3. 03RF コネクターとパッド形状の追加
  4. 04基板外形、ソルダーマスク、単位の設定

活用シーン

  1. 01OSH Park や Seeed 向け PCB ファイルの準備
  2. 02基板の給電位置への SMA コネクター設定
  3. 03MATLAB 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 など)を選択して設定する場合
  • 特定の基板製造サービス(OSH Park、Seeed、Advanced Circuits)向けに出力をフォーマットする場合
  • シールド解析用に RFConnector オブジェクトをカタログコンポーネントに取り付ける場合
  • MATLAB の RF 設計から完全な製造パッケージを生成する場合

使用しない場合

  • Gerber ファイルを MATLAB にインポートする場合 — matlab-read-pcb-layout を使用してください
  • PCB 設計自体を作成する場合 — matlab-assemble-pcb-layout または設計用スキルを使用してください
  • EM 解析を実行する場合 — matlab-analyze-em を使用してください

典型的なワークフロー

  1. 事前: 設計スキルまたは matlab-assemble-pcb-layout — pcbComponent を作成します。matlab-analyze-em — 性能を検証します。必要に応じて matlab-optimize-pcb-design — 調整します
  2. このスキル: コネクタと基板製造用のフォーマットを設定して Gerber に書き出します

クイックリファレンス

タスクコード
Gerber ファイルを書き出す[A,g] = gerberWrite(pcb, W, {C1,C2})
SMA コネクタC = PCBConnectors.SMA_Cinch
エッジランチ SMAC = 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 オブジェクトで書き出し設定を制御します。

プロパティ
プロパティ説明
DesignPCB 設計データを含む構造体
WriterPCB サービス用ライター(出力形式)
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/SMCSMB_Johnson、SMB_Pasternack、SMC_Pasternack、SMCEdge_Pasternack
MMCXMMCX_Cinch、MMCX_Samtec
IPX/U.FLIPX_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.GerbLookWriterGerbLook のオンラインビューアー
PCBServices.ZofZWriterZofZ の 3-D Gerber ビューアー
PCBServices.AdvancedCircuitsWriterAdvanced Circuits の製造サービス
PCBServices.SeeedWriterSeeed Studio の製造サービス
PCBServices.OSHParkWriterOSH 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});

注意点

  1. コネクターの互換性:すべてのコネクターが、すべての基板厚に対応しているわけではありません。SMA エッジランチコネクターは、標準的な基板高さを想定しています。コネクターのフットプリント寸法が基板に合っていることを確認してください。

  2. Gerber のアパーチャーの制限:複雑な曲線形状は、Gerber 形式ではポリゴンで近似される場合があります。非常に細かいフィーチャーはエクスポート時に解像度が失われる可能性があるため、対象の製造サービスでの最小フィーチャーサイズを確認してください。

  3. 複数のコネクターにはセル配列が必要:複数のコネクターを gerberWrite に渡す場合は、セル配列で囲みます:gerberWrite(pcb, W, {C1, C2})。オブジェクト配列 [C1, C2] を使うとエラーになります。

  4. gerberWrite には pcbComponent または pcbStack が必要:gerberWrite は、カタログオブジェクト(例:microstripLine、filterHairpin)では動作しません。必要に応じて、まず pcbComponent に変換してください。

  5. カタログオブジェクトでは Connector に IsShielded が必要です。 カタログオブジェクト(microstripLine など)で obj.Connector = RFConnector を設定すると、先に obj.IsShielded = true を設定していない限り、"SolverType property must be set to 'FEM'" というエラーが発生します。カタログオブジェクトは FEM を直接サポートしていません。MoM のシールドモードを使用するには、IsShielded = true を設定してください。design(RFConnector, obj) が動作するのは、SolverType='FEM' が設定された pcbComponent オブジェクトのみです。

  6. 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)のままにしてください。

  7. pcbcascade の結果に対する gerberWrite:pcbcascade は pcbComponent を返します。これを gerberWrite に直接渡すことができます。ただし、ポート数とコネクター数が一致していることを確認してください。pcbcascade はポートを結合し、接続されたポートを削除するため、残るポート数が入力コンポーネントのポート数と異なる場合があります。

  8. IsShielded はソルバーを FEM に切り替えます — スイープオプションに影響します。 IsShielded = true を設定すると、内部ソルバーが FEM に切り替わります。MoM 向けに設計された補間スイープ 'SweepOption', 'interp' は、FEM では利用できない場合や、異なる動作をする場合があります。エクスポート用に IsShielded を追加する前に S パラメーター解析を実行するか、FEM で離散周波数スイープを使用してください。

関連スキル

  • matlab-read-pcb-layout — Gerber、ODB++、Allegro からレイアウトをインポート
  • matlab-assemble-pcb-layout — 形状からカスタム PCB 構造を構築
  • matlab-analyze-em — エクスポート前に EM 解析を実行

Copyright 2026 The MathWorks, Inc.

コメント