- 締切済み
ポイントデータを出力する方法
- AutoCADを使用して作成したポイントデータ(X,Y座標)をテキスト形式に出力する方法について教えてください。
- AutoCADで作成したポイントデータをCSVファイルに出力する方法について教えてください。
- ポイントデータを出力するためのAutoCADの機能や手順について解説してください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
DXFファイルから真円データを取り出すparlスクリプトです。 #$*=1; while(<>){ chop; # 改行文字の削除 s/ *//; # スペース削除 if ( /^CIRCLE/ ){ # 真円 ? $circlef = 1; }elsif( $circlef == 1 ){ if( /[0-9]*/ ){ # 念のため確認 $command = $_; # $_ = <ARGV>; # 次の行の取り込み chop; # 改行文字の削除 s/ *//; # スペース削除 $data = $_; # データ部取り出し if( $command eq "10" ){ # 10 : x $x = $data; }elsif( $command eq "20" ){ # 20 : y $y = $data; }elsif( $command eq "8" ){ # 8 : レイヤ $ray = $data; }elsif( $command eq "62" ){ # 62 : 色 $col = $data; }elsif( $command eq "40" ){ # 40 : 半径 $radius = $data; }elsif( $command eq "0" ){ # 次のデータの先頭 print "X,",$x,",Y,",$y,",φ,",$radius * 2,",R,",$ray,",C,",$col,"\n"; # CSV 形式で出力 $circlef = 0; } } } } あとはエクセルにでも取り込めばOK!
すでに、回答された方が指摘されように、AUTOLISPが利用できる 環境であれば、ssgetで可能ですが、そうでないならば(LT利用) なら、VB環境も高価ですから、BASICでAUTOCADからのDXFファイル から抽出が簡単です。 10 CLOSE #1,#2 20 OPEN "a:\A.DXF" FOR INPUT AS #1 30 OPEN "a:\Aa.txt" FOR OUTPUT AS #2 40 INPUT #1,A$ 50 IF EOF(1) THEN CLOSE #1,#2:END 60 IF A$="100" THEN 70 ELSE 40 70 INPUT #1,B$ 80 IF B$="AcDbPoint" THEN 90 ELSE 110 90 INPUT #1,A1$,AA1$,B1$,BB1$ 100 PRINT #2,AA1$,BB1$ 110 GOTO 40 (動きは、AドライブのA.DXFを読んで、書き出し) 基本的には、上記の簡単なプログラムで可能です。 動作環境ですが、窓の杜からフリーのBASIC(N88互換) を入手され、上記のプログラムで可能です。あとは、使い勝手 が変更可能です。
お礼
早速やってみました。ちゃんとポイントが出力されました。感動です。 その他必要情報もこれをアレンジすれば可能なのでしょうか? その場合ある程度DXFの内容を知らないとだめなのでしょうか?
回答した後に、思い出しました(反省!) ?点に属性を付けて、複合図形として登録する ?必要なポイントに登録した点(複合図形)を挿入する ?属性書き出しコマンドによってテキストファイルに書き出す 以上で可能です。 詳細は、ユーザーガイドの「属性による作業」を参照下さい
お礼
AUTOCADのど素人です。ユーザーズガイドを見てがんばってみます。
コマンドはありませんが、Autocadは、ちょっとプログラムの勉強をすると自分の必要なデータの取り出しも可能です。 LISPやVBで簡単?に作ることはできます。 インターネット上で探してみると参考になるサイトがありますから検索されてみては如何でしょうか
お礼
AUTOCAD-LTなので多分LISPが使えません。VBだと敷居が高そうです。弱気で申し訳ありません。
お礼
この場合、parlが使える環境でないとだめなのでしょうか?