明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1025|回复: 17

如何让文字回到正确的位置?

[复制链接]
发表于 2025-9-25 23:31:36 | 显示全部楼层 |阅读模式
如图所示,以白色竖线为基准线,第一个是正确的位置,更换字体后会错位,当双击文字编辑时,文字又会回到正确的位置。这样会带来困扰。

如何写一段代码,运行后文字自动回到正确的位置?

ps:我目前在用的软件里面的修改文字样式命令,选中文字后,修改文字字体、大小后都是正确的位置。

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2025-9-26 14:15:48 | 显示全部楼层
  1. (defun ss2lst (ss / i e lst)
  2.   (setq i -1)
  3.   (repeat (sslength ss)
  4.     (setq e (ssname ss (setq i (1+ i)))
  5.       lst (cons e lst)
  6.     )
  7.   )
  8. )
  9. (defun en2obj (ename)
  10.   (vlax-ename->vla-object ename)
  11. )
  12. (defun C:DB-Text-InsertionPoint(  / en ss obj InsertionPoint)
  13.   (if (setq ss (ssget "X" '((0 . "INSERT")(66 . 1))))
  14.     (foreach en (ss2lst ss)
  15.       (setq obj (en2obj en))
  16.       (if (setq InsertionPoint (vlax-get-property obj 'InsertionPoint) )
  17.         (vlax-put-property obj 'InsertionPoint InsertionPoint)
  18.       )
  19.     )
  20.   )
  21. )
回复 支持 1 反对 0

使用道具 举报

发表于 2025-9-26 08:36:23 | 显示全部楼层
本帖最后由 dabingrain 于 2025-9-26 08:39 编辑

  1. (defun ss2lst (ss / i e lst)
  2.   (setq i -1)
  3.   (repeat (sslength ss)
  4.     (setq e (ssname ss (setq i (1+ i)))
  5.       lst (cons e lst)
  6.     )
  7.   )
  8. )
  9. (defun en2obj (ename)
  10.   (vlax-ename->vla-object ename)
  11. )
  12. (defun C:DB-Text-InsertionPoint(  / en ss obj InsertionPoint)
  13.   (if (setq ss (ssget "X" '((0 . "*TEXT"))))
  14.     (foreach en (ss2lst ss)
  15.       (setq obj (en2obj en))
  16.       (if (setq InsertionPoint (vlax-get-property obj 'InsertionPoint) )
  17.         (vlax-put-property obj 'InsertionPoint InsertionPoint)
  18.       )
  19.     )
  20.   )
  21. )

评分

参与人数 1金钱 +5 收起 理由
scnc001 + 5 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-9-25 23:36:40 | 显示全部楼层
我发现选中文字后,再在 “文字样式控制” 工具栏里选择一个样式,就不会错位,可以考虑在切换字体后,模拟一下选择文字样式。大神们,如何实现呢?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2025-9-25 23:43:05 | 显示全部楼层
也许可以,选中文字,稍微移动一下,可能就归位了、
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-26 07:37:48 | 显示全部楼层
战神凯哥 发表于 2025-9-25 23:43
也许可以,选中文字,稍微移动一下,可能就归位了、

移了之后再编辑,或者换字体,位置就更加不对了
回复 支持 反对

使用道具 举报

发表于 2025-9-26 09:19:46 | 显示全部楼层
感谢分享。  
回复 支持 反对

使用道具 举报

发表于 2025-9-26 11:57:08 | 显示全部楼层
使用效果很好,感谢分享。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-26 12:47:57 | 显示全部楼层
本帖最后由 scnc001 于 2025-9-26 12:56 编辑

感谢分享。。实际应用中还有一些文字其实是块属性文字,一炸开就什么都没了。如何能对块属性文字生效呢


回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-26 12:49:33 | 显示全部楼层
战神凯哥 发表于 2025-9-25 23:43
也许可以,选中文字,稍微移动一下,可能就归位了、

请原谅我的武断,我试了一下,所有对象(包括块属性文字)移动 0,0 就能归位。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-26 12:57:48 | 显示全部楼层

我又试了一下,把块移动一个 0,0 的距离,全部也能归位。能在代码里增加一个属性块吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 17:01 , Processed in 0.229673 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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