iCAx开思网

标题: AutoCAD2006的一个难题 [打印本页]

作者: clazyfox    时间: 2006-11-9 13:22
标题: AutoCAD2006的一个难题
由于早先大量图纸字体设置为仿宋体
为了打印清晰,现在需要改成大字体比如:isocp+intercad或者hztxt之类的

在2006中格式-文字样式-standard设置完毕,应用,关闭

但是图纸中的汉字没有发生变化,无论怎么刷新都不行

唯有点一下汉字,弹出窗口重新选择一下字体标准,还是standard
就行了!

按个选,按个选。。。。。。。。。。。。。。。。救命,我都累傻了

有其他办法吗????????
作者: 银狼    时间: 2006-11-9 19:21
如果是我就会用比你那稍微轻松的方法 格式刷
作者: qomolangma    时间: 2006-11-9 19:43
可以用AutoLISP编程序解决。
作者: clazyfox    时间: 2006-11-10 10:57
原帖由 银狼 于 2006-11-9 19:21 发表
如果是我就会用比你那稍微轻松的方法 格式刷



没那么容易,你最好实践下,我不会笨到不会用格式刷
作者: clazyfox    时间: 2006-11-10 10:58
原帖由 qomolangma 于 2006-11-9 19:43 发表
可以用AutoLISP编程序解决。



请问如何实现,没怎么研究过Autolisp。。请教了
作者: xubojian    时间: 2006-11-10 19:01
(defun c:kk()
(setvar "cmdecho" 0)
(prompt "\n请框选整个图形!")
(setq ent (ssget))
(setq l 0)
(while (< l (sslength ent))
(setq txt_data (entget (SSNAME ent L)))
(setq L (+ l 1))
(setq old_txt_list (assoc 7 txt_data))
(setq old_tt(cdr old_txt_list))
(setq new_tt "hz")
(setq new_txt_list (cons 7 new_tt))
(setq txt_data (subst new_txt_list old_txt_list txt_data))
(entmod txt_data))
(prin1)
)
作者: clazyfox    时间: 2006-11-11 11:31
楼上的,不能用,我再研究一下,请你验证一下
作者: xubojian    时间: 2006-11-13 09:41
在你当前图形里必须有HZ这个字体,你可以先新建,或把程序里HZ改成你图形里有的字体格式!
这个程序有兴趣的话可以再完善一下,让它先自己建HZ这个字体!
作者: clazyfox    时间: 2006-11-13 14:22
仿宋体的代号哪个?
作者: xubojian    时间: 2006-11-13 14:37
你有仿宋的字体吗?
作者: xubojian    时间: 2006-11-13 14:51
你要改的是字体的样式名,和仿宋字体无关,而仿宋字体只不过是大字体里的一种,在你要用到带字体时,供你选的一种而已!
作者: clazyfox    时间: 2006-11-13 15:23
晕,当然有啊,一开始就是仿宋体的,现在要改成isocp+intercad
作者: clazyfox    时间: 2006-11-13 15:37
我单独试验了一下,可能是版本差异
图纸是2004画的,也有可能是2000版
现在需要在2006更改


在2006我单独试了,
1、原来仿宋体或者宋体,在字体样式更改的情况下,字体可以自动更新。
2、在字体编辑中,样式不变(standard),只改后面的字体,这样子更改后在字体样式设置后无法自动更新。需要点入字体编辑,重新选择standard一次,让之后的字体跟到字体样式设置。


问题好像找到了,就好像层一样,你如果设置A层为红色,颜色bylayer,那换到蓝色的B层,颜色就会自动成蓝色,假如在A层单独设置红色,改到蓝色的B层,那还会是红色的。

字体也是这样,同样是standard,默认字体是isocp+intercad,字体却可以单独设置,可自定义为宋体等。
这时候想通过“格式”的文字样式统一更改,自定义的字体将不会更新!


[ 本帖最后由 clazyfox 于 2006-11-13 15:39 编辑 ]
作者: clazyfox    时间: 2006-11-13 15:44
xubojian,你好,不知道我的一大断有没有讲清楚:)
我觉得这个问题无法通过常规的办法解决
也许autolisp来说是相当简单了
我想重点就是:去掉自定义的字体,让所有的文字与默认文字样式(设置→字体样式)保持一致
作者: xubojian    时间: 2006-11-13 16:21
我同意你的第一点,对于第二点,你使用了大字体,只改前面的当然不变了;你不使用大字体它是会变的!
上面程序不能做到:你想要的:去掉自定义的字体,让所有的文字与默认文字样式(设置→字体样式)保持一致
只是把所有的文字变成你已经设置了的HZ的样式字体,我要讲的就是这么多了,别的也不会了,请请教高手了!
作者: clazyfox    时间: 2006-11-13 16:29
”把所有的文字变成你已经设置了的HZ的样式字体“

这个到哪里实现?我知道可以全部选中然后打开属性,再筛选出文字,把样式更改为“standard”,问题来了,字体没有更新!!
作者: clazyfox    时间: 2006-11-13 16:30
那只好再点入“内容”,再逐个打开“文字编辑”,一个一个一个一个改。。。。
作者: xubojian    时间: 2006-11-13 16:35
上面程序能做到的就像这样从左边到右边字体样式变成了HZ,大小不变:
作者: clazyfox    时间: 2006-11-13 16:41
你的这个我不用编程也能实现,因为都是默认下做出的

关键前面一组你是怎么写的,是不是通过先设好文字样式再写?
你试试在一个样式下,比如同样是”standard“,通过文字格式,分别写出宋体(自定义),HZ(默认)等,再统一搞到HZ(默认),这样行吗?自定义的宋体可以自动更新成HZ吗?

我的QQ:27538556
作者: xubojian    时间: 2006-11-13 18:05
我上面程序就是这样的
你理解错了
是用HZ代替所有别的
这里HZ是个样式名  和standard是同一个级别的!
作者: clazyfox    时间: 2006-11-14 08:43
我明白你的意思
你的程序我也加载用了

我的意思你没明白
1、你想写文字,是不是首先设好样式?
2、按设好的样式写出文字
3、运行你的程序,可以将之前写的文字转到新的样式HZ
4、第2步,写完后你双击文字,弹出文字格式框,你是不是可以不改样式改变字体?
5、再调出你的程序试试,是的,样式也转成HZ了,但是第4步,字体被自定义了,不是默认样式字体了,不会被程序改变!
6、重点就是这里,第5步,字体不被更改!需要在弹出文字格式框,点样式,重选HZ(本来就换成HZ了)~~~


我在试试修改CAD的文字映射表




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3