jbstys 发表于 2006-5-13 18:57:00

求助:怎么样逐一修改属性块的值呢?

我自己定义了一个块,里面有两段文字,比如值分别是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的不同,赋不同的值的函数阿?
小弟刚刚开始学习,困难很大
请各位前辈多多指教
谢谢,谢谢!


jbstys 发表于 2006-5-15 21:00:00

麻烦各位高手,给说一下
这个问题对于你们来说很简单,可对我来说是一个坎
好几天了一直没有找到答案,程序的编写也停了好几天了,
麻烦路过的给指点下,小弟感激不尽

wangqin020 发表于 2006-5-15 22:32:00

我也遇到了这个问题
麻烦哪位说一下啊!!

wangqin020 发表于 2006-5-17 10:05:00

敢问楼主的问题解决了没有?
如果解决了能否给在下说一下

jbstys 发表于 2006-5-18 18:16:00

还没有解决 :(
CAD里面可以根据tag修改它的值
可程序不知道怎么写
等位高手给解决下



god2005 发表于 2006-8-29 20:23:00


你书附值,还是判断,你告诉我好了

nc2t 发表于 2006-8-30 10:42:00

呵呵~~VC的语法的基本知识,应该是两个等号
if(pTagPrompt =="Tag"){pAtt->setTextString("
")}
页: [1]
查看完整版本: 求助:怎么样逐一修改属性块的值呢?