找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1041|回复: 5

[求助] 各位大大好,求一个替代命令执行copy的方法

[复制链接]
发表于 2013-4-29 21:28:48 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 菜菜学ODCL 于 2013-4-29 21:31 编辑

在我自己写的反应器处理程序中,我用 (command "copy" ss "" p1 p2),不能正常运行,请教各位大大,有没有其他替代的方法?

我看到VLISP中有vla-CopyObjects,可我不知道怎么用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-4-29 21:43:07 来自手机 | 显示全部楼层
反应器不能用command,用vla-copy
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-4-29 21:44:15 | 显示全部楼层
本帖最后由 newer 于 2013-4-29 21:45 编辑

试试,下面是测试代码。

[pcode=lisp,true]
(defun c:ttt (/ ss p1 p2)
  (vl-load-com)
  (if (and
        (ssget "_:L")
        (setq p1 (getpoint "\n拾取基点: "))
        (setq p2 (getpoint p1 "\n下一点: "))
      )
    (progn
      (vlax-for itm (setq ss (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
                (vla-move (vla-copy itm) (vlax-3d-point p1) (vlax-3d-point p2))
      )
      (vla-delete ss)
    )
  )
  (princ)
)
[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-29 21:47:30 | 显示全部楼层

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-4-29 22:02:00 | 显示全部楼层
给你个代码,锁定层、冻结层等不应该被COPY。
[pcode=lisp,true]
(defun _copyobject (obj from to / result)
  (and (eq (type obj) 'ename) (setq obj (vlax-ename->vla-object obj)))
  (cond        ((and obj
              (zerop (cdr (assoc 70 (tblsearch "layer" (vla-get-layer obj)))))
              (setq result (vlax-invoke obj 'copy))
         )
         (vlax-invoke result 'move from to)
         result
        )
  )
)
(_copyobject (car (entsel)) (getpoint) (getpoint))
[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-29 22:52:42 | 显示全部楼层
谢谢楼上各位大大,用VLA-COPY可以了,虽然还迷糊Vla-Copy和Vla-CopyObjects的区别。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 16:41 , Processed in 0.379760 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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