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

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

Создание DCL

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

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

Инженер
 
Регистрация: 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
Гуру рекомендуют им не пользоваться.
alex8888 вне форума  
 
Непрочитано 07.07.2010, 14:51
#3
Кулик Алексей aka kpblc
Moderator

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


Практически любая книга Н.Н.Полещука по программированию в AutoCAD
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.07.2010, 15:18
#4
Zaghim


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


Как раз в книге такого не нашел...или я вообще туп
А чем лучше создавать окошки? и Реально ли сделать то, о чем писал в заголовке темы?
Zaghim вне форума  
 
Непрочитано 07.07.2010, 15:19
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
Как раз в книге такого не нашел...или я вообще туп
А чем лучше создавать окошки? и Реально ли сделать то, о чем писал в заголовке темы?
ну и в какой книге ты искал?
hwd вне форума  
 
Автор темы   Непрочитано 07.07.2010, 15:23
#6
Zaghim


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


Полещук Alisз и Vlisp в среде Автокад
Zaghim вне форума  
 
Непрочитано 07.07.2010, 15:23
#7
alex8888

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


В книге Полещука Н.Н. и Лоскутова П.В. "AutoLisp и VisualLisp в среде AutoCAD" см. стр. 234-293.
alex8888 вне форума  
 
Непрочитано 07.07.2010, 15:30
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Открой оглавление, найди в ней главу 3 (Диалоговые окна), посмотри номер страницы (подсказываю: 234)... Самостоятельно в книге страничку найдёшь?
hwd вне форума  
 
Автор темы   Непрочитано 07.07.2010, 15:32
#9
Zaghim


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


В одно не врубаюсь пока... Сделал я ДСЛ в котором описал все кнопки и тд нужного окошка. Ок... в программе сделал лоад этого файла...окно запустится, я там что-то введу... А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать? Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж? Насколько я понял стандартным дсл так нельзя делать...
Zaghim вне форума  
 
Непрочитано 07.07.2010, 15:36
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
В одно не врубаюсь пока... Сделал я ДСЛ в котором описал все кнопки и тд нужного окошка. Ок... в программе сделал лоад этого файла...окно запустится, я там что-то введу... А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать? Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж? Насколько я понял стандартным дсл так нельзя делать...
Т.е. ты хочешь сказать, что Полещук об этом не написал? А если открыть стр. 265 и посмотреть на get_tile...
Ну и лодырь же ты...
hwd вне форума  
 
Автор темы   Непрочитано 07.07.2010, 15:40
#11
Zaghim


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


Да нет, не лодырь... вообще сам все привык делать, но тут дуб дубом вообще...пока оч мало понимаю, так бы не писал сюда.
А как насчет:
Цитата:
Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж?

Кажется допер. Если ошибаюсь - поправьте. В общем делаю дсл файл в котором описываю свойства окна комбобокс, списка и картинок... После выбора из комбобокса значения, раскрывается список в котором тыкнув на любую строчку появляется картинка, далее закрываю окно кнопкой ок и получается, что на какую кнопку тыкнул та ифна сохраняется в переменной и после чего могу уже вызвать нужный файл.
Теперь вопрос еще...после того, как я выбрал значения в одном окошке и по нему должен открытся список - это нужно описывать в дсл или в лиспе?

Последний раз редактировалось Zaghim, 07.07.2010 в 15:53.
Zaghim вне форума  
 
Непрочитано 07.07.2010, 15:47
#12
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
Да нет, не лодырь... вообще сам все привык делать, но тут дуб дубом вообще...пока оч мало понимаю, так бы не писал сюда.
А как насчет:
не отмазывайся. Это не оправдание тому, что ты имея такой справочник, даже не открываешь его. Найти в нём ответы на твои вопросы просто. Но ты предпочитаешь сидеть перед монитором и в носу ковырять, в ожидании, что тебе ответят. А если не ответят? Так и будешь неделями сидеть? При таком отношении к работе, твой КПД ниже плинтуса. Бери книгу и читай, нефиг глупые вопросы задавать. Я более отвечать не буду - пусть Sad Dog отвечает (он у нас рубаха-парень, времени свободного у него вагон...).
hwd вне форума  
 
Непрочитано 09.07.2010, 09:57
1 | #13
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


hwd, зря ты всех обзываешь, Zaghim - лентяем, Sad Dog - альтруистом.

Мне вот тоже было тяжело в своё время разбираться с DCL, и имея ту же книгу Полещука, я так же задавал вопросы на форуме, например: Включение\выключение edit_box по toggle, кстати там целая ветка повещена DCL Главная / Форум / Программирование / DCL /



Цитата:
Сообщение от Zaghim Посмотреть сообщение
А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать?
допустим есть у нас
Код:
[Выделить все]
my_dial: dialog{label="Пример";
...
:edit_box{label="Тра-ля-ля"; key="box1"; edit_width=6;}
:edit_box{label="Трум-пум-пум"; key="box2"; edit_width=6;}
...
ok_cancel;
}
вариант 1:

Код:
[Выделить все]
(defun c:test
... 
(action_tile
    "accept"
    "(setq vol_box1 (get_tile \"box1\")
	  vol_box2 (get_tile \"box2\")
    )
    (done_dialog)"
)
...
)
Т.е. при задействии (action) элемента диалога (tile), кнопки Ok ("accept") в перменные vol_box1 и vol_box2 записывается (setq) значение (get_tile) box1 и box2 соответственно.

вариант 2

Очень часто нужно не просто записать все значения при выходе из диалога, но и произвести какое-либо действие при их вводе, напремер проверить тип вводимых данных, тогда делаем (action_tile) конкретно на сам элемент edit_box
Код:
[Выделить все]
(action_tile
  "box1"
  "(setq vol_box1 $value)
  (if (and (/= vol_box1 \"0\") (= (atof vol_box1) 0))(progn (alert \"Введённое значение должно быть число!\")(mode_tile \"box1\" 2)))"
  )
Здесь, уже при завершении ввода значения в edit_box, оно будет присвоено переменной vol_box1, а также проверенно являеться ли оно(значение) числом, если нет, то программа не позволит завершить ввод значения пока оно не удовлетворит условие.
Так же очень не удобно выражение action_tile писать в виде строки, т.е. в кавычках, по-этому гораздо удобнее записывать так:
Код:
[Выделить все]
(action_tile
  "box2"
  (vl-prin1-to-string
    (quote
      (progn
	(setq vol_box2 $value)
	(if (and (/= vol_box2 "0") (= (atof vol_box2) 0))
	  (progn (alert "Введённое значение должно быть число!")
		 (mode_tile "box2" 2)
	  )
	)
      )
    )
  )
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 09.07.2010, 10:35
#14
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Disney Посмотреть сообщение
hwd, зря ты всех обзываешь
Это не "обзывание"...
Одно дело имея книгу реально пользоваться ею и задавать вопросы, а другое - лодырничать, что и продемонстрировал топикстартер. Ответы на его вопросы элементарно находятся по оглавлению (что я и продемонстрировал выше). Он даже и не пытался найти, а это:
Цитата:
вообще сам все привык делать, но тут дуб дубом вообще...пока оч мало понимаю, так бы не писал сюда.
чушь полная, поскольку если бы он всё делал сам, то книга была бы первым его первым и основным источником информации. А он ею совсем не пользуется. Если он всё так делает, то это полный ппц... Автор топика даже не пытается читать книгу, ему проще задать вопрос и сидеть ждать ответа, хотя времени на это уйдёт больше и качество знаний будет хуже, чем если бы он прочёл на эту тему инфу у Полещука.

То, что представители данного форума начинают защищать таких лодырей - это прямое поощрение лени и разгильдяйства. Это превращает форум из источника интересной информации в набор бесполезных топиков.

Поскольку бороться с ветряными мельницами бесполезно (да и не нужно - это забота модераторов), прекращаю делать замечания и буду игнорировать глупые вопросы, тем более что на форуме полно мемберов, которые с удовольствием на них отвечают, понижая тем самым уровень обсуждаемой информации до уровня "Как нарисовать линию в Автокаде?", называя это "помощью", а не "поощрением к лени". ИМХО - это зло.
hwd вне форума  
 
Непрочитано 09.07.2010, 11:00
1 | #15
E-degtyarev

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


hwd. Мне кажется, что Вы напрасно так резко обозвали людей лентяями. Дело в том, что у нас справочная литература почему-то делается
в основом двух типов:
1. Для абсолютных "чайников".
2. Для крутых "профи".

А между ними как в старом анекдоте - "диспропорция", а точнее полный вакуум.
Не скрою, сам нарывался на такие ситуации: гляжу в книгу, а вижу ......
Нужна литература типа от "простого к сложному"- вот в чем дело, а не в лени, как Вы утверждаете.

PS: это моё личное мнение без претензий на истину.
E-degtyarev вне форума  
 
Автор темы   Непрочитано 09.07.2010, 11:51
#16
Zaghim


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


Мда уж...навалилось критики на меня)))
Честно принаюсь, перед тем как писать пробежал по главе DCL... вот честно... и прям перед тем как мне написали смотри страницу такую-то (get_title) я эту самую страницу и смотрел...прочитал не заострил внимания и пошел дальше... В книге все идет можно сказать в кучу и тут уж надо уметь из этой кучи доставать нужное...а тому, кто вообще не понимает в этом - это адский труд)))) сейчас уже более менее въехал и понимаю, благобдабдаря всем вам, критикам и светлым душам )))
Zaghim вне форума  
 
Непрочитано 09.07.2010, 12:44
#17
alex8888

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


Книга Полещука - это справочник, а не учебник, поэтому там так немного непонятно написано. Лучше всего на Афралиспе расписано, прямо по шагам, что и куда.
alex8888 вне форума  
 
Автор темы   Непрочитано 09.07.2010, 13:04
#18
Zaghim


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


Это что такое?)
Zaghim вне форума  
 
Непрочитано 09.07.2010, 13:15
#19
alex8888

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


Так ссылку я давал , сайт такой: http://www.afralisp.net/index.php,там не только DCL, но программирование во всех прелестях.
alex8888 вне форума  
 
Непрочитано 09.07.2010, 13:18
#20
E-degtyarev

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


Да сайт такой www.afralisp.com. Если не изменяет память.(склероз однако)

Опоздал, однако.
E-degtyarev вне форума  
Ответ
Вернуться   Форум 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