Как правильно сделать команду на кнопке

Автор Тема: Как правильно сделать команду на кнопке  (Прочитано 22039 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Добрый день!
Хочу повесить на кнопку запуск скрипта.
при нажатии кнопки, должна выполняться команда оболочки:
python d:\18_проектирование\команды\000.001 - проба.py

пытаюсь сделать так:
^C^C(command "_.shell" "python \"d:\\18_проектирование\\команды\\000.001 - проба.py\"")
но не выходит, понимаю что проблема с экранирование кавычек и обратных слешей, но никак не выходит, подскажите, как правильно сформировать строку.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
python в данном случае это python.exe ? Тогда нужно задать путь к нему.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Что-нибудь такое наверное:
Код - Auto/Visual Lisp [Выбрать]
  1. ^C^C(startapp "C:\\Users\\<имя пользователя>\\AppData\\Local\\Programs\\Python\\Python37\\python.exe" "\"d:\\18_проектирование\\команды\\000.001 - проба.py\"")
« Последнее редактирование: 31-01-2020, 15:28:55 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
путь к python прописан в PATH, без аргументов запускается., сейчас попробую еще разок, видимо, я слэши не там где нужно ставил.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
путь к python прописан в PATH, без аргументов запускается., сейчас попробую еще разок, видимо, я слэши не там где нужно ставил.
С блокнотом вот так запускается (открывает файл):
Код - Auto/Visual Lisp [Выбрать]
  1. ^C^C(startapp "notepad.exe" "\"d:\\18_проектирование\\команды\\000.001 - проба.py\"")
Так что и с PYTHON должно работать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Вот такая строка
(startapp "python" "\"D:\\18_проектирование\\acad_scripts\\000.000.03_Проба.py\"")
если я ее ввожу в строку autocad, то выполняется правильно
Но почему то на кнопке не хочет...

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
В командной строке появляется
 (startapp "python" "D:
и ждет дальнейшего ввода, что то я косячу, со слешами какая то непонятка.

Отмечено как Решение DMuzer 31-01-2020, 17:10:28

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В командной строке появляется
 (startapp "python" "D:
и ждет дальнейшего ввода, что то я косячу, со слешами какая то непонятка.
Проверяй:
Код - Auto/Visual Lisp [Выбрать]
  1. ^C^C(startapp "python" "D:/18_проектирование/acad_scripts/000.000.03_Проба.py")
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Да, так работает!!!
Я видел в справке, что если использовать команду cmd c ключом /k то окно консоли не будет показываться, а можно ли со startapp нечто подобное?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я видел в справке, что если использовать команду cmd c ключом /k то окно консоли не будет показываться, а можно ли со startapp нечто подобное?
Нет. А разве pythonw.exe  не запускается без окна?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Какая то магия, почему так происходит?
вставляю в строку такую команду, все работает
(startapp "python" "D:/18_проектирование/команды/Спецификация_лист_Вставить_таблицу_отдельно.py")

то же самое вставляю в макрос команды, но с кнопки не работает... Что не так?

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
Подчистил пробелы после скобок и вроде заработало...
С этим связано?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
С этим связано?
Да. В меню каждый пробел вне lisp-выражения - это как пробел (или ввод) на клавиатуре.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DMuzerАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 152
  • Карма: 2
А через ActiveX можно настраивать/создавать кнопки, менюшки, команды?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Частично можно. Например, добавить выпадающее меню, поменять доступность команд, еще что-то. Но я бы создавал частичное меню, которое и использовал бы. Это проще и в результате дешевле получается.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!