- 积分
- 230
- 明经币
- 个
- 注册时间
- 2004-7-5
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我自定义开发的实体属性, 而对应于不同类型的属性(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); ...... }
不知道是不是这么用的?
请指点,多谢帮助!!! |
|