私はしばらくAutoLISP/CADを使っていましたが、今開いているすべてのファイルに自分の名前のラベルを追加したいと思います。私はすべての開いているファイルを繰り返し処理することができましたが、テキストコマンドは最初のファイルでのみ実行されます。 CADが正しく機能するには速すぎると思ったので、遅れを追加しましたが、うまくいきませんでした。開いているすべてのファイルをチェックインし、変数が共有され、同期されています。ちなみに、テキストは開いたファイルごとに1回追加されますが、最初のテキストにのみ追加されます。ここですべての開いているファイルに要素を追加する
は私のコードです:
(defun c:labeling()
(vl-load-com)
(setq docs (vla-get-documents (vlax-get-acad-object)))
(setq top (vla-get-count docs))
(setq p1 (list 10 -10))
(setq p2 (list 95 -15))
(setq p3 (list 12 -14))
(setq c 0)
(vl-propagate 'docs)
(vl-propagate 'top)
(vl-propagate 'p1)
(vl-propagate 'p2)
(vl-propagate 'p3)
(vl-propagate 'c)
(while (< c top)
(vla-activate (vla-item docs c))
(command "_rectang" p1 p2)
(command "delay" 500)
(command "_text" p3 "3" 0 "My name - year" "" nil)
;(print c)
(setq c (+ c 1))
(vl-propagate 'c)
(command "delay" 1000)
)
)
それは、コマンドで始まり、VLAスクリプトで使用することはできません明らかに何かを作品 – RemedialGuns
によって置換することができないコマンドのほんの数、はい。それは、本当だが、そこにありますVLA。 さらに、VLAを使用すると、作成したエンティティに "ポインタ"を簡単に取得できます。これは、コマンドを使用すると複雑になります。 –