几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】dd1.10upd1 fails, odt doesnt fail (http://www.dimcax.com/hust/showthread.php?t=15625)

yang686526 2009-05-04 07:05 PM

【转帖】dd1.10upd1 fails, odt doesnt fail
 
dd1.10upd1 fails, odt doesn't fail

dd1.10upd1 fails, odt doesn't fail
hi,
first, this thread as an attached dxf (zipped).
i found that the old library, odt, handles it very well. i'm able to read it and to render it via odv.
dd can read it but enumerates an infinity of inserts, that is, when i find an insert i explode it (the referenced block) enumerating its entities using an iterator. such enumeration returns also one more insert (insert inside a block), so i explode it also... and so on into an infinite loop.
it's an autocad 14 generated file (dxf) that also autocad 2002 fails to load (o better, it loads the file but fails drawing it). in autocad, i get an infinite sequence of the error "undefined block #6". trying to audit the file gives the same problem.
thank you in advance,
mark
attached files (211.2 kb, 3 views)


marco cocco
# 24th march 2004, 02:14 am

moderator join date: mar 2002
posts: 2,994
the file is invalid. it can't be loaded or recovered not only by ac2002 but by ac 14 and ac2004.
dd can load and render it.
the file defects:
1. block sym02 is defined 3 times (duplicate definitions)
2. more than 30 block reference entities have scale with zero z component.
3. polyface mesh objects have incorrect face/vertex counts.
4. definition of sym02 block contains block references to itself - self reference.
the last item is the reason why autocad and your program fall into infinite loop.
while rendering dd checks for recurcive block references so it does not fall into infinite loop. but dd recover does not fix it.
sergey slezkin

sslezkin
# 24th march 2004, 05:00 am

registered user join date: mar 2000
location: italy
posts: 12

fixed!
thank you very much.
i just added "anti-block-recursion" checking into my code and it now works fine.
regards,
mark

marco cocco

none
? | ?
thread tools



display modes
linear mode


search this thread

rate this thread
excellent
good
average
bad
terrible

posting rules
you may post new threads
you may post replies
you may post attachments
you may edit your posts
is on
are on
code is off
html code is off
forum jump
user control panel private messages subscriptions who's online search forums forums home general topics news questions and remarks business issues industry commentary general software issues documentation issues future directions dwg libraries dwgdirect.net dwgdirect, c++ version dwgdirectx, activex version adtdirect/c3ddirect opendwg toolkit/viewkit dgn libraries dgndirect, c++ version (2.x+) dgndirect libraries (legacy 0.99xx)
all times are gmt -7. the time now is 01:27 amfff">.
- - -
copyright ?2000 - 2009, jelsoft enterprises ltd.
copyright 1998-2008 open design alliance inc.
the file is invalid. it can't be loaded or recovered not only by ac2002 but by ac 14 and ac2004.
dd can load and render it.
the file defects:
1. block sym02 is defined 3 times (duplicate definitions)
2. more than 30 block reference entities have scale with zero z component.
3. polyface mesh objects have incorrect face/vertex counts.
4. definition of sym02 block contains block references to itself - self reference.
the last item is the reason why autocad and your program fall into infinite loop.
while rendering dd checks for recurcive block references so it does not fall into infinite loop. but dd recover does not fix it.
sergey slezkin

fixed!
thank you very much.
i just added "anti-block-recursion" checking into my code and it now works fine.
regards,
mark


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