2008年8月21日星期四

关于autocad中wmfout的精度问题

前段时间,fools兄提过一个问题,在某些dwg图用wmfout的时候,会出现部分图的精度为2496DPI,而部分图为288DPI的情况。就算用betterwmf的时候也是如此。
前几天,终于在qq上与fools兄联系上。开始以为是某个系统变量所控制的,于是用acadinfo得到所有系统变量的数值,对输出高分辨率和低分辨率的图形的变量逐一对比,找不出任何的问题。

中间搜索得到了LISP高手MP在99年也提过类似的问题
http://groups.google.com/group/autodesk.autocad.customization/browse_thread/thread/c8cd6492373a7ac4/b3abe53cc8219f28?lnk=gst&q=wmfout+resolution#b3abe53cc8219f28

第二天早上继续,决定采用二分法来判别,逐步分离图层和物体,最终得到的结果是一个块。
有此块(block)的存在时,输出的wmf必是低分辨率(288DPI),此时各种物体歪曲失真。
经过分析,此块内有无名块(unname block),最终我无法打碎这个块,于是我认为问题出在此无名块身上。但是后来联系上eachy和fools后,他们一直认为这块内有wipeout(遮盖物体)。于是最终解决了问题。

答案就是:当dwg图形内有wipeout实体时,无论是否选中wipeout实体运行wmfout(或者betterwmf)输出wmf的时候,会出现低DPI情况。

什么是低DPI,就是当你用WMFIN再次导入该WMF的时候,图形产生了较大的失真

如图