Удалить прокси объекты

Все, что вам нужно знать о Proxy в JavaScript

Удалить прокси объекты

Очередная статья о Proxy в JavaScript, в которой содержаться несколько примеров ее применения.

Перевод статьи: Gourav Kajal — Everything You Should Know About JavaScript Proxy

Определение Proxy:

“Прокси в JavaScript — это объект, который обертывает другой объект с целью перехвата основных операции над объектом.” — Javascript Tutorial

A simple illustration of Proxy Object

Создание proxy

Для создания прокси объекта можно использовать следующий синтаксис.

let proxy = new Proxy(target, handler);

где

  • target это объект, который нужно обернуть
  • handler это объект, содержащий методы для управления поведением target. Методы внутри объекта handler  называются ловушками (traps).

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

Простой пример proxy

Прежде всего, давайте определим новый объект с именем user.

const user = { firstName: ‘John’, lastName: ‘Doe’, email: ‘john.doe@example.com’, }

Теперь определим объект обработчик (handler):

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

const handler = { get(item, property, itemProxy) { console.log(`Property ${property} has been read.`); return target[property]; } }

Функция get может принимать три аргумента:

  • item : это сам объект.
  • property : название свойства, которое вы пытаетесь прочитать.
  • itemProxy : это только что созданный объект housekeeper.

Теперь создайте proxy  объект, что очень просто сделать, например:

const proxyUser = new Proxy(user, handler);

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

Illustration of our example code above

Теперь давайте просто обратимся к свойствам firstName и lastName объекта пользователя через объект proxyUser:

console.log(proxyUser.firstName);console.log(proxyUser.lastName);

Результат будет выглядеть примерно так:

Property firstName has been read. John Property lastName has been read.

Doe

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

При необходимости мы также можем изменить результат. Например, мы можем сделать так:

let obj = {a: 1, b:2}let handler = { get: function(item, property, itemProxy){ console.log(`You are getting the value of '${property}' property`) return item[property] * 2 }}let objProxy = new Proxy(obj, handler)console.log(objProxy.a)console.log(objProxy.b)

Этот код выведет следующее:

You are getting the value of 'a' property 2You are getting the value of 'b' property

4

Proxy Traps (Ловушки)

Ловушка get() срабатывает, когда к свойству target объекта осуществляется доступ через прокси-объект.

В предыдущем примере сообщение распечатывается, когда объект proxyUser обращается к свойству объекта user.

set() trap

Помимо перехвата чтения свойств, мы также можем перехватывать изменения свойств. Как в этом примере:

let obj = {a: 1, b:2}let handler = { set: function(item, property, value, itemProxy){ console.log(`You are setting '${value}' to '${property}' property`) item[property] = value }}let objProxy = new Proxy(obj, handler)

Теперь, если мы попытаемся обновить значение свойства, мы увидим следующий результат:

Поскольку нам нужно передать дополнительное значение при установке значения свойства, функция set принимает на один аргумент больше, чем функция get.

Помимо перехвата чтения и изменения свойств, прокси может перехватывать до 13 операций/ловушек с объектами:

  • get(item, propKey, itemProxy): Перехватывает операцию чтения свойств объекта, таких как obj.a и obj[‘b’]
  • set(item, propKey, value, itemProxy): Перехватывает операцию установки свойств объекта, например obj.a = 1.
  • has(item, propKey): Перехватывает операцию propKey в objProxy и возвращает boolean.
  • deleteProperty(item, propKey): Перехватывает операцию удаления proxy[propKey] и возвращает boolean.
  • ownKeys(item):  Перехватывает такие операции, как  Object.getOwnPropertyNames(proxy), Object.getOwnPropertySymbols(proxy), Object.keys(proxy), for…in, и возвращает массив. Метод возвращает имена свойств всех собственных свойств целевого объекта, в то время как результат, возвращаемый Object.keys(), включает только собственные перечислимые свойства целевого объекта.
  • getOwnPropertyDescriptor(item, propKey): Перехватывает операцию Object.getOwnPropertyDescriptor(proxy, propKey), и возвращает дескриптор свойства.
  • defineProperty(item, propKey, propDesc): Перехватывает эти операции: Object.defineProperty(proxy, propKey, propDesc), Object.defineProperties(proxy, propDescs), возвращает boolean.
  • preventExtensions(item): Перехватывает операцию Object.preventExtensions(proxy), возвращает boolean.
  • getPrototypeOf(item): Перехватывает операцию Object.getPrototypeOf(proxy) возвращает объект.
  • isExtensible(item): Перехватывает операцию Object.isExtensible(proxy),возвращает boolean
  • setPrototypeOf(item, proto): Перехватывает операцию Object.setPrototypeOf(proxy, proto),возвращает boolean

Если объект target является функцией, необходимо перехватить две дополнительные операции.

  • apply(item, object, args): Перехватывает операции вызова функций, такие как proxy(…args),proxy.call(object, …args),proxy.apply(…) .
  • construct(item, args): Перехватывает операцию, вызванную экземпляром Proxy в качестве конструктора, например new proxy(…args).

Теперь давайте рассмотрим некоторые варианты использования и посмотрим, как можно использовать Proxy. Ниже приведены примеры использования bitfish в его статье.

Реализуем отрицательный индекс массива

Некоторые языки программирования, например Python, поддерживают отрицательные индексы массивов.

Отрицательный индекс принимает последнюю позицию массива в качестве отправной точки и ведет отсчет вперед. Например:

  • arr[-1] последний элемент массива.
  • arr[-4] это четвертый элемент в массиве с конца.

Отрицательные индексы это несомненно, мощная и полезная функция. Но, к сожалению, отрицательные индексы массива сейчас не поддерживаются JavaScript.

Если вы попытаетесь использовать их, то получите undefined, например:

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

Посмотрим, как именно этого добиться с помощью прокси.

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

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

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

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

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

Number(propKey) != NaN && Number.isInteger(Number(propKey))

Вот полный код:

function negativeArray(array) { return new Proxy(array, { get: function(target, propKey){ if (Number(propKey) != NaN && Number.isInteger(Number(propKey)) && Number(propKey) < 0) { propKey = String(target.length + Number(propKey)); } return target[propKey] } })}

Давайте посмотрим на пример в Инструменте разработчика Chrome.

Проверка данных

Как мы знаем, javascript — язык со слабой типизацией. Обычно, когда объект создается, он используется как есть и любой может изменить его.

Но в большинстве случаев значение свойства объекта требует соответствия определенным условиям. Например, объект, который записывает информацию о пользователе, должен иметь целое число больше 0 в поле возраста, и обычно меньше 150.

let person1 = { name: 'Jon', age: 23}

Однако по умолчанию JavaScript не обеспечивает механизма безопасности, и вы можете изменить это значение по своему желанию.

person1.age = 9999person1.age = 'hello world'

Чтобы сделать наш код более безопасным, мы можем обернуть ваш объект в прокси. Мы можем перехватить операцию set и проверить, соответствует ли новое значение правилам поля age.

Вот как это можно сделать с помощью кода:

let ageValidate = { set (item, property, value) { if (property === 'age') { if (!Number.isInteger(value) || value < 0 || value > 150) { throw new TypeError('age should be an integer between 0 and 150'); } } item[property] = value }}

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

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

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

JavaScript Street — 232200Python Street — 234422Golang Street — 231142

Это результат выражения их отношений в коде.

const location2postcode = { 'JavaScript Street': 232200, 'Python Street': 234422, 'Golang Street': 231142}const postcode2location = { '232200': 'JavaScript Street', '234422': 'Python Street', '231142': 'Golang Street'}

Тогда посмотрите на пример:

let person = { name: 'Jon'}person.postcode = 232200

Мы хотим иметь возможность автоматически устанавиливать соответствие person.location = ‘JavaScript Street’, когда мы устанавливаем person.postcode = 232200.

Вот решение:

let postcodeValidate = { set(item, property, value) { if(property === 'location') { item.postcode = location2postcode[value] } if(property === 'postcode'){ item.location = postcode2location[value] } }}

Итак, мы связали почтовый индекс и местоположение вместе.

Приватные свойства

Мы знаем, что приватные свойства раньше не поддерживались в JavaScript. Это лишало нас возможности разумно управлять правами доступа при написании кода.

Для решения этой проблемы в сообществе JavaScript принято, что поля, начинающиеся с символа _, считаются закрытыми свойствами.

var obj = { a: 1, _value: 22}

Указанное выше свойство _value считается приватным. Однако важно отметить, что это всего лишь соглашение, и на уровне языка такого правила нет.

Теперь, когда у нас есть прокси, мы можем смоделировать приватное свойство.

По сравнению с обычным свойством, приватные имеет следующие особенности:

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

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

function setPrivateField(obj, prefix = “_”){ return new Proxy(obj, { // Intercept the operation of `propKey in objProxy` has: (obj, prop) => {}, // Intercept the operations such as `Object.keys(proxy)` ownKeys: obj => {}, //Intercepts the reading operation of object properties get: (obj, prop, rec) => {}) });}

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

function setPrivateField(obj, prefix = “_”){ return new Proxy(obj, { has: (obj, prop) => { if(typeof prop === “string” && prop.startsWith(prefix)){ return false } return prop in obj }, ownKeys: obj => { return Reflect.ownKeys(obj).filter( prop => typeof prop !== “string” || !prop.startsWith(prefix) ) }, get: (obj, prop) => { if(typeof prop === “string” && prop.startsWith(prefix)){ return undefined } return obj[prop] } });}

Вот окончательный пример использования:

Заключение

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

Была ли вам полезна эта статья?

[2 / 5]

Источник: https://webdevblog.ru/proxy/

Прокси-сервер и его отключение на Windows

Удалить прокси объекты

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

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

Но это все становится возможным только после правильной настройки компьютера и наличия рабочих прокси.

Как понять, установлен ли прокси-сервер

Проверить, используете ли вы прокси-сервер, можно несколькими методами:

  1. Проверка параметров браузера.

Идеальный вариант для неопытных юзеров. В Mozilla необходимые параметры можно отыскать по следующему пути: «Настройки» — «Дополнительные» — «Сеть». Именно здесь находится описание прокси. В стандартном браузере Windows данные можно найти во вкладке «Свойства обозревателя», которая находится в пункте меню «Сервис».

  1. Использование «Панели управления».

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

Если поле прокси-сервера заполнено данными и возле «Использовать прокси …» стоит «галочка», то подключение уже настроено.

Если же эти поля пусты и «галочка» эта стоит только напротив «Автоматическое определение …», то выделенного сервера-посредника нет.

  1. Помощь системного администратора.

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

Иногда может появиться необходимость узнать не только адрес прокси-сервера, но и его порт. Это еще один параметр, использующийся при работе с прокси. Обычно выглядит следующим образом: 80, 8080 и т.д.

В определенных случаях значения могут отличаться. Узнать порт можно в том же окне, что и сервера. Действия те же. Его значение вносится в поле справа от ip-адреса.

Если вписать адрес, но не указать соответствующий порт, то Интернета не видать.

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

Как вариант, можно еще открыть ресурс по определению местонахождения компьютера по IP. Если выдаст город или страну, в которой вы и близко не находитесь, то, скорее всего, у вас стоит прокси.

Такой вариант абсолютно бесплатный и легкий в осуществлении.

Как убрать прокси в Windows 10

Отключить настройки прокси-сервера в «десятке» можно такими же способами, как и в «семерке», они будут описаны ниже. Но есть уникальный вариант, который не доступен на более ранних версиях ОС – через параметры. Для этого нажмите сочетание клавиш Win+X.

Выбрать интересующий нас раздел (в данном случае это «Сеть и Интернет»). Во вкладке «Прокси» внести коррективы. А точнее, так: в пункты «Использовать прокси…» и «Использовать сценарий …» нужно отключить, остальное не изменять. Тщательно все проверить и закрыть.

Результат можно будет посмотреть после перезагрузки ПК.

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

Как убрать прокси в Windows 7

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

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

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

Отключить прокси-сервер в браузере Chrome можно так:

  1. В верхнем правом углу нажать на три точки.
  2. В открывшимся меню выбрать «Настройки».
  3. Слева найти подраздел «Дополнительные» и нажать на него.
  4. Перейти на пункт «Система».
  5. Перейти в «Настройки прокси…».
  6. Нажать «Настройка сети».
  7. Снять отметку с «использовать прокси-сервер…».
  8. Поставить «галочку» возле «Автоматическое определение …».
  9. «ОК» — «Применить» — «ОК».
  10. Перезапустить обозреватель.

Аналогичным способом отключается прокси-сервер и в других браузерах (единственное, может немного отличаться путь к «Настройке сети»).

Отключение в панели управления производится таким образом:

  1. Открыть пуск.
  2. Вбить в поиск слово «панель управления».
  3. Запустить найденный файл.
  4. При отображении ярлыков в виде значков, следует запустить «Свойства браузера», в виде категорий – «Сеть и Интернет», а потом «Свойства браузера».
  5. Далее следует пункт 5-10 из настроек браузера.

Отключаются через реестр так:

  1. Перейти в «Пуск» (в Windows 7 – круглая кнопка в левом нижнем углу).
  2. В поисковую строку вбить «Выполнить».
  3. Нажать на найденный значок.
  4. В поле ввода написать regedit и нажать Enter.
  5. Откроется редактор реестра. В нем перейти в раздел: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  6. Отыскать в правой части окна пункт «Proxy Enable» и открыть его.
  7. Изменить значение с 1 на 0.
  8. Нажать ОК и закрыть реестр.
  9. Перезагрузить ПК.

Если все будет выполнено правильно, то посредник будет отключен, и вы сможете продолжить работу теперь уже с вашего истинного ip-адреса. Также стоит отметить, что некоторые дополнения к браузерам (такие как VPN для Chrome) тоже играют роль прокси-серверов, и их нужно либо отключить, либо удалить.

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

Способы отключения прокси на системах Android

Прокси активно используется не только на нетбуках, ноутбуках и стационарных ПК, но и на мобильных устройствах (например, смартфонах). Реально ли отключить прокси-сервер на Андроиде? Вполне. Существует несколько вариантов подключения прокси: при помощи сторонних приложений или напрямую.

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

Во втором случае придется немного поработать с настройками, а именно: подправить определенные данные в системных установках устройства в Wi-Fi разделе.

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

Также надо найти пункт «Прокси» и перевести его из значения «вручную» на «нет».

В статье рассмотрены случаи, как отключить прокси-сервер. Даны инструкции.

Источник: https://fineproxy.org/proksi-server-i-ego-otklyuchenie-na-windows/

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

Удалить прокси объекты

Изучите основы и оттачивайте навыки для повышения эффективности работы в 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.

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

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

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

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

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

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

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

Источник: https://kslift.ru/nastroyki-proksi-v-avtokad/

Погружение в ментал (Proxy – мифы и реальность)

Удалить прокси объекты

Всех приветствую!

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

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

В уроке я не буду выкладывать файлы сцен, так как в первой части все элементарно, а во второй части  я хочу,  чтобы исполняющие сами сделали шейдерный материал, тем самым поняв гибкость шейдерной структуры.  Урок исполняется в 3ds Max 2009.

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

Часть первая – Proxy

Создание proxy-объекта:

Create – Geometry – mental ray – mr. Proxy

На сцену кладется пустой контейнер. Заходим в свойства созданного mr Proxy, верхняя графа – Source Object – жмем на кнопку с надписью None и мышкой щелкаем по объекту, который хотим сделать прокси-объектом.

Добавлять можно только один объект! Группы объектов и сборки также невозможно добавить в одну проксю.

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

После добавления мы получаем в габаритном контейнере копию оригинала.  Раздел в настройках – «Display» позволяет настроить отображение объекта во вьюпортах; «Viewport Verts» – задает количество вершин объекта, которые будут видны.

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

Ниже «Viewport Vertы» идут два переключателя «Show Point Cloud»  – отображать точки (вершины) объекта и «Show Bounding Box» – отображать рамку вокруг габаритного контейнера (без рамки трудно выделить объект мышкой).

Кнопка «Write Object to File»  сохраняет прокси-объект в файле (сохранятся в виде файла *.

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

При добавлении в сцену Proxy-объектов, сначала нужно создать пустой mr Proxy, затем в настройках нажать кнопку на поле «Proxy File» и указать путь к файлу объекта.

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

В свитке настроек есть окошко с предпросмотром , туда выводиться изображение которое создается при сохранении прокси файла. Если мы назвали файл «test», то в результате (если не отключить эту опцию) сформируется 2 файла : test.

mib и test.mib.bmp, изображение из последнего будет выводиться в окно предпросмотра.

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

Под окном просмотра раздел порта анимации: «Animation Support». Если при сохранении прокси-файл сохранялся в несколько кадров, то их можно все (или часть) включить а анимацию нашей сцены. Включив параметр «Ping-Pong Replay» можно зациклить анимацию прокси-объекта, на продолжительность всей сцены.

С созданием и добавлением прокси вроде разобрались, теперь про материалы:

В прокси-объект материал не сохраняется! Поэтому при создании возьмите пипеткой материал с создаваемого объекта (если он заранее не подготовлен) и сохраните его в библиотеку, для последующего использования. После добавления proxy-объекта на него можно просто добавить сохраненный материал (структура мэша на уровне элементов сохраняется, поэтому использование multi-sub материала возможна).

В Хелпе на mr Proxy упоминается использование материала «Xref». На мой взгляд использование этого материала актуально только в работе группой, тем не менее давайте его разберем.

Материал X-Ref это материал-ссылка на материал другой сцены.

В настройках путь к файлу сцены (донора) и имя объекта (донора) на указанной сцене:

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

Давайте закончим с теоретической частью и посмотрим эффект от применения прокси на практике.

Для примера я на плоскость состоящую из 2 полигонов добавил 10 одинаковых деревьев (пока без листьев) с усложненной, TurboSmooth’ем сеткой. Итого получилась сцена с четырьмя с половиной миллионами полигонов: (тестирование на машине с E4400 – 2х2Ghz и 2Гб ОЗУ)

Рендерим (GI с минимальными настройками качества)

Рендер 5 минут 30 секунд.

Макс с открытой сценой занимает 322 мегабайт ОЗУ, во время рендеринга используется 1348 мегабайт ОЗУ  (в объем ОЗУ включена и ОС и все что у меня висело в трее, то есть это общий расход ОЗУ)

Теперь заменяем все деревья на прокси (для чистоты тестирования удобно полностью копировать параметры положения, наклона и масштаба объекта донора на те же параметры прокси)

Рендер 4 минуты 42 секунды.  (Я не стал приводить картинку рендера, она один к одному – отличий нет совсем)

Макс с открытой сценой занимает 282 мегабайта ОЗУ, во время рендера используется 1170 мегабайт ОЗУ.

Время рендера отличается не сильно (на некоторых сценах, это вообще не заметно), а вот экономия ОЗУ очень сильная!

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

Это особенно актуально на машинах с 32-битной системой. Простой пример:

Я увеличил количество деревьев до 20 штук. Рендер на проксях проходит за 16 минут, рендер с настоящими объектами за 52 минуты.

Почему такая разница во времени? Все из за того что с проксями используется 1698 мегабайт ОЗУ (в пределах физической памяти), а с настоящими объектами 2586 мегабайт  – ОЗУ физическая кончилась  и пошла виртуальная на HDD, где скорость передачи данных намного меньше.

 При количестве деревьев 32 шт рендер на проксях проходит, хоть и тратиться больше 1 часа, а вот с настоящими объектами рендер не возможен – не хватает памяти.

ИТОГ: Proxy экономит оперативную память компьютера, за счет удаления информации об объекте со сцены на диск, что позволяет нам делать более масштабные сцены, и немного экономит время рендера, за счет оптимизированного представления информации о файле.

Часть вторая – экономим время

А как же «все и сразу и чтобы ничего за это не было!» как сэкономить и ОЗУ и время рендера? Вот об этом мы и поговорим во второй части. Для этого перенесемся на совсем слабую машину (с точки зрения 3d графики слабую) это будет :

Можно сказать просто продвинутый офисный компьютер.

Я изобразил не бог весть какой сложности зданьице с минимальном количеством полигонов:

И хочу его обсчитать с большим количеством фотонов и хорошими настройками FG, а еще я хочу обсадить его деревьями!

В результате одиночное здание обсчитывается за 6 минут, а в виде:

За 46 минут 03 секунды. Где справедливость ?  мы добавили несколько второстепенных объектов а получили рендер в 7 раз дольше!!! Если заменить деревья на прокси-объекты, получим рендер за 44 минуты и 12 секунд, опять несправедливо – слишком маленькая экономия !

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

Спасет нас материал Ambient Occlusion!

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

Итак Ambient Occlusion

Теорию данного материала описывать не буду, кому интересно вот статься Игоря Сивакова:

http://www.ixbt.com/soft/mr33-2-ao.shtml

Также описание настроек и действие упомянуто в моем уроке:

Погружение в ментал (шейдерный материал mental ray)

В двух словах Ambient Occlusion имитируетГлобальное освещениена  материале путем учета окружающей геометрии, без учета источников света.

Остановлюсь только на 4 нужных нам сейчас параметрах шейдера Ambient/Reflective Occlusion (3dsmax)

Samples – это качество обсчета эффекта чем больше, тем лучше

Bright & Dark –  светлая (освещенная) и темная(полностью затененная) часть материала

Spread – качество размытия границ:

Max distance – параметр с которого берется расстояние радиуса полусферы (видимая часть) с которой идет трассировка каждой точки для выяснения – пересекает ли луч объекты сцены и соответственно формирует цвет точки. Если параметр равен нулю то трассировка идет с фона (бесконечный радиус).

Несмотря на сложность понятия термина , это очень нужный параметр.

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

Теперь создадим материал на основе этого шейдера для самого сложного объекта – листьев моих деревьев.

1.     Корневой материал «mental ray»

2.     Слот Surface (а позже скопируем результат и в Shadow) карта «Mix»

3.     То что отсекает маска – будет прозрачным (ставим шейдер Transmat), то что осталось – шейдер Ambient…..

4.     В слот Bright я поставил DGS материал с растром листа дерева, а в слоте Dark  можно оставить черный цвет, либо тот же материал, но с темной растровой картой.

Весь процесс я изобразил на схемке:

Для поверхностей,  где не нужна карта прозрачности(ствол дерева), можно сразу в раздел Surface  материала mental ray ставить шейдер Ambient/Reflective Occlusion (3dsmax)

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

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

Устанавливаем переключатель для FG в положение Invisible to FG, для Глобальной иллюминации ставим галку на Exclude from GI.

Есть еще один параметр – Receive Illumination from FG, это получение результата освещения объектом от расчета FG, на быстродействие он влияет не сильно, а вот при больших значениях экспозиции может сильно попортить яркость картинки, поэтому этот параметр я оставил.

Теперь тестовые рендеры (слева освещаем GI с обычными материалами, справа деревья исключены из GI и материал с АО)

Почему-то результат справа мне нравиться больше.

Теперь цифры:

  1. Без прокси без АО и с GI       – время 46:03 – память 898 мегабайт
  2. С прокси без АО и с GI           – время 44:12 – память 877 мегабайт
  3. С прокси и АО на деревьях  – время 21:53 – память 858 мегабайт

Результат виден невооруженным взглядом!

Думаю после просмотра результатов урока Вы задумаетесь перед тем как нажать кнопку RENDER – а стоит ли облегчить расчеты компьютеру и получить экономию во времени? А время как известно это деньги!

КАА!

Kaa936@rambler.ru

Источник: https://render.ru/ru/a.kras/post/11873

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

Удалить прокси объекты

› DLL

30.11.2019

Прокси-объекты — это элементы, которые созданы в сторонних приложениях и импортированы в Autocad, при этом создавшее их приложение недоступно.

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

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

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

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

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

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

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

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

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

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

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

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

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

После выполнения действий по расчленению и удалению неразделённых прокси рекомендуется выполнить команду Purge.

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

Например, в списке слоёв они будут отображаться как не содержащие объектов. Чтобы полностью удалить ненужные элементы чертежа выполните следующее:

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

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

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

Удалить прокси объекты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На главной ленте в разделе «Редактирования» активируйте инструмент «Расчленить». Если вы наведете курсор на один из значков, спустя секунду появится информация со свойствами и названием функции. Учитывайте это при попытках поиска нужных инструментов.

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

В другом материале на нашем сайте присутствует описание рассмотренной функции в более детальном виде. Если вы впервые сталкиваетесь с инструментом «Расчленить», советуем перейти по указанной ниже ссылке, чтобы узнать все о нем и в полной мере освоить взаимодействие с ним.

Источник: https://msch71.ru/kak-udalit-proksi-obekty-v-avtokade/

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: