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

Обновлено: 02.07.2024


Не секрет, что диалоги в лиспе - это практически всегда dcl. Если разработать dcl не так уж и трудно, то заставить нормально работать сколько-нибудь сложный диалог удается далеко не всегда. Каким образом можно облегчить себе жизнь - именно этому и посвящена статья.

Итак, прежде всего - создаем временный dcl-файл и прописываем сам диалог. Это мне требуется только для того, чтобы проверить - как окно будет выглядеть в результате. Допустим, создали, проверили - все замечательно.

После этого пишется функция, которая будет создавать временный dcl-файл в каталоге %temp% (к примеру) и возвращать полное имя такого файла.

Теперь приступаем к разработке основной функции.

После стандартных строк

по идее должно идти нечто типа

Но обратимся к справке (мой вольный перевод):

dlgname Строка, определяющая создаваемый диалог (в одном dcl-файле может быть описано несколько диалогов; главное, чтобы у них имена были уникальными)
dcl_id Идентификатор, созданный через функцию (load_dialog. )
action Необязательный параметр. Строка, содержащая выражение на языке AutoLISP, являющееся реакцией по умолчанию на изменение любого элемента диалога. Строка становится обязательной, если определяется следующий параметр. Допускается применение пустой строки ("")
screen-pt Координаты двумерной точки, определяющие положение левого верхнего угла окна диалога на экране.

Куски справки, не являющиеся критичными, я пропустил.

То есть получается, что в

можно указать какую-то дополнительную "callback"-функцию, которая и будет срабатывать по умолчанию! Отлично, нарисуем?

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







Сколько секса-то )))
Я, по просьбе генпланистов, делал им вот такую хрень.

Неплохой модуль. Спасибо. Можно как-то поменять АиБ на другие символы/буквы?

Последний раз редактировалось angel-fear, 29.09.2011 в 13:19 . Да. Получил истинное удовольстве! Ну, сказать честно, если бы само программирование не прикольнуло меня, так долго бы этим не занимался.
Я, по просьбе генпланистов, делал им вот такую хрень. Когда искал что-то подобное, то нашел похожую реализацию на основе блока с атрибутами, в котором формулы. Но только координаты были вида X=1,234/Y=5,678. У тебя получше: отражение есть, текст нужного вида. Я поначалу тоже хотел на таком остановиться, но не нашел, как отделять целую часть от дробной. Это нужно для вычисления количества сотен. Это функция trunc.
Формулы у тебя считают в МСК, а когда работаешь с генпланом, то нельзя двигать топосъемку, изменять МСК. А эта съемка, когда приходит от изыскателей, сидит черте где. Ну поэтому и работаем в ПСК, и координаты нужно считать от нее.
Ну еще к слову, любой блок рано или поздно, но обязательно взорвут. По ошибке или еще как, или не заменят, в общем дураков хватает. И здесь важно, чтобы то что осталось соответствовало изображению блока. Поэтому я осторожно отношусь к атрибутам.
Последний раз редактировалось Нефтепроводчик, 29.09.2011 в 21:45 . Хорошо бы на любые ) чтобы возможность редактировать была. Ну или хотя бы так как в моем блоке. Вот, модифицировал. Ввел дополнительно две переменные: подпись сотен вертикальной оси и подпись сотен горизонтальной оси. Добавилась локальная функция этого ввода, также усложнилась маска выбора координат для обновления. По умолчанию тип координат АБ, как опция NE и возможнось задания своих подписей. Доступно это в опциях указания точки расположения выноски [АБ координата/А координата/Б координата/Вертикально/Горизонтально/Подписи/Точность/Масштаб]. В подписях типов координат оставил А и Б (например, [АБ координата/А координата/Б координата. ), хотя это уже не корректно, нужно что-то типа C[евер]/В[осток] или В[ертикально]/Г[оризонтально]. Ну и кнопки перерисовывать очень не хочется Доброго времени суток!
Спасибо за модуль!
Подскажите пожалуйста, как разбить строительную сетку на чертеже выполненном в масштабе 1:500 (1ед. чертежа = 0,5метра)? Отрисовке сетки модулем получается только в масштабе 1:1000 (единицы чертежа в автокаде-метры) Вообще-то такого не должно быть. Есть требование в нормах на изыскания, что топографические планы должны выполняться в масштабе 1:1000. Это значит, что 1 ед. чертежа = 1000 мм (=1м). Всегда. Ну а масштаб съемки (1:500, 1:1000, 1:2000 и т.д.) - это просто масштаб увеличения для немасштабных элементов плана, таких как текст (отметки земли, подписи объектов, коммуникаций) и условных обозначений. А также масштаб уменьшения видового экрана в случае формирования листа.
Т.е. правильная съемка с масштабом 1:500 должна быть такая:
Чертеж со съемкой, которая выполнена в пространстве модели в масштабе 1:1 в метрах (1:1000 в мм). На вкладке "Формат --> Единицы" для поля "Единицы вставки" должно быть указано "Метры". Текст отметок земли, подписей коммуникаций и пр. должен иметь высоту 2,5*500/1000 = 1,25 м (для отображения на листе высотой 2,5мм в заданном масштабе 1:500). В листе должны быть рамка формата, основная надпись, примечания и видовой экран на область модель с масштабом 1:500.
Если же съемка с масштабом 1:1000, то тоже самое кроме: Текст отметок земли, подписей коммуникаций и пр. должен иметь высоту 2,5*1000/1000 = 2,5 м, масштаб видового экрана должен быть 1:1000.
Часто формат и основная надпись тоже в модели выполнены, просто отмасштабировы с соотвествующим масштабом, но это уже культура чертения.
Вообще "1ед. чертежа = 0,5метра" быть не может. На вкладке "Формат --> Единицы" даны дюймы, футы, миллиметры, сантиметры, метры, километры и пр. 0,5м там быть не может. Это 1 ед. пространства модели = 0,5м. Это уже нарушения требования на съемку в масштабе 1:1000. Самый простой способ - отмасштабировать, уменьшив съемку в 2 раза.
P.S. А на вкладке "Формат --> Единицы" наверно вообще выставлено "безразмерные" или "футы", так как часто изыскатели даже не подозревают об этом. Это до поры не имеет значения, пока не начиниаешь пользоваться внешними ссылками.
Есть требование в нормах на изыскания, что топографические планы должны выполняться в масштабе 1:1000. Это значит, что 1 ед. чертежа = 1000 мм (=1м). Всегда.

Полная чушь. Особенно "всегда". Процитируйте "нормы", где про "всегда". Всегда может быть только в каком-то отдельном бантустане.

Масштабы топографических планов, на которых выполняются генпланы, для которых предназначена программа нанесения строительной сетки разные бывают. В большинстве городов 1:500. Но не всегда. В более мелких НП - 1:1000. Но не всегда. А есть и 1:2000. Все это сложилось исторически для каждой местности.

Что касается любых программ, что-то рисующих, то они должны учитывать:

1. То, что чертеж может выполняться в разных единицах. Для всего, что делается на топографической основе 1 ед. чертежа = 1 м. Для зданий 1 ед. = 1 мм.
Но пользователь должен иметь возможность выбрать подходящие ему единицы и программа должна правильно работать, правильно масштабируя символы. Но не масштабируя реальные "объекты местности".

2. Масштаб твердой копии. Он может быть любой, в зависимости от потребностей. Например, для чертежа на основе топографии 1:500 может понадобиться и ситуационный план 1:2000 или 1:5000 и фрагмент 1:50.

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

А "объекты местности" всегда должны быть натуральной величины и не масштабироваться.

Выбор названия единиц (м, мм или "попугаи") для программы - отдельный вопрос. Для отдельной программы вне комплекса других возможен и дополнительный вопрос (после попытки определить это из системных переменных) или настройка.

В общем-то я о том же. Для планов съемок 1 ед. чертежа = 1м (=1000 мм). Но так как ед. бумаги (чертежа на бумаге) является 1мм, поэтому и возникает масштаб 1:1000. Его не нужно путать с масштабом съемки (1:500, 1:1000, 1:2000 и т.д.), который характерезует степепь детализации и влияет на масштаб немасштабных элементов (аннотации).
Нормы? Не знаю, как насчет планеты Земля, но для нашего бантустана я выясню на работе. Может быть это на уровне внутренних инструкций, но это требование четко сформировано.
Насчет программы.
1. Предназначается для разбивки строительной сетки и простановке координат для генпланов и планов сетей. Последние предпологаются, что выполнены в масштабе 1:500. Стоит это добавить в описание.
2. Так как часто самому приходится выполнять строительные чертежи, где единицами чертежа являются мм, проблема совмещения планов съемок (и генпланов, планов инж. сетей) мне знакома. И поэтому в программе реализована подстройка сетки, координат и подписей под единицы. Если на вкладке "Формат --> Единицы" для поля "Единицы вставки" указаны "Метры", то текст отмасштабируется и примет высоту 2,5*500/1000 = 1,25 м. Если "миллиметры", то - 2,5*500 = 1250 мм.

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


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

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

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

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


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

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


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

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


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

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

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


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

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


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

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

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

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

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


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


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

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

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


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

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.

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