乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 12|回复: 0

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

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2004-7-5 16:52:00 | 显示全部楼层 |阅读模式
我自定义开发的实体属性,
而对应于不同类型的属性(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);
                                                         ......

不知道是不是这么用的?
请指点,多谢帮助!!!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 20:40 , Processed in 0.142497 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表