找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5494|回复: 55

[分享]:动态复制程序

[复制链接]
发表于 2004-3-2 14:47:47 | 显示全部楼层 |阅读模式

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

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

×
十分欣赏sketchup中的复制方式,现写了一个用于acad的动态复制程序,大家试试,挺好用的.


[PHP]
(defun zf_dynamic_copy  (/ p1 p2 s e cn)
;__________________
  (defun ttt (ss n / m)
    (setq ee e
          ns (ssadd)
    )
    (while (setq ee (entnext ee))
      (setq ns (ssadd ee ns))
    )
    (command "erase" ns "")
    (command "copy" ss "" "m" "non" p1)
    (setq m 0)
    (repeat (atoi n)
      (setq m (1+ m))
      (cond
        ((= "/" (substr n (strlen n)))
         (command
           "non"
           (mapcar '(lambda (x y) (+ x (* m (/ (- y x) (atof n)))))
                   p1
                   p2
           )
         )
        )
        (t
         (command "non"
                  (mapcar '(lambda (x y) (+ x (* m (- y x)))) p1 p2)
         )
        )
      )
    )
    (command)
  )
;__________________
  (princ "\n动态复制程序__BY__WKAI__晓东CAD空间论坛")
  (princ "\n选择要复制的物体:")
  (setq s (ssget))
  (setq p1 (getpoint "\n复制的起点:"))
  (setq p2 (getpoint p1 "\n复制的终点:"))
  (setq e (entlast))
  (command "copy" s "" "non" p1 "non" p2)
  (while (/= 0 (atof(setq cn (getstring "\n份数(以 / 结束为等分):"))))
    (ttt s cn)
  )
  (princ)
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-2 17:17:13 | 显示全部楼层

Re: [分享]:动态复制程序

最初由 wkai 发布
[B]十分欣赏sketchup中的复制方式,现写了一个用于acad的动态复制程序,大家试试,挺好用的.


[PHP]
(defun zf_dynamic_copy  (/ p1 p2 s e cn)
;__________________
  (defun ttt (ss n / m)
    (setq ee e
         ... [/B]


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

使用道具 举报

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

使用道具 举报

发表于 2004-3-2 20:07:01 | 显示全部楼层

Re: [分享]:动态复制程序

最初由 wkai 发布
[B]十分欣赏sketchup中的复制方式,现写了一个用于acad的动态复制程序,大家试试,挺好用的.


[PHP]
(defun zf_dynamic_copy  (/ p1 p2 s e cn)
;__________________
  (defun ttt (ss n / m)
    (setq ee e
         ... [/B]


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

使用道具 举报

发表于 2004-3-2 20:41:52 | 显示全部楼层

Re: Re: [分享]:动态复制程序

最初由 xiaping 发布
[B][QUOTE]最初由 wkai 发布
[B]十分欣赏sketchup中的复制方式,现写了一个用于acad的动态复制程序,大家试试,挺好用的.


[PHP]
(defun zf_dynamic_copy  (/ p1 p2 s e cn)
;__________________
  (defun... [/B]


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

使用道具 举报

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

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-3-2 23:04:34 | 显示全部楼层
拷贝的时候看不见预演不习惯
就改了几个字
  1. [php]
  2. (defun zf_dynamic_copy  (/ p1 p2 s e cn)
  3. ;__________________
  4.   (defun ttt (ss n / m)
  5.     (setq ee e
  6.       ns (ssadd)
  7.     )
  8.     (while (setq ee (entnext ee))
  9.       (setq ns (ssadd ee ns))
  10.     )
  11.     (command "erase" ns "")
  12.     (command "copy" ss "" "m" "non" p1)
  13.     (setq m 0)
  14.     (repeat (atoi n)
  15.       (setq m (1+ m))
  16.       (cond
  17.     ((= "/" (substr n (strlen n)))
  18.      (command
  19.        "non"
  20.        (mapcar '(lambda (x y) (+ x (* m (/ (- y x) (atof n)))))
  21.            p1
  22.            p2
  23.        )
  24.      )
  25.     )
  26.     (t
  27.      (command "non"
  28.           (mapcar '(lambda (x y) (+ x (* m (- y x)))) p1 p2)
  29.      )
  30.     )
  31.       )
  32.     )
  33.     (command)
  34.   )
  35. ;__________________
  36.   (princ "\n动态复制程序__BY__WKAI__晓东CAD空间论坛")
  37.   (princ "\n选择要复制的物体:")
  38.   (setq s (ssget))
  39.   (setq p1 (getpoint "\n复制的起点:"))
  40.   (setvar"lastpoint" p1)
  41.   ;(setq p2 (getpoint p1 "\n复制的终点:"))
  42.   (setq e (entlast))
  43.   (command "copy" s "" "non" p1 pause)
  44.   (if(not(equal p1(setq p2(getvar"lastpoint"))))
  45.   (while (/= 0 (atof(setq cn (getstring "\n份数(以 / 结束为等分):"))))
  46.     (ttt s cn)
  47.   )
  48.   )
  49.   (princ)
  50. )[/php]



(setq e (entlast))不完全对!!

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-3-3 09:24:52 | 显示全部楼层
更加灵活的版本:
[PHP]
(defun  zf_dynamic_copy (/ p1 p2 s e cn a1 d1 ns cnn)
;__________________
  (defun ttt (ss n / m)
    (setq ee e
      ns (ssadd)
    )
    (while (setq ee (entnext ee))
      (setq ns (ssadd ee ns))
    )
    (command "erase" ns "")
    (command "copy" ss "" "m" "non" p1)
    (if (member (substr n (strlen n)) '("/" "*"))      
      (progn
        (setq m 0)
        (repeat        (atoi n)
          (setq m (1+ m))
          (cond
            ((= "/" (substr n (strlen n)))
             (command "non"(mapcar '(lambda (x y) (+ x (* m (/ (- y x) (atof n))))) p1 p2))
            )
            ((= "*" (substr n (strlen n)))
             (command "non"(mapcar '(lambda (x y) (+ x (* m (- y x)))) p1 p2))
            )
          )
        )
      )
      (command "non" (setq p2 (polar p1 a1 (atof n))))
    )
    (command)
  )
;__________________
  (princ "\n动态复制程序__BY__WKAI__晓东CAD空间论坛")
  (princ "\n选择要复制的物体:")
  (setq s (ssget))
  (setq p1 (getpoint "\n复制的起点:"))
  (command "undo" "be" "line" p1 p1 "" )
  (setq e (entlast) )
  (command "copy" s "" "non" p1 pause)
  (setq        p2 (getvar "lastpoint")
        a1 (angle p1 p2)
        d1 (distance p1 p2)
  )
  (setq cn "1*")
  (while cn
    (ttt s cn)
    (initget 128)
    (princ "\n输入坐标=复制终点                         输入数值=修改间距 ")
    (princ "\n输入数值n并以 / 结束=间距内等分n次复制    输入数值n并以 * 结束=按间距复制n次 ")
    (setq cnn (getpoint "\n请按提示输入<退出>:"))
    (if        (= 'LIST (type cnn))
      (setq p2 cnn
            a1 (angle p1 p2)
            d1 (distance p1 p2)
      )
      (setq cn cnn)
    )
  )
  (entdel e)
  (command "undo" "e")
  (princ)
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-3 10:25:35 | 显示全部楼层
大侠们,能否整理一下,做个附件呀,我等看不懂呀!
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-3 10:46:38 | 显示全部楼层
最初由 andyhua5240 发布
[B]大侠们,能否整理一下,做个附件呀,我等看不懂呀!
谢谢! [/B]


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 22:24 , Processed in 0.471086 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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