|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
Поиск в этой теме |
15.04.2020, 18:15 | #1 | |
Как из ObjectArx (.Net) вызвать функцию Лисп, передать в нее параметры и получить измененные параметры назад?
Регистрация: 18.11.2019
Сообщений: 1,518
|
||
Просмотров: 3044
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
|
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,518
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835
|
Передать в качестве строки полный путь файла, потом его же прочитать и работать дальше - если невозможно переписать lisp на NET (в чем лично я сомневаюсь).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,518
|
Цитата:
Я спросил про Лисп, так как Лисп я вообще не знаю, но вижу, что у него есть устойчивое сообщество. Не факт, что обеспечение возможности вызова внешней функции именно лиспа будет для моего скрипта полезной функцией, на реализацию которой нужно потратить силы. (Говорят, что лисп не собираются дальше развивать.) Варианты: 1. Я могу установить правило вызова только внешних exe файлов с передачей/возвращением параметров как указано в теме, а внешняя exe -программа может взаимодействовать с Autocad через интерфейс COM сервера (что суть тормоза при взаимодействии с акадом). Но это просто. Достаточно вызвать exe файл и дать в командной сроке путь к файлу с исходными данными - а юзер пусть сам пишет этот exe-файл (питон ему в помощь). 2. Я могу попытаться организовать вызов более "родных" автокаду технологий (lisp или .net) через создание стандарта некоторой функции с определенным набором параметров, которая бы обеспечивала прием-передачу параметров при вызове внешнего файла с кодом (lisp, net). В этом случае вызывается не exe, а исполняемый код. В этом случае, пожалуй, наиболее перспективным вижу тот же вызов функции с передачей в нее только пути к текстовому файлу (как ты предложил), в который она после работы также пишет свои параметры в определенном формате (подобно xml). Вопрос как к профессионалу лиспа: стоит ли дать возможность вызова именно лисп-функций? или это мертвая технология? P.S. Ривилис снизу отписался , что это просто. Значит просто. Разберусь, отпишусь. Это неделя работы. Последний раз редактировалось nickname2019, 15.04.2020 в 23:44. |
|||
|
||||
Цитата:
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Цитата:
----- добавлено через ~5 мин. ----- Ты всё правильно написал. Я просто глянул на первый пост темы, в котором приведен мой код, написанный для AutoCAD 2007, когда еще не было Application.Invoke, и дальше уже тему не смотрел.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,518
|
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Делали какой-то exe, в котором было то, что невозможно в Автолисп - например визуальная работа с базой данных. В exe передавался единственный параметр - имя INI-файла, в котором можно было записать любое количество "заданий". Там могло быть имя файла базы данных, имя таблицы и даже SQL-запрос к БД. В этот же INI записывался результат, который читал Lisp. Здесь главное а) Уметь запускать EXE "модально" б) Научить Lisp читать INI. И даже сейчас такая связка применяется в случае работы с другими приложениями, не имеющими возможностей работы через COM. Например программа составления спецификаций оборудования может обратиться к Автокаду для вычисления "длин" или "штук". И наоборот. А может это будет совсем не Автокад, а какая-то другая программа. Если же работать только с AutoCAD то нет никаких причин отказываться от его современных возможностей. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# .NET Как получить координаты курсора? | Shraybicus | .NET | 18 | 13.10.2011 21:25 |
LISP. Как вызвать VBA и передать в нее VLA-OBJECT IXMLDOMDocument3? | LastGraff | LISP | 4 | 12.08.2011 15:41 |
Получить блок программно, не используя функцию entsel | Nextk | Программирование | 23 | 16.12.2010 15:43 |
Как правильно вызвать функцию? | paradoxvaha | Программирование | 7 | 09.07.2008 16:25 |
как получить параметры бумаги принтеров? | ASLYS | Программирование | 1 | 21.04.2008 19:04 |