|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Подключение COM-сервера к LISP
Регистрация: 13.03.2011
Сообщений: 12
|
||
Просмотров: 7700
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Телепатов здесь нет - больного на стол.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Когда COM-сервер создан в DLL и зарегистрирован в системе, из LISP с ним работают примерно так, как показано в примере: Код:
Например (_ru-sys-info "GetLocalComputerName") или (_ru-sys-info "GetWindowsSystemFolder"). В более сложных случаях COM-серверу передаются параметры путем установки его свойств. |
|||
![]() |
|
||||
Регистрация: 13.03.2011
Сообщений: 12
|
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Если так то можно и без COM сервера обойтись - просто exe'шник запустить - особенно если параметров передавать не нужно - то ихмо данный метод предпочтительней т.к. избавляет то необходимости регистрировать COM.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
![]()
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Может расскроете секрет - что нужно сделать-то - если конечно это не государственная тайна - а пока у меня Ваши ответы только удивление с улыбкой вызывают (без обид).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 13.03.2011
Сообщений: 12
|
надо написать фукнцию для автокада на делфи,которая работала бы с объектами автокада. т.е. надо,работая в автокаде, выбрать объект,ну например линию, и вызвать функцию из делфи,которая расставляет определенным образом на этой линии точки. Т.е. надо связать акад и делфи,"автокад не поддерживает делфи в качестве стандарта для разработки приложений...технология Activex, внедренная в систему автокад, делает его доступным для программ,созданных в средах, использующих сом-технологии...". Чтобы связать делфи и акад существует несколько способов:
1-использование библиотеки типов (импортируем библиотеку AutoCAD в Delphi) 2-разработка приложения-сервера (как раз то,что интересует): создаем СОМ-сервер,затем подключаем СОМ-сервер к LISP и из автокада уже можем вызывать программу лисп,которая вызывает сервер. надеюсь,так попонятней)) |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
какой из вышеуказанных способов Вы не выберите - без вызова автокадовких функций Вам не обойтись. Данная задача прекрасно решается обоими методами - либо ком - серверу передаете vla (он-же com) объект линии, либо вызываете программу которая смотрит текущий запущенный автокад - смотрит выбранную линию и используя com сервер автокада - делает с ней все что угодно. Что конкретно у Вас не получается (написать функцию, вызвать ее)?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 13.03.2011
Сообщений: 12
|
не получается вызвать ее.
ну я правильно понимаю: есть возможность вызова сом-сервера через лисп из автокада?или так лучше не делать? p.s. причем функции на сервере надо передать некоторые значения,определяемые пользователем в интеррактивном режиме,например шаг,с которым будут расставляться точки. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Полная каша в голове, то ли у студентов, то ли у преподов.
Цитата:
Как делать COM-сервер в Delphi ("как раз то,что интересует") описано в книгах по Delphi. Как вызвать такой сервер из LISP я написал в #5. Но такому серверу не надо ставить задачу "вызвать функцию из делфи,которая расставляет определенным образом на этой линии точки". Delphi не умеет расставлять точки. Это умеет делать сам AutoCAD. Из программы на Delphi можно вызвать COM-сервер самого Автокада и попытаться что-то сделать его методами. Для выполнения из Delphi внутри Автокада какой-то LISP-функции имеется единственная возможность - SendCommand в командную строку. Или использовать объектные методы, но это уже не LISP. Принципиально имеются два способа совместной работы AutoCAD и Delphi: 1. Основное приложение сделано в Delphi и, при необходимости, обращается к методам AutoCAD. Это может быть программа, которая чего-то много делает внутри себя (обычно "вижуально-гуёво"), а в AutoCAD надо сделать какую-то вспомогательныю часть. Результаты расчетов, например, нарисовать. 2. Основное приложение работает внутри AutoCAD, делает что угодно, но, при необходимости, вызывает какие-то методы из COM-сервера, сделанного на Delphi. А у автора темы смесь ужей, ежей с добавлением проктолого-стоматологических методов лечения этой смесью. |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
(vlax-invoke-method (vlax-get-or-create-object "CadDSV.Starter") "TransfObj")
в acad20ххdoc.lsp должен быть (vl-load-com) З.Ы: Давно хотел спросить у умного народа вообще без СОМ функции *.dll запустить можно (очень хочется)?
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) | Red Nova | LISP | 5025 | 20.08.2025 22:52 |
LISP получить список установленных в системе (векторных) шрифтов или хотя бы узнать, установлен ли указанный | Ax3 | LISP | 9 | 08.02.2011 14:11 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
Запуск Lisp команды в новом документе | BlackHarp | LISP | 1 | 26.03.2009 23:06 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |