TOP PAGE > 記事閲覧
LISPを使ったARESでのコマンド開発
投稿日 | : 2020/09/09(Wed) 13:44 |
投稿者 | : 小川 |
参照先 | : |
長年、井澤計装さんの書籍やホームページを見ながら、AutoCADLTでの開発をやってきたのですが、
会社が全面的にARES Standard採用になった事から、ARESのLISPで開発を行えるのかどうか、AutoCAD LISPでの解説を探してきては、LISPそのものをいろいろ調べ始めたところです。
そこで、コマンド先頭に(acet- が付くものに関して、Standardで使えるようにする方法は無いものでしょうか?
別件で、メーカーに問い合わせましたが、APIに関することは、お答えできないと回答が来ました。
リファレンスがそもそも XtraToolsLispAPI.chm と別になっていると昨日気づいたようなARES LISP初心者(DOSLibの存在すら知らなかった)です。
Re: LISPを使ったARESでのコマンド開発
投稿日 | : 2020/09/11(Fri) 14:01 |
投稿者 | : 小川 |
参照先 | : |
自己レスです。
やりたいことは、現在見ている図面データを保存して、
そのデータを処理するプログラムを起動し、
処理プログラムで複数の図面データを作り、
その図面データをARESに読み込み、
ARESで簡単な加工をして、終わり
というものを作りたいのですが、
子プロセスを起動すると、acet-sys-spawn を使わないと
戻ってきてしまい、タイミングが合わせられないという事で躓きました。
結果、Wscript.Shell を使う事で解決できそうです。
(setq Shell (vlax-get-or-create-object "Wscript.Shell"))
(vl-catch-all-apply 'vlax-invoke-method (list Shell "Run" "notepad.exe" 1 :vlax-true))
次に複数の図面呼び出しですが、
(command "OPEN" "c:\\out\\030-A3_2000_R-01000001.dwg"
では、無効なパラメータです。
え?−−−−−−− でした。
AutoCADでもだめなようで、SDI を使うと〇
でも、ARESにはあるの? ありましたが、
そもそも FILEOPENはあるの? 結果的に
: (command "FILEOPEN" "c:\\out\\025-A3_2000_R-01000001.dwg")
では、認識できないコマンドで
: (command "OPEN" "c:\\out\\025-A3_2000_R-01000001.dwg")
では、オプション または NONAME_0.dwgに保存しますかと聞いてきます。 NONAME_0.dwg って?
以上、次、なにをやれるのか
Re: LISPを使ったARESでのコマンド開発
投稿日 | : 2020/09/18(Fri) 11:34 |
投稿者 | : 小川 |
参照先 | : |
自己レスです。
複数図面を開くところは、vla-open で何とかなりそうです。
選択セットは、vla-Select で、図形の移動は、vlax-for と vla-Move で、できるかもです。
ネットで、事例がなかなか拾えず、似たような関数が多くて難しかったです。
ただし、LISPは、現在の図面が切り替わると終わるということなので、
複数図面を開くと移動は、プログラムでスクリプト作って、最後にスクリプトを実行となりそうです。
まだ、スクリプト実行の関数を見つけてはいませんが、
追伸;ARES Standard 2020 で、Dim pr0 As PromptPointResult = ed.GetPoint(vbCr + " 直径の始点を指定")
が、やっぱり動かないのだけど、相談や報告する場所が見つからない。困ったものです。
Re: LISPを使ったARESでのコマンド開発
投稿日 | : 2020/09/18(Fri) 17:44 |
投稿者 | : 小川 |
参照先 | : |
アルサポさんの投稿を見て、さっそく、3407 をインストール
Standard版でも ARES Standard 2020 で、Dim pr0 As PromptPointResult = ed.GetPoint(vbCr + " 直径の始点を指定")
何ら問題なく動きました。不具合だったようです。
LISPとは違うけど、う。れ。し。い
逆に、LISPからスクリプトを実行させる方法いまだ見つけられていません。
(command 関数の事例がもう少しあるとよいのだけれど、(command scriptではエラーになります。
Re: LISPを使ったARESでのコマンド開発
投稿日 | : 2020/09/23(Wed) 14:11 |
投稿者 | : 小川 |
参照先 | : |
自己レスです。分離テストは終わりました。
いろいろやったのですが、結果的には、LISP最後に以下でOKでした。
(command "loadscript" "C:\\HOP\\OUT.SCR")
なにが、悪かったのかは追求できていません。