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

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

Загрузка VLX-программы выводит в командную строку nil

Ответ
Поиск в этой теме
Непрочитано 20.03.2025, 09:11 #1
Загрузка VLX-программы выводит в командную строку nil
name02
 
Регистрация: 10.01.2020
Сообщений: 415

Сделал тестовую программу
Код:
[Выделить все]
 (defun c:TEST (/ a)
  (setq a (+ 2 3))
  (print a)
  (princ)
) ;_ end of defun
Из исходного файла TEST.lsp скомпилировал TEST.fas и TEST.vlx (все файлы в TEST.zip).

После загрузки файла TEST.lsp в командной строке выводится:
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 20
Размер:	12.2 Кб
ID:	267315

Вопросы:
1 Почему результат загрузки VLX-файла - nil?
2 Как и можно ли убрать nil как результат загрузки VLX-файла?

Просмотров: 707
 
Непрочитано 20.03.2025, 09:54
#2
Кулик Алексей aka kpblc
Moderator

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


1. Если грузить только vlx, команда появляется?
2. vlx случайно не с отдельным именным пространством?
3. Чтоб эха не было, загружай внутри анонимной функции, к примеру.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.03.2025, 10:14
#3
name02


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
1. Если грузить только vlx, команда появляется?
Да, результат такой же - nil


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
2. vlx случайно не с отдельным именным пространством?
Компилировал без галочки "отдельное именное пространство". Вот содержимое файла приложения:
Код:
[Выделить все]
;;; файл сценария сборки Visual LISP [V1.0] TEST saved to:[C:/Users/ayakovlev/Desktop/pr] at:[3/20/25] 
(PRV-DEF (:target . "TEST.VLX")
	 (:active-x )
	 (:separate-namespace)
	 (:protected . T)
	 (:load-file-list (:lsp "TEST.lsp"))
	 (:require-file-list)
	 (:ob-directory)
	 (:tmp-directory)
	 (:optimization . st)
) ;_ end of PRV-DEF

;; EOF

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
3. Чтоб эха не было, загружай внутри анонимной функции, к примеру.
Для конкретной текущей задачи неприменимо - мне надо скомпилировать несколько LSP и DCL-файлов в один VLX-файл.
Хотел сделать чтобы при загрузке VLX в командную строку выходило сообщение типа "Программа ХХХ загружена. Наберите TEST для запуска", а автокад еще nil добавляет в конце.
name02 вне форума  
 
Непрочитано 20.03.2025, 10:21
#4
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от name02 Посмотреть сообщение
Да, результат такой же - nil
Я имел в виду - команда вызывается или нет?

Цитата:
Сообщение от name02 Посмотреть сообщение
Для конкретной текущей задачи неприменимо - мне надо скомпилировать несколько LSP и DCL-файлов в один VLX-файл.
А какая связь между компиляцией и загрузкой?
Код:
[Выделить все]
 ((lambda() (load "FullPathTo.vlx") (princ)))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.03.2025, 10:36
#5
name02


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


Команда вызывается отрабатывает как и написано в LSP-файле.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А какая связь между компиляцией и загрузкой?
Если через лябда-функцию загружать - загружает без nil и программа работает как надо. Но получается, что нужно выполнить следующее:
1 Необходим отдельный LSP-файл
2 В файле прописан путь расположения VLX-файла.

А это уже не подходит - обычные пользователи очень сильно не понимают как и что загружать. Им нужен один файл, чтобы его загрузить/перетащить в документ.
name02 вне форума  
 
Непрочитано 20.03.2025, 10:41
#6
Кулик Алексей aka kpblc
Moderator

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


Offtop: Если нет необходимости в отдельном именном пространстве, и в dcl нет слайдов, я б вообще только fas предоставлял
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.03.2025, 10:53
#7
name02


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


Я тоже про fas думал, но в них можно только lsp запихнуть. dcl можно в lsp-файлах динамически создавать и упихнуть в fas. Хотя мне придется переделать код под такой сценарий.
Но у меня в программе используются файлы-справочники - их же в fas не запихнешь?

Видимо придется использовать существующий сейчас у меня способ - lsp-файлы и один файл для загрузки всех файлов программы
name02 вне форума  
 
Непрочитано 20.03.2025, 11:17
#8
Кулик Алексей aka kpblc
Moderator

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


ИМХО файлы-справочники можно и в обычные функции запихнуть. Вообще говоря, тут можно ооочень много вариантов сотворить
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.03.2025, 11:53
#9
name02


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


Можно, но почему-же nil появляется - непонятно...
name02 вне форума  
 
Непрочитано 20.03.2025, 12:16
#10
===AAA===


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


Возможно, дело в "асинхронности" выполнения (princ ...).
Замечено за ней такое непотребство.

Попробуй "пропихнуть буфер вывода", поставив перед ней
синхронную (write-line "").
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Автор темы   Непрочитано 11.04.2025, 12:49
#11
name02


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


Пробовал и так и сяк - результат загрузки vlx-приложения в Автокад все равно nil
На форуме Автодеска нашел аналогичный вопрос - местные пишут что это странно, но это нормально
ссылка на кэш-архив форума
name02 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Загрузка VLX-программы выводит в командную строку nil



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить пользовательскую команду в командную строку? gnuvse AutoCAD 8 10.08.2020 08:30
Как вернуть на место командную строку? vertex123 AutoCAD 34 04.08.2016 08:59
команды работают только через командную строку MegaPascal AutoCAD 2 19.05.2009 22:16
Открытие нового файла только через командную строку %( AVM AutoCAD 6 08.12.2008 16:33
Файлы отк-ся и сох-тся только через командную строку AutoCad Zlobin AutoCAD 11 21.09.2006 14:59