找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 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");
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 04:57 , Processed in 0.139749 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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