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

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

Из лиспа в команду.

Ответ
Поиск в этой теме
Непрочитано 25.07.2005, 13:43 #1
Из лиспа в команду.
Pave1
 
электроснабжение и автоматика
 
г. Пермь
Регистрация: 21.06.2005
Сообщений: 329

Лиспы - это хорошо, при помощи них можно сделать почти все что захочешь, но их (лиспы) надо загружать, потом открывать (чтобы посмотреть название команды), потом вводить команду.
Может быть можно из лиспа сделать иконку?
Даже не так, не может быть можно, а всяко можно, просто я не умею.
Научите пожалуйста.
Научите делать из лиспов иконки (чтобы нажал и всё. И подгружать ничего не надо . . .)
__________________
хочу все знать
Просмотров: 3276
 
Непрочитано 25.07.2005, 13:59
#2
Денис Флюстиков


 
Регистрация: 20.07.2005
СПб
Сообщений: 89


Поместить файлы LISP-программы в любой каталог, который видит ACAD (Support, Fonts,...), но лучше создать отдельную папку для приложений и прописать к ней путь:
Tools(Сервис) -> Options(Настройка) -> закладка Files(Файлы) -> добавить путь к созданной папке в Support File Search Part (Путь доступа к вспомогательным файлам)
Создать иконку:
Tools(Сервис) -> Customize(Адаптация) -> Toolbars...(Панели...) -> закладка Commands(Команды) ->User defined(Пользовательские) -> Button user defined (Пользовательская кнопка) перетащить на панель -> не закрывая Toolbars, двойной клик на созданной кнопке и в строчку макроса вставить:
^C^C^P(load "aaa.lsp"));bbb
, где aaa -LISP-программа, ввв -команда
(здесь же можно создать картинку к кнопке или же открыть и применить уже готовую)
Денис Флюстиков вне форума  
 
Непрочитано 25.07.2005, 14:02
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Ватсон, это элементарно. Для начала пишешь в Notepad *.mnu файл. На этом останавливаться не будем, поскольку тема не такая маленькая и описана в литературе.
Затем создаешь лисп-файл, но не с расширением *.lsp, а с расширением *.mnl причем название должно быть одноименным с файлом меню. В этом файле можно сохранить все лисп-программы которые будут автоматически загружаться в чертёж если загружен файл меню, а можно просто указать какие лисп-файлы грузить. К примеру (load "My_Lisp_File"). Естественно всё это включая *.bmp файлы с иконками должны быть указаны в "путях поддержки".

Денис, меня опередил.

Хочется сказать, что он описывает более простой, однако менее совершенный метод. Его недостаток в том что твоя панель инструментов, выпадающее меню и другие элементы оказываются в файле acad.mnc. При перезагрузке файла acad.mnu ты безвозвратно потеряешь все свои панельки. Второй недостаток в сложности пререноса панелек созданных таким способом на другие компьютеры.

Так что лучше пиши файлы меню, будешь всегда контролировать всё что у тебя есть и иметь резервную копию на случай "крушений".
{Smirnoff} вне форума  
 
Непрочитано 25.07.2005, 14:08
#4
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Один из надежных способов:

1. Делаешь свой файл меню (например mymenu.mnu), где прописываешь нужные тебе панели, кнопки, падающие меню, ну и естественно команды. Как его делать - писали много раз, можно подглядеть у "фирмачей"....
2. Делаешь к нему Лисп-файл. Имя то же, но расширение LSP (например mymenu.lsp). Прописываешь туда функции автозагрузки своих Лиспов. Используй функцию (autoload). Тоесть, определяешь, какой Лисп-файл должен загружаться при вызове каждой команды. Если в одном Лиспе определено несколько команд - то их можно запихнуть в одну функцию. Подробности в хелпе.
3. Рисуешь картинки к кнопкам.
4. Складываешь все это хозяйство в одну папку вместе со своими лиспами.
5. Загружаешь свое меню.

Вот тут начинает работать автоматика. АКАД сам находит лисповский mymenu и выполняет его. Но не загружает бегом все Лиспы, а всего лишь "узнает" что именно надо загрузить при вызове той или иной команды. При первом вызове команды нужный Лисп-файл будет загружен автоматически и затем выполнена команда.

Впрочем, есть другие варианты - можно все Лиспы загружать скопом (при открытии чертежа), однако, если их много, то дополнительная задержка возможно покажется малоприятной. Можно также непосредственно в макрос каждой кнопки прописать Лисп-выражение для проверки/загрузки нужных функций, в принципе то же самое, но больше писанины в макросах.

эх, пока писал, Fantomas и Денис опередили маленько

Нельзя доверять АКАДовской рисовалке кнопочных картинок. Она рассовывает иконки куда ей понравится. Если ей пользоваться то надо собирать в кучу и переименовывать только ручками. Впрочем, это подробно описано в книге Владимира Света.
vk вне форума  
 
Непрочитано 25.07.2005, 16:08
#5
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Сделай свою менюшку и подгрузи к АКАДу, будут тебе кнопки !
Подробнее http://cadhlp.kulichki.com/pdmnu.htm
или так как описано выше
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Из лиспа в команду.

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

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