外部参照Lisp例程
寻求以下例程的帮助:-通过键入XO,然后单击参照,从图形中打开外部参照。
-通过键入XRX,然后单击参照,从图形中分离外部参照。
-通过键入XRR重新加载图形中的所有外部参照
提前谢谢你。
打开外部参照
.....
快速一:
(defun c:xrx ( / xn xr )
(while
(progn (setvar 'ERRNO 0) (setq xr (car (entsel "\nSelect XRef to Detach: ")))
(cond
( (= 7 (getvar 'ERRNO))
(princ "\nMissed, try again.")
)
( (eq 'ENAME (type xr))
(if
(not
(and
(eq "INSERT" (cdr (assoc 0 (entget xr))))
(= 4 (logand 4 (cdr (assoc 70 (tblsearch "BLOCK" (setq xn (cdr (assoc 2 (entget xr)))))))))
)
)
(princ "\nObject is not an XRef.")
)
)
)
)
)
(if xr (vla-detach (vlax-ename->vla-object (cdr (assoc 330 (entget (tblobjname "BLOCK" xn)))))))
(princ)
)
(vl-load-com) (princ)
(defun c:xrr nil
(vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
(if (eq :vlax-true (vla-get-isxref block)) (vla-reload block))
)
(princ)
)
(vl-load-com) (princ) 谢谢李麦克。。。
我在程序参数中找不到xopen。。。有没有其他方法可以修改键命令,这样就可以使用XO而不是键入整个命令? 单击外部参照,单击鼠标右键,打开外部参照。
键入XO并点击tab,点击enter。
在pgp中,为xopen设置XO。 启动文件中很少有外部参照宏。。。
;; turn off all xref layers
(defun c:XF (/) (command "_.-layer" "_off" "*|*" "") (princ))
;; turn on all xref layers
(defun c:XN (/) (command "_.-layer" "_on" "*|*" "") (princ))
;UNLOAD ALL XREFS
(defun c:xu (/) (command "_.-xref" "_UNLOAD" "*") (princ))
;RELOAD ALL XREFS
(defun c:XE (/) (command "_.-xref" "_RELOAD" "*" ) (princ))
rkent。。。
我正在跑步2010。。。右键单击外部参照在2011年和2012年起作用。我的新公司还没有决定使用新软件。 否则,只需:
(defun c:xo nil (command "_.xopen" pause) (princ)) 不需要暂停。
页:
[1]
2