@shibayama/pdgkit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,507 @@
1
+ # PatentDSL(.pdg)記述ガイド — AI 用
2
+
3
+ このガイドは、特許図面を PatentDSL(`.pdg`)で記述する AI のための指示書です。ホスト(明細書作成ツールなど)のシステムプロンプトにそのまま注入して使います。読んだ AI が、説明から正しい `.pdg` を一度で再現できることを目的に書かれています。正典は [spec.md](spec.md) です。
4
+
5
+ ---
6
+
7
+ ## 0. 出力契約(最初に守ること)
8
+
9
+ - 出力は `.pdg` のコードブロックを 1 つだけにする。前後に説明文を付けない(明示的に求められた場合を除く)。
10
+ - コードブロックの 1 行目は必ず図種アサーション `#! kind: <block|flow|state|seq>` にする。
11
+ - 与えられた情報だけで判断し、足りない部分は最も妥当な構造で補って、完成した `.pdg` を出す。質問で止まらない。
12
+ - 検証エラー(diagnostics)を渡されたら、その指摘だけを直して `.pdg` 全体を再出力する。
13
+
14
+ 出力の形:
15
+
16
+ ````
17
+ ```pdg
18
+ #! kind: block
19
+ 10 = ...
20
+ ...
21
+ ```
22
+ ````
23
+
24
+ ---
25
+
26
+ ## 1. 言語の全体像
27
+
28
+ - 1 行 = 1 文。改行が文の終わり。文は 3 種類だけ(定義・包含・接続)。`#` から行末はコメント。
29
+ - 符号(ID)は `[A-Za-z0-9_*]+`。装置の構成要素には数値(`10`, `11`, `100`)、方法のステップには `S100`, `S110` のように `S` + 10 刻みを使うのが慣例。
30
+ - ラベルは「日本語 / english」の形。区切りは前後に空白のある ` / ` のみ。`A/D` や `I/O` のような語中の `/` はそのまま書ける。片方だけでもよい。
31
+
32
+ ---
33
+
34
+ ## 2. 3 つの文(正確な書式)
35
+
36
+ ### 定義 — 符号にラベルを付ける
37
+
38
+ ```pdg
39
+ 10 = 制御装置 / control device
40
+ 11 = CPU
41
+ 13 = "I/O インターフェース" / "I/O interface"
42
+ ```
43
+
44
+ ### 包含 — 親が子を内包する(スペース区切り)
45
+
46
+ ```pdg
47
+ 10 : 11 12 13
48
+ ```
49
+
50
+ ### 接続 — 線・矢印を引く(演算子の前後に半角スペース必須)
51
+
52
+ ```pdg
53
+ 11 -> 12 : 制御信号 / control signal
54
+ ```
55
+
56
+ 演算子:
57
+
58
+ | 演算子 | 線種 | 用途 |
59
+ |---|---|---|
60
+ | `-` | 単線 | 方向のない接続 |
61
+ | `->` | 矢印 | 方向のある接続(基本) |
62
+ | `<-` | 逆矢印 | `A <- B` は `B -> A` と同じ |
63
+ | `<->` | 双方向 | 相互通信 |
64
+ | `..` | 破線 | 論理的・補助・電源など |
65
+ | `.>` | 破線矢印 | 無線通信などの方向あり破線 |
66
+ | `=>` | 太矢印 | 主信号の強調 |
67
+
68
+ ---
69
+
70
+ ## 3. 絶対規則(破るとエラーになる)
71
+
72
+ 1. 接続演算子の前後には半角スペースを必ず置く。`11 - 12` は正、`11-12` は誤り。
73
+ 2. 接続は 1 行に 1 本だけ。連鎖記法 `A -> B -> C` は使えない。`A -> B` と `B -> C` の 2 行に分ける。
74
+ 3. 1 ファイルに 1 つの図だけを書く。複数の図は別々に出力する。
75
+ 4. 符号(ID)に使えるのは `A-Za-z0-9_*` だけ。`=` `:` `-` `>` `<` `.` `/` `#` `"` `(` `)`・空白は使えない。
76
+ 5. ラベルに ` / `(区切り扱いの空白付きスラッシュ)、`:`、`=`、`#`、`"` を含めたいときは、その語を `"..."` で囲む。
77
+ 6. 色・線の太さ・座標・フォントは指定できない(特許図面は黒線・無装飾)。
78
+
79
+ ---
80
+
81
+ ## 4. 図種の決め方(手順)
82
+
83
+ 図種は宣言ではなく、書いた構造から自動的に決まります。次の手順で「狙った図種」を確実に作ります。
84
+
85
+ ### 手順 1: 入力から図種を選ぶ
86
+
87
+ - 装置・システムの構成(何が何を含み、何と何がつながるか) → ブロック図 `block`
88
+ - 処理・方法の流れ、条件分岐 → フローチャート `flow`
89
+ - 状態とその間の遷移 → 状態遷移図 `state`
90
+ - 複数の主体(クライアントとサーバなど)間のやりとり → シーケンス図 `seq`
91
+
92
+ ### 手順 2: 「目印」で図種を成立させる
93
+
94
+ 図種は次の優先順位で推論されます(上にあるものが優先。最初に該当したもので確定)。
95
+
96
+ 1. 包含文 `:` が 1 つでもある → ブロック図
97
+ 2. ラベル末尾が `?` の符号がある → フローチャート
98
+ 3. 符号 `*` が登場する → 状態遷移図
99
+ 4. `<->`、または往復ペア(`A -> B` と `B -> A` の両方)がある → シーケンス図
100
+ 5. 上記以外(片方向の接続のみ) → フローチャート
101
+
102
+ 選んだ図種に応じて、必要な目印を入れ、他の図種の目印を混ぜないようにします。
103
+
104
+ | 狙う図種 | 入れる目印 | 入れてはいけないもの |
105
+ |---|---|---|
106
+ | block | 包含 `親 : 子...` | (`:` があれば最優先で block になるので他は気にしなくてよい) |
107
+ | flow | 片方向 `->` でつなぐ。条件分岐は末尾 `?` | 包含 `:`(あると block になる) |
108
+ | state | `*` と状態をつなぐ | 包含 `:`、末尾 `?` |
109
+ | seq | 主体間で往復させる、または `<->` | 包含 `:`、末尾 `?`、符号 `*` |
110
+
111
+ ### 手順 3: 1 行目で宣言する
112
+
113
+ `#! kind: block` のように、選んだ図種を 1 行目に必ず書く。これは検証で構造と照合され、食い違えばエラーになる。宣言と実際の構造を一致させること。
114
+
115
+ ---
116
+
117
+ ## 5. 形状の自動決定
118
+
119
+ 書く必要はなく、図種と構造から自動で決まります。狙って形を出すために知っておくこと。
120
+
121
+ - フローチャートで条件分岐の菱形を出すには、ラベル末尾を `?` にし、その符号を接続に登場させる。
122
+ - フローチャートで入次数 0 のノードは開始(角丸)、出次数 0 のノードは終了(角丸)になる。
123
+ - 状態遷移図で `*` は初期・終端の黒丸になる。
124
+
125
+ ---
126
+
127
+ ## 6. 符号の付け方
128
+
129
+ - 装置クレーム: 上位構成に大きい番号(`100` = システム)、その下の部に十の位(`10`, `20`)、さらに下の部品に一の位を加える(`11`, `12`)と階層が読みやすい。
130
+ - 方法クレーム: `S100`, `S110`, `S120` のように `S` + 10 刻み。後から間に挿入しやすい。
131
+ - 図に登場する符号はすべて定義する。定義せず接続だけに書いた符号は「暗黙ノード」になり、意図しない空ノードが現れる。
132
+ - 複数の図で同じ部品を指すときは、図をまたいで同じ符号・同じ名称を使う(この一貫性は書き手が管理する)。
133
+
134
+ ---
135
+
136
+ ## 7. 自然言語から組み立てる手順と例
137
+
138
+ 以降の `.pdg` はすべて検証済み(`validate` が通り、宣言どおりの図種になる)。発明の説明を図にする際の手本として使う。
139
+
140
+ ### 7.1 組み立ての手順
141
+
142
+ 1. 構成要素を洗い出す。文中の名詞(部・装置・ステップ・主体)を列挙する。
143
+ 2. 符号を割り当てる。装置は数値(上位ほど大きく、下位部品ほど小さく)、方法ステップは `S100`, `S110`。
144
+ 3. 包含関係を書く(ブロック図のとき)。「A は B と C を含む/備える/有する」→ `A : B C`。
145
+ 4. 接続を書く。「A が B へ〜を送る/出力する」→ `A -> B : ラベル`。1 行 1 本。
146
+ 5. ラベルを付ける。可能なら「日本語 / english」。
147
+ 6. 図種を宣言する。1 行目に `#! kind: ...`。
148
+ 7. 自己点検する(セクション 8)。
149
+
150
+ ### 7.2 詳しい組み立て(思考過程の例)
151
+
152
+ 指示: 「センサ端末は、温度センサと加速度センサを有する検出部と、取得部および判定部を有する処理部と、通信部とを備える。検出部のセンサ値は処理部へ送られ、処理部の送信データは通信部を介してゲートウェイへ無線送信される。」
153
+
154
+ - (1) 構成要素: センサ端末 / 検出部 / 温度センサ / 加速度センサ / 処理部 / 取得部 / 判定部 / 通信部 / ゲートウェイ(外部)。
155
+ - (2) 符号: 100=センサ端末、10=検出部、11=温度センサ、12=加速度センサ、20=処理部、21=取得部、22=判定部、30=通信部、200=ゲートウェイ。
156
+ - (3) 包含: 端末は検出部・処理部・通信部を備える(`100 : 10 20 30`)。検出部は 2 センサを有する(`10 : 11 12`)。処理部は取得部・判定部を有する(`20 : 21 22`)。
157
+ - (4) 接続: 検出部→処理部(センサ値)、処理部→通信部(送信データ)、通信部→ゲートウェイ(無線なので破線矢印 `.>`)。
158
+ - (5)(6) ラベルを付け、包含があるので `#! kind: block`。
159
+
160
+ ```pdg
161
+ #! kind: block
162
+ 100 = センサ端末 / sensor terminal
163
+ 10 = 検出部 / detector
164
+ 11 = 温度センサ / temperature sensor
165
+ 12 = 加速度センサ / acceleration sensor
166
+ 20 = 処理部 / processor
167
+ 21 = 取得部 / acquisition unit
168
+ 22 = 判定部 / determination unit
169
+ 30 = 通信部 / communication unit
170
+ 200 = ゲートウェイ / gateway
171
+ 100 : 10 20 30
172
+ 10 : 11 12
173
+ 20 : 21 22
174
+ 10 -> 20 : センサ値 / sensor value
175
+ 20 -> 30 : 送信データ / tx data
176
+ 30 .> 200 : 無線 / wireless
177
+ ```
178
+
179
+ ### 7.3 図種別の例
180
+
181
+ #### ブロック図(基本)
182
+
183
+ 指示: 「制御装置が CPU、メモリ、I/O インターフェースを内蔵し、I/O インターフェースが外部機器へ信号を出力する。」
184
+
185
+ ```pdg
186
+ #! kind: block
187
+ 10 = 制御装置 / control device
188
+ 11 = CPU
189
+ 12 = メモリ / memory
190
+ 13 = "I/O インターフェース" / "I/O interface"
191
+ 20 = 外部機器 / external device
192
+ 10 : 11 12 13
193
+ 13 -> 20 : 信号 / signal
194
+ ```
195
+
196
+ #### ブロック図(階層 + 外部機器、有線・無線)
197
+
198
+ 指示: 「システム本体は制御部(CPU・メモリ)と通信部(無線部・有線部)を備える。無線部は外部端末と無線で、有線部は外部サーバと有線でつながり、外部サーバと外部端末は相互通信する。」
199
+
200
+ 考え方: 多段の包含。`<->` を含むが、包含 `:` があるため必ずブロック図になる(`:` が最優先)。
201
+
202
+ ```pdg
203
+ #! kind: block
204
+ 100 = システム本体 / Main system
205
+ 10 = 制御部 / Control
206
+ 20 = 通信部 / Comm
207
+ 11 = CPU
208
+ 12 = メモリ / memory
209
+ 21 = 無線部 / wireless
210
+ 22 = 有線部 / wired
211
+ 30 = 外部サーバ / external server
212
+ 40 = 外部端末 / external terminal
213
+ 100 : 10 20
214
+ 10 : 11 12
215
+ 20 : 21 22
216
+ 21 .> 40 : 無線 / wireless
217
+ 22 -> 30 : 有線 / wired
218
+ 30 <-> 40 : 通信 / comm
219
+ ```
220
+
221
+ #### ブロック図(制御ループ / フィードバック)
222
+
223
+ 指示: 「制御システムは制御部・駆動部・センサ部・対象装置を備える。制御部が駆動部へ指令を出し、駆動部が対象装置を駆動し、センサ部が対象装置の状態を検出して制御部へ測定値を戻す。」
224
+
225
+ 考え方: フィードバックの戻り線は破線矢印 `.>` にすると読みやすい。
226
+
227
+ ```pdg
228
+ #! kind: block
229
+ 100 = 制御システム / control system
230
+ 10 = 制御部 / controller
231
+ 20 = 駆動部 / driver
232
+ 30 = センサ部 / sensor unit
233
+ 40 = 対象装置 / controlled object
234
+ 100 : 10 20 30 40
235
+ 10 -> 20 : 指令 / command
236
+ 20 -> 40 : 駆動 / drive
237
+ 40 .> 30 : 状態 / state
238
+ 30 -> 10 : 測定値 / measured value
239
+ ```
240
+
241
+ #### フローチャート(条件分岐)
242
+
243
+ 指示: 「開始後に条件 A を判定し、真なら処理 X、偽なら処理 Y を行い、いずれも終了へ進む。」
244
+
245
+ 考え方: 包含を使わず片方向でつなぐ。条件は末尾 `?` で菱形。分岐に Yes / No ラベル。
246
+
247
+ ```pdg
248
+ #! kind: flow
249
+ S100 = 開始 / Start
250
+ S110 = 条件A? / "Condition A?"
251
+ S120 = 処理X / Process X
252
+ S130 = 処理Y / Process Y
253
+ S140 = 終了 / End
254
+ S100 -> S110
255
+ S110 -> S120 : Yes
256
+ S110 -> S130 : No
257
+ S120 -> S140
258
+ S130 -> S140
259
+ ```
260
+
261
+ #### フローチャート(並列 / フォーク・ジョイン)
262
+
263
+ 指示: 「開始後に分岐し、経路 A と経路 B を並行して行い、合流してから終了する。」
264
+
265
+ ```pdg
266
+ #! kind: flow
267
+ S100 = 開始 / Start
268
+ S110 = 分岐 / Branch
269
+ S120 = 経路A / Path A
270
+ S130 = 経路B / Path B
271
+ S140 = 合流 / Join
272
+ S150 = 終了 / End
273
+ S100 -> S110
274
+ S110 -> S120
275
+ S110 -> S130
276
+ S120 -> S140
277
+ S130 -> S140
278
+ S140 -> S150
279
+ ```
280
+
281
+ #### フローチャート(リトライのループ)
282
+
283
+ 指示: 「試行して成功かを判定する。成功なら完了。失敗なら待機してから再試行する。」
284
+
285
+ 考え方: ループがあるが、末尾 `?` があるためフローチャートになる(`?` は往復判定より優先)。
286
+
287
+ ```pdg
288
+ #! kind: flow
289
+ S100 = 開始 / Start
290
+ S110 = 試行 / Attempt
291
+ S120 = 成功? / "Success?"
292
+ S130 = 完了 / Done
293
+ S140 = 待機 / Wait
294
+ S100 -> S110
295
+ S110 -> S120
296
+ S120 -> S130 : Yes
297
+ S120 -> S140 : No
298
+ S140 -> S110
299
+ ```
300
+
301
+ #### 状態遷移図(基本)
302
+
303
+ 指示: 「待機から起動で動作中になり、停止で待機へ戻る。動作中に異常が起きるとエラーになり、リセットで待機へ戻る。」
304
+
305
+ 考え方: 初期は `*`。各遷移にきっかけをラベルで。
306
+
307
+ ```pdg
308
+ #! kind: state
309
+ S1 = 待機 / Idle
310
+ S2 = 動作中 / Running
311
+ S3 = エラー / Error
312
+ * -> S1
313
+ S1 -> S2 : 起動 / start
314
+ S2 -> S1 : 停止 / stop
315
+ S2 -> S3 : 異常 / fault
316
+ S3 -> S1 : リセット / reset
317
+ ```
318
+
319
+ #### 状態遷移図(初期と終端)
320
+
321
+ 指示: 「待機で受信すると処理中になり、完了で待機へ戻る。処理中に異常終了すると終了状態になる。」
322
+
323
+ 考え方: 初期も終端も `*` で表す(`* -> S1` が初期、`S2 -> *` が終端)。
324
+
325
+ ```pdg
326
+ #! kind: state
327
+ S1 = 待機 / Idle
328
+ S2 = 処理中 / Processing
329
+ * -> S1
330
+ S1 -> S2 : 受信 / receive
331
+ S2 -> S1 : 完了 / done
332
+ S2 -> * : 異常終了 / abort
333
+ ```
334
+
335
+ #### シーケンス図(基本)
336
+
337
+ 指示: 「クライアントがサーバへ認証要求を送り、サーバがトークンを返す。続いてリソース要求と応答を行う。」
338
+
339
+ 考え方: 主体間のやりとり。往復するので seq になる。行の順序がそのまま時系列。
340
+
341
+ ```pdg
342
+ #! kind: seq
343
+ 100 = クライアント / client
344
+ 200 = サーバ / server
345
+ 100 -> 200 : 認証要求 / auth request
346
+ 200 -> 100 : トークン / token
347
+ 100 -> 200 : リソース要求 / resource request
348
+ 200 -> 100 : リソース応答 / resource response
349
+ ```
350
+
351
+ #### シーケンス図(双方向通信)
352
+
353
+ 指示: 「端末がサーバへ接続要求し、サーバが応答する。確立後にデータを双方向でやりとりし、最後に端末が切断する。」
354
+
355
+ 考え方: 双方向のやりとりは `<->`。`<->` があれば seq になる。
356
+
357
+ ```pdg
358
+ #! kind: seq
359
+ 100 = 端末 / terminal
360
+ 200 = サーバ / server
361
+ 100 -> 200 : 接続要求 / connect
362
+ 200 -> 100 : 応答 / response
363
+ 100 <-> 200 : データ通信 / data exchange
364
+ 100 -> 200 : 切断 / disconnect
365
+ ```
366
+
367
+ ### 7.4 クレーム文からの変換
368
+
369
+ #### 装置クレーム → ブロック図
370
+
371
+ 「〜と、〜と、〜と、を備える(有する/含む)装置」という文は、装置を親、各構成要素を子とするブロック図になる。
372
+
373
+ 指示: 「撮像部と、前記撮像部が取得した画像を処理する画像処理部と、処理結果を表示する表示部と、を備える撮像装置。」
374
+
375
+ 考え方: 撮像装置=10 が撮像部=11・画像処理部=12・表示部=13 を備える。「前記撮像部が取得した画像を処理する」→ 11 から 12 へ画像。「処理結果を表示する」→ 12 から 13 へ処理結果。
376
+
377
+ ```pdg
378
+ #! kind: block
379
+ 10 = 撮像装置 / imaging device
380
+ 11 = 撮像部 / imaging unit
381
+ 12 = 画像処理部 / image processor
382
+ 13 = 表示部 / display unit
383
+ 10 : 11 12 13
384
+ 11 -> 12 : 画像 / image
385
+ 12 -> 13 : 処理結果 / result
386
+ ```
387
+
388
+ #### 方法クレーム → フローチャート
389
+
390
+ 「〜するステップと、〜するステップと、…を含む方法」という文は、各ステップを順につないだフローチャートになる。判定のステップは末尾 `?` で菱形にする。
391
+
392
+ 指示: 「画像を取得するステップと、前記画像から特徴量を抽出するステップと、欠陥の有無を判定するステップと、欠陥が有る場合に警告を出力するステップと、を含む検査方法。」
393
+
394
+ 考え方: 取得=S100、抽出=S110、欠陥あり?=S120(判定→菱形)、警告=S130、終了=S140。判定で Yes/No に分岐。
395
+
396
+ ```pdg
397
+ #! kind: flow
398
+ S100 = 画像を取得 / Acquire image
399
+ S110 = 特徴量を抽出 / Extract features
400
+ S120 = 欠陥あり? / "Defect?"
401
+ S130 = 警告を出力 / Output alert
402
+ S140 = 終了 / End
403
+ S100 -> S110
404
+ S110 -> S120
405
+ S120 -> S130 : Yes
406
+ S120 -> S140 : No
407
+ S130 -> S140
408
+ ```
409
+
410
+ ---
411
+
412
+ ## 8. 出力前の自己点検
413
+
414
+ 出力する前に、次をすべて確認する。
415
+
416
+ - 1 行目が `#! kind: ...` で、宣言した図種が実際の構造と一致している。
417
+ - 接続演算子の前後に半角スペースがある。連鎖記法(1 行に複数の接続)を使っていない。
418
+ - 図に登場する符号をすべて定義した(暗黙ノードが意図的でない)。
419
+ - 狙った図種以外の目印(`:` `?` `*` `<->`)を誤って入れていない。
420
+ - ラベルの予約記号は必要に応じて `"..."` で囲んだ。
421
+ - 1 ファイルに 1 つの図だけを書いている。
422
+
423
+ ---
424
+
425
+ ## 9. よくある誤りと修正
426
+
427
+ | 誤り | 直し方 |
428
+ |---|---|
429
+ | `A -> B -> C` と 1 行に複数接続 | `A -> B` と `B -> C` に分ける |
430
+ | `11-12`(スペースなし) | `11 - 12` にする |
431
+ | フローチャートにしたいのに `:` を書いた | 包含 `:` を消す(`:` があると必ずブロック図になる) |
432
+ | 菱形にしたいのに長方形になる | ラベル末尾を `?` にし、そのノードを接続に登場させる。図がブロック図になっていないか確認 |
433
+ | 同じ符号を 2 回定義(警告) | 重複定義を 1 つにまとめる |
434
+ | 宣言した図種と推論が不一致 | 目印(`:` / 末尾 `?` / `*` / 往復・`<->`)を見直すか、宣言を修正 |
435
+
436
+ ---
437
+
438
+ ## 10. 図種別テンプレート
439
+
440
+ 必要に応じてコピーして書き換える。
441
+
442
+ ブロック図:
443
+
444
+ ```pdg
445
+ #! kind: block
446
+ 100 = システム / System
447
+ 10 = サブシステムA / Subsystem A
448
+ 20 = サブシステムB / Subsystem B
449
+ 100 : 10 20
450
+ 10 -> 20 : データ / data
451
+ ```
452
+
453
+ フローチャート:
454
+
455
+ ```pdg
456
+ #! kind: flow
457
+ S100 = 開始 / Start
458
+ S110 = 処理 / Process
459
+ S120 = 終了 / End
460
+ S100 -> S110
461
+ S110 -> S120
462
+ ```
463
+
464
+ 状態遷移図:
465
+
466
+ ```pdg
467
+ #! kind: state
468
+ S1 = 状態1 / State 1
469
+ S2 = 状態2 / State 2
470
+ * -> S1
471
+ S1 -> S2 : 遷移 / transition
472
+ S2 -> S1 : 復帰 / return
473
+ ```
474
+
475
+ シーケンス図:
476
+
477
+ ```pdg
478
+ #! kind: seq
479
+ 100 = 主体A / Actor A
480
+ 200 = 主体B / Actor B
481
+ 100 -> 200 : 要求 / request
482
+ 200 -> 100 : 応答 / response
483
+ ```
484
+
485
+ ---
486
+
487
+ ## 11. 出力フォーマットの指定(レンダリングも行う場合)
488
+
489
+ `.pdg` を書くだけでなく、あなた自身が pdgkit で描画まで行う環境(コードを実行できるチャットやエージェント)では、利用者の自然文の指定を次のコマンド/オプションに対応させる。指定が無ければ SVG を既定とする。描画の前に必ず検証(`pdgkit validate` / `validate()`)を通す。
490
+
491
+ | 利用者の言い方(例) | CLI | ライブラリ |
492
+ |---|---|---|
493
+ | SVG で / ベクタで | `pdgkit render fig.pdg -o fig.svg` | `renderToSvg(src)` |
494
+ | PNG で / 画像で | `pdgkit render fig.pdg --to png -o fig.png` | `renderToPng(src)` |
495
+ | JPEG で | `pdgkit render fig.pdg --to jpeg -o fig.jpg` | `renderToJpeg(src)` |
496
+ | PDF で / 出願用に | `pdgkit render fig.pdg --to pdf -o fig.pdf` | `renderToPdf(src)` |
497
+ | PowerPoint で / PPTX で / スライドに | `pdgkit render fig.pdg --to pptx -o fig.pptx` | `renderToPptx(src)` |
498
+ | 編集できる PPTX で / 図形として編集できるように | `pdgkit render fig.pdg --to pptx --editable -o fig.pptx` | `renderToPptx(src, { editable: true })` |
499
+ | 符号表(符号の説明)も | `pdgkit refs fig.pdg --format md`(または `csv`) | `refsToMarkdown(parse(src))` |
500
+
501
+ 言語の指定は上記に足す: 日英併記なら `--lang both`(`{ lang: 'both' }`)、英語なら `--lang en`(`{ lang: 'en' }`)。既定は日本語。
502
+
503
+ 例: 「この図を編集できる PPTX にして」→ `.pdg` を書いて `pdgkit validate` を通したうえで、`pdgkit render fig.pdg --to pptx --editable -o fig.pptx` を実行する。
504
+
505
+ ---
506
+
507
+ PatentDSL / pdgkit — Copyright (c) 2026 しばやま, MIT License.