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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Запустить функцию по кнопке на палитре

Запустить функцию по кнопке на палитре

Ответ
Поиск в этой теме
Непрочитано 12.10.2020, 11:25 #1
Запустить функцию по кнопке на палитре
olga87
 
Регистрация: 28.05.2007
Сообщений: 142

Здравствуйте Уважаемые программисты!

У меня есть кнопка на палитре (toolpalette), нажимая на которую нужно выполнить:
Код:
[Выделить все]
^C^C(if (= C:LayIns nil) (load "LayIns"));(LayIns "c:\\1.dwt" "А4");
Если я сама вставляю в командную строку
Код:
[Выделить все]
(LayIns "c:\\1.dwt" "А4")
и нажимаю Enter - то работает, НО не работает с кнопки на палитре, видимо мешают пробелы в команде.
Подскажите пожалуйста, как исправить код
Код:
[Выделить все]
^C^C(if (= C:LayIns nil) (load "LayIns"));(LayIns "c:\\1.dwt" "А4");
?
Заранее спасибо!
Просмотров: 1038
 
Непрочитано 12.10.2020, 12:23
#2
koMon


 
Регистрация: 26.09.2017
Сообщений: 843


может на кнопку нужно вешать лисп конструкцию
^C^C(if (= C:LayIns nil) (load "LayIns") (LayIns "c:\\1.dwt" "А4"))
koMon вне форума  
 
Непрочитано 12.10.2020, 12:41
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 37,817


koMon, странная немного у тебя конструкция, как мне кажется.
Я бы подумал о том, чтобы загружать исходник другими методами, а в палитрах просто вызывать соответствующие функции.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.10.2020, 14:53
#4
koMon


 
Регистрация: 26.09.2017
Сообщений: 843


Кулик Алексей aka kpblc,
точно!
видимо правильнее будет так:
^C^C(progn (if (= C:LayIns nil) (load "LayIns")) (LayIns "c:\\1.dwt" "А4"))
но, как ты любишь подписывать, без проверки)
ну а загружать исходник, как мне кажется можно и из палитры, и по-другому...

----- добавлено через ~23 ч. -----
skkkk, что это было?!
koMon вне форума  
 
Непрочитано 13.10.2020, 14:20
#5
skkkk


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


Цитата:
Сообщение от olga87 Посмотреть сообщение
^C^C(if (= C:LayIns nil) (load "LayIns"));(LayIns "c:\\1.dwt" "А4");
olga87, не могу понять: LayIns - это функция или команда? Вроде проверка идет на команду (C:LayIns), а запускается функция (LayIns) с двумя аргументами.

Вообще, если вспомнить шпаргалку по использованию лиспа, конструкция должна выглядеть как-то так:
Код:
[Выделить все]
^C^C(if (null C:OFF2)(load "off2"));OFF2;
Аналогичным будет:
Код:
[Выделить все]
^C^C(if (null C:OFF2)(load "off2"));(C:OFF2);
Конструкция (= C:LayIns nil) равнозначна (null C:LayIns)
Поскольку кода нет, придется погадать.
Цитата:
Сообщение от olga87 Посмотреть сообщение
Если я сама вставляю в командную строку


Код:
[Выделить все]
(LayIns "c:\\1.dwt" "А4")
и нажимаю Enter - то работает, НО не работает с кнопки на палитре, видимо мешают пробелы в команде.

А если на палитру повесить просто эту строчку, обеспечив как-то иначе загрузку лиспа, будет работать?
Код:
[Выделить все]
(LayIns "c:\\1.dwt" "А4")
----- добавлено через ~1 мин. -----
Цитата:
Сообщение от koMon Посмотреть сообщение
skkkk, что это было?!
Что-что? Фигню написал
skkkk на форуме  
 
Непрочитано 15.10.2020, 16:43
#6
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 230


Как насчет заменить "\\" на "/" ?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 20.10.2020, 16:39
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,883
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Как насчет заменить "\\" на "/" ?
Так и нужно делать!!!
Миниатюры
Нажмите на изображение для увеличения
Название: pal.png
Просмотров: 35
Размер:	106.3 Кб
ID:	231178  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Запустить функцию по кнопке на палитре

Реверс. Автоматическая пакетная печать множества рамок (форматов) из пространства модели и листов
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA AUTOCAD как запустить функцию из другого файла ".dvb"? Vadim_EC Программирование 12 28.05.2020 08:54
Как из ObjectArx (.Net) вызвать функцию Лисп, передать в нее параметры и получить измененные параметры назад? nickname2019 Программирование 9 16.04.2020 06:16
Как запустить из лиспа функцию, определенную в другом файле как C:FUNK? mkung LISP 4 29.12.2014 12:48
Изображение блока неотображается в палитре инструментов olish AutoCAD 4 24.05.2011 15:54
Как выполнить функцию переданную в качестве аргумента. Дима_ Программирование 4 08.12.2009 17:18