netscape Posted June 9, 2016 Report Share Posted June 9, 2016 Только начинаю разбираться с NanoCAD, посему прошу сильно не пиннать) Форум прочел, но ответа на свой вопрос не нашел( Есть файл .lsp, добавлен в автозагрузку, для запуска функций из него - нужно в командной строке LSP - О - функция Хотелось бы этот процесс упростить, путем добавления пользовательского меню, с кнопками вызывающими функии из моего файла. Как это делать с JS и VBS - посмотрел в примерах, все работает, а вот с LISP как быть? Помогите пожалуйста, может быть примером кто поделиться? Quote Link to comment Share on other sites More sharing options...
Spirin Posted June 9, 2016 Report Share Posted June 9, 2016 Только начинаю разбираться с NanoCAD, посему прошу сильно не пиннать) Форум прочел, но ответа на свой вопрос не нашел( Есть файл .lsp, добавлен в автозагрузку, для запуска функций из него - нужно в командной строке LSP - О - функция Хотелось бы этот процесс упростить, путем добавления пользовательского меню, с кнопками вызывающими функии из моего файла. Как это делать с JS и VBS - посмотрел в примерах, все работает, а вот с LISP как быть? Помогите пожалуйста, может быть примером кто поделиться? Добрый день! Есть статья на эту тему: https://habrahabr.ru/company/nanosoft/blog/239533/ 1 Quote Link to comment Share on other sites More sharing options...
netscape Posted June 9, 2016 Author Report Share Posted June 9, 2016 (edited) Статью читал, но ответа на свой вопрос в ней не нашел( По vbs и js вопросов нет, но как быть с lisp? Тоже в nsf файл? Edited June 9, 2016 by netscape Quote Link to comment Share on other sites More sharing options...
Spirin Posted June 10, 2016 Report Share Posted June 10, 2016 Статью читал, но ответа на свой вопрос в ней не нашел( По vbs и js вопросов нет, но как быть с lisp? Тоже в nsf файл? Оборачивать LISP не нужно. Сделал небольшой пример c использованием lisp, где COOR,COORN - имена команд из Lisp. Создаём в C:\Program Files\Nanosoft\nanoCAD x64 Plus 7.0 текстовый файл userdata.cfg и копируем следующее. [\configman\commands\COOR] weight=i30 |cmdtype=i0 |CapsDisable = W0xFF intername=sCOOR BitmapDll=snewbtns.dll |BitmapId=i155 |ButtonId=i2 |TotalButtons=i6 DispName=sЭкспорт координат StatusText=sЭкспорт координат [\configman\commands\COORN] weight=i30 |cmdtype=i0 |CapsDisable = W0xFF intername=sCOORN BitmapDll=snewbtns.dll |BitmapId=i155 |ButtonId=i2 |TotalButtons=i6 DispName=sЭкспорт координат с нумерацией StatusText=sЭкспорт координат с нумерацией [\menu\mycommands] |name=sМои команды [\menu\mycommands\exportcoor] |name=sЭкспорт координат [\menu\mycommands\exportcoor\COOR] |name=sЭкспорт координат |InterName=sCOOR [\menu\mycommands\exportcoor\COORN] |name=sЭкспорт координат с нумерацией |intername=sCOORN [\toolbars\mycommands] |InitialVisible=f1 |name=sМои команды [\toolbars\mycommands\COOR] |intername=sCOOR [\toolbars\mycommands\COORN] |intername=sCOORN [\toolbarspos\mycommands] |DockPosition=stop |row=i0 |pos=i2 [\menu\View\toolbars\My_toolbars] |Name=sМои панели [\menu\View\toolbars\My_toolbars\ShowToolbar_mycommands] |Name=sМои команды |InterName=sShowToolbar_mycommands [\ToolbarPopupMenu\My_toolbars] |Name=sМои панели [\ToolbarPopupMenu\My_toolbars\ShowToolbar_mycommands] |Name=sМои команды |InterName=sShowToolbar_mycommands [\configman\commands\sShowToolbar_MyCommands] weight=i10 |cmdtype=i0 |CapsDisable = W0xFF intername=sShowToolbar_MyCommands StatusText=sПоказать/скрыть панель Мои команды ToolTipText=sПоказать/скрыть панель Мои команды DispName=sПоказать/скрыть панель Мои команды [\Accelerators] COOR=sCtrl+B COORN=sCtrl+G Запустите nanoCAD и сбросьте настройки интерфейса Перезапустите nanoCAD и добавьте приложенный лисп - coorn.lsp в автозагрузку. У вас появились пункты меню при нажатии на которые происходит запуск команд из lisp. coorN.LSP 2 Quote Link to comment Share on other sites More sharing options...
netscape Posted June 10, 2016 Author Report Share Posted June 10, 2016 Сделал небольшой пример c использованием lisp, где COOR,COORN - имена команд из Lisp. Огромное спасибо, что все разжевали мне) Обязательно попробую! Quote Link to comment Share on other sites More sharing options...
ISL Posted June 11, 2016 Report Share Posted June 11, 2016 Проще всего сделать лисп-функцию командой, приписав к её имени C: и прописать её в меню, как любую другую. В nanoCAD в меню/на тулбар можно поместить только команду, строку поместить нельзя. Если же нужно вызывать именно лисп-выражение, то следует описать в .cfg файле новую команду, выполняющую это лисп выражение, и добавить эту команду в меню. nApp.cfg: [\menu\MyBlocks] |name=s&Мои команды [\menu\MyBlocks\InsertMyBlock01] |name=s&Вставить блок 01 |intername=sInsertMyBlock01 [\configman\commands\InsertMyBlock01] weight=i30 |cmdtype=i1 |Caps = W0x34 intername=sInsertMyBlock01 RealCommandName=sLSP Keyword=sE^M(progn (setq p (getpoint)) (command "-INSERT" "C:\\MyFile.dwg" p 1 1 1))^M intername -- имя новой команды RealCommandName -- имя существующей команды, в данном случае LSP Keyword -- параметры существующей команды Файл nApp.cfg следует положить рядом с NCad.exe. Quote Link to comment Share on other sites More sharing options...
tareto Posted May 14, 2021 Report Share Posted May 14, 2021 Нанокад 21. Создал файл userdata.cfg с текстом в выше приведенном примере. Вчера все работало корректно (компьютер не перезагружался). Сегодня обнаружил что размер кнопок увеличился (вчера размер кнопок был одинаковый со всеми другими кнопками). Попытка сбросить интерфейс ничего не поменяла. Также попробовал такие действия: удалил файл userdata.cfg из папки с нанокадом и сбросил настройки. После этих действий я так понимаю у меня должна была пропасть вкладка и панель Мои команды, но этого не произошло. При отсутствующем файле все осталось на месте. Вопрос: почему не произошло сброса панелей (нанокад дополнительно копирует себе настройки еще куда-то) и как вернуть размер кнопок? Quote Link to comment Share on other sites More sharing options...
Alex_G Posted May 14, 2021 Report Share Posted May 14, 2021 Чтобы убрать надписи с панели инструментов: запустите команду НПИ. Перейдите в диалоговом окне НПИ во вкладку Панели инструментов Выберите свою панель и ниже в свойствах уберите флажок напротив Показывать надписи: Как правильно заметили, nanoCAD копирует настройки. Перейдите по следующему пути (для 21 версии nanoCAD): %AppData%\Nanosoft\nanoCAD x64 21.0\Config и удалите файл userdata.cfg Quote Link to comment Share on other sites More sharing options...
tareto Posted May 17, 2021 Report Share Posted May 17, 2021 Спасибо за ответ. nanoCAD копирует файл userdata.cfg только один раз или он периодически это делает (к примеру раз в сутки, неделю и т.д.)? Вопрос к разработчикам: могу ли я добавлять новые bmp для кнопок в файл newbtns.dll или лучше делать свои dll? Quote Link to comment Share on other sites More sharing options...
Narumarus Posted May 18, 2021 Report Share Posted May 18, 2021 (edited) В 17.05.2021 в 10:13, tareto сказал: Спасибо за ответ. nanoCAD копирует файл userdata.cfg только один раз или он периодически это делает (к примеру раз в сутки, неделю и т.д.)? Вопрос к разработчикам: могу ли я добавлять новые bmp для кнопок в файл newbtns.dll или лучше делать свои dll? 1. Копирование настроек предлагается только при первом запуске свеже установленной версии nanoCAD. 2. Не вносите правки в базовые файлы. При следующем обновлении все ваши правки сотрут. Для добавления своих иконок не обязательно создавать файлы MAPI (.dll). В своем *.cfg вы можете прописать относительный или абсолютный путь к bmp картинке максимальный размер насколько помню 32х32 pix. [\configman\commands\Checker] weight=i30 cmdtype=i1 intername=sStatistic BitmapDll=sC:\ProgramData\Config_files\Icons\Statistic.bmp DispName=sСбор данных о внешних элементах DWG StatusText=sмодуль для создания файла .info в котором прописываются основные данные по внешним ссылкам, прокси и словарям. Если вам удобней работать с одним ресурсным файлом, то можно указывать путь к dll и имя иконки. iconname=sGRIDSETUP_DARK BitmapDll=sC:\ProgramData\Config_files\Icons\Newbtns.dll Edited May 18, 2021 by Narumarus Опечатка Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.