|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Форма для ввода данных в LISP
Регистрация: 11.03.2009
Сообщений: 33
|
||
Просмотров: 5535
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
1. Если разговор именно про VB, то можно попытаться сделать свой СОМ-сервер, который зарегистрировать в системе и обращаться к нему из-под лиспа.
2. Если разговор про VBA, то на форуме была тема про обмен данными между VBA и LISP. 3. Я бы задумывался о dcl-окне, где на каждый text_box прописывается свой action_tile.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.04.2008
Сообщений: 401
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Еще пример:
файл диалога (в коде прописан как c:\tmp.dcl) Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Здесь еще посмотри
Dcl_Tiles.lsp и Dcl_Tiles.dcl
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Теперь я уже ничего не понимаю. Какой 000.dcl? Какой у него код? Какой лисп запускается?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
(findfile "000.dcl") что возвращает?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Значит у тебя сам файл диалога не находится. Помещай его в любой каталог поддержки AutoCAD'a
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
Вроде заработало...
Так вроде всё понятно, но вот вопрос, а как например если мне надо второе окошко сделать указывать его положение на форме?...координаты как-то прописывать? name: dialog{label="Название диалога"; :text{label="какойто текст";key="a";alignment=left;} :edit_box{label="значение";key="b";value="начально е значение";} ok_only;} Последний раз редактировалось HooDRooK, 15.05.2009 в 11:42. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Переведи вопрос. Ничего не понял.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
короче где прописывается сколько окошек на открывающейся форме и как они распологаются? в коде диалога или ЛИСПа? и каким образом...например мне надо два окошка друг над другом... и чего то смотря на оба кода я как то не смог найти этого...
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Два окошка - это два окошка. А два элемента диалога - это два элемента диалога. Хоть какой-нибудь скрин сделай (формы хоть на VBA, это сейчас неважно), чтоб понять чего хотишь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Так это напрямую в dcl-файле прописывается...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
HooDRooK, давай так:
1. Открой Excel 2. В Excel'е Меню Сервис->Макрос->Редактор Visual Basic 3. В редакторе Visual Basic Меню Insert->User Form 4. Сконструируй форму диалога (для изменния свойств элементов формы используй окно свойств: Меню View->Properties Window) 5. Запусти это дело (при выделенной форме нажми F5) 6. Далее с помощью кнопки PrintScreen содержимое экрана в буфер. 7. Вставь картинку из буфера например в Paint (mspaint.exe), сохрани её в файл и выложи на форуме 8. ... 9. Здесь тебе выложат код формы на dcl, аналогичный твоей картинке. |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
Короче мне надо получить типа вот такую вот форму...
т.е. я ввожу данные...потом нажимаю кнопку "ввести данные"...потом идёт проверка правильности ввода данных, например: а>0, b>1, с>2... Если всё нормально ты выполняется далее лисп, а если не удовлетворяет проверке, то надо написать "ошибка" и вернуться к вводу данных... Вот как это реализовать с помощью dcl фалйа в лиспе?... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну, код dcl-файла по идее достаточно прост (если действия на каждый элемент прописывать не внутри dcl):
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
вот не могу понять что за такое...
вот код LISPа, данный воодятся соответственно через dcl файл (defun c:dialog2 ( / dn zn L1 L6 D1 D6 D7 N ) (setq dn(LOAD_DIALOG "0002.dcl")) (new_dialog "dlg2" dn "") (setq L1 (GET_TILE "L1_value")) (ACTION_TILE "L1_value" "(setq L1 $value)") (setq L6 (GET_TILE "L6_value")) (ACTION_TILE "L6_value" "(setq L6 $value)") (setq D1 (GET_TILE "D1_value")) (ACTION_TILE "D1_value" "(setq D1 $value)") (setq D6 (GET_TILE "D6_value")) (ACTION_TILE "D6_value" "(setq D6 $value)") (setq D7 (GET_TILE "D7_value")) (ACTION_TILE "D7_value" "(setq D7 $value)") (setq N (GET_TILE "N_value")) (ACTION_TILE "N_value" "(setq N $value)") (START_DIALOG) (UNLOAD_DIALOG dn) (princ L1) (princ L6) (princ D1) (princ D6) (princ D7) (princ N) (while (< L1 0) (setq L1 (getreal "\nÎøèáêà! L1<0, Ââåäèòå L1=>0"))) (if (= L1 0) (setq L6 0) (setq D1 0) (setq D6 0) (setq D7 0) (setq N 0)) (princ L1) (princ L6) (princ D1) (princ D6) (princ D7) (princ N) ) Так вот когда нажимаешь ок на форме, она закрывается, первые princ пишутся и всё хорошо, но почему то проверка не делается дальше!...т.е. если ввести даже L1=-1 то никакого эффекта... |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
Вот попробовал вставить так, но выдаёт "неверный тип аргумента для сравнения "-1" 0"...это я так понимаю что при введении данных у меня получаются строковые величины что-ли?...если так то как правильно их вводить, чтобы это были именно цифры а не текст?...
|
|||
![]() |
|
||||
Регистрация: 11.03.2009
Сообщений: 33
|
пересохраняю данные с помощью atoi
(defun c:dialog2 ( / dn zn L1 L6 D1 D6 D7 N ) (setq dn(LOAD_DIALOG "0002.dcl")) (new_dialog "dlg2" dn "") (setq LL1 (GET_TILE "L1_value")) (ACTION_TILE "L1_value" "(setq L1 $value)") (setq LL6 (GET_TILE "L6_value")) (ACTION_TILE "L6_value" "(setq L6 $value)") (setq DD1 (GET_TILE "D1_value")) (ACTION_TILE "D1_value" "(setq D1 $value)") (setq DD6 (GET_TILE "D6_value")) (ACTION_TILE "D6_value" "(setq D6 $value)") (setq DD7 (GET_TILE "D7_value")) (ACTION_TILE "D7_value" "(setq D7 $value)") (setq NN (GET_TILE "N_value")) (ACTION_TILE "N_value" "(setq N $value)") (START_DIALOG) (UNLOAD_DIALOG dn) (setq L1 (atoi LL1)) (setq L6 (atoi LL6)) (setq D1 (atoi DD1)) (setq D6 (atoi DD6)) (setq D7 (atoi DD7)) (setq N (atoi NN)) (princ L1) (princ L6) (princ D1) (princ D6) (princ D7) (princ N) princ пишет все нули...?! |
|||
![]() |
|
||||
Помогаю, кому делать нечего. Регистрация: 27.03.2009
Русская деревня
Сообщений: 394
|
Ты преобразуешь в число несуществующие строки LL1,DD1 и т.д.
Нужно примерно так: Код:
Последний раз редактировалось E-degtyarev, 27.05.2009 в 13:20. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закладные лифтовых приямков | винсент75 | Поиск литературы, чертежей, моделей и прочих материалов | 13 | 11.08.2009 10:16 |
Копирование данных для спецификаций из выносок СПДС в таблицу из мтекстов | Red Nova | Программирование | 177 | 08.12.2008 11:35 |
LISP для AutoCAD-2009: проблемы со скобками | Лентяй | LISP | 14 | 16.11.2008 02:40 |
Нужен LISP для заливки отверстий | ilka_t | AutoCAD | 20 | 24.03.2004 16:06 |