Не получается удалить блоки в файле

Автор Тема: Не получается удалить блоки в файле  (Прочитано 10618 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Есть файл большого размера 13 Mбайт (форма AutoCAD 2010).
В этом файле нет примитивов и внешних ссылок, но в нем более 11000 блоков.
Файл стал таким, когда я из исходного файла через буфер обмена вставил 1 примитив. Сразу заметил очень долгое копирование этого примитива в буфер обмена. Получилось, так что вместе с примитивом буфер принял на себя все эти блоки.
Команда _PURGE показывает все эти блоки, когда устанавливаешь переключатель
«Посмотреть элементы, которые нельзя удалить».

Программно удалить эти блоки не могу, т.к. функция BlockTableRecord.IsErased не позволяет мне это сделать.
Прикрепляю архив фала

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Программно удалить эти блоки не могу, т.к. функция BlockTableRecord.IsErased не позволяет мне это сделать.
Эта функция не удаляет, а проверят не удалён ли уже объект.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Эта функция не удаляет, а проверят не удалён ли уже объект
Удалить методом Erase не могу удалить запись блока выводится ошибка
Autodesk.AutoCAD.Runtime.Exception: eWasErased

Главная проблема в том, что проектировщики, которые дали мне этот файл недовольны таким большим объемом файла
и медленной работой буфера обмена. Ко мне с этой проблемой неоднократно обращаются.
Надо что-то решить с этим  - объем жестких дисков пухнет от этого. Есть файлы и по 89Мбайт.
« Последнее редактирование: 09-04-2015, 12:35:19 от Алексей (IdeaSoft) »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Удалить методом Erase не могу удалить запись блока выводится ошибка
Autodesk.AutoCAD.Runtime.Exception: eWasErased
Эта "ошибка" означает, что объект уже удалён.

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Эта "ошибка" означает, что объект уже удалён.
Команда _PURGE показывает как объекты которые не возможно удалить?
Но все же как их удалить? Они же занимают много памяти у файла.

 
 

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Какой версией AutoCAD пользуешься

Я открываю файл в 2012 64bit. Сохранил в 2004 формате размер остался большой.

Отмечено как Решение Алексей (IdeaSoft) 09-04-2015, 21:13:44

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Саша спасибо! программа помогла очистить этот файл ( команда DGNPURGE)
я скачал ее здесь:
http://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autocad-C2-AE-dgn-hotfix.html
 
« Последнее редактирование: 09-04-2015, 21:27:50 от Алексей (IdeaSoft) »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Вообще-то, как обнаружил Евгений Елпанов, достаточно было в командной строке AutoCAD набрать:
Код - Auto/Visual Lisp [Выбрать]
  1. (DICTREMOVE (namedobjdict) "ACAD_DGNLINESTYLECOMP")
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Вообще-то, как обнаружил Евгений Елпанов, достаточно было в командной строке AutoCAD набрать:
Да, ты прав это команды достаточно для очистки.