高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】problem loading files without optional sections
problem loading files without optional sections
problem loading files without optional sections
looking at the 'database structure' section of the dwgdirect documentation, i was mildly disturbed to note that entities can only be accesed through block references, which in turn can only be referenced through the block table. all very well, but what if the database has just been read from a file which doesn't have a block table? what about enitities which (shock, horror...) are not stored in the blocks section, but (wait for it) the entities section?
loading the file given below (which is a perfectly valid dxf file), the answer was soon apparent: i got a null database, which i couldn't do a thing with. may i point out at this juncture that there is not requirement in any version of the dxf specification which requires a block table (or indeed any table), and that it is perfectly valid to have a dxf file with nothing but an entities section and maybe an entity in it. in fact, autocad itself can produce such files (not sure about the current version), as can some 3rd party programs, and though some programs expect headers, tables and blocks, lack of them is not an error. (see also david c. kay and john r. levine: "graphics file formats", mcgraw-hill, 1992 (chapter 17) ).
my apologies if i have misinterpreted the dwgdirect documentation and there is another way to access entities such a file, or to access entities in the entities section in the absence of such niceties as block tables, model spaces and the like - if this is the case, please tell me. it is reasonably important for the application i am working on that any *valid* dxf file should load, even if not in the *presumed normal* format.
dxf file:
0
section
2
entities
0
point
8
points0000
62
7
10
2.32117863927424
20
3.841323519705743
30
14.24358463162556
0
endsec
if there is no block table, the entities will fall to modelspace block. you should add
0
eof
to your file for it to become valid
vladimir
thanks for the clarification
dxf entities section stores both model and paper space entities. if group code 67 is absent or zero entity goes to ms, if gc 67 is non zero, the entity goes to ps.
sergey slezkin
|