明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 669423907

[函数] 如何让一个 lsp (或cad)的命令重复运行,按空格或esc退出?

  [复制链接]
发表于 2011-6-13 09:14 | 显示全部楼层
不是反复执行命令等待输入,而是反复执行某个动作,对吗
 楼主| 发表于 2011-6-13 09:27 | 显示全部楼层
回复 xiaxiang 的帖子

是反复执行某一命令。
发表于 2011-6-13 09:47 | 显示全部楼层
669423907 发表于 2011-6-13 09:27
回复 xiaxiang 的帖子

是反复执行某一命令。

这样的话用WHILE循环就可以了,循环体内程序自己处理一下,应该能达到要求
 楼主| 发表于 2011-6-13 09:56 | 显示全部楼层
回复 xiaxiang 的帖子

还请大师举个例子说明一下,实在不胜感激!
 楼主| 发表于 2011-6-13 10:05 | 显示全部楼层
回复 zhynt 的帖子

非常感谢你啦!
发表于 2011-6-15 13:36 | 显示全部楼层
我把你的程序改了一下

(setvar "CMDECHO" 0)
(vl-load-com)
(defun C:jz (/ X Y SIZE PT EN AREA STR TMP)
  (WHILE (setq SS (entsel "\n选择要居中的文字: "))
  (if (and SS
           (setq EN (car SS))
           (setq EN_TMP (bpoly (cadr SS)))
      )
    (progn
      (setq TMP        (BOX EN)
            TMP        (mapcar '+ (car TMP) (cadr TMP))
            PT0        (mapcar '* TMP '(0.5 0.5 0.5))
      )
      (setq TMP        (BOX EN_TMP)
            TMP        (mapcar '+ (car TMP) (cadr TMP))
            PT1        (mapcar '* TMP '(0.5 0.5 0.5))
      )
      (command "_.move" EN "" "non" PT0 "non" PT1)
      (entdel EN_TMP)
    )
  ))
  (princ "\n完成")
  (princ)
)
(defun BOX (E / LL UR)
  (vla-getboundingbox (vlax-ename->vla-object E) 'LL 'UR)
  (mapcar 'vlax-safearray->list (list LL UR))
)
发表于 2011-6-15 14:01 | 显示全部楼层
还有一个笨方法,如下:
(defun C:jz (/ X Y SIZE PT EN AREA STR TMP)
(if .........);程序内容
(c:jz)
);程序结束
 楼主| 发表于 2011-6-16 12:58 | 显示全部楼层
回复 ahwx0814 的帖子

虽然我不会,但是我很感谢你的热情帮助。谢谢了。
发表于 2012-9-12 13:23 | 显示全部楼层
chengx2000 发表于 2011-6-12 20:28
回复 669423907 的帖子

恕我愚钝,楼主的这段代码中的“bpoly”是个什么函数,怎么在《AutoLISP函数》中都 ...

“bpoly”确实不是函数。
经试用,3个完整的程序都不能使用,程序存在问题。
对单个的lsp程序,想实现重复命令一般采用循环函数“while“,不过要注意写法。
发表于 2013-4-8 02:39 | 显示全部楼层

我也想学习这个东东。自定义一个命令ccc(),如何反复执行该命令,直到输入空格键退出?
比如ccc()就是画一个圆(command "c").
我见过一个例子,如下:
(defun c:aaa()
  (setq Osnapmode (getvar "OSMODE"));获得当前捕捉模式
  (while (setq pt(getpoint "\n 圆心:"))
    (command "_.circle" pt)
    (while (/= 0 (getvar "cmdactive"))
      (command pause)  
    )
  )(princ)
)

就是想实现这样的功能。但是不知道怎样把命令从画圆扩展到任意命令。
求教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-24 15:02 , Processed in 0.168836 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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