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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как автоматизировать отсоединение неиспользуемых IMAGE?

Как автоматизировать отсоединение неиспользуемых IMAGE?

Ответ
Поиск в этой теме
Непрочитано 19.12.2005, 16:06
Как автоматизировать отсоединение неиспользуемых IMAGE?
kp+
 
идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,093

При длительной работе с Rasterex в чертеже накапливается куча неиспользуемых (unreferenced) растровых изображений. Перед сохранением чертежа их надо отсоединять (detach), иначе Rasterex предложит сохранить каждое из них.
Ничего сложного тут нет, но если забыть это сделать, приходится отвечать "нет" на запрос сохранения каждого из этих изображений. А это уже муторно. Хотелось бы как-то объединить операции сохранения чертежа и "PURGE" этого мусора.

В общем, подскажите, PLS, как автоматизировать отсоединение неиспользуемых растровых изображений?
Просмотров: 11486
 
Непрочитано 17.12.2015, 11:37
#21
shartal


 
Регистрация: 12.08.2009
Сообщений: 447


Тут дело в том, что очистка неиспользуемых ссылок является частью скрипта, применяемого ко всем чертежам в определенной папке, и не распространяется на вложенные папки. Поэтому другие варианты etransm. не подходят.
И собственно не понятна логика отбора ссылок для удаления. Не найденная ссылка имеет заполненный путь "сохранен в" и пустой "найден в.." Такие и должны удаляться.
shartal вне форума  
 
Непрочитано 17.12.2015, 18:47
#22
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от shartal Посмотреть сообщение
Не найденная ссылка имеет заполненный путь "сохранен в" и пустой "найден в.."
Чую что речь идет о коде. Лиспом нельзя узнать заполнен ли путь у внешней ссылки. Из какого поста код используешь?
Кстати нашел более свежие варианты (2007 год vs 2009 год) в этой теме Как автоматизировать отсоединение ненайденых IMAGE и XREF
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.12.2015, 12:24
#23
shartal


 
Регистрация: 12.08.2009
Сообщений: 447


Ошибся я, однако. Коды работают верно.
У меня в скрипте происходило пересохранение в другую папку и ссылки действительно терялись. Глубоко раскаиваюсь.
shartal вне форума  
 
Непрочитано 16.04.2023, 16:48 коллеги огромный рэспект (доложу в общую 2 файла в пользование Трудящимся!)
#24
guray

всяко разно проект мэйкер
 
Регистрация: 02.08.2012
тута
Сообщений: 4


коллеги огромный рЭспект Вам - Разработчикам / Мыслителям!
работает и на 2022 Cad испытано!
Кстати сшил все по файликам (2шт) собрал все в кучу и вуоля. Прошу любить и жаловать.
Заодно освежу тему дабы не увядала и её герои не забывались!

отдельно для картинок
DUIMG.lsp

отдельно для ссылок
DUXI.lsp

для проверки работоспособности:
IM_XR-DUXI.rar
Вложения
Тип файла: lsp DUIMG.lsp (5.4 Кб, 32 просмотров)
Тип файла: lsp DUXI.lsp (5.6 Кб, 29 просмотров)
Тип файла: rar IM_XR-DUXI.rar (9.2 Кб, 25 просмотров)
guray вне форума  
 
Непрочитано 08.06.2023, 15:46 Тащатся ссылки на изображения из чертежа в чертеж
#25
tutusz


 
Регистрация: 08.06.2023
Сообщений: 1


Прошу помощи в таком вопросе. При работе с растрами в автокаде, и последующем их удалении (удаляют из пространства модели, из палитры внешних ссылок их все забывают удалять) происходит следующее: ссылки на данные изображения появляются в других чертежах, которые открываются с этого же компьютера. Из-за чего все "зараженные" чертежи начинают зависать при открытии. Автокад видимо обновляет пути к этим изображениям и не может их найти, потому что чертеж другой. Все это происходит в файлах на сервере (локальная сеть компании). У меня один из самых слабых компов. Соответственно, если кто-то из коллег не почистит чертеж перед закрытием, я его вообще не открою.
Полагаю это должно как-то решаться через настройки рабочего пространства, так как проблема не в файле. Засоряются именно чертежи открытые одновременно с одного компьютера.
Самостоятельно по форуму ответ не нашла.
tutusz вне форума  
 
Непрочитано 16.06.2023, 09:12
#26
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Еще в копилку пару ссылок по удалению неиспользуемых ссылок

Purge Unused Raster Image Reference
Код:
[Выделить все]
 
;  PurgeImages.lsp by Trevor Bird
;;
;;  2021-02-20

;;------------------------------------------------------------------------------
(defun c:purgeimages
  (
    /

    ACAD_IMAGE_DICT__dxf
    ACAD_IMAGE_DICT__ename
    ACAD_REACTORS__dxf
    assoc_330

    count_imagedef
    count_imageref
    count_purged

    dps_3
    dps_330

    entity_dxf
    entity_ename
    entity_type

    imagedef_dxf
    imagedef_ename
    ImageFile
    imageref_dxf
    imageref_ename

    list_ImageNames
  )
  (setq count_purged  0)

  (cond
    (  (not (setq ACAD_IMAGE_DICT__dxf    (dictsearch (namedobjdict) "ACAD_IMAGE_DICT"))))
    (  (not (setq ACAD_IMAGE_DICT__ename  (cdr (assoc -1 ACAD_IMAGE_DICT__dxf)))))

      ;;  dps_3 = xrecord names = image names
    (  (not (setq dps_3  (vl-remove-if-not '(lambda ( _dp ) (= (car _dp) 3)) ACAD_IMAGE_DICT__dxf))))

      ;;  List of xrecord names = list of image Names
    (  (not (setq list_ImageNames  (mapcar 'cdr dps_3))))

    (list_ImageNames
      (foreach fe__ImageName list_ImageNames
        (setq imagedef_dxf    (dictsearch ACAD_IMAGE_DICT__ename fe__ImageName)
              imagedef_ename  (cdr (assoc -1 imagedef_dxf))
              ImageFile       (cdr (assoc 1 imagedef_dxf))
        );setq

        (cond
          (  (not (setq ACAD_REACTORS__dxf  (member  '(102 . "{ACAD_REACTORS") imagedef_dxf))))
          (  (not
                (setq ACAD_REACTORS__dxf  (reverse (member '(102 . "}") (reverse ACAD_REACTORS__dxf)))
                      dps_330             (vl-remove-if-not '(lambda ( _dp ) (= (car _dp) 330)) ACAD_REACTORS__dxf)
                );setq
            );not
          );

          (dps_330
            (setq count_imagedef  0
                  count_imageref  0
            );setq

            (foreach fe__dp dps_330
              (setq entity_ename  (cdr fe__dp)
                    entity_dxf    (entget entity_ename)
                    entity_type   (cdr (assoc 0 entity_dxf))
              );setq

              (cond
                (  (not (= entity_type "IMAGEDEF_REACTOR")))

                (  (not (setq count_imagedef  (1+ count_imagedef))))

                  ;;  330 - Object ID for associated image object (image reference)
                (  (not (setq assoc_330  (assoc 330 entity_dxf))))

                (assoc_330
                  (setq imageref_ename  (cdr assoc_330)
                        imageref_dxf    (entget imageref_ename)
                  );setq

                  (cond
                    (  (not imageref_dxf)
                      ;;  Image reference was deleted.
                    );(not imageref_dxf)

                    (imageref_dxf
                      (setq count_imageref  (1+ count_imageref))
                    );imageref_dxf
                  );cond
                );assoc_330
              );cond
            );fe__dp


            (if (zerop count_imageref)
              (progn
                ;;  Delete image definition xrecord.
                (setq count_purged  (1+ count_purged))
                (entdel imagedef_ename)
                (dictremove ACAD_IMAGE_DICT__ename fe__ImageName)

                (princ "\nDeleting image ")
                (prin1 fe__ImageName)
                (princ ".")
              );progn
            );if
          );dps_330
        );cond`
      );fe__ImageName
    );list_ImageNames
  );cond


  (cond
    (  (not (zerop count_purged))
      (princ "\n")
      (prin1 count_purged)

      (if (> count_purged 1)
        (princ " images ")
        (princ " image ")
      );if

      (princ "deleted.")
    );(not (zerop count_purged))

    (  (zerop count_purged)
      (princ "\nNo unreferenced images found.")
    );(zerop count_purged)
  );cond


  (princ)
);c:purgeimages


;;----------------------------------------------------------------------------------------
(princ "\nPurgeImages loaded. Start command with PURGEIMAGES.")
(princ)
RadicalPurge от Gilles Chanteau - https://apps.autodesk.com/ACD/en/Det...en&os=Win32_64
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как автоматизировать отсоединение неиспользуемых IMAGE?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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