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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Проблема выполнения функции command

Проблема выполнения функции command

Ответ
Поиск в этой теме
Непрочитано 25.09.2017, 10:21 #1
Проблема выполнения функции command
power85
 
Регистрация: 03.02.2017
Сообщений: 56

Здравствуйте.
Есть пользовательская команда "c: print_in_pdf". В командной строке команда "print_in_pdf" выполняется, тоже самое при записи в lisp (C: print_in_pdf) или (eval (list 'C: print_in_pdf)) и выполнении.
Название команды берется из динамического текстового списка, по этому прописывать в lisp не получится (например (C: print_in_pdf)) все команды.
Ошибка при выполнении функции command: _.PRINT_IN_PDF Неизвестная команда "PRINT_IN_PDF". Для вызова справки нажмите F1.
Вот что я пробовал, но все равно ошибка (в командной строке команда "print_in_pdf" выполняется):
(command "C: print_in_pdf")
(command "C: PRINT_IN_PDF")
(command "_.PRINT_IN_PDF" "")
(command "PRINT_IN_PDF" "")
(command "_.print_in_pdf" "")
(command "_print_in_pdf" "")
Есть подозрения что пользовательские команды в функции не выполняются.

Последний раз редактировалось power85, 25.09.2017 в 10:32.
Просмотров: 6035
 
Непрочитано 25.09.2017, 10:27
#2
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
 ;; Что-то свое
(c:print_in_pdf)
;; и дальше код
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.09.2017, 10:34
#3
power85


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


Название команды берется из динамического текстового списка, по этому прописывать в lisp не получится (например (C: print_in_pdf)) все команды.
power85 вне форума  
 
Непрочитано 25.09.2017, 10:55
#4
Кулик Алексей aka kpblc
Moderator

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


Ну и что?
Код:
[Выделить все]
(foreach item '("print_to_pdf" "my_command" "settings")
(eval (read (strcat "(c:" item ")"))
)
Писал код без проверок и "насухую"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.09.2017, 11:11
#5
power85


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


Спасибо. Работает. (eval (list(read "C: print_in_pdf")))
Не знал про функцию read, в книге её нет. Вы не подскажите источник где про эту функцию почитать?
power85 вне форума  
 
Непрочитано 25.09.2017, 11:33
#6
Кулик Алексей aka kpblc
Moderator

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


Это в какой книге ее нет? Какая-то книга неправильная. В справке функция есть: https://knowledge.autodesk.com/searc...1FE51-htm.html
P.S. Меня один!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.09.2017, 11:53
#7
Profan


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


Offtop: В "Книге о вкусной и здоровой пище" ее нет.
Profan вне форума  
 
Непрочитано 04.06.2021, 12:22
#8
Sergei N


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


Хорошо! Вызывать пользовательскую команду умеем:
Код:
[Выделить все]
 (eval (list (read "c:custom_subr")))
А как можно в нее передать параметры?
Sergei N вне форума  
 
Непрочитано 04.06.2021, 12:58
#9
Кулик Алексей aka kpblc
Moderator

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


Команда в нормальном режиме никаких параметров не имеет, в отличие от функции
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.06.2021, 13:57
#10
Sergei N


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


Цитата:
Команда в нормальном режиме никаких параметров не имеет, в отличие от функции
Согласен. Я не знаю как правильно в этом случае назвать данные, которые нужно получить команде в ходе работы, поясню на примере:
Команда автокада
Код:
[Выделить все]
 (command "_line" "0,0" "1,1" "")
;или так:
(apply 'command (list "_line" "0,0" "1,1" ""))
Команда пользовательская: как подобные данные передать из лисп-кода (без интерактивного ввода). Вот в чём конкретно вопрос.

Цитата:
Команда в нормальном режиме никаких параметров не имеет, в отличие от функции
Согласен. Я не знаю как правильно в этом случае назвать данные, которые нужно получить команде в ходе работы, поясню на примере:
Команда автокада LINE:
Код:
[Выделить все]
 (command "_line" "0,0" "1,1" "")
;или так:
(apply 'command (list "_line" "0,0" "1,1" ""))
Команда пользовательская: как подобные данные передать из лисп-кода (без интерактивного ввода). Вот в чём конкретно вопрос.

Последний раз редактировалось Кулик Алексей aka kpblc, 04.06.2021 в 14:42.
Sergei N вне форума  
 
Непрочитано 04.06.2021, 14:17
#11
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


если создать команду с аргументами, напрмер
Код:
[Выделить все]
 (defun c:custom_subr (param_1 param_2 / ) (+ param_1 param_2))
то она естественно их примет ТОЛЬКО в виде:
1.
Код:
[Выделить все]
 (c:custom_subr 10 20)
или
2.
Код:
[Выделить все]
 (eval (list (read "c:custom_subr") 10 20))
смысла в этом особого нет, но аргументы передать можно.
koMon вне форума  
 
Непрочитано 06.06.2021, 11:57
#12
===AAA===


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


Или через глобальные переменные.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Проблема выполнения функции command

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Tekla. Есть ли проблема с сварными соединениями в теле бетона? Yuzer Tekla 3 01.08.2016 13:01
Проблема с образмериванием при адаптации (LSP) PIARX Программирование 8 10.11.2015 13:58
Проблема в объектном отслеживание (AutoCAD 2013-2014) gomer8 Баги и пожелания в Autodesk 0 19.06.2013 12:22
lisp из autocad 2004 некорректно выполняется в autocad 2008 sid_geo LISP 13 11.10.2012 11:20
Два задания не могу найти ошибку...подскажите.. Kashtan$$$ Программирование 7 07.08.2011 21:28