Что такое прокси объекты в автокаде
Иногда случается такая ситуация, что при попытке работать с объектами внутри одного чертежа AutoCAD или между несколькими файлами, система зависает на несколько минут, а то и вообще аварийно завершает работу. Особенно это проявляется в работе файлов, пришедших от подрядчиков, соисполнителей и прочих контрагентов. При этом проблема никак не зависит от размера файла.
Причин возникновения данного рода проблем, может быть огромное количество, от поврежденных данных в чертеже и до банального несоответствия конфигурации AutoCad. К сожалению, многие коллеги считают, что проблема происходит из-за «виртуальной машины», а вот на «персональном компьютере» этот чертёж будет работать быстрей и правильней, но это далеко не так.
Отдел IT старается как можно оперативно проводить диагностику работы операционной системы внутри виртуальной машины, следить за актуальными обновлениями САПР систем. Но если есть проблема с самим документом, то тут как не старайся оптимизировать систему – проблему не решить. Давайте разбираться, с чего же можно начинать решать такие вопросы:
- Проявляются ли разного рода подвисания в других проектах, или только в одном чертеже?
- Присутствуют ли «внешние ссылки», возможно многоуровневые?
- Имеются ли растровые изображения pdf, dwf, dgn?
- Используются ли shx, ttf-шрифты стороннего приготовления?
- Типы линий и т.п.
- Если программа при открытии чертежа указывает на то, что он повреждён и предлагает восстановить его, то желательно сделав копию «оригинала» дать системе возможность произвести корректировки!
- Убеждаемся, что у нас подгружены необходимые модули. (Если их нет, необходимо загрузить!)
- Загружаем ExplodeProxy (y:\SOFT\!SAPR\AutoCAD\!CLS\ExplodeProxy\*), с помощью команды _ExplodeAllProxy находим прокси объекты и затем _RemoveAllProxy — убираем прокси-объекты
- Чистим с помощью CleanDWG13 (y:\SOFT\!SAPR\AutoCAD\!CLS\CleanDWG13\), запуск с помощью команды _CLEANDWG
- Проверяем чертёж с помощью _AUDIT
- Ещё есть вариант убрать неиспользуемые масштабы (можно с помощью команды _SCALELISTEDIT
Если вы всё сделали, но с чертежом всё-равно крайне некомфортно работать в AutoCad17, пробуйте открыть его в других САПР системах (AutoCAD21, GStarCAD19, GStarCAD21, BricsCAD)… или попросите, чтобы вам передавали чертежи в zip с помощью ФОРМКОМПЛЕКТ _ETRANSMIT
На сайте autolisp.ru есть статья о том, как корректно передавать чертежи dwg — ССЫЛКА
Также, можно попробовать создать новый чертёж и уже в него «шаг за шагом» переносить объекты со старого. Если при переносе одного из объектов чертёж начнёт «замедляться», а явных проблем с объектом не видно (появляется задержка при дублировании объектов в чертеже, задержка при масштабировании и т.п.), то как вариант — нарисовать в новом чертеже данный объект «с нуля».
О пользовательских объектах и прокси-объектах
Использование сторонних объектов открывает дополнительные возможности применения программы и родственных продуктов. Если приложение, в котором был создан сторонний объект, не загружено, то используется прокси-объект.
Сторонний объект – это тип объектов, созданных в приложении ObjectARX ® (AutoCAD Run-Time Extension), обладающий обычно более специализированными функциями по сравнению со стандартными объектами AutoCAD и AutoCAD LT. К сторонним объектам относятся параметрические тела (AutoCAD ® Mechanical), интерактивные (с интеллектуальными функциями) обозначения дверей (AutoCAD ® Architecture), объекты-полигоны (AutoCAD ® Map 3D) и объекты — ассоциативные размеры (AutoCAD и AutoCAD LT).
Кроме Autodesk, существуют производители программного обеспечения, использующие ObjectARX для создания приложений, с помощью которых можно строить графические и неграфические сторонние объекты. Эти объекты можно использовать в приложениях AutoCAD.
Прокси-объекты
Прокси-объекты используются в AutoCAD, AutoCAD LT и других приложениях вместо сторонних объектов, созданных с помощью приложения ObjectARX, если последнее недоступно. В дальнейшем, когда приложение становится доступным, прокси-объект заменяется сторонним объектом.
Прокси-объекты сильно упрощены по сравнению с исходными сторонними объектами. Возможности редактирования прокси-объектов определяются приложениями ObjectARX, в котором объекты были созданы. Например, такие операции, как стирание или перемещение прокси-объекта, а также изменение его свойств могут быть допустимы или нет в зависимости от создавшего их приложения.
Открывая чертеж, следует обратить внимание на диалоговое окно «Информация о прокси». В этом окне выводится общее количество прокси-объектов (как графических, так и неграфических), имя приложения, необходимого для нормального вывода замещенных объектов, а также дополнительная информация о типе и способе отображения прокси-объектов. С помощью данного диалогового окна можно управлять отображением прокси-объектов на чертеже.
Адаптеры объектов
Адаптер объектов — это средство доступа для специального просмотра и стандартного редактирования сторонних объектов в других приложениях, использующееся, если приложение, в котором был создан сторонний объект, в системе не установлено.
Использование адаптеров объектов обеспечивает большую гибкость работы со сторонними объектами, чем непосредственное использование прокси-объектов. Адаптеры объектов также обеспечивают возможность коллективной работы с другими продуктами Autodesk.
Если приложение ObjectARX не установлено в системе, можно выполнить поиск доступных адаптеров объектов в Интернете. Например, при получении чертежа с объектами, созданными с помощью программы Autodesk Architectural Desktop, которая не установлена в системе, выполняется загрузка адаптера объектов AEC для просмотра чертежа в исходном виде.
Чтобы найти доступные адаптеры объектов, перейдите на страницу https://www.autodesk.com/enablers.
Классификация объектов
Если в приложении (например, AutoCAD ® Map 3D) объекту была присвоена классификация элементов (объектов), ее можно просматривать на палитре свойств в поле записи «Имя класса». Если классификация объекта удалена из XML-файла, или удален сам файл классификаций, в группе имен классов выводится восклицательный знак. Сведения об условиях создания классификаций см. в документации по AutoCAD ® Map 3D.
Можно также использовать функцию «Быстрый выбор» для выбора объектов по именам или свойствам классов.
Понятия, связанные с данным
Ссылки, связанные с данной
Что такое прокси-объекты (proxy)?
Подскажите, пожалуйста, для эрудиции: что за объекты ProXY (прокси)?
#2 Ответ от Jura 6 октября 2005г. 12:51:52
Re: Что такое прокси-объекты (proxy)?
Например «текст по дуге» из express`ов.
Даже при отсутствии приложения породившего объект, может и отрисоваться, но объект остается закрыт для изменения.
В некоторых версиях отсутствие породившего приложения крашило ACAD.
#3 Ответ от SRAIBIKUS 6 октября 2005г. 12:55:04
Re: Что такое прокси-объекты (proxy)?
Не совсем понял. Поясни, пожалуйста.
#4 Ответ от Jura 6 октября 2005г. 13:03:40
Re: Что такое прокси-объекты (proxy)?
#5 Ответ от Александр Ривилис 6 октября 2005г. 13:04:36
Re: Что такое прокси-объекты (proxy)?
> SRAIBIKUS
Прокси-объекты = объекты-заместители. Если имеются custom entity (собственные примитивы, нестандартные примитивы), т.е. примитивы созданные при помощи arx(dbx)-приложений и в AutoCAD не загружено это приложение, то вместо этого примитива появляется его объект-заместитель. В зависимости от установок custom entity какие-то правки для прокси-объекта в отсутствии породившего его приложения могут быть разрешены, а какие-то нет (например, изменения цвета, слоя и т.д.)
#6 Ответ от SRAIBIKUS 6 октября 2005г. 13:31:14
Re: Что такое прокси-объекты (proxy)?
#7 Ответ от SRAIBIKUS 10 октября 2005г. 16:57:37
Re: Что такое прокси-объекты (proxy)?
Опять по этой теме: столкнулся с чертежом, где по листингу размерный текст — ProXY. При предварительном просмотре печати 1-я цифра размерного текста отличается от остальных по толщине. При печати нормально печатается только 1-я цифра, остальные — почти невидимо. Вариант — разблокировать размеры (2 раза, чтобы уйти от мультитекста). Но хотелось бы понять эту смесь физики с логикой. Как можно было бы сделать «почище» ?
#8 Ответ от SRAIBIKUS 7 декабря 2005г. 13:41:00
Re: Что такое прокси-объекты (proxy)?
Ну неужели никто не сталкивался с этой проблемой ?
#9 Ответ от Jura 7 декабря 2005г. 18:17:26
Re: Что такое прокси-объекты (proxy)?
Трудно определить жив ли Ваш предок.
В моем понимании проксю без предков не разбить. Хотя.
Если предок жив, может он и изгаляется.
Конечно, в этом случае, Вы можете огласить имя Вашего предка, но не факт, что кто-то с ним знаком, соотвтвно с его повадками.
Если предок потерялся, то что выросло то выросло, т.е. доктор сказал в морг, значит .
Объяснять, кратко и понятно, как Александр Ривилис, я не умею.
Иначе говоря, Вам к разработчику.
PS ProXY — такое сочетание регистров не попадалось, только Proxy или proxy. Чего-то на засаду смахивает.
#10 Ответ от submariner 16 декабря 2005г. 09:20:49
Re: Что такое прокси-объекты (proxy)?
А кто знает: как обнаружить и удалить объекты-заместители, если они не нужны?
Например получаю чертеж со стороны, ACAD сообщает, что в базе есть объекты-заместители, причем, как я понял из сообщения, они могут классифицироваться как «объекты (без графики)», «примитивы без графики», «примитивы в контурном виде», «примитивы в нормальном виде» (за точность перевода не ручаюсь). Понятно также, что системные переменныке PROXYGRAPHICS, PROXYNOTICE, PROXYSHOW отвечают за возможность создания, сохранения и отображения этих объектов (в явном виде или в виде рамки). Но все же вопрос: как обнаружить прокси-объекты (возможно с помощью ALISP), если их не знаешь заранее?
Благодарю за внимание.
Почти прокси-объекты в AutoCAD…
Иногда, при некоторых установках, AutoCAD может выдавать предупреждение о наличии прокси-объектов во вполне невинных файлах. Что делать, кто виновать и как лечить? Вот об этом и хочется немного поболтать
Подчеркиваю — речь идет именно о работе, а не об очистке файла. Это важно.
Внутри последних версий AutoCAD множество вещей сделаны «дополнительными». Поведение подобных примитивов регулируется дополнительно загружаемыми модулями (например, та же самая маскировка, или RTEXT, ныне почти позабытый).
Поведение (точнее, не поведение, а обработка — что бы под этим термином не подразумевалось) подобных примитивов AutoCAD регулирует , подгружая соответствующие модули. Так, например, для обработки «Маскировки» используется модуль wipeout (три файла: acwipeout.arx, acwipeoutres.dll и acwipeoutobj .dbx. Последний — ObjectEnabler, и, насколько я помню и понимаю, напрямую используется достаточно редко. Обычно AutoCAD подгружает arx).
Допустим, в файле dwg используется маскировка и при этом demandload равна 2. В таком случае при открытии этого файла AutoCAD вывалит предупреждение о прокси-объектах (напоминаю, что для показа соответствующего окошка надо установить proxynotice равно 1). А если еще и proxyshow равна 0, то мы вместо фигурных wipeout’ов увидим пустоту.
Вопрос — что делать?
Фактически вариантов два:
1. Установить demandload равным 3 (подчеркиваю — это именно для работы!). Как мне кажется — не очень хороший вариант: в чертеже может быть намешано черт-те что, и работа с ним быстренько превратится в пытку.
2. Принудительно загружать соответствующие приложения. Вручную или нет — это уже вопрос отдельный. Мне такой вариант нравится значительно больше Конечно, иногда приходится поломать голову, но зато я точно знаю, что и в каком объеме у меня грузится.
Похожее
Размещено в AutoCAD · Метки: Чистка
Комментарии
Есть 2 коммент. к “Почти прокси-объекты в AutoCAD…”
Привет!
Подскажи пожалуйста:
Можно ли autolisp-ом редактировать/создавать PROXY-объекты (CIVIL 3D)
Пару методов подкинь (если есть), что бы понять о чем речь — буду искать дальше.
Кулик Алексей aka kpblc пишет:
Ну, я с подобным достаточно давно не сталкивался.
Во-первых, надо проверять загруженность модулей Civil’а. Скорее всего, запустить как чистый ACAD с demandload =2, вызвать (arx), запомнить — и потом аналогичную процедуру уже в Civil. Результаты сравнить. Можно, конечно, это и не делать — но тогда достаточно быстро может стать уныло.
Во-вторых, тьма вещей (если Civil сделан по аналогии с АА, а не с ACADE) хранятся в словарях, навешанных на стили, объекты и тьму чего еще. Так что с ними и разбираться.
Я не модифицировал программно объекты, т.к. это у меня порождало массу самых разных проблем, и ограничивался только считыванием данных.