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

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

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

                                                       ...
                                                               pFiler->readItem(&rb);
                                                       if (rb.restype == AcDb::kDxfText) {
                                                                                                                       if (m_firColumNo != NULL)
                                                                                                                                                                                       free(m_firColumNo);
                                                                                                                       m_firColumNo = strdup(rb.resval.rstring);
                                                       } else {
                                                                                                                       pFiler->pushBackItem();
                                                                                                                       pFiler->setError(Acad::eInvalidDxfCode,
                                                                                                                                                                                                                                                       "nError: expected group code %d",
                                                                                                                                                                                                                                                       AcDb::kDxfText);
                                                                                                                       return pFiler->filerStatus();
                                                       }
                                                               pFiler->readItem(&rb);
                                                       if (rb.restype == AcDb::kDxfText + 410) {
                                                                                                                       if (m_firNo != NULL)
                                                                                                                                                                                       free(m_firNo);
                                                                                                                       m_firNo = strdup(rb.resval.rstring);
                                                       } else {
                                                                                                                       pFiler->pushBackItem();
                                                                                                                       pFiler->setError(Acad::eInvalidDxfCode,
                                                                                                                                                                                                                                                       "nError: expected group code %d",
                                                                                                                                                                                                                                                       AcDb::kDxfText + 410);
                                                                                                                       return pFiler->filerStatus();
                                                       }
                                               以下我一次加到对应的范围418(AcDb::kDxfText初始值是1)                                                                                                                       
                                                       

Acad::ErrorStatus AcDbDouSpan::dxfOutFields(AcDbDxfFiler* pFiler) const
{
                                                       //与dxfin中一一对应
                                                       ......
                                                       pFiler->writeItem(AcDb::kDxfText, m_firColumNo);
                                                       pFiler->writeItem(AcDb::kDxfText + 410, m_firNo);
                                                       pFiler->writeItem(AcDb::kDxfText + 411, m_firNFNo);
                                                       pFiler->writeItem(AcDb::kDxfText + 412, m_firGWNo);
                                                       ......

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