我自己定义了一个块,里面有两段文字,比如值分别是A,B
现在我在插入这个块的时候根据需要把他们的值分别变成 C和D
请问怎么做?
我定义属性的时候是怎么定义的
pAttdef->setTextString("A"); pAttdef->setTag("Tag"); ……
pAttdef1->setTextString("B"); pAttdef1->setTag("Tag1");
修改属性的时候我是根据范例修改的具体的如下:
AcDbAttribute *pAtt=new AcDbAttribute(); pAtt->setPropertiesFrom(pAttdef);
pAtt->setInvisible(pAttdef->isInvisible()); basePoint = pAttdef->position();
basePoint +=pBlkRef->position().asVector(); pAtt->setPosition(basePoint); pAtt->setHeight(pAttdef->height()); pAtt->setRotation(pAttdef->rotation());
pTagPrompt = pAttdef->tag(); if(pTagPrompt="Tag") { pAtt->setTextString("C"); } if(pTagPrompt="Tag1") { pAtt->setTextString("D"); } AcDbObjectId attId; pBlkRef->appendAttribute(attId,pAtt); pAtt->close();
结果是所有的文字的值都被变成了D
我看了下,应该是 pAtt->setTextString(); 这个函数使用错误,
他是不是对属性块中所有的文字项都赋值,并不是根据Tag的不同赋值的,有没有可以根据Tag的不同,赋不同的值的函数阿?
小弟刚刚开始学习,困难很大
请各位前辈多多指教
谢谢,谢谢!
|