|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Создание DCL
Регистрация: 01.07.2010
Сообщений: 521
|
||
Просмотров: 11399
|
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Посмотри по ссылкам, хорошо расписано, жаль не по-русски, но картинок много
![]() http://aco.ifmo.ru/~nadinet/html/lectures/dcl_tile.html http://web2.airmail.net/terrycad/Tut.../MyDialogs.htm http://www.jefferypsanders.com/autolisp_DCL.html http://www.afralisp.net/dialog-control-language/ Про ObjectDCL (он же OpenDCL) написано тут: http://forum.dwg.ru/showthread.php?t...hlight=OpenDCL Гуру рекомендуют им не пользоваться. ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Практически любая книга Н.Н.Полещука по программированию в AutoCAD
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
В одно не врубаюсь пока... Сделал я ДСЛ в котором описал все кнопки и тд нужного окошка. Ок... в программе сделал лоад этого файла...окно запустится, я там что-то введу... А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать? Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж? Насколько я понял стандартным дсл так нельзя делать...
|
|||
![]() |
|
||||
Цитата:
Ну и лодырь же ты... |
||||
![]() |
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Да нет, не лодырь... вообще сам все привык делать, но тут дуб дубом вообще...пока оч мало понимаю, так бы не писал сюда.
А как насчет: Цитата:
Кажется допер. Если ошибаюсь - поправьте. В общем делаю дсл файл в котором описываю свойства окна комбобокс, списка и картинок... После выбора из комбобокса значения, раскрывается список в котором тыкнув на любую строчку появляется картинка, далее закрываю окно кнопкой ок и получается, что на какую кнопку тыкнул та ифна сохраняется в переменной и после чего могу уже вызвать нужный файл. Теперь вопрос еще...после того, как я выбрал значения в одном окошке и по нему должен открытся список - это нужно описывать в дсл или в лиспе? Последний раз редактировалось Zaghim, 07.07.2010 в 15:53. |
|||
![]() |
|
||||
не отмазывайся. Это не оправдание тому, что ты имея такой справочник, даже не открываешь его. Найти в нём ответы на твои вопросы просто. Но ты предпочитаешь сидеть перед монитором и в носу ковырять, в ожидании, что тебе ответят. А если не ответят? Так и будешь неделями сидеть? При таком отношении к работе, твой КПД ниже плинтуса. Бери книгу и читай, нефиг глупые вопросы задавать. Я более отвечать не буду - пусть Sad Dog отвечает (он у нас рубаха-парень, времени свободного у него вагон...).
|
||||
![]() |
|
||||
hwd, зря ты всех обзываешь, Zaghim - лентяем, Sad Dog - альтруистом.
Мне вот тоже было тяжело в своё время разбираться с DCL, и имея ту же книгу Полещука, я так же задавал вопросы на форуме, например: Включение\выключение edit_box по toggle, кстати там целая ветка повещена DCL Главная / Форум / Программирование / DCL / Цитата:
Код:
Код:
вариант 2 Очень часто нужно не просто записать все значения при выходе из диалога, но и произвести какое-либо действие при их вводе, напремер проверить тип вводимых данных, тогда делаем (action_tile) конкретно на сам элемент edit_box Код:
Так же очень не удобно выражение action_tile писать в виде строки, т.е. в кавычках, по-этому гораздо удобнее записывать так: Код:
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Это не "обзывание"...
Одно дело имея книгу реально пользоваться ею и задавать вопросы, а другое - лодырничать, что и продемонстрировал топикстартер. Ответы на его вопросы элементарно находятся по оглавлению (что я и продемонстрировал выше). Он даже и не пытался найти, а это: Цитата:
То, что представители данного форума начинают защищать таких лодырей - это прямое поощрение лени и разгильдяйства. Это превращает форум из источника интересной информации в набор бесполезных топиков. Поскольку бороться с ветряными мельницами бесполезно (да и не нужно - это забота модераторов), прекращаю делать замечания и буду игнорировать глупые вопросы, тем более что на форуме полно мемберов, которые с удовольствием на них отвечают, понижая тем самым уровень обсуждаемой информации до уровня "Как нарисовать линию в Автокаде?", называя это "помощью", а не "поощрением к лени". ИМХО - это зло. |
||||
![]() |
|
||||
Помогаю, кому делать нечего. Регистрация: 27.03.2009
Русская деревня
Сообщений: 394
|
hwd. Мне кажется, что Вы напрасно так резко обозвали людей лентяями. Дело в том, что у нас справочная литература почему-то делается
в основом двух типов: 1. Для абсолютных "чайников". 2. Для крутых "профи". А между ними как в старом анекдоте - "диспропорция", а точнее полный вакуум. Не скрою, сам нарывался на такие ситуации: гляжу в книгу, а вижу ...... Нужна литература типа от "простого к сложному"- вот в чем дело, а не в лени, как Вы утверждаете. PS: это моё личное мнение без претензий на истину. |
|||
![]() |
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Мда уж...навалилось критики на меня)))
Честно принаюсь, перед тем как писать пробежал по главе DCL... вот честно... и прям перед тем как мне написали смотри страницу такую-то (get_title) я эту самую страницу и смотрел...прочитал не заострил внимания и пошел дальше... В книге все идет можно сказать в кучу и тут уж надо уметь из этой кучи доставать нужное...а тому, кто вообще не понимает в этом - это адский труд)))) сейчас уже более менее въехал и понимаю, благобдабдаря всем вам, критикам и светлым душам ))) |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Так ссылку я давал
![]() |
|||
![]() |
|
||||
Помогаю, кому делать нечего. Регистрация: 27.03.2009
Русская деревня
Сообщений: 394
|
|
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
а то задолбает, если ума нет, а с vl-prin1-to-string хорошо придумано, хотя можно тип ООП с отдельными функциями, а в action_tile только название функции отклика забивать |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
gomer
Цитата:
![]() |
|||
![]() |
|
||||
Ищу работу Регистрация: 12.06.2010
Сообщений: 35
|
1. Всё правильно делаешь.
Есть ещё один вариант, когда определяется через defun функция без аргументов и передается в третий аргумент функции new_dialog Код:
2. Offtop: (lambda nil ....) - это стильно! ![]() 3. Один старый перец по кличке Пастух с сайта autocad.ru (ныне caduser.ru), как то выкладывал зело-мудрёную библиотеку под названием FreshDCL. Она как раз написана в объектно-ориентированном стиле. Посмотри картинки в прикрепленном архиве. Кстати, коды открыты, так что при желании... Только можно в психушку загреметь, да и шкурка выделки не стоит. Лучше освоить WindowsForms или WPF, да научиться вязать lisp и .NET, и будет тебе счастье на долгие годы вперед. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
dcl-файл сохранен в c:\temp\d_tpos.dcl?
И обрати внимание на разницу строк: Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Диалог запускается функцией (start_dialog), которая в коде присутствует.
P.S. http://dwg.ru/pub/9 - читался?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Сообщений: n/a
|
Цитата:
Правильноли я делаю: 1.Запускаю DCL в редакторе лиспа. 2.Сервис->приложения-> *.lsp 3.В ком.строке (start_dialog)->Enter ? Добавлено: Получилось.Загрузил lsp файл в редакторе лиспа и добавил C: Последний раз редактировалось Владимир Егорьев, 24.10.2010 в 00:30. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Чтобы лисп загрузить в кад достаточно его перетащить (файл а не текст) в окно автогада... Дальше#32 и получаете окошко |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Через action_tile
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ну, либо на него нажать, либо на кнопку [OK]. На крайний случай - (done_dialog).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Владимир Егорьев, покажи полный код - и dcl, и lsp для его активизации.
P.S. На данный момент справка по AutoLISP либо на английском, либо в печатном (ищи книги Полещука; но учиться по ним тяжело).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Уже нет сил на полноценную проверку, но, ИМХО: а где (action_tile) ?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Сообщений: n/a
|
gomer
У Полещука: ok_only-элемент в виде колонки из одного элемента с кнопкой OK Кулик Алексей aka kpblc Если ты к тому что у меня в принципи нет action_tile-то я просто пока до этого не дошёл.Я просто пока построил диалоговое окно без действий.Если ты про то что использовать action_tile в качестве воздействия на крестик-то я не знаю как это выполнить.Как я понимаю происходящее-то крестик это атрибут самого окна по умолчанию,и чтобы на этот крестик воздействовать должна быть команда,но я её не нашёл у Полещука. (Поправь если я заблуждаюсь) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Владимир Егорьев, у тебя не прописано действие Cancel. Попробуй такой код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Алгоритм такой:
1. Меняешь ok_button; на ok_only (смотришь нажимается ли крестик) 2 Заменяешь (start_dialog) на (setq dcl_rt (start_dialog)) (смотришь что возвращает dcl_rt 3. Вместо ok_only используешь ok_cancel (жмешь все кнопки и крестик, смотришь переменную dcl_rt) ой, kpblc меня опередил =) Последний раз редактировалось gomer, 09.04.2011 в 12:19. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ламерские вопросы по 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 |