サイトアイコン CAD日記

異尺度オブジェクト

AutoCAD2008オブジェクトを解析中だ。

何と言っても大物は、異尺度オブジェクト。

注釈、つまり文字が含まれるオブジェクトに対して設定可能なもの。

目的は、ビューポート内に表示されている文字を、

ビューポート尺度に依存せずに、レイアウト上の文字と同じ大きさで

表示させるためのもの。(必ずしもレイアウトと一致させる必要はないが)

つまり、図面中の全ての文字を同じ大きさで表示するためのものか。

異尺度オブジェクトのデータ構造的な特徴。

1つ目、匿名ブロック化されている。

「*U」で始まり、その後に連番の数字が付加されたブロック名を持つ。

2つ目、ブロック内オブジェクトの属する画層。

「0 @ 0.5」 こんな名前の画層だ。

本当のレイヤ名の後に、@+尺度が付加される。

これが異尺度オブジェクトかそうでないかの判別方法だと思われる。

異尺度オブジェクトとそうでないものをそれぞれDXFに書き出して、

両者をコンペアして導き出した成果だ。

多くの相違点がみつかり、どれがそうなのか悩ましかったが、

ひとつひとつ値を変更しながら、AutoCAD2008で読み込んでみることにより判明した。

この匿名ブロックの中にあるオブジェクトが興味深い。

異なる尺度の数分のオブジェクトが存在している。

例えば1つの文字に対して3つの尺度を持たせた場合、

3つの文字オブジェクトが現れる。

普通に3つの文字が存在していれば、3つの文字が表示されてしまう。

ではどうしているのか。

ビューポートごとのフリーズレイヤを利用している。

「現在設定されている尺度」以外のオブジェクトは、ビューポートに設定された

フリーズレイヤに属させて、非表示状態にしている。

おもしろい仕組みだ。

ビューポートごとのフリーズレイヤを使っているということは、

レイアウトでは1つのオブジェクトだけが表示されるので問題ないが、

モデルでは3つとも表示されるということになるか。

異尺度オブジェクトに関しては、2007までの既存のデータ構造のみを

利用して実現している機能だと言える。

2008DWGは、AutoCAD2007で開くことができるが、

例えば異尺度オブジェクトが描かれている場合は、

匿名ブロックや@付きの画層が現れることになる。

もちろん、2007で異尺度オブジェクトとして扱えるわけではないので、

編集作業を行うことができない。

匿名ブロックを分解すれば編集できるが、@付きの画層は残るのでわずらわしい。

きれいさっぱり、異尺度オブジェクトの情報がなくなって

見た目上のオブジェクトだけが残るのが望ましい場合もあるだろうに。

近頃のAutoCADは、下位互換のことをあまり考慮していないように感じる。

新しいバージョンの新機能を使った図面は、下位バージョンのAutoCADに

わたすとわずらわしいことになるのは避けられない。

現在、寸法に関して調べているところだが、

これまた大変なことなっている。

いずれ、ここに書ける日がくるだろう。

モバイルバージョンを終了