CAD和LISP的交互,执行命令后是否可以返回LISP继续执行程序,请指教
关于TRIM命令的返回,我想请教一下,在LSP中写了(COMMAND “TRIM“ )
(SETQ I 0)
。。。。。
是否可以在执行完TRIM完后再返回LSP继续执行下面的语句。
请帮忙,谢谢 程序中使用命令之后就是继续执行后面的程序,而却不会退出程序。 可以使用系统变量cmdnames做为判断来实现你的要求。
有个缺点是,一些其它的透明命令使用时,没有那么方便,如ZOOM中的平移,TRIM过程中不能拖动实现,只能用点->点来平移。具体内容如下:
-------------------------------
命令: (COMMAND "TRIM")
nil
选择对象: (WHILE (= "TRIM" (GETVAR "cmdnames")) (COMMAND "\\"))
'_pan >>指定位移的基点: >>指定第二点:
正在恢复执行 TRIM 命令。
选择对象:
nil
-------------------------------
(...)
(COMMAND "TRIM")
(WHILE (= "TRIM" (GETVAR "cmdnames")) (COMMAND "\\"))
(...)
谢谢已经OK了,谢谢大家。:) ;;前幾天LYY網友不是有提供方法了嗎?
;;如果你無法為command確定太多的參數請試試這個函數。
(defun YAD_COMD ()
(setvar "cmdecho" 1)
(while (/= 0 (getvar "cmdactive")) (command PAUSE))
(setvar "cmdecho" 0)
)
(defun C:POFFSET ()
(setq RDISTANCE (getreal "請輸入距離:"))
(setq EL (entsel "請選擇對像:"))
(command "offset" RDISTANCE EL)
(YAD_COMD)
(command "erase" EL "")
(princ)
)
;;--------------------------------------------------
;;一些其它的透明命令可正常使用
(defun C:PTRIM ()
(command "_.select" "auto" "")
(setvar "cmdecho" 0)
(prompt "\n請選擇修剪邊緣 ...\n選取物件:")
(command "_.select" PAUSE)
(setvar "cmdecho" 1)
(command "_.trim" "p" "")
(YAD_COMD)
(alert "\n 看懂了嗎?")
(princ)
) 谢谢大家的帮忙,现在已经基本可以了。谢谢:) (while (/= 0 (getvar "cmdactive")) (command PAUSE))
帮我解决了大问题
页:
[1]