Тема: В ЧЕМ ПРИКОЛ?

не могу сделать окошко!
даже если беру пример из туториала, допустим:
MyAlert1 : dialog {
  key = "Title";
  label = "";//Title$ from lsp file
  spacer;
  : text {
  key = "Text1";
  label = "";//Message$ from lsp file
  width = 20.6;
  alignment = centered;
  }
  spacer;
  ok_only;
}//MyAlert1   
*************************
(defun MyAlert1 (Title$ Message$ / Dcl_Id%)
  (princ "\nMyAlert1")(princ)
  ; Load Dialog
  (setq Dcl_Id% (load_dialog "MyDialogs.dcl"))
  (new_dialog "MyAlert1" Dcl_Id%)
  ; Set Dialog Initial Settings
  (set_tile "Title" Title$)
  (set_tile "Text1" Message$)
  ; Dialog Actions
  (start_dialog)
  ; Unload Dialog
  (unload_dialog Dcl_Id%)
  (princ)
);defun MyAlert1
я так понимаю чтоб эта вся канитель заработала нада запустить лисп файл, и он уже запустит окно.....
но у меня при запуске файла пишет
1 form loaded from #<editor "C:/Documents and Settings/tormoz/&#208;&#224;&#225;&#238;&#247;&#232;&#233; &#241;&#242;&#238;&#235;/dcl/MyDialogs.LSP">
_$ и ничего не происходит!
подскажите в чем тут прикол?! что я упускаю??

Re: В ЧЕМ ПРИКОЛ?

Выполнить с консоли или из командной строки функцию, которую Вы определили в пространстве документа, загрузив Ваш LSP-файл:
(MyAlert1 "Заколовок" "Сообщение")

Re: В ЧЕМ ПРИКОЛ?

Извините, а что исходя, допустим, из преведенного выше примера будет "Заголовком" и что "Сообщением" ?

Re: В ЧЕМ ПРИКОЛ?

я после загрузки этого лисп файла, в командной строке автокада написал (MyAlert1 "слово1" "слово2")
(я так понял что неважно что туда писать? )
Command: (MyAlert1 "слово1" "слово2")
MyAlert1
и все, так ничего и не произошло....

Re: В ЧЕМ ПРИКОЛ?

а сам dcl-файл загружается?

Re: В ЧЕМ ПРИКОЛ?

Работающие файлы:
MyDialogs.dcl

MyAlert1 : dialog {
key = "Title";
label = "";
spacer;
: text {
key = "Text1";
label = "";
width = 20.6;
alignment = centered;
}
spacer;
ok_only;
}

MyDialogs.lsp

(defun MyAlert1 (Title Message / Dcl_Id)
(setq Dcl_Id (load_dialog "MyDialogs.dcl"))
(new_dialog "MyAlert1" Dcl_Id)
(set_tile "Title" Title)
(set_tile "Text1" Message)
(start_dialog)
(unload_dialog Dcl_Id)
(princ)
)

Пример вызова:

(MyAlert1 "Собака" "Спит")

Re: В ЧЕМ ПРИКОЛ?

...Караван стоит.
И ветер ничего не носит.

Re: В ЧЕМ ПРИКОЛ?

> kpblc
сам dcl запускается нормально :)

Re: В ЧЕМ ПРИКОЛ?

> Владимир Громов
Вы меня извините, ...толи у меня пальцы волосатые....толи автокад с глюкамии....
Я только что от сюда же скопировал эти коды, сохранил с нужными именами, запустил лисп-файл, он написал :
"1 form loaded from #<editor "C:/Documen....."
После чего набрал в командной строке Автокада
вот эту команду (MyAlert1 "Собака" "Спит")И СОВЕРШЕННО НИЧЕГО НЕ ПРОИЗОШЛО!!!
у меня AutoCad 2006 ENG

Re: В ЧЕМ ПРИКОЛ?

То, что dcl запускается нормально, еще ни о чем не говорит. После строки

(setq Dcl_Id (load_dialog "MyDialogs.dcl"))

сделай нечто типа (alert (vl-princ-to-string dcl_id)) - чего будет показано? Какое значение?

Re: В ЧЕМ ПРИКОЛ?

> kpblc
Огромное СПАСИБО! После того как добавил эту строку появилось окно со значением "-1"....
А ВЫ немогли бы мне обьяснить как эту строку видоизменить чтоб она не "-1" выводила, а то что мне нужно?

Re: В ЧЕМ ПРИКОЛ?

> loki
Я вот этого не понимаю:

"1 form loaded from #<editor "C:/Documen....."

Кто это пишет?
Оба файла должны находиться на пути доступа AutoCAD к файлам поддержки.

Re: В ЧЕМ ПРИКОЛ?

Ххе, я предупреждал, что dcl-файл не может быть найден. dcl (так же как и lsp в общем случае) должен лежать по путям поддержки ACAD'a). либо надо указывать напрямую путь к нему.

Фунция load_dialog:
Загружает dcl-файл в память. Возвращает целое значение (отрицательное, если загрузка не выполнилась<...>

(c) Н.Н.Полещук, VisualLISP И секреты адаптации AutoCAD, BHV, Спб, 2001 г.
Допустим, dcl-файл имеет имя MyDialogs.lsp
Если выполнение (findfile "MyDialogs.dcl") дает nil, то файл сам ACAD найти не может. Надо помочь :)
К примеру, файл лежит в каталоге c:\adds\lsp. Тогда надо заменить MyDialogs.dcl на
"c:\\adds\\lsp\\MyDialogs.dcl"
И подставлять именно эту строку в load_dialog
По-моему, так

Re: В ЧЕМ ПРИКОЛ?

Поправка:

Допустим, dcl-файл имеет имя MyDialogs.lsp

Читать как

Допустим, dcl-файл имеет имя MyDialogs.DCL

Re: В ЧЕМ ПРИКОЛ?

> Владимир Громов
"""Я вот этого не понимаю:
«    "1 form loaded from #<editor "C:/Documen.....""""
Это пишется в Visual lisp consol при запуске программы...

Re: В ЧЕМ ПРИКОЛ?

> kpblc
и *.dcl и *.lsp находились в одной папке на робочем столе..и наверно дествительно он не находил файл..я переместил их в Мои ДОкументы, и окно запустилось!
ВСЕМ ОГРОМНОЕ СПАСИБО!
теперь буду писать курсовой..и наверно еще появятся вопросы, так что скоро наверно напишу ;)

Re: В ЧЕМ ПРИКОЛ?

Чтобы все находилось можно установить свою переменную окружения (setenv "aaa" "Диск:\\Путь")