天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 161|回复: 0

[每日一码] AcDbBlockReference appendAttribute

[复制链接]
  • TA的每日心情
    开心
    半小时前
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    115

    主题

    11

    回帖

    1393

    积分

    管理员

    积分
    1393
    QQ
    发表于 2024-3-14 20:57:44 | 显示全部楼层 |阅读模式
    1. static void AddAttrib()
    2.         {
    3.                 ads采用name ent;
    4.                 ads采用point pt;
    5.                 if (acedEntSel(采用T("\nPick Insert: "),ent,pt)==RTNORM)
    6.                 {
    7.                         AcDbObjectId objId,blkId;
    8.                         acdbGetObjectId(objId,ent);
    9.                         AcDbObjectPointer<AcDbBlockReference> pBlkRef(objId,AcDb::kForRead);
    10.                         if (pBlkRef.openStatus()==Acad::eOk)
    11.                         {
    12.                                 ACHAR tagstr[40],str[40];
    13.                                 if (acedGetString(NULL,采用T("\nTag String: "),tagstr)!=RTNORM)
    14.                                 {                              
    15.                                         return;
    16.                                 }
    17.                                 AcDbObjectIterator *pIter=pBlkRef->attributeIterator();
    18.                                 if (pIter!=NULL)
    19.                                 {
    20.                                         for (;!pIter->done();pIter->step())
    21.                                         {
    22.                                                 AcDbObjectPointer<AcDbAttribute> pAttrib(pIter->objectId(),AcDb::kForRead);
    23.                                                 
    24.                                                         if (采用tcscmp(pAttrib->tag(),tagstr)==0)
    25.                                                         {
    26.                                                                 delete pIter;
    27.                                                                 acutPrintf(采用T("\n%s already exists!"),tagstr);
    28.                                                                 return;
    29.                                                         }
    30.                                         }                              
    31.                                         delete pIter;
    32.                                 }
    33.                                 if (acedGetString(NULL,采用T("\nText String: "),str)!=RTNORM)
    34.                                 {
    35.                                         return;
    36.                                 }
    37.                                 if (acedGetPoint(NULL,采用T("\nInsertion Point: "),pt)!=RTNORM)
    38.                                 {
    39.                                         return;
    40.                                 }
    41.                                 pBlkRef->upgradeOpen();
    42.                                 AcDbAttribute *pAttrib=new AcDbAttribute;
    43.                                 pAttrib->setTag(tagstr);
    44.                                 pAttrib->setTextString(str);
    45.                                 pAttrib->setPosition(asPnt3d(pt));
    46.                                 pAttrib->setHeight(10.0);
    47.                                 pBlkRef->appendAttribute(pAttrib);
    48.                                 pAttrib->close();
    49.                                 pBlkRef->close();
    50.                         }
    51.                 }
    52.         }
    复制代码

     

     

     

     

    [每日一码] AcDbBlockReference appendAttribute
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-5 06:08 , Processed in 0.148196 second(s), 28 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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