Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: Vladislav от 19-06-2020, 12:45:46

Название: Ошибка при получении цветов.
Отправлено: Vladislav от 19-06-2020, 12:45:46
Добрый день!
С чем может быть связана такая ошибка в получении цветов объекта? (см. приложение)
Спасибо.
Название: Re: Ошибка при получении цветов.
Отправлено: mikazakov от 19-06-2020, 13:06:14
Дак, а как мы вам поможем, если на вашей картинке только набор сигнатур вашей программы.
Ну написано что параметр был задан неверно, дак их параметров то может быть много и разных
Название: Re: Ошибка при получении цветов.
Отправлено: Vladislav от 19-06-2020, 13:37:37
Код такой
Код - C# [Выбрать]
  1. System.Collections.IEnumerator ColEn = surfaceBody.GetFaceColors().GetEnumerator();
Никаких параметров не передаю.
Сигнатура метода следующая:
Код - C# [Выбрать]
  1. ObjectCollection SurfaceBody.GetFcaeColors([object Faces])
Название: Re: Ошибка при получении цветов.
Отправлено: mikazakov от 19-06-2020, 13:51:06
Код - Visual Basic [Выбрать]
  1. Public Sub GetColor()
  2.  Dim pd As PartDocument: Set pd = ThisApplication.ActiveEditDocument
  3.  Dim sb As SurfaceBody: Set sb = pd.ComponentDefinition.SurfaceBodies(1)
  4.  
  5.  Dim fc As FaceCollection: Set fc = ThisApplication.TransientObjects.CreateFaceCollection()
  6.  Call fc.Add(sb.Faces(1))
  7.  Call fc.Add(sb.Faces(2))
  8.  Call fc.Add(sb.Faces(3))
  9.  
  10.  
  11.  Dim cc As ObjectCollection
  12.  Set cc = pd.ComponentDefinition.SurfaceBodies(1).GetFaceColors(fc)
  13.  
  14. End Sub
  15.  
Название: Re: Ошибка при получении цветов.
Отправлено: Vladislav от 19-06-2020, 13:57:54
А если SurfaceBody берутся из уже существующих в модели объектов?
Просто для большинства моделей этот мой код хорошо работатет.
Только в одной огромной модели столкнулся с ошибкой...
Корректно ли будет сделать так?
Код - C# [Выбрать]
  1. FaceCollection faces = surfaceBody.Faces();            
  2. System.Collections.IEnumerator ColEn = surfaceBody.GetFaceColors(faces).GetEnumerator();
Название: Re: Ошибка при получении цветов.
Отправлено: Александр Ривилис от 19-06-2020, 14:44:55
Vladislav,
Видимо какой-то face в faces ненормальный и из-за него происходит сбой.
Название: Re: Ошибка при получении цветов.
Отправлено: mikazakov от 19-06-2020, 19:01:11
FaceCollection faces = surfaceBody.Faces();
Это не правильно