サイトアイコン CAD日記

wblock

wblock(ブロック書き出し)。
AutoCAD使いだったら、たいていの人が知っているコマンドだろうか。
おぼろげならこのコマンドの名前は知っていたが、その効果を知らなかった。
選択した図形を別のdwgファイルに保存する。
これにより、妙に重くなった図面をスリムアップできる。
おいらの場合、コマンド名にブロックという名前が入っていることが
勝手な思い込みを起こしていた。
ブロック図形だけを対象にするとか、結果がブロックになるとか、
とにかくブロックに特化したコマンドだと思っていて、
ブロック専用コマンドなので、ということで無視していた。
コマンド名の由来としては、wblock = write block に違いない。
これじゃ、勘違いするのも仕方ない。
さて、本題。
wblockではあらゆる図形タイプを対象にして、図形タイプを維持したまま
別図面に図形をコピーすることができる。
あらゆる図形タイプというところがポイントだった。
線分だろうが、文字だろうが、マルチ引き出し線だろうが。
図形を図面間でコピーする処理を、図形タイプごとにプログラムを書いていた
おいらにとって、目から鱗で、革命的で、転機のきっかけだった。
マルチ引き出し線の引き出し線部分の座標をコピーするのに、
元図形の情報を読みながら、先図形に書き込んでいく。
膨大な時間を費やし、それっぽいAPIを駆使して、なんとかプログラムを
組んでみても、まともに動かないものができただけだった。
こりゃ一筋縄ではいかないだろうと、腰を据えて取り組もうとしていた。
ふとした機会に、その道に詳しい人間にこの話題を振ってみた。
少し調査してもらったところ、導きだされたのがwblockというキーワード。
あー、聞いたことあるコマンドだなぁと感じ、それほど期待せずに調査してみた。
wblockCloneObjects() に行きついた。
実際に使ってみた。
ほんの数行のコードで期待通りの動作が実現できた。
複雑なマルチ引き出し線がものの見事に、そっくりそのままコピーされた。
おいらは今まで何をやってきたのだろうか...。
一人でやってるとダメだね。
思い込みに支配されて、簡単なことを見落としていた。
ほかの人と情報交換することで、今回のような大きな問題が
あっさりと解決することがあったりするわけで、おもしろい。
ということで、以下のような複雑な図形タイプも容易に対応できそうだ。
・円弧文字(ARCALIGNEDTEXT)
・ポリゴンメッシュ(POLYGONMESH)
・ポリフェイスメッシュ(POLYFACEMESH)
・幾何公差(TOLERANCE)
・マルチライン(MLINE)
・リージョン(REGION)
・3Dソリッド(3DSOLID)
・ボディ(BODY)
新しいところでは、段組みマルチテキストや拘束寸法も対象にできるだろう。
懸念事項は、処理に要する時間と例外エラーの発生頻度。
処理を関数まかせにする以上、上記2点を自分で制御できなくなる。
実際にプログラムを組んでみて、一通りの動作を試してみるしかない。
まー、なんとかなるだろう。
希望が湧いてきた。

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