Автокад как найти прокси объекты

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

Как удалить прокси-объект в AutoCAD

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

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

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

  1. Зайдите в «Управление».
  2. Нажмите кнопку «Приложения».
  3. Выберите из скаченной папки файл с названием, соответствующим вашей версии AutoCad и разрядности операционной системы.
  4. Нажмите «Загрузить».
    Загрузить приложение в Автокаде
  5. Также вы можете добавить этот инструмента в автозагрузки, нажав соответствующую кнопку в окне. В результате, он будет автоматически запускаться при старте программы.

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

Далее нужно выполнить следующие действия:

  • После успешной загрузки программы нужно выполнить расчленение proxy-объектов. Для этого в командной строке Автокад наберите EXPLODEALLPROXY. Расчленить, или, как ещё по-другому можно сказать, «взорвать» блок, означает, что он будет разгруппирован до первоначальных элементов. Таким образом, вы сможете внести нужные изменения и снова собрать группу. В случае с proxy действие позволит избавиться от нередактируемых и некопируемых элементов.

    Команда explodeallproxy в Автокаде

    Команда explodeallproxy в Автокаде

  • Далее нужно опять же в командном окне Autocad ввести REMOVEALLPROXY. Это действие предполагает удаление всех proxy из памяти и из чертежа. Программа спросит, очистить ли список масштабов, нажмите «Да».

    Команда removeallproxy в Автокаде

    Команда removeallproxy в Автокаде

  • После успешного удаления объектов, запустите команду AUDIT. Она выполнит проверку чертежа на наличие ошибок. На вопрос, исправить ли ошибки, нажмите «Да».

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

  1. Правым щелчком мыши в окне документа выберите в меню «Параметры».
  2. Перейдите на вкладку «Открытие сохранения».
  3. Поставьте галочку в пункте «Выводить окно сведений о прокси объектах».
  4. Теперь закройте и заново откройте чертёж.
  5. При открытии документа появится окно «Информация о proxy-объектах».

    Информация о proxy-объектах в Автокаде

    Информация о proxy-объектах в Автокаде

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

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

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

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

  • Печать

Страницы: [1]   Вниз

Тема: Как узнать о наличии в чертеже прокси-объектов?  (Прочитано 4189 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Встал вопрос проверки наличия в чертеже прокси объектов. Пол интернета уже облазил – единственное, что пока приходит на ум – итерация по всем объектам базы с проверкой что это прокси объекты. Но ведь когда чертеж открывается, то автокад моментально сообщает о наличии прокси. Значит эта информация хранится в БД. Как ее получить?


Записан


В общем, листая различные ссылки, остановился на варианте итерации по объектам в файле. Опираясь на эту запись сделал себе такой метод:

  1. public static bool HasProxyEntities(string file)

  2. {

  3. if (!File.Exists(file)) return false;

  4.     var db = new Database(false, true);

  5.     db.ReadDwgFile(file, FileShare.Read, true,string.Empty);

  6. using (var tr = db.TransactionManager.StartTransaction())

  7. {

  8.         var bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;

  9. foreach (var objectId in bt)

  10. {

  11.             var btr = tr.GetObject(objectId, OpenMode.ForRead) as BlockTableRecord;

  12. foreach (var objId in btr)

  13. {

  14.                 var ent = tr.GetObject(objId, OpenMode.ForRead) as Entity;

  15. if (ent.IsAProxy)

  16. return true;

  17. }

  18. }

  19. }

  20. return false;

  21. }


Записан



Записан


Александр Пекшев aka Modis
Так ты узнаешь только про прокси-примитивы. Причем тоже возможно не все. Прокси-объекты могут быть не только в блоках. Так что просматривать нужно всю базу.


Записан


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


Записан



Записан


Александр Ривилис, без зазрения совести взял ваш код из ссылки)) Думаю, вы совершенно не против ;)
Получилось так:

  1. public static bool HasProxyEntities(string file)

  2. {

  3. // Взято у Александра Ривилиса – http://adn-cis.org/forum/index.php?topic=1060.msg5017#msg5017

  4. if (!File.Exists(file)) return false;

  5.     var db = new Database(false, true);

  6.     db.ReadDwgFile(file, FileShare.Read, true, string.Empty);

  7.     Handle firstHandle = db.BlockTableId.Handle;  // Первая метка объекта – метка таблицы блоков

  8.     Handle lastHandle = db.Handseed;              // Следующая после последней метки

  9. int nObjects = db.ApproxNumObjects;           // Приблизительное количество объектов в базе

  10. string bufferLast = lastHandle.ToString();

  11. string bufferFirst = firstHandle.ToString();

  12.     Int64 iLast = Int64.Parse(bufferLast, System.Globalization.NumberStyles.HexNumber);

  13.     Int64 iFirst = Int64.Parse(bufferFirst, System.Globalization.NumberStyles.HexNumber);

  14. using (var tr = db.TransactionManager.StartTransaction())

  15. {

  16. for (Int64 i = iFirst; i < iLast && nObjects > 0; i++)

  17. {

  18.             Handle h = new Handle(i);

  19.             ObjectId id = ObjectId.Null;

  20. if (db.TryGetObjectId(h, out id))

  21. {

  22. try

  23. {

  24.                     DBObject dbObj = tr.GetObject(id, OpenMode.ForRead, true, true);

  25. if (dbObj != null && !dbObj.IsErased && dbObj.IsAProxy)

  26. {

  27. return true;

  28. }

  29.                     nObjects–;

  30. }

  31. catch

  32. {

  33. //ignored

  34. }

  35. }

  36. }

  37.         tr.Commit();

  38. }

  39. return false;

  40. }


Записан


Не против. Я бы ещё и без транзакции обошелся.


Записан


если я правильно понял идею…

  1. public static bool HasProxyEntities(string file)

  2. {

  3. if (!File.Exists(file)) return false;

  4.             var db = new Db.Database(false, true);

  5.             db.ReadDwgFile(file, FileShare.Read, true, string.Empty);

  6.             Db.Handle firstHandle = db.BlockTableId.Handle;  // Первая метка объекта – метка таблицы блоков

  7.             Db.Handle lastHandle = db.Handseed;              // Следующая после последней метки

  8. int nObjects = db.ApproxNumObjects;           // Приблизительное количество объектов в базе

  9.             Int64 iLast = Int64.Parse(lastHandle.ToString(), System.Globalization.NumberStyles.HexNumber);

  10.             Int64 iFirst = Int64.Parse(firstHandle.ToString(), System.Globalization.NumberStyles.HexNumber);

  11. for (Int64 i = iFirst; i < iLast && nObjects > 0; i++)

  12. {

  13.                 Db.ObjectId id = db.GetObjectId(false, new Db.Handle(i), 0);

  14. bool isProxyObject = id.ObjectClass.IsDerivedFrom(Rtm.RXClass.GetClass(typeof(Db.ProxyObject)));

  15. bool isProxyEntity = id.ObjectClass.IsDerivedFrom(Rtm.RXClass.GetClass(typeof(Db.ProxyEntity)));

  16. if (!id.IsNull && !id.IsErased &&

  17. !id.IsEffectivelyErased && !isProxyObject &&

  18. !isProxyEntity && id.IsResident && id.IsValid)

  19. return true;

  20. }

  21. return false;

  22. }


Записан


А случайно вот это:

  1. Int64.Parse(lastHandle.ToString(), System.Globalization.NumberStyles.HexNumber)

не то же самое, что:

  1.  lastHandle.Value

?
А зачем проверка:

  1. nObjects > 0

выполняется в условии цикла, если в теле цикла это значение не меняется?


Записан


Как ни странно, но вариант проверки ВСЕГО мне не подходит) Вариант проверки только на наличие прокси примитивов в моем случае лучше. Ну это касаемо уже потребностей моей функции

Если создать файл в 2017 автокаде и сохранить его в 2010 версию, то в автокаде 2010 у этого файла уже появятся прокси объекты (не примитивы)


Записан


  • Печать

Страницы: [1]   Вверх

Почему AutoCAD не показывает прокси-графику?

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

  • PROXYNOTICE — определяет, будет ли отображаться уведомление. Установите для этого параметра значение 0, чтобы отключить информационное сообщение о прокси-сервере.
  • PROXYSHOW — эта переменная управляет отображением прокси-объектов на чертеже.

Как исправить прокси-объекты в AutoCAD?

Вы можете отключить уведомление, установив для системной переменной PROXYNOTICE значение 0. Если вы не копируете чертеж с вертикалью, такой как AutoCAD Civil 3D или AutoCAD Architecture, вы, безусловно, можете избавиться от прокси-объектов. Самый простой способ сделать это — использовать команду -EXPORTtoAUTOCAD.

Где находятся прокси-объекты в AutoCAD?

При открытии чертежа может появиться диалоговое окно «Информация о прокси». В диалоговом окне сообщается общее количество прокси-объектов на чертеже (как графических, так и неграфических) и имя отсутствующего приложения, а также предоставляется дополнительная информация о типе прокси-объекта и состоянии отображения.

Как включить адаптер объектов в AutoCAD?

Адаптеры объектов, установленные для AutoCAD, будут применяться ко всему программному обеспечению на основе AutoCAD.

Решение:

  1. Перейдите в Autodesk Knowledge Network.
  2. Выберите «Поддержка и обучение».
  3. Выберите подходящее программное обеспечение (например, AutoCAD).
  4. Выберите «Загрузки».
  5. Выберите подходящую версию (пример: 2019).
  6. Прокрутите страницу вниз до «Активаторов объектов».

Что такое активатор объектов AutoCAD?

Civil Object Enabler — это бесплатное приложение, которое можно использовать для доступа к файлам чертежей Autodesk Civil 3D. Этот выпуск позволяет получать доступ к данным объектов, созданным в Autodesk Civil 3D 2020, за пределами среды Autodesk Civil 3D 2020.

Как изменить настройки прокси-сервера в AutoCAD?

Чтобы войти в настройки прокси:

  1. Щелкните стрелку вниз справа от вашего имени в верхней части окна приложения. …
  2. Нажмите «Настройки».
  3. Щелкните значок прокси.
  4. В раскрывающемся списке «Настройки прокси» выберите «Вручную».
  5. Введите информацию, предоставленную вашим сетевым администратором. …
  6. Нажмите Готово.

Что такое прокси-графика AutoCAD?

Прокси-графика хранит последнее просмотренное изображение AD-объектов, что позволяет пользователям просматривать ваш чертеж без изменения исходных объектов. Прокси-графика хранит только отображаемое представление для текущего активного видового экрана.14 мая 2019 г.

Что такое прокси-объект?

Прокси-объект действует как посредник между клиентом и доступным объектом. Цель прокси-объекта — следить за сроком жизни доступного объекта и переадресовывать вызовы доступному объекту только в том случае, если он не уничтожен. … Прокси-объект прозрачен для клиента.31 мая 2018 г.

Почему в AutoCAD не удается скопировать в буфер обмена?

Существует несколько причин, в том числе: Набор объектов содержит прокси-объекты, которыми не может управлять процесс копирования. Чертеж создается или экспортируется из стороннего приложения (не собственного продукта Autodesk). Файл чертежа поврежден.

Что такое прокси-объект AutoCAD?

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

Как отключить прокси-графику в AutoCAD?

Чтобы отключить сообщение, измените переменную PROXYNOTICE на 0 (ноль). Если на чертеже отображается прокси-уведомление, но соответствующий адаптер объектов уже установлен, файл может нуждаться в восстановлении (см. раздел Восстановление поврежденных файлов AutoCAD).31 мая 2020 г.

Что такое прокси-обработчик?

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

Как использовать активатор объектов Civil 3d?

Решения

  1. Шаг 1: Загрузите и установите Civil Option Enabler. Civil Object Enabler позволяет открывать и выполнять работу с 3D-чертежами, созданными в AutoCAD Civil 3D. …
  2. Шаг 2: Убедитесь, что вы видите прокси-объекты. Введите Op в командной строке и нажмите Enter, чтобы открыть диалоговое окно CAD Options.

Прокси объекты в AutoCAD

– Откуда берутся прокси объекты?
– Что это такое?
– Тормозит чертёж !!!
– Не могу скопировать 🙁 !!!
– Вообще ничего не могу сделать с чертежом
Наверное всем знакома подобная картина.

Именно с этими вопросами подходят ко мне мои коллеги.
Прокси объекты – что же это такое?

Прокси объекты появляются  в чертеже AutoCAD  когда  чертёж создаётся с помощью  СПДС GraphiCS, MechaniCS, ProjectStudio использующих при создании чертежа собственные объекты ( например многоуровневые ссылки, отметки этажей и пр.).  Когда эти файлы открываются в чистом AutoCAD либо не совпадают версии, сборки  то AutoCAD заменяет неизвестные ему объекты на понятные ему примитивы.

Для борьбы с Proxy  используется инструмент “ExplodeProxy”. Скачать можно здесь

Командой _APPLOAD вызываем окно загрузки программ

Команда EXPLODEALLPROXY:
 Разбивает вообще все proxy-объекты, неважно, где они лежат.
Команда REMOVEALLPROXY:
 Удаляет все proxy-объекты и proxy-примитивы. Ее удобно выполнять
после EXPLODEALLPROXY – тогда она удалит все прокси объекты из чертежа и не будет держать их в памяти.
Команда REMOVEEXTENTS –  Удаляет все  за пределами указанными пользователем.
После выполнения приведенных команд необходимо выполнить последовательно проверку чертежа и чистку  командами:
_AUDIT
_PURGE.

Все ваш чертёж больше не содержит Proxy объектов и готов к работе, копированию  и пр.

Всё о прокси объектах.

Добавить комментарий