VLISPがまじったり、DXFで取得したり、イマイチ美しくないなぁ。
どうして私は探し出せないんだろう・・・。
(defun c:il( / E_NAME OBJ NAME ) (while (not (setq E_NAME (car (entsel))))) (setq OBJ (vlax-ename->vla-object E_NAME)) (setq NAME (vlax-get-property OBJ 'Name)) (if (= 0 (y_dxfdata 280 (entget (cdr (assoc 340 (entget E_NAME)))))) (command "-image" "r" NAME) (command "-image" "u" NAME) ) )
#1 by 匿名 - 2月 28th, 2006 at 19:03
VLでObjectを取っているなら
if は ClippingEnabled
ロードは表示・非表示に変えてみてはどうでしょう。
ImageVisibility
#2 by liki - 2月 28th, 2006 at 21:55
(setq img (car (entsel)))
(setq imgdata (entget img))
(setq imgdef (cdr (assoc 340 imgdata)))
(setq imgdefdata (entget imgdef))
(setq loadflag (cdr (assoc 280 imgdefdata)))
(if (zerop loadflag)
(entmod (subst ‘(280 . 1) ‘(280 . 0) imgdefdata))
(entmod (subst ‘(280 . 0) ‘(280 . 1) imgdafdata))
)
エラー処理は省略
と、純粋にLISPのみでいいんでないの。
もちろんActiveXの方が高速だけどこの程度の処理なら
違いはない。どちらも一瞬の出来事。
VLISPでActiveXを使うか、AutoLISPのみか
COMMAND使うか。
どうしてもの場合以外は一貫性を持たせた方が美しいね。
#3 by 匿名 - 3月 1st, 2006 at 19:00
280番の勘違いxx
すみませーん
VBではx
likiさんLispが美しい!
#4 by ゆり - 3月 3rd, 2006 at 23:03
>ロードは表示・非表示に変えてみてはどうでしょう。
最初はそれでやってみたんですけど、
表示・非表示だとあんまりパフォーマンス上がらなかったのです(TT)
>と、純粋にLISPのみでいいんでないの。
まぁそうなのですけど、
できればVLISPの方がコメントなしでもわかりやすいかと(笑)