Как запустить dcl autocad

Обновлено: 03.07.2024

Практически любая книга Н.Н.Полещука по программированию в AutoCAD __________________


---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Как раз в книге такого не нашел. или я вообще туп
А чем лучше создавать окошки? и Реально ли сделать то, о чем писал в заголовке темы? Как раз в книге такого не нашел. или я вообще туп
А чем лучше создавать окошки? и Реально ли сделать то, о чем писал в заголовке темы? В книге Полещука Н.Н. и Лоскутова П.В. "AutoLisp и VisualLisp в среде AutoCAD" см. стр. 234-293. Открой оглавление, найди в ней главу 3 (Диалоговые окна), посмотри номер страницы (подсказываю: 234). Самостоятельно в книге страничку найдёшь? В одно не врубаюсь пока. Сделал я ДСЛ в котором описал все кнопки и тд нужного окошка. Ок. в программе сделал лоад этого файла. окно запустится, я там что-то введу. А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать? Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж? Насколько я понял стандартным дсл так нельзя делать. В одно не врубаюсь пока. Сделал я ДСЛ в котором описал все кнопки и тд нужного окошка. Ок. в программе сделал лоад этого файла. окно запустится, я там что-то введу. А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать? Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж? Насколько я понял стандартным дсл так нельзя делать. Т.е. ты хочешь сказать, что Полещук об этом не написал? А если открыть стр. 265 и посмотреть на get_tile.
Ну и лодырь же ты. Да нет, не лодырь. вообще сам все привык делать, но тут дуб дубом вообще. пока оч мало понимаю, так бы не писал сюда.
А как насчет:
Как сделать что бы в появившемся окне я выбрал картинку и нажав на нее смог вставить блок в чертеж?

Кажется допер. Если ошибаюсь - поправьте. В общем делаю дсл файл в котором описываю свойства окна комбобокс, списка и картинок. После выбора из комбобокса значения, раскрывается список в котором тыкнув на любую строчку появляется картинка, далее закрываю окно кнопкой ок и получается, что на какую кнопку тыкнул та ифна сохраняется в переменной и после чего могу уже вызвать нужный файл.
Теперь вопрос еще. после того, как я выбрал значения в одном окошке и по нему должен открытся список - это нужно описывать в дсл или в лиспе? Последний раз редактировалось Zaghim, 07.07.2010 в 15:53 . Да нет, не лодырь. вообще сам все привык делать, но тут дуб дубом вообще. пока оч мало понимаю, так бы не писал сюда.
А как насчет: не отмазывайся. Это не оправдание тому, что ты имея такой справочник, даже не открываешь его. Найти в нём ответы на твои вопросы просто. Но ты предпочитаешь сидеть перед монитором и в носу ковырять, в ожидании, что тебе ответят. А если не ответят? Так и будешь неделями сидеть? При таком отношении к работе, твой КПД ниже плинтуса. Бери книгу и читай, нефиг глупые вопросы задавать. Я более отвечать не буду - пусть Sad Dog отвечает (он у нас рубаха-парень, времени свободного у него вагон. ).

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

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

А потом куда девается информация, которую я ввел, скажем, в текст бокс и как с ней дальше работать?

вариант 1:

Т.е. при задействии (action) элемента диалога (tile) , кнопки Ok ("accept") в перменные vol_box1 и vol_box2 записывается (setq) значение (get_tile) box1 и box2 соответственно.

вариант 2

Очень часто нужно не просто записать все значения при выходе из диалога, но и произвести какое-либо действие при их вводе, напремер проверить тип вводимых данных, тогда делаем (action_tile) конкретно на сам элемент edit_box

Здесь, уже при завершении ввода значения в edit_box, оно будет присвоено переменной vol_box1, а также проверенно являеться ли оно(значение) числом, если нет, то программа не позволит завершить ввод значения пока оно не удовлетворит условие.
Так же очень не удобно выражение action_tile писать в виде строки, т.е. в кавычках, по-этому гораздо удобнее записывать так:
__________________
Почему все вдруг становятся умными, когда уже не надо? Это не "обзывание".
Одно дело имея книгу реально пользоваться ею и задавать вопросы, а другое - лодырничать, что и продемонстрировал топикстартер. Ответы на его вопросы элементарно находятся по оглавлению (что я и продемонстрировал выше). Он даже и не пытался найти, а это:
вообще сам все привык делать, но тут дуб дубом вообще. пока оч мало понимаю, так бы не писал сюда.

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

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

Поскольку бороться с ветряными мельницами бесполезно (да и не нужно - это забота модераторов), прекращаю делать замечания и буду игнорировать глупые вопросы, тем более что на форуме полно мемберов, которые с удовольствием на них отвечают, понижая тем самым уровень обсуждаемой информации до уровня "Как нарисовать линию в Автокаде?", называя это "помощью", а не "поощрением к лени". ИМХО - это зло.

Помогаю, кому делать нечего.

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

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

Автор:

Проблема

При запуске программы на основе AutoCAD и открытии чертежа появляются перечисленные ниже ошибки, связанные с файлом DCL.

base.dcl Не удается найти файл.

Ошибка загрузки файла диалогового окна.

Семантические ошибки в DCL-файле acadmap.dcl.
См. файл acad.dce.

Семантические ошибки в DCL-файле ade.dcl.
См. файл acad.dce.

В некоторых случаях все основные команды AutoCAD работают, но при использовании команд, относящихся к программам AutoCAD (таким как Architecture, MEP, Electrical, Map3D и т. д.), возникают ошибки.

Причины:

  • Путь к вспомогательной папке пользователя AutoCAD отсутствует.
  • Вспомогательные папки для определенного инструментария AutoCAD полностью или частично отсутствуют.
Примечание. Это может произойти, если права/разрешения Windows не позволяют выполнить первоначальную настройку этих папок.

Решение

Попробуйте выполнить следующие действия в соответствии с применимым сценарием.

Добавьте отсутствующий путь к вспомогательной папке.

  1. В проводнике Windows перейдите в указанную ниже папку для конкретной версии AutoCAD:

C:\Users\ \AppData\Roaming\Autodesk\AutoCAD 20xx\Rxx.x\rus\Support

Пример. Для AutoCAD Civil 3D 2017 необходим следующий путь: C:\Users\ \appdata\roaming\autodesk\c3d 2017\rus\support.

Проблемы с командами инструментариев AutoCAD

  1. Временно предоставьте пользователю Windows права локального администратора, убедившись, что эти расширенные права действуют при входе в систему.
  2. Восстановите настройки AutoCAD по умолчанию (при появлении соответствующего запроса создайте резервную копию). См. раздел Восстановление настроек AutoCAD по умолчанию.
Примечание. После этого программа автоматически запустится, и будут созданы все необходимые вспомогательные папки.
  1. После восстановления корректной работы верните ранее измененные разрешения.
  2. Войдите в систему под тем же именем пользователя Windows и еще раз проверьте работу.


Переустановка программного обеспечения

Возможно, папка UserDataCache установлена некорректно. См. раздел Переустановка или восстановление продукта Autodesk.


Методы разработки приложений под AutoCAD с использованием DCL

Начиная с версии 12 AutoCAD предусматривает возможность самостоятельного написания диалоговых окон, отличных от определенных в системе. Для этой цели был разработан специальный язык - DCL (Dialogue Control Language, или другими словами - язык управления диалоговыми окнами). Следует отметить, что Autodesk свято как правило свято придерживается принципов совместимости своих программных стандартов, и при пререходе на Windows-версию AutoCAD, язык DCL не притерпел никаких серьезных изменений, и приложения написанные для AutoCAD R12 (DOS) работают и под AutoCAD R14 (Windows), равно как и под всеми последующими версиями AutoCAD.

DCL Code Generator

DCL Code Generator v.1.01

Не смотря на то, что версия 1.01 рассчитана на AutoCAD R12, она вполне нормально (спасибо Autolisp) работает и под AutoCAD R14, AutoCAD 2000 и последующими версиями AutoCAD. Недостает только новых функций DCL (а таковых не много - text_part, concatination и paragraph) и возможности загрузить DCL-файл - здесь используется WCEDIT (exp-приложение для AutoCAD R12 DOS). Справка к DCL Code Generator переведена мною в WinHelp формат и включена в комплект, который можно скачать ниже.

В настоящее время поддержка данной программы прекращена разработчиком. В сети так же можно встретить версию DCL Code Generator 2.0 , но это урезаная DEMO-версия без возможности сохранения созданных диалогов.

Protobox

Еще один редактор DCL-файлов, работающий внутри AutoCAD. Реализован в двух вариантах - как приложение Autolisp (PBmain.lsp), и Visual Lisp-приложение (PBmain.vlx), добавлена поддержка новых функций DCL, можно создавать и редактировать свои DCL-обьекты (Прототипы) а так же подсистемы (к примеру указывать позволяет работать с несколькими блоками как с одним). Кроме этого приложение может генерировать загружающий DCL файл на Lisp или С, а так же записывать файл с перечнем диалогов, их имен, ключевых слов и меток.



Рис. 2. Protobox v.2.2

К сожалению версия 2.2 не может загружать уже созданные DCL-файлы (на выбор предлагается загрузить example.dcl, DDMODES.DCL и DDCHPROP.DCL, но я подозреваю, что они включены в исходный код редактора).

DCL&Lisp Generator

В отличии от встроенной в AutoCAD среды разработки VisualLisp IDE, которая поддерживает создание файлов диалоговых окон DCL в текстовом редакторе, DCL&Lisp Generator осуществляет визуальное создание диалогов подобно как в среде разработки Visual Basic. После создания диалога достаточно нажать на кнопку "Generate" чтобы программа автоматически сгенерировала файл определения диалога и код AutoLisp для загрузки диалога в AutoCAD. Кроме этого DCL&Lisp Generator осуществляет помощь пользователю в назначении обработчика событий и переменных для компонентов диалога. Сильной стороной программы так же является удобный редактор AutoLisp и DCL файлов, содержащий много общих AutoLisp-подпрограмм, размещенных на панели инструментов, что поможет разработчику писать код быстрее.

DCL&Lisp Generator может работать под всеми версиями AutoCAD, начиная с AutoCAD 12.



Рис. 4. DCL&Lisp Generator

Полнофункциональную облегченную версию DCL&AutoLisp Generator Lite можно скачать с сайта разработчика.

  • В отличии от полной версии DCL&AutoLisp Generator имеет следующие ограничения:
  • вы не можете создавать диалоги со столбцами, строками группами переключателей и списками изображений (ImageList).
  • Панель инструментов позволяет вставлять код AutoLisp только для функций getpoint и drawline.
  • не поддерживается опция Drawing2Lisp, которая позволяет конвертировать чертежные примитивы из чертежа AutoCAD в код AutoLisp.

ObjectDCL

разработчик изначально 3rd Day Software, теперь DuctiSoft Inc.

В пояснении к этой программе автор писал, что будучи студентом ему приходилось часто делать программы с диалоговыми окнами. Бедность средств отладки настолько его замучила, что он написал свой DCL интерфейс, который уже на мой взгляд является серьезной альтернативой стандартному DCL.

Посудите сами. Все виды диалогов применительно к AutoCAD можно разделить на четыре группы:

  1. Modal - эти диалоги поддерживаются стандартным DCL. Пользователь не может выполнить никакой операции в AutoCAD до закрытия диалогового окна.
  2. Modeless - В этом случае пользователь может выполнять операции в AutoCAD, но диалоговое окно будет оставаться на экране и ждать пользовательского ввода (как плавающая панель инструментов).
  3. Dockable - диалог, который можно разместить на панели AutoCAD.
  4. Configuration Tab - позволяет пользователю создавать собственную панель в диалоге настройки AutoCAD.

Помимо всех перечисленных выше типов диалогов ObjectDCL позволяет встраивать в диалог такие элементы как календарь, таблицы, древовидные структуры и использовать возможности ObjectARX.

Новым так же является подход к программированию диалоговых окон. В ObjectDCL диалоги программируются в соответствии с принципами визуального программирования ( т. е. так как в Delphi или Visual C++ ), о чем наглядно говорит даже сам вид редактора ObjectDCL, напоминающий редакторы языков визуального программирования. Элементы перетаскиваются на рабочее поле с левой панели, а на правой панели отображаются их свойства.

  • Label - аналог директивы Text в DCL
  • TextButton - аналог директивы Button в DCL
  • GraphicButton - отображает bmp,ico или jpg-файл
  • Frame - аналог директивы BoxedRow и BoxedColumn в DCL
  • TextBox - аналог директивы Edit_box в DCL
  • CheckBox - аналог директивы Toggle в DCL
  • OptionButton - аналог директивы Radio_Button в DCL
  • ComboBox - аналог директивы Popup_list в DCL
  • ListBox - аналог директивы List_box в DCL
  • ScrollBar - аналог директивы Slider в DCL
  • SliderBar - развите ScrollBar, более удобно позволяет указать с помощью мыши числовое значение.
  • PictureBox - отображение рисунка предопределенного пользователем при создании диалога.
  • TabControl - отображение таблиц (типа картотечных закладок)
  • MonthPicker - календарь
  • TreeControl - отображает древовидные структуры
  • Rectangle - декоративный элемент в виде прямоугольника
  • ProgressBar - отображает визуально время оставшееся до завершения выполнения операции
  • SpinButton - используется совместно с TextBox
  • UrlLink - ссылка на URL в диалоговом окне
  • AngleSlider - отображает выбранный угол в градусах
  • BlockView - позволяет отображать блоки, встроенные в текущий чертеж
  • SlideView - эквивалент Image и Image_button в DCL

Теперь о том, как это работает:
ObjectDCL состоит из двух частей - визуального редактора (приложения Windows) и загрузчика ObjectDCL ARX-runtime, который позволяет загружать скомпилированные диалоговые окна (файлы с расширением ODC). Редактор предназначен только для создания диалогов, а загрузчик должен быть в каждой системе, где эти диалоги должны работать.



Рис. 4. Среда разработки ObjectDCL

В настоящий момент ObjectDCL поддерживает AutoCAD 2004-2008, включая AutoCAD 2008 64-битный. Последняя версия ObjectDCL 2007 также включает ObjectDCL Distribution Kit - аналог загрузчика ObjectDCL.arx для распространения вместе с программами, разработанными с помощью ObjectDCL

OpenDCL

В 2006 году Chad Wanless, владелец 3rd Day Software, открыл код своего программного продукта ObjectDCL 3.0 на условиях GNU-лицензии. Таким образом OpenDCL является результатом серьезной переработки кода ObjectDCL 3.0 сообществом разработчиков, которые исправили существовавшие баги, добавили новые возможности и внесли множество изменений.

В настоящий момент доступен OpenDCL версии 5.0, который поддерживает создание визуального пользовательского интерфейса для AutoLISP и Visual LISP в версиях AutoCAD от 2004 до 2008. Как и ObjectDCL, OpenDCL состоит из редактора и ObjectARX-приложения (runtime). Редактор позволяет вам создавать и модифицировать проекты диалогов и сохранять их в .odcl (или .odcl.lsp) файлы для распространения вместе с вашими AutoLISP или Visual LISP приложениями. ObjectARX-приложение (OpenDCL.16.arx или OpenDCL.17.arx файл) так же должно распространяться вместе с вашим приложением и загружаться в AutoCAD чтобы отображать диалоги, определенные .odcl (или .odcl.lsp) файлами.



Рис. 5. Среда разработки OpenDCL

Эта небольшая статья написана для тех, у кого при выборе « Просмотр DCL из редактора ». См. Рис. 1.

base dcl не удается найти файл

Рис.1. Просмотр DCL из редактора

Чтобы, эта ошибка не появлялась, нужно открыть пользователям (или определенному пользователю) полный доступ к этой папке.

Я покажу, как это сделать в Windows 7.

Находим папку, в которую установлена программ AutoCAD, щелкаем по ней правой клавишей мыши . В контекстном меню выбираем « Свойства ». См. Рис. 2.

base dcl не удается найти файл

Рис. 2. Папка, в которую установлена программ AutoCAD.

Откроется окно «Свойства: AutoCAD 2013». Перейдите на вкладку « Безопасность ». В списке «Группы или Пользователи:» выберите строку « Пользователи » и нажмите на кнопку « Изменить ». См. Рис. 3.

base dcl не удается найти файл

Рис. 3. Свойства папки.

Откроется окно Разрешение для группы «AutoCAD 2013». Выделите строку « Пользователи » и поставьте галочку в квадрат напротив строки « Полный доступ ». См. Рис. 4

base dcl не удается найти файл

Рис. 4. Разрешение для группы

В результате галочки должны стоять во всех строках под надписью «Разрешить».

Нажимаем кнопку « Применить ». Появится окно, в котором будет происходить процесс изменения прав. По окончании нажмите ОК . См. Рис. 5.

base dcl не удается найти файл

Рис. 5. Разрешение для группы.

Нажмите ОК в окне «Свойства: AutoCAD 2013». См. Рис. 6.

base dcl не удается найти файл

Рис. 6. Свойства папки.

Доступ к папке открыт. Теперь все должно работать.

LISP программа для отображения диалогового окна.

Если по какой-то причине Вы не можете изменить права доступа нужной папке, можно написать не большую LISP программы, которая будет отображать ваше диалоговое окно.

Например, если Вам нужно отобразить следующее диалоговое окно:

base dcl не удается найти файл

Создайте LISP- файл и наберите следующий текст:

base dcl не удается найти файл

В качестве полного пути к файлу DCL, укажите путь к вашему файлу (в примере это C:LISP ). Так же напишите ваше имя диалога (в примере это dial_name ). Остальное оставьте без изменений.

1) Сохраните Ваш файл DCL.

2) Выделите весь текст LISP программы и нажмите на кнопку « Загрузить выделенный текст »

base dcl не удается найти файл

Диалоговое окно отобразиться.

LISP программа для отображения диалогового окна:

Приятной Вам работы в AutoCAD.

Пишите в комментариях, помогла ли Вам эта статья.

До новых встреч.

8 комментарии на “ Что делать если диалоговое окно DCL не отображается? ”

Здравствуйте. Подскажите пожалуйста, как изменить папку сохранения временного файла DCL? Открыть к ней доступ, как показано в этом разделе я не могу, так как нет прав администратора.

Смотрите выше. Добавил раздел: «LISP программа для отображения диалогового окна».

Support

Проблема

base.dcl Не удается найти файл.

Ошибка загрузки файла диалогового окна.

Семантические ошибки в DCL-файле acadmap.dcl.
См. файл acad.dce.

Семантические ошибки в DCL-файле ade.dcl.
См. файл acad.dce.

Причины

  • Путь к вспомогательной папке пользователя AutoCAD отсутствует.
  • Вспомогательные папки для определенного инструментария AutoCAD полностью или частично отсутствуют.

Решение

Добавьте отсутствующий путь к вспомогательной папке.

  1. В проводнике Windows перейдите в указанную ниже папку для конкретной версии AutoCAD:

C:Users AppDataRoamingAutodeskAutoCAD 20xxRxx.x
usSupport

Проблемы с командами инструментариев AutoCAD

  1. Временно предоставьте пользователю Windows права локального администратора, убедившись, что эти расширенные права действуют при входе в систему.
  2. Восстановите настройки AutoCAD по умолчанию (при появлении соответствующего запроса создайте резервную копию). См. раздел Восстановление настроек AutoCAD по умолчанию.
  1. После восстановления корректной работы верните ранее измененные разрешения.
  2. Войдите в систему под тем же именем пользователя Windows и еще раз проверьте работу.

Переустановка программного обеспечения

Возможно, папка UserDataCache установлена некорректно. См. раздел Переустановка или восстановление продукта Autodesk.

У вас есть проблема с открытием .DCL-файлов? Мы собираем информацию о файловых форматах и можем рассказать для чего нужны файлы DCL. Дополнительно мы рекомендуем программы, которые больше всего подходят для открытия или конвертирования таких файлов.

Для чего нужен файловый формат .DCL?

Описания диалогов DCL обычно используются совместно с программами AutoLISP. Предпочтительным инструментом создания и редактирования описаний диалогов DCL является редактор Visual LISP Editor, хотя любой файл .dcl можно легко открыть и изменить в текстовом редакторе.

Помимо этого, расширение .dcl используется старой программой управления ресиверами спутникового телевидения DVBControl для обозначения файлов со списками телеканалов. Кроме DVBControl, формат .dcl поддерживается несколькими другими DVB-программами и редакторами списков каналов вроде WKLE.

Читайте также: