【发布时间】:2017-04-18 10:09:38
【问题描述】:
我想用 AutoLisp 创建一个简单的“旋转”命令,所以这是我写的代码:
(defun C:myfunc()
(setq p1 (getpoint "\nPick first POINT on the screen:\n"))
(setq p2 (getpoint "\nPick second POINT on the screen:\n"))
(command "line" p1 p2 "")
(setq ss1 (ssget p2))
(command "rotate" ss1 p2 "90" "")
(princ )
)
我插入两个点 p1 和 p2 并创建一条连接它们的线。之后,我创建了 ss1 对象,即 p1-p2 行。最后,我尝试将线从基点 p2 旋转 90 度。
我在 AutoCad 中插入代码,但不是创建旋转线,而是要求手动插入基点和角度,所以我猜command "rotate" ... 线有问题。
任何建议将不胜感激。
【问题讨论】:
-
附带说明,entlast 将返回最后一个对象。如果您在
p2有多个对象,这可以防止出现问题。 -
我已经有一段时间没有使用 AutoLisp 了,但是您的
"90"应该改为90吗? -
@crashmstr 有几个教程使用
"90",没有使用90。 -
我找到了一些例子并写了一个应该有帮助的答案。