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

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

Создание диалоговых окон в AutoCAD

Ответ
Поиск в этой теме
Непрочитано 09.07.2008, 05:02
Создание диалоговых окон в AutoCAD
TwoZero
 
Программист
 
г.Иркутск
Регистрация: 06.03.2008
Сообщений: 52

Здравствуйте,

Есть проблема с созданием диалоговых окон под AutoCAD,
стандартный язык для создания диалогов DCL негодится так как он очень скупой и там нет компонента TreeView, создание приложения на VBA тоже негодится так как программу пишу на ЛИСПЕ (ЛИСП РУЛИТ),
создание диалоговых окон в VB6 как ActiveX dll тоже негодится так как в дальнейшем требуется регистрировать библиотеки и если подключать дополнительные компоненты в VB6 то их придется таскать с сабой (я конечно понимаю что есть программы которые могут все запихать в один файл но такое мазуто мне ненадо), можно написать приложение на Delphi но оно будет как бы отдельное (можно конечно прописать макрос в акаде на запуск этого приложения но мне это неочень подходит так как хотелось бы чтоб все было интегрировано в акад).

Собственно проблема заключается в создании самих диалогов для AutoCAD, есть еще ObjectDCL но он платный и он перестает работать после триала.

Мож кто подскажет есть ли еще какиенить проги для создания диалогов под акад (нужен компонент TreeView).
Просмотров: 58720
 
Непрочитано 20.12.2012, 18:55
#101
alex8888

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


Цитата:
Сообщение от hwd Посмотреть сообщение
т.е. имеется стимул переходить на 2012-й Express с 2010-го.
Уже загружаю
alex8888 вне форума  
 
Непрочитано 21.12.2012, 11:36
#102
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Обновился, стало намного лучше... Спасибо за наводку =)
Boxa вне форума  
 
Непрочитано 22.02.2015, 14:52
#103
romabrew

Стеклоалюминий
 
Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67


Здравствуйте! подскажите пожалуйста, если диалоговое окно больше размеров экрана, можно ли ему добавить полосы прокрутки сбоку или снизу? см. вложения
Код:
[Выделить все]
dlg:dialog{
label="Построитель";
  :column{
  :edit_box{key="num_strok";edit_width=10; label="Количество столбцов";}
  :edit_box{key="num_stolb";edit_width=10; label="Количество строк";}
  }// column
  
  :button{      
   key="bt_Accept";   //Имя кнопки в LISP-программе
   label="Далее >>";   //Надпись на кнопке
   is_default=true;   //Срабатывает, если нажат Enter;
   }// button "Далее"
   
   :row{fixed_height=true;
      
   :column{label="Горизонтальные размеры:"; 
   :edit_box{key="key1";edit_width=10; label="1";}
   }// column "Горизонтальные размеры"
   
   :column{label="Вертикальные размеры:"; 
   :edit_box{key="key2";edit_width=10; label="1";}
   :edit_box{key="key3";edit_width=10; label="2";}
   :edit_box{key="key4";edit_width=10; label="3";}
   :edit_box{key="key5";edit_width=10; label="4";}
   :edit_box{key="key6";edit_width=10; label="5";}
   :edit_box{key="key7";edit_width=10; label="6";}
   :edit_box{key="key8";edit_width=10; label="7";}
   :edit_box{key="key9";edit_width=10; label="8";}
   :edit_box{key="key10";edit_width=10; label="9";}
   :edit_box{key="key11";edit_width=10; label="10";}
   :edit_box{key="key12";edit_width=10; label="11";}
   :edit_box{key="key13";edit_width=10; label="12";}
   :edit_box{key="key14";edit_width=10; label="13";}
   :edit_box{key="key15";edit_width=10; label="14";}
   :edit_box{key="key16";edit_width=10; label="15";}
   :edit_box{key="key17";edit_width=10; label="16";}
   :edit_box{key="key18";edit_width=10; label="17";}
   :edit_box{key="key19";edit_width=10; label="18";}
   :edit_box{key="key20";edit_width=10; label="19";}
   :edit_box{key="key21";edit_width=10; label="20";}
//   :edit_box{key="key22";edit_width=10; label="21";}
//   :edit_box{key="key23";edit_width=10; label="22";}
//   :edit_box{key="key24";edit_width=10; label="23";}
//   :edit_box{key="key25";edit_width=10; label="24";}
//   :edit_box{key="key26";edit_width=10; label="25";}
//   :edit_box{key="key27";edit_width=10; label="26";}
//   :edit_box{key="key28";edit_width=10; label="27";}
//   :edit_box{key="key29";edit_width=10; label="28";}
//   :edit_box{key="key30";edit_width=10; label="29";}
   }// column "Вертикальные размеры"
   }// row
  }
Миниатюры
Нажмите на изображение для увеличения
Название: dcl.png
Просмотров: 113
Размер:	117.6 Кб
ID:	144408  Нажмите на изображение для увеличения
Название: dcl 2.png
Просмотров: 98
Размер:	105.7 Кб
ID:	144409  
romabrew вне форума  
 
Непрочитано 22.02.2015, 14:58
#104
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от romabrew Посмотреть сообщение
если диалоговое окно больше размеров экрана,
Второй PrintScreen отвечает на твой вопрос.
Полосы прокрутки возможны в падающих списках внутри диалогового окна.
Замени edit_box на popup_list
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 22.02.2015, 15:38
#105
romabrew

Стеклоалюминий
 
Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67


Цитата:
Сообщение от Alan Посмотреть сообщение
Замени edit_box на popup_list
не, popup_list не даст же мне ввести значение ручками, а только предложит выбрать из заранее заготовленного списка. Мне падающий список не нужен, нужно длинное диалоговое окно. Edit Box ов может быть один а может сто в различных случаях
romabrew вне форума  
 
Непрочитано 22.02.2015, 16:03
#106
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от romabrew Посмотреть сообщение
а только предложит выбрать из заранее заготовленного списка.
Этот список можно готовить при работе программы "на лету"
Можно конечно посмотреть DOSLib
Но! Самое правильное решение - переходить на внешние программы, работающие с Автокадом через СОМ-сервер.
Например так
Миниатюры
Нажмите на изображение для увеличения
Название: Оси_DCL.jpg
Просмотров: 122
Размер:	56.7 Кб
ID:	144410  
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 22.02.2015, 19:05
#107
romabrew

Стеклоалюминий
 
Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67


Да я весь диалог готовлю на лету. В зависимости от количества полей (ячеек), меняется количество Edit Box. Вот и столкнулся с проблемой, что длинные диалоговые окна на помещаются на экран. То ли я чего то не понимаю, то ли вообще в DCL такого не сделать. В принципе мне требуется нечто подобное , что в вашем вложении. Как и с помощью чего это сделано? я пытаюсь повторить это:
Миниатюры
Нажмите на изображение для увеличения
Название: Витраж.png
Просмотров: 94
Размер:	210.6 Кб
ID:	144411  
romabrew вне форума  
 
Непрочитано 22.02.2015, 19:17
1 | #108
Кулик Алексей aka kpblc
Moderator

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


Не лечится. Делай несколько окон (если так без dcl никак не обойтись) и доп.кнопки по переходу между ними типа "Далее" и "Назад" - это как вариант.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.02.2015, 23:01
#109
romabrew

Стеклоалюминий
 
Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
если так без dcl никак не обойтись
да не то что бы не обойтись. вариантов много. просто я начал с DCL, потому что знаком с ним. А тут проблема на ровном месте
romabrew вне форума  
 
Непрочитано 22.02.2015, 23:35
#110
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Alan Посмотреть сообщение
Но! Самое правильное решение - переходить на внешние программы, работающие с Автокадом через СОМ-сервер.
Медленно через com- у меня больше 4-5тыс обращений/сек к аutocad2012 не выжималось)

Цитата:
Сообщение от romabrew Посмотреть сообщение
да не то что бы не обойтись. вариантов много. просто я начал с DCL, потому что знаком с ним. А тут проблема на ровном месте
Может, написать часть функционала в виде лисп-функции на Net (смотрите, например, от Бушмана Андрея)?
Сергей812 вне форума  
 
Непрочитано 23.02.2015, 08:02
#111
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Медленно через com- у меня больше 4-5тыс обращений/сек к аutocad2012 не выжималось)
А это уж зависит от того, как именно COM-сервер написан, как к нему обращаться. Да и нужны ли несколько тысяч обращений в секунду для диалогового окна? Но преимущество COM в универсальности - их можно использовать не только в Автокаде, но и в любых других программах, не меняя ни строчки кода.

Цитата:
Может, написать часть функционала в виде лисп-функции на Net (смотрите, например, от Бушмана Андрея)?
Разумеется можно. Это очень хорошо, что еще и на NET появилась возможность программировать. Но в примере "тихое" чтение XML, причем использующее именно методы NET, а они далеко не самые быстрые. Тоже самое можно сделать и другими способами - быстрее, используя другие методы работы с XML.

Но вопрос именно о диалоговых окнах. Вот тут действительно от DCL надо уходить, раз уж Аутодеск их никак не развивает. Нечего время на них терять - "визу много, шерсти мало". Особенно на современном этапе, когда имеется несколько альтернатив, на любой вкус.
ShaggyDoc вне форума  
 
Непрочитано 27.02.2015, 08:11
#112
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Существует ли возможность перевода строки в label? Например, чтобы подпись кнопки была в 2 строки.
mkung вне форума  
 
Непрочитано 27.02.2015, 11:12
1 | #113
gomer

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


Цитата:
Сообщение от mkung Посмотреть сообщение
Существует ли возможность перевода строки в label? Например, чтобы подпись кнопки была в 2 строки.
да, но не в автокаде
gomer вне форума  
 
Непрочитано 27.02.2015, 11:18
1 | #114
Кулик Алексей aka kpblc
Moderator

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


Точнее, "не в dcl"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.02.2015, 13:06
#115
gomer

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


Точнее "в dcl, но не в автокаде"
Код:
[Выделить все]
dlg : dialog 
 { label="DCL диалог";
  : text  { alignment = centered; label= "Спецыально\nдля KPbICa";}
  : button{label="Большая\nКРАСНАЯ\nКнопка\n";}
  ok_cancel;
}
Миниатюры
Нажмите на изображение для увеличения
Название: 7.png
Просмотров: 90
Размер:	20.1 Кб
ID:	144757  
gomer вне форума  
 
Непрочитано 27.02.2015, 13:19
#116
trushev


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


Цитата:
Сообщение от gomer Посмотреть сообщение
: button{label="Большая\nКРАСНАЯ\nКнопка\n";}
В три строки не работает. Только в одну строку через пробелы.
При запуске из lisp'а в автокаде.

Последний раз редактировалось trushev, 27.02.2015 в 13:31.
trushev вне форума  
 
Непрочитано 27.02.2015, 13:30
#117
gomer

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


Цитата:
Сообщение от trushev Посмотреть сообщение
В три строки не работает
Цитата:
Сообщение от gomer Посмотреть сообщение
да, но не в автокаде
имелось ввиду, что в автокаде нельзя создавать мультистрочные элементы, в других приложениях, например в брикскаде - можно!
gomer вне форума  
 
Непрочитано 27.02.2015, 13:43
#118
Кулик Алексей aka kpblc
Moderator

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


gomer, уговорил
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.03.2015, 16:03
#119
mankurt

геодезист
 
Регистрация: 25.10.2011
Москва
Сообщений: 45


Подскажите, пожалуйста, кто-нибудь, используя какие функции можно вставить в диалог DCL окно с отображением выбранного блока? Функционально должно выглядеть, как в команде _bedit - выбор блока из списка -> отображение картинки блока в окне. Не понимаю, как это можно реализовать?
mankurt вне форума  
 
Непрочитано 02.03.2015, 16:17
1 | #120
Кулик Алексей aka kpblc
Moderator

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


Создавай слайд и показывай его - это единственный вменяемый вариант. Потому что делать bmp запаришься. ИМХО, конечно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание диалоговых окон в AutoCAD

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание графика в AutoCAD на основе txt или xls файла Red Nova Программирование 116 06.04.2017 09:20
AutoCad MEP. Структура проекта. Создание розеточной сети. serg01 Вертикальные решения на базе AutoCAD 3 04.03.2008 13:22
Создание своего шаблона в AutoCAD 2007 RodiXX1 AutoCAD 2 05.08.2007 23:58
Одна из целей: Создание экспертных систем на базе AutoCAD. Сергей Юрьевич Программирование 9 01.01.2005 15:17