Очистка файлов от ненужных данных LineStyle DGN в AutoCAD.

Автор Тема: Очистка файлов от ненужных данных LineStyle DGN в AutoCAD.  (Прочитано 133035 раз)

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

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Ещё вопрос, правда тоже не совсем по теме, но по поиску на dwg.ru ответа на него не нашёл.
Есть файлы, имеющие большое количество масштабов аннотаций (МА) и неиспользуемых зарегистрированных приложений (НЗП). Если подключить такой файл к другому девственно чистому файлу, вся эта когорта приложений и масштабов переносится на чистый файл. Бороться с последствиями этого понятно как - очистка файла, но!
Очистка реализована только при открытии файла путём загрузки acaddoc.lsp на каждом открываемом чертеже (других идей по очистке файлов на 600 компах не придумал), поэтому ничто не мешает очищенному файлу замусориться при подключении ссылки на другой файл.
Возник вопрос. Можно ли изменить поведение Acad'а, чтобы при подключении ссылки на файл с большим количеством МА и НЗП, эти МА и НЗП не переносились в другой файл?
Ещё у товарища с работы была идея с реакторами (например при подключении ссылки или сохранении файла проверять количество МА и очищать их). Реально ли такое осуществить? (С реакторами вообще не знаком, попробуем с товарищем разобраться).

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Стоп-стоп-стоп. Зарегистрированные приложения при подключении внешней ссылки вроде бы не импортируются. Масштабы аннотаций ссылок можно скрыть.
Или ты про вставку стороннего файла как блока / внедрение ссылки?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Зарегистрированные приложения при подключении внешней ссылки вроде бы не импортируются.
Как раз импортируются и как раз просто при подключении ссылки. Могу приложить файл, в котором около 50 тысяч НЗП, подключи его, проверь :) После удаления ссылки на файл с НЗП, эти НЗП всё равно остаются в новом файле. Только что ещё раз сам проверил. Audit такого файла выполняется очень долго.
Масштабы аннотаций ссылок можно скрыть.
А какой толк от их скрытия? Нужно именно, чтобы они не переносились, иначе после переноса такой файл опять будет неимоверно грузиться в качестве ссылки.
Приложу файлы для экспериментов. Если у тебя вдруг при подключении ссылки на файл с НЗП или МА они не перенеслись в новый файл, значит это должно быть в настройках акада и надо будет выяснить где именно это настраивается.
И попутно возник ещё один вопрос: где хранится информация о зарегистрированных приложениях (как узнать количество НЗП)? В словарях я вроде не нашёл.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Н-да, проверил в 2016 - действительно импортируются приложения. Сорри, косяк :)
Не, сделать можно если не все, то очень многое. Правда, возникают вопросы организационного плана: ссылки нередко используются "чтобы не вносились изменения в исходные данные". Потому что любая обработка обязательно потребует сохранения исходнного файла. Мало того, если работать лиспом, то это моментально означает работу через ObjectDBX, сохранение только в текущем формате и еще массу тонкостей. Фактически я вижу два выхода: либо писать самостоятельную очистку, либо использовать приложение для пакетной очистки из AUtodesk AppStore (благо там их полно).
Ну так что, как поступаем? :) Реактор на вставку ссылки? Пакетная очистка? Или еще что-то? ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Н-да, проверил в 2016 - действительно импортируются приложения. Сорри, косяк
То есть это никак не отключаемо? И импорт МА тоже? Печаль :( Хорошую подставу в этом плане AutoDesk устроил. Получается, что НЗП и МА валятся в файл как снежный ком из других файлов. Или есть идеи как отключить импорт НЗП и МА?
Ну так что, как поступаем?  Реактор на вставку ссылки? Пакетная очистка? Или еще что-то?
Пакетную очистку уже проходили. Рабочих файлов в сети неимоверное количество, пока в одном месте чистишь, в другом уже намусорили, а потом и намусорили в том месте, где уже почистили :) К тому же многие из них содержат кучу ссылок и долго грузятся. В общем не вариант.
Значит из оставшихся идей только реактор, но я бы сделал его именно на сохранение файла (BeginSave), если такое возможно. То есть перед сохранением либо автоматическая очистка от МА командой (command "_.-purge" "_r" "*" "_n"), либо диалоговое окно с предложением очистить МА (как это сейчас мной реализовано).
Правда и тут засада: в реакторах нельзя применять command, насколько я понял.
И опять же, надо выяснить как узнать количество НЗП, чтобы тоже выводить окошко с предложением очистки. Правда очистка от НЗП выполняется достаточно долго в отличие от очистки МА :(
« Последнее редактирование: 05-05-2016, 12:59:15 от Подшиваленко Дмитрий »

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
В реакторах - нельзя. Так тебе надо чистить или просто поставить юзера в известность? Если второе - то vla-get-count должно хватить для формирования сообщения.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Так тебе надо чистить или просто поставить юзера в известность?
В идеале бы конечно диалог с предложением почистить файл. Но если нельзя, то хотя бы окошко с предупреждением, хотя это менее эффективно.
Сейчас это выглядит так:
Код - Auto/Visual Lisp [Выбрать]
  1. (setq sc (check-dict nil "ACAD_SCALELIST"))
  2. (if (> sc 100) (scale_c)) ;вывод диалогового окна в случае если количество масштабов больше 100
sc используется для вывода в диалоге количества масштабов.
Если в диалоге "да", то
Код - Auto/Visual Lisp [Выбрать]
  1. (if (= done 1) (command "_-scalelistedit" "_d" "*" "_e") ) ;Если да, то чистим масштабы

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Интересные зарегистрирванные приложения:
Цитировать
Deleting registered application "AUDIT_I_151028172007-0".
Deleting registered application "$RECOVER_150804115203-519".
У меня такое впечатление, что кто-то бездумно удалял эти приложения из файла, а AutoCAD при AUDIT и RECOVER их восстанавливал и множил.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
У меня такое впечатление, что кто-то бездумно удалял эти приложения из файла, а AutoCAD при AUDIT и RECOVER их восстанавливал и множил.
Ну там полно и других, даже, например, таких: Удаление зарегистрированное приложение "架空面积".
Наверное не суть важно как они появились, а важно то, как от них избавиться. Тем более, что они импортируются при подключении ссылки (то есть накапливаются).
Было бы очень неплохо избавиться от механизма импорта этого барахла при подключении ссылки.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Ну там полно и других, даже, например, таких: Удаление зарегистрированное приложение "架空面积".
Таких - десятки, а тех десятки тысяч.
Наверное не суть важно как они появились
Если они будут продолжать появляться, то ты от них не избавишься. Нужно искать причину.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Сугубо ИМХО: "повесить" предварительную очистку при открытии файла плюс пройтись по серверу с dwg-файлами будет значительно проще, чем выдумывать что-то еще. Ну и прописать требования к файлам, предоставляемым сторонними организациями.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Если они будут продолжать появляться, то ты от них не избавишься. Нужно искать причину.
Наверное это не совсем реально. А потом основная причина большого количества НЗП, что они импортируются при подключении ссылки. Если избавиться от этого, то тогда уже будет проще с очисткой. В новом файле человек вряд ли осознанно или неосознанно сумеет наплодить 50 тысяч НЗП.
Сугубо ИМХО: "повесить" предварительную очистку при открытии файла плюс пройтись по серверу с dwg-файлами будет значительно проще, чем выдумывать что-то еще. Ну и прописать требования к файлам, предоставляемым сторонними организациями.
Вешали предварительную чистку при открытии файла. Проблема в том, что очистка от такого количества НЗП выполняется очень долго. А потом где гарантии, что после чистки человек не подключит файл с НЗП и эти НЗП опять не появятся в чищенном файле? Поэтому и появилась идея с реактором на сохранение.
Про пакетную очистку я уже писал.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Для массовой очистки зарегистрированных приложений, в том числе и в XREF:
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Excess-unreferenced-regapp-IDs-causing-performance-issues.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Подшиваленко Дмитрий

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Для массовой очистки зарегистрированных приложений, в том числе и в XREF:
За ссылку спасибо, поизучаю на досуге.
С пакетной очисткой была ещё проблема: некоторые люди работают в Civil 3D и после пакетной очистки файлов при помощи AutoCAD, эти файлы перестали открываться в Civil 3D (fatal error), так что с пакетной чисткой надо поаккуратнее, мало ли какие проблемы вылезут. А потом, как я уже писал, файлов настолько много, что пока тут чистишь, там уже намусорили.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
С пакетной очисткой была ещё проблема: некоторые люди работают в Civil 3D и после пакетной очистки файлов при помощи AutoCAD, эти файлы перестали открываться в Civil 3D (fatal error), так что с пакетной чисткой надо поаккуратнее, мало ли какие проблемы вылезут.
Это приложение чистит только (!!!) неиспользованные зарегистрированные приложения. В этом легко убедится на примере твоего файла НПЗ.dwg. После очистки в нём остаётся 22 приложения, которые реально используются:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение