设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 60|回复: 6

[求助] 关于连续复制的问题

[复制链接]

签到天数: 1816 天

连续签到: 355 天

[LV.Master]伴坛终老I

已领礼包: 5033个

财富等级: 富甲天下

发表于 2017-9-8 14:42:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 newer 于 2017-9-8 15:40 编辑

我想连续复制,改了一下代码,实现不了,请N版看看错在哪。
(defun c:tt ()
  (defun _callback (dynpt)
    (if        (not (equal dynpt oldpnt 1e-4))
      (progn (setq mat (xdrx_matrix_settranslation (mapcar '- dynpt base)))
             (xdrx_monitor_drawent ss mat)
             (setq oldpnt dynpt)
      )
    )
    (princ)
  )
  (xdrx_begin)
  (if (and (setq ss (ssget))
           (setq base (getpoint "\n基点<退出>:"))
      )
    (progn (setq loop T)
           (while loop
             (xdrx_pointmonitor "_callback")
             (if (setq p (getpoint "\n插入点:"))
               (progn (setq mat (xdrx_matrix_settranslation (mapcar '- p base)))
                      (xdrx_entity_transform (xdrx_entity_copy ss) mat)
               )
               (setq loop nil)
             )
           )
    )
  )
  (xdrx_end)
  (princ)
)


上一篇:API应用-给文字和属性添加前缀示例
下一篇:神奇的矩阵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复
百度谷歌雅虎搜狗搜搜有道360奇虎

使用道具 举报

签到天数: 374 天

连续签到: 3 天

[LV.9]以坛为家II

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-9-8 15:10:58 | 显示全部楼层

这段的结构弄复杂了

  1. (setq loop T)
  2.            (while loop
  3.              (xdrx_pointmonitor "_callback")
  4.              (if (setq p (getpoint "\n插入点:"))
  5.                (progn (setq mat (xdrx_matrix_settranslation (mapcar '- p base)))
  6.                       (xdrx_entity_transform (xdrx_entity_copy ss) mat)
  7.                )
  8.                (setq loop nil)
  9.              )
  10.            )


改成这样

  1. (xdrx_pointmonitor "_callback")
  2. (while (setq p (getpoint "\n插入点:"))
  3.   (setq mat (xdrx_matrix_settranslation (mapcar '- p base)))
  4.   (xdrx_entity_transform (xdrx_entity_copy ss) mat)
  5. )



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

使用道具 举报

签到天数: 374 天

连续签到: 3 天

[LV.9]以坛为家II

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-9-8 15:13:22 | 显示全部楼层

还有这个

  1. (xdrx_entity_transform (xdrx_entity_copy ss) mat)


拷贝完移动,怎么不直接就拷贝?

  1. (xdrx_entity_transformedcopy ss mat)

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

使用道具 举报

签到天数: 1005 天

连续签到: 26 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-9-8 23:47:47 | 显示全部楼层
  1. (defun c:tt ()
  2.   (defun _callback (dynpt)
  3.     (if        (not (equal dynpt oldpnt 1e-4))
  4.       (progn (setq mat (xdrx_matrix_settranslation (mapcar '- dynpt base)))
  5.              (xdrx_monitor_drawent ss mat)
  6.              (setq oldpnt dynpt)
  7.       )
  8.     )
  9.     (princ)
  10.   )
  11.   (xdrx_begin)
  12.   (if (and (setq ss (ssget))
  13.            (setq base (getpoint "\n基点<退出>:"))
  14.       )
  15.     (progn (xdrx_pointmonitor "_callback")
  16.            (while (setq p (getpoint "\n插入点:"))
  17.              (setq mat (xdrx_matrix_settranslation (mapcar '- p base)))
  18.              (xdrx_entity_transformedcopy ss mat)
  19.            )
  20.     )
  21.   )
  22.   (xdrx_end)
  23.   (princ)
  24. )


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

使用道具 举报

签到天数: 43 天

连续签到: 1 天

[LV.5]常住居民I

已领礼包: 106个

财富等级: 日进斗金

发表于 2017-9-27 09:55:45 | 显示全部楼层
(defun copy()
    (PROMPT "请选择需复制的东东")
    (setq ss(ssget))
    (if (/= ss NIL)
      (progn
        (setvar "osmode" 0)
        (command "copy" ss "" "m")
      );progn
    );if
        (princ))
(defun c:tt()
   (copy))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 114 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 56个

财富等级: 招财进宝

发表于 2017-9-29 12:22:34 | 显示全部楼层
对于被复制的对象很多的情况下,用xdrx_entity_transform比 xdrx_monitor_drawent省力,更快
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1816 天

连续签到: 355 天

[LV.Master]伴坛终老I

已领礼包: 5033个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

辽公网安备 21040202000005号

GMT+8, 2018-5-26 23:47 , Processed in 0.456194 second(s), 89 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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