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

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

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

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #15 : 29-04-2020, 13:29:55 »
Почему? Ты скорее всего получишь два Loop - один внутренний и один наружный.
Да, но как я пойму, что этот Loop - окружность?
А зачем тебе понимать что это окружность? Возьми создай соответствующий 3DSolid (я так понимаю, что это что-то типа тора) и посмотри что получится.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #16 : 29-04-2020, 13:48:49 »
А зачем тебе понимать что это окружность? Возьми создай соответствующий 3DSolid (я так понимаю, что это что-то типа тора) и посмотри что получится.
Что-то я совсем тебя не понял... Давай, сначала:
Мне нужно из Face получить Region.
Ты предлагаешь из Face получить Loops, из Loop получить Vertecies, чтобы по ним построить Polyline и коллекцию Polyline  преобразовать в Region.
Мой вопрос: если Face это окружность, то из Loop я могу достать только одну точку - центр окружности и при этом никто мне не скажет, что это окружность. Как на основе этой информации мне воспроизвести окружность?

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #17 : 29-04-2020, 13:52:11 »
если Face это окружность, то из Loop я могу достать только одну точку - центр окружности
Ты это проверил или так думаешь?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #18 : 29-04-2020, 14:47:17 »
Ты это проверил или так думаешь?
Проверил на круглом сечении. В окне "Locals" VS у единственной Loop есть только один Vertecies - точка на окружности (даже не центр).

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Что означает originOfPlanarEntity?
« Ответ #19 : 29-04-2020, 14:54:46 »
Ты это проверил или так думаешь?
Проверил на круглом сечении. В окне "Locals" VS у единственной Loop есть только один Vertecies - точка на окружности (даже не центр).
Тогда попробуй через свойство Edges - у каждого Edge есть свойство Curve (класс Autodesk.AutoCAD.Geometry.Curve3d), которое можно преобразовать в Curve ( Autodesk.AutoCAD.DatabaseServices.Curve )
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Балиев 29-04-2020, 20:29:34

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Что означает originOfPlanarEntity?
« Ответ #20 : 29-04-2020, 20:29:25 »
Тогда попробуй через свойство Edges - у каждого Edge есть свойство Curve (класс Autodesk.AutoCAD.Geometry.Curve3d), которое можно преобразовать в Curve ( Autodesk.AutoCAD.DatabaseServices.Curve )
Так тоже не получилось (может быть что-то не то делал). Зато придумал, как можно решить задачу по-другому. Нужно не пытаться преобразовать Face в Region, а извлечь в том же месте сечение солида - и сразу получаешь нужный Region. Вот фрагмент кода:
Код - C# [Выбрать]
  1.   Plane acPlane = new Plane(Pt1, Pt2, Pt3); // Создаем плоскость для получения сечения
  2.   Db.Region acRegion = acSol3D.GetSection(acPlane);   // Получаем сечение в виде региона
  3.   Solid3d tmpSolid = new Solid3d();
  4.   tmpSolid.Extrude(acRegion, 1, 0); // экструдируем солид, чтобы не нужно было вертеть сечение
  5.   var heightCentre = tmpSolid.MassProperties.Centroid.Z; // получаем нужную координату
  6.   tmpSolid.Dispose();
  7.   acRegion.Dispose();
  8.  
Но в любом случае, спасибо за советы!