Помогите пожалуйста очистить файл
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите пожалуйста очистить файл

Помогите пожалуйста очистить файл

Ответ
Поиск в этой теме
Непрочитано 11.11.2006, 14:17 #1
Помогите пожалуйста очистить файл
Kirillm
 
Киев
Регистрация: 11.11.2006
Сообщений: 2

При переносе любого блока, линии и т.д из чертежа в чертёж добавляется ~ по 80 кбт просто так, даже если переносил одну линию.
Чистил файл и Super Purгом нет результата.
Как я понимаю там засели 700 объектов - пишет вовтановитель файлов
Opening an AutoCAD 2000 format file.
0 Blocks audited
Pass 1 0 objects audited
Pass 2 0 objects audited
Pass 3 700 objects audited
Total errors found 0 fixed 0
Файл вложил
Как избавлятся от такого.
Зарание благодарю Вас.
[ATTACH]1163243807.dwg[/ATTACH]
Просмотров: 2718
 
Непрочитано 11.11.2006, 16:05
#2
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Здесь пустой файл, но в нем 733 фильтра слоев. Это вроде вируса в автокаде 2002, а может и раньше. Надо удалять фильтры. В 2004 уже есть кнопка Удалить все. Но лучше пользоваться спец. прогой, ищи поиском Фильтры слоев. В поздних версиях хорошо чистится без проги, но с ней видно, сколько было фильтров
Vova вне форума  
 
Непрочитано 11.11.2006, 16:16
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Нашел закладку на
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=1094BX
Цитата:
VK (2004-12-03 16:16:17)

Ну вот... Приехали.... В версии 2005 фильтры живут в другом словаре. И моя предыдущая програмка их уже не удаляет. Потому написал другую. Дополнительно предусмотрел возможность оставить нужные фильтры. Для этого нужно перечислить их имена в списке при вызове функции. Если нужно удалить все фильтры — то список должен быть пустым.
Код:
[Выделить все]
;; Удаление лишних фильтров слоев из чертежа
;; имена фильтров, которые требуется оставить передаются списком
;; Функция переписана с учетом особенностей версии 2005, где появился новый словарь
(defun all_filters_del (lstnames / vla:lrs vla:xdic vla:dic vla:xrec name DataType DataValue num)
  (setq vla:lrs (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  (if (= (vla-get-hasextensiondictionary vla:lrs) :vlax-true)
    ;; при наличии словаря требуется детальная проверка
    (progn
      (setq lstnames (mapcar 'strcase lstnames))
      (setq vla:xdic (vla-getextensiondictionary vla:lrs))
      (setq num 0)
      ;; поиск и удаление фильтров версий пре-2005
      (if (progn (vlax-for item vla:xdic
                   (if (= (vla-get-name item) "ACAD_LAYERFILTERS")
                     (setq vla:dic item)
                   ) ;_  if
                 ) ;_  vlax-for
                 vla:dic
          ) ;_  progn
        (progn
          (vlax-for vla:xrec vla:dic
            (if (not (member (strcase (setq name (vla-get-name vla:xrec))) lstnames))
              (progn (vla-remove vla:dic name)
                     (vlax-release-object vla:xrec)
                     (setq num (1+ num))
              ) ;_  progn
            ) ;_  if
          ) ;_  vlax-for
          (vlax-release-object vla:dic)
          (if (zerop num)
            (princ "\nЛишних фильтров 2002 в рисунке не обнаружено.")
            (princ "\nЛишние фильтры 2002 из рисунка удалены.")
          ) ;_  if
        ) ;_ progn
      ) ;_ if
      (setq vla:dic nil)
      (setq num 0)
      ;; поиск и удаление фильтров версии 2005
      (if (progn (vlax-for item vla:xdic
                   (if (= (vla-get-name item) "ACLYDICTIONARY")
                     (setq vla:dic item)
                   ) ;_  if
                 ) ;_  vlax-for
                 vla:dic
          ) ;_  progn
        (progn
          (vlax-for vla:xrec vla:dic
            (if (progn
                  (setq name (vla-get-name vla:xrec))
                  (vla-getxrecorddata vla:xrec 'DataType 'DataValue)
                  (not (member (strcase (vlax-variant-value
                                          (vlax-safearray-get-element
                                            DataValue
                                            (vl-position 300 (vlax-safearray->list DataType))
                                          ) ;_  vlax-safearray-get-element
                                        ) ;_  vlax-variant-value
                               ) ;_  strcase
                               lstnames
                       ) ;_  member
                  ) ;_  not
                ) ;_  progn
              (progn
                (vla-remove vla:dic name)
                (vlax-release-object vla:xrec)
                (setq num (1+ num))
              ) ;_  progn
            ) ;_  if
          ) ;_  vlax-for
          (vlax-release-object vla:dic)
          (if (zerop num)
            (princ "\nЛишних фильтров 2005 в рисунке не обнаружено.")
            (princ "\nЛишние фильтры 2005 из рисунка удалены.")
          ) ;_  if
        ) ;_ progn
      ) ;_ if
      (vlax-release-object vla:xdic)
    ) ;_  progn
    (princ "\nФильтров в рисунке не обнаружено.")
  ) ;_  if
  (vlax-release-object vla:lrs)
  (princ)
) ;_ defun
(vl-load-com)

(all_filters_del '("MyFilter1" "MyFilter2" "MyFilter3")) ;_ автозапуск программы для удаления только лишних

;;;(all_filters_del '()) ;_ автозапуск программы для удаления ВСЕХ фильтров
Kirillm, удачи!
С этой прогой (спасибо VK) тебе повезёт!
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 11.11.2006, 17:18
#4
Kirillm


 
Регистрация: 11.11.2006
Киев
Сообщений: 2


Vova
Я тоже всё время думал что энто типа вирусяк
А оказываются это из 2005х перелезают фильтры при переносах

Alan
Большое спасибо всё класно получилось даже из под 2000 када
Kirillm вне форума  
 
Непрочитано 11.11.2006, 17:55
#5
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Только из 2002, а может и из ранних
Vova вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите пожалуйста очистить файл

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск