半听可乐 发表于 2012-11-27 00:28:23

求直线角度替换程序

想把图中所有角度为292.5°的直线变成角度为315.0°的直线,有劳大侠们神笔挥就

ll_j 发表于 2012-11-27 00:28:24

本帖最后由 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 07:27:35

本帖最后由 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)
)

haoryh 发表于 2012-11-27 08:22:02

院长这么早就上来回贴了,劳模呀,向院长学习!

半听可乐 发表于 2012-11-27 09:03:08

xyp1964 发表于 2012-11-27 07:27 static/image/common/back.gif


院长,怎么没反应啊?

半听可乐 发表于 2012-11-27 19:36:12

还是没反应~~

半听可乐 发表于 2012-11-29 13:07:47

ll_j 发表于 2012-11-28 09:40 static/image/common/back.gif
这是饶直线起点旋转的,如果需要判别左右,还要再加些代码。

如我所愿,非常感谢!

半听可乐 发表于 2012-11-29 14:25:41

ll_j 发表于 2012-11-27 00:28 static/image/common/back.gif
这是饶直线起点旋转的,如果需要判别左右,还要再加些代码。

刚发现不对,直线没有变成315°,而是变成了320.1°

ll_j 发表于 2012-11-29 17:00:51

半听可乐 发表于 2012-11-29 14:25 static/image/common/back.gif
刚发现不对,直线没有变成315°,而是变成了320.1°

不好意思,刚才的确错了,现在修改了。

刚在在315度的基础上又加上了原有角度,所以错了。修改位置在第15行。

半听可乐 发表于 2012-11-29 17:24:25

ll_j 发表于 2012-11-29 17:00 static/image/common/back.gif
不好意思,刚才的确错了,现在修改了。

刚在在315度的基础上又加上了原有角度,所以错了。修改位置在第 ...

嘿嘿,好了!谢谢!
页: [1] 2
查看完整版本: 求直线角度替换程序