Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 09-04-2015, 12:13:42

Название: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 12:13:42
Есть файл большого размера 13 Mбайт (форма AutoCAD 2010).
В этом файле нет примитивов и внешних ссылок, но в нем более 11000 блоков.
Файл стал таким, когда я из исходного файла через буфер обмена вставил 1 примитив. Сразу заметил очень долгое копирование этого примитива в буфер обмена. Получилось, так что вместе с примитивом буфер принял на себя все эти блоки.
Команда _PURGE показывает все эти блоки, когда устанавливаешь переключатель
«Посмотреть элементы, которые нельзя удалить».

Программно удалить эти блоки не могу, т.к. функция BlockTableRecord.IsErased не позволяет мне это сделать.
Прикрепляю архив фала
Название: Re: Не получается удалить блоки в файле
Отправлено: Александр Ривилис от 09-04-2015, 12:15:30
Программно удалить эти блоки не могу, т.к. функция BlockTableRecord.IsErased не позволяет мне это сделать.
Эта функция не удаляет, а проверят не удалён ли уже объект.
Название: Re: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 12:21:42
Эта функция не удаляет, а проверят не удалён ли уже объект
Удалить методом Erase не могу удалить запись блока выводится ошибка
Autodesk.AutoCAD.Runtime.Exception: eWasErased

Главная проблема в том, что проектировщики, которые дали мне этот файл недовольны таким большим объемом файла
и медленной работой буфера обмена. Ко мне с этой проблемой неоднократно обращаются.
Надо что-то решить с этим  - объем жестких дисков пухнет от этого. Есть файлы и по 89Мбайт.
Название: Re: Не получается удалить блоки в файле
Отправлено: Александр Ривилис от 09-04-2015, 12:26:13
Удалить методом Erase не могу удалить запись блока выводится ошибка
Autodesk.AutoCAD.Runtime.Exception: eWasErased
Эта "ошибка" означает, что объект уже удалён.

P.S.: Какой версией AutoCAD пользуешься?
Название: Re: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 12:30:13
Эта "ошибка" означает, что объект уже удалён.
Команда _PURGE показывает как объекты которые не возможно удалить?
Но все же как их удалить? Они же занимают много памяти у файла.

 
 
Название: Re: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 12:32:45
Какой версией AutoCAD пользуешься

Я открываю файл в 2012 64bit. Сохранил в 2004 формате размер остался большой.
Название: Re: Не получается удалить блоки в файле
Отправлено: Александр Ривилис от 09-04-2015, 12:37:40
Почитай: Очистка файлов от ненужных данных LineStyle DGN в AutoCAD. (http://adn-cis.org/forum/index.php?topic=709.0)
Название: Re: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 21:13:16
Саша спасибо! программа помогла очистить этот файл ( команда DGNPURGE)
я скачал ее здесь:
http://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autocad-C2-AE-dgn-hotfix.html
 
Название: Re: Не получается удалить блоки в файле
Отправлено: Александр Ривилис от 09-04-2015, 21:47:33
Вообще-то, как обнаружил Евгений Елпанов, достаточно было в командной строке AutoCAD набрать:
Код - Auto/Visual Lisp [Выбрать]
  1. (DICTREMOVE (namedobjdict) "ACAD_DGNLINESTYLECOMP")
Название: Re: Не получается удалить блоки в файле
Отправлено: Алексей (IdeaSoft) от 09-04-2015, 22:21:09
Вообще-то, как обнаружил Евгений Елпанов, достаточно было в командной строке AutoCAD набрать:
Да, ты прав это команды достаточно для очистки.