明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2086|回复: 6

CAD和LISP的交互,执行命令后是否可以返回LISP继续执行程序,请指教

[复制链接]
发表于 2003-12-3 17:35:00 | 显示全部楼层 |阅读模式
关于TRIM命令的返回,我想请教一下,在LSP中写了
(COMMAND “TRIM“ )
(SETQ I 0)
  。。。。。
是否可以在执行完TRIM完后再返回LSP继续执行下面的语句。
请帮忙,谢谢
发表于 2003-12-3 17:42:00 | 显示全部楼层
程序中使用命令之后就是继续执行后面的程序,而却不会退出程序。
发表于 2003-12-4 00:56:00 | 显示全部楼层
可以使用系统变量cmdnames做为判断来实现你的要求。

有个缺点是,一些其它的透明命令使用时,没有那么方便,如ZOOM中的平移,TRIM过程中不能拖动实现,只能用点->点来平移。具体内容如下:
-------------------------------
命令: (COMMAND "TRIM")
nil

选择对象: (WHILE (= "TRIM" (GETVAR "cmdnames")) (COMMAND "\\"))
'_pan >>指定位移的基点: >>指定第二点:
正在恢复执行 TRIM 命令。

选择对象:

nil
-------------------------------

  1. (...)
  2. (COMMAND "TRIM")
  3. (WHILE (= "TRIM" (GETVAR "cmdnames")) (COMMAND "\"))
  4. (...)
复制代码
 楼主| 发表于 2003-12-5 10:40:00 | 显示全部楼层
谢谢已经OK了,谢谢大家。:)
发表于 2003-12-8 08:02:00 | 显示全部楼层
;;前幾天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)
)
 楼主| 发表于 2003-12-8 11:23:00 | 显示全部楼层
谢谢大家的帮忙,现在已经基本可以了。谢谢:)
发表于 2003-12-30 17:08:00 | 显示全部楼层
(while (/= 0 (getvar "cmdactive")) (command PAUSE))
帮我解决了大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 12:36 , Processed in 0.180566 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表