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

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

Почему в макросе команда работает а в лисп-выражении не известна ?

Ответ
Поиск в этой теме
Непрочитано 13.01.2012, 08:08 #1
Почему в макросе команда работает а в лисп-выражении не известна ?
Jonas
 
конструктор машиностроитель
 
Новосибирск
Регистрация: 14.05.2007
Сообщений: 893

Пользуюсь макросом (привожу не много упрощенный вид) для оформления выносного элемента.
Код:
[Выделить все]
 elemden;\\\\fragmden;к;\;;\\_mtext;\с;5;\
Пробую лисп-выражение -
Код:
[Выделить все]
 (defun C:elf ()
  (command "elemden" pause pause pause pause)
  (command "fragmden" "к" pause "" "" pause pause)
  (command "_mtext" pause "с" 5 pause)
  )
Не желает работать, пишет <не известная команда elemden>.
Объясните пожалуйста, в чем причина.
Просмотров: 2434
 
Непрочитано 13.01.2012, 08:36
#2
Кулик Алексей aka kpblc
Moderator

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


Проверяй последовательность загрузки приложений.
А код elemden и fragmden глянуть можно? Просто любопытно...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.01.2012, 09:14
#3
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Да, конечно.
Вложения
Тип файла: lsp ElemDen.lsp (1.9 Кб, 52 просмотров)
Тип файла: lsp FragmDen .lsp (17.3 Кб, 43 просмотров)
Jonas вне форума  
 
Непрочитано 13.01.2012, 09:54
#4
Кулик Алексей aka kpblc
Moderator

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


Код комментировать некогда, хотя лично я попытался бы его переделать (если б было время). Совет прежний - проверяй последовательность загрузки lsp.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.01.2012, 10:20
#5
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


А что значит последовательность загрузки, и как на ее влиять?
Jonas вне форума  
 
Непрочитано 13.01.2012, 10:23
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Offtop: То Крыс - я от Вас такого не ожидал - а с каких пор у нас через command можно вызывать лисп функции?
Автору - Ваши лисп функции вызываються через (c:elemenden) и (c:fragmden)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.01.2012, 10:46
#7
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
а с каких пор у нас через command можно вызывать лисп функции?
С момента появления функции (vlax-add-cmd)
Александр Ривилис вне форума  
 
Непрочитано 13.01.2012, 11:15
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Offtop: Так ее ж предварительно вызвать надо. А Алексей напрвил в "глубокие дебри".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.01.2012, 10:38
#9
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Так может быть
Код:
[Выделить все]
(load "J:\\NewL\\ElemDen.lsp")
(load "J:\\New\\FragmDen .lsp")
(c:elemden)
(c:fragmden)
(command "_mtext" pause "с" 5 pause)
В FragmDen .lsp пробел между n и точкой. Запрос на к - вручную или внутри проги убрать.
А прежняя конструкция не работает в 2008. Когда появился этот (vlax-add-cmd)?
Victor вне форума  
 
Автор темы   Непрочитано 14.01.2012, 13:23
#10
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Victor Посмотреть сообщение
Так может быть
Код:
[Выделить все]
(load "J:\\NewL\\ElemDen.lsp")
(load "J:\\New\\FragmDen .lsp")
(c:elemden)
(c:fragmden)
(command "_mtext" pause "с" 5 pause)
В FragmDen .lsp пробел между n и точкой. Запрос на к - вручную или внутри проги убрать.
А прежняя конструкция не работает в 2008. Когда появился этот (vlax-add-cmd)?
Так тот же макрос + запрос "к".
Jonas вне форума  
 
Непрочитано 14.01.2012, 16:55
#11
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Victor Посмотреть сообщение
Когда появился этот (vlax-add-cmd)?
Если не изменяет память, то вместе с расширением AutoLisp до VisualLisp, т.е. во времена AutoCAD 2000.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Почему в макросе команда работает а в лисп-выражении не известна ?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование полей в текст YuraVel AutoCAD 17 14.04.2015 14:30
Не работает команда SHELL Torino AutoCAD 3 12.02.2009 21:08
Не работает команда matcprop bobis Разное 2 03.04.2007 21:11
Команда ОФФСЕТ работает некорректно Абдула AutoCAD 4 11.03.2006 16:29