找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 578|回复: 0

Adding Attribute To A Block Definition

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2021-1-11 20:42:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 newer 于 2021-1-11 20:44 编辑

问题:

How can I add attribute to a block definition using ActiveX Automation API?

解答:
The code below shows how to add an Attribute to a block definition.

The following code creates block by name "test_block" and adds an attribute to it.



  1. //use MFC

  2. #import "acad.tlb" no_namespace
  3. void fAddAttribute()
  4. {
  5. try
  6. {
  7. //first create a block and then add one attribute to it
  8. //adding a block by name test_block
  9. IAcadApplicationPtr pAcadApp = acedGetAcadWinApp()->GetIDispatch(TRUE);
  10. IAcadDocumentPtr pActiveDoc = pAcadApp->ActiveDocument;
  11. IAcadBlockPtr pBlock = NULL;
  12. char *pBlkName;
  13. pBlkName = "test_block";
  14. VARIANT mvInsPt;
  15. SAFEARRAYBOUND mSAB;
  16. mSAB.lLbound = 0;
  17. mSAB.cElements = 3;
  18. mvInsPt.vt = VT_ARRAY | VT_R8;
  19. mvInsPt.parray = SafeArrayCreate(VT_R8,1,&mSAB);
  20. //fill the array of doubles for the insertion point
  21. double mDbl[3];
  22. mDbl[0] = 0.0;mDbl[1] = 0.0;mDbl[2] = 0.0;
  23. SafeArrayPutElement(mvInsPt.parray,0,(void *)&mDbl[0]);
  24. SafeArrayPutElement(mvInsPt.parray,0,(void *)&mDbl[1]);
  25. SafeArrayPutElement(mvInsPt.parray,0,(void *)&mDbl[2]);
  26. pBlock = pActiveDoc->Blocks->Add(mvInsPt,_bstr_t(pBlkName));
  27. //block added
  28. //add an Attribute to the block
  29. IAcadAttributePtr pAttDef;
  30. pAttDef = pBlock->AddAttribute(1.0, (AcAttributeMode)0 ,_bstr_t("Type the employee name"),mvInsPt,_bstr_t("empname"),_bstr_t(""));
  31. //attribute added
  32. }
  33. catch(_com_error &es)
  34. {
  35. acutPrintf(""nError : %s", es.ErrorMessage());
  36. }
  37. }

附件是完整工程代码:
70209.zip (173.7 KB, 下载次数: 0, 售价: 50 D豆)


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-13 10:02 , Processed in 0.403147 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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