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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > AutoCad 2009 не видит растров в одной папке с чертежом.

AutoCad 2009 не видит растров в одной папке с чертежом.

Ответ
Поиск в этой теме
Непрочитано 30.07.2012, 11:00 #1
AutoCad 2009 не видит растров в одной папке с чертежом.
LiSa
 
Регистрация: 11.03.2008
Сообщений: 234

Имеется файл dwg с несколькими растрами. Если скинуть в одну папку файл чертежа и растры, то подцепляются только некоторые из растров. Пробовала через Reference Manager скинуть все пути и потом заново перепрописать. Ситуация не изменилась. Прилагаю файл с растрами. Спасибо.

Вложения
Тип файла: rar 1728.rar (5.65 Мб, 67 просмотров)

Просмотров: 5846
 
Непрочитано 30.07.2012, 11:08
#2
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Нужно открыть диспетчер внешних ссылок (команда СС) и с помощью вкладки "найден в ..." повторно подгрузить растры.
__________________
Как-то так.
sertor вне форума  
 
Автор темы   Непрочитано 30.07.2012, 11:12
#3
LiSa


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


Согласна, можно. Но это очень долго. Это только часть файла. А если растров 100 штук...
LiSa вне форума  
 
Непрочитано 30.07.2012, 11:19
#4
Alan

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


Цитата:
Сообщение от LiSa Посмотреть сообщение
Но это очень долго. Это только часть файла. А если растров 100 штук...
Осмелюсь предположить, что изображения вставлялись с абсолютными путями...
Программно переделать их на относительные
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 30.07.2012, 11:27
#5
LiSa


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


Цитата:
Сообщение от Alan Посмотреть сообщение
Осмелюсь предположить, что изображения вставлялись с абсолютными путями...
Программно переделать их на относительные
Тоже самое находит только некоторые растры.
LiSa вне форума  
 
Непрочитано 30.07.2012, 11:39
#6
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Цитата:
Сообщение от LiSa Посмотреть сообщение
находит только некоторые растры
Обратите внимание, в окне "диспетчера ссылок", статус растра, который на экране не виден - "на найден". Следовательно путь к нему не прописан.
__________________
Как-то так.
sertor вне форума  
 
Автор темы   Непрочитано 30.07.2012, 11:50
#7
LiSa


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


Цитата:
Сообщение от sertor Посмотреть сообщение
статус растра, который на экране не виден - "на найден". Следовательно путь к нему не прописан.
Да, вопросики. Т.е. получается, что путь не прописывается? А почему вообще мы должны его перепрописывать?
Help:
В случае, если вместе со внешней ссылкой не сохранена информация о пути, программа предпринимает поиск. Он происходит в следующем порядке.

Текущая папка главного чертежа
Пути поиска файлов проекта, заданные на вкладке "Файлы" в диалоговом окне "Параметры" или с помощью системной переменной PROJECTNAME
Пути поиска вспомогательных файлов, заданные на вкладке "Файлы" диалогового окна "Параметры"
Рабочая папка, заданная в ярлыке приложения Windows

Дело в том, что в 2002 версии AutoCad все растры подцепляются без перепрописывания пути к файлу. Просто из одной папки. Все прекрасно работает.
Может виновата какая-либо системная переменная?
LiSa вне форума  
 
Непрочитано 30.07.2012, 13:27
#8
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


LiSa, а Вы не пробовали воспользоваться командой _eTransmit? (По русски - формкомплект). Автоматически формируется архив, который переносится в другую папку (на другой компьютер) со всеми изображениями. Там распаковываем - и вуаля! Всё работает. Я сам так делаю. Или у Вас растры в строго определённом месте должны лежать? Тогда ой - перепрописывать вручную...
cancercat вне форума  
 
Автор темы   Непрочитано 30.07.2012, 13:51
#9
LiSa


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


Цитата:
Сообщение от cancercat Посмотреть сообщение
Вы не пробовали воспользоваться командой _eTransmit? (По русски - формкомплект)
Да, eTransmit формирует комплект только из найденных внешних ссылок.:-(
Не поверю, что никто не сталкивался.

Последний раз редактировалось LiSa, 31.07.2012 в 10:55.
LiSa вне форума  
 
Непрочитано 31.07.2012, 13:56
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Если попробовать программно:
Код:
[Выделить все]
 (vl-load-com)

(defun c:find-img (/                           adoc                        _kpblc-conv-string-to-list
                   _kpblc-ent-modify-autoregen _kpblc-conv-ent-to-ename    vl-browsefiles-in-directory-nested
                   dict                        paths                       exts
                   )

  (defun _kpblc-conv-ent-to-ename (ent_value /)
                                  ;|
*    Функция преобразования полученного значения в ename
*    Параметры вызова:
*	ent_value	значение, которое надо преобразовать в примитив. Может
*			быть именем примитива, vla-указателем или просто
*			списком.
*			Если не принадлежит ни одному из указанных типов,
*			возвращается nil
*    Примеры вызова:
(_kpblc-conv-ent-to-ename (entlast))
(_kpblc-conv-ent-to-ename (vlax-ename->vla-object (entlast)))
|;
    ;; "_kpblc-conv-ent-to-ename")
    (cond
      ((= (type ent_value) 'vla-object)
       (vlax-vla-object->ename ent_value)
       )
      ((= (type ent_value) 'ename) ent_value)
          ;((= (type ent_value) 'str) (handent ent_value))
      ((= (type ent_value) 'list) (cdr (assoc -1 ent_value)))
      (t nil)
      ) ;_ end of cond
    ) ;_ end of defun

  (defun _kpblc-ent-modify-autoregen (ent bit value ext_regen / ent_list old_dxf new_dxf layer_dxf70)
                                     ;|
*    Функция модификации указанного бита примитива
*    Параметры вызова:
*	entity	- примитив, полученный через (entsel), (entlast) etc
*	bit	- dxf-код, значение которого надо установить
*	value	- новое значение
*	regen	- выполнять или нет регенерацию примитива сразу. t/ nil
*    Примеры вызова:
(_kpblc-ent-modify-autoregen (entlast) 8 "0" t)	; перенести последний примитив на слой 0
(_kpblc-ent-modify-autoregen (entsel) 62 10 nil)	; установить выбранному примитиву цвет 10
*    Возвращаемое значение:
*	примитив с модифицированным dxf-списком. Примитив перерисовывается в
* зависимости от значения ключа ext_regen
|;
    (setq ent (_kpblc-conv-ent-to-ename ent))
    (if (not
          (and
            (or
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "STYLE")
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "DIMSTYLE")
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "LAYER")
              ) ;_ end of or 
            (= bit 100)
            ) ;_ end of and 
          ) ;_ end of not 
      (progn
        (setq ent_list (entget ent)
              new_dxf  (cons bit
                             (if (and (= bit 62) (= (type value) 'str))
                               (if (= (strcase value) "BYLAYER")
                                 256
                                 0
                                 ) ;_ end of if 
                               value
                               ) ;_ end of if 
                             ) ;_ end of cons 
              ) ;_ end of setq 
        (if (not (equal new_dxf (setq old_dxf (assoc bit ent_list))))
          (progn
            (entmod (if old_dxf
          ;(_KPBLC-LIST-ADD-OR-SUBST ent_list bit (cdr new_dxf))
                      (subst new_dxf old_dxf ent_list)
                      (append ent_list (list new_dxf))
                      ) ;_ end of if 
                    ) ;_ end of entmod
            (if ent_regen
              (entupd ent)
              (redraw ent)
              ) ;_ end of if
            ) ;_ end of progn 
          ) ;_ end of if 
        ) ;_ end of progn 
      ) ;_ end of if 
    ent
    ) ;_ end of defun

  (defun _kpblc-conv-string-to-list (string separator / i)
                                    ;|
*    Функция разбора строки. Возвращает список либо точечную пару.
*    Параметры вызова:
*	string		разбираемая строка
*	separator	символ, используемый в качестве разделителя частей
*    Примеры вызова:
(_kpblc-conv-string-to-list "1;2;3;4;5;6" ";")	;'(1 2 3 4 5 6)
(_kpblc-conv-string-to-list "1;2" ";")		;'(1 2)
*    За основу взяты уроки Евгения Елпанова по рекурсиям
|;
    (cond
      ((= string "") nil)
      ((vl-string-search separator string)
       ((lambda (/ pos res)
          (while (setq pos (vl-string-search separator string))
            (setq res    (cons (substr string 1 pos) res)
                  string (substr string (+ (strlen separator) 1 pos))
                  ) ;_ end of setq
            ) ;_ end of while
          (reverse (cons string res))
          ) ;_ end of lambda
        )
       )
      (t (list string))
      ) ;_ end of cond
    ) ;_ end of defun


  (defun vl-browsefiles-in-directory-nested (path mask)
;;;    Функция возвращает список файлов указанной маски, находящихся в
;;; заданном каталоге
;;;    Параметры вызова:
;;;	path	путь к корневому каталогу. nil недопустим
;;;  	mask	маска имени файла. nil или список недопустим
;;;    Примеры вызова:
    ;|
(vl-browsefiles-in-directory-nested "c:\\documents" "*.dwg")
|;
    (apply (function append)
           (cons (if (vl-directory-files path mask)
                   (mapcar (function (lambda (x) (strcat (vl-string-right-trim "\\" path) "\\" x)) ;_ end of lambda
                                     ) ;_ end of function
                           (vl-directory-files path mask)
                           ) ;_ end of mapcar
                   ) ;_ if
                 (mapcar (function
                           (lambda (x)
                             (vl-browsefiles-in-directory-nested (strcat (vl-string-right-trim "\\" path) "\\" x) mask) ;_ end of vl-browsefiles-in-directory-nested
                             ) ;_ end of lambda
                           ) ;_ end of function
                         (vl-remove ".." (vl-remove "." (vl-directory-files path nil -1))) ;_ end of vl-remove
                         ) ;_ mapcar
                 ) ;_ cons
           ) ;_ end of apply
    ) ;_ end of defun

  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (setq paths (mapcar
                (function
                  (lambda (x)
                    (vl-string-right-trim "\\" x)
                    ) ;_ end of lambda
                  ) ;_ end of function
                (cons (getvar "dwgprefix") (_kpblc-conv-string-to-list (vl-string-trim ";" (getenv "ACAD")) ";"))
                ) ;_ end of mapcar
        exts  '("tif" "tiff" "png" "bmp" "jpg" "jpeg")
        ) ;_ end of setq
  (if (setq dict (dictsearch (namedobjdict) "ACAD_IMAGE_DICT"))
    (foreach img (mapcar (function cdr) (vl-remove-if-not (function (lambda (x) (= (car x) 350))) dict))
      (if (and (not (findfile (setq img_file (cdr (assoc 1 (entget img))))))
               (setq img_file (vl-filename-base img_file))
               (setq img_file
                      (car (vl-remove
                             nil
                             (apply (function append)
                                    (mapcar
                                      (function
                                        (lambda (path)
                                          (apply (function append)
                                                 (mapcar
                                                   (function
                                                     (lambda (ext)
                                                       (vl-browsefiles-in-directory-nested path (strcat img_file "." ext))
                                                       ) ;_ end of lambda
                                                     ) ;_ end of function
                                                   exts
                                                   ) ;_ end of mapcar
                                                 ) ;_ end of apply
                                          ) ;_ end of lambda
                                        ) ;_ end of function
                                      paths
                                      ) ;_ end of mapcar
                                    ) ;_ end of apply
                             ) ;_ end of vl-remove
                           ) ;_ end of car
                     ) ;_ end of setq
               ) ;_ end of and
        (_kpblc-ent-modify-autoregen
          img
          1
          (strcat (vl-filename-base img_file) (vl-filename-extension img_file))
          t
          ) ;_ end of _kpblc-ent-modify-autoregen
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of if
  (vla-regen adoc acactiveviewport)
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Жду критики
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 31.07.2012, 15:27
#11
LiSa


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Жду критики
Код работает. Мерси!
LiSa вне форума  
 
Непрочитано 01.08.2012, 00:57
#12
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


Файлы не качал, но как LISa, тоже всю жизнь думал, что достаточно кинуть рисунки в одну папку вместе с акадовским чертежом для подгрузки в чертеж. Что это неправда?
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 01.08.2012, 02:39
1 | #13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


В данном конкретном случае - не совсем: в данных о растрах почему-то не сохранилось расширение файла. Это одна из причин проблем. Но что ее породило - не знаю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.09.2012, 12:58
#14
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Всем доброго времени суток. У меня возникла такая проблема. При вставке изображения вместо растра вставляется одноцветный прямоугольник. В свойствах- "показ изображения" => "да". Растр расположен в одной папке с чертежом. Да, кстати, в поле чертежа вместо "штурвала" тоже подобный прямоугольник.(AutoCAD Civil 3D 2012+Raster Design). Спасибо.
__________________
Как-то так.

Последний раз редактировалось sertor, 13.09.2012 в 13:02. Причина: дополнение
sertor вне форума  
 
Непрочитано 14.09.2012, 14:53
#15
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Цитата:
Сообщение от sertor Посмотреть сообщение
При вставке изображения вместо растра вставляется одноцветный прямоугольник. В свойствах- "показ изображения" => "да". Растр расположен в одной папке с чертежом. Да, кстати, в поле чертежа вместо "штурвала" тоже подобный прямоугольник.(AutoCAD Civil 3D 2012+Raster Design). Спасибо.
Всем доброго времени суток. Нашел решение своей проблемы. Может кому-то будет полезно. Переустановил аналогичную программу с SP2 (не спрашивайте почему не установил отдельно SP, есть на то причина). Все стало на свои места. Но мне ведь этого не достаточно, хотелось выяснить из за чего это происходит. Так вот, как оказалось, всему виной включенное "аппаратное ускорение". При выключенном - все нормально. Отпишитесь у кого Civil 2012 и присутствует ли подобный баг. Спасибо.
__________________
Как-то так.

Последний раз редактировалось sertor, 14.09.2012 в 15:03. Причина: Правка орфографии
sertor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > AutoCad 2009 не видит растров в одной папке с чертежом.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AutoCAD 2009: создание массива по траектории как AutoCAD 2012 Dimitriy AutoCAD 8 05.11.2011 21:41
Правило формирование записей в реестре об установленных обновлениях для AutoCAD и его вертикальных решений. hwd Программирование 8 30.09.2010 15:07
AutoCAD 2009 и СПДС GraphiCS 4.0 AutoCAD 2009 ponika AutoCAD 3 29.09.2010 14:32
Проблема с открытием файлов в AutoCad 2009, которые были созданны в более ранних версиях. Smerh AutoCAD 2 15.06.2009 10:15
AutoCAD Architecture 2009 стоит ли.. mey Вертикальные решения на базе AutoCAD 25 19.04.2009 19:20