如何批量改变直线角度?
本帖最后由 fire9527 于 2015-6-7 19:51 编辑制作带文字的线型一个不好的地方就是如果线段是反向的,比如180度,270度,则线型上的文字也会反向,能否批量选中这些文字反向的直线,然后将直线以中心点旋转180度(或者采用reverse命令)来解决这个问题?
fire9527 发表于 2015-6-10 21:09 static/image/common/back.gif
关键就是不会改那判断条件啊
;直线90-270度反向
(defun c:tt (/ ss i en ent p1 p2 ang )
(if (and (princ "\n选择直线: ")
(setq ss (ssget '((0 . "LINE")))))
(repeat (setq i (sslength ss))
(setq en (ssname ss (setq i (1- i))))
(setq ent (entget en))
(setq p1 (cdr(assoc 10 ent)))
(setq p2 (cdr(assoc 11 ent)))
(setq ang (angle p1 p2))
(if (and (> ang (* pi 0.5))(<= ang (* pi 1.5))) (progn
(setq ent (subst (cons 10 p2) (assoc 10 ent) ent))
(entmod (subst (cons 11 p1) (assoc 11 ent) ent))
))
)
)
(princ)
)
;直线90-270度全部反向
(defun c:tt2 (/ ss i en ent p1 p2 ang )
(if (and (princ "\n选择直线: ")
(setq ss (ssget "x" '((0 . "LINE")))))
(repeat (setq i (sslength ss))
(setq en (ssname ss (setq i (1- i))))
(setq ent (entget en))
(setq p1 (cdr(assoc 10 ent)))
(setq p2 (cdr(assoc 11 ent)))
(setq ang (angle p1 p2))
(if (and (> ang (* pi 0.5))(<= ang (* pi 1.5))) (progn
(setq ent (subst (cons 10 p2) (assoc 10 ent) ent))
(entmod (subst (cons 11 p1) (assoc 11 ent) ent))
))
)
)
(princ)
) 请给个调试用的样本Dwg供验证... 本帖最后由 ZZXXQQ 于 2015-6-11 08:17 编辑
;直线转180度
(defun c:tt ()
(if (and (princ "\n选择直线: ")
(setq ss (ssget '((0 . "LINE")))))
(repeat (setq i (sslength ss))
(setq en (ssname ss (setq i (1- i))))
(setq ent (entget en))
(setq p1 (cdr(assoc 10 ent)))
(setq p2 (cdr(assoc 11 ent)))
(setq ang (angle p1 p2))
(if (< (* pi 0.5) ang (* pi 1.6)) (progn
(setq ent (subst (cons 10 p2) (assoc 10 ent) ent))
(entmod (subst (cons 11 p1) (assoc 11 ent) ent))
))
)
)
(princ)
)
ZZXXQQ 发表于 2015-6-7 10:31 static/image/common/back.gif
刚上传了附件,我想要的效果并不是所有直线旋转180度,而是满足一定角度的直线,请看一下 Andyhon 发表于 2015-6-7 09:17 static/image/common/back.gif
请给个调试用的样本Dwg供验证...
附件已上传 ZZXXQQ 发表于 2015-6-7 10:31 static/image/common/back.gif
刚是了下,没反应哦,还有就是并不是所有直线都要旋转180度,而是在一定角度范围内的直线才需要旋转,解决带字线型字体反转的问题 reverse 曲线反向 ivde 发表于 2015-6-7 12:15 static/image/common/back.gif
reverse 曲线反向
高版本才有这个命令,不知从哪一版开始 ZZXXQQ 发表于 2015-6-7 10:31 static/image/common/back.gif
老大,试试reverse这个命令呢,还有就是麻烦看看附件,需要程序构建特定角度的选择集,而不是手动去选择
页:
[1]
2