•  
CESCogito, ergo sum
Мыслю, следовательно, существую
  •  
Новости сайта:

2023-08-06: Программа CES-Топо обновлена до версии 1.25.0
Новые модули Изменения
  • CES-Утилиты→Работа с блоками→Проставить блоки по полилинии - добавлены опции: проставить случайно, повернуть блок по полилинии читабельно, цвет и слой по полилинии
Работа над ошибками
  • Некоторые подпримитивы некоторых блоков имели цвет 'по слою' - исправлено на 'по блоку'.



2023-06-27: Обновлены программы CES-Топо и CES-Профиль
Исправлена ошибка, приводящая к сообщению "Ошибка Automation. Невозможно установить свойство в развернутом состоянии" на некоторых компьютерах при построении триангуляции


2023-04-04: Программа CES-Топо обновлена до версии 1.24.1
Новые модули Изменения Работа над ошибками

Все новости...



2014-04-24: Lisp и Autocad Civil 3D: как получить отметку Z с поверхности Civil.

Замечательная команда
(vlax-dump-object(vlax-ename->vla-object (car(entsel)))T)
позволяет исследовать методы и свойства объектов. Применив данную команду к поверхности Civil, среди прочих видим метод с интересным названием: FindElevationAtXY. Опробовав, убеждаемся в том что это то что нам нужно. Однако, есть незадача: метод возвращает ошибку и прерывает работу Lisp-приложения, если координаты точки, отметку Z которой нужно узнать, находятся за пределами поверхности. Поэтому вызов метода нужно заключить в обработчик ошибок. И так, в окончательном виде функция для нахождения отметки Z по поверхности Civil и координатам XY примет вид:
(defun SURFACE_FindElevationAtXY (obj p / result)
(setq result (vl-catch-all-apply(function(lambda()(vlax-invoke-method (vlax-ename->vla-object obj) "FindElevationAtXY" (car p) (cadr p))))))
(if(vl-catch-all-error-p result)
(setq result 0.0)
); end if
result
); end defun
PS. Перед вызовом вышеописанной функции, равно как и перед вызовом vlax-dump-object... необходимо загрузить поддержку ActiveX командой
(vl-load-com)
Просмотров: 3759
Вернуться назад


  •  

Добавить комментарий

Ваше имя:

Ваше сообщение:



Для отправки сообщения введите код, который изображен на картинке:

Если Вы не можете прочитать код, обновите страницу.

Рейтинг@Mail.ru

При использовании материалов сайта ссылка на первоисточник обязательна!
Разработка сайта: cj_lex