Acad proxy entity не отображаются

Отключаемые прокси

Отключаемый (revocable) прокси – это прокси, который может быть отключён вызовом специальной функции.

Допустим, у нас есть какой-то ресурс, и мы бы хотели иметь возможность закрыть к нему доступ в любой момент.

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

Синтаксис:

Вызов возвращает объект с и функцией , которая отключает его.

Вот пример:

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

Мы можем хранить функцию в , чтобы легко найти её по объекту прокси:

Преимущество такого подхода в том, что мы не должны таскать функцию повсюду. Мы получаем её при необходимости из по объекту прокси.

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

Что такое прокси

Прокси — это специальный алгоритм, который выгружает информацию о модели в сторонний файл, оставляя в сцене лишь упрощенную его версию, снижая количество полигонов. Особенно его актуально использовать при большом количестве деревьев и травы в сцене, так как они «съедают» очень много памяти видеокарты.

Результат конвертации в прокси не влияет на рендер, модель подгружается из специального файла и мы видим ее в оригинале, не упрощенной. Экономия ресурсов при использовании этого полезного инструмента 3ds max просто огромная.

Как подготовить модель к переводу в proxy

Прежде чем переводить (конвертировать) объект в прокси, нужно 3d-модель подготовить. Конвертировать следует только конечный результат. Поэтому:

  • накидываем все материалы, текстурируем объект;
  • аттачим (присоединяем) его части;
  • тщательно проверяем всю геометрию, так как после конвертации в прокси работать с сеткой уже будет нельзя;
  • сохраняем 3д модель на случай, если что-то пойдет не так.

Reflect

– встроенный объект, упрощающий создание прокси.

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

Объект делает это возможным. Его методы – минимальные обёртки вокруг внутренних методов.

Вот примеры операций и вызовы , которые делают то же самое:

Операция Вызов Внутренний метод

Например:

В частности, позволяет вызвать операторы (, …) как функции (, , …)

Это интересная возможность, но здесь нам важно другое

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

Поэтому мы можем использовать , чтобы перенаправить операцию на исходный объект.

В этом примере обе ловушки и прозрачно (как будто их нет) перенаправляют операции чтения и записи на объект, при этом выводя сообщение:

Здесь:

  1. читает свойство объекта.
  2. записывает свойство и возвращает при успехе, иначе .

То есть, всё очень просто – если ловушка хочет перенаправить вызов на объект, то достаточно вызвать с теми же аргументами.

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

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

Допустим, у нас есть объект со свойством и геттером для него.

Сделаем вокруг прокси:

Ловушка здесь «прозрачная», она возвращает свойство исходного объекта и больше ничего не делает. Для нашего примера этого вполне достаточно.

Казалось бы, всё в порядке. Но давайте немного усложним пример.

Если мы унаследуем от проксированного объект , то мы увидим, что он ведёт себя некорректно:

Обращение к свойству должно возвращать строку , а выводит !

В чём дело? Может быть, мы делаем что-то не так с наследованием?

Но если убрать прокси, то всё будет работать как ожидается.

На самом деле, проблема в прокси, в строке .

  1. При чтении , так как в объекте нет свойства , оно ищется в прототипе.

  2. Прототипом является прокси .

  3. При чтении из прокси свойства срабатывает ловушка и возвращает его из исходного объекта как в строке .

    Вызов , если – это геттер, запускает его код в контексте . Поэтому результатом является из исходного объекта , то есть из .

Именно для исправления таких ситуаций нужен , третий аргумент ловушки . В нём хранится ссылка на правильный контекст , который нужно передать геттеру. В данном случае это .

Как передать геттеру контекст? Для обычной функции мы могли бы использовать , но это же геттер, его не вызывают, просто читают значение.

Это может сделать . Всё будет работать верно, если использовать его.

Вот исправленный вариант:

Сейчас , содержащий ссылку на корректный (то есть на ), передаётся геттеру посредством в строке .

Можно переписать ловушку и короче:

Методы в имеют те же названия, что и соответствующие ловушки, и принимают такие же аргументы. Это было специально задумано при разработке спецификации JavaScript.

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

Как загрузить приложение в Автокад?

  1. Скачиваем и распаковываем архив. (у меня все расширения, скрипты, шрифты, типы линий, библиотеки блоков живут в папке cadsupport)
  2. Набираем _appload в командной строке (ctrl+9 — вызвать командную строку в Автокаде, если она скрыта)
  3. В появившемся диалоге ищем подходящий вам arx, lsp… и так далее, файл.
  4. После нажатия кнопки Load(Загрузить) команда или приложение будут доступны в Автокаде.

P.S. обычно arx файл достаточно загрузить один раз, после чего он будет подгружаться автоматически. lsp и fas скрипты остаются в программе до перезагрузки, чтобы они постоянно были доступны можно добавить их в список автозагрузки (на скриншоте startup suite\content).

P.P.S: http://www.maestrogroup.com.ua/support/ — обновления для части программ так же возможно поискать по этой ссылке.

Acad proxy entity не отображаются

  1. страница » Компьютеры » Acad proxy entity не отображаются

Дисклеймер

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

Предисловие

SPDS Extension или модуль СПДС – дополнение к продуктам семейства AutoCAD, разрабатываемое компанией Autodesk.

СПДС GraphiCS – кроссплатформенное приложение, предназначенное для разработки проектно-технической документации, разрабатываемое компанией CSoft Development.

nanoCAD СПДС — тот же самый СПДС GraphiCS, но на платформе nanoCAD Plus от компании Нанософт.

История

Разгребая утреннюю почту, наткнулся на обращение пользователя в техническую поддержку. Тема письма в принципе объясняла суть проблемы: «Объекты nanoCAD СПДС не отображаются в AutoCAD».

К письму, как и полагается, были приложены файлы, скриншоты и подробное описание действий пользователя. Если говорить кратко, то суть обращения сводилась к следующему: пользователь создал проект в nanoCAD СПДС и передал его подрядчикам.

Подрядчики, открывая этот файл в AutoCAD, не видят объектов СПДС.

Опытные пользователи сразу скажут, что скорее всего подрядчики просто не включили отображение прокси-объектов, поэтому и не видят данные, которые были созданы в специализированном приложении. Но, как оказалось, всё не так просто…

Исследование проблемы

Первым делом открываем файл в nanoCAD СПДС и проверяем состояние переменных proxyshow и proxygraphics. Всё в порядке, оба значения равны единице и файл отображается корректно.

proxyshow – переменная, которая управляет отображением прокси-объектов в чертеже;

proxygraphics – переменная, которая управляет сохранением прокси-объектов в чертеже.

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

С полной уверенностью, что я знаю причину проблемы, закрываю файл и пишу пользователю, что у подрядчиков скорее всего скрыты прокси-объекты в AutoCAD. Даю рекомендацию проверить значение переменной proxyshow (оно должно быть равным единице) прямо из командной строки AutoCAD.

Неожиданные открытия

Утром следующего дня получаю от пользователя ответ: значение переменной равно единице, но объекты по-прежнему не отображаются. К слову, чертеж у подрядчика выглядел вот так (вместо плана отображались лишь размеры и несколько отрезков):

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

Еще раз внимательно просмотрев материалы пользователя, замечаю на одном из скриншотов одну маленькую, но важную деталь. На скриншоте подрядчика в AutoCAD был установлен модуль СПДС или, как его еще называют, SPDS Extension.

В моей конфигурации был чистый AutoCAD без всяких надстроек – и, по сути, это оказалось единственной зацепкой. Не дождавшись от пользователя дополнительных данных, начинаю копать дальше.

Загрузив с официального сайта Autodesk модуль СПДС, устанавливаю его на свою версию AutoCAD 2018. Далее запускаю файл пользователя и вижу привычное сообщение. При этом объекты nanoCAD СПДС отображаются в AutoCAD еще до закрытия окна информации о прокси-объектах.

Перезагружаю AutoCAD и снова открываю этот файл – картина повторяется. Прокси-объекты исчезают из файла, хотя значение переменной proxyshow равно единице. И это очень странно.

Сохранив открытый в AutoCAD файл рядом с файлом, полученным от пользователя, и дописав в название файла _proxy, сравниваю их размеры.

Размер файла, сохраненного в AutoCAD, уменьшился в 10 раз, но я решаю открыть его в исходном приложении – nanoCAD СПДС.

Удалять чужие прокси очень некрасиво. Решаю проверить данный баг, используя прокси от собственных приложений Autodesk.

Нахожу в сети несколько файлов, созданных в приложениях Civil 3D и Advance Steel, и повторяю вышеупомянутый эксперимент, открывая чертежи с прокси-объектами.

Во всех случаях после запуска этих файлов прокси-графика удалялась. Получается, что с модулем SPDS Extension многоуважаемый AutoCAD удаляет любые прокси.

Взорвать прокси объекты в автокаде

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

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

В рамках данной статьи мы хотим продемонстрировать примеры расчленения и удаления таких объектов для нормализации работоспособности чертежа.

Удаляем прокси-объекты в AutoCAD

Существует несколько разнообразных способов, которые позволяют избавиться от рассматриваемых сегодня элементов. Их действенность зависит от того, какие настройки были изначально применены к прокси-объектам в другом программном обеспечении. Потому мы рекомендуем сначала более детально изучить эту тему, чтобы выявить наиболее подходящий метод и задействовать его.

Дополнительно хотим уточнить одну деталь — импортируемые изображения или PDF-файлы не являются прокси-объектами. Они редактируются и удаляются немного иначе, а вот PDF-файлы чаще всего используются лишь в качестве подложки. Более детальную информацию по теме взаимодействия с этими элементами вы найдете в других наших материалах далее.

Просмотр свойств и редактирование прокси-объектов

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

Что касается дополнительных действий редактирования, то вы можете столкнуться с определенными трудностями. Давайте разберем самые популярные действия, выполняемые с прокси-объектами.

  1. Открытие рассматриваемых проектов осуществляется точно по такому же принципу, как и всех остальных типов файлов. Для этого в разделе «Файл» просто выберите пункт «Открыть». Вызвать это меню можно и быстрее, с помощью нажатия на стандартную горячую клавишу Ctrl + O.

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

Далее мы рекомендуем взглянуть на свойства каждого прокси-объекта. Для этого выделите один из них, щелкните по нему правой кнопкой мыши и в контекстном меню выберите вариант «Свойства».

Сделать это можно банальным кликом ЛКМ по одному из отрезков блока или примитива. Затем слева отобразятся самые важные сведения о выбранных деталях, в том числе в названии будет присутствовать приставка, обозначающая принадлежность к прокси.

  1. Отмените все выделения и щелкните ПКМ по пустому месту чертежа. В контекстном меню выберите вариант «Параметры».

Переместитесь во вкладку «Открытие/Сохранение».

Здесь справа внизу находится параметр под названием «Выводить окно сведений о прокси-объектах». Отметьте его галочкой, а затем примените все изменения.

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

Сейчас мы разобрались с основными понятиями о прокси-объектах. Потому пришло время затронуть основную тематику этой статьи — удаление данных компонентов. Мы расскажем о двух способах осуществления поставленной задачи, а также продемонстрируем две полезные опции, которые пригодятся во время взаимодействия с подобными проектами.

Способ 1: Инструмент «Расчленить»

Использование инструмента «Расчленить» позволяет разбить блок на примитивы, что открывает возможность редактирования каждого отрезка. Конечно, это не совсем относится к полноценному удалению прокси-объектов, однако после «взрыва» ничего не мешает вам всячески редактировать или просто стирать все присутствующие элементы. Вся процедура расчленения выглядит так:

Как удалить Proxy (прокси) объекты в AutoCAD

Прокси — объектами становятся объекты, созданные в приложении ObjectARX , обладающий обычно более специализированными функциями по сравнению со стандартными объектами AutoCAD если данное приложение не загружено в данный момент. Например следующие объекты: параметрические тела (AutoCAD Mechanical), интерактивные (с интеллектуальными функциями) обозначения дверей (AutoCAD Architecture), объекты-многоугольники (AutoCAD Map) и объекты — ассоциативные размеры (AutoCAD и AutoCAD LT) превратятся в прокси — объекты если данные приложения не будут загружены при работе с документом.

Кроме Autodesk, существуют производители программного обеспечения, использующие ObjectARX для создания приложений, с помощью которых можно строить графические и неграфические сторонние объекты. Эти объекты можно использовать в приложениях AutoCAD.

Прокси-объекты сильно упрощены по сравнению с исходными объектами. Возможности редактирования прокси-объектов определяются приложениями ObjectARX, в котором объекты были созданы. Например, такие операции, как стирание или перемещение прокси-объекта, а также изменение его свойств могут быть допустимы или нет в зависимости от создавшего их приложения.

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

Полный список доступных в настоящее время адаптеров объектов представлен на веб-узле корпорации Autodesk по адресу http://www.autodesk.com/enablers.

Однако в AutoCAD есть встроенная команда и системные переменные для работы с прокси — объектами.

Ниже рассмотрим команду EXPORTTOAUTOCAD, которая позволяет создать новый DWG-файл со всеми расчлененными прокси — объектами.

[ Формат / Внедрить / Тип внедрения / Обслуживание / Префикс / Суффикс / ? ] Ввести для имени файла >: Ввести опцию или нажать Enter , чтобы задать имя файла

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

Ввести для имени файла

Создание нового файла чертежа с заданным именем.

Имя экспортируемого чертежа текущее>: Ввести имя файла

Формат

Определяет формат для результирующего файла чертежа.

Ввести формат файла [r14/2000/2004/2007] : Указать формат файла чертежа

Внедрить

Определяет способ обработки внешних ссылок при создании нового чертежа.

Внедрить внешние ссылки [Да/Нет] : Введите д или н

Все внешние ссылки внедряются в чертеж. Слияние слоев и других именованных объектов, зависящих от внешних ссылок, с чертежом.

Внешние ссылки обслуживаются как указатели на другие чертежи

Тип внедрения

Определяет способ обработки объектов, зависящих от внешних ссылок, при включенном параметре «Внедрить».

Тип внедрения [Внедрить/Вставить] : Ввести параметр

Сохраняет имена слоев и других объектов, зависящих от внешних ссылок, при внедрении внешних ссылок.

Слияние имен объектов, зависящих от внешних ссылок, с новым чертежом без включения имени исходного файла.

Обслуживание

Определяет способ обработки блоков в пользовательских прокси — объектах.

Поддерживать разрешенные свойства [Да/Нет] : Введите д или н

Расчленение всех вхождений блоков из пользовательских прокси — объектов в базовые объекты AutoCAD. Результирующие базовые объекты вновь приобретают свои исходные свойства, а не свойства определений блока.

Отсутствие расчленения вхождений блоков в пользовательских прокси — объектах. Свойства вхождений блоков определяются обычным способом, в зависимости от способа создания объектов в блоках и установок свойств слоев, в которые блоки вставлены.

Префикс

Префикс, добавляемый к текущему имени файла чертежа.

Префикс имени файла : Ввести символы, добавляемые к началу текущего имени файла

Суффикс

Суффикс, добавляемый к текущему имени файла чертежа.

Суффикс имени файла : Ввести символы, добавляемые к концу имени файла

? Список установок

Выводит список текущих установок команды.

Удаление прокси-объекта в автокаде. Действия по воспроизведению проблемы

Прокси-объекты – это элементы, которые созданы в сторонних приложениях и импортированы в Autocad, при этом создавшее их приложение недоступно. Они обычно ограничены в возможностях по сравнению с обычными сторонними объектами, с ними не всегда корректно производятся некоторые действия, а часто они и совсем недоступны. Например, не редактируются или занимают много памяти, обладают неправильной структурой, выдают ошибку о невозможности поместить в буфер обмена . Чтобы решить эту проблему, можно либо установить приложение, в котором создавался элемент, либо удалить прокси-объект в Автокаде.

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

Использование ExplodeAllProxy

Чтобы легко произвести удаление proxy, скачайте инструмент ExplodeProxy http://www.maestrogroup.com.ua/support/ExplodeProxy.zip. Разархивируйте его в любую папку на компьютере. Далее в Автокаде выполните следующие действия:

ВАЖНО. При перемещении папки с ExplodeProxy в другое расположение, он не будет подгружаться в Автокад

Не перемещайте его или придётся заново добавлять в программу.

Рассмотрим, как узнать, из какого именно приложения попали в документ эти proxy:

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

  1. Наберите команду PURGE.
  2. Появится окно со списком найденных объектов, нажмите Purge.
  3. Чтобы удалить всё в следующем диалоге нажмите «Purge all items».
  4. Повторите действия последовательно для всех групп блоков до тех пор, пока будет активна кнопка «Purge».

Таким образом, можно удалить ненужные прокси объекты и их остатки в Автокаде. Обычно просто встроенной команде «Разделить» они не поддаются и приходится применять специальную утилиту ExplodeProxy, после чего проводить проверку и чистку документа. В итоге можно будет свободно с ним работать, кроме того, благодаря этим действиям он существенно уменьшится в размере.

Прокси-объектами в Автокаде называются элементы чертежа, созданные в сторонних приложениях для черчения или объекты, импортированные в среду AutoCAD из других программ. К сожалению, прокси-объекты часто создают проблемы пользователям Автокада. Они могут не копироваться, не редактироваться, иметь запутанную и некорректную структуру, занимать много места на диске и использовать неоправданно большое количество оперативной памяти. Самым простым решением подобных проблем является удаление прокси-объектов. Данная задача, однако, не так проста и имеет несколько нюансов.

В данной статье мы составим инструкцию по удалению прокси из Автокада.

Значение по умолчанию с ловушкой «get»

Чаще всего используются ловушки на чтение/запись свойств.

Чтобы перехватить операцию чтения, должен иметь метод .

Он срабатывает при попытке прочитать свойство объекта, с аргументами:

  • – это оригинальный объект, который передавался первым аргументом в конструктор ,
  • – имя свойства,
  • – если свойство объекта является геттером, то – это объект, который будет использован как при его вызове. Обычно это сам объект прокси (или наследующий от него объект). Прямо сейчас нам не понадобится этот аргумент, подробнее разберём его позже.

Давайте применим ловушку , чтобы реализовать «значения по умолчанию» для свойств объекта.

Например, сделаем числовой массив, так чтобы при чтении из него несуществующего элемента возвращался .

Обычно при чтении из массива несуществующего свойства возвращается , но мы обернём обычный массив в прокси, который перехватывает операцию чтения свойства из массива и возвращает , если такого элемента нет:

Как видно, это очень легко сделать при помощи ловушки .

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

Представим, что у нас есть объект-словарь с фразами на английском и их переводом на испанский:

Сейчас, если фразы в нет, при чтении возвращается . Но на практике оставлять фразы непереведёнными лучше, чем использовать . Поэтому давайте сделаем так, чтобы при отсутствии перевода возвращалась оригинальная фраза на английском вместо .

Чтобы достичь этого, обернём в прокси, перехватывающий операцию чтения:

Прокси следует использовать везде вместо

Пожалуйста, обратите внимание: прокси перезаписывает переменную:

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

настройки прокси в автокад

Изучите основы и оттачивайте навыки для повышения эффективности работы в AutoCAD

Правила исключения

Убедитесь в том, что флажок «Использовать прокси-сервер для локальных подключений» установлен.

  1. Выберите пункт «Дополнительно».

Прозрачные прокси-серверы

Промежуточный (прозрачный) прокси-сервер сочетает в себе функции прокси-сервера и шлюза или маршрутизатора (обычно с функциями NAT).

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

Соединения могут быть также перенаправлены от сервера SOCKS или других прокси-серверов канального уровня.

Прозрачные прокси не блокируют доступ к компонентам сервера Autodesk.

Часто задаваемые вопросы

Почему нельзя использовать IP-адреса в правилах брандмауэра?Система единого входа Autodesk позволяет использовать ресурсы Akamai, чтобы оптимизировать маршрутизацию через сеть.

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

Если необходимо применить фильтр, это должно быть сделано самим URL-адресом (*.autodesk.com).

Зачем активировать специальные правила для определенных URL-адресов в прокси-сервере?Сейчас информация о проверке подлинности не отправляется на прокси-сервер. Поэтому для анонимной активации подобных подключений требуется настроить правило исключения на прокси-сервере.

Что произойдет, если не использовать прокси-серверы, а настраивать контрольный список непосредственно в брандмауэре?Если правила можно добавить с DNS-именами, упомянутые выше URL-адреса можно использовать, чтобы разрешить передачу данных.

источник

Как удалить Proxy (прокси) объекты в AutoCAD

Прокси — объектами становятся объекты, созданные в приложении ObjectARX , обладающий обычно более специализированными функциями по сравнению со стандартными объектами AutoCAD если данное приложение не загружено в данный момент.

Например следующие объекты: параметрические тела (AutoCAD Mechanical), интерактивные (с интеллектуальными функциями) обозначения дверей (AutoCAD Architecture), объекты-многоугольники (AutoCAD Map) и объекты — ассоциативные размеры (AutoCAD и AutoCAD LT) превратятся в прокси — объекты если данные приложения не будут загружены при работе с документом.

Кроме Autodesk, существуют производители программного обеспечения, использующие ObjectARX для создания приложений, с помощью которых можно строить графические и неграфические сторонние объекты. Эти объекты можно использовать в приложениях AutoCAD.

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

Полный список доступных в настоящее время адаптеров объектов представлен на веб-узле корпорации Autodesk по адресу http://www.autodesk.com/enablers.

Однако в AutoCAD есть встроенная команда и системные переменные для работы с прокси — объектами.

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

Перебор при помощи «ownKeys» и «getOwnPropertyDescriptor»

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

Такие методы различаются в деталях:

  • возвращает не-символьные ключи.
  • возвращает символьные ключи.
  • возвращает не-символьные ключи/значения с флагом (подробнее про флаги свойств было в главе Флаги и дескрипторы свойств).
  • перебирает не-символьные ключи с флагом , а также ключи прототипов.

…Но все они начинают с этого списка.

В примере ниже мы используем ловушку , чтобы цикл по объекту, равно как и пропускали свойства, начинающиеся с подчёркивания :

Как видно, работает.

Впрочем, если мы попробуем возвратить ключ, которого в объекте на самом деле нет, то его не выдаст:

Почему? Причина проста: возвращает только свойства с флагом . Для того, чтобы определить, есть ли этот флаг, он для каждого свойства вызывает внутренний метод , который получает его дескриптор. А в данном случае свойство отсутствует, его дескриптор пуст, флага нет, поэтому оно пропускается.

Чтобы возвращал свойство, нужно либо чтобы свойство в объекте физически было, причём с флагом , либо перехватить вызовы (это делает ловушка ), и там вернуть дескриптор с .

Вот так будет работать:

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий