找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 154|回复: 0

[每日一码] 如果线型byLayer如何获得实体的线型名

[复制链接]

1

主题

0

回帖

33

积分

管理员

积分
33
发表于 2024-3-14 20:40:12 | 显示全部楼层 |阅读模式
  1. AcDbEntity *
  2. selectEntity( const char *prompt, AcDbObjectId& id, AcGePoint3d& pick,
  3. AcDb::OpenMode openMode )
  4. {
  5.    AcDbEntity *ent = NULL;
  6.    ads采用name ename;
  7.    if ( RTNORM == ads采用entsel(prompt, ename, (ads采用real*)&pick )){
  8.             if ( Acad::eOk == acdbGetObjectId( id, ename )){
  9.                 if ( Acad::eOk == acdbOpenAcDbEntity( ent, id, openMode ))
  10.                         return ent;
  11.             }
  12.    }
  13.    return ent;
  14. }
  15. // This is command 'GETLT'
  16. void asdktestergetlt()
  17. {
  18.             AcDbObjectId objId;
  19.             AcGePoint3d pick;
  20.             AcDbEntity *pEnt = selectEntity( "\nSelect entity: ", objId, pick,
  21. AcDb::kForRead );
  22.             if ( NULL == pEnt )
  23.                         return;
  24.             if ( pEnt->linetypeId() == pEnt->database()->byLayerLinetype() )
  25.             {
  26.                         AcDbObject *pObj;
  27.                         if ( Acad::eOk == acdbOpenAcDbObject( pObj, pEnt->layerId(),
  28. AcDb::kForRead ))
  29.                         {
  30.                                     AcDbLayerTableRecord *pLayer =
  31. AcDbLayerTableRecord::cast( pObj );
  32.                                     if ( NULL != pLayer )
  33.                                     {
  34.                                                 AcDbObject *pObj2;
  35.                                                 if ( Acad::eOk == acdbOpenAcDbObject( pObj2,
  36. pLayer->linetypeObjectId(), AcDb::kForRead ))
  37.                                                 {
  38.                                                             AcDbLinetypeTableRecord *pLinetype =
  39. AcDbLinetypeTableRecord::cast( pObj2 );
  40.                                                             if ( NULL != pLinetype )
  41.                                                             {
  42.                                                                         char *layerName, *linetypeName;
  43.                                                                         pLayer->getName( layerName );
  44.                                                                         pLinetype->getName( linetypeName
  45. );
  46.                                                                         acutPrintf( "\nEntity lives on
  47. layer %s which uses linetype %s.", layerName, linetypeName );
  48.                                                                         delete [] layerName;
  49.                                                                         delete [] linetypeName;
  50.                                                             }
  51.                                                             pObj2->close();
  52.                                                 }
  53.                                     }
  54.                                     pObj->close();
  55.                         }
  56.             }
  57.             pEnt->close();
  58. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-29 20:49 , Processed in 0.104350 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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