AutoCADのLEADER(引き出し線)の話。
悪名高いのよ、こいつが。
今日はこいつに、はめられたね。
寸法スタイルを持ってるくせに匿名ブロックを持ってない。
中途半端な寸法線という位置付けになってるせいかバグが多いね。
MTEXTやINSERTとリンクしていて、そのデータ保持方法が特殊。
注釈として文字が書けるのはいいとして、ブロックや幾何公差なんちゅう
ものも書けちまうのは、オーバースペックだと思う。
さらには、引き出し部分を連続線で書くだけでなく、スプラインで
くにゃくにゃした形状にすることもできちまう。
仕様が広いことはいいことだと思うけど、要求としてはそこまでのものは
「ない」あるいは「非常に少ない」と思うね。
今回のケースでは、ブロックに含まれるLEADERが曲者だった。
LEADERとリンクされているMTEXTの扱いが、ブロック内にある場合、
ちょい特殊だったわけだ。
ブロック分解して得られるエンティティ列内に、妙な変形がかかった
MTEXTが現れて、これが余計だった。
これをうまいこと避けるようなコードを書いたわけだけど、やっかいだったね。
このへんの仕組みを理解するのに、けっこう時間を要してしまった。
またLEADERの問題かい、とうんざりしたよ。
かったるい作業だったけど、解決しただけに軽い満足感もあるけどね。
R13の時代に増えたエンティティに碌なものはないね。
引き出し線、マルチテキスト、マルチライン、幾何公差...
マルチラインなんて、使ってる人いるのかね。
データ調査してて、マルチラインに出会ったことは全くないよ。
凝りに凝ったデータ構造で、開発者の苦労はわかるけど、
ユーザーに使われなかったら、意味ないもんね。
AutoCADは自分のところの技術だからちゃんと扱うのは当たり前として、
他CADがどれだけこれらのエンティティを正しく解釈しているか、
ってことを考えると、データ交換時の大いなる罠ですな。
不満ぽいことばかり言ってしまったけど、
自分としてはこんな状況を楽しんでいたりもするわけだ。