天气与日历 切换到窄版

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

[每日一码] 设置3DSOLID实体每个面的颜色

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

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 19:33:56 | 显示全部楼层 |阅读模式
    1. void TestBrep(void)
    2. {
    3.     Adesk::Int32 len;
    4.     ads采用name  ssname0;
    5.   struct resbuf *buffer;
    6.     buffer = acutBuildList(-4, 采用T("<AND"),
    7.               RTDXF0, 采用T("3DSOLID"),
    8.               -4, 采用T("AND>"), RTNONE);
    9.     acutPrintf(采用T("\nSelect a box:"));
    10.     acedSSGet(NULL, NULL, NULL, buffer, ssname0);
    11.     acutRelRb(buffer);
    12.   if (RTNORM == acedSSLength(ssname0, &len))
    13.     {
    14.         ads采用name  ent;
    15.         AcDbObjectId entId;
    16.     for(long k = 0; k < len; k++)
    17.         {
    18.             acedSSName(ssname0, k, ent);
    19.             acdbGetObjectId(entId, ent);
    20.       settingDifferentColorToEachFace(entId);
    21.         }
    22.         acedSSFree(ssname0);
    23.     }
    24. }
    25. void settingDifferentColorToEachFace(AcDbObjectId solidId)
    26. {
    27.   AcCmColor specialColor;
    28.   AcDb3dSolid* pSolid;
    29.     if (Acad::eOk == acdbOpenObject(pSolid, solidId, AcDb::kForRead))
    30.     {
    31.         AcDbFullSubentPath path(solidId, AcDbSubentId());
    32.     AcBrBrep brep;
    33.         AcBr::ErrorStatus bs = brep.setSubentPath(path);
    34.         if (bs != AcBr::eOk)
    35.             return;
    36.    //Initialize the BrepFace traverser
    37.         AcBrBrepFaceTraverser bft;
    38.         bs = bft.setBrep(brep);
    39.         if (bs != AcBr::eOk)
    40.             return;
    41.         AcArray<AcDbSubentId> arrSubentId;
    42.         // Traverse all faces
    43.         for (;!bft.done();bft.next())
    44.         {
    45.             AcBrFace face;
    46.             bs = bft.getFace(face);   
    47.             if (bs != Acad::eOk)
    48.             {
    49.                 acutPrintf(L"\ngetFace failed");
    复制代码

     

     

     

     

    [每日一码] 设置3DSOLID实体每个面的颜色
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-11-1 13:33 , Processed in 0.134388 second(s), 25 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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