找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 487|回复: 7

[ARX程序]:如何得到所有层的层名?

[复制链接]
发表于 2002-10-16 13:55:09 | 显示全部楼层 |阅读模式

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

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

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-16 17:33:49 | 显示全部楼层
最初由 fyje 发布
[B]已经知道了 [/B]


把解决的函数完整代码贴论坛来吧,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-16 18:43:17 | 显示全部楼层

用VC

  IAcadLayers m_acadlayers;
  IAcadLayer m_acadlayer;

  m_acadlayers.AttachDispatch(m_acaddoc.GetLayers(),true);
  char layername[10][50];
  for(int i=0;i< m_acadlayers.GetCount();i++)
  {
   m_acadlayer.AttachDispatch(m_acadlayers.Item(COleVariant((short)i)),true);
   strcpy(layername,m_acadlayer.GetName());
  }

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

使用道具 举报

发表于 2002-10-16 18:45:40 | 显示全部楼层
IAcadLayers m_acadlayers;
  IAcadLayer m_acadlayer;

  m_acadlayers.AttachDispatch(m_acaddoc.GetLayers(),true);
  char layername[10][50];
  for(int i=0;i < m_acadlayers.GetCount();i++) 
    {
   m_acadlayer.AttachDispatch(m_acadlayers.Item(COleVariant((short)i)),true);
   strcpy(layername,m_acadlayer.GetName());
  }
刚才输错了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-16 18:52:32 | 显示全部楼层
for(int i=0;i 改为
for(int i=0;i 小于m_acadlayers.GetCount();i++) 

奇了,明明改好了,怎么还是那个样呢?
为什么小于号打不上去呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-17 08:47:20 | 显示全部楼层
最初由 XDSoft 发布
[B]

把解决的函数完整代码贴论坛来吧,谢谢! [/B]


  1. [FONT=courier new]
  2. 以下是他的代码:
  3. void getAllLayerName()
  4. {
  5.         char *arrLay=NULL;
  6.         AcDbLayerTable *pLayerTable;
  7.         acdbHostApplicationServices()->workingDatabase()
  8.                 ->getSymbolTable(pLayerTable,AcDb::kForRead);
  9.         //创建一个层表迭代器
  10.         AcDbLayerTableIterator *pLayerTableIterator;
  11.         pLayerTable->newIterator(pLayerTableIterator);
  12.         AcDbLayerTableRecord *pLayerTableRecord;
  13.         char *pLayerName;
  14.         arrLay[0]=NULL;
  15.         for(int i=1;!pLayerTableIterator->done();pLayerTableIterator->step(),i++)
  16.         {
  17.                 pLayerTableIterator->getRecord(pLayerTableRecord,AcDb::kForRead);
  18.                 pLayerTableRecord->getName(pLayerName);
  19.                 pLayerTableRecord->close();
  20.                 *(arrLay+1)=*pLayerName;
  21.                 acutPrintf("\n   %d 层层名是%s",i,pLayerName);
  22.         }
  23.         delete pLayerTableIterator;
  24.         pLayerTable->close();
  25. }[/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-17 11:24:02 | 显示全部楼层
最初由 fyje 发布
[B]

[CODE]

以下是他的代码:
void getAllLayerName()
{
        char *arrLay=NULL;
        AcDbLayer... [/B]


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 17:50 , Processed in 0.235262 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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