几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】a problem about odamfcapp.exe (http://www.dimcax.com/hust/showthread.php?t=14952)

yang686526 2009-05-04 03:10 PM

【转帖】a problem about odamfcapp.exe
 
a problem about odamfcapp.exe
a problem about odamfcapp.exe
hi, i used acad to read file "drawing7.dwg" which locates in attachments, the result is like the picture "acadread.jpg"。then i used odamfcapp.exe to read the same file, the result is like the picture "odamfcappread.jpg". the both result pictures are not same, it seems that there is a additional line in the odamfcappread.jpg. why?
is it a dwgdirect's bug?
attached images
the extra line is a 3dpolyline (handle 10d) in model space of this drawing. it has vertices with invalid doubles as coordinates (probably coming from non-initialized memory in some arx application).
if you recover this file in autocad it will report the invalid doubles, replace them with 0.0 and the polyline will be visible after it as in odamfcapp.
dd replaces invalid doubles with zeroes while loading file.
sergey slezkin
hi, there is a acad_proxy_entity in the file "drawing8.dwg", i use function oddbproxyentity::explode(odrxobjectptrarray& entityset) to get entities locate in the proxy entity. the exploded result is there is extra solid in "entityset", but when i use acad to open this file, the extra solid didn't display. the extra solid become a 3dpolyline when using acad to explode the proxy entity. why and how to resolve this problem?
attached files (27.1 kb, 5 views)

last edited by pqcyy; 27th april 2006 at 01:17 amfff">.
proxy entity stores its graphic representation in file. this data is used for exploding it.
the proxy entity from your sample (among other graphic primitives) stores a polygon primitive of 3 points. 2 of them have invalid doubles as coordinates.
these doubles are read in by dd as zeroes. exploding the proxy entity dd creates solid from them.
autocad creates 3dpolyline with invalid coordinates so it's invisible. but it gets visible after auditing the drawing.
load drawing8.dwg into autocad.
explode the proxy entity
drawing utilities/audit (fix errors)
view/regen all
you see the extra line.
the source of your problem is invalid data in proxy entity.
sergey slezkin


所有的时间均为北京时间。 现在的时间是 09:49 PM.