| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Результаты опроса: Есть ли смысл развивать идею дальше? | |||
Да | 12 | 66.67% | |
Нет | 4 | 22.22% | |
Не знаю | 2 | 11.11% | |
Голосовавшие: 18. Вы ещё не голосовали в этом опросе |
Поиск в этой теме |
28.01.2015, 23:19 | #1 | |
Notepad++ как альтернатива VLIDE (NPPVLIDE)
Программист широкого профиля.
Челябинск
Регистрация: 08.09.2005
Сообщений: 722
|
||
Просмотров: 13321
|
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Когда я собрался в лес по грибы меня позвали на рыбалку.
Для Bricscada делать связку не буду, но расскажу в каком направлении нужно копать. с Bricscad дел не имел, но судя по информации полученной из википедии можно сделать вывод, что это возможно. В языках M$ VS есть функция GetObject. Она полностью идентична автолисповской функции (vlax-get-object). В общем AcadLISPLauncher2 всего лишь выполняет такой код: Код:
В Bricscad тоже есть поддержка ActiveX. Значит наверняка есть и метод типа SendCommand. Написать программку на бейсике не составит большого труда. Это будет очень не просто. ActiveX тут явно будет недостаточно. Мне вот интересно, насколько часто народ пользуется системой остановов в vlide? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Практически постоянно Говорю про себя.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Да ну?
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Я могу еще понять останов на ошибке, а вот нужность остальных остановов для меня загадка.
Лично мне функционал npp больше нравится чем возможность остановов в VLIDE В любом случае для решения этой задачи придется делать какой нибудь отладчик с дизассемблированием. Не имею планов. У каждой функции есть свои крокодилы, но предназначение у них одно. Если Вам не нравится слово "идентичность", то назовем их: "одного поля ягоды". |
|||
|
||||
Отлов ошибок - занятие творческое. Без остановок и контроля значений в нужных местах кода иногда не обойтись. Дошел до точки останова, а дальше - отладка по шагам. Трассировка, опять же, очень помогает. Писать можно в чем угодно, но для отладки VLIDE вне конкуренции.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
p.s. а ну и REPL конечно.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
mmax, наконец-то дошли руки испробовать твое изобретение. Я сразу решил пойти по пути опытных и портировать его в свою сборку NP++. Однако, опытным я стал только минут через 20-30. Это я к тому, что если не трудно, опиши, пожалуйста, подробнее для не самых опытных процесс портирования в существующую сборку.
Итак, разобравшись настолько, насколько смог, я потестировал NPPVLIDE и вот что обнаружил. 1. Иконки на панели у меня почему-то так и не появились. 2. При отправке в AutoCAD и дальнейшем возврате в консоль NP++ фрагментов кода, содержащаяся в строках в кириллица преобразуется в кракозябры. Пробовал менять кодировки - не помогло. Что делать? 3. Так и не смог повесить вызов конкретного действия на горячую клавишу. Такое вообще возможно? В меню Макросы команды добавить удалось, а вот с горячей кнопки запускается максимум окно NPPExec, и из него уже надо выбрать нужное действие. Может, недостаточно расковырял настройки? А вообще, идея мне понравилась. В NP++ больше всего мне не хватало трех вещей из тех, которые есть во VLIDE: инструмента для контроля значений переменных, загрузки в КАД файла lsp и загрузки в КАД фрагмента кода. Для первого я нацарапал себе несложный контроллер на лиспе, второй решил принудительной загрузкой lsp при каждом вызове тестируемой команды в режиме отладки, а вот с третьим до сих пор ничего не придумал толкового. Приходилось либо форматировать ступеньки в коде до одной строки на каждое выражение, либо же запускать VLIDE. Сегодня кодил - тестировал фрагменты прям из блокнота - доволен, понравилось, спасибо, mmax, за полезную для меня вещь. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
За иконки отвечает нотпадовский плагин Customize Toolbar. Для настройки этого плагина нужно стать еще более опытным. Я набирался опыта дня 2. В гугле много информации для получения опыта. Я буду краток и распишу только основной момент. Чтобы свои кнопки наконец-то заработали надо файл CustomizeToolbar.btn сохранить в кодировке UCS-2 Little Endian.
Плагины - NPPEXCES - Console Output...{ANSI/UTF-8} Еще как вариант сам AcadLISPLauncher2.exe поддеживает параметр /cp Пример: Код:
На данный момент не рассматривал эту проблему. Думаю что это скорее возможно. Через настройки NPPEXCEС можно закинуть команду в меню Макросы. В данный момент почти готова такая штука как получение значения переменной из выделенного фрагмента кода. Переменная должна быть глобальна. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не помогло.
Тоже безрезультатно. Помогло вот что: Интересно. А то, что глобальной должна переменная быть, так у меня и есть: на время отладки кода я комментирую строки, где переменные объявляются локальными, кроме тех переменных, которые по логике работы программы не должны быть глобальными. А дальше из Автокада вызываю их список со значениями. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Я так подозреваю, что у каждой версии и локализации автокада свои тараканы в кодировке символов. Наверное золотой середины тут не найти. Но судя по всему безвыходных положений не бывает.
Все очень просто. Если в автокаде ввести любой набор символов с восклицательным знаком в начале, то он выдаст в ответ значение этого выражения как значение переменной. AcadLISPLauncher будет посылать !выделенный_текст в комстроку автокада и выводить результат в консоль npp. Еще в планах сделать команду которая будет применять к выделенному тексту функции vlax-dump-object и entget. Наверно это будут очень полезные плюшки, которые не реализованы в vlide. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Позволю себе влезьть с ваш увлекательнейший диалог. lsp сохраняются в кодировке ANSI (мне так каэцца), а не UTF-8. До версии 2013 это мало кого волновало, но потом началось (до выпуска SP).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
trushev, тэг [code][/code] для чего существует, как ты думаешь?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 23.04.2015
Сообщений: 163
|
Нужные кнопочки, спасибо! Только почему-то перестала работать загрузка активного окна...
Такое пожелание есть - чтобы в новых версиях настройки по умолчанию оставались теми же. Хотя вот подумал, по идее, достаточно заменить .xml-и, относящиеся к конфигурации и стилям, нового ничего не потеряется?.. И ещё вопрос - как добавлять/редактировать кнопки на панели инструментов? |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Исправлено, файл перезалит.
Цитата:
Цитата:
А вообще лично я использую сразу несколько портабельных(не требующих установки) версий и каждая адаптирована под определенные нужды. Например для вебпрограммирования требуются одни кнопки и менюшки для LISP-программирования другие. В итоге у меня есть 2 блокнота npp с разными интерфейсами. Цитата:
Свои кнопки с иконками прописываются в файле plugins\Config\CustomizeToolbar.btn свои иконки должны лежать в папке plugins\Config\ |
|||