この記事の難易度
AutoCADで属性を書き出したときに出力結果が空欄だったことってありますよね?なぜでしょうか?
AutoCADの公式リファレンスでは以下のように書かれています。
ATTEXTコマンドでブロックの属性を正常に書き出したい場合、以下の条件があります。
・ダイナミック機能なしのブロックに対して実行している
・書き出したいブロック属性の定義名称は英語文字、大文字で定義されていること
引用:AutoCAD公式リファレンス
”名称を英語文字で”と書かれていますが、実は日本語の属性でも書き出せます!
エラー原因は「テンプレートファイルの文字コード」です。
このエラー対策法がわかっていればいちいち属性名を英数字に書き換えなくてよくなります。
今回はAutoCADで「属性に日本語が含まれると書き出しできないエラー」について対処法を解説します!
ダイナミックブロックの属性を書き出す
ダイナミックブロックに入っている属性を書き出す手順から説明します。
過去記事で作成したボルト長さとボルトサイズを変更できるブロックを使用します↓
まずは属性書き出しをします。書き出し前にブロックを選択してプロパティパネルをチェックしましょう。

今回は属性に「ボルトサイズ」と「ボルト長さ」が入っており、属性名に日本語が含まれています。
属性を書き出すために事前にテンプレートファイルを作成します。

ここでは特に属性の名前を間違えないように気を付けてください。
また、テンプレートファイルの作成方法について知りたい方はこちらを参照ください。
次にCAD上で属性書き出しを行います。

まず、コマンドライン上で「ATTEXT」と入力します。すると属性書き出し画面が開きます。オブジェクトを選択をクリックして書き出すブロックを選びます。

「テンプレートファイル」でテンプレートファイルのパスを選択します。
「出力ファイル」で書き出し先を入力して「OKボタン」をクリックします。
出力結果を確認しましょう。

書き出したファイルにはデータが一切入っていませんでした。。。

このエラーの対策方法を次の章で説明します。
日本語を含んだ属性の書き出し:エラー対処法
属性情報を書き出したのにデータが一切入っていませんでした。
これはテンプレートファイルの文字コードが原因です。メモ帳アプリで対処しましょう。
属性書き出し用テンプレートファイルを開いて文字コードを変換します。

テンプレートファイル右下に文字コードが書いてあります。文字コードはUTF-8になっています。
この文字コードを変更します。

ファイル>名前を付けて保存をクリックします。

エンコード項目があるので、UTF-8以外の項目を選択します。今回は「ANSI」としました。
文字コードを変更したテンプレートファイルを使って属性書き出しをしました↓

属性に日本語が含まれていてもデータが書き出されています。
どうやらCAD側でUTF-8で読み込むと不具合が発生するみたいです。
日本語と英数字の属性が混在する場合
属性に日本語と英数字が混在している場合はどうなるでしょうか?試してみました。
先程のブロックの属性はすべて日本語が含まれていたので、1つを英数字に変更します。

ブロックエディタを開いて、「ボルト長さ」属性をダブルクリックして属性定義を編集>名称 で名前を「LENGTH」にします。

完了したらブロックエディタを閉じて属性を同期します。
属性名が「LENGTH」に変更されました。
同期方法がわからない場合はダイナミックブロック 属性の同期を参照してください。
属性書き出し結果を文字コードごとに示します。
テンプレートファイルで文字コードをUTF-8にして書き出しをしました↓

日本語で定義した「ボルトサイズ」属性が書き出されないことがわかります(上図右)
一方で英数字の「LENGTH」属性はUTF-8でも書き出されました(上図右)
属性を英数字で統一すれば文字コード関係なく書き出せます。
テンプレートファイルで文字コードをANSIにして書き出しをしました↓

文字コードをANSIに変えることで属性が2つとも書き出されました(上図右)
なのでテンプレートファイルの文字コードをUTF-8以外にすればなんでも書き出せるということです。
文字コード/文字種類 | 英数字 | 日本語 | 日本語+英数字 |
---|---|---|---|
UTF-8 | 〇 | × | × |
ANSI(UTF-8以外) | 〇 | 〇 | 〇 |
これまでの結果を表にまとめました。
上の表を参考に「属性名」と「テンプレートファイル文字コード」を検討してください。
まとめると、属性書き出しエラーを回避する方法は以下の2つです。
- すべて英数字で統一する
- テンプレートファイルの文字コードをUTF-8以外にする
社内やプロジェクトごとに方針を決めてから作図を進めましょう!
まとめ
今回はAutoCADで「属性に日本語が含まれると書き出しできないエラー」について対処法を解説しました。
- 属性に日本語が含まれていると情報が書き出せないエラーが発生
- テンプレートファイルの文字コードをUTF-8以外に設定すれば日本語属性も書き出せる
- 英数字であればどの文字コードでも書き出せる
属性書き出しは図面情報をすぐにまとめることができるので、今回の記事参考にして業務効率を上げましょう!

以上、こたろーでした。