问题
你有没有过这样的疑惑,为什么在CAD图中一些图形,用如betterwmf的软件拷贝到WORD里面的时候,虽然拷贝到word打印出来是清晰的,但看起来总是有点模糊?这个时候,假如在CAD中看,其实字体的边缘也并不光滑,如何解决这个问题?
为什么?
这个问题容易在这样的操作中,正常字体采用3do进行orbit旋转之后,再回到平面视图中,就会出现毛边了。经过搜索,此处有些相关解答 https://forums.autodesk.com/t5/autocad-forum/text-appearing-bold-and-blurry/td-p/3470506
经过一定时间的研究,发现解决这个问题大概是可以这样的几个步骤。
(1) 检查字体的宽度
width是否=1.0,倾斜角 obliquing=0.0,标高 是否=0;
这几个可以在特性里面修改,标高是Position Z=0.0
对于width,有时候有些奇怪,可以把原来的Width=1先改为Width为2,出到图中,发现均已变胖,再回去,把Width修改为1
一般而言,这几个数值取为正确数值后,问题基本解决,
假如不能解决,往下看。
(2) 为什么在3dorbit之后,会出现字体的毛边问题呢?
这可能也是cad渲染的一个bug,可能是相机问题引起的,此时可以通过修改相机的目标点z坐标为0,来修正这个问题。
如图,可以发现在右下角处,相机目标点=200,此时字体均按(1)中设置,但毛边,因此,将这个数值改为0即可
你也可以通过dview回车回车(注意,高版本cad如2014只需要一次回车)po回车0,0,0回车0,0,1回车,再缩放全图这样子来解决
(3) 更复杂的情况
2015.03.25,继续遇到这个问题,于是更新一下
近日修改文章,发现其中存在大量的字体毛边问题,用以上的方法,解决了70%,但是有一批dimension,怎么也不成功,于是继续钻研。
经过了好些研究,发现了最麻烦的就是Mtext和dimension,为了改变Mtext的毛边,必须先change E到0
而后,必须在dimension里面,去调整
从2到1才可以完成
那么,如何修改dimension的text的特性呢?继续研究
经过了仔细的对比,由于某些原因,这些dimension的内容比较奇怪
(setq diment (car (entsel))) ;选择标注图元
(setq elst(entget diment ‘(“ACAD”))) ; 得到图元定义表
通过这个可以看到
选择对象: ((-1 . <图元名: -4f7670>) (0 . “DIMENSION”) (330 . <图元名: -169308>) (5 .
“54F9A”) (100 . “AcDbEntity”) (67 . 0)(410 . “Model”) (8 . “尺寸标注”)(100 .
“AcDbDimension”) (2 . “*D1810”) (10-16481.9 -36654.1 4.77236e-016) (11
-16652.9 -36631.6 4.77236e-016) (12 0.0 0.0 4.77236e-016)(70 . 32) (1 .
“2{\\fTimes New Roman|b0|i1|c0|p18;B}”) (71 . 5)(72 . 1) (41 . 1.0) (42 .
341.999) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0)(54 . 0.0) (51 . 0.0)
(210 0.0 0.0 1.0) (3 . “副本qiu”) (100 . “AcDbAlignedDimension”) (13 -16823.9
-36578.4 -4.77236e-016) (14 -16481.9 -36578.4 -4.77236e-016)(15 0.0 0.0 0.0)
(16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0) (100 .”AcDbRotatedDimension”) (-3
(“ACAD” (1000 . “DSTYLE”) (1002 .”{“) (1070 . 147) (1040 . 10.0) (1002 .
“}”))))
其内容中10到15这几个组码的内容,都是尾数为-016的一个很小的数
就是这个很小的数值,最终导致了毛边的出现。
到了这个时候,问题的解决就不是很难了,必须用Lisp来改组码。
其实也和之前的解决方法是一样的,就是这些标注的文字,出现了少量的标高问题,所以cad在解决这个字体的时候,就出现了毛边。
所以,编制了如下一个代码,可以解决这个问题
终于解决了。记录一下。