Переменной автокада secureload установите новое значение 0

Обновлено: 07.07.2024

Наконец-то вышел ACAD2021, и мне стало интересно, что там поменялось (и поменялось ли) по крайней мере в части кодировки создаваемых файлов.

Вот говорила мне мама - прежде чем высказываться, почитай документацию!

В ACAD2021 появилась новая системная переменная LISPSYS (далее вольный перевод официальной документации):
Тип - целый
Хранится в реестре

Возможные значения Описание
0 (начальное значение) VLIDE установлена как редактор кодов lsp по умолчанию, lisp не поддерживает UTF ни в каком виде.
Исходные файлы сохраняются в кодировке ANSI и с ее же использованием компилируются.
1 VisualStudio устанавливается в качестве редактора lsp по умолчанию. Т.е., если она установлена, именно она и будет вызываться по команде _.vlide. Заявлено, что lisp функции полностью поддерживают Unicode
lsp-файлы при сохранении из-под VS используют кодировку UTF и компилируются с ее использованием
2 VisualStudio устанавливается в качестве редактора lsp по умолчанию. Т.е., если она установлена, именно она и будет вызываться по команде _.vlide. Заявлено, что lisp функции полностью поддерживают Unicode
lsp файлы при сохранении используют Unicode, но при компиляции - ANSI

После изменения LISPSYS AutoCAD необходимо перезапускать.

Лично мне слабо интересно значение 2: если (не приведи боже) в коде прописано создание диалогов на лету, что мы получим в результате компиляции в fas/vlx, неизвестно никому. А тут "вероятность провала равна провалу", как говаривал папаша Мюллер (с).

Немного оффтопа. По поводу того, как выполнялись тесты и почему.

В ACAD2019 были созданы исходные коды и сохранены как lsp-файл. Сделано намеренно, поскольку ни один из пользователей / разработчиков не станет перелопачивать, переоткрывать и пересохранять тьму исходников. Соответственно lsp сохранены в кодировке ANSI. Файлы (независимо от значения LISPSYS) загружаются в AutoCAD с использованием команды _.appload либо просто "перетаскиванием" исходного кода в графическую область. SECURELOAD временно установлена равной 0.
Тестирование выполняется в английском AutoCAD 2021 x64, обновлений для ACAD на момент публикации не выходило.
Оффтоп кончился, дальше по делу.

Проверим варианты чтения текстовых файлов, записи текстовых же файлов и чтения программно записанных файлов при различных значениях LISPSYS? Ну а почему бы и нет?

Для начала создадим несколько файлов, содержащих один и тот же текст

В различных кодировках: ANSI-1251, UTF-8. Соответствено обзовем их как c:\coding\ansi.txt, c:\coding\utf-8.txt.

Используем элементарные лиспы для чтения текстовых файлов из предопределенного каталога (ну, у нас же исследовательские задачи, верно?) и вываливания в alert того, чего начитали:

Чтение файлов сведем в табличку:

LISPSYS Результат Пояснение
0 UTF не прочитан
1 UTF прочитан верно

А что будет с записью? Повторяю - код создан в более ранней версии, сохранен в кодировке ANSI, загружается в AutoCAD 2021 простым drag-and-drop или через _.appload.

И опять же табличка с результатами записи:

Ок, сохраняем файлы как lispsys=0.txt и lispsys=1.txt соответственно, и - та-дааам! - выполняем их чтение. Если создавать те же самые диалоги "на лету" (что я лично ооочень люблю делать), вопрос не покажется уже таким праздным.

LISPSYS Результат Пояснение
0 2020-04-07_22-25-31
Очень интересно! Файл, сохраненный как ANSI - таковым не читается?
1 Тут вообще все прочитано нормально

Возможно, я что-то упустил и неправильно интерпретировал, но результаты (по крайней мере по чтению программно записанных файлов) выглядят несколько странно.


Последовательность загрузки приложений в AutoCAD с учетом SECURELOAD

В продолжение темы "Последовательность загрузки приложений в AutoCAD" хотелось бы осветить вопрос о безопасности и о шагах, предпринятых Autodesk в этом отношении.

  1. acad.lsp/fas/vlx
  2. acaddoc.lsp/fas/vlx
  3. acad.dvb

Иногда также можно было встретить файлы acad20XX.lsp или acad20XXdoc.lsp (XX означают последние 2 цифры версии AutoCAD). Эти файлы "зарезервированы" для использования самим AutoCAD.
Если в одном каталоге обнаруживается одновременно acad.vlx, acad.fas и acad.lsp, то загружается только acad.vlx; остальные файлы игнорируются.

Если AutoCAD обнаруживает сразу все 7 файлов (т.е. acad.lsp; acad.fas; acad.vlx; acaddoc.lsp; acaddoc.fas; acaddoc.vlx; acad.dvb), то загружаются только первые обнаруженные *.vlx-файлы и acad.dvb.
Тем не менее, следует отдавать себе отчет в такой тонкости: последовательность загрузки определяется тем, где и когда AutoCAD обнаруживает эти файлы. Очевидно, что AutoCAD ищет эти файлы по каталогам, определенным как пути поддержки. Но на самом деле AutoCAD перед ними опрашивает еще и рабочий каталог приложения (определяется в свойствах ярлыка вызова). Рабочий каталог опрашивается только в том случае, если сначала запускается AutoCAD, и открытие файла dwg выполняется из-под AutoCAD'a. Следом идет каталог, в котором находится открываемый файл, и только после этого опрашиваются пути поддержки AutoCAD'a

Сначала загружается обнаруженный acad*.* - файл, а поиск остальных вариантов прекращается. Что это значит?

Например, в каталоге с открываемым dwg-файлом есть файл acad.lsp, а в каталогах поддержки хранятся acad.fas и acad.vlx. AutoCAD при открытии dwg обнаружит acad.lsp, загрузит его и уже не будет опрашивать каталоги поддержки

Файлы acad.lsp, acad.fas, acad.vlx, acad.dvb не поставляются вместе с AutoCAD и разрабатываются самостоятельно пользователями.

Зарезервированные файлы acad20XX.lsp и acad20XXdoc.lsp устанавливаются вместе с AutoCAD и размещаются в каталоге \Support. В 2013 и 2014 версиях эти файлы размещаются в каталогах локализации (например, для AutoCAD 2014 Eng путь будет наподобие \Support\en-us; для русской версии - \Support\ru-ru). acad20XX.lsp и acad20XXdoc.lsp предназначены только для служебных целей внутри AutoCAD, поэтому не следует изменять или создавать такие файлы самостоятельно (о чем, кстати, в документации достаточно четко написано).

Полезные ссылки

Дополнительная информация, которую можно найти в справке


    Вы можете создать файл acad.lsp, если Вы постоянно используете какие-либо специфические скрипты или макросы. При старте AutoCAD ищет этот файл по всем путям (рабочий каталог приложения, каталог текущего документа, пути поддержки). Если файл найден, он загружается в AutoCAD
    Важно! Не вносите изменения в файл acad200XX.lsp. В этом файле хранятся функции, которые разрабатывала Autodesk и которые используются внутри AutoCAD'a. Этот файл загружается в AutoCAD до acad.lsp
    Большинству пользователей достаточно иметь всего один файл acaddoc.lsp для всех lisp-приложений, загружаемых внутрь документа. Поиск файла acaddoc.lsp выполняется точно так же, как и поиск acad.lsp. И точно так же загружается только первый найденный файл, остальные игнорируются. Таким образом, в разных каталогах с dwg-файлами могут лежать разные файлы acaddoc.lsp, загружающие разный код.
    Важно! Не вносите изменения в файл acad20XXdoc.lsp. Причины такие же, как и для acad.lsp. Файл acad20XX.lsp загружается в документ перед acaddoc.lsp
    Файл acad.dvb может использоваться, если Вам необходимы какие-либо VBA-макросы внутри каждого документа.

AutoCAD 2013 SP 1

  1. Новые ключи командной строки acad.exe
  2. Новые системные переменные
  3. Изменение правил загрузки acad20XX.lsp и acad20XXdoc.lsp

Новые ключи командной строки acad.exe

Введен новый ключ командной строки - "/nolisp" (естественно, без кавычек). Этот ключ полностью блокирует lisp в AutoCAD (включая lsp, fas и vlx). Не самое удачное решение, поскольку использование этого ключа может блокировать работу некоторых элементов меню (в частности, многие команды из ExpressTools могут отказаться работать). Тем не менее этот ключ может оказаться полезным, если есть подозрения на факт заражения компьютера AutoCAD'овскими вирусами.

Важно! Этот ключ запуска все же предоставляет пользователю возможность поменять порядок загрузки приложений в StartupSuite и новую системную переменную AUTOLOADPATH. Ключ "/nolisp" работает только в текущей сессии AutoCAD'a.

Использование этого ключа автоматически устанавливает новую системную переменную LISPENABLED в 0

Новые системные переменные

Пользователи могут загружать другие lisp-файлы. AutoCAD 2013 SP1 все еще загружает acad20XX.lsp и acad20XXdoc.lsp (подробнее см.ниже, раздел "Изменение правил загрузки").

Изменение системной переменной AUTOLOAD можно отследить по доступности опции "Load acad.lsp with every drawing" (_.options - System):


Установленный / снятый флажок точно так же регулирует значение системной переменной ACADLSPASDOC.

Изменение правил загрузки acad20XX.lsp и acad20XXdoc.lsp

Раньше файлы acad20XX.lsp и acad20XXdoc.lsp рассматривались и загружались как аналоги acad.lsp и acaddoc.lsp (т.е. выполнялась загрузка первого найденного файла с таким именем; поиск осуществлялсь по описанному выше алгоритму). Теперь эти файлы загружаются только из подкаталога установки \Support (например, для AutoCAD 2013 этот путь может быть наподобие %ProgramFiles%\Autodesk\AutoCAD 2013\Support. Еще раз напоминаю - эти файлы предназначены для корректной работы самого AutoCAD и вносить изменения в них не следует.

Вертикальные решения на базе AutoCAD : функциональность, последовательность загрузки и вопросы безопасности - все полностью повторяет уже описанное

AutoCAD для Mac : практически повторяет описанный функционал. Вся разница состоит в том, что AutoCAD для Mac не поддерживает vlx - только lsp и fas (Прим.переводчика: проверить, к сожалению, не могу).

AutoCAD LT / AutoCAD OEM : затронутые вопросы не касаются AutoCAD LT, поскольку в AutoCAD LT не поддерживаются ни эти системные переменные, ни программирование (кроме, пожалуй, минимально доступного функционала на DIESEL)

AutoCAD 2014

SECURELOAD и отслеживаемые типы файлов

В AutoCAD 2013 системная переменная AUTOLOAD могла иметь только два значения - 0 (отключено) либо 1 (включено). Для AutoCAD 2014 имя системной переменной стало SECURELOAD и она изменила диапазон допустимых значений (см.ниже). AUTOLOAD теперь поддерживать нет особого смысла, т.к. использование ключа "/safemode" выполняет такие же действия, как и перевод AUTOLOAD в 0.

acad.rx не является исполняемым файлом, это обычный текстовый файл, определяющий загрузку arx и / или dbx файлов. acad.rx - это еще одно место, которое просматривает AutoCAD для определения, какие файлы надо загружать (наряду с реестром, StartupSuite, автозагрузка и т.п.)

TRUSTEDPATHS

Системная переменная AUTOLOAD, появившаяся в AutoCAD 2013, теперь переименована в TRUSTEDPATHS. В качестве доверенных путей гарантированно выступают каталог-владелец файла acad.exe и каталог ApplicationPlugins (используется магазином приложений, или ExchangeApps) и все их подкаталоги

Расположение ExpressTools не требуется указывать в TRUSTEDPATHS. То же самое касается и каталогов расположения установленных приложений из ExchangeApps.

TRUSTEDDOMAINS

Это новая системная переменная, введена в AutoCAD 2014, определяет обработку автоматически загружаемых файлов JavaScript

Изменения в диалоге настроек (_.options)

В раздел "Файлы" окна настроек добавлена новая ветка - Trusted Locations (Доверенные местоположения). Она соответствует текущему значению системной переменной TRUSTEDPATHS.

Примечание: Trusted Domain Locations не внесена в окно настроек (считается, что системная переменная TRUSTEDDOMAINS будет использоваться только разработчиками).

Эти каталоги назначаются как "надежные" (или "доверенные") для исполняемых файлов. Файлы, находящиеся в этих каталогах, загружаются без запроса разрешения. Именно по этой причине рекомендуется назначать доверенными каталогами пути, куда пользователь не имеет права на запись.

Примечание: при попытке вручную назначить в качестве доверенного каталог, куда пользователь имеет право на запись, будет выдано соответствующее предупреждение. Если TRUSTEDPATHS назначается программно, то запрос не появляется.

Trusted Locations (Доверенные местоположения). Диалог параметров AutoCAD

Пользователь может назначить несколько каталогов в качестве "доверенных". Следует помнить, что доверенными автоматически считаются путь установки AutoCAD и все его подкаталоги, и пути приложений, загруженных из ExchangeApps.

При попытке указать в качестве доверенного каталога несуществующий путь, AutoCAD выдаст соответствующее предупреждение.

Примечание. Важно! При указании в качестве доверенного каталога все его подкаталоги автоматически не становятся доверенными. Для обработки всех подкаталогов достаточно указать в конце имени каталога символы "\. " (три точки).

Если пользователь указывает в качестве доверенного каталога доступную для записи папку, то AutoCAD выводит соответствующее предупреждение:

Три верхние переключателя соответствуют значениям системной переменной SECURELOAD. Нижние два - ACADLSPASDOC.

Если установить SAFEMODE равным 1, то все эти настройки становятся недоступными.

Изменения в установке

CUIx и MNL файлы в версии 2012 и 2013 устанавливались в каталог %AppData%\Autodesk\AutoCAD 20XX - <Полное название языка>\RXX.X\<enu / rus>\Support\

Теперь MNL файлы при установке помещаются в каталог %ProgramFiles%\Autodesk\AutoCAD 2014\Support\<en-us / ru-ru>. CUIx после преобразования помещаются в %AppData%\Autodesk\AutoCAD 2014\R19.1\<enu / rus>\Support. Туда же копируются MNL-файлы.

Параметр вызова AutoCAD "/safemode"

Ключ "/nolisp", появившийся в AutoCAD 2013, переименован в "/safemode" и теперь обрабатывает не только lsp / fas / vlx, но и вообще все исполняемые файлы, которые можно загрузить в AutoCAD. Использование этого ключа запустит AutoCAD в минимально возможной функциональности и позволит изменить AUTOLOADPATH в параметрах AutoCAD'a. Если AutoCAD запущен с этим ключом, то никакое выполнение кода невозможно.

Примечание: некоторое количество исполняемого кода все равно приходится загружать внутрь AutoCAD для обеспечения его функционирования даже в таком "обрезанном" виде. Перечень таких приложений можно узнать, посмотрев значение скрытой нередактируемой системной переменной SAFEMODEAPPS.

SAFEMODE

Системная переменная LISPENABLED, появившаяся в AutoCAD 2013, переименована в SAFEMODE. Системная переменная предназначена только для чтения и может быть изменена только через ключи запуска AutoCAD.

SAFEMODEAPPS

Только для чтения, определяет перечень доверенных приложений, загружаемых в AutoCAD несмотря ни на что

Новый диалог предупреждения о попытке загрузки недоверенного приложения

Вернемся к описанию системной переменной SECURELOAD: значение по умолчанию - 1. То есть, если AutoCAD пытается загрузить код, находящийся не в доверенных каталогах, будет выводиться окно предупреждения:

Если SECURELOAD равно 0 или 2, диалог не выводится (загружается или нет при этом код - подробнее описано выше).

Предположим, что SECURELOAD равна 1. В таком случае диалог будет появляться при попытке загрузки любого исполняемого кода, не распознанного как "доверенный". Неважно, как выполняется загрузка - вручную или программно.

Если выполняется загрузка сразу нескольких "недоверенных" файлов, то окно будет выводиться для каждого из них.

Если пользователь выберет [Do not load] (Не загружать), то AutoCAD не только не загрузит указанный файл, но и не будет выполнять его поиск по другим каталогам.

Если пользователь хотя бы раз во время одной сесии выберет для какого-то приложения [Load] (Загрузить), то больше диалог с запросом именно этого приложения появляться не будет.

Изменения в загрузке CUIx / MNL

acad.mnl (mnl - это фактически lisp-файл с измененным расширением). Вплоть до AutoCAD 2014 mnl-файлы загружались в AutoCAD сразу за соответствующим файлом меню (mnu / mns / cui / cuix). Например, acad.mnl загружался сразу после того, как был загружен acad.cuix. Множество вирусописателей использовали эту особенность, внося изменения в mnl-файлы.

Очевидно, что такой стиль загрузки приложений больше нельзя назвать приемлемым. AutoCAD 2014 будет загружать mnl файл только в том случае, если mnl файл находится в "доверенном" каталоге. Если mnl не лежит в "доверенном" каталоге, при SECURELOAD = 1 AutoCAD выдаст запрос на загрузку приложения (см.предыдущий раздел). Если SECURELOAD = 2, то диалог не выводится, но и mnl не загружается.

Изменения в мастере создания развертываний

Мастер создания сетевых развертываний был переработан с целью предоставления CAD-менеджерам возможности управлять настройками безопасности прямо в процессе развертывания AutoCAD. В мастер были добавлены новые настройки, аналогичные диалогу Executable Code Settings (для вызова этого диалога в AutoCAD вызовите _.options; закладка System / Система, кнопка Executable Code Settings / Параметры исполняемых файлов).

Новый раздел называется "Executable Code Settings" (Параметры исполняемых файлов).

В мастер также добавлены ветки Trusted Locations и Trusted Domain Locations.

Новые функции LISP

В AutoLISP/VisualLISP добавлена новая функция (findtrustedfile). Она полностью аналогична старой (findfile), но выполняет поиск только по "доверенным" каталогам (TRUSTEDPATHS).

Вертикальные решения на основе AutoCAD

Все, описанное в статье, работает и в вертикальных решениях.

AutoCAD OEM 2014

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

AutoCAD для Mac

AutoCAD для Mac поддерживает описанные возможности практически целиком. Единственное "но": не был изменен графический интерфейс.

Новые системные переменные SECURELOAD, TRUSTEDPATHS, TRUSTEDDOMAINS и ключ "/safemode" - это единственный способ контролировать настройки безопасности в AutoCAD для Mac.

В AutoCAD для Mac не вносились изменения в диалог параметров, поэтому значения системным переменным придется задавать вручную.

AutoCAD LT 2014

Описанные возможности недоступны в AutoCAD LT. В AutoCAD LT нет подобных трудностей, связанных с безопасностью, т.к. AutoCAD LT не поддерживает пользовательское программирование.

В AutoCAD LT 2014 системная переменная SECURELOAD имеет жестко прошитое значение 1, и нет никаких настроек, могущих изменить значение этой системной переменной.

AutoCAD 2014 JavaScript API

Если пользователь пытается загрузить JavaScript, располагающийся не в доверенном домене, AutoCAD выдаст предупреждение и потребует подтверждения загрузки кода (см. выше, "Диалог о загрузке недоверенного приложения).

Как известно, все настройки AutoCAD хранятся в системных переменных. Рассмотрим три способа их редактирования.

Редактор системных переменных _SYSVDLG

В AutoCAD Express Tools есть команда _sysvdlg, которая позволяет просматривать список всех системных переменных и редактировать их значения.


Команда _SYSVDLG

Все переменные представлены в виде списка, возможен поиск по имени. В нижней части окна содержится описание переменной и возможные ее значения с расшифровками. Новое значение переменной можно ввести в поле New Value, просмотреть текущее и начальное значение (то, которое присваивается по умолчанию в новом чертеже) - в полях Current Value и Initial Value соответственно .


Окно редактора системных переменных

Также доступны опции Save All. (Сохранить все. ) и Read. (Прочитать. ) - они позволяют записать список переменных и их значений в svf-файл и прочитать из него. С помощью этой возможности можно перенести настройки с одного компьютера на другой.

УСТПЕРЕМ (_setvar)

Данная консольная команда позволяет просмотреть список переменных и отредактировать их значение прямо в командной строке.

Чтобы установить новое значение переменной введите ее имя и значение


Диалог команды УСТПЕРЕМ

Чтобы просмотреть список переменных, выберите опцию "?". Можно вывести либо весь список, выбрав "*", либо задать фильтр вывода.


Диалог команды УСТПЕРЕМ

Ввод имени переменной в командную строку

Также можно просто в командной строке ввести имя переменной, система сообщит ее текущее значение и предложит ввести новое.

Это означает, что режим отображения диалоговых окон в Автокаде отключен. Т.е. команды работают, но только через командую строку. Иногда такой режим используется, но в основном это пережиток прошлых старых версий Autocad. При таком виде никаких диалоговых окон не появляется.

Итак, чтобы вернуть нормальный вид, нужно включить отображения окон в Автокаде. Введите в командной строке команду:

Это включит глобальную переменную диалоговых окон в режим отображения.



Теперь можно пробовать чертеж "Сохранить как".


Продолжаем изучение командной строки (КС) в AutoCAD. Если не смотрели первый урок, начните с него "Командная строка в AutoCAD. Архаизм?". В этом уроке мы рассмотрим еще 4 полезных приёма с командной строкой.

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


Что делать, если Автокад сохраняет через командную строку?


Сохранение в Автокаде через командную строку происходит, потому что значение системной переменной FILEDIA =0.

В AutoCAD отключение командной строки при сохранении / открытии файлов происходит, когда для системной переменной FILEDIA установлено значение «1».

Журнал команд в Автокаде

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


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

В программе можно указать от 0 до 50 строк. Как показывает практика, удобно, когда значение CLIPROMPTLINES = , т.е. всплывающие строки выводиться не будут.


Как задать прозрачность командной строке?

Чтобы оптимизировать рабочее пространство, командную строку можно сделать прозрачной. При этом в момент наведения на нее курсора она будет принимать привычный вид. Для этого нажмите ПКМ по командной строке и в ниспадающем списке выберите «Прозрачность».


Откроется диалоговое окно, в котором можно настроить прозрачность КС для двух режимом: когда она не активна (обычно это значение прозрачности я задаю «20» или «0»), а также прозрачность для командной строки в момент ее активности.


Если вы хотите пройти обучение по Автокад на 450% рекомендую посмотреть мои новейшие видеоуроки здесь.

Теперь при попытке сохрн/откр файла, будет открываться стандартный проводник, в котором в визуальном режиме можно выбрать место сохрн на вашем компьютере, а также имя и тип файла.

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


" и нажать на Enter, то откроется окно проводника, где можно выполнить сохрн/откр чертежа обычным способом.


Если вы хотите быстро решить все свои, как текущие так и будущие проблемы по Автокад, рекомендую изучить данный набор видеоуроков.

На этом данную короткую инструкцию я завершаю. Изучайте ее и применяйте на практике. Хотя чего. Там нечего изучать. Дана одна простая команда и все.

Автокад довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по нему. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать 80% чертежей и моделей в программе? И научиться этому можно после изучения 20 специальных видеоуроков, в которых описана самая суть без воды.

Узнали что-то новое? Поделитесь находкой с друзьями:

Подпишитесь на рассылку,
и Вы будете получать новые порции ее прямо на свой почтовый электронный ящик.

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