TOP PAGE > 記事閲覧
まだまだJDRAF超初心者の質問
投稿日 | : 2017/11/20(Mon) 08:09 |
投稿者 | : たぬ |
参照先 | : |
管理人さま
Q1:
平面図(測量座標版)より、XY座標を読取→
テキストファイル(CSVやSIMA)に書き出す方法を
教えてください。
Q2:
SIMA(のXY座標)をJDRSFに読み込む、
良い方法を教えてください。
宜しくお願いいたします。
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2017/11/23(Thu) 09:11 |
投稿者 | : アルサポ |
参照先 | : http://r-support.org/bbs/tmp/sample08.lsp |
本日は休日なので、微力ながら力を貸したいと思います。
力になればいいですが
まず、Q1についてですが、以前投稿した「LISPを使ったCSVファイルへの読み書き」
(http://r-support.org/bbs/patio.cgi?read=45&ukey=0)
の内容をもとに、指示した点の座標をCSVに書き込むよう改良してみました。
使い方の注意点は、使用する前にあらかじめCSVファイルを作成しておいて下さい。
(空のファイルでもかまいません。)
次にこのlispは、現在は「使用する度にファイルを指示する場合」の仕様にしていますが、
複数の点を取得したい場合は、「決まった場所に書きこむファイルを指示する場合」の仕様に
切り替えた方がいいと思います。
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2017/11/23(Thu) 09:25 |
投稿者 | : アルサポ |
参照先 | : http://r-support.org/bbs/tmp/sample09.xlsm |
Q2については、SIMAのXY座標については、
以前投稿した「ExcelのVBAを利用して、ポリライン、文字を作図する」
(http://r-support.org/bbs/patio.cgi?read=112&ukey=0)
の内容をもとに、エクセルに入力された座標に点と文字を配置できるように改良しました。
座標についてはSIMAデータの拡張子(sim)をCSVの拡張子に書き換えて、
エクセルで開くと各セルに情報がわかれて表示されているので、座標が簡単に取得できます。
取得した座標を改良したエクセルファイルに貼付けて利用できれば図面に反映できると思います。
簡単な返答で申し訳ないですが、疑問が解決すればいいですね
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2019/02/19(Tue) 15:17 |
投稿者 | : 十六夜 |
参照先 | : |
JdrafやAresで使えるLISPを求めてたどり着きました。
座標取得のLISPは私の欲しかった機能そのもののため、早速ダウンロードさせていただきました。
> (setq filePath (getfiled "CSVファイルを選択" "" "CSV" 16));使用する度にファイルを指示する場合
の方はうまく動くのですが、あらかじめファイルを作っておくタイプの
> (setq filePath "C:\\Autodesk\\Sample.CSV");決まった場所に書きこむファイルを指示する場合
を実行すると、
<<エラー>> ファイルが開けません。
エラー: 無効なパラメータです。
と出てしまいます。ファイルはデスクトップ上に
フルパスですと
"C:\Users\izayoi\Desktop\a.csv"
となっておりますので、サンプルのように
"C:\\Users\izayoi\\Desktop\\a.csv"
としております。
また
"C:\Users\izayoi\Desktop\a.csv"
の状態だけでも試してみましたが結果は同じでした。
使い方が間違っていると思うのですが、どのように修正したらよろしいでしょうか?
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2019/02/20(Wed) 15:27 |
投稿者 | : アルサポ |
参照先 | : |
十六夜さん、こんにちは。
Ares Commander2018で実行できるのか確認したところ、
私の場合は問題はありませんでした。
CSVのパスの件ですが、
"C:\\Users\izayoi\\Desktop\\a.csv"
Userとizayoiの間の「\」がひとつしかありませんが、
もし、「\」がひとつであるならば、それが原因ではないでしょうか?
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2019/02/21(Thu) 10:39 |
投稿者 | : 十六夜 |
参照先 | : |
アルサポさま
こちら十六夜です。
ありがとうございます。ご指摘の部分が原因だったようです。
このLISPは非常に便利です。ありがとうございます。なによりCSVデータとして書きこんでくれるので
表計算ソフトで開いた時に何点あるのか分かりやすいところも良いですね。
(メモ帳とかで開くtxtタイプだと、一列目に連番などが入っていないと分かりにくくなってしまいますしね。)
追加で質問させてください。
(setq xyz (strcat (rtos xx) "," (rtos yy) "," (rtos zz)));
の部分を
(setq xyz (strcat (rtos xx) "," (rtos yy) "," (rtos zz) "," "point "(rtos xx)","(rtos yy)","(rtos zz)));
のようにCSVファイルに点群作成用のコマンドを付け足してやろうと思い、書きこんでみたら、
エクセル上で見ると"point "(rtos xx)","(rtos yy)","(rtos zz)の部分がコンマで区切られてしまいました。
そのため
(setq xyz (strcat (rtos xx) "," (rtos yy) "," (rtos zz) "," "point "(rtos xx)" "(rtos yy)" "(rtos zz)));
のようにすれば"point "以下がテキストとして認識されましたが、ちょっと不便でして。
何とかエクセル上でも
point X,Y,Z
のように認識させることはできませんでしょうか?("","")という抵抗をしてみましたがこれは駄目でした。
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2019/02/22(Fri) 14:15 |
投稿者 | : アルサポ |
参照先 | : |
十六夜さん、こんにちは。
質問の件ですが、
CSVファイルをExcelで開いた時、「point X,Y,Z」をひとつのセルに
まとめて表示したいという事なのでしょうか?
それでしたら、「point X,Y,Z」の部分を「"」で囲めば解決します。
具体的なLispの修正は、既存の
(setq xyz (strcat (rtos xx) "," (rtos yy) "," (rtos zz)));
の次の行に
(setq xyz (strcat xyz ",\"point " xyz "\""));
を追記してやれば、「point X,Y,Z」の部分がひとつのセルにまとめて表示されます。
返答が的外れでしたら、すいません。
Re: まだまだJDRAF超初心者の質問
投稿日 | : 2019/02/22(Fri) 16:11 |
投稿者 | : 十六夜 |
参照先 | : |
アルサポ様
こちら十六夜です。
その通りでございます。
この「point x,y,x」
が表計算ソフト上にあれば、これをコピーして、Aresのコマンドライン上に張り付けてやればこの部分に簡単に確認用の点群が作れます。
また、まだ実施できていませんが、
-textから始まる文章
たとえば
-text x,y,z 文字の大きさ 文字の角度 文字(X= or Y= or Z=)
というのも作れればコピーペーストするだけで座標値が簡単に記載できるかもと思っております。
-text 1,2,3 2 0 X=1
これだと座標(1,2,3)の部分に、文字の大きさが2で角度ゼロでX=1という文字を書いてくれる。
Lispとスクリプトの融合ができれば色々と面白いなと思うものでした。