Перейти к содержанию

Рекомендуемые сообщения

Только начинаю разбираться с NanoCAD, посему прошу сильно не пиннать) Форум прочел, но ответа на свой вопрос не нашел(

Есть файл .lsp, добавлен в автозагрузку, для запуска функций из него - нужно в командной строке LSP - О - функция

Хотелось бы этот процесс упростить, путем добавления пользовательского меню, с кнопками вызывающими функии из моего файла.

Как это делать с JS и VBS - посмотрел в примерах, все работает, а вот с LISP как быть?

 

Помогите пожалуйста, может быть примером кто поделиться? :rolleyes:

Ссылка на сообщение
Поделиться на другие сайты

Только начинаю разбираться с NanoCAD, посему прошу сильно не пиннать) Форум прочел, но ответа на свой вопрос не нашел(

Есть файл .lsp, добавлен в автозагрузку, для запуска функций из него - нужно в командной строке LSP - О - функция

Хотелось бы этот процесс упростить, путем добавления пользовательского меню, с кнопками вызывающими функии из моего файла.

Как это делать с JS и VBS - посмотрел в примерах, все работает, а вот с LISP как быть?

 

Помогите пожалуйста, может быть примером кто поделиться? :rolleyes:

Добрый день!

Есть статья на эту тему:

https://habrahabr.ru/company/nanosoft/blog/239533/

Ссылка на сообщение
Поделиться на другие сайты

Статью читал, но ответа на свой вопрос в ней не нашел(

По vbs и js вопросов нет, но как быть с lisp? Тоже в nsf файл?

Изменено пользователем netscape
Ссылка на сообщение
Поделиться на другие сайты

Статью читал, но ответа на свой вопрос в ней не нашел(

По 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

Безымянный.png

Ссылка на сообщение
Поделиться на другие сайты

Сделал небольшой пример c использованием lisp, где COOR,COORN - имена команд из Lisp.

Огромное спасибо, что все разжевали мне)

Обязательно попробую!

Ссылка на сообщение
Поделиться на другие сайты

Проще всего сделать лисп-функцию командой, приписав к её имени 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.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 года спустя...

Нанокад 21. Создал файл userdata.cfg с текстом в выше приведенном примере. Вчера все работало корректно (компьютер не перезагружался). Сегодня обнаружил что размер кнопок увеличился (вчера размер кнопок был одинаковый со всеми другими кнопками).

Попытка сбросить интерфейс ничего не поменяла. Также попробовал такие действия: удалил файл userdata.cfg из папки с нанокадом и сбросил настройки. После этих действий я так понимаю у меня должна была пропасть вкладка и панель Мои команды, но этого не произошло. При отсутствующем файле все осталось на месте.

Вопрос: почему не произошло сброса панелей (нанокад дополнительно копирует себе настройки еще куда-то) и как вернуть размер кнопок?

Кнопки.png

Ссылка на сообщение
Поделиться на другие сайты

Чтобы убрать надписи с панели инструментов: запустите команду НПИ. Перейдите в диалоговом окне НПИ во вкладку Панели инструментов

287592465_.png.1219468512b3d9e069861705fcee5fd5.png

Выберите свою панель и ниже в свойствах уберите флажок напротив Показывать надписи:

1813606049_2.png.05c22bd3b172b8ff3e871a5384347ef8.png

Как правильно заметили, nanoCAD копирует настройки. Перейдите по следующему пути (для 21 версии nanoCAD): %AppData%\Nanosoft\nanoCAD x64 21.0\Config

и удалите файл userdata.cfg 

Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ.

nanoCAD копирует файл userdata.cfg только один раз или он периодически это делает (к примеру раз в сутки, неделю и т.д.)?

Вопрос к разработчикам: могу ли я добавлять новые bmp для кнопок в файл newbtns.dll или лучше делать свои dll?

Ссылка на сообщение
Поделиться на другие сайты
В 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  

 

Изменено пользователем Narumarus
Опечатка
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Танюха
      Установлен стиль печати монохром, а на печать выходят цветные линии, что делать?
       
      Для того чтобы распечатать чертеж в монохроме ( черно-былым) необходимо чтобы цвета на чертеже были указаны в индексах. Если цвет задан RGB( 0,0,0), то СТВ-таблицы его не обрабатывают и на печать выходит цвет.
       
      Lisp "layers(1)"  производит автоматическую замену цвета слоя заданного в RGB на индексированный.
       
      Пример работы:
      1. Цвет слоя задан в RGB 
      2. Загрузить lisp
      3. После выполнения команды CHGTCL  в командной строке появится сообщение о заменённых цветах в слоях
      4. В Диалоге Слои цвет задан индексом
       
       
      layers (1).lsp
    • От Vozhich
      Есть программы которая считывает атрибуты блока и заполняет таблицу (например: общие данные).
      Случайно заметил глюк. При очередном открытии файла (после просмотра его автокадом) атрибуты блоков немного "поплыли".
      Помогает команда в командной строке "атробновить". Атрибуты в пространстве модели после этого выглядят нормально. Но программное чтение атрибута не видить его значения.
      При этом в свойствах блока значения атрибутов видно. Чтобы исправить ситуацию приходится ручками заходить в редактирование атрибута блока и не редактируя выйти.
      Что это может быть? и как избежать?
    • От A.Kudrjashov
      В AutoLISP различие результата выполнения функций print и prin1 заключается в частности в том, что функция print предваряет вывод очередной порции текста переводом строки.
      В nanoCAD этого не происходит ! 

       
      TestPrint.lsp
       
      test-print_nanoCAD.txt
       
      test-print_AutoCAD.txt
    • От Танюха
      Отрисовка условного обозначения откосов дороги с возможностью регулировать расстояние между штрихами (2,4).
      Ролик снят в nanoCAD 20.1
      otkgp_1.lsp
    • От Танюха
      Значения координат точек (X,Y,Z) выводятся в системе координат nanoCAD, округленные до двух знаков после запятой. Вывод координаты Z можно отрегулировать. 
      geo_koord_mleader_adapt.lsp
×
×
  • Создать...