autolisp如何实现符号旋转
本帖最后由 275437962 于 2013-12-26 20:12 编辑将CAD中,某层中的所有块的角度都旋转180度!不管原来它们角度是否相同! 本帖最后由 llsheng_73 于 2013-12-23 12:30 编辑
(if(setq m -1 ss(ssget"X"'((0 . "INSERT")(8 . "图层名"))))
(repeat(sslength ss)
(entmod(setq m(1+ m)
e(entget(ssname ss m))
e(subst'(50 . pi)(assoc 50 e)e))))) llsheng_73 发表于 2013-12-22 22:52 static/image/common/back.gif
(if(setq m -1 ss(ssget"X"'((0 . "INSERT")(8 . "图层名"))))
(repeat(sslength ss)
(entmod(setq ...
你好,这段代码怎么执行啊 ;块变180度 ZZXXQQ 2013.12.23
(defun c:tt ()
(if (setq s1 (entsel "\n单选图块: ")) (progn
(setq en (car s1) ln (assoc 8 (entget en)))
(if (and (princ "\n选择图块: ") (setq ss (ssget (list '(0 . "INSERT") ln)))) (progn
(setq i -1)
(repeat (sslength ss)
(setq ent (entget(ssname ss (setq i (1+ i)))))
(entmod (subst (cons 50 180) (assoc 50 ent) ent))
)
))
))
(princ)
)
ZZXXQQ 发表于 2013-12-23 08:00 static/image/common/back.gif
大侠,不是这样子的,也是我没有说清楚,我的意思是,所有块都各自旋转180度,旋转后,它们的方向不应都一样,如原来角度是380的,旋转后变成200;原来角度是60的,旋转后变成240;原来角度是280的,旋转后变成100,诸如此类。。 本帖最后由 自贡黄明儒 于 2013-12-23 11:52 编辑
275437962 发表于 2013-12-23 11:35 http://bbs.mjtd.com/static/image/common/back.gif
大侠,不是这样子的,也是我没有说清楚,我的意思是,所有块都各自旋转180度,旋转后,它们的方向不应都一 ...
你把(entmod (subst (cons 50 180) (assoc 50 ent) ent))
改成(entmod (subst (cons 50 (+ (cdr (assoc 50 ent) pi))) (assoc 50 ent) ent))不就得了? 自贡黄明儒 发表于 2013-12-23 11:41 static/image/common/back.gif
你把(entmod (subst (cons 50 180) (assoc 50 ent) ent))
改成(entmod (subst (cons 50 (+ (cdr (asso ...
按你说的改了,不行,没有反应,符号没有变化 275437962 发表于 2013-12-23 12:08 static/image/common/back.gif
按你说的改了,不行,没有反应,符号没有变化
;块变180度 ZZXXQQ 2013.12.23
(defun c:w1 (/ EN ENT I LN S1 SS)
(if (setq s1 (entsel "\n单选图块: "))
(progn
(setq en (car s1)
ln (assoc 8 (entget en))
)
(if (and (princ "\n选择图块: ")
(setq ss (ssget (list '(0 . "INSERT") ln)))
)
(progn
(setq i -1)
(repeat (sslength ss)
(setq ent (entget (ssname ss (setq i (1+ i)))))
(entmod
(subst (cons 50 (+ (cdr (assoc 50 ent)) pi)) (assoc 50 ent) ent)
)
)
)
)
)
)
(princ)
) 275437962 发表于 2013-12-23 12:08 http://bbs.mjtd.com/static/image/common/back.gif
按你说的改了,不行,没有反应,符号没有变化
;;块旋转180 这个要好些,可用于带属性的块 自贡黄明儒2013年12月23日
(defun c:w1 (/ E EN I LN P10 S1 SS)
(if (setq s1 (entsel "\n单选图块: "))
(progn
(setq ln (assoc 8 (entget (car s1))))
(princ "\n选择图块: ")
(if (setq ss (ssget (list '(0 . "INSERT") ln)))
(repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i))))
(setq p10 (vlax-3d-point (cdr (assoc 10 (entget e)))))
(vla-rotate (vlax-ename->vla-object e) p10 pi)
)
)
)
)
(princ)
) 自贡黄明儒 发表于 2013-12-23 13:30 static/image/common/back.gif
谢谢了,很好用,麻烦你了!!!
页:
[1]