天气与日历 切换到窄版

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

亮显 面 顶点 边

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-5-4 18:36:42 | 显示全部楼层 |阅读模式
    1.                 ads采用name ss;
    2.                 if (acedSSGet(NULL,NULL,NULL,NULL,ss)!=RTNORM)
    3.                 {
    4.                         return;
    5.                 }
    6.                 struct resbuf* res;
    7.                 if (acedSSNameX(&res,ss,0)!=RTNORM)
    8.                 {
    9.                         acedSSFree(ss);
    10.                         return;
    11.                 }
    12.                 acedSSFree(ss);
    13.                 struct resbuf* buf;
    14.                 int i;
    15.                 for (i=1,buf=res;i<3;i++,buf=buf->rbnext)
    16.                 {;}
    17.                 ads采用name ent;
    18.                 ads采用name采用set(buf->resval.rlname,ent);
    19.                 buf=buf->rbnext;
    20.                 int maker=buf->resval.rint;
    21.                 acutRelRb(res);
    22.                 AcDbObjectId entId;
    23.                 AcDbEntity *pEnt=NULL;
    24.                 acdbGetObjectId(entId,ent);
    25.                 if (acdbOpenObject(pEnt,entId,AcDb::kForWrite)==Acad::eOk)
    26.                 {
    27.                         AcGePoint3d ptOnOrNear;
    28.                         AcGeMatrix3d mat;
    29.                         int sunEntNums;
    30.                         AcDbFullSubentPath* subentIds;
    31.                         ACHAR leixing[100];
    32.                         acedGetString(0,采用T("输入需要高亮显示的子实体类型:"),leixing);
    33.                         if (*leixing==*采用T("边"))
    34.                         {
    35.                                 pEnt->getSubentPathsAtGsMarker(AcDb::kEdgeSubentType,maker,ptOnOrNear,mat,sunEntNums,subentIds);
    36.                         }
    37.                         else if (*leixing==*采用T("面"))
    38.                         {
    39.                                 pEnt->getSubentPathsAtGsMarker(AcDb::kFaceSubentType,maker,ptOnOrNear,mat,sunEntNums,subentIds);
    40.                         }
    41.                         else if (*leixing==*采用T("顶点"))
    42.                         {
    43.                                 pEnt->getSubentPathsAtGsMarker(AcDb::kVertexSubentType,maker,ptOnOrNear,mat,sunEntNums,subentIds);
    44.                         }
    45.                         else
    46.                         {
    47.                                 acedAlert(采用T("没有此类型的子实体........................."));
    48.                         }
    49.                         if (sunEntNums>0)
    50.                         {
    51.                                 for (int i=0;i<sunEntNums;i++)
    52.                                 {
    53.                                         pEnt->highlight(subentIds[i]);
    54.                                 }
    55.                                 ACHAR str[20]={0};
    56.                                 acedGetString(0,采用T("按回车键结束高亮显示并进入低亮显示"),str);
    57.                                 for (int i=0;i<sunEntNums;i++)
    58.                                 {
    59.                                         pEnt->unhighlight(subentIds[i]);
    60.                                 }
    61.                         }
    62.                 }
    63.                 pEnt->close();
    复制代码

     

     

     

     

    亮显 面  顶点 边
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
     楼主| 发表于 2024-5-4 18:36:59 | 显示全部楼层
    1.         static void highlightEdge(const AcDbObjectId& objId, const int marker)
    2.         {
    3.                 TCHAR dummy[133]; // space for acedGetStringB pauses below
    4.                 AcDbEntity *pEnt;
    5.                 acdbOpenAcDbEntity(pEnt, objId, AcDb::kForRead);
    6.                 AcGePoint3d pickpnt;
    7.                 AcGeMatrix3d xform;
    8.                 int numIds;
    9.                 AcDbFullSubentPath *subentIds;
    10.                 pEnt->getSubentPathsAtGsMarker(AcDb::kEdgeSubentType,
    11.                         marker, pickpnt, xform, numIds, subentIds);
    12.                 // At this point the subentId's variable contains the
    13.                 // address of an array of AcDbFullSubentPath objects.
    14.                 // The array should be one element long, so the picked
    15.                 // edge's AcDbFullSubentPath is in subentIds[0].
    16.                 //
    17.                 // For objects with no edges (such as a sphere), the
    18.                 // code to highlight an edge is meaningless and must
    19.                 // be skipped.
    20.                 //
    21.                 if (numIds > 0) {
    22.                         // Highlight the edge.
    23.                         //
    24.                         pEnt->highlight(subentIds[0]);
    25.                         // Pause to let user see the effect.
    26.                         //
    27.                         acedGetString(0, 采用T("\npress <RETURN> to continue..."),
    28.                                 dummy);
    29.                         // Unhighlight the picked edge.
    30.                         //
    31.                         pEnt->unhighlight(subentIds[0]);
    32.                         // Get a copy of the edge, and add it to the database.
    33.                         //
    34.                         AcDbEntity *pEntCpy = pEnt->subentPtr(subentIds[0]);
    35.                         AcDbObjectId objId;
    36.                         CMoftenuse::PostToModelSpace( pEntCpy);
    37.                 }
    38.                 delete []subentIds;
    39.                 pEnt->close();
    40.         }
    41. static        void        highlightFaces(const AcDbObjectId& objId, const int marker)
    42.         {
    43.                 TCHAR dummy[133];
    44.                 AcDbEntity *pEnt;
    45.                 acdbOpenAcDbEntity(pEnt, objId, AcDb::kForRead);
    46.                 // Get the subentIds for the faces.
    47.                 //
    48.                 AcGePoint3d pickpnt;
    49.                 AcGeMatrix3d xform;
    50.                 int numIds;
    51.                 AcDbFullSubentPath *subentIds;
    52.                 pEnt->getSubentPathsAtGsMarker(AcDb::kFaceSubentType,
    53.                         marker, pickpnt, xform, numIds, subentIds);
    54.                 // Walk the subentIds list, highlighting each face subentity.
    55.                 //
    56.                 for (int i = 0;i < numIds; i++) {
    57.                         pEnt->highlight(subentIds[i]); // Highlight face.
    58.                         // Pause to let the user see the effect.
    59.                         //
    60.                         acedGetString(0, 采用T("\npress <RETURN> to continue..."),
    61.                                 dummy);
    62.                         pEnt->unhighlight(subentIds[i]);
    63.                 }
    64.                 delete []subentIds;
    65.                 pEnt->close();
    66.         }
    67. static        void        highlightAll(const AcDbObjectId& objId)
    68.         {
    69.                 TCHAR dummy[133];
    70.                 AcDbEntity *pEnt;
    71.                 acdbOpenAcDbEntity(pEnt, objId, AcDb::kForRead);
    72.                 // Highlight the whole solid.
    73.                 //
    74.                 pEnt->highlight();
    75.                 // Pause to let user see the effect.
    76.                 //
    77.                 acedGetString(0, 采用T("\npress <RETURN> to continue..."),
    78.                         dummy);
    79.                 pEnt->unhighlight();
    80.                 pEnt->close();
    81.         }
    复制代码

     

     

     

     

    亮显 面  顶点 边
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-11-1 09:05 , Processed in 0.141642 second(s), 28 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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