| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.02.2008, 21:45 | #1 | |
AutoCad и Delphi. Добавление точки
Регистрация: 25.02.2008
Сообщений: 9
|
||
Просмотров: 6270
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Пост отделил.
--- Если посмотреть справку AutoCAD'a, становится видно, что: 1. Добавлять точку в приложение нельзя. Ее можно добавлять в пространство (модели, листа, блока...) 2. Для добавления используется именно Variant. Я не знаю Delphi, но в VB это выглядит примерно так (для варианта позднего связывания; для раннего связывания надо импортировать библиотеки и в результате зависеть от версии): Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.02.2008
Сообщений: 9
|
Я получил доступ не к Application, а именно к ModelSpace.
Всё дело в том, что эту строку - "Dim coord(2) As Double" - я не знаю как написать в Delphi. Пробовал создавать в Delphi переменную Variant, в которой хранится этот массив, но тоже безрезультатно. Ведь Dim - это не метод объекта, а внутренний оператор VBA. Вот в этом-то и сложнось, как получить доступ к операторам VBA из Delphi. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Здесь сообщение Александра (выделено мной). Может поможет
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
см.системные переменные pdmode и pdsize
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Если получены указатели на текущий документ, то для VB будет вроде бы так:
PointerActiveDocument.SetValue(<Имя переменной>, <Значение>)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Тебе. Я предположил, что тебе надо установить системные переменные. А тебе что, точку надо добавить? Так принципиально-то ничего не меняется по сравнению с #2...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.02.2008
Сообщений: 9
|
Кулик Алексей aka kpblc
Получил доступ к ActiveDocument, вызвал SetVariable('PdMode',2), и AutoCad выдал ошибку "Error Setting System Variable". Думал, что в имени переменной с регистром не так, но метод GetVariable работает, поэтому не знаю в чём дело... |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Я думаю здесь ShaggyDoc может внести ясность. Как вариант, в ActiveDocument есть метод Sendcommand. Пошли туда строчку "'_.PDMODE\n2\n", где символ \n - перевод каретки (ENTER) или ASCII 10
*** Добавлено Может надо не 'PdMode', а "Pdmode" ?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
А вот какую я нарыл инфу:
Я никак не мог правильно передать getpoint-у координаты точки из VBScript. Хоть и похоже на VBA, но не VBA. Тогда я сдеал хитрость, запустил вот это и посмотрел, что вернется в Автокад и вот что я увидел: Это программа, которая на VBScript-е формирует координаты точки и передает их Код:
(vlax-invoke-method svr "eval" "test3") Возвращает #<safearray...> распаковываем (vlax-safearray->list (vlax-invoke-method svr "eval" "test3")) видим (#<variant 2 100> #<variant 2 200> #<variant 2 0>) Вот оно его есть и не хочет |
||||
|
||||
Да, или все крутые программисты данного форума решили меня байкотировать и взяли подписку друг с друга о не участии в темах с моим присутствием, или я стал задавать вопросы выше их уровня компетенции.
Чую заговор. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
> VVA: В Delphi, по-моему, строки указываются одиночными кавычками.
> Зойберг: А если в коде сделать doc.GetVariable('pdmode') да и проанализировать возвращаемое значение? Чего там получится? > Supermax : Лично для меня - уже да, выше уровня квалификации (в сторону: да и понимания, зачем все так усложнять - тоже ) Чур, без обид! --- Добавлено: > Зойберг: цитата из справки по методу SetVariable: Цитата:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 28.02.2008 в 23:33. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск программы из AutoCADа | kminas | Программирование | 19 | 15.06.2012 13:42 |
О создании темы (раздела) для новичков в AutoCAD. | Profan | Разное | 110 | 23.10.2008 10:01 |
Литература по программированию на Delphi для AutoCAD | Sokolru | Программирование | 6 | 30.03.2006 08:12 |
Delphi и AutoCAD | Kulon | Программирование | 1 | 14.07.2005 15:42 |
Delphi and AutoCAD | John Ch. | Программирование | 4 | 31.01.2004 13:58 |