| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Связь ЛИСП-программы с внешним приложением и организация совместной работы

Связь ЛИСП-программы с внешним приложением и организация совместной работы

Ответ
Поиск в этой теме
Непрочитано 02.04.2016, 10:46 #1
Связь ЛИСП-программы с внешним приложением и организация совместной работы
Сет
 
Регистрация: 19.11.2014
Сообщений: 2,435

Можно ли реализовать следующий алгоритм взаимодействия ЛИСП-программы с внешним приложением и если можно, то как?

1. Активируем ЛИСП-программу.
2. ЛИСП запускает внешнее приложение и ожидает его завершения.
3. Внутри внешнего приложения производятся некоторые действия, результат которых сохраняется во временном текстовом файле и приложение закрывается.
4. ЛИСП продолжает свою работу, обрабатывая текстовый файл, созданный на предыдущем шагу.
Просмотров: 2305
 
Непрочитано 02.04.2016, 10:49
1 | #2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


гугли dos_exewait
gomer вне форума  
 
Непрочитано 02.04.2016, 11:51
#3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


зачем тут lisp и вообще AutoCAD?
trir вне форума  
 
Автор темы   Непрочитано 02.04.2016, 13:03
#4
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Пока остановился на варианте запуска внешнего приложения функцией startapp и постановкой лиспа на паузу запросом getpoint. Корявенько, но пойдет. Появился другой вопрос. Нужно сделать следующее:

Например есть блок с атрибутом.

1. По двойному клику на блоке сохраняем значения атрибута во временном текстовом файле и запускаем внешнее приложение, которое считывает значение атрибута из текстового файла и помещает его в текстовое поле для редактирования.
2. Редактируем значение атрибута во внешнем приложении.
3. Закрываем внешнее приложение с сохранением значения атрибута во временном файле.
4. Лисп обрабатывает временный файл и изменяет значение атрибута выбранного блока.

Пока не могу понять как создать реактор, привязанный к экземпляру блока, что бы по двойному клику на этом блоке запускалась функция, обрабатывающая событие?
Сет вне форума  
 
Непрочитано 02.04.2016, 13:09
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


что за внешнее приложение?
trir вне форума  
 
Автор темы   Непрочитано 02.04.2016, 13:42
#6
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Цитата:
Сообщение от trir Посмотреть сообщение
что за внешнее приложение?
Внешнее приложение собственной разработки.
Сет вне форума  
 
Непрочитано 02.04.2016, 13:55
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


для того чтоб редактировать атрибуты не нужны внешние приложения
gomer вне форума  
 
Автор темы   Непрочитано 02.04.2016, 14:22
#8
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Цитата:
Сообщение от gomer Посмотреть сообщение
для того чтоб редактировать атрибуты не нужны внешние приложения
В моем случае - нужны.
Сет вне форума  
 
Непрочитано 02.04.2016, 14:34
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Внешнее приложение собственной разработки.
ну так сделайте его плагином к AutoCAD'у
trir вне форума  
 
Автор темы   Непрочитано 02.04.2016, 15:05
#10
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Цитата:
Сообщение от trir Посмотреть сообщение
ну так сделайте его плагином к AutoCAD'у
Это сложно для понимания. Я бы хотел организовать взаимодействие через временный текстовый файл. Задача, естественно, сложнее, чем я описал. Я ее упростил для того, чтобы мой вопрос был более понятен.
Сет вне форума  
 
Непрочитано 02.04.2016, 15:18
#11
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Это сложно для понимания.
Что сложно?

На каком языке написано приложение?
trir вне форума  
 
Непрочитано 02.04.2016, 15:23
#12
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Вполне возможный способ работы. Иногда он даже предпочтительней, т.к. позволяет использовать любые приложения, вообще не знающие о существовании Автокада и не имеющие собственной COM-модели.

Но мешают козни Аутодеск - видимо они специально не делают для функции startup аргумент запуска в "модальном" режиме, т.е. ждать, пока внешнее приложение закроется.

Выхода два:

1. Использовать функцию dos_exewait из DOSLib. Но здесь придется постоянно обновлять DOSLib и загружать её. Впрочем, библиотека того стоит, там много полезного.

2. Написать свой небольшой COM-сервер, с собственной аналогичной функцией. Это ровно одна строчка для вызова функции WinAPI.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 02.04.2016, 16:08
#13
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Цитата:
Сообщение от trir Посмотреть сообщение
Что сложно?
Все, что касается собственных плагинов под автокад.

Цитата:
Сообщение от trir Посмотреть сообщение
На каком языке написано приложение?
С++

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Выхода два
Каких выхода? Возможность запуска внешнего приложения в модальном режиме? С этим более менее понятно. Меня сейчас другое интересует:

Цитата:
Сообщение от Сет Посмотреть сообщение
Пока не могу понять как создать реактор, привязанный к экземпляру блока, что бы по двойному клику на этом блоке запускалась функция, обрабатывающая событие?
Сет вне форума  
 
Непрочитано 02.04.2016, 16:10
#14
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


ObjectARX
а NET API - вообще элементарно и очень удобно
trir вне форума  
 
Непрочитано 02.04.2016, 16:23
#15
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Раньше тоже так делал.
Цитата:
Пока остановился на варианте запуска внешнего приложения функцией startapp и постановкой лиспа на паузу запросом getpoint. Корявенько, но пойдет. Появился другой вопрос. Нужно сделать следующее:
Теперь использую OpenDCL

Цитата:
1. Использовать функцию dos_exewait из DOSLib. Но здесь придется постоянно обновлять DOSLib и загружать её. Впрочем, библиотека того стоит, там много полезного.
спасибо за наводочку.
Sleekka вне форума  
 
Автор темы   Непрочитано 02.04.2016, 16:44
#16
Сет


 
Регистрация: 19.11.2014
Сообщений: 2,435


Цитата:
Сообщение от Sleekka Посмотреть сообщение
Теперь использую OpenDCL
Чем это может помочь в моей задаче, если в двух словах?
Сет вне форума  
 
Непрочитано 02.04.2016, 16:54
#17
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Цитата:
Сообщение от Сет Посмотреть сообщение
Чем это может помочь в моей задаче, если в двух словах?
если процесс инициируется в каде с ожиданием завершения, то это 99% интерфейс, иначе бы спокойно сделали экспорт, потом работу, потом импорт и вопроса бы не было.
Sleekka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Связь ЛИСП-программы с внешним приложением и организация совместной работы

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Авиация: история, техника, экономика, инфраструктура. T-Yoke Разное 5114 05.01.2015 15:55
Кто понесет уголовную (или прочую) ответственность в случае разрушиния здания/сооружения? VAV Прочее. Архитектура и строительство 317 18.12.2012 03:13
Разрешение на разработку ППРк allexandk Технология и организация строительства 4 20.03.2012 17:50
Что именно нужно относить к СМР? Mylene Технология и организация строительства 6 29.08.2011 11:50