明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 958|回复: 17

[提问] 图框文字偏移不进块编辑如何恢复?

  [复制链接]
发表于 2025-6-11 09:17:40 | 显示全部楼层 |阅读模式
图框块内普通单行文字因字体替换的原因,如图1出格子了,将其字体改回原初始字体后,不能恢复到如图2.但只要进入一下块编辑不调整任何,保存块修改就可以了。请路过的看看,有没有不进块编辑的好.
办法?

本帖子中包含更多资源

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

x

点评

对于图框中非属性的单行文字等,由于相同文字样式但字体配置不同的字体变化原因,确实经常出现,只要把字体换成合适的,我当前是再次进入图框块的块编辑器,然后关闭后,单个dwg文件内的多个图框块的文字自动就变...  发表于 2025-6-15 17:01
回复

使用道具 举报

发表于 2025-6-11 10:31:53 | 显示全部楼层
命令rea了解一下

点评

我知道你说的情况 我之前碰到过。好像要先au修复之后再rea  发表于 2025-6-11 11:25
实际测试后再回答。regenall对这个是没用的。  发表于 2025-6-11 11:05
回复 支持 1 反对 0

使用道具 举报

发表于 2025-6-11 11:20:44 | 显示全部楼层
attsyn 试试

评分

参与人数 1明经币 +1 收起 理由
tigcat + 1 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2025-6-12 08:40:30 | 显示全部楼层
经测试,按照楼上两位大神的思路可行,单行文本重新赋值一下再重生成就好了,多行文本未测试。
  1. (defun c:tt( / blocks ent ename)
  2.         (setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
  3.         (setq ent (car (entsel  "\n选择块进行文字复位。")))
  4.         (if (= (cdr (assoc 0 (entget ent))) "INSERT")
  5.                 (progn
  6.                         (setq ename (strcase (cdr (assoc 2 (entget ent)))))
  7.                         (vl-cmdf "_attsync" "s" ent "y")
  8.                         (vlax-for obj (vla-item blocks ename)
  9.                                 (if (wcmatch (vla-get-objectname obj) "AcDbText")
  10.                                         (vla-put-textstring obj (vlax-get obj 'TextString))
  11.                                 )
  12.                         )
  13.                         (vl-cmdf "_regenall")
  14.                 )
  15.                 (princ "\n未选中块")
  16.         )
  17.         (princ)
  18. )
  19. (vl-load-com)
  20. (princ "\n程序加载完成")
  21. (princ)
回复 支持 反对

使用道具 举报

发表于 2025-6-11 09:29:51 | 显示全部楼层
主要是没有更新。关闭重新打开,估计就更新了。或者(entupd(car(entsel)))一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-6-11 10:02:58 | 显示全部楼层
谢谢,我试试
回复 支持 反对

使用道具 举报

发表于 2025-6-11 10:05:35 | 显示全部楼层
这个问题存在比较久了,至今没解决。
回复 支持 反对

使用道具 举报

发表于 2025-6-11 11:20:48 | 显示全部楼层
不用bedit,可以试下wblock blockname=dwg name。然后再insert  blockname=dwg name,手动比较繁琐,估计要编程了,写代码的话,可能也可以试一下遍历修改块定义里相应文本的内容,先都改成abcd,再全部改回来,实现文本的更新。
回复 支持 反对

使用道具 举报

发表于 2025-6-11 11:44:00 | 显示全部楼层
遍历块表记录内全部文字,平移0,此时会触发重新绘制.
回复 支持 反对

使用道具 举报

发表于 2025-6-12 08:42:48 | 显示全部楼层
battman这个命令试下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-14 17:27 , Processed in 0.179297 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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