乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 12|回复: 12

[编程交流] 相对于上次复制位置的复制

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:51:57 | 显示全部楼层 |阅读模式
大家好,
 
您知道如何在“复制”命令上选择常规方向并保持相对于基点的复制吗?我想这样做,但希望复制距离是相对于最后一个复制点的。
 
如果不清楚,我将举一个例子:
 
在点0,0,0处创建一个圆。
 
我希望沿x轴每隔10英尺复制一次圆,复制距离为100英尺。而不是连续输入10,20,30,40,50等复制点。从基点0,0,0开始,我希望从0,0,0开始,但输入[copy],对于距离,输入10,10,10,10,并使每个复制的圆从最后一个复制点向前移动10英尺或我需要的任何距离。
 
在现实生活中,这些点对我来说是不同的,所以它不会是一个恒定的10英尺,或者一个均匀的长度,它会有所不同。
 
看起来一个简单的LISP例程可以处理这个问题,但我想知道在我重新发明烤面包机烤箱之前,autocad中是否存在这个函数。。。
 
提前感谢!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 16:00:54 | 显示全部楼层
既然复制步骤是恒定的,为什么不使用ARRAY命令呢?
回复

使用道具 举报

7

主题

708

帖子

701

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 16:03:44 | 显示全部楼层
Psst MSasu。。。OP说,
 
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 16:11:33 | 显示全部楼层
烤面包机烤箱?我想你刚刚发明了它。。。
回复

使用道具 举报

7

主题

708

帖子

701

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 16:12:17 | 显示全部楼层
我会使用临时跟踪点,但这可能需要大量点击。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:18:31 | 显示全部楼层
从未听说过烤面包机烤箱(不是烤面包机)?我现在开始觉得自己老了,我才30多岁。。。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:26:06 | 显示全部楼层
听起来cad中并没有这个命令,所以我只起草一个lisp,应该很简单。
 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:30:36 | 显示全部楼层
下面是一个相对简单的程序:
 
  1. (defun c:copyrel ( / b i l p q s )
  2.    (if
  3.        (and
  4.            (setq s (ssget "_:L"))
  5.            (setq p (getpoint "\nSpecify Base Point: "))
  6.            (setq b (vlax-3D-point (trans p 1 0)))
  7.        )
  8.        (progn
  9.            (repeat (setq i (sslength s))
  10.                (setq l (cons (vlax-ename->vla-object (ssname s (setq i (1- i)))) l))
  11.            )
  12.            (while (setq q (getpoint "\nSpecify Second Point: " p))
  13.                (foreach x l (vla-move (vla-copy x) b (vlax-3D-point (trans q 1 0))))
  14.                (setq p q)
  15.            )
  16.        )
  17.    )
  18.    (princ)
  19. )
  20. (vl-load-com)
  21. (princ)

 
或者,如果您安装了Express Tools:
 
  1. (defun c:copyrel ( / b i l o p q s )
  2.    (if
  3.        (and
  4.            (setq s (ssget "_:L"))
  5.            (setq p (getpoint "\nSpecify Base Point: "))
  6.            (setq b (vlax-3D-point (trans p 1 0)))
  7.        )
  8.        (progn
  9.            (repeat (setq i (sslength s))
  10.                (setq l (cons (vlax-ename->vla-object (ssname s (setq i (1- i)))) l))
  11.            )
  12.            (while (setq q (acet-ss-drag-move s p "\nSpecify Second Point: " 0 0))
  13.                (setq s (ssadd))
  14.                (foreach x l
  15.                    (vla-move (setq o (vla-copy x)) b (vlax-3D-point (trans q 1 0)))
  16.                    (ssadd (vlax-vla-object->ename o) s)
  17.                )
  18.                (setq p q)
  19.            )
  20.        )
  21.    )
  22.    (princ)
  23. )
  24. (vl-load-com)
  25. (princ)
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:33:07 | 显示全部楼层
李,现在你已经去做了。。。我最近一直在尝试新的东西,也遇到过一些老帖子,在这些帖子中,你最慷慨地为他人提供帮助,而现在你却对我这样做了!
 
上帝保佑你,
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 16:40:59 | 显示全部楼层
很好,李。。。我还使用acet ss drag move和acet ss drag rotate来执行CopyRotate(CORO)命令。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 21:02 , Processed in 0.658780 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表