[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libredwg] INSERT object
From: |
Felipe Sanches |
Subject: |
Re: [libredwg] INSERT object |
Date: |
Fri, 26 Mar 2010 20:32:26 -0700 |
can you provide us with a copy of this file so that we can try to debug it?
On Fri, Mar 26, 2010 at 3:54 PM, Toussis Manolis
<address@hidden> wrote:
> Ok , I am working on a project of mine, and I used some of the info on the
> libredwg source code to parse dwg 2004 files.
>
> I am right now on the object reading area.
> The flow goes fine, except I came up with a problem in reading INSERT object:
>
> Here what your code says:
>
>
> DWG_ENTITY(INSERT);
>
> FIELD_3BD(ins_pt);
> .........................
> ...........................
> FIELD(rotation_ang, BD);
> FIELD_3DPOINT(extrusion);
> FIELD(has_attribs, B);
>
> SINCE(R_2004)
> {
> if (FIELD_VALUE(has_attribs))
> {
> FIELD(owned_obj_count, BL);
> }
> }
>
> COMMON_ENTITY_HANDLE_DATA;
>
> FIELD_HANDLE(block_header, 5);
>
> //There is a typo in the spec. it says "R13-R200:".
> //I guess it means "R13-R2000:" (just like in MINSERT)
> VERSIONS(R_13,R_2000)
> {
> if(FIELD_VALUE(has_attribs))
> {
> FIELD_HANDLE(first_attrib, 4);
> FIELD_HANDLE(last_attrib, 4);
> }
> }
>
> //Spec typo? Spec says "2004:" but I think it should be "2004+:"
> // just like field owned_obj_count (AND just like in MINSERT)
> SINCE(R_2004)
> {
> if (FIELD_VALUE(has_attribs))
> {
> HANDLE_VECTOR(attrib_handles, owned_obj_count, 4);
> }
> }
>
> if (FIELD_VALUE(has_attribs))
> {
> FIELD_HANDLE(seqend, 3);
> }
>
> DWG_ENTITY_END
>
>
> Is the above correct or maybe somethin am I missing?
> I parse the objects of type INSERT with this and occasionally I get a huge
> bitLong number of owned_obj_count (the file is 2004 AC1018)
>
>
> 1. There is no way that i have wrong data of the objects because I get a
> correct calculated crc of the data, with the one stored in the file.
> 2. autocad reads the file without errors
> 3. the above "occasionally" means that many insert objects are parsed fine,
> but some fail with huge owned_obj_count number
>
>
> Any thoughts?
>
> Thank you in advance
>
>
>
>