求一个关于特殊的旋转程序
本帖最后由 669423907 于 2013-5-8 20:47 编辑ro这个命令,相信大家都很熟悉,但它每次都是以0度为起点,很不好控制要旋转到某一角度或某一点。
希望大师帮忙编一个旋转程序:
1:点取旋转基点
2:点取控制点
3:控制点跟着鼠标动,十字光标吸附在控制点上
4:确定位置后,程序提示是否复制(默认不复制),右键确定,按 R 就复制,空格确定
本帖最后由 ZZXXQQ 于 2013-5-11 21:43 编辑
;参照旋转 明经 ZZXXQQ 2013.5.10 2013.5.11改
(defun c:rr ()
(setvar "CMDECHO" 0)
(if (and (princ "\n选择要旋转的物体: ")
(setq ss (ssget))
(setq pc (getpoint "\n旋转中心点: "))
(setq pt (getpoint pc "\n参照角度: "))
) (progn
(command "_.CIRCLE" pc "non" pt)
(setq s2 (entlast))
(setq s1 (entlast) sa (ssadd))
(command "_.COPY" ss "" "0,0" "0,0")
(while (setq s1 (entnext s1)) (ssadd s1 sa))
(command "_.ROTATE" ss "" pc "R" pc pt PAUSE)
(setq yn (strcase (getstring "\n是否复制(R/<N>): ")))
(if (= yn "") (command "_.ERASE" sa ""))
(command "_.ERASE" s2 "")
))
(setvar "CMDECHO" 1)
(princ)
)
本帖最后由 lingduwx 于 2013-5-8 11:58 编辑
把极轴用好了问题就解决了
个人觉得没有必要还单独做插件
lingduwx 发表于 2013-5-8 11:31 static/image/common/back.gif
把极轴用好了问题就解决了
个人觉得没有必要还单独做插件
如图所示:
我想以 A 点为基点,把 点1 旋转到 线 1 上,
以 B 点为基点,把 点 2 旋转到 线 2 上..........
常规的操作就是以A点为圆心,
A点到 点 1 为半径画圆,
交 线1 于C点,
再以A点为顶点量取∠CA1 的角度...........................
然后再选择对象,选择基点,输入度数
大神门,帮个忙啊!
找到一个,但不能选择旋转对象的........ 旋转命令里有个参考,应该可以满足你的要求 龙吟小调 发表于 2013-5-9 23:56 static/image/common/back.gif
旋转命令里有个参考,应该可以满足你的要求
操作有点麻烦,不能复制了. ZZXXQQ 发表于 2013-5-7 19:47 static/image/common/back.gif
非常感谢Z版,早上试了一下,发现一些小问题:
1:可不可以默认为不复制(那里明明是“N”,但默认的是复制???)
2:控制点还是无法准确的落在想要的位置,就像我传的图一样,
可能还是得以旋转基点为圆心,以基点到控制点的距离为半径画一个圆,
这样才会得到一个点,这样就可以准确的转到这个点上,最后自动删除这个圆 代码已改,再试试。 ZZXXQQ 发表于 2013-5-11 21:44 static/image/common/back.gif
代码已改,再试试。
弱弱的问一下,如何改成先选择,后操作呢?
页:
[1]
2