Как получить все пикеты у трассы с координатами?

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

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

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

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

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

или можно как то по другому получить углы поворотов трассы?
« Последнее редактирование: 11-09-2014, 12:48:06 от Doublefish »

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Если я правильно понял вопрос, то Вам нужно смотреть метод Alignment.GetStationSet.

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Код - C# [Выбрать]
  1. Station[] myStations = oAlignment.GetStationSet(StationTypes.All);
  2. foreach (Station myStation in myStations)
  3. {
  4.     ed.WriteMessage("Station {0} is type {1} and at {2}\n", myStation.RawStation, myStation.StationType.ToString(), myStation.Location.ToString());
  5. }

Спасибо, а случайно чтобы получить углы нету никакого метода?
« Последнее редактирование: 11-09-2014, 15:39:26 от Александр Ривилис »

Отмечено как Решение Александр Ривилис 07-02-2019, 14:08:33

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Насколько я знаю, напрямую из трассы углы не получить.
Но это не должно быть проблемой, если известны 2D координаты точек геометрии трассы ;)
Как один из вариантов:
Код - C# [Выбрать]
  1.         /// <summary>
  2.         /// Вычисление угла по трем точкам
  3.         /// </summary>
  4.         /// <param name="pt1">Первая точка</param>
  5.         /// <param name="pt2">Вторая точка (вершина угла)</param>
  6.         /// <param name="pt3">Третья точка</param>
  7.         /// <returns></returns>
  8.         public static double GetAngle(Point2d pt1, Point2d pt2, Point2d pt3)
  9.         {
  10.             Vector2d vect1 = GetVector(pt1, pt2), vect2 = GetVector(pt2, pt3);
  11.             return vect1.GetAngleTo(vect2);
  12.         }
« Последнее редактирование: 11-09-2014, 14:29:22 от Загорулькин Дмитрий »