| 記事内容:[|]
シャキちゃき様!!お疲れ様s_satoです。
aki様!!回答お疲れ様です。 >確か、DXF は縮尺の概念?? 無かったと思いますよ。 >まして、元のデ−タ−がAuto CAD でしたら、1/1の >はずです。 >わたしは、変換後縮尺設定してます。 >違ったかなぁ〜(^^;
まず、dxfには、縮尺の概念は、無いというのは実は、誤解なので ただ単に、寸法の設定で定義できるのですが、これは、AutoCAD同士の 寸法の管理方法が他のCADと大きく違いがある為、JWW等他のcadでは この設定に基づいた縮尺の定義が反映出来ないという事に成ります。 つまり、一般的な縮尺という概念というより、 各寸法上の倍率として定義しています。 従って、dxfに書き出されている座標値*DIMSCALEで図形をグループレイヤ別に 分けながら、読込む事が必要となる訳ですね。 また、この方法以外にも、縮尺に当たる設定方法が幾つかあるので 対応は、難しいです。・・・・(T。T)、
そこで、jwwでは、図面範囲設定値かオブジェクト範囲の座標値 dxfデータ上では範囲座標値($EXTMIN,$EXTMAX)または($LIMMIN,$LIMMAX)の どちらか大きい範囲を設定してあるものを元に縮尺を逆算する仕掛けになって いたはずです。 例えば用紙がA3に設定されていると仮定すると 0,0-420,297と設定されていれば用紙サイズA3と同じなので JWWは、用紙A3、縮尺1:1として読込みします。 もし、図面範囲設定値が0,0-4200,2970だと、JWW側で用紙がA3と成っている ので縮尺は、1:10と判定して読込みしますので、JWW側でデフォルトの 用紙設定をどの用紙に設定しているかと言うのが重要です。 また、AutoCADでは、dxfデータの基点を用紙左下として通常は、 範囲設定しますが、基点位置をマイナス方向にずらせば、jwwと同様の 原点が中心のデータとして吐き出されると言う事になります。 しかし、AutoCAD側での編集が見辛くなるので、余りやる人はいないと思います。 DXFの例 0 SECTION : : $EXTMIN(オブジェクト範囲基点左下) 10 0 <-基点x座標 20 0 <-基点y座標 9 $EXTMAX(オブジェクト範囲右上座標) 10 420<-オブジェクト範囲右上x座標 20 297<-オブジェクト範囲右上y座標 9 $LIMMIN<-(図面範囲基点左下) 10 0 <-基点x座標 20 0 <-基点y座標 9 $LIMMAX<-(図面範囲右上座標) 10 420<-図面範囲右上x座標 20 297<-図面範囲右上y座標 9 : :
参考としてくださいb(^^)v。
|