社長、社員、バイトさん、派遣さんが入り交じっての交換日記?or 愚痴日記?
前回までのあらすじ:
膨大なDXFデータをPDFに自動連続出力しようと試みたが真っ白なPDFが作成されていて途方に暮れるリーダーであった。
途方になんか暮れてないぜー!
前回書いたように大きなポイントの一つと考えていた訳だから、それなりの構想は当然練ってある。
データ中の用紙枠の左下と右上の点の座標が取得できればいいのだ。
幸いな事にこのデータ達のレイヤー管理は完璧だ。
用紙枠のレイヤーは決まっている。
ただしそのレイヤーにあるのは用紙枠だけという訳ではない。
図枠などもそのレイヤーにある。
用紙枠は2Dポリラインで作成されている。
以上の様な条件から次の様にした。
データ中の決まったレイヤーにある2Dポリラインを順番に取り出して、その2Dポリラインの頂点の座標を順に取り出す。
最大X・最大Y・最小X・最小Yの変数を用意しておき、1つ目に取り出したX・Y座標を最大と最小の両方に入れる。
2つ目以降に取り出した座標が最大X・Y座標より大きければ最大X・Y座標に数値を入れなおす。
最小X・Yについても同様。
その作業をポリラインの頂点がある限りループさせる。
すると最終的に変数に入っている座標は用紙枠の左下と右上の点の座標となるのだ。
その点を図面範囲として設定してやればOK!
(最大X-最小Y)/用紙の幅 で縮尺もでるよん。
この様な処理を追加した後は快調にPDFが出来ていきました。
途中UCSがワールドになっていなくて止まったり、用紙枠が線分になっていて止まったりするデータもあったけどその度に改良して無事に終わりましたとさ。