(ExtractContour) Извлечь горизонталь из поверхности. Civil 3D

Автор Тема: (ExtractContour) Извлечь горизонталь из поверхности. Civil 3D  (Прочитано 316 раз)

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

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

  • ADN Club
  • ***
  • Сообщений: 192
  • Карма: 15
  • Геодезист
  • Skype: Geobuilder
Всем привет,

Нужно извлечь из поверхности горизонталь. Нашёл что метод такой есть ExtractContour
Код - Auto/Visual Lisp [Выбрать]
  1. (setq obj (vlax-ename->vla-object(car(entsel ))))
  2. (vlax-invoke-method obj 'ExtractContour )
получил
Цитировать
Слишком мало фактических параметров
Нашёл тему http://adn-cis.org/forum/index.php?topic=1745.0
 в ней параметры
Код - C# [Выбрать]
  1.  var contours = (object[])ss.ExtractContour(
  2.                                                 AeccDisplayOrientation.aeccDisplayOrientationModel,
  3.                                                 AeccSurfaceFilterType.aeccSFMinorContours,
  4.                                                 double.MinValue,
  5.                                                 double.MaxValue);
Уже интереснее

Первый параметр понятно
1 - aeccDisplayOrientationPlan
2 - aeccDisplayOrientationModel
3 - aeccDisplayOrientationProfile
4 - aeccDisplayOrientationSection
думаю в нашем случае возьмём 1, уже был опыт с ExtractBorder там 1 до сих пор нормально работало :-)

Второй параметр не понятно, какой-то фильтр типов... значения не нашёл, что не подставлю, хоть 0, хоть "25" - не ругается, а на "aeccSFMinorContours" - ругается. Как ему написать что мне горизонтали(MinorContours) нужны не знаю :-(

Третий и четвёртый, вроде минимальное и максимальное значение.

Написал так
Код - Auto/Visual Lisp [Выбрать]
  1. (vlax-variant-value(vlax-invoke-method obj 'ExtractContour 1 1 -10.0 10.0))
  2.  
массив содержит nil :-(
Хотя поверхность отображает горизонтали в диапазоне от 0 до - 0,5

Думаю проблема во втором параметре, как его угадать?

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

  • Administrator
  • *****
  • Сообщений: 6815
  • Карма: 752
  • Рыцарь ObjectARX
  • Skype: rivilis
Второй параметр такой: http://docs.autodesk.com/CIV3D/2012/ENU/API_Reference_Guide/com/AeccXLandTypesLib__AeccSurfaceFilterType.htm
По логике он должен быть равен 2.
P.S.: Мне вот интересно долго ли ты еще будешь пытаться из лиспа работать с Civil 3D?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ***
  • Сообщений: 192
  • Карма: 15
  • Геодезист
  • Skype: Geobuilder
Спасибо Александр,
По логике он должен быть равен 2.
Методом научного тыка выяснил:
4 - MajorContours
5 - MinorContours
Но чтобы их извлечь, они должны отображаться. Т.е. теперь осталось научится создавать стиль  отображающий нужные мне горизонтали :-(

P.S.: Мне вот интересно долго ли ты еще будешь пытаться из лиспа работать с Civil 3D?
Чем владею, тем и пытаюсь. Я понимаю что к большинству функций и объектов Сивила из Lisp не добраться. И приятно удивляюсь, когда узнаю что к некоторым всё таки можно :-) Ни одна из моих попыток попробовать Net не увенчалась успехом.

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

  • ADN
  • *
  • Сообщений: 1235
  • Карма: 235
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
P.S.: Мне вот интересно долго ли ты еще будешь пытаться из лиспа работать с Civil 3D?
Дельное замечание, учитывая, что в .NET API куча методов для извлечения горизонталей. И им всё равно, включено их отображение в стиле или нет.

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

  • ADN
  • *
  • Сообщений: 1235
  • Карма: 235
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
Кстати, как ни странно, но всё гораздо печальнее, если нужно получить горизонтали из поверхности типа TinVolumeSurface. Почему-то именно для этого объекта в .NET нет ни одного метода получения горизонталей. Пару вариантов решения вопроса описано тут: https://forums.autodesk.com/t5/autocad-civil-3d-customization/intersection-lines-between-two-surfaces/td-p/4522349
P.S. Может быть, стоит перенести эту тему в ветку по Civil?

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

  • Administrator
  • *****
  • Сообщений: 6815
  • Карма: 752
  • Рыцарь ObjectARX
  • Skype: rivilis
P.S. Может быть, стоит перенести эту тему в ветку по Civil?
Я тоже так подумал и сделал. :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение