Кустомальный CАПР
Сборка личных настроек, инструментов, заметок по автоматизации проектной работы
Удаление прокси объектов из файла
Posted on 2017/12/19 by Ilya Mikhajlov

Если в файле присутствуют прокси объекты — помогут команды:
EXPLODEALLPROXY — разбивает все proxy-примитивы, если это возможно — во всем чертеже.
REMOVEALLPROXY — удаляет все proxy-объекты и proxy-примитивы.
CADmaster

Горячая история техподдержки, или Почему AutoCAD удаляет прокси-объекты?
При работе с пользовательским обращением в службу техподдержки выяснилось неприятное обстоятельство: AutoCAD с установленным приложением SPDS Extension удаляет из *.dwg-файлов все прокси-объекты. Как это происходит, что получается в результате и, главное, как защититься от последствий ошибки в приложении к AutoCAD?
Скачать статью в формате PDF — 2.25 Мбайт
Главная » CADmaster №2(88) 2018 » Платформы САПР Горячая история техподдержки, или Почему AutoCAD удаляет прокси-объекты?
Дисклеймер
Целью этой статьи не является дискредитация программного обеспечения. Статья носит исключительно информационный характер и предназначена для защиты конечного пользователя, который может при определенных обстоятельствах потерять свои данные, работая в AutoCAD.
Предисловие
SPDS Extension или модуль СПДС — дополнение к продуктам семейства AutoCAD, разрабатываемым компанией Autodesk.
СПДС GraphiCS — кроссплатформенное приложение, предназначенное для подготовки проектно-технической документации. Разработчик — компания CSoft Development.
nanoCAD СПДС — тот же самый СПДС GraphiCS, но на платформе nanoCAD Plus от компании «Нанософт».
История
Разгребая утреннюю почту, наткнулся на обращение пользователя в техническую поддержку. Тема письма в принципе объясняла суть проблемы: «Объекты nanoCAD СПДС не отображаются в AutoCAD». К письму, как и полагается, были приложены файлы, скриншоты и подробное описание действий пользователя. Если говорить кратко, то суть обращения сводилась к следующему: пользователь создал проект в nanoCAD СПДС и передал его подрядчикам. Подрядчики, открывая этот файл в AutoCAD, не видят объектов СПДС.
Опытные пользователи сразу скажут, что скорее всего подрядчики просто не включили отображение прокси-объектов, поэтому и не видят данные, которые были созданы в специализированном приложении. Но, как оказалось, всё не так просто…
Исследование проблемы
Первым делом открываем файл в nanoCAD СПДС и проверяем состояние переменных proxyshow и proxygraphics. Всё в порядке, оба значения равны единице и файл отображается корректно.
proxyshow — переменная, которая управляет отображением прокси-объектов в чертеже;
proxygraphics — переменная, которая управляет сохранением прокси-объектов в чертеже.

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

Выбираем опцию Показывать прокси-графику и нажимаем ОК. Всё в порядке, на моей машине AutoCAD корректно отображает все объекты nanoCAD СПДС.
С полной уверенностью, что я знаю причину проблемы, закрываю файл и пишу пользователю, что у подрядчиков скорее всего скрыты прокси-объекты в AutoCAD. Даю рекомендацию проверить значение переменной proxyshow (оно должно быть равным единице) прямо из командной строки AutoCAD.
Неожиданные открытия
Утром следующего дня получаю от пользователя ответ: значение переменной равно единице, но объекты по-прежнему не отображаются. К слову, чертеж у подрядчика выглядел вот так (вместо плана отображались лишь размеры и несколько отрезков):
Начинаю разбираться, почему один и тот же файл с одинаковыми значениями переменных может по-разному отображаться в AutoCAD. Дело в операционной системе? В версии AutoCAD? Может, у пользователя стоят какие-то дополнительные приложения? В общем, чтобы понять разницу в конфигурациях, запросил у пользователя больше данных.
Еще раз внимательно просмотрев материалы пользователя, замечаю на одном из скриншотов одну маленькую, но важную деталь. На скриншоте подрядчика в AutoCAD был установлен модуль СПДС или, как его еще называют, SPDS Extension.
В моей конфигурации был чистый AutoCAD без всяких надстроек — и, по сути, это оказалось единственной зацепкой. Не дождавшись от пользователя дополнительных данных, начинаю копать дальше.
Загрузив с официального сайта Autodesk модуль СПДС, устанавливаю его на свою версию AutoCAD 2018. Далее запускаю файл пользователя и вижу привычное сообщение. При этом объекты nanoCAD СПДС отображаются в AutoCAD еще до закрытия окна информации о прокси-объектах.
С мыслью «Мое расследование заходит в тупик» нажимаю кнопку ОК и готовлюсь к дальнейшим действиям. Через мгновение все прокси-объекты исчезают и я получаю тот же результат, что и подрядчики из обращения пользователя.

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

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

Теперь и в nanoCAD СПДС наблюдаю ту же картинку, что при открытии файла в AutoCAD с модулем СПДС. Выходит, что после сохранения в AutoCAD файл пользователя потерял все прокси-объекты.
Удалять чужие прокси очень некрасиво. Решаю проверить данный баг, используя прокси от собственных приложений Autodesk. Нахожу в сети несколько файлов, созданных в приложениях Civil 3D и Advance Steel, и повторяю вышеупомянутый эксперимент, открывая чертежи с прокси-объектами. Во всех случаях после запуска этих файлов прокси-графика удалялась. Получается, что с модулем SPDS Extension многоуважаемый AutoCAD удаляет любые прокси.
Решаю откатиться к своей старой конфигурации AutoCAD и удаляю модуль СПДС от Autodesk, чтобы снова проверить работу файлов с прокси-объектами. Как ни странно, они снова стали нормально сохраняться. Из всего увиденного делаю окончательный вывод:
AutoCAD с установленным модулем СПДС удаляет все прокси-объекты из *.dwg-файлов.
Решение
Можно только предполагать, сколько пользователей потеряли свои данные из-за ошибки приложения SPDS Extension, но всё же цель этой статьи не только предупредить пользователей. Главное — спасти их проекты. Поэтому хочу поделиться решениями этой проблемы.
-
Полное удаление приложения SDPS Extension через панель управления.

Советы
Я призываю пользователей быть острожными и всегда хранить несколько копий своих проектов. nanoCAD, например, при открытии *.dwg-файла сразу делает средствами операционной системы его копию с расширением dwg. original; поэтому у вас всегда будет резервная копия исходного файла.

Если же вы пользуетесь другими САПР, то просто не поленитесь и вручную сделайте несколько копий своих проектов — на всякий случай.
Берегите свои *.dwg-файлы и удачного проектирования!
Удаление прокси из файла CAD
Вопрос: Как очистить файл от этой гадости?
Через пурген не чистится.
Просмотров: 49537
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
Обьекты прокси — результат работы НЕАВТОКАДА, т. е. они созданы программой,чаще всего геодезистами (SURVEJORS») AutoCAD эти объекты распознает и показывает в чертеже. С этими объектами очень нелегко работать, обычно они часть плана-карты итд и их лучше не трогать 🙂
Регистрация: 17.11.2004
Сообщений: 328
Я знаю что не АКАДовские это объекты (HYPER STEEL). но найти их не могу.
Их бы найти и удалить, но как не знаю.
Регистрация: 21.08.2003
Сообщений: 943
А что говорит QSELECT ?
Регистрация: 26.08.2003
Сообщений: 1,022
Сообщение от tokhot
Я знаю что не АКАДовские это объекты (HYPER STEEL). но найти их не могу.
Их бы найти и удалить, но как не знаю.
Скорей всего потребуется прога, которая их туда понапихала. Можно и ручками непосредственно в тексте DXF — ну это для любителей мозахизма 🙄
Регистрация: 11.10.2004
Сообщений: 755
Сообщение от vk
Скорей всего потребуется прога, которая их туда понапихала. Можно и ручками непосредственно в тексте DXF — ну это для любителей мозахизма 🙄
Может пройти такой способ (написано для другой проги):
(defun proxy-explod (doc / zombie sel actl) (vla-clear (setq sel (vla-get-activeselectionset doc))) (ent-obj-select sel "ACAD_PROXY_ENTITY") (vlax-for j sel (setq zombie (cons j zombie)) ) ;_ end of foreach (setq zombie (sublist-by-prop zombie "OwnerID") actl (vla-get-activelayout doc) ) ;_ end of setq (foreach l zombie (vla-put-activelayout doc (vla-get-layout (vla-objectidtoobject doc (vla-get-ownerid (car l))))) (foreach i l (vl-cmdf "_.explode" (vlax-vla-object->ename i)) ) ;_ end of foreach ) ;_ end of foreach (if (/= (vla-get-activelayout doc) actl) (vla-put-activelayout doc actl) ) ;_ end of if (vla-clear sel) ) ;_ end of defun
В качестве аргумента хочет документ, в котором работать. Весь комплект функций, которые нужны для работы, можно найти в ESConvert (которая — Программа предназначена для защиты .dwg файла от редактирования, версия: 0.8.1 (бета)), на странице:
http://www.uniip.ru/#content=http://. /download.html
Пожарная Безопасность, ГИП
Регистрация: 07.04.2007
Сообщений: 186
ситуация такая, сегодня открываю файлы с которыми работал последние недели три, и не вижу не номеров помещений, ни текста экспликации. Причем эти слои никуда не делись и включены. НО при открытии файла в командной строке идет запись: «неописанная форма 56» число указал как пример, там этих чисел и строчек не одна сотня. Что случилось с кадом или чертежом, вчера вечером все сохранил как обычно? Акад Меп 2011 рус.
программист, рыцарь ObjectARX
Регистрация: 09.05.2005
Сообщений: 2,408
Вообще-то сообщения типа «неописанная форма XX» абсолютно(. ) никакого отношения к прокси не имеет. Это сообщение относится к shx-файлам (это или файл шрифта, или файл формы — возможно связано с типом линии). В данном случае я вижу пару причин, которые могли привести к такому сообщению.
1) Используется не тот shx-файл (возможно по путям доступа находится одноименный, но другой файл)
2) Возможно изменились региональные установки.
| Александр Ривилис |
| Посмотреть профиль |
| Посетить домашнюю страницу Александр Ривилис |
| Найти ещё сообщения от Александр Ривилис |
Пожарная Безопасность, ГИП
Регистрация: 07.04.2007
Сообщений: 186
Александр Ривилис спасибо за ответ. Да действительно это все были шрифты, но ничего не менялось, вчера вечером выключил комп, сегодня утром включил и начал работу с тем же файлом (правда включил комп только после обеда, а до этого к нему вообще не подходил). вылечилось просто, перезагрузил сам автокад, думаю при первом запуске он не подцепил файл формы.
Регистрация: 24.06.2010
Сообщений: 33
Прокси-объекты удалить просто.
http://www.caduser.ru/forum/index.ph. D=44&TID=31852
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
Проставлял номера пикетов при помощи мультивыносок. На одном из слоёв при попытке отредактировать, содержимое мультивыноски пропадало, а в командной строке появлялось:
Команда: ** Неописанная форма 1055 ** Неописанная форма 1050 ** Неописанная форма 32 ** Неописанная форма 50 ** Неописанная форма 50 ** Неописанная форма 50 ** Неописанная форма 43 ** Неописанная форма 48 ** Неописанная форма 48
Удаление прокси объектов ни к чему не привело. Лечением оказалась смена типа линии мультивыноски с «по слою» на «Continuous» (тип линии «по слою» стоял «ограждение» —о—-о—-).
Последний раз редактировалось Агент СмиТ, 22.09.2011 в 17:34 .
| Агент СмиТ |
| Посмотреть профиль |
| Найти ещё сообщения от Агент СмиТ |
программист, рыцарь ObjectARX
Регистрация: 09.05.2005
Сообщений: 2,408
Сообщение от Агент СмиТ
Удаление прокси объектов ни к чему не привело.
Читаем внимательно #8
| Александр Ривилис |
| Посмотреть профиль |
| Посетить домашнюю страницу Александр Ривилис |
| Найти ещё сообщения от Александр Ривилис |
Проектирование, конструирование, расчёты в строительстве
Регистрация: 05.03.2012
Великий Новгород
Сообщений: 2
Все шрифты и размеры пропали, переустановка автокада не помогла что делать? Что скачать и куда вставить? или что удалить? Изображение не могу скинуть, опишу так: откр автокад внизу в полосе прокручивается список «** Неописанная форма» много много и текста и размеров всех чисел нету
Регистрация: 18.02.2013
Сообщений: 7
Сообщение от Александр Ривилис
Вообще-то сообщения типа «неописанная форма XX» абсолютно(. ) никакого отношения к прокси не имеет. Это сообщение относится к shx-файлам (это или файл шрифта, или файл формы — возможно связано с типом линии). В данном случае я вижу пару причин, которые могли привести к такому сообщению.
1) Используется не тот shx-файл (возможно по путям доступа находится одноименный, но другой файл)
2) Возможно изменились региональные установки.
Полностью согласен с Александром: сообщение «неописанная форма ХХ» относится к shx-файлам.
Но. Если прокси включает в себя форму ХХ, которую автокад не может найти, то и возникает такое сообщение.
У меня попался такой «чужой» файл. Я в нем удалил всё, почистил пургеном. В итоге осталось несколько объектов ACAD_PROXY_ENTITY. При загрузке такой пустой файл грузился минуту, и выпадало такое сообщение.
Самый простой способ как с этим бороться:
Выделить всё (Ctrl «A») и скопировать всё в буфер (Ctrl «C»), при этом прокси объекты не выделяются и не копируются. Затем создать пустой файл и всё туда вставить.
Удаление прокси-объекта в Автокаде
Прокси-объекты — это элементы, которые созданы в сторонних приложениях и импортированы в Autocad, при этом создавшее их приложение недоступно. Они обычно ограничены в возможностях по сравнению с обычными сторонними объектами, с ними не всегда корректно производятся некоторые действия, а часто они и совсем недоступны. Например, не редактируются или занимают много памяти, обладают неправильной структурой, выдают ошибку о невозможности поместить в буфер обмена. Чтобы решить эту проблему, можно либо установить приложение, в котором создавался элемент, либо удалить прокси-объект в Автокаде.

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

- Зайдите в «Управление».
- Нажмите кнопку «Приложения».
- Выберите из скаченной папки файл с названием, соответствующим вашей версии AutoCad и разрядности операционной системы.
- Нажмите «Загрузить».
- Также вы можете добавить этот инструмента в автозагрузки, нажав соответствующую кнопку в окне. В результате, он будет автоматически запускаться при старте программы.
ВАЖНО. При перемещении папки с ExplodeProxy в другое расположение, он не будет подгружаться в Автокад. Не перемещайте его или придётся заново добавлять в программу.
Далее нужно выполнить следующие действия:
-
После успешной загрузки программы нужно выполнить расчленение proxy-объектов. Для этого в командной строке Автокад наберите EXPLODEALLPROXY. Расчленить, или, как ещё по-другому можно сказать, «взорвать» блок, означает, что он будет разгруппирован до первоначальных элементов. Таким образом, вы сможете внести нужные изменения и снова собрать группу. В случае с proxy действие позволит избавиться от нередактируемых и некопируемых элементов.
![]()
Команда explodeallproxy в Автокаде

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

Информация о proxy-объектах в Автокаде
После выполнения действий по расчленению и удалению неразделённых прокси рекомендуется выполнить команду Purge. Она позволяет очистить документ от ненужной информации, например, неиспользуемых блоков, слоёв, текстовых стилей, типов линий и элементов. Если вы просто удалите элементы, то информация о них в программе останется. Например, в списке слоёв они будут отображаться как не содержащие объектов. Чтобы полностью удалить ненужные элементы чертежа выполните следующее:
- Наберите команду PURGE.
- Появится окно со списком найденных объектов, нажмите Purge.
- Чтобы удалить всё в следующем диалоге нажмите «Purge all items».
- Повторите действия последовательно для всех групп блоков до тех пор, пока будет активна кнопка «Purge».
Таким образом, можно удалить ненужные прокси объекты и их остатки в Автокаде. Обычно просто встроенной команде «Разделить» они не поддаются и приходится применять специальную утилиту ExplodeProxy, после чего проводить проверку и чистку документа. В итоге можно будет свободно с ним работать, кроме того, благодаря этим действиям он существенно уменьшится в размере.