找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1058|回复: 18

[求助] 如何跟踪CAD命令运行状态?????

[复制链接]
发表于 2017-7-23 10:55:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(command "COPY" move_s1 "" move_s3 PAUSE)
用户选择了复制点时返回了什么?没选又返回了什么? ,怎么监控?如何返回T或nil
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

发表于 2017-7-23 11:51:04 | 显示全部楼层
变量(getvar 'lastpoint)与前一个相比
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-7-23 12:04:44 | 显示全部楼层
为什么要这么写代码, 不是把明确的交互参数给COPY命令?

  1. (if (and (setq p1 (getpoint "\n基点<退出>:"))
  2.             (setq p2 (getpoint p1 "\n下一点<退出>:"))
  3.    )
  4.    (command ".copy" ss "" p1 p2)
  5. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 12:12:03 | 显示全部楼层
这种方式用过,但不理想,拷贝的东东不是动态显示的...
(while clmh_1  ;(setq qtf2 (getpoint move_s3 "\n-- 请拾取复制的下一点(X,Y) <回车结束> :"))
        (princ "\n-- 请拾取复制的下一点(X,Y) <回车结束> :")
        (setq gd_1gh1_s (entlast))
        (command "COPY" move_s1 "" move_s3 PAUSE)     ;(command "COPY" move_s1 "" move_s3 qtf2)
        
           (prin1 (logand (getvar "CmdActive") 1))(terpri)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-7-23 12:28:57 | 显示全部楼层

如果你想要动态显示,别指望最基本的命令能给你提供什么,也没必要花时间在这个上面。
你是自己写程序给自己和同事用吧,为什么不用现成的库帮你提供效率。
下载晓东通用LISP函数库,都现成的函数让你用。

去搜索下论坛, 用 动态 , 看看怎么实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 12:49:04 | 显示全部楼层
动态可以实际,只是想用最简便的方法实现,如果(command "COPY" move_s1 "" move_s3 PAUSE)
能返回用户的输入状态,也就好了...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 17:35:13 | 显示全部楼层
你们发没发现,拷贝给了基准点,下一点没给,直接回车或鼠标右键时,实体被拷贝到无限远,你们是怎么解决这个错误的?能否控制住这个bug?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 934个

财富等级: 财运亨通

发表于 2017-7-24 17:40:53 | 显示全部楼层
command与原生命令用法是一致的,要想现实特殊的效果,最好别用COMMAND。
我的原则是能不用command,就不用它。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-7-24 18:03:26 | 显示全部楼层

  1. (defun c:tt (/ e p tf)
  2.   (if (and (setq e (entsel))
  3.            (setq p (getpoint "\nbase point: "))
  4.       )
  5.     (progn
  6.       (setq tf t)
  7.       (while tf
  8.         (command ".copy" e "" "_none" p "@")
  9.         (command ".move" e "" "_none" p)
  10.         (while (/= (getvar "cmdactive") 0)
  11.           (command pause)
  12.         )
  13.         (if (equal (getvar "lastpoint") p 1e-6)
  14.           (setq tf nil)
  15.         )
  16.         (setq p (getvar "lastpoint"))
  17.       )
  18.     )
  19.   )
  20.   (princ)
  21. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 19:20:22 | 显示全部楼层
_none 在这里用做什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 19:28:42 | 显示全部楼层
我扣楼上的思路差不多,我是在copy命令前(setq e (entlast))
(setq a (cdr (assoc 5 (entget e)))) 获得实体名
(command "COPY" e "" move_s3 PAUSE)
后再(setq ee (entlast))
(setq b (cdr (assoc 5 (entget ee))))
(if (= a b) 说明没有执行copy命令,但有个问题
PAUSE用回事和鼠标右键时,实际是将e拷贝到了无限远,CAD本身就有bug,所以PAUSE回车后,a <>b
是回车出现的bug ,不知如何解决这个问题.....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5188个

财富等级: 富甲天下

发表于 2017-7-25 14:15:21 | 显示全部楼层
这是AutoCAD帮助文件的内容:
命令条目:copy
选择对象: 使用对象选择方法并在完成选择后按 Enter 键

当前设置: 复制模式 = 当前值

指定基点或 [位移(D)/模式(O)/多个(M)] <位移>: 指定基点或输入选项

指定的两点定义一个矢量,指示复制的对象移动的距离和方向。

如果在“指定第二个点”提示下按 Enter 键,则第一个点将被判定为相对 X,Y,Z 位移。例如,如果指定基点为 2,3 并在下一个提示下按 Enter 键,对象将被复制到距其当前位置沿 X 方向 2 个单位,Y 方向 3 个单位的位置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 01:03:02 | 显示全部楼层
本帖最后由 挚友01 于 2017-7-29 01:04 编辑

如果拷贝的是选择集呢,按上面说法,就无从查起,,, move_s1为选择集
(setq clmh_s (ssname move_s1 (- (sslength move_s1) 1)))
(setq clmh_1_pnt2 (cdr (assoc 10 (entget clmh_s))) clmh_1_pnt1 (list (car clmh_1_pnt2)(cadr clmh_1_pnt2)))
    (prin1 (cdr (assoc 10 (entget (ssname move_s1 0)))))(prin1 " ")(prin1 clmh_1_pnt1)(getpoint)
    (setq clmh_1 "T")
      (while clmh_1  
        (princ "\n-- 请拾取复制的下一点(X,Y) <回车结束> :")
        (command "COPY" move_s1 "" move_s3 PAUSE)   
        (setq clmh_1_pnt2 (cdr (assoc 10 (entget (entlast)))))
(prin1 clmh_1_pnt2)(getpoint)
clmh_1_pnt1+clmh_1_pnt1 <> clmh_1_pnt2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2017-7-29 09:34:08 | 显示全部楼层
楼主可以试试这个函数(acet-ss-drag-move ss pt [prompt] [highlight [cursor]])
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 09:46:09 | 显示全部楼层
(while (/= (getvar "cmdactive") 0)
          (command pause)
        )
返回的值怎么都为0啊,无论回车或给点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 02:34 , Processed in 0.219182 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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