求直线角度替换程序
想把图中所有角度为292.5°的直线变成角度为315.0°的直线,有劳大侠们神笔挥就本帖最后由 ll_j 于 2012-11-29 16:56 编辑
(defun c:tt()
(setq ss (ssget '((0 . "LINE")))
i -1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq en (entget s1)
pt10 (cdr (assoc 10 en))
pt11 (cdr (assoc 11 en))
ang (angle pt10 pt11)
)
(if (or (equal ang (* pi (/ 292.5 180)) 1e-3)
(equal ang (* pi (/ 112.5 180)) 1e-3)
)
(progn
(setq pt11 (polar pt10 (* pi(/ 315.0 180)) (distance pt10 pt11))
en (subst (cons 11 pt11) (assoc 11 en) en)
)
(entmod en)
)
)
)
(princ)
)
这是饶直线起点旋转的,如果需要判别左右,还要再加些代码。
本帖最后由 xyp1964 于 2012-11-27 10:25 编辑
;; 自定义函数: http://bbs.mjtd.com/thread-95673-1-1.html
(defun c:tt ()
(cmdla0)
(setq ss (ssget '((0 . "line")))
i-1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(if (equal (xyp-r2d (xyp-get "angle" s1)) 292.5 1e-3)
(command "rotate" s1 "" "non" (xyp-get-CurveMidPoint s1) (- 315 292.5))
)
)
(cmdla1)
)
院长这么早就上来回贴了,劳模呀,向院长学习! xyp1964 发表于 2012-11-27 07:27 static/image/common/back.gif
院长,怎么没反应啊? 还是没反应~~ ll_j 发表于 2012-11-28 09:40 static/image/common/back.gif
这是饶直线起点旋转的,如果需要判别左右,还要再加些代码。
如我所愿,非常感谢! ll_j 发表于 2012-11-27 00:28 static/image/common/back.gif
这是饶直线起点旋转的,如果需要判别左右,还要再加些代码。
刚发现不对,直线没有变成315°,而是变成了320.1° 半听可乐 发表于 2012-11-29 14:25 static/image/common/back.gif
刚发现不对,直线没有变成315°,而是变成了320.1°
不好意思,刚才的确错了,现在修改了。
刚在在315度的基础上又加上了原有角度,所以错了。修改位置在第15行。 ll_j 发表于 2012-11-29 17:00 static/image/common/back.gif
不好意思,刚才的确错了,现在修改了。
刚在在315度的基础上又加上了原有角度,所以错了。修改位置在第 ...
嘿嘿,好了!谢谢!
页:
[1]
2