乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 295|回复: 14

[编程交流] AcDb块选项卡le记录:获取预览Wicon

[复制链接]
LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-4-22 00:01:01 | 显示全部楼层 |阅读模式

zqupox4wzj2.PNG

zqupox4wzj2.PNG


4gcskshxj3k.PNG

4gcskshxj3k.PNG


回复

使用道具 举报

LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-4-22 00:41:30 | 显示全部楼层

也许吧?使用那个类…在那里
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-4-22 01:00:04 | 显示全部楼层
我不知道,我正在尝试阅读已插入块的预览图标。不过,我将检查代码...谢谢
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-4-22 01:01:49 | 显示全部楼层
或者寻找我几个月前在这里发布的图书馆。
szDwg = pathForDwg+_ T(" \ \ "+strDwg;
如果(!acdbDisplayPreviewFromDwg(szDwg,(void *)m _ dwgpreview . m _ hWnd))
m _ folderPath。SetWindowText(_T("没有可用的预览图像。"));
或者...使用blockview示例中可用的控件,您可以传递一个块并获得视图(我做了一些事情来显示每个对象选择的预览,类似于MEP对象查看器中的预览,您可以将块传递为drawable——如果我没记错的话——明天将查看我的代码——是时候小睡4到7个小时了)
回复

使用道具 举报

LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-4-22 01:05:53 | 显示全部楼层
这是我现在拥有的代码。注意 由于块已入,该文件可能不存在
loger
  1. truct BlockInfo
  2. {
  3.   CString name;
  4.   AcArray preview;
  5. };
  6. typedef CArray[B] BlockInfoArray;
  1. Acad::ErrorStatus BlockWorker::getBlockInfoFromdDb( BlockInfoArray &blocks )
  2. {
  3.   AcDbObjectId blkId, BtrId;
  4.   CString blkName = getBlockName();
  5.   Acad::ErrorStatus es = Acad::eOk;
  6.   if(blkName.IsEmpty())
  7.     return Acad::eInvalidBlockName;
  8.   std::auto_ptr blkDb(new AcDbDatabase(Adesk::kFalse,Adesk::kTrue));
  9.   if( (es = blkDb->readDwgFile(m_path,_SH_DENYWR)) != Acad::eOk)
  10.   {
  11.     acutPrintf(_T("\nError: Line %ld [%s]\nIn function %s"),
  12.       __LINE__, acadErrorStatusText(es),_T(__FUNCTION__));
  13.     return es;
  14.   }
  15.   AcDbBlockTablePointer pBlockTablePointer(blkDb->blockTableId(), AcDb::kForRead);
  16.   if( (es = pBlockTablePointer.openStatus()) != Acad::eOk)
  17.   {
  18.     acutPrintf(_T("\nError: Line %ld [%s]\nIn function %s"),
  19.       __LINE__, acadErrorStatusText(es),_T(__FUNCTION__));
  20.     return es;
  21.   }
  22.   AcDbBlockTableIterator *pIter = NULL;
  23.   if ( (es = pBlockTablePointer->newIterator(pIter)) != Acad::eOk)
  24.   {
  25.     acutPrintf(_T("\nError: Line %ld [%s]\nIn function %s"),
  26.       __LINE__, acadErrorStatusText(es),_T(__FUNCTION__));
  27.     return es;
  28.   }
  29.   for(pIter->start();!pIter->done(); pIter->step())
  30.   {
  31.     if(pIter->getRecordId(BtrId) == Acad::eOk)
  32.     {
  33.       AcDbBlockTableRecordPointer pBtr ( BtrId, AcDb::kForRead);
  34.       if(pBtr.openStatus() == Acad::eOk)
  35.       {
  36.         if(pBtr->isAnonymous() || pBtr->isLayout() ||
  37.            pBtr->isFromExternalReference() || pBtr->isFromOverlayReference())
  38.         {
  39.           continue;
  40.         }
  41.         TCHAR *name = 0;
  42.         if(pBtr->getName(name) == Acad::eOk)
  43.         {
  44.           BlockInfo info;
  45.           info.name = name;
  46.           pBtr->getPreviewIcon(info.preview);
  47.           blocks.Add(info);
  48.           acutDelString(name);
  49.           //if(pBtr->hasPreviewIcon() && info.preview.length() == 0)
  50.             //acutPrintf(_T("\nBooooo Yuk"));
  51.         }
  52.       }
  53.     }
  54.   }
  55.   delete pIter;
  56.   return es;
  57. }

回复

使用道具 举报

LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-4-22 01:22:18 | 显示全部楼层
我以为我是唯一一个做这种事的人。
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-4-22 05:29:17 | 显示全部楼层


我以为我是唯一一个做这种事情的人。

这是我能做的,我不得不放弃使用NSFW方法名称
回复

使用道具 举报

LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-4-22 07:43:24 | 显示全部楼层
请参阅BlockView SDK示例。它们呈现到AcGsView,然后获取快照。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-4-22 08:48:40 | 显示全部楼层
很棒,谢谢你的小费!这是相当多的咀嚼
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-4-22 12:45:51 | 显示全部楼层
这将是一张票…你可以传递你的块ID并获得视图-这里是一个实现的动画图像。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 01:39 , Processed in 0.277395 second(s), 75 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表