Создание элементов с произвольной геометрией

Автор Тема: Создание элементов с произвольной геометрией  (Прочитано 6700 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Добрый день! Делаю по аналогии
Код - C# [Выбрать]
  1.             //Get transient Brep            
  2.             TransientBRep Brep = m_Application.TransientBRep;
  3.  
  4.             //Get the surfacebodies    
  5.             SurfaceBodies SBs = Brep.ReadFromFile(fileName);            
  6.            
  7.             TransientObjects TransObjs = m_Application.TransientObjects;
  8.             ObjectCollection ObjColl = TransObjs.CreateObjectCollection();
  9.             //Add each surfacebody of imported file to ObjectCollection
  10.             foreach (SurfaceBody SB in SBs) ObjColl.Add(SB);            
  11.        
  12.             //Get definition of current document    
  13.             PartComponentDefinition PartDef = doc.ComponentDefinition;    
  14.             PartFeatures Features = PartDef.Features;
  15.             NonParametricBaseFeatureDefinition NPFD = Features.NonParametricBaseFeatures.CreateDefinition();
  16.  
  17.             //Назначение цвета
  18.             if (!IsNullColor) {
  19.                 //Create the ClientGraphics object.
  20.                 ClientGraphics oClientGraphics = PartDef.ClientGraphicsCollection.Add("Sample3DGraphicsID");
  21.  
  22.                 Color color = m_Application.TransientObjects.CreateColor(0, 0, 255);
  23.                
  24.                 //Create a new graphics node within the client graphics objects.    
  25.                 GraphicsNode oSurfacesNode = oClientGraphics.AddNode(SBs.Count);
  26.                 foreach (SurfaceBody SB in SBs)
  27.                 {
  28.                     // Create client graphics based on the transient body    
  29.                     SurfaceGraphics oSurfaceGraphics = oSurfacesNode.AddSurfaceGraphics(SB);
  30.                     oSurfaceGraphics.Color = color;
  31.                 }                                
  32.             }
  33.  
  34.             //Assign the ObjectCollection to the definition.
  35.             NPFD.BRepEntities = ObjColl;            
  36.  
  37.             //Set the output type
  38.             NPFD.OutputType = BaseFeatureOutputTypeEnum.kSolidOutputType;
  39.  
  40.             //Create the NonParametricBaseFeature using the definition.
  41.             PartDef.Features.NonParametricBaseFeatures.AddByDefinition(NPFD);
Но цвет почему-то не назначается. IsNullColor = false.
Правильно ли я назначаю цвет в случае нескольких SurfaceBody?
Спасибо.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Выложите тестовый импортируемый файл и "причёсанный" макрос на VBA (что б в макросе ничего лишнего).
Я посмотрю и если не разберусь то задам вопрос в девхэлп.

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
А на C# не подойдет? Я просто на нем пишу.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
А на C# не подойдет? Я просто на нем пишу.
С VBA удобнее разбираться с проблемой, лучше видно состояние объектов. Плюс будет сама проблема, а не кусок кода выдранный непонятно откуда.
Ни кто же не просит кучу кода конвертировать в ВБА, только саму проблему.
Да и если запрос делать в девхэлп там им тоже проще будет, по этим же причинам. И соответственно с большей вероятностью они что то позитивное скажут.

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Хорошо. Как освобожусь, попробую подготовить VBA.
Пока что переключился на другие задачи.