明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7407|回复: 27

[源码] 最好用的单字对齐插件

  [复制链接]
发表于 2017-12-15 00:00:07 | 显示全部楼层 |阅读模式
看到gaics发的单字对齐插件,是我觉得最好用的,而且难得的是以基点对准,所以转发一下,感谢gaics提供。

小小改动,对齐将M正中改成C居中。

(defun c:tt (/ ss ent amode obj i ii p px jd jdx jdy)
(setvar "cmdecho" 0)
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (defun getdxf (ent ii)
      (if (= (type ent) 'ename)
          (setq ent (entget ent))
      )
      (cdr (assoc ii ent))
    )
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (defun ch_dxf(en num ch / old_num new_num ent)
   (if (setq ent (entget en)
             new_num (cons num ch)
             old_num (assoc num ent)
       )
       (entmod(subst new_num old_num ent))
       (entmod(reverse(cons new_num (reverse  ent))))
   )
  )
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq ss (ssget '((0 . "TEXT"))))
(setq p (getpoint "选取点位置:"))
(initget "L M R")
(setq amode (getkword "\n选择对齐方式[左对齐(L)/对中(M)/右对齐(R)]<左对齐>:"))
(if (not amode)
    (setq amode "L")
)
(setq px (car p))

(cond ((= amode "L")
       (setq ii 10)
       (command "justifytext" ss "" "L")
      )
      ((= amode "M")
       (setq ii 11)
       (command "justifytext" ss "" "C")
      )
            ((= amode "R")
       (setq ii 11)
       (command "justifytext" ss "" "R")
      )
)
(setq i 0)
(while (< i (sslength ss))
  (setq ent (ssname ss i))
    (setq jd (getdxf ent ii))
    (setq jdx (car jd)
          jdy (cadr jd)
    )
    (setq newjd (list px jdy))
      (apply '(lambda (x) (ch_dxf x ii newjd)) (list ent) )
  ;(vl-cmdf "_move" (ssname ss i) "" "non" jd "non" (list px jdy))
  (setq i (+ i 1))
)
(princ)
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2017-12-18 08:29:54 | 显示全部楼层
本帖最后由 liunian0524 于 2017-12-18 08:32 编辑

收集的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

对象对齐如果能加上矩形阵列均布就完美了  发表于 2019-9-9 15:43
很赞  发表于 2017-12-18 12:23
回复 支持 2 反对 0

使用道具 举报

发表于 2018-1-2 08:15:43 | 显示全部楼层
命令: dq
选择对象: 指定对角点: 找到 2 个

选择对象:
选择对齐点:
命令: li LIST
选择对象: 找到 1 个

选择对象:
                  TEXT      图层: PUB_TEXT
                            空间: 模型空间
                   颜色: BYLAYER    线型: BYBLOCK
                   句柄 = 14aa5c
              样式 = "_TCH_DYN"
                注释性: 否
             字体 = 宋体
                起点 点, X=1025230.1469  Y=-1077169.8255  Z=   0.0000
                高度 55822.7848
                文字 250#  淡显
                旋转 角度      0
                宽度 比例因子    1.0000
                倾斜 角度      0
                生成 普通

命令:  LIST
选择对象: 找到 1 个

选择对象:
                  TEXT      图层: PUB_TEXT
                            空间: 模型空间
                   颜色: BYLAYER    线型: BYBLOCK
                   句柄 = 14aa5b
              样式 = "_TCH_DYN"
                注释性: 否
             字体 = 宋体
                起点 点, X=1513159.6395  Y=-1085233.1166  Z=   0.0000
                高度 55822.7848
                文字 A1  1:150
                旋转 角度      0
                宽度 比例因子    1.0000
                倾斜 角度      0
                生成 普通
下对齐,貌似没对齐,y坐标不一致
发表于 2017-12-15 12:34:34 | 显示全部楼层
  1. (defun c:tt ()
  2.   (setq md (Ukword 1 "1 2 3" "1-左对齐/2-对中/3-右对齐" md))
  3.   (setq pt (getpoint "选取对齐位置点: "))
  4.   (princ "\n选择文本<退出>: ")
  5.   (while (setq ss (ssget '((0 . "TEXT"))))
  6.     (setq i -1)
  7.     (while (setq s1 (ssname ss (setq i (1+ i))))
  8.       (setq p1 (cond ((= md "1") (xyp-9pt s1 4))
  9.                      ((= md "2") (xyp-9pt s1 5))
  10.                      ((= md "3") (xyp-9pt s1 6))
  11.                )
  12.             s1 (xyp-move s1 p1 (list (car pt) (cadr p1)))
  13.       )
  14.     )
  15.     (princ "\n选择文本<退出>: ")
  16.   )
  17.   (princ)
  18. )
发表于 2017-12-15 11:52:50 | 显示全部楼层
如果只是对齐,不用任何插件。批量选中了在特性框里修改对齐点坐标即可。
 楼主| 发表于 2017-12-16 22:08:16 | 显示全部楼层
mikewolf2k 发表于 2017-12-15 11:52
如果只是对齐,不用任何插件。批量选中了在特性框里修改对齐点坐标即可。

那还要慢慢数坐标,要是输入不对,那就飘很远去了
 楼主| 发表于 2017-12-16 22:11:34 | 显示全部楼层

我的2014运行后出现:TT ; 错误: no function definition: UKWORD
发表于 2017-12-17 19:45:04 | 显示全部楼层
你没穿内裤 所以提示这个 哈哈  穿上裤衩子 就没问题了
发表于 2017-12-17 22:53:12 | 显示全部楼层
mikewolf2k 发表于 2017-12-15 11:52
如果只是对齐,不用任何插件。批量选中了在特性框里修改对齐点坐标即可。

厉害啊
 楼主| 发表于 2017-12-18 00:22:11 | 显示全部楼层
love1030312 发表于 2017-12-17 19:45
你没穿内裤 所以提示这个 哈哈  穿上裤衩子 就没问题了

啥意思啊,怎么弄呢?请教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 08:37 , Processed in 0.216639 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表