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

Обновлено: 07.07.2024

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

Сторонний объект - это тип объектов, созданных в приложении ObjectARX ® (AutoCAD Run-Time Extension), обладающий обычно более специализированными функциями по сравнению со стандартными объектами AutoCAD. К сторонним объектам относятся параметрические тела (AutoCAD ® Mechanical), интерактивные (с интеллектуальными функциями) обозначения дверей (AutoCAD ® Architecture), объекты-полигоны (AutoCAD ® Map 3D) и объекты - ассоциативные размеры (AutoCAD и AutoCAD LT).

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

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

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

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

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

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

Если приложение ObjectARX не установлено в системе, можно выполнить поиск доступных адаптеров объектов в Интернете. Например, при получении чертежа с объектами, созданными с помощью программы Autodesk Architectural Desktop, которая не установлена в системе, выполняется загрузка адаптера объектов AEC для просмотра чертежа в исходном виде.

Поиск адаптеров объектов можно включить и отключить с помощью параметров в списке "Адаптер объектов" вкладки "Система" диалогового окна "Параметры".

Если в приложении (например, AutoCAD ® Map 3D) объекту была присвоена классификация элементов (объектов), ее можно просматривать на палитре свойств в поле записи "Имя класса". Если классификация объекта удалена из XML-файла, или удален сам файл классификаций, в группе имен классов выводится восклицательный знак. Сведения об условиях создания классификаций см. в документации по AutoCAD ® Map 3D.

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

Второй день пользуюсь ACAD 2009 и вдруг столкнулся с тем, что он как-то выборочно копирует блоки из одного чертежа в другой. Пол-часа пробовал разные варианты, закономерности не нашел. Если копировать несколько блоков и в наборе будет хотя бы один из тех, что не копируются - не копируются все блоки. Если блок взорвать и создать заново - вроде бы копируется.

Возможно, в этой версии ACAD-a у блоков появилось новое свойство (типа "защита от копирования")? Впрочем, возможно, такое свойство было и раньше, просто я не встречал его.

Если знаете, в чем тут дело - помогите, пожалуйста. Спасибо.

Последний раз редактировалось Кулик Алексей aka kpblc, 05.09.2014 в 09:38 . __________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

2 kpblc: к сожалению, ничто из предложенного не помогло.

Придется возвращаться к 2007-му АКАДу, сейчас нет времени разбираться.

Gamer777, а выложить пример с блоком, который не копируется?

программист, рыцарь ObjectARX

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

Александр Ривилис: Спасибо, скачал. Пробую обработать этой утилитой, хотя в этом файле вроде бы прокси-объектов у меня нет (я думал, что СПДС-примочка после установки оставляет во всех файлах какие-то стили линий, масштабы и т.п., которые и удаляет эта утилита).

Хм. Пишет, что не может загрузить ARX-файл. Для 2009го АСАДА какой модуль нужно загружать, ExplodeProxy2010x32.arx?

__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Александр Ривилис: Загрузилась утилита для 2007-го АКАДа.

Таки были какие-то прокси-объекты. Но какие.

Первая метка объекта: <1>, последняя метка объекта: <35124>
Всего найдено proxy-объектов: 12. Из них proxy-примитивов: 0.

Видимых прокси-объектов не было (обычно в Quick Select можно увидеть объекты типа Proxy). А какие могут быть невидимые прокси-объекты?

Короче, после удаления всех прокси из чертежа возможность копировать блоки появилась. Большое спасибо.

программист, рыцарь ObjectARX

Александр Ривилис: Загрузилась утилита для 2007-го АКАДа.

Таки были какие-то прокси-объекты. Но какие.

Первая метка объекта: <1>, последняя метка объекта: <35124>
Всего найдено proxy-объектов: 12. Из них proxy-примитивов: 0.

Видимых прокси-объектов не было (обычно в Quick Select можно увидеть объекты типа Proxy). А какие могут быть невидимые прокси-объекты?

Короче, после удаления всех прокси из чертежа возможность копировать блоки появилась. Большое спасибо.

Ну какие точно были я сказать не могу, но в двух словах есть прокси-примитивы ("видимые") и прокси-объекты (типа словарей, таблиц и т.д.), которые не имеют видимого представления. Так вот они не могут копироваться между чертежами, а если на них есть ссылка, то и то, что на них ссылается копироваться не может. Ну какие точно были я сказать не могу, но в двух словах есть прокси-примитивы ("видимые") и прокси-объекты (типа словарей, таблиц и т.д.), которые не имеют видимого представления. Так вот они не могут копироваться между чертежами, а если на них есть ссылка, то и то, что на них ссылается копироваться не может. Не могут копироваться, наверное, только в 2009м АКАДе. В 2007м я все прекрасно копировал и даже и не догадывался о существовании в чертеже каких-то прокси-объектов.
А можно сделать доп.функцию у этой ОЧЕНЬ ПОЛЕЗНОЙ ПРОГРАММКИ? Чтобы перед тем, как удалить все прокси-объекты, можно было получить удобоваримый список этих объектов.
Потому что меня лично беспокоит, что за объекты я там удаляю и не будут ли у меня потом противоположные проблемы, связанные с отсутствием этих самых объектов. Наилучший выход из положения в случае с СПДС - разбивать объекты СПДС средствами самой СПДС. В случае с вертикальными решениями AutoCAD - делать импорт чертежа в AutoCAD средствами этих вертикальных решений.

программист, рыцарь ObjectARX

Не могут копироваться, наверное, только в 2009м АКАДе. В 2007м я все прекрасно копировал и даже и не догадывался о существовании в чертеже каких-то прокси-объектов. А в 2007-ом возможно прокси-объектов и не было. Если был установлен СПДС или его энейблер.
А можно сделать доп.функцию у этой ОЧЕНЬ ПОЛЕЗНОЙ ПРОГРАММКИ? Чтобы перед тем, как удалить все прокси-объекты, можно было получить удобоваримый список этих объектов.
Потому что меня лично беспокоит, что за объекты я там удаляю и не будут ли у меня потом противоположные проблемы, связанные с отсутствием этих самых объектов. Я делал когда-то, только информация там такая, что только опытный программист может понять что это такое. А если этих прокси-объектов тысячи или десятки тысяч (бывает достаточно часто), то все равно не уследишь. А в 2007-ом возможно прокси-объектов и не было. Если был установлен СПДС или его энейблер.

Были. И в 2007-м, и даже в 2004-м мне встречались прокси-объекты. Если файл был создан в Mechanical, например, или в СПДС. Просто если соответствующий энейблер не установлен - при открытии файла предлагаются способы отображения этих прокси-объектов (как рамка или не отображать). Если энейблер установлен - при открытии файла ничего не выдается, но в чертеже можно пощупать эти объекты (если они видимые, конечно) и даже тупо взорвать их.

Я делал когда-то, только информация там такая, что только опытный программист может понять что это такое. А если этих прокси-объектов тысячи или десятки тысяч (бывает достаточно часто), то все равно не уследишь.

Ну, я это понимаю. Только если припрет - можно хоть будет разобраться (особенно если у объектов есть какой-нибудь признак типа (например, 1- таблица, 2 - стиль и т.п.)), а если не нужно - просто проигнорировать этот список. Ну, и выводить ведь его не обязательно на экран, а в файл листинга, и добавить вопросик во время отработки утилиты "Хотите сохранить список удаляемых объектов в файл?".

Ну ладно, это я уже вредничаю Нельзя, так нельзя. И так доволен, что хоть понял, в чем дело.

программист, рыцарь ObjectARX

Были. И в 2007-м, и даже в 2004-м мне встречались прокси-объекты. Если файл был создан в Mechanical, например, или в СПДС. Просто если соответствующий энейблер не установлен - при открытии файла предлагаются способы отображения этих прокси-объектов (как рамка или не отображать). Если энейблер установлен - при открытии файла ничего не выдается, но в чертеже можно пощупать эти объекты (если они видимые, конечно) и даже тупо взорвать их.

Ну, я это понимаю. Только если припрет - можно хоть будет разобраться (особенно если у объектов есть какой-нибудь признак типа (например, 1- таблица, 2 - стиль и т.п.)), а если не нужно - просто проигнорировать этот список. Ну, и выводить ведь его не обязательно на экран, а в файл листинга, и добавить вопросик во время отработки утилиты "Хотите сохранить список удаляемых объектов в файл?".

Ну ладно, это я уже вредничаю Нельзя, так нельзя. И так доволен, что хоть понял, в чем дело.

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

Сегодня читал эту тему. Много думал. Потом поэкспериментировал, вот результаты:

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

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

3. Загрузил модуль ExplodeProxy, команда EXPLODEALLPROXY ничего не взорвала (тут я удивился! Если прокси видны в чертеже, их нужно разорвать и оставить в чертеже как обычные объекты, а не удалить). Команда REMOVEALLPROXY аккуратно вычистила все прокси-объекты. Хотя в данном случае это было бесполезно, видимые объекты мне были нужны.

4. Взял чертеж, с которого началась эта тема, открыл в 2009м АКАДе. Некоторые (не все) блоки в чертеже не копируются. Причем они именно не копируются в буфер, потому что если после Ctrl-C жмем Ctrl-V, то вставляется то, что было помещено в буфер раньше! Видимых прокси нет. Команда EXPLODEALLPROXY ничего не взорвала, команда REMOVEALLPROXY аккуратно вычистила все прокси-объекты. После этого копирование всех объектов восстановилось. Но осадок остался - что это я там удалил-то?

5. Скачал [FONT=Verdana] Object Enabler для СПДС GraphiCS 5.0 под AutoCAD 2007-2009 [/FONT], установил. После этого ВСЕ проблемы исчезли: объекты СПДС в первом файле, естественно, видны, копируются, вставляются, взрываются обычной командой EXPLODE (они ж родные для СПДС). Во втором файле все по-прежнему, никакие новые объекты видны не стали, но копирование всех объектов через буфер восстановилось!

[FONT=Verdana]6. Чтобы совсем уж проверить все варианты, после установки энейблера вызвал команду EXPLODEALLPROXY - ничего не взорвалось ни в первом, ни во втором файлах. Команда REMOVEALLPROXY ничего не удалила ни в первом, ни во втором файле. Это еще раз подтверждает тезис, высказанный в посте 14: при установленном энейблере прокси-объектов в чертеже нет. Из этого вытекают:[/FONT]
[FONT=Verdana] Следствие 1: в моем исходном проблемном файле сидят какие-то приблуды именно от СПДС и проблемы с копированием были именно из-за них.[/FONT]
[FONT=Verdana] Следствие 2: поскольку я сам СПДС не пользуюсь, значит, эти приблуды могут мигрировать из чертежа в чертеж неявным образом (при копировании других объектов из чертежей, созданных с применением СПДС).[/FONT]


Автор:

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

Сторонний объект – это тип объектов, созданных в приложении 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 для просмотра чертежа в исходном виде.

Классификация объектов

Если в приложении (например, AutoCAD ® Map 3D) объекту была присвоена классификация элементов (объектов), ее можно просматривать на палитре свойств в поле записи "Имя класса". Если классификация объекта удалена из XML-файла, или удален сам файл классификаций, в группе имен классов выводится восклицательный знак. Сведения об условиях создания классификаций см. в документации по AutoCAD ® Map 3D.

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

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

AutoCAD не копирует в буфер обмена

Два простых вопроса, не связанных с Автокадом

Первая проблема может напомнить вам работу с некоторыми версиями Фотошопа, которые категорически не воспринимают использование управляющих клавиш, когда клавиатура на русском языке. Другими словами, если вы хотите скопировать или вырезать в буфер обмена привычными сочетаниями Ctrl+C и Ctrl+X, находясь в русском, это у вас не получится. Переходите на английский – всё работает нормально.

Проверьте, не из того же поля ягода ваш Автокад.

Вторая проблема посерьёзнее и связана с особенностью уже собственно AutoCAD – программы объёмной, имеющей массу возможностей. Эти возможности – множество шрифтов, линий, слоёв (самое главное), трёхмерных объектов (принципиально) – если ими пользоваться «без царя в голове», очень много занимают места в оперативной памяти, и у вас, когда производите копирование в буфер обмена, просто не хватает в нём места под весь чертёж. Возникает задача двойного рода: во-первых, упростить чертёж, очистить его от всего ненужного; во-вторых, когда это выполнено, увеличить объём буфера, это уже относится к операционной системе ПК.

Под упрощением чертежа понимается:

  • удаление ненужных и неиспользуемых слоёв;
  • объединение слоёв, это по возможности;
  • оптимизация использования линий – проверьте целесообразность применения некоторых: иногда не производится копирование не всего чертежа, а отдельных линий, их, скорее всего, просто нет в системе, оптимизация поможет избавиться от таких потерь;
  • оптимизация использования шрифтов – это очень плохой стиль и чертежа, и работы в AutoCAD’е, когда шрифты используются без всякой системы. Одно из следствий такого поведения как раз очень большой объём памяти, занимаемый чертежом, замедление скорости работы с ним, отказ в размещении в буфере обмена.
  • оптимизация использования размерных стилей – бессистемное применение размерных стилей оказывает такое же негативное влияние на чертёж, как и бессистемное использование шрифтов. Здесь тоже потребуется пересмотр использования всех стилей, что сделать очень непросто, если чертёж большой и создавался другим.

Продвинутые способы оптимизации чертежа

Существуют и более тонкие, более продвинутые способы оптимизации чертежа.

Очень хорошо помогает сократить объём используемой памяти удаление истории создания трёхмерных тел.

Для этого необходимо ввести в командной строке: _brep.

Команда Автокада _brep

Команда Автокада _brep

Команда потребует выделить все тела, к которым она будет относиться. Нажатие на Enter удаляет историю работы с указанными телами. Обращаем внимание, что _brep не работает с объектами в блоках или во внешних ссылках (хотя это и естественно).

Далее. Очень много места занимает запоминание параметрических зависимостей. Для их удаления нужно в командной строке ввести команду: _delconstraint.

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

Для удаления масштабов и приведения всех объектов к одному потребуется команда: _scalelistedit. Данная команда сопровождается вводом следующих трёх параметров:

  • Enter option [?/Add/Delete/Reset/Exit]: R – производит сброс всех масштабов;
  • Reset scale list to defaults? [Yes/No]: Y – производит сброс списка масштабов в состояние по умолчанию;
  • Scale list reset to default entries;
  • Enter option [?/Add/Delete/Reset/Exit]: E – выход из команды.

Если вы хотите использовать данную команду в качестве макроса, то этот её вариант выглядит так: ^C^C_-SCALELISTEDIT;_R;_Y;_E;

Обратите внимание на ещё один нюанс. Возможно, чертёж использует библиотеку СПДС, но к вашей системе AutoCAD’a она не подключена. Выход из этой ситуации двойной:

  • или необходимо ставить СПДС – он создаёт свои примитивы, которые сам Автокад может не понимать,
  • или необходимо разбивать чертёж на отдельные объекты – расчленять.

Способ из практики

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

  • зайдите в меню Edit;
  • выберите команду Copy View;
  • вставляйте скопированное в этот же чертёж – обычная Paste или Ctrl+V;
  • теперь попробуйте скопировать это вставленное в буфер обмена – оказывается, работает, и все объекты в буфере.

Прокси-объекты – главная причина

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

Для удаления прокси-объектов их удобнее сначала расчленить и внедрить в память чертежа командой: ExplodeAllProxy.

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

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

А затем уже удалить: RemoveAllProxy – удаляются все прокси-объекты, которые не удалось расчленить.

Возможно, для выполнения приведённых команд потребуется скачать внешнюю утилиту AutoCAD’a – Explode Proxy. Тут важно проследить за тем, чтобы версия утилиты точно подходила под используемую версию Автокада.

Обращаем внимание на то, что команда RemoveAllProxy запрашивает очистку списка масштабов – по умолчанию предлагается очистку произвести, с этим нужно обязательно согласиться.

После удаления прокси-объектов очень полезно запустить команду: _Audit – это для проверки ошибок в процессе удаления proxy-объектов.

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