从听说autolisp到现在已经20年了,
学了一点点,
可惜中间没能坚持下来,
放弃了!
今天在画图,
图纸是从revit转成dwg的,
其中有些文本的朝向是错误的,
如果手工旋转很是费事,
于是想写个小程序来完成,
可惜很久没有启动Visual Studio了,
况且使用的autocad版本为2008,
之前没有针对这个版本配置过,
于是放弃了编写.net程序的想法,
想使用visuallisp来实现!
东西都忘光了,
好在知道怎么查帮助,
总算写出来了,
写程序的时间估计跟手工旋转哪些文本的时间差不多,
不过我实在是懒,
不想干简单重复的事。
源码贴在这里:
(defun c:qt ()
(setq ss (ssget '((0 . "MTEXT")(50 . 3.1415926535897)))
l (sslength ss)
i 0
)
(if (> l 0)
(repeat l
(progn
(setq ent (ssname ss i))
(setq entd (entget ent))
(setq pt (cdr (assoc 10 entd))
w (cdr (assoc 42 entd))
h (cdr (assoc 40 entd))
)
(setq newpt (list (- (car pt) w)
(+ (cadr pt) h)
(caddr pt)
)
)
(setq entd
(subst (cons 10 newpt)
(assoc 10 entd)
entd
)
)
(setq entd
(subst '(50 . 0)
(assoc 50 entd)
entd
)
)
(entmod entd)
(setq i (+ 1 i))
)
)
)
)