找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1616|回复: 3

[ARX程序]:图形块属性的提取问题?(附带程序

[复制链接]
发表于 2004-5-11 10:56:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
查看了晓东空间里的所有关于属性块方面的主题,一直没有找到合适的解决办法,有人提出来过,但是好像没有解决。
我想提取块里面的属性,类似天河里面的标题栏填充,附件的代码是arx帮助里的,定义了属性的块,如何把其中的属性提取出来,例如   pAttDwgNo->setTextString("测试");
想把“测试”字符提取出来修改后重新赋值。请教各位如何实现??

example:
char *blockname;
        blockname="head_a";

        AcDbBlockTable *pBTable;//定义块表记录指针
        acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBTable,AcDb::kForRead);
        AcDbBlockTableRecord *pBTRecord;// 定义指向块的块表记录指针
        //定义指定块的块表记录指针
        if(Acad::eOk!=pBTable->getAt(blockname,pBTRecord,AcDb::kForRead))
                return;
        AcGePoint3d basepoint(0,0,0);
        AcDbObjectId blockId;
        blockId=pBTRecord->objectId();
        AcDbBlockReference *pBlkRef=new AcDbBlockReference;
        pBlkRef->setBlockTableRecord(blockId);
        pBlkRef->setPosition(basepoint);

//        插入块表
        pBTable->getAt(ACDB_MODEL_SPACE,pBTRecord,AcDb::kForWrite);
        AcDbObjectId newEntId;
        pBTRecord->appendAcDbEntity(newEntId,pBlkRef);
//属性插入部分
        AcDbBlockTableRecord *pBlockDef;
        acdbOpenObject(pBlockDef,blockId,AcDb::kForRead);
        AcDbBlockTableRecordIterator *pIterator;
        pBlockDef->newIterator(pIterator);
        AcDbEntity *pEnt;
                pIterator->getEntity(pEnt,AcDb::kForRead);
                        AcDbAttribute *pAttDwgNo=new AcDbAttribute();
        pAttDwgNo->setPosition(basepoint);
        pAttDwgNo->setHeight(5);
        pAttDwgNo->setRotation(0.0);
                     pAttDwgNo->setTextString("测试");
        pAttDwgNo->setTag("图号");
.......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-16 19:10:19 | 显示全部楼层
AcDbObjectIterator* pBlkIterator = pBlockRef->attributeIterator();
for(pBlkIterator->start(); !pBlkIterator->done();pBlkIterator->step())
{
        AcDbAttribute* pAttrEnt = AcDbAttribute::cast(pBlkIterator->entity());
        if(pAttrEnt != NULL)
        {
                char* text = pAttrEnt->textString() ;
                ......
        }
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-28 14:58:47 | 显示全部楼层
谢谢,已经完成,当初取不到是因为图纸里块又嵌套了块,所以一直没有找到.也可以通过属性ID来获得.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 100个

财富等级: 招财进宝

发表于 2015-10-30 20:45:29 | 显示全部楼层
怎么做到的啊,求解求解
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 15:33 , Processed in 0.202320 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表