明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1158|回复: 4

文字居中对齐,怎么修改代码只选择一次对象就行

[复制链接]
发表于 2025-7-18 17:13:43 | 显示全部楼层 |阅读模式
(defun pt1-pt2-mid (e / minpoint maxpoint)
(vla-getboundingbox e 'minpoint 'maxpoint)
(setq pt(mapcar '* '(0.5 0.5)
    (mapcar '+ (vlax-safearray->list minpoint)(vlax-safearray->list maxpoint))
   ))
  )
(defun c:WZJZ (/ mid obj mid1 dob)
(vl-cmdf "undo" "BE")
(if(ssget '((0 . "TEXT,Mtext")))
  (progn
;; 第一次将多行文字对正方式改为正中
(setq css (ssget)) (command "justifytext" css "" "mc")
;; 第二次将所有文字正中对齐
(vlax-for obj(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object)))
  (if(/=(setq ob(bpoly(setq mid(pt1-pt2-mid obj))))nil)
    (progn
    (setq mid1(pt1-pt2-mid(setq dob(vlax-ename->vla-object ob))))
    (vla-delete dob)
    (vla-move obj(vlax-3D-point mid)(vlax-3D-point mid1))
    )))
   )(princ "\n&&&&&&&&&&|请选择所有文字|&&&&&&&&&&&&&&")
  )
  (vl-cmdf "undo" "E")(princ)
  )

文字居中对齐,现在要选择两次,怎么修改代码只选择一次对象就行

回复

使用道具 举报

发表于 2025-7-18 17:28:01 | 显示全部楼层
(defun pt1-pt2-mid (e / minpoint maxpoint)
        (vla-getboundingbox e 'minpoint 'maxpoint)
        (setq pt(mapcar '* '(0.5 0.5)
                                                (mapcar '+ (vlax-safearray->list minpoint)(vlax-safearray->list maxpoint))
                                        ))
)
(defun c:WZJZ (/ css mid obj mid1 dob)
        (vl-cmdf "undo" "BE")
        (if (setq css (ssget '((0 . "TEXT,Mtext"))))
                (progn
                        ;; 第一次将多行文字对正方式改为正中
                        (command "justifytext" css "" "mc")
                        ;; 第二次将所有文字正中对齐
                        (sssetfirst nil css)
                        (vlax-for obj(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object)))
                                (if(/=(setq ob(bpoly(setq mid(pt1-pt2-mid obj))))nil)
                                        (progn
                                                (setq mid1(pt1-pt2-mid(setq dob(vlax-ename->vla-object ob))))
                                                (vla-delete dob)
                                                (vla-move obj(vlax-3D-point mid)(vlax-3D-point mid1))
                                        )))
                )(princ "\n&&&&&&&&&&|请选择所有文字|&&&&&&&&&&&&&&")
  )
  (vl-cmdf "undo" "E")(princ)
)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-18 21:55:49 | 显示全部楼层
666,谢谢大佬
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-18 21:56:54 | 显示全部楼层
1028695446 发表于 2025-7-18 17:28
(defun pt1-pt2-mid (e / minpoint maxpoint)
        (vla-getboundingbox e 'minpoint 'maxpoint)
        (setq pt(m ...

666,感谢感谢
回复 支持 反对

使用道具 举报

发表于 2025-8-17 00:03:40 | 显示全部楼层
justify....cad自带命令
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-3 07:35 , Processed in 0.165907 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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