明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: lpl

如何任意方向指定距离进行连续复制???

  [复制链接]
发表于 2013-1-14 18:19:53 来自手机 | 显示全部楼层
我觉得qjchen的阵列可以很好地满足楼主的要求
发表于 2013-1-14 23:29:56 | 显示全部楼层
本帖最后由 hehoubin 于 2013-1-14 23:33 编辑


本帖子中包含更多资源

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

x
发表于 2013-1-18 15:38:01 | 显示全部楼层
x_s_s_1 发表于 2013-1-14 12:04
写了个复制的

如能做成对话框,加上复制距离为绝对距离与相对距离选择,那就更完美了。
发表于 2013-1-18 21:03:42 | 显示全部楼层
本帖最后由 xyp1964 于 2013-1-18 21:04 编辑







本帖子中包含更多资源

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

x
发表于 2013-1-24 12:46:20 | 显示全部楼层
嘿嘿,这个我自己也写了一个,不过不精简

(defun c:dcfz(/ ss1 dst spt ept len1 ang1 nom1)
  (princ "\n选择多重复制的对象:")
  (setq ss1 (ssget))
  (setq dst 0
        nom1 0)
  (setq dst (getdist "\n复制的间距:(间距)|等分(0):<0>"))
  (setq spt (getpoint "\n复制的起点:"))
  (setq ept (getpoint "\n终点(方向):"))
  (setq len1 (distance spt ept))
  (setq ang1 (angle spt ept))
  (setq os (getvar "osmode"));;存储osmode原来的值
  (setvar "osmode" 0);;设置osmode为0
  (if (or (= dst 0) (= dst nil))
    (progn
      (setq nom1 (1- (getint "\n复制的次数(含原物体):")))
      (setq dst (/ len1 nom1))
    )
    (progn
      (setq nom1 (getint "\n复制的次数|沿路径自动排列(0):<0>"))
      (if (or (= nom1 0) (= nom1 nil))
        (setq nom1 (fix (/ len1 dst)))
        (princ nom1)
      )
    )
)
  (while (>= nom1 1)
    (setq mpt (polar spt ang1 (* dst nom1)))
    (command "copy" ss1 "" spt mpt)
    (setq nom1 (1- nom1))
  )
(setvar "osmode" os)
  (prin1)
)

有个判断是起点终点的长度,按长度确定复制的次数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-21 03:32 , Processed in 0.146770 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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