围绕旋转复制引用
大家好,我一直在尝试创建一个宏,在复制对象时围绕中心点旋转对象。如果长期这么做,我的行动如下:
旋转
进来
选择对象
进来
居中
进来
选择基点
复制
进来
参考
进来
居中
指定参考角度
指定第二个点
指定新角度
有人能给我一些指导吗?不能在宏中使用中心osnap命令吗?这应该用口齿不清来完成吗?
谢谢 以不同的顺序做可能更容易。首先拾取对象。
(defun c:rocop ( / ss pt1 pt2 pt3)
(setq ss (ssget))
(setq pt1 (getpoint "pick Centre pt"))
(setq pt2 (getpoint pt1"1st angle point"))
(setq pt3 (getpoint pt1 "2nd angle point"))
(command "rotate" ss "" pt1 "Copy" "R" pt1 pt2 pt3)
)
谢谢比格尔。这接近我试图实现的目标,但我认为缺少了几个步骤,使其按我希望的方式运行。下面是我需要它做什么的截图:
https://i.imgur.com/j62ryJx.gifv
希望这更清楚。这是可以实现的吗?
谢谢 有什么原因需要宏/lisp吗?
你能不能只使用极轴阵列命令?
Polar array适用于我展示的示例,但我实际上只是想将其作为一个示例来演示过程。我经常在更大范围内使用这种方法,并多次递增。这是我多年来发现的针对特定应用的最佳方法,但最终决定尽可能通过消除一些关键笔划来加快速度。 它完全不同于你所要求的,选择圆,选择对象,选择和弦2点,需要多少顺时针或逆时针。这还取决于如何绘制正方形,是不是接触圆的角?这是一个齿轮类型lisp解决方案,使用齿距作为齿轮间距。不管怎样,只要几分钟,这并不难。
; simple rotatecopy
; By Alan H nov 2017
(defun c:rocop ( / ss pt1 pt2 pt3)
(setq pt1 (getpoint "pick Centre pt"))
(setq pt2 (getpoint pt1"1st angle point"))
(setq pt3 (getpoint pt1 "2nd angle point"))
(setq howmany (Getint "Enter How many"))
(setq ss (ssget))
(command "rotate" ss"" pt1 "Copy" "R" pt1 pt2 pt3)
(if (= howmany 1)(princ "1")
(progn
(repeat (- howmany 1)
(command "rotate" (entlast) "" pt1 "Copy" "R" pt1 pt2 pt3)
)
)
)
)
比格尔,谢谢!这实际上比我要求的更好,因为我可以指定多个副本,而不是复制一个,然后复制2个,然后复制4个,等等。我非常感谢你花时间回复并为我编写这个小脚本。
页:
[1]