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

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

Нужно повесить лисп программу на кнопку

Ответ
Поиск в этой теме
Непрочитано 05.11.2009, 13:57 #1
Нужно повесить лисп программу на кнопку
Нитонисе
 
Регистрация: 05.11.2009
Сообщений: 4,360

Есть лисп-программа, загружать ее постоянно через меню Сервис-Приложения постоянно не удобно. Хотелось бы повесить ее на какую нибудь кнопку, размещенную на панелях инструментов. Как это можно сделать?
И второй вопрос. Тоже на кнопку хотелось бы повесить запуск из автокада другого приложения.

Добавлено.
С первым вопросом разобрался. Осталось выяснить как на кнопку повесить запуск другого приложения. Точнее сказать узнать какой командой это делается.

Добавлено.
Ну вот и со вторым вопросом разобрался) Спасибо)

Последний раз редактировалось Нитонисе, 05.11.2009 в 14:57.
Просмотров: 15747
 
Непрочитано 05.11.2009, 15:41
#2
VVA

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


Нитонисе, Приведи здесь решения, раз разобрался. Для потомков
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 05.11.2009, 19:56
1 | #3
Нитонисе


 
Регистрация: 05.11.2009
Сообщений: 4,360


Ну тогда расскажу)

Вешаю лисп-программу на кнопку.
Создаю файл acad.lsp, в котором определяю функцию, запускающую действия из моей лисп-программы. Эта функция вызывается по имени. Захожу в автокаде (2008) в меню "Адаптация", создаю там новую панель и новую команду. Прописываю макрос ^C^C(<имя функции>), где <имя функции> - это как раз название функции, определенной в файле acad.lsp. Далее выбираю для своей новой команды пиктограмму для кнопки и затаскиваю ее на свою панель инструментов.

Вешаю на кнопку запуск приложения из автокада.
Опять же в меню "Адаптация" создаю новую команду. Макрос выглядит так - ^C^C(startapp "C://Program Files//AutoCAD 2008//MyProg.exe"), тутуказан путь к нужной мне программе MyProg.exe, которую я поместил в директории автокада. Снова же подбираю подходящую пиктограмму для кнопки и размещаю ее на моей панели инструментов.

Кажется ничего не забыл)
Нитонисе вне форума  
 
Непрочитано 20.04.2017, 13:53
#4
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Добрый день. прошу помочь в следующем:
Пытаюсь повесить на кнопку лисп.
Название команды XA$ (в лиспе запись: defun C:XA$)
Автокад 2017
Lisp команды подгружены
открываю панель: "Адаптация пользовательского интерфейса"
сознаю новую команду
прописываю макрос: ^C^C(XA$)
вешаю на свою панель
кликаю на кнопку (пиктограмму) и получаю в командной строке запись "(XA"
переписываю макрос: ^C^CXA$
кликаю на кнопку (пиктограмму) и получаю в командной строке запись "XA"
переписываю макрос: ^C^CXAdollar
кликаю на кнопку (пиктограмму) и получаю в командной строке запись "Команда: XAdollar Неизвестная команда "XADOLLAR". Для вызова справки нажмите F1."
переписываю макрос: ^C^C_XA$
кликаю на кнопку (пиктограмму) и получаю в командной строке запись "_XA"
Подскажите, плиз, правильную маску для записи макроса, перепробовал кучу всего, править лисп - не вариант либо данной команде повесить дополнительную команду, если вся проблема в спец символе "$"

Учитывая что LISPы подгружены, выполнил проверку по команде без спецсимвола
прописал макрос ^C^CMA, где команда в LISP "MA" - и все работает

Последний раз редактировалось d.mOnII, 20.04.2017 в 14:04. Причина: уточнение о подгруженных LISP
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 14:01
#5
Кулик Алексей aka kpblc
Moderator

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


А лисп точно загружен? Вызов с ком.строки срабатывает? Если оба ответа "да", попробуй так:
^C^Cxa$;
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2017, 14:12
#6
limonuwka


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


что бы не создавать нового..
есть ли возможность назначить команду макросу?
создал макрос очистки (очистка от прокси+пурдж+аудит), повесил все на кнопку, все работает, я счастлив, но вот как ее с клавиатуры запустить?
limonuwka вне форума  
 
Непрочитано 20.04.2017, 14:18
#7
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А лисп точно загружен? Вызов с ком.строки срабатывает? Если оба ответа "да", попробуй так:
^C^Cxa$;
Алексей, да, все подгружено, с ком строки работает.
переписываю макрос по Вашей маске: ^C^CXA$;
кликаю на кнопку (пиктограмму) и получаю в командной строке запись "XA"
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 14:20
1 | #8
Кулик Алексей aka kpblc
Moderator

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


d.mOnII, код приведи.
limonuwka, через лисп определяешь свою команду и ее вызываешь. Самое простое решение
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2017, 14:24
#9
limonuwka


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Самое простое решение
логично, спасибо!
limonuwka вне форума  
 
Непрочитано 20.04.2017, 14:32
#10
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


при вводе в ком. строке нажимаем ENTER затем еще раз ENTER открывается диалоговое окно для подгрузки внешней ссылки
работает при условии:
1. файл сохранен в параллельной папке
2. в файле присутствует сервисный слой ZS_STDL_XREF
3. файл ссылки расположен в папке xrefs (в том же корневом каталоге)

Последний раз редактировалось d.mOnII, 20.04.2017 в 22:39.
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 14:53
#11
Кулик Алексей aka kpblc
Moderator

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


d.mOnII, а у тебя слои-то есть в файле? Именно те, которые нужны? Посмотри, что тебе ACAD в ком.строке говорит (клавиша F2). Качество кода не оцениваю. Так, вроде бы, должен быть рабочий
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2017, 15:10
#12
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Алексей, еще раз)))
с командной строки все работает на ура
т.е. я ввожу команду ручками и все ок.
Но когда вешаю на кнопку, акад не хавает спецсимвол "$"
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 15:27
#13
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


А убрать (заменить) этот спецсимвол разве нельзя?
Profan вне форума  
 
Непрочитано 20.04.2017, 15:29
#14
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
А убрать (заменить) этот спецсимвол разве нельзя?

Цитата:
Сообщение от d.mOnII Посмотреть сообщение
править лисп - не вариант либо данной команде повесить дополнительную команду, если вся проблема в спец символе "$"
2 Profan - можно прежде чем писать - прочитать?
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 15:44
#15
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Действительно, я не читал твою исповедь в #4, я проглядел код и увидел, что символ $ упоминается только в имени функции (команды). А раз так, то и заменить его. Да еще и локализовать программу можно. Но если нельзя, тогда на фиг.
P.S. Почему это Profan - 2? А не 522?
Profan вне форума  
 
Непрочитано 20.04.2017, 15:48
#16
baksconstructor


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


https://dwg.ru/pub/6
$, $M= Специальный символ, служащий для ввода выражений, написанных на языке DIESEL.
baksconstructor вне форума  
 
Непрочитано 20.04.2017, 15:58
#17
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
 (defun c:call-xa () (c:xa$))
Код:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2017, 17:09
#18
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Алексей, уточните, пожалуйста, это в моем коде необходимо переписать данную часть?
тогда получается, я смогу в командной строке вводить XA$, а на кнопку повесить макрос ^C^Ccall-xa; ?
d.mOnII вне форума  
 
Непрочитано 20.04.2017, 17:17
#19
Кулик Алексей aka kpblc
Moderator

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


Первая часть определяет новую команду, поскольку менять название команды нельзя. Вызывается в меню именно "новая", вот и все.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2017, 17:19
#20
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Кад опять пишет: "Неизвестная команда "CALL-XA". Для вызова справки нажмите F1."
тем не менее с командной строки по-прежнему работает на ура XA$
d.mOnII вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужно повесить лисп программу на кнопку

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как на кнопку клавиатуры повесить выполнение команды kol AutoCAD 12 14.09.2016 10:30
Повесить Esc на боковую кнопку мыши BM60 AutoCAD 37 18.01.2012 00:14
Повесить свою ПСК на кнопку postbudka AutoCAD 6 08.02.2009 10:54
Как на самодельную кнопку повесить комбинацию клавиш? Neznayka AutoCAD 5 17.09.2005 13:02
Как повесить на кнопку Включение определенного набора слоев ilka_t AutoCAD 6 16.06.2005 15:50