回路図(Circuit Schematic)

回路図について

「回路図」(circuit schematic)は電子回路の標準的なグラフィカル表現です。コンポーネントを標準化されたシンボルで描き、配線で接続し、回路の製造やシミュレーションに必要な情報をすべて含みます。電子エンジニアは製品ライフサイクル全体にわたって使用します。初期コンセプトから PCB レイアウトレビュー、データシートのドキュメント作成まで。Schematex はコンポーネントシンボルについて IEEE Std 315-1975 / ANSI Y32.2 および IEC 60617 に準拠しています。

DSL には 2 つのモードがあります。ネットリストモード(推奨) は SPICE スタイルです。コンポーネントと接続先ノードを列挙するだけで、エンジンが自動的にレイアウトを計算します。各行は独立しており、空間的な状態を追跡する必要はありません。ポジショナルモードは手書き風にコンポーネントを Schemdraw のように方向に連ねていくスタイルです。どちらも同じ SVG を生成します。LLM による生成など、自動生成される場合は必ずネットリストモードを使用してください。エラーが発生する余地がはるかに小さくなります。

circuit·§ IEEE 315
↘ preview
100%
CE Amp (netlist) Circuit schematic with 6 components CE Amp (netlist) +V19VRc2.2kRb100kQ1Re1k
UTF-8 · LF · 6 lines · 97 chars✓ parsed·12.0 ms·5.0 KB SVG

1. 最小限の回路図(ネットリストモード — 推奨)

最小限の実用的な回路:電圧源、抵抗、グランドへのコンデンサによる RC ローパスフィルター。

circuit·§ IEEE 315
↘ preview
100%
RC Low-Pass Circuit schematic with 4 components RC Low-Pass +V15VR11kC1100n
UTF-8 · LF · 4 lines · 67 chars✓ parsed·1.0 ms·3.9 KB SVG

ネットリスト使用法の約 90% をカバーする 3 つのルール:

  1. circuit "タイトル" netlist で始めます(netlist キーワードでこのモードに切り替わります)。
  2. 各行は componentId nodeA nodeB value — 1 つのコンポーネント、接続先の 2 つ(またはそれ以上)の名前付きノード、そして値です。
  3. 同じノード名を共有する 2 つのコンポーネントは接続されます。 0gnd、または GND はグランドネット(グランドシンボルが自動的に描画されます)です。

コンポーネント ID のプレフィックスがシンボルを決定します:R*→抵抗、C*→コンデンサ、L*→インダクタ、V*→電圧源、D*→ダイオード、Q*→BJT。プレフィックスが曖昧な場合は type= を追加します(例:X1 a b type=opamp)。座標を計算する必要はなく、エンジンが接続性から配置を導出します。

コメントは単独行で # で始める必要があります。


2. コンポーネント

2.1 ネットリストモードの構文

ネットリスト行の形式:

componentId node... [value] [type=…] [label="…"]

位置ノードが最初に来ます。ノードのように見えない末尾のトークンが値になります。例:トランジスタ(4 ノード)と抵抗:

Q1 c b e npn        # collector, base, emitter nodes + model
Rc vcc c 2.2k       # two nodes + value

オプションの向きヒント。 エンジンは役割に基づいてシンボルの向きを自動決定します(ソースは上、グランドは下、その他は水平)。1 つのシンボルの向きを調整するには dir=right|left|up|down を追加します。接続性は変わらず、シンボルの向きだけが回転します:

C1 out 0 100n dir=down    # draw C1 as a shunt cap hanging to ground

これは軽量なレイアウト制御レイヤーです(Lcapy のコンポーネントごとの向き指定に相当)。ネットリストの接続性がメインの作業をこなし、dir= は外観を微調整するだけです。完全な幾何学的制御が必要な場合は、以下のポジショナルモードを使用します。

2.2 ポジショナルモードの構文(手書き風)

ポジショナルモードは回路図を幾何学的に手動レイアウトするためのものです。生成された出力にはネットリストモードを優先してください。ポジショナルモードは行をまたいで移動する「カーソル」を追跡する必要があり、LLM にとってエラーが発生しやすいです。

名前付きコンポーネント行の形式:

id: type direction [value="…"] [label="…"]

匿名コンポーネントは id: プレフィックスを省略します。パーサーが自動 ID を割り当てます。

R1: resistor right value="4.7k" label="R1"
capacitor down value="100n"

方向right(デフォルト)、leftupdown のいずれかです。現在のカーソル位置からコンポーネントがどちらへ伸びるかを制御します。

2.3 受動部品

DSL タイプ説明
resistorジグザグ(ANSI)または長方形(IEC)
potentiometer抵抗 + ワイパー矢印、3 ピン
rheostat2 ピン可変抵抗
thermistor_ntcNTC サーミスタ(別名:thermntc
thermistor_ptcPTC サーミスタ(別名:ptc
ldr光依存抵抗
varistor電圧依存抵抗
fuse標準ヒューズ
fuse_slow遅断ヒューズ(T 指定)
capacitor無極性コンデンサ
electrolytic_cap極性/電解コンデンサ(別名:ecap
variable_cap可変コンデンサ
inductor空心インダクタ
inductor_iron鉄心インダクタ
inductor_ferriteフェライト心インダクタ
variable_inductor可変インダクタ
ferrite_beadEMI フェライトビーズ
crystal水晶発振子(別名:xtal
transformer結合コイル(別名:xfmr
circuit·§ IEEE 315
↘ preview
100%
Passive components gallery Circuit schematic with 11 components Passive components gallery 1k100n10u
UTF-8 · LF · 15 lines · 335 chars✓ parsed·2.4 ms·3.8 KB SVG

2.4 ソースと電源

DSL タイプ説明
voltage_source円 + 極性(別名:vsource
current_source円 + 矢印(別名:isource
ac_source円 + サインシンボル(別名:acsource
battery交互の長/短端子線
vcc電源レール矢印(上向き)
groundアースグランド — 3 本の減少する線(別名:gnd
gnd_signalシグナルグランド — 塗りつぶし三角形
gnd_chassisシャーシグランド
gnd_digitalデジタルグランド
circuit·§ IEEE 315
↘ preview
100%
Sources and power gallery Circuit schematic with 18 components Sources and power gallery +5V9V120V
UTF-8 · LF · 26 lines · 381 chars✓ parsed·0.9 ms·5.1 KB SVG

2.5 半導体 — ダイオード

DSL タイプ説明
diode三角形 + カソードバー
zenerダイオード + 曲がったカソードバー
schottkyダイオード + S バー
ledダイオード + 外向き放射矢印
photodiodeダイオード + 内向き光矢印
varactorダイオード + 可変コンデンサ
tvs_diode双方向 TVS(2 本の曲がったバー)
bridge_rectifier4 ダイオードブリッジ、4 ピン
circuit·§ IEEE 315
↘ preview
100%
Diode types gallery Circuit schematic with 13 components Diode types gallery
UTF-8 · LF · 15 lines · 207 chars✓ parsed·0.4 ms·4.6 KB SVG

2.6 半導体 — トランジスタ

DSL タイプ説明
npnNPN BJT(別名:transistorbjt_npn
pnpPNP BJT(別名:bjt_pnp
darlington_npnNPN ダーリントン対
darlington_pnpPNP ダーリントン対
nmosN チャンネル MOSFET エンハンスメント(別名:mosfet_n
pmosP チャンネル MOSFET エンハンスメント(別名:mosfet_p
nmos_depletionN チャンネル MOSFET デプレッション
jfet_nN チャンネル JFET
jfet_pP チャンネル JFET
igbtIGBT
scrSCR / サイリスタ
triacTRIAC
diacDIAC
phototransistorNPN + 光矢印
optocouplerLED + フォトトランジスタ(絶縁ボックス内)
circuit·§ IEEE 315
↘ preview
100%
Transistor types gallery Circuit schematic with 10 components Transistor types gallery
UTF-8 · LF · 15 lines · 216 chars✓ parsed·0.4 ms·4.6 KB SVG

2.7 アナログ IC とオペアンプ

DSL タイプ説明
opamp三角形:+/− 入力、出力
comparator同形状、オープンコレクタ出力
schmitt_bufferバッファ + ヒステリシスシンボル
tri_state_bufferバッファ + イネーブルピン
instrumentation_amp3 オペアンプ INA ブロック
generic_icラベル付きピンを持つ設定可能な矩形(別名:ic
voltage_regulator3 端子ブロック:IN/GND/OUT(別名:reg
dc_dc_converterDC/DC ラベル付き 2 ポートブロック
555_timer8 ピン 555 ピン配置ブロック(別名:timer555
circuit·§ IEEE 315
↘ preview
100%
Analog IC gallery Circuit schematic with 10 components Analog IC gallery ++IC12348765
UTF-8 · LF · 14 lines · 227 chars✓ parsed·0.5 ms·3.8 KB SVG

2.8 スイッチとリレー

DSL タイプ説明
switch_spst単極単投
switch_spdt単極双投
switch_dpdt双極双投
push_no押しボタン常開
push_nc押しボタン常閉
relay_coilリレーコイル(2 ピン矩形)
relay_noリレー接点常開
relay_ncリレー接点常閉
circuit·§ IEEE 315
↘ preview
100%
Switch and relay gallery Circuit schematic with 12 components Switch and relay gallery
UTF-8 · LF · 17 lines · 297 chars✓ parsed·0.3 ms·4.2 KB SVG

2.9 電気機械と測定

DSL タイプ説明
motor円 + M
speakerコーン + ボックス
microphoneカプセルシンボル
buzzer圧電ブザー
ammeter円 + A
voltmeter円 + V
wattmeter円 + W
oscilloscope円 + 波形

2.10 コネクタとアノテーション

DSL タイプ説明
wireプレーンな配線セグメント
dot接続点ドット(T 字路マーカー)
labelネットラベル / フラグ
port名前付きポート(中空円)
test_pointTP マーカー
no_connectX — 意図的に未接続のピン
antennaアンテナスタブ
circuit·§ IEEE 315
↘ preview
100%
Passive components Circuit schematic with 7 components Passive components R11kC1100n9V
UTF-8 · LF · 9 lines · 183 chars✓ parsed·0.3 ms·3.4 KB SVG

3. 配線と分岐

3.1 配線セグメント

wire direction [N] は現在のカーソルから指定の方向に裸の配線を引きます。オプションの数値でピクセル単位の長さを設定します。

wire right
wire down 40
wire left 20

3.2 at: でカーソルをジャンプ

at: id.end は何も描かずにカーソルを名前付きアンカーに移動します。以前に配置したコンポーネントから分岐する場合に使用します。

R1: resistor right value="10k"
at: R1.end
C1: capacitor down value="100n"

名前付きアンカーのサフィックス:endstart。コンポーネントはダイアグラム全体でその ID を保持するため、以前に配置したコンポーネントにいつでもジャンプできます。

3.3 接続点ドット

dot(または net NAME: dot)を配置して T 字路をマークします。3 本以上の配線が交わる点です。ドットがない場合、交差する配線はクロスオーバー(接続なし)として描かれます。

R1: resistor right
dot
wire right           # continues from R1.end
at: R1.end
C1: capacitor down   # branches down from the same point

3.4 名前付きネット

net NAME で名前付きネットを宣言します。net NAME: dot はネットを宣言し、現在のカーソルに接続点ドットを配置してその位置を記憶します。後で at: NAME でそのネットのアンカーにジャンプできます。

net VOUT: dot
R2: resistor right value="10k"
at: VOUT
C1: capacitor down value="470n"

3.5 ネットラベル

label "text" direction? は現在のカーソル位置にテキストラベルを配置します。ラベルはカーソルを進めません。電源レールやシート間接続の命名に役立ちます。

label "VCC" up
label "GND" down
circuit·§ IEEE 315
↘ preview
100%
RC filter Circuit schematic with 9 components RC filter +5VR11kVoutC1100n
UTF-8 · LF · 11 lines · 217 chars✓ parsed·0.5 ms·3.4 KB SVG

4. ネットリストモード

ヘッダ行のタイトルの後に netlist を追加すると、SPICE スタイルのネットリスト解析に切り替わります。自動レイアウトエンジンがネット接続性からコンポーネントの位置を計算します。

circuit "Low-pass filter" netlist

4.1 ネットリスト行の形式

各行は:ID net1 net2 [net3…] [value] [key=value…]

  • ID — コンポーネント識別子。最初の文字がデフォルトタイプを決定します(SPICE プレフィックス規則)。
  • net1, net2, … — ピンが接続するネット名。0gndgroundearthpeagnddgndgndagnddvsscom(大文字小文字無視、オプションの _<word> または数値サフィックス — 例:gnd_refAGND_DIGEARTH1)に一致するネット名はすべてグランドネットに正規化されます。
  • value(オプションの裸のトークン)— コンポーネント値またはモデル名。
  • key=value(オプション)— label=value=type= の上書き。

4.2 SPICE プレフィックス → コンポーネントタイプ

プレフィックスデフォルトタイプピン順序
Rresistorp1, p2
Ccapacitorp1, p2
Linductorp1, p2
Ddiodeアノード(start)、カソード(end)
Vvoltage_sourceplus, minus
Icurrent_sourceplus, minus
Qnpnc, b, e
Mnmosd, g, s
Jjfet_nd, g, s
Sswitch_spstp1, p2
Ffusep1, p2
Bbatteryplus, minus
Krelay_coilp1, p2
U, Xgeneric_icpins= でカスタム
Wwirestart, end
Tterminal_blockpins= でカスタム(type=junction_box も可)

スコープ: Schematex circuit は 電気回路図のみ(IEEE 315 / IEC 60617)をカバーします。油圧・空気圧回路図(ISO 1219)は根本的に異なる視覚的文法(方向バルブエンベロープ、シリンダシンボル、圧力/戻り/ドレーンのラインスタイル)を使用するため、このエンジンではサポートされていません。EV*(電磁弁)、BOMBA*(ポンプ)、TANK*DIPOSIT* などの油圧プレフィックスは「型を推測できない」エラーで拒否されます。

4.3 トランジスタモデルの上書き

Q 行では、末尾のモデル名がタイプを上書きします:

Q1 c b e npn      # NPN BJT
Q2 c b e pnp      # PNP BJT
M1 d g s nmos     # N-channel MOSFET
M2 d g s pmos     # P-channel MOSFET

D 行も同様:

D1 anode cathode zener
D2 anode cathode led
D3 anode cathode schottky
D4 anode cathode photodiode

4.4 ネットリストの例

circuit·§ IEEE 315
↘ preview
100%
CE Amp (netlist) Circuit schematic with 6 components CE Amp (netlist) +V19VRc2.2kRb100kQ1Re1k
UTF-8 · LF · 6 lines · 97 chars✓ parsed·0.6 ms·5.0 KB SVG

5. 属性

ポジショナルモードとネットリストモードの両方で以下の key=value 属性が使用できます:

属性対象効果
label="…"全コンポーネント表示ラベル(リファレンス指定子)
value="…"全コンポーネント値アノテーション(1kΩ、100nF、5V)
at=id.endポジショナルコンポーネントこのコンポーネントを名前付きアンカーから開始
length=Nwire、一部の受動部品ピクセル単位の長さ

ポジショナルモードでは、コンポーネント行内の at= は先行する at: 行と同等です:

C1: capacitor down at=R1.end value="100n"

6. ラベルとコメント

  • ダイアグラムタイトル: circuit "RC Filter" — 最初の行のみ。
  • コンポーネントラベル: label="R1" 属性 — シンボルの横に表示されるリファレンス指定子。
  • 値アノテーション: value="4.7k" — コンポーネントの横または下に表示。
  • ネットラベル: label "VOUT" right — 現在のカーソルに配置されるスタンドアロンのネットフラグ。
  • コメント: 行の先頭(先頭の空白の後)の #

7. 予約語とエスケープ

行頭で予約済み(ポジショナル): circuit(ヘッダ)、at:netwirelabel

ネットリストモードで予約済み: 同じヘッダルールが適用されます。他の行はすべて SPICE コンポーネント行です。

グランドネットのエイリアス(ネットリストのみ): 0gndGNDGndgroundGround — すべて同じノードとして扱われます。

コンポーネント ID[a-zA-Z_][a-zA-Z0-9_]* に一致する必要があります。値内のスペースはクォートが必要です:value="10 kΩ"


8. よくあるミス

記述した内容パーサーの反応修正方法
resistor right 1kvalue= なしの裸の値)1k は不明な属性フラグとして解析され無視されるvalue="1k" を使用:resistor right value="1k"
at: R1.centercenter は認識されたアンカーサフィックスではない — カーソルは現在位置のままat: R1.end または at: R1.start を使用
wire 40(方向なし)方向のデフォルトは right。長さ 40 は受け入れられる明示的な方向を推奨:wire right 40
R1 vcc out 10k(ポジショナルモード)行が裸のタイプパターンにマッチ。R1 がタイプ名として読まれ、ルックアップ失敗ポジショナルモードでは R1: resistor right value="10k" を使用
Q1 c b e(ネットリスト、モデルなし)Q プレフィックスからデフォルトで npn になる — 正しいOK。明確にするために明示的に npn を追加することを推奨
net OUT の後 net OUT: dot なしに at: OUTOUT ネットは存在するがアンカーがない。ジャンプ先がないカーソル位置を登録するために net OUT: dot を使用
label VCC up(クォートなしラベル)VCC が方向トークンとして解析され、up と合わせてラベルテキストが失われるテキストをクォート:label "VCC" up

9. 文法(EBNF)

document        = header statement*

-- Positional mode --
header          = "circuit" ( WS quoted-string )? NEWLINE
statement       = blank | comment | component | wire | at | net-decl | label-stmt

component       = ( id ":" WS )? type WS direction? attrs* NEWLINE
wire            = "wire" ( WS direction )? ( WS integer )? NEWLINE
at              = "at:" WS anchor NEWLINE
anchor          = id "." ( "start" | "end" )
                | id                          // net name anchor

net-decl        = "net" WS id NEWLINE         // declare net only
                | "net" WS id ":" WS "dot" NEWLINE  // declare + place dot

label-stmt      = "label" WS quoted-string ( WS direction )? NEWLINE

component-attr  = "value=" quoted-string
                | "label=" quoted-string
                | "at=" anchor
                | "length=" integer

direction       = "right" | "left" | "up" | "down"
type            = // any value from §2 component tables

-- Netlist mode --
netlist-header  = "circuit" ( WS quoted-string )? WS "netlist" NEWLINE
netlist-stmt    = id WS net-ref+ ( WS kv-pair )* NEWLINE
                | comment
net-ref         = id | "0"                    // net name or ground alias
kv-pair         = id "=" ( quoted-string | bare-value )

id              = [a-zA-Z_] [a-zA-Z0-9_]*
integer         = [0-9]+
quoted-string   = '"' any-char-but-quote* '"'
comment         = "#" any NEWLINE

権威ある情報源:src/diagrams/circuit/parser.ts および src/diagrams/circuit/netlist.ts。これらがパーサーと異なる場合、パーサーが優先されます — イシューを開いてください。


10. 標準準拠

Schematex の回路図はコンポーネントシンボル形状について IEEE Std 315-1975 / ANSI Y32.2 に、国際バリアントについて IEC 60617 に準拠しています。ネットリスト構文は SPICE プレフィックス規則(Berkeley SPICE3 / LTspice / ngspice)に従います。

現在実装済みの内容:

  • ✅ 完全な受動部品セット:抵抗バリアント、コンデンサバリアント、インダクタバリアント、水晶発振子、トランス
  • ✅ ソースと電源:電圧源、電流源、AC 源、バッテリー、VCC、4 種類のグランドスタイル
  • ✅ ダイオードファミリー:ダイオード、ツェナー、ショットキー、LED、フォトダイオード、バラクタ、TVS、ブリッジ整流器
  • ✅ BJT:NPN、PNP、ダーリントン NPN/PNP
  • ✅ FET:NMOS/PMOS エンハンスメント、NMOS デプレッション、N/P チャンネル JFET
  • ✅ パワー半導体:IGBT、SCR、TRIAC、DIAC
  • ✅ オプトエレクトロニクス:フォトトランジスタ、オプトカプラー
  • ✅ アナログ IC:オペアンプ、コンパレータ、シュミットバッファ、トライステートバッファ、INA、汎用 IC、電圧レギュレータ、DC-DC コンバータ、555 タイマー
  • ✅ スイッチ:SPST、SPDT、DPDT、押しボタン常開、押しボタン常閉
  • ✅ リレー:コイル、常開接点、常閉接点
  • ✅ 電気機械:モーター、スピーカー、マイクロフォン、ブザー
  • ✅ 測定:電流計、電圧計、電力計、オシロスコープ
  • ✅ アノテーション:配線、ドット、ラベル、ポート、テストポイント、非接続、アンテナ
  • ✅ ポジショナル DSL:方向チェーン、at: 分岐、net 宣言
  • ✅ ネットリスト DSL:SPICE プレフィックスマッピング、モデル上書き、自動グランド合成
  • ⏳ BJT/FET/オペアンプの名前付きピン(base、collector、plus、minus、out)に対するピンレベルの at:
  • ⏳ ポジショナルモードでの自動ルーティング配線(配置されたシンボルを迂回するルーティング)
  • ⏳ ビット幅アノテーション付きバス配線(/8 スラッシュ)

参考文献:

  • IEEE Std 315-1975 (ANSI Y32.2): Graphic Symbols for Electrical and Electronics Diagrams
  • IEC 60617: Graphical symbols for diagrams
  • SPICE3 User's Manual, UC Berkeley — ネットリスト行形式の規則

11. 関連例


12. ロードマップ

計画中 — まだ解析できません。 今日の生成 DSL では使用しないでください。パーサーが拒否または無視します。

  • マルチピンコンポーネントの名前付きピンアンカーat: Q1.baseat: U1.outat: U1.plus により、長い wire の迂回なしにオペアンプと BJT のフィードバックループを配線できるようになります。
  • バス配線wire right bus=8/8 ビット幅スラッシュアノテーション付きの太い配線を描きます。
  • 自動ルーティング配線connect R1.end U1.minus でエンジンが配置されたシンボルを迂回して配線をルーティングします。
  • flipreverse 属性 — 方向軸に沿ってコンポーネントの極性/向きをミラーまたは反転します。
  • dashed 配線スタイル — RF シールド、ケーブルバンドル、または仮想接続用の破線。
  • 階層シートmodule "name" { … } グルーピング(ロジックゲートモジュールに類似)、マルチシート回路図のドキュメント化用。

早急にこれらが必要な場合は GitHub イシューで追跡してください。

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.