KiCad 5.0 はプラグインを使って部品表(BOM)ファイルを簡単に生成できる。
回路図エディタEeschemaの「部品表(BOM)の生成」ボタンをクリックするとダイヤログが開く。ここでBOMファイル出力プラグインを呼び出し「生成」を実行するとBOMファイルが得られる。図1
実習テキスト「KiCad Basics for 5.0」を購入いただいた方から次のようなお問い合わせがあった。
- お問い合わせ
BOM生成でテキストの説明に従いに実行すると下記の様なエラーが出ます。
—–
(エラー)
コマンドエラー。リターンコード 11
エラーメッセージ:
I/O error : Invalid argument
I/O error : Invalid argument
—–
回避する方法があるのでしょうか?
KiCad関連のプラグインやオートルータはファイルパスに2バイト文字が使われているとそのファイルにアクセスできずエラーとなるので、ファイルパスの2バイト文字が原因と考えて手元の環境でKiCadプロジェクトを2バイト文字を含むフォルダに作成しBOMを出力して見ると問い合わせと同じく「リターンコード 11、 I/O error : Invalid argument」が発生したので、次のように回答した。
- 回答(1)
ご照会の件について、
原因として考えられること
1.KiCadと連携して動くプラグインや外部ルータ(自動配線ツール)は原則として2バイト文字が扱えず2バイト文字のフォルダやファイルにアクセスできません。
2.BOM生成プラグインも2バイト文字に対応しておらず、出力先のパス(フォルダ名やファイル名)に2バイト文字の日本語が使われているとエラーとなり動作しません。—> I/O error : Invalid argument
解決策
プロジェクトで2バイト文字が使われているところを半角英数字にすれば解決するのではないかと推察します。
これで解決すると思いきや次のような返信が届いた
- 返信(1)
ご指摘を受けた2バイト文字を使用したフォルダー、プロジェクトは使用していますん。
(現状自動配線は正常に出来ていますので問題ないと思っています。)
手元の環境でBOMファイル生成時に「リターンコード 11、I/O error : Invalid argument」が発生する条件を探った。
試行の結果、プラグインに渡すパラメータのうち出力ファイルのパスにアクセスできないとリターンコード 11エラーが発生することが確認できた。
お問い合わせの環境がどのようなファイルパスになっているか不明なので、こちらでエラー無く動いたときのログを送り比較照査していただくこととした。
- 回答(2)
「プロジェクトのパスに2バイト文字の使用なし」とのこと
Invalid argument エラーですので、プラグインに渡すパラメータをご確認ください。
1.私のところで正しく動いたログを下に示しますので各項を比較照査してください。
実行条件
_Windows10(64bit)
_KiCad5.0.2 / デフォルト設定でインストール
_プロジェクトフォルダのパス:C:¥Users¥admin¥Documents¥tutorial1¥
_プロジェクトファイル名:tutorial1.pro
.
コマンドライン欄
———-
xsltproc -o “%O.csv” “C:¥Program Files¥KiCad¥bin¥scripting¥plugins¥bom2grouped_csv.xsl” “%I”
———-
.
プラグイン情報欄(実行結果のログ)
———-
コマンドラインで実行:
xsltproc -o “C:/Users/admin/Documents/tutorial1/tutorial1.csv” “C:¥Program Files¥KiCad¥bin¥scripting¥plugins¥bom2grouped_csv.xsl” “C:¥Users¥admin¥Documents¥tutorial1¥tutorial1.xml”成功
————-
.
2.コマンドラインで実行:配下の各パラメータをご確認ください。
(0) xsltproc
(1) -o
(2) “C:/Users/admin/Documents/tutorial1/tutorial1.csv”
(3) “C:¥Program Files¥KiCad¥bin¥scripting¥plugins¥bom2grouped_csv.xsl”
(4) “C:¥Users¥admin¥Documents¥tutorial1¥tutorial1.xml”
.
特に(2)パラメータが「リターンコード11」と密接に関係するようです。
この(2)パラメータのパスが適正か否かをご確認ください。
不具合解消した旨の返信があった。
- 返信(2)
アドバイスを参考に色々試したところフォルダーにスペース(半角)が入っていてもエラーになるようです。
私は最初サブフォルダにKI CADとしていましたがこれが原因だったようです。
KI CAD → KICADで正常に終了できました。
ファイルパスに半角スペースが入っていると「リターンコード 11、 I/O error : Invalid argument」が発生するのは初めて知った。
一連の過程でBOMファイルの出力先の指定ついて次のような知見を得た。
- パラメータ %O.csv は C:/Users/admin/Documents/tutorial1/tutorial1.csv のように展開される。
- “%O.csv” に代えてファイルパスを決め打ちすれば任意の場所のフォルダに任意のファイル名でBOMファイルを生成できる。
“C:/Users/admin/Documents/bom-lists/tutoria1-bom.csv”- パスの区切りは / を用いる
¥ では「リターンコード 11、 I/O error : Invalid argument」が発生する。 - パスに存在しないフォルダが含まれていると
「リターンコード 11、I/O error : No such file or directory」が発生する。 - C:/Users/<ユーザ名>/配下以外のパスにBOMを生成しようとすると
「リターンコード 11、I/O error : Permission denied」が発生する。 - ファイルパスに2バイト文字や半角スペースが入っていると
「リターンコード 11、 I/O error : Invalid argument」が発生する。
- パスの区切りは / を用いる