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

ADN Club => Civil 3D API => Тема начата: Алексей (IdeaSoft) от 04-04-2019, 19:09:11

Название: Получить из поверхности tin линии горизонталей
Отправлено: Алексей (IdeaSoft) от 04-04-2019, 19:09:11
Возможно ли с помощью Autocad API из объекта tin-поверхности получить линии горизонталей с шагом по вертикали, например, через 10 см?

Что бы в итоге потом получить набор полилинией.
Название: Re: Получить из поверхности tin линии горизонталей
Отправлено: Алексей Терно от 04-04-2019, 19:20:26
Можно. Для этого есть 6 перегрузок функции TinSurface.ExtractContours.
Например:
Код - C# [Выбрать]
  1. ObjectIdCollection ExtractContours(
  2.         double lowElev,
  3.         double highElev,
  4.         double interval
  5. )

Вот пример из справки:
Код - C# [Выбрать]
  1. // Extract contours and print information about them:
  2. ObjectIdCollection contours;
  3. double contourInterval = 50.0;
  4. contours = surface.ExtractContours(contourInterval);
  5. write("# of extracted contours: " + contours.Count + "\n");
  6. int totalVertices = 0;
  7. for (int i = 0; i < contours.Count; i++)
  8. {
  9.     ObjectId contourId = contours[i];
  10.  
  11.     // Contours are lightweight Polyline objects:
  12.     Polyline contour = contourId.GetObject(OpenMode.ForRead) as Polyline;
  13.     write(String.Format("Contour #{0} length:{1}, # of vertices:{2}\n", i, contour.Length, contour.NumberOfVertices));
  14.     totalVertices += contour.NumberOfVertices;
  15. }
Название: Re: Получить из поверхности tin линии горизонталей
Отправлено: Александр Ривилис от 05-04-2019, 12:45:03
Возможно ли с помощью Autocad API из объекта tin-поверхности получить линии горизонталей с шагом по вертикали, например, через 10 см?
С помощью AutoCAD API нельзя. Можно при помощи Civil 3d API.
Название: Re: Получить из поверхности tin линии горизонталей
Отправлено: Алексей (IdeaSoft) от 08-04-2019, 20:14:24
С помощью AutoCAD API нельзя. Можно при помощи Civil 3d API.
Конечно же API Civil. Списибо больше за ответы! Завтра попробую.
Название: Re: Получить из поверхности tin линии горизонталей
Отправлено: Алексей (IdeaSoft) от 09-04-2019, 14:19:42
В API CIVIL 2018 что-то не найду такую
функцию Surface.ExtractContours(..)
Может ее переименовали?
Название: Re: Получить из поверхности tin линии горизонталей
Отправлено: Алексей (IdeaSoft) от 09-04-2019, 14:24:32
А все разобрался. Это метод класса TinSurface