土木在线论坛 \ 水利工程 \ 水利软件 \ [分享]autocad中的文字对齐工具at.lsp

[分享]autocad中的文字对齐工具at.lsp

发布于:2004-03-05 22:17:05 来自:水利工程/水利软件 [复制转发]
;;
;;程序名称:对象水平对齐程序
;;执行命令: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

申明:内容来自用户上传,著作权归原作者所有,如涉及侵权问题,请点击此处联系,我们将及时处理!

全部回复(14 )

只看楼主 我来说两句
  • arhu981111
    arhu981111 沙发
    haoyong xiexie
    :)
    2009-08-03 16:28:03

    回复 举报
    赞同0
  • xc_gege
    xc_gege 板凳
    ??????看看那
    2009-06-10 07:52:10

    回复 举报
    赞同0
加载更多
这个家伙什么也没有留下。。。

水利软件

返回版块

13.32 万条内容 · 178 人订阅

猜你喜欢

阅读下一篇

[转帖]楼梯计算好的

楼梯计算 upload/forum/200435211305.rar

回帖成功

经验值 +10