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

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

Различие обработки команд лисп на палитре инструментов?

Ответ
Поиск в этой теме
Непрочитано 06.02.2024, 16:03 #1
Различие обработки команд лисп на палитре инструментов?
prajdziswet
 
Регистрация: 30.03.2015
Сообщений: 153

Добрый день, не могу понять различие обработки команд:
хочу прикрепить команду (точнее код лиспа) на палитре инструментов -
Код:
[Выделить все]
 (startapp (strcat "explorer " dirpol "ToolPalette\\")
где dirpol ="C:\\Users\\vk\\AppData\\Roaming\\Autodesk\\AutoCAD 2020\\R23.1\\rus\\support\\" (т.е каталог пользователя).
В командной строке все отрабатывает, через задание функции тоже (и палитре), а вот чисто в палитре интсрументов не хочет..
Читает до экранирующих символов "\\": "(startapp "(strcat "explorer " dirpol "ToolPalette",
можно ли как-то по другому задаются экранирующие символы в палитре инструментов?- надо \ или что не так?
Просмотров: 1033
 
Непрочитано 06.02.2024, 16:37
#2
Кулик Алексей aka kpblc
Moderator

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


Код инструмента приведи, потому как ИМХО то, что ты показал, работать должно. Ну или попробуй поменять "//" на "\"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.02.2024, 08:14
#3
prajdziswet


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Код инструмента приведи, потому как ИМХО то, что ты показал, работать должно.
1) так у меня - это и есть код:
Нажмите на изображение для увеличения
Название: _240207080033.jpeg
Просмотров: 27
Размер:	129.9 Кб
ID:	261414
правда там только "/" - это я эскперементировал,
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ну или попробуй поменять "//" на "\"
2) да я про это думал пробывал -различные модификации \\, /. Explorer срабатывает, но не воспринимает адрес, открывает тогда "документы", а не то что нужно

простой кнопкой, на любой панели автокада -тож самое.
у меня подозрение, что на любых панелях, не воспринимает обратны слеш \..
_____________________________
п.с а грузить вообще лисп файл, ради одной строчки кода не охота =(

Последний раз редактировалось prajdziswet, 07.02.2024 в 08:24.
prajdziswet вне форума  
 
Непрочитано 07.02.2024, 08:56
#4
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
(startapp (strcat "explorer " dirpol "ToolPalette\\")
скобку потерял?
ну и так попробуй
Код:
[Выделить все]
 
(startapp  "explorer" (strcat dirpol "ToolPalette\\"))
слэши либо экранирующие \\
либо URI / чет не работает

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от prajdziswet Посмотреть сообщение
п.с а грузить вообще лисп файл, ради одной строчки кода не охота =(
Offtop: а зря,
проще при отладке править код в блокноте, перезагружать самого себя и проверять не отходя от кассы что получилось
чем каждую итерацию экскремента править в палитре(((
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 07.02.2024 в 09:10.
doctorraz вне форума  
 
Непрочитано 07.02.2024, 09:36
#5
Ingpro


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


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
хочу прикрепить команду (точнее код лиспа) на палитре инструментов
Посмотрите тему: Открыть проводник через Autocad #7
https://forum.dwg.ru/showthread.php?t=139577
Ingpro вне форума  
 
Автор темы   Непрочитано 07.02.2024, 12:09
#6
prajdziswet


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


да скобку потерял (при копировании кода, а на скрине есть)
Цитата:
Сообщение от doctorraz Посмотреть сообщение
слэши либо экранирующие \\
либо URI / чет не работает
-- в том и дело..что экранирующие слэши не пропускает (даж один)

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от Ingpro Посмотреть сообщение
Посмотрите тему: Открыть проводник через Autocad #7
https://forum.dwg.ru/showthread.php?t=139577
спасибо, посмотрел (там и мой вариант есть) - но выхода пока не придумал (кроме подгрузка лиспа и задавание функции =(( )

п.с возможно помогло бы замена всех \\ на / - так и эту строку не пропустит.

поэтому наверное остается лисп-файл и командой на палитру=((

Последний раз редактировалось prajdziswet, 07.02.2024 в 12:21.
prajdziswet вне форума  
 
Непрочитано 07.02.2024, 12:18
#7
Кулик Алексей aka kpblc
Moderator

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


По ссылке-то сходил?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.02.2024, 13:14
1 | #8
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
но выхода пока не придумал
чо тут думать

Код:
[Выделить все]
 
(setq dirpol "d:\\@Doc\\ГОСТ\\")
^C^C(startapp "explorer.exe" (strcat dirpol  "ГОСТ"))
;или хочется слэшей в конце
^C^C(startapp "explorer.exe" (strcat dirpol  "ГОСТ" (chr 92)))
;или
(setq dirpol "d:\\@Doc\\ГОСТ\\")
^C^C(startapp "explorer.exe" (strcat dirpol (chr 92) "ГОСТ" (chr 92)))
проверил из палитры АК2023 win10
копируешь любой инструмент команды
и вбиваешь туда макрос
Нажмите на изображение для увеличения
Название: Image 2.png
Просмотров: 16
Размер:	25.2 Кб
ID:	261429
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 07.02.2024, 13:23
#9
prajdziswet


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По ссылке-то сходил?
Да, и я же отписался: "посмотрел(там и мой вариант есть)"

п.с и посмотрел твой вариант (через shell, он более изячный), он мне не подходит (тут условно адрес условно % не получится, мне надо все равно последний слеш задавать)
при прямом у меня нетуда попадает (попадает в документы, даж еслі весь путь задать "/")

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от doctorraz Посмотреть сообщение
чо тут думать

Код:
[Выделить все]
 
(setq dirpol "d:\\@Doc\\ГОСТ\\")
^C^C(startapp "explorer.exe" (strcat dirpol  "ГОСТ"))
;или хочется слэшей в конце
^C^C(startapp "explorer.exe" (strcat dirpol  "ГОСТ" (chr 92)))
;или
(setq dirpol "d:\\@Doc\\ГОСТ\\")
^C^C(startapp "explorer.exe" (strcat dirpol (chr 92) "ГОСТ" (chr 92)))
проверил из палитры АК2023 win10
копируешь любой инструмент команды
и вбиваешь туда макрос
Вложение 261429
ООО спасибо (за идею), но не за кода - и мой код работает, убралл слеши "\\" (пошло), хорошо что в глубь еще не надо (тогда бы теже грабли)...

----- добавлено через ~10 мин. -----
хотя блин нет, следующий раз незнаю почему, запускает сразу несколько раз

Последний раз редактировалось prajdziswet, 07.02.2024 в 13:30.
prajdziswet вне форума  
 
Автор темы   Непрочитано 07.02.2024, 13:43
#10
prajdziswet


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


Нажмите на изображение для увеличения
Название: _240207080033.jpeg
Просмотров: 14
Размер:	35.5 Кб
ID:	261430
prajdziswet вне форума  
 
Непрочитано 07.02.2024, 14:25
#11
Кулик Алексей aka kpblc
Moderator

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


На моем древнем 2013 прекрасно сработали оба варианта:
Код:
[Выделить все]
 ((lambda(/ str) (setq str (strcat "explorer.exe " (findfile "c:/library"))) (startapp str)))
Код:
[Выделить все]
 (startapp (strcat "explorer.exe " (findfile "c:/library")))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.02.2024, 14:36
| 1 #12
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Возможно, спотыкается не на слешах, а на пробелах в пути.
Это всё дело нужно обрамлять кавычками.

Помедитируй на тему

(strcat (chr 34) ... (chr 34))

Я когда-то с чем-то подобным сталкивался, лень сейчас искать...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 07.02.2024, 15:20
#13
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
На моем древнем 2013 прекрасно сработали оба варианта
Offtop: ты жэж команды в инструмент палитры вставлял? и оттуда тестировал?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 07.02.2024, 15:27
#14
prajdziswet


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
На моем древнем 2013 прекрасно сработали оба варианта:
тож хорошее предложение, но не пойдет - обрати внимание "findfile" (он при нахождении превращает прямой / в \\ - проверил по другому пути) и в явном виде у тебя обратный слеш не фигурирует.
как у меня в dirpol - фигурируют неявно, а натыкался "ToolPalette\\" => когда убрал слэши конечные, все пошло.

Проблема с обратными слешами - надо, чтобы они фигурировали то неявно
Код:
[Выделить все]
 (startapp (findfile (strcat "explorer " dirpol "ToolPalette/")))
- так не срабатывает (даж просто черех командную строку), так как findfile я в dirpol пропихваю обратные
Код:
[Выделить все]
 (startapp (findfile (strcat "explorer " dirpol "ToolPalette\\")))
-тож не работает (на панелях или кнопках, через командную прекрасно работает), за обратного слеша
Код:
[Выделить все]
 (startapp (findfile (strcat "explorer " dirpol "ToolPalette")))
- вот так работает, но повезло, что не надо дальше идти

___________
на панелях или кнопках, он не воспринимает \. если обратный фигрурирует неявно, через переменную, или еще как (например findfile из / в \\), то работает

Последний раз редактировалось prajdziswet, 07.02.2024 в 15:32.
prajdziswet вне форума  
 
Непрочитано 07.02.2024, 15:32
1 | 1 #15
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
вот так работает, но повезло, что не надо дальше идти
ну и чо?
^C^C(startapp "explorer.exe" (strcat dirpol "ГОСТ" (chr 92) "иди куда надо"))
я проверил работает
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 07.02.2024, 15:35
#16
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Offtop: ты жэж команды в инструмент палитры вставлял? и оттуда тестировал?
Угу

----- добавлено через ~1 мин. -----
prajdziswet, че-т ты путаешься, по-моему, достаточно капитально. Конечные слеши, прямые, обратные... Не мешай все в одну кучу, тогда будет проще разбираться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.02.2024, 15:37
1 | #17
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
Проблема с обратными слешами - надо, чтобы они фигурировали то неявно
Неявно, так неявно... Попробуй:

(chr 92) => "\\"
(chr 47) => "/"
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Автор темы   Непрочитано 07.02.2024, 16:28
#18
prajdziswet


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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Неявно, так неявно... Попробуй:

(chr 92) => "\\"
(chr 47) => "/"
Прошло и так! Спасибо..
prajdziswet вне форума  
 
Автор темы   Непрочитано 07.02.2024, 16:36
#19
prajdziswet


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
достаточно капитально. Конечные слеши, прямые, обратные.
я просто говорю, что если на палитре инструментов или кнопкой в автокаде не работает "\" (в командной строке нормально), а "/" оно читает (воспринимает) но не туда переходит...

п.с если не веришь мне гугл в помощь:
Нажмите на изображение для увеличения
Название: _240207080033.jpeg
Просмотров: 22
Размер:	193.1 Кб
ID:	261437
prajdziswet вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Различие обработки команд лисп на палитре инструментов?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересно где работают ЛИСП программисты? dextron3 LISP 114 17.12.2017 13:53
как подключить палитры инструментов в Autocad architecture 2012 Vadim_trm Вертикальные решения на базе AutoCAD 5 12.01.2012 16:56
Изображение блока неотображается в палитре инструментов olish AutoCAD 4 24.05.2011 15:54
Лисп для копирования данных нескольких мтекстов по принципу расположения. Red Nova LISP 14 18.06.2008 22:08
Нужен лисп (пронизыватель лайаутов) dextron3 LISP 91 25.07.2007 07:37