znwifan 发表于 2004-7-5 16:52:00

关于DXF组码的问题?困扰一年多的问题了

我自定义开发的实体属性,<BR>而对应于不同类型的属性(int16,int32,text等)<BR>为了后台lisp可以更改,需要将属性分别与相应的DXF组码唯一对应<BR>但由于我text的属性较多,而其组码范围经测试只有300~309,410~419段可用<BR>还不够!<BR>对于DXF组码的用途我不是很清楚,也不知道是不是这么用的,<BR>怎么才能解决问题,请大虾指点一二!


代码片断:<BR>我重载了函数dxfInFields(AcDbDxfFiler* pFiler)<BR>Acad::ErrorStatus AcDbDouSpan::dxfInFields(AcDbDxfFiler* pFiler)<BR>{<BR>                                                       ...<BR>                                                               pFiler-&gt;readItem(&amp;rb);<BR>                                                       if (rb.restype == AcDb::kDxfText) {<BR>                                                                                                                       if (m_firColumNo != NULL)<BR>                                                                                                                                                                                       free(m_firColumNo);<BR>                                                                                                                       m_firColumNo = strdup(rb.resval.rstring);<BR>                                                       } else {<BR>                                                                                                                       pFiler-&gt;pushBackItem();<BR>                                                                                                                       pFiler-&gt;setError(Acad::eInvalidDxfCode,<BR>                                                                                                                                                                                                                                                       "nError: expected group code %d",<BR>                                                                                                                                                                                                                                                       AcDb::kDxfText);<BR>                                                                                                                       return pFiler-&gt;filerStatus();<BR>                                                       }<BR>                                                               pFiler-&gt;readItem(&amp;rb);<BR>                                                       if (rb.restype == AcDb::kDxfText + 410) {<BR>                                                                                                                       if (m_firNo != NULL)<BR>                                                                                                                                                                                       free(m_firNo);<BR>                                                                                                                       m_firNo = strdup(rb.resval.rstring);<BR>                                                       } else {<BR>                                                                                                                       pFiler-&gt;pushBackItem();<BR>                                                                                                                       pFiler-&gt;setError(Acad::eInvalidDxfCode,<BR>                                                                                                                                                                                                                                                       "nError: expected group code %d",<BR>                                                                                                                                                                                                                                                       AcDb::kDxfText + 410);<BR>                                                                                                                       return pFiler-&gt;filerStatus();<BR>                                                       }<BR>                                               以下我一次加到对应的范围418(AcDb::kDxfText初始值是1)                                                                                                                       <BR>                                                       <BR>}<BR>Acad::ErrorStatus AcDbDouSpan::dxfOutFields(AcDbDxfFiler* pFiler) const<BR>{<BR>                                                       //与dxfin中一一对应<BR>                                                       ......<BR>                                                       pFiler-&gt;writeItem(AcDb::kDxfText, m_firColumNo);<BR>                                                       pFiler-&gt;writeItem(AcDb::kDxfText + 410, m_firNo);<BR>                                                       pFiler-&gt;writeItem(AcDb::kDxfText + 411, m_firNFNo);<BR>                                                       pFiler-&gt;writeItem(AcDb::kDxfText + 412, m_firGWNo);<BR>                                                       ......<BR>}


不知道是不是这么用的?


请指点,多谢帮助!!!
页: [1]
查看完整版本: 关于DXF组码的问题?困扰一年多的问题了