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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание DCL

Создание DCL

Ответ
Поиск в этой теме
Непрочитано 07.07.2010, 14:08
Создание DCL
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Поискал на форуме, точного ничего не нашел.
Подскажите чайнику, как нужно создавать DCL и как его потом запустить (это самое важное). Ничего не пойму...везде сразу коды коды...а как и куда ничего нету...Что еще важней, как все запустить, если создавать окно в ObjectDCL.
Хотелось бы сделать окошко в котором был бы комбо бокс...в нем выбрав нужную деталь показывались бы 4 картинки с различными ее видами...к каждой картинке был бы прикреплен файл... и ткнув на картинку я мог бы вставить это в чертеж. Такое реально сделать?
Просмотров: 11450
 
Непрочитано 09.07.2010, 13:37
#21
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


E-degtyarev,теперь он не .com, a .net
alex8888 вне форума  
 
Автор темы   Непрочитано 09.07.2010, 14:46
#22
Zaghim


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


На английском тяжко(((
Zaghim вне форума  
 
Непрочитано 09.07.2010, 15:02
#23
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Offtop: Zaghim, и не говори Было б хотя бы на немецком.
Правда, на Зулу было бы еще хуже
alex8888 вне форума  
 
Непрочитано 09.07.2010, 15:05
#24
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Я тоже аглицкого не знаю, но в таких ситуациях мне помогает машинный перевод - разобраться можно.
E-degtyarev вне форума  
 
Непрочитано 09.07.2010, 15:25
#25
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Disney Посмотреть сообщение
Так же очень не удобно выражение action_tile писать в виде строки, т.е. в кавычках, по-этому гораздо удобнее записывать так:
ИМХО для вывода ошибок в дилогах есть errtile вместо alert,
а то задолбает, если ума нет,
а с vl-prin1-to-string хорошо придумано,
хотя можно тип ООП с отдельными функциями,
а в action_tile только название функции отклика забивать
gomer вне форума  
 
Непрочитано 09.07.2010, 15:48
#26
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


gomer
Цитата:
хотя можно тип ООП с отдельными функциями,
а в action_tile только название функции отклика забивать
интересная идея, сам тоже хочу реализовать. Не могу никак подступиться, с чего начать. Нужен какой-то шаблон, чтобы развивать дальше - да чей то туплю малость.
alex8888 вне форума  
 
Непрочитано 09.07.2010, 16:05
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Вот наваял как-то но не закончил... ток без смеха, а критику пожалуйста
Вложения
Тип файла: zip TestDCL.zip (1.7 Кб, 86 просмотров)
gomer вне форума  
 
Непрочитано 09.07.2010, 18:51
1 | #28
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


1. Всё правильно делаешь.
Есть ещё один вариант, когда определяется через defun функция без аргументов и передается в третий аргумент функции new_dialog
Код:
[Выделить все]
(defun common-handler () ...здесь будут доступны $key, $value, $reason, $x, $y
.....используя $key можно определять, в каком из контролов произошло событие.....)

(new_dialog "ibutton" id "(common-handler)")
Иногда так может оказаться удобнее.

2. Offtop: (lambda nil ....) - это стильно!

3. Один старый перец по кличке Пастух с сайта autocad.ru (ныне caduser.ru), как то выкладывал зело-мудрёную библиотеку под названием FreshDCL. Она как раз написана в объектно-ориентированном стиле. Посмотри картинки в прикрепленном архиве.
Кстати, коды открыты, так что при желании... Только можно в психушку загреметь, да и шкурка выделки не стоит. Лучше освоить WindowsForms или WPF, да научиться вязать lisp и .NET, и будет тебе счастье на долгие годы вперед.
Вложения
Тип файла: rar Graph.rar (33.6 Кб, 85 просмотров)
Sad Dog вне форума  
 
Непрочитано 23.10.2010, 21:16
#29
Владимир Егорьев


 
Сообщений: n/a


Как выполнить открытие диалог. окна в самом автокаде?
Я написал код диалог. окна и код на его вызов из книги Н.Полещука "AutoLISP & Viisual LISP в среде AutoCAD",а куда дальше-не знаю и не понимаю.
Заранее благодарю.

Код окна

Код:
[Выделить все]
np_tpos: dialog{label="Настройка данных постели и таблицы";
 :edit_box{label="Ширина таблицы";key="kshir";value="750";edit_width=6; }
 :edit_box{label="Высота таблицы";key="kVys";value="300";edit_width=6; }
 :edit_box{label="Высота букв";key="kHbuk";value="180";edit_width=6; }
 :spacer{height=1; }
 :edit_box{label="Количество балок";key="kNumbalk";
           value="8";edit_width=6; }
 :edit_box{label="Количество коксов в балках";key="kNumkoks";
           value="17";edit_width=6; }
 :spacer {height=1; }
 :radio_row{label="Балки распологаются в таблице";
   :radio_button{label="по столбцам";key="kPoStolb";value="1";}
   :radio_button{label="по строкам";key="kPoStrok";value="0";}
 }
 :spacer{heigth=1; }
 ok_cancel;
}// конец np_tpos
Код вызова

Код:
[Выделить все]
(defun show_tpos ( / dcl_id)
  (if (< (setq dcl_id (load_dialog "C:\Temp\d_tpos.dcl")) 0) (exit))
  (if (not (new_dialog "np_tpos" dcl_id)) (exit))
  (start_dialog)
  (unload_dialog dcl_id)
  (princ)
);defun show_tpos
 
 
Непрочитано 23.10.2010, 21:58
#30
Кулик Алексей aka kpblc
Moderator

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


dcl-файл сохранен в c:\temp\d_tpos.dcl?
И обрати внимание на разницу строк:
Код:
[Выделить все]
(if (< (setq dcl_id (load_dialog "C:\Temp\d_tpos.dcl")) 0) (exit))
Код:
[Выделить все]
(if (< (setq dcl_id (load_dialog "C:\\Temp\\d_tpos.dcl")) 0) (exit))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.10.2010, 23:23
#31
Владимир Егорьев


 
Сообщений: n/a


Да.dcl-файл сохранен в c:\temp\d_tpos.dcl.
С двойными "\"-понял
Ещё здесь моя самодеятельность-изивиняюсь.
В коде примера из книги записано

Код:
[Выделить все]
(defun show_tpos ( / dcl_id)
  (if (< (setq dcl_id (load_dialog "d_tpos.dcl")
	       ) 0) (exit))
  (if (not (new_dialog "np_tpos" dcl_id)) (exit))
  (start_dialog)
  (unload_dialog dcl_id)
  (princ)
);defun show_tpos
Но,я всё одно не знаю как окно запустить из акада.
 
 
Непрочитано 23.10.2010, 23:40
#32
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Владимир Егорьев Посмотреть сообщение
всё одно не знаю как окно запустить из акада.
С:\\temp в пути поддержки када, срочно!!!
потом в ком. строке (show_tpos) и Enter
gomer вне форума  
 
Непрочитано 23.10.2010, 23:40
#33
Кулик Алексей aka kpblc
Moderator

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


Диалог запускается функцией (start_dialog), которая в коде присутствует.
P.S. http://dwg.ru/pub/9 - читался?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.10.2010, 23:52
#34
Владимир Егорьев


 
Сообщений: n/a


Спасимбо.
Когдато читал.И у меня под рукой книга В.Свет,но не могу сосредоточиться на прочтение кода.Вот видите я не вник в суть кодов.Обещаю стараться.
 
 
Непрочитано 24.10.2010, 00:03
#35
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Владимир Егорьев Посмотреть сообщение
И у меня под рукой книга В.Свет
Эта книга совсем о другом, отложите ее и попытайтесь сосредоточиться
gomer вне форума  
 
Непрочитано 24.10.2010, 00:12
#36
Владимир Егорьев


 
Сообщений: n/a


Цитата:
потом в ком. строке (show_tpos) и Enter
Путь прописал.
Правильноли я делаю:

1.Запускаю DCL в редакторе лиспа.
2.Сервис->приложения-> *.lsp
3.В ком.строке (start_dialog)->Enter ?


Добавлено:

Получилось.Загрузил lsp файл в редакторе лиспа и добавил C:

Последний раз редактировалось Владимир Егорьев, 24.10.2010 в 00:30.
 
 
Непрочитано 24.10.2010, 00:48
#37
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Владимир Егорьев Посмотреть сообщение
Путь прописал.
Правильноли я делаю:

1.Запускаю DCL в редакторе лиспа.
2.Сервис->приложения-> *.lsp
3.В ком.строке (start_dialog)->Enter ?


Добавлено:

Получилось.Загрузил lsp файл в редакторе лиспа и добавил C:
Вообще ничего не понятно...
Чтобы лисп загрузить в кад достаточно его перетащить (файл а не текст) в окно автогада...
Дальше#32 и получаете окошко
gomer вне форума  
 
Непрочитано 24.10.2010, 00:58
#38
Владимир Егорьев


 
Сообщений: n/a


Спасибо.Разобрал со всех позиций.И перетаскивал и со скобками в ком.строке вводил и без скобок-всё работает.
Буду осваивать дальше.

p.s.Хотел узнать такую вешь:почему интерфейс (или как правильно это называется) редактора лиспа в акаде 2008 имеет вот такое
Миниатюры
Нажмите на изображение для увеличения
Название: Чертеж1-Model.jpg
Просмотров: 99
Размер:	36.8 Кб
ID:	47041  Нажмите на изображение для увеличения
Название: Чертеж2-Model.jpg
Просмотров: 81
Размер:	36.7 Кб
ID:	47042  
 
 
Непрочитано 25.10.2010, 08:31
#39
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Цитата:
почему интерфейс (или как правильно это называется) редактора лиспа в акаде 2008 имеет вот такое
А что именно Вас смущает?
E-degtyarev вне форума  
 
Непрочитано 25.10.2010, 08:42
#40
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Да он и в 2006 такое имел, и в 2010 такое же
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание DCL



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ламерские вопросы по LISP и DCL TheBuTeK LISP 7 03.07.2016 22:15
Создание диалоговых окон в AutoCAD TwoZero Программирование 145 11.03.2015 18:15
DCL & UserForm VBA Holon Программирование 21 05.10.2007 01:37
Создание help'а к своим прогам Apelsinov Программирование 20 27.07.2006 12:51
Одна из целей: Создание экспертных систем на базе AutoCAD. Сергей Юрьевич Программирование 9 01.01.2005 15:17