明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 832|回复: 6

如何自定义对齐方式?

[复制链接]
发表于 2024-5-9 02:15:05 | 显示全部楼层 |阅读模式
本帖最后由 zilong136 于 2024-5-10 02:34 编辑

我想做左对齐、中对齐、右对齐三种文字对齐方式,如何优化下列代码?不想每次重新设置。

  • ;1【DQ1】文字对齐--TEXTALIGN
  • (defun c:dq1 ()
  •   (prompt "\n dq1:文字左对齐--垂直") ;输出命令行显示
  •     (setvar "cmdecho" 0) ;关闭CAD命令行显示
  •   (command-s "TEXTALIGN" "O" "V"  ) ;自定义命令
  •   (command-s "TEXTALIGN" "I" "L"  ) ;自定义命令
  •   (setvar "cmdecho" 1) ;打开CAD命令行显示
  •   (princ)
  • )
  • ;2【DQ2】文字对齐--TEXTALIGN
  • (defun c:dq2 ()
  •   (prompt "\n dq2:文字中对齐--垂直") ;输出命令行显示
  •     (setvar "cmdecho" 0) ;关闭CAD命令行显示
  •   (command-s "TEXTALIGN" "O" "V"  ) ;自定义命令
  •   (command-s "TEXTALIGN" "I" "C"  ) ;自定义命令
  •   (setvar "cmdecho" 1) ;打开CAD命令行显示
  •   (princ)
  • )
  • ;3【DQ3】文字对齐--TEXTALIGN
  • (defun c:dq3 ()
  •   (prompt "\n dq3:文字右对齐--垂直") ;输出命令行显示
  •     (setvar "cmdecho" 0) ;关闭CAD命令行显示
  •   (command-s "TEXTALIGN" "O" "V"  ) ;自定义命令
  •   (command-s "TEXTALIGN" "I" "R"  ) ;自定义命令
  •   (setvar "cmdecho" 1) ;打开CAD命令行显示
  •   (princ)
  • )


水平对齐列表改变不了系统上一次的选择,如何优化?
  • ;10.5.7.3【hdq】文字对齐--水平
  • (defun c:hdq ()
  •     (princ "\n hdq:文字对齐--水平")
  •   (initget "L C R TL TC TR ML MC MR BL BC  BR")
  •   (setq align (getkword "\n[左对齐(L)/中对齐(C)/右对齐(R)/左上(TL)/中上(TC)/右上(TR)/左中(ML)/正中(MC)/右中(MR)/左下(BL)/中下(BC)/右下(BR)]"))
  •   (cond
  •    ((= align "L") (setq promptMsg "\n文字左对齐--水平"))
  •    ((= align "C") (setq promptMsg "\n文字中对齐--水平"))
  •    ((= align "R") (setq promptMsg "\n文字右对齐--水平"))
  •     ((= align "TL") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "TC") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "TR") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "ML") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "MC") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "MR") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "BL") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "BC") (setq promptMsg "\n文字对齐--水平"))
  •     ((= align "BR") (setq promptMsg "\n文字对齐--水平"))
  •   )
  •   (prompt promptMsg) ; 输出命令行显示
  •   (setvar "cmdecho" 0) ; 关闭CAD命令行显示
  •   (vl-cmdf "TEXTALIGN" "O" align) ; 自定义命令
  •   (setvar "cmdecho" 1) ; 打开CAD命令行显示
  •   (princ)
  • )

发表于 2024-5-9 07:57:48 | 显示全部楼层
发表于 2024-5-9 11:36:39 | 显示全部楼层
有没有可能天正已经做好了?比如ALXLEFT、ALXMID、ALXRIGHT
 楼主| 发表于 2024-5-9 11:41:04 | 显示全部楼层

我在使用JUSTIFYTEXT命令,选择对齐方式后,命令自动结束了,不知道什么情况。使用你的LSP也是一样情况。
 楼主| 发表于 2024-5-9 11:43:31 | 显示全部楼层
xkey 发表于 2024-5-9 11:36
有没有可能天正已经做好了?比如ALXLEFT、ALXMID、ALXRIGHT

我要的是纯CAD环境
发表于 2024-5-9 21:03:26 | 显示全部楼层
  1. (defun c:dq ()
  2.         (initget "L C R ")
  3.         (setq align (getkword "\n[左对齐(L)/中对齐(C)/右对齐(R)]"))
  4.         (cond
  5.           ((= align "L") (setq promptMsg "\n文字左对齐--垂直"))
  6.           ((= align "C") (setq promptMsg "\n文字中对齐--垂直"))
  7.           ((= align "R") (setq promptMsg "\n文字右对齐--垂直"))
  8.           )
  9.         (prompt promptMsg) ; 输出命令行显示
  10.         (setvar "cmdecho" 0) ; 关闭CAD命令行显示
  11.         (command-s "TEXTALIGN" "O" "V") ; 自定义命令
  12.         (command-s "TEXTALIGN" "I" align) ; 自定义命令
  13.         (setvar "cmdecho" 1) ; 打开CAD命令行显示
  14.   (princ)
  15.   )
 楼主| 发表于 2024-5-10 01:45:41 | 显示全部楼层
本帖最后由 zilong136 于 2024-5-10 01:52 编辑
要把这一行去掉(command-s "TEXTALIGN" "O" "V") ; 自定义命令
要不然你作的表不起作用,选择你那个表之后还要再一次进行选择才行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:33 , Processed in 0.156589 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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