明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 五五

[2023] 【求助】CAD2023怎么经常文字回偏,然后点击一下又恢复

[复制链接]
发表于 2024-1-12 23:08 | 显示全部楼层
我的方法是换个字体样式,再切换回来。
至于为什么会发生这种事情,我自己用的2012从未发生,发给别人再传回来就有可能出现这种情况,推测是双方的字体不一致导致的。
发表于 2024-1-14 16:13 | 显示全部楼层
本帖最后由 aichong 于 2024-1-14 16:27 编辑

cad.net 文字偏移及符号表 - 惊惊 - 博客园 https://www.cnblogs.com/JJBox/p/10226119.html
测试环境
[size=13.3333px]测试环境: 中文版Acad2008~Acad2019
[size=13.3333px]1: 使用外部参照,参照的dwg中有本文列明的bug图元,然后绑定,就会触发
[size=13.3333px]2: 使用克隆命令,跟上面kean的代码一样
[size=13.3333px]测试环境: 中文版Acad2020+
[size=13.3333px]1: 同旧版本
[size=13.3333px]2: 同旧版本
[size=13.3333px]3: 由于新版本桌子重写了一个新的insert命令,也就是i这个命令,它会弹出一个带预览的小面板,这个命令也会导致此问题发生.
[size=13.3333px]返回目录

解决方案1:
[size=13.3333px]一旦出现了字体偏移,那么此情况会保存到dwg内.
[size=13.3333px]而当你不加载问题功能前提下,打开图纸,双击文字,它会从偏移态恢复为正常态.
遇到此情况不妨用代码:遍历全图,移动0,0到0,0.
[size=13.3333px]返回目录

解决方案2:
[size=13.3333px]1: 来源数据库的文字样式表修改"新宋体"为任何一种大字体.
2: 再更改文字实体对齐方式为"左" AttachmentPoint.BaseLeft
3: 再进行克隆(WblockCloneObjects).
4: 最后在目标数据库还原样式.
(已经亲测,必须这样做,只改一项都不行)
5.插入了之后需要刷新块,否则显示还是不正确的,刷新的方法是块内图元移动0,0到0,0,不需要嵌套遍历仅需遍历一层.(此处无代码,自己干)
回复 支持 1 反对 0

使用道具 举报

发表于 2024-1-15 09:24 | 显示全部楼层
本帖最后由 ahsxxu 于 2024-1-15 09:27 编辑

论坛里抄了一段代码,局部重生成。然后完美解决



(defun getscreen (/ fact hhalf viewcnt viewh vieww vieww1 whalf)
  (setq viewcnt (getvar "viewctr"))
  (setq viewH (getvar "viewsize"))
  (setq viewW (getvar "screensize"))
  (setq fact (/ viewH (cadr viewW)))
  (setq viewW1 (* fact (car viewW)))
  (setq Hhalf (/ viewH 2))
  (setq Whalf (/ viewW1 2))
  (list (list (- (car viewcnt) Whalf) (- (cadr viewcnt) Hhalf))
    (list (+ (car viewcnt) Whalf) (+ (cadr viewcnt) Hhalf))
  )
)
;当前屏幕范围内内容刷新
(defun c:tt(/ ss)
  (and (or (setq ss (ssget))
         (setq ss (apply 'ssget (cons "c" (getscreen))))
       )
    (vl-cmdf "MOVE" ss "" "0,0,0" "0,0,0")
  )
)



本帖子中包含更多资源

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

x
发表于 2024-1-16 11:27 | 显示全部楼层
本帖最后由 moshouhot 于 2024-1-16 11:33 编辑

改成开图自动开启
  1. ;================================================================
  2. ;开图自动文字回偏
  3. ;http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=189253&pid=968915&fromuid=402689
  4. (defun ah:getscreen (/ fact hhalf viewcnt viewh vieww vieww1 whalf)
  5.   (setq viewcnt (getvar "viewctr"))
  6.   (setq viewH (getvar "viewsize"))
  7.   (setq viewW (getvar "screensize"))
  8.   (setq fact (/ viewH (cadr viewW)))
  9.   (setq viewW1 (* fact (car viewW)))
  10.   (setq Hhalf (/ viewH 2))
  11.   (setq Whalf (/ viewW1 2))
  12.   (list (list (- (car viewcnt) Whalf) (- (cadr viewcnt) Hhalf))
  13.     (list (+ (car viewcnt) Whalf) (+ (cadr viewcnt) Hhalf))
  14.   )
  15. )
  16. ;当前屏幕范围内内容刷新
  17. (defun c:FB (/ ss)
  18.   (setq ss (apply 'ssget (cons "c" (ah:getscreen))))
  19.   (if ss
  20.     (vl-cmdf "MOVE" ss "" "0,0,0" "0,0,0")
  21.   )
  22.   (prompt "\n★★★当前屏幕文字已完成回偏★★★")
  23.   (princ) ; 清除 nil 输出
  24. )
  25. ;整个模型内容刷新
  26. (defun c:FB1 (/ ss)
  27.   (setq ss (ssget "_X"))
  28.   (if ss
  29.     (vl-cmdf "MOVE" ss "" "0,0,0" "0,0,0")
  30.   )
  31.   (prompt "\n★★★整个模型文字已完成回偏★★★")
  32.   (princ)
  33. )
  34. (c:FB1);开图自动文字回偏,不需要就注释掉
  35. ;开图自动文字回偏(结束)
  36. ;================================================================


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

本版积分规则

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

GMT+8, 2024-5-2 00:03 , Processed in 0.780888 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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