Что означает originOfPlanarEntity?

Автор Тема: Что означает originOfPlanarEntity?  (Прочитано 13423 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Что означает originOfPlanarEntity?
« : 24-04-2020, 18:10:22 »
В описании свойства "PointOnPlane" говорится, что оно вовращает "originOfPlanarEntity". Что это такое? Может быть геометрический центр тяжести фигуры?
Если нет, то как "вытащить" центр тяжести плоского face?
Заранее благодарен.
« Последнее редактирование: 24-04-2020, 21:36:29 от Балиев »

Оффлайн Koropet

  • ADN OPEN
  • Сообщений: 1
  • Карма: 1
  • Skype: petruxa1993
Re: Что означает originOfPlanarEntity?
« Ответ #1 : 25-04-2020, 14:43:41 »
Если зайти в описание класса PlanarEntity  (очевидно, вы его имели в виду, я полагаю) то там описывается, что originOfPlanarEntity это не что иное, как начало координат в местной системе координат этой плоскости.
https://help.autodesk.com/view/OARX/2019/ENU/?guid=OREFNET-Autodesk_AutoCAD_Geometry_PlanarEntity

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #2 : 25-04-2020, 15:52:35 »
Если нет, то как "вытащить" центр тяжести плоского face?
Вытащить нельзя. Можно только рассчитать...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #3 : 25-04-2020, 17:34:27 »
Вытащить нельзя. Можно только рассчитать...
Жаль. А нельзя ли получить копию геометрии плоского face в виде region?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #4 : 25-04-2020, 17:43:15 »
Вытащить нельзя. Можно только рассчитать...
Жаль. А нельзя ли получить копию геометрии плоского face в виде region?
О каком Face идёт речь?
Есть Autodesk.AutoCAD.DatabaseServices.Face и есть Autodesk.AutoCAD.BoundaryRepresentation.Face
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #5 : 25-04-2020, 17:47:23 »
О каком Face идёт речь?
Есть Autodesk.AutoCAD.DatabaseServices.Face и есть Autodesk.AutoCAD.BoundaryRepresentation.Face
Autodesk.AutoCAD.BoundaryRepresentation.Face

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #6 : 25-04-2020, 17:55:48 »
О каком Face идёт речь?
Есть Autodesk.AutoCAD.DatabaseServices.Face и есть Autodesk.AutoCAD.BoundaryRepresentation.Face
Autodesk.AutoCAD.BoundaryRepresentation.Face
Прямого метода преобразования нет. Тебе нужно получить все Loop'ы этого Face, затем на основе их построить Polyline'ии и из их коллекции получить Region. Если это конечно получится.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #7 : 25-04-2020, 18:10:39 »
Мда-а... Буду пробовать.

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #8 : 27-04-2020, 17:14:17 »
Тебе нужно получить все Loop'ы этого Face, затем на основе их построить Polyline'ии и из их коллекции получить Region.
А что имеется в виду под "затем на основе их построить Polyline'ии"?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #9 : 27-04-2020, 17:16:18 »
А что имеется в виду под "затем на основе их построить Polyline'ии"?
Создать Polyline по коллекции точек, полученной из Face.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #10 : 27-04-2020, 20:45:37 »
Вот фрагмент кода:

Код - C# [Выбрать]
  1. using (AcBr.Brep brep = new AcBr.Brep(path))
  2.  {
  3.      foreach (AcBr.Face face in brep.Faces)
  4.      {
  5.          Double normalToFace = ((Autodesk.AutoCAD.Geometry.PlanarEntity)
  6.                                ((Autodesk.AutoCAD.Geometry.ExternalBoundedSurface)face.Surface)
  7.                               .BaseSurface).Normal.Y;
  8.          double pointOnPlane = ((Autodesk.AutoCAD.Geometry.PlanarEntity)
  9.                                ((Autodesk.AutoCAD.Geometry.ExternalBoundedSurface)face.Surface)
  10.                                .BaseSurface).PointOnPlane.Y;
  11.          if (normalToFace != 0 && Math.Round(pointOnPlane, 2) == Math.Round(bendCoor, 2))
  12.          {
  13.              arraySubentityId = new SubentityId[] { face.SubentityPath.SubentId };
  14.              FaceLoopCollection bLoops = face.Loops;
  15.              foreach (LoopVertexCollection verteciesOfLoop in bLoops.GetEnumerator())
  16.              {
  17.  
  18.              }
  19.          }
  20.      }
  21.  }
Два вопроса по нему:
1. Нельзя ли как-то поизящнее получать значение переменных normalToFace и pointOnPlane (в смысле длинны строки кода)?
2. Я не понимаю, почему на строке 15  VS выдает ошибку: "foreach statement cannot operate on variables of type 'FaceLoopEnumerator' because 'FaceLoopEnumerator' does not contain a public instance definition for 'GetEnumerator'"? Я знаю, что не выполняются необходимые условия для Foreach, но не понимаю, в чем проблема.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #11 : 27-04-2020, 21:10:25 »
Замени:
Код - C# [Выбрать]
  1. foreach (LoopVertexCollection verteciesOfLoop in bLoops.GetEnumerator())
на
Код - C# [Выбрать]
  1. foreach (BoundaryLoop boundaryLoop in bLoops)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #12 : 29-04-2020, 13:03:30 »
Тебе нужно получить все Loop'ы этого Face, затем на основе их построить Polyline'ии и из их коллекции получить Region. Если это конечно получится.
Я правильно понимаю, что, если Face имеет, например, геометрию кольца, то предложенным способом решить проблему не получится?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #13 : 29-04-2020, 13:06:10 »
Тебе нужно получить все Loop'ы этого Face, затем на основе их построить Polyline'ии и из их коллекции получить Region. Если это конечно получится.
Я правильно понимаю, что, если Face имеет, например, геометрию кольца, то предложенным способом решить проблему не получится?
Почему? Ты скорее всего получишь два Loop - один внутренний и один наружный.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #14 : 29-04-2020, 13:24:07 »
Почему? Ты скорее всего получишь два Loop - один внутренний и один наружный.
Да, но как я пойму, что этот Loop - окружность?