Как определить пикет пересечки на виде профиля?

Автор Тема: Как определить пикет пересечки на виде профиля?  (Прочитано 6695 раз)

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

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Добрый день
Подскажите пожалуйста, как определить пикет пересечки на виде профиля?

Т.е. труба отображена на виде профиля эллипсом, как получить пикет это эллипса?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Такая простая на первый взгляд задача, но простого решения я для нее не нашел.
Самое простое было бы - определить координаты объекта, которым отображается "пересечка" на виде профиля и вычислить нужные данные с помощью метода ProfileView.FindStationAndElevationAtXY. Но объект, которым нарисована "пересечка" - это ProfileViewPart. Он единственный для всех видов профилей, на котором отображается наша часть (на мой взгляд - это один из самых серьезных недостатков трубопроводной модели Civil). Соответственно, вытащить геометрию для конкретного вида профиля из этого объекта совершенно невозможно.
Поэтому, работает только такой вариант: вычисление точки пересечения трубы и трассы вида профиля в модели а потом в точке определить пикетаж трассы. Как это сделать - тут, наверное, возможны варианты. Я использовал методы Pipe.IntersectWith и Alignment.StationOffset.

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Pipe Network parts on Profile View

Собственно Augusto Goncalves осуществляет поддержку Civil 3D по Subscription.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Что-то не нравится мне это решение. Одна и та же часть может отображаться на нескольких видах профилей, это раз. Какие границы объекта в этом случае определятся вот тут? Extents3d ext = partPV.GeometricExtents;Второе - даже если она отображается на одном виде профиля, определять точку пересечки как середину Extents объекта - неправильно. А если стиль настроен на отображение стенок трубы вдоль трассы, где покажет пересечку?
Думаю, для частного случая годится, а в общем - нет.
P.S. Способ, описанный мной во втором сообщении уже опробован (у меня в библиотеке живет второй год) и ни разу не давал осечек. Так что, рекомендую все-же его.