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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вызов собственной команды из командной строки

Вызов собственной команды из командной строки

Ответ
Поиск в этой теме
Непрочитано 27.04.2017, 17:10 #1
Вызов собственной команды из командной строки
betonolom
 
Регистрация: 15.10.2013
Сообщений: 30

Доброго дня!
Создать свою команду и сделать кнопочку прекрасно описано здесь https://dwg.ru/pub/6,
но там не сказано о том как вызвать свою команду из командной строки.
Пробовал в свойствах команды через QUI найти решение, поэкспериментировал там в разделах "имя" и "выводимое имя команды", но результата не получил (эти разделы имеют иное назначение).
Подскажите пожалуйста
Просмотров: 5484
 
Непрочитано 27.04.2017, 17:22
#2
Кулик Алексей aka kpblc
Moderator

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


А как свою команду создал? Или просто создал кнопочку, в которой прописана последовательность команд? Это разные вещи!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.04.2017, 19:02
#3
betonolom


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Или просто создал кнопочку, в которой прописана последовательность команд?
Да, просто макрос. К примеру
Код:
[Выделить все]
^C^C_.audit;_y;_.-purge;_a;;_n;_-SCALELISTEDIT;_R;_Y;_E;(if (null C:DR)(load "DR"));DR;_qsave;
Теоретически предполагаю что это можно сделать следующим образом: весь макрос реализуется через лисп "example.lsp" с вызовом "ABC", а дальше по заветам lee mac добавляется в acaddoc.lsp под видом (autoload "example" '("ABC")).

Последний раз редактировалось Кулик Алексей aka kpblc, 27.04.2017 в 20:33.
betonolom вне форума  
 
Непрочитано 28.04.2017, 08:49
| 1 #4
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от betonolom Посмотреть сообщение
как вызвать свою команду
В НПИ перетащи свою команду в раздел "Клавиши быстрого вызова" и назначь сочетание клавиш
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Непрочитано 28.04.2017, 09:06
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Здорово: вводить сочетания клавиш из командной строки. Это что-то новенькое.
Offtop: Вопрос: сколько будет 2 умножить на 2? Где здесь 90% ответа? Или вопрос неправильный?
Profan вне форума  
 
Автор темы   Непрочитано 04.05.2017, 12:03
#6
betonolom


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


Переделал макрос:
Код:
[Выделить все]
^C^C_.audit;_y;_.-purge;_a;;_n;_-SCALELISTEDIT;_R;_Y;_E;(if (null C:DR)(load "DR"));DR;_qsave;
в лисп (тестировал без "defun", через загрузку строчки в Редакторt Visual LISP автокада)
Код:
[Выделить все]
 (command "_.audit" "_y" "_.-purge" "_a" "" "_n" "_.-purge" "_r" "" "_n" "_-scalelistedit" "_r" "_y" "_e" "DR" "_qsave")
Получаю сообщение в командной строке "Команда: DR Неизвестная команда "DR". Для вызова справки нажмите F1."
DR - команда другого лиспа, который уже подгружен в автокад.
Если просто набираю в командной строке "DR", то он выполняется.
Поэтому вопрос следующий: как в своем лиспе сослаться на выполнение другого лиспа?

----- добавлено через ~10 ч. -----
Нашел-таки решение
нужно добавить строчку
Код:
[Выделить все]
(command (c:dr))
или
Код:
[Выделить все]
(vl-cmdf (c:dr))
betonolom вне форума  
 
Непрочитано 08.05.2017, 16:45
#7
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


... или просто:
Код:
skkkk вне форума  
 
Непрочитано 10.05.2017, 16:30
#8
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от Profan Посмотреть сообщение
Здорово: вводить сочетания клавиш из командной строки. Это что-то новенькое.
Offtop: Вопрос: сколько будет 2 умножить на 2? Где здесь 90% ответа? Или вопрос неправильный?
Ну вот, смотри, ТС хочет "вызвать свою команду из командной строки".
Ввод команд в командной строке осуществляется с помощью клавиатуры (это долго). Или можно присвоить псевдоним (это быстрее).
Раз уж мы все равно используем клавиатуру, то еще быстрее использовать сочетание клавиш (Ентер не надо нажимать). Это и есть лучший ответ на сформулированный ТС вопрос. И не нужен геморрой с переводом макроса на лисп и редактированием pgp файла.

А вот если бы ТС сформулировал вопрос "как вызвать мой макрос из лиспа" - здесь и ответ был бы другой.

Offtop: Вопрос: сколько будет 2 умножить на 2? Вопрос сформулирован правильно. Ответ здесь в слове "умножить". Т.е. надо искать таблицу умножения. Там и будут оставшиеся 10% ответа.
А если бы вопрос был сформулирован неверно: "у меня есть какие-то цифры и надо что-то с ними делать". То здесь ответа нет.
__________________
Правильно сформулированный вопрос содержит 90% ответа.

Последний раз редактировалось pan, 11.05.2017 в 11:00.
pan вне форума  
 
Автор темы   Непрочитано 11.05.2017, 09:18
| 1 #9
betonolom


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


Спасибо, но сочетание клавиш использовать очень не хочется по многим причинам. Самая главная из этих причин это именно сочетание клавиш, т.е. одновременное нажатие. Для меня командная строка намного удобнее (особенно с использованием псевдонимов). Сочетаниями предпочитаю пользоваться только в качестве классики: ctrl+c, ctrl+v, ctrl+o, ctrl+p и так далее (используются почти во всех программах).
В качестве итога моей темы могу сказать следующее:
1) в QUI нельзя назначить команду собственной кнопке (макросу).
2) и как следствие п.1 пришлось перегнать все свои макросы в лисп. Но я даже рад что сделал это, ибо работать в связке "свойлисп, acaddoc.lsp, acad.pgp" много удобнее чем с QUI.
betonolom вне форума  
 
Непрочитано 11.05.2017, 11:21
#10
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Хозяин-барин.
Для псевдонимов и команд надо следить за раскладкой клавиатуры, а для сочетаний - нет.
По поводу классики - попробуй нажать Ctrl-F для поиска в AutoCAD.
acaddoc.lsp, acad.pgp обычно зарыты глубоко на диске С: и при переустановке AutoCAD их трудно найти и легко потерять
А CUI надо создать свой в любом месте и подключать его как файл частичной адаптации к любому AutoCAD.
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Автор темы   Непрочитано 11.05.2017, 11:52
#11
betonolom


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


Цитата:
Сообщение от pan Посмотреть сообщение
Для псевдонимов и команд надо следить за раскладкой клавиатуры, а для сочетаний - нет.
никто не мешает добавить обе раскладки к псевдониму (старо как мир):
W, *MOVE
Ц, *MOVE

Цитата:
Сообщение от pan Посмотреть сообщение
acaddoc.lsp, acad.pgp обычно зарыты глубоко на диске С: и при переустановке AutoCAD их трудно найти и легко потерять
для собственного acaddoc.lsp указываешь путь доступа и переносишь в дереве вверх для приоритета. acad.pgp легко редактируется командой AI_EDITCUSTFILE (или на вкладке управление / адаптация / редактировать псевдонимы).
betonolom вне форума  
 
Непрочитано 11.05.2017, 16:22
#12
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от betonolom Посмотреть сообщение
никто не мешает добавить обе раскладки к псевдониму (старо как мир):
Мешает. Попробуй в русском ACAD на "L" повесить команду _line. Да и вообще, в локализованных версиях далеко не все так элементарно может оказаться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.05.2017, 16:45
#13
betonolom


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Мешает. Попробуй в русском ACAD на "L" повесить команду _line. Да и вообще, в локализованных версиях далеко не все так элементарно может оказаться.
Попробовал...Действительно, не получается.
Но впервые сталкиваюсь с такой проблемой. В настоящее время из моих собственных 88 пар псевдонимов (русская раскладка, английская раскладка) работают абсолютно все (испытано как минимум на 5 машинах с 3 версиями локализованного автокада).
Поэтому совсем не вижу причин не пользоваться двумя раскладками.
betonolom вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вызов собственной команды из командной строки

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов собственной команды с командной строки vahes911 AutoCAD 9 14.09.2016 20:33
Выполнение команд в режиме командной строки, а не окон fasadel AutoCAD 2 09.01.2015 18:55
Как из командной строки ввести значение в пустующий атрибут блока? mikmik AutoCAD 9 30.03.2012 15:45
Вставка блока из командной строки, но с переопределением. Mikhail AutoCAD 2 25.03.2005 16:34
Помогите вернуть окно командной строки Елена AutoCAD 1 23.09.2004 15:38