请教高手,如附件图纸,应该是在保存为2004的文件格式后,出现了这样的乱码,是否有办法解决。
好像是编码出错了,记得之前看到过专门处理这个乱码问题的小程序,但找不见了。
有哪位朋友能有解决办法,感谢 !
网友答: 20年前的dwg文件版本,不理解为什么你们非要用 AutoCAD 2004版本的dwg?这不是自己找来的事么...
AutoCAD 2007 的dwg版本开始采用了 Unicode 存储,再也不会出现这种乱码问题了。网友答: 本帖最后由 尘缘一生 于 2024-10-31 07:03 编辑
贴一下三领的部分,这个事还不能叫开图自动,因为,有的人安装有很多插件,他们要的就是那种字体,批量换了,我们满足,对方不满足了。如果图不再外协交流,哪可以。我这个还是换字库的。
不理解了吧?这问题是居然天正惹的祸!!!!!天正建筑有个默认的天正专门的自己格式,其它行业看不到这个格式,所以天正自带了转换格式命令,这个转换t3的默认是2004格式。。。。。。。。大家都懒得选,就默认吧。。。。。2004格式从此之后成为了多行文字的恶梦。。。。。。网友答:
高版本也会出错的,有时候文件致命错误之后就会出现这种乱码,非常头痛,好像无解网友答:
都怪自己当年年少无知,存成了2004版本。
2007后的版本格式还是很OK的网友答:
应该是可以解决的,我之前见到过解决这个问题的程序,忘记名字,找不见了网友答: 有什么比较完美得办法
网友答: 可以试试这个存DXF的方式https://www.gstarcad.com/cmsDetail/2263/网友答: 你这版本是CAD2007的
网友答: 本帖最后由 null. 于 2025-2-5 18:18 编辑
这个问题一直都有的,无解的,如果有解,网上高手早就搞出来了。出问题的文字都是MTEXT图元,2007版前,中文文字是多字节字符串,之后中文是双字节字符串,Mtext图元的开始半角和多字节导致的,多字节的编码又是cAD自己搞的,不是通用多字节。不清楚规则,所以无法转换,属CAD的BUG。
以后做图习惯,不要保存低于2007版本。
好像是编码出错了,记得之前看到过专门处理这个乱码问题的小程序,但找不见了。
有哪位朋友能有解决办法,感谢 !
网友答: 20年前的dwg文件版本,不理解为什么你们非要用 AutoCAD 2004版本的dwg?这不是自己找来的事么...
AutoCAD 2007 的dwg版本开始采用了 Unicode 存储,再也不会出现这种乱码问题了。网友答: 本帖最后由 尘缘一生 于 2024-10-31 07:03 编辑
贴一下三领的部分,这个事还不能叫开图自动,因为,有的人安装有很多插件,他们要的就是那种字体,批量换了,我们满足,对方不满足了。如果图不再外协交流,哪可以。我这个还是换字库的。
- ;;文字替代(解决文字乱码用)(一级)------------
- (defun sl-nx (/ ss a b c d e date1 e_lst)
- (setq e_lst (sysvar '("TEXTSTYLE" "CMDECHO" "REGENMODE")))
- (setvar "CMDECHO" 0)
- (setvar "REGENMODE" 0);禁止重生成
- (setq date1 (getvar "MILLISECS"))
- (vlax-for x (vla-get-textstyles *AcDocument*)
- (vla-getfont x 'a 'b 'c 'd 'e)
- (if (= a "")
- (progn
- (if (and
- (not (findfile (vla-get-fontfile x)))
- (not (findfile (strcat (vla-get-fontfile x) ".shx")))
- )
- (vla-put-fontfile x "txt.shx")
- )
- (if (and
- (/= (vla-get-bigfontfile x) "")
- (not (findfile (vla-get-bigfontfile x)))
- (not (findfile (strcat (vla-get-bigfontfile x) ".shx")))
- )
- (vla-put-bigfontfile x "hztxt.shx")
- )
- )
- (progn
- (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-setfont (list x a b c d e)))
- (vla-setfont x "fan" b c d e)
- )
- )
- )
- )
- (prompt
- (strcat
- "\n 字体替换--耗时"
- (rtos (/ (- (getvar "MILLISECS") date1) 1000.000) 2 3)
- (slmsg "秒" "" "seconds")
- )
- )
- (setvar "REGENMODE" 1)
- ;(if (setq ss (ssget "X" '((0 . "TEXT") (-4 . "<OR") (1 . "**,**,**,**,*\U+0082*") (-4 . "OR>"))));;探索者、特殊符号转换
- ; (tss2gj ss)
- ;)
- ;(if (setq ss (ssget "X" (list (cons 0 "INSERT") (cons 66 0))))
- ; (blktss2gj ss) ;;块选择集探索者钢筋转换
- ;)
- (vla-regen *AcDocument* AcAllViewPorts)
- (mapcar 'eval e_lst)
- (princ)
- )
e2002 发表于 2024-10-31 10:11
20年前的dwg文件版本,不理解为什么你们非要用 AutoCAD 2004版本的dwg?这不是自己找来的事么...
AutoCA ...
不理解了吧?这问题是居然天正惹的祸!!!!!天正建筑有个默认的天正专门的自己格式,其它行业看不到这个格式,所以天正自带了转换格式命令,这个转换t3的默认是2004格式。。。。。。。。大家都懒得选,就默认吧。。。。。2004格式从此之后成为了多行文字的恶梦。。。。。。网友答:
e2002 发表于 2024-10-31 10:11
20年前的dwg文件版本,不理解为什么你们非要用 AutoCAD 2004版本的dwg?这不是自己找来的事么...
AutoCA ...
高版本也会出错的,有时候文件致命错误之后就会出现这种乱码,非常头痛,好像无解网友答:
e2002 发表于 2024-10-31 10:11
20年前的dwg文件版本,不理解为什么你们非要用 AutoCAD 2004版本的dwg?这不是自己找来的事么...
AutoCA ...
都怪自己当年年少无知,存成了2004版本。2007后的版本格式还是很OK的网友答:
960322 发表于 2024-10-31 19:17
高版本也会出错的,有时候文件致命错误之后就会出现这种乱码,非常头痛,好像无解
应该是可以解决的,我之前见到过解决这个问题的程序,忘记名字,找不见了网友答: 有什么比较完美得办法
网友答: 可以试试这个存DXF的方式https://www.gstarcad.com/cmsDetail/2263/网友答: 你这版本是CAD2007的
网友答: 本帖最后由 null. 于 2025-2-5 18:18 编辑
这个问题一直都有的,无解的,如果有解,网上高手早就搞出来了。出问题的文字都是MTEXT图元,2007版前,中文文字是多字节字符串,之后中文是双字节字符串,Mtext图元的开始半角和多字节导致的,多字节的编码又是cAD自己搞的,不是通用多字节。不清楚规则,所以无法转换,属CAD的BUG。
以后做图习惯,不要保存低于2007版本。