[分享]autocad中的文字对齐工具at.lsp
guanhuaming
2004年03月05日 22:17:10
来自于水利软件
只看楼主

;;;;程序名称:对象水平对齐程序;;执行命令:at;;程序功能:将选定的对象左对齐、右对齐或对中。;;(defun c:at (/ selobjs oldcmdecho) (setq oldcmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (setq selobjs (ssget '((0 . "TEXT")))) (process selobjs)

;;
;;程序名称:对象水平对齐程序
;;执行命令:at
;;程序功能:将选定的对象左对齐、右对齐或对中。
;;
(defun c:at (/ selobjs oldcmdecho)
(setq oldcmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq selobjs (ssget '((0 . "TEXT"))))
(process selobjs)
(setvar "cmdecho" oldcmdecho)
(princ)
)
(defun process (selobjs / amode apnt apnt_x
apnt_y count objname vlaxobj MinPoint
MaxPoint minext maxext ext_l ext_r
ext_m tpnt
)
(initget "L M R")
(setq amode (getkword
"\n选择对齐方式 <左对齐(l) 中(m) 对齐(r)> <居中> :"
)
)
(if (not amode)
(setq amode "M")
)
(initget 1)
(setq apnt (getpoint "\n选择水平对齐方向的对齐点:"))
(setq apnt_x (car apnt)
apnt_y (cadr apnt)
)
(vl-load-com)
(setq count 0)
(repeat (sslength selobjs)
(setq objname (ssname selobjs count))
(setq vlaxobj (vlax-ename->vla-object objname))
(setq MinPoint (vlax-make-variant))
(setq MaxPoint (vlax-make-variant))
(vla-GetBoundingBox vlaxobj 'MinPoint 'MaxPoint)
(setq minext (vlax-safearray->list MinPoint))
(setq maxext (vlax-safearray->list MaxPoint))
(setq ext_l (car minext))
(setq ext_r (car maxext))
(setq ext_m (+ (/ (abs (- ext_l ext_r)) 2) ext_l))
(cond
((= amode "L")
(setq tpnt (list ext_l apnt_y))
)
((= amode "M")
(setq tpnt (list ext_m apnt_y))
)
((= amode "R")
(setq tpnt (list ext_r apnt_y))
)
)
(if tpnt
(command "_move" objname "" "non" tpnt "non" apnt)
)
(setq count (1+ count))
)
)


完整的附件下载:
upload/forum/200435221652.rar
e83af148ba431618d986.rar
682 B
立即下载
ouvi
2005年11月16日 13:24:50
2楼
我YAO~~~
回复
lsyou1980
2005年11月24日 19:00:40
3楼
好!下载下来看看是不是好用!要是好用的话用CAD制作表可就方便了!
回复
yzhxf_01@co163
2005年12月01日 13:56:01
4楼
不错,谢谢主。
回复
yzhxf_01@co163
2005年12月01日 13:59:21
5楼
不错,支持。
回复
chen-weizheng
2005年12月23日 11:40:55
6楼
以前总是只能调X坐标的对齐,那现在就能省事多了,谢楼主!
回复
watertogas
2007年06月11日 10:37:07
7楼
谢谢
回复
nczqq
2007年07月19日 10:28:51
8楼
怎么用呀
回复
武侯红茶
2007年08月02日 10:58:20
9楼
此程序有个问题,当对齐对象所处坐标x为负值时,对齐后,所有对象将平移到对应的正值x坐标处~~~还在看程序,应该能解决~~~
回复
merier
2007年08月29日 08:44:59
10楼
这个只能垂直方向对齐?
回复
xidlon
2008年08月07日 16:29:44
11楼
顶上,用得上,正在找它,希望能有更好的程序出来!
回复

相关推荐

APP内打开