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

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

Подключение растровых изображений ...

Ответ
Поиск в этой теме
Непрочитано 07.07.2008, 16:28 #1
Подключение растровых изображений ...
_Eugene
 
Регистрация: 07.07.2008
Сообщений: 13

Нужно подключать в *.dwg большое количество растровых файлов попадающих в область, заданную прямоугольником (не объектом). Параметры растров (имя файла, координаты, масштаб, угол поворота) записаны в файл (текстовый любого вида).
Версия CADа 2006. (Для 2000/2002 есть rmin15.arx)
Просмотров: 8009
 
Непрочитано 07.07.2008, 17:25
#2
DonJad


 
Регистрация: 20.12.2005
Murmansk
Сообщений: 106


Цитата:
количество растровых файлов попадающих в область, заданную прямоугольником
эээ.. каким таким прямоугольником? 0_о
DonJad вне форума  
 
Автор темы   Непрочитано 08.07.2008, 02:08
#3
_Eugene


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


Sorry! Любой прямоугольной областью, только чтобы объект не создавать (удалить последний не прокатит)
_Eugene вне форума  
 
Автор темы   Непрочитано 08.07.2008, 12:45
#4
_Eugene


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


Попробуем более конкретно:
имеется файл состоящий из строк вида
drive:\folder\filename.tiff=x1,y1,x2,y2 ,
где x1, y1 - координаты левого нижнего угла растрового изображения,
x2, y2 - координаты правого верхнего угла растрового изображения.
Далее задаем прямоугольную область (любым способом, но не создавая объект).
Если растр попадает в заданную область (даже если не полностью), он должен быть посажен в координаты.
Повторюсь: CAD 2006 Eng.
Если есть идеи, поделитесь, pls.
P.S. формат файла с параметрами может иметь любой другой вид.
_Eugene вне форума  
 
Автор темы   Непрочитано 10.07.2008, 09:17
#5
_Eugene


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


Извините за настойчивость, но ...
господа геодезисты, землеустроители (я думаю есть такие), а что вы с плановым материалом делаете?
Например, есть подложка по городу М 1:XXX в количестве нескольких сотен планшетов, а каждый раз ручками сажать не очень хочется! Слишком долго это!
_Eugene вне форума  
 
Непрочитано 11.07.2008, 11:33
#6
DonJad


 
Регистрация: 20.12.2005
Murmansk
Сообщений: 106


Хм, как вариант, задаешь координаты области, программка пробегает по твоему файлику, и вставляет те растры которые вписываются в заданную область?

ток нужон пример файлика текстового.

только, вот координаты это хорошо...а с масштабом растра, что делать? он, тоже в координатах?

Последний раз редактировалось DonJad, 11.07.2008 в 11:44.
DonJad вне форума  
 
Автор темы   Непрочитано 11.07.2008, 11:44
#7
_Eugene


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


Цитата:
Сообщение от DonJad Посмотреть сообщение
ток нужон пример файлика текстового.
Выложить негде, поэтому смотри так:

Код:
[Выделить все]
D:\raster\022_1.PNG=18000,21000,19000,22000
D:\raster\022_2.PNG=19000,21000,20000,22000
D:\raster\022_3.PNG=18000,20000,19000,21000
D:\raster\022_4.PNG=19000,20000,20000,21000
D:\raster\034_3.PNG=12000,18000,13000,19000
D:\raster\034_4.PNG=13000,18000,14000,19000
D:\raster\035_1.PNG=14000,19000,15000,20000
D:\raster\035_2.PNG=15000,19000,16000,20000
D:\raster\035_3.PNG=14000,18000,15000,19000
D:\raster\035_4.PNG=15000,18000,16000,19000
Если это не очень удобно, предложи свой вариант
_Eugene вне форума  
 
Непрочитано 12.07.2008, 20:37
#8
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Пробуй. Функция вставляет рисунки и подрезает их заданной рамкой.
Код:
[Выделить все]
;;;Igor Kireev (Donhuan) 07.2008. Для dwg.ru.
;;;mail: [email protected]
;;;Функция iim:insert_images предназначена для вставки растровых изображений в рисунок в соответствии с описанием, содержащемся в текстовом файле,
;;;и подрезке их заданной рамкой.
;;;Вызов функции (iim:insert_images file_path point_1 point_2)
;;;где:
;;;file_path - путь к текстовому файлу 
;;;point_1 - левая нижняя точка рамки подрезки
;;;point_2 - правая верхняя точка рамки подрезки
;;;Пример: (iim:insert_images "d:\\test.txt" '(2 -2) '(7 20))
;;;Пример текстового файла:
;;;	d:\29-1024.jpg=0,0,5,5 - путь к растру=левый нижний угол вставки (x,y),правый верхний угол вставки (x,y)
;;;	d:\81-1024.jpg=0,5,5,10
;;;	d:\perspectivedrawing02.jpg=0,10,5,15
;;;Глобальные переменные:
;;;*mspace* - указатель на пространство модели
;;;*fuzz* - точность сравнения точек
(vl-load-com)
(setq *mspace* (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
      *fuzz* 0.001)
(defun iim:insert_images (file_path point_1 point_2 / file_ds string_file count_str
			                              vla_image  point_3 point_4
			                              point_1_image point_2_image point_3_image point_4_image
			                              path_image list_in_bound list_in_image)
  (setq point_3 (list (max (car point_1) (car point_2)) (min (cadr point_1) (cadr point_2)))
	point_4 (list (min (car point_1) (car point_2)) (max (cadr point_1) (cadr point_2)))
  )
  (if (setq file_ds (open file_path "r"))
    (while (setq string_file (read-line file_ds))
      (progn
	(setq path_image    (substr string_file 1 (setq count_str (vl-string-search "=" string_file)))
	      point_1_image (list (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str)))))
	                          (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str))))))
	      point_2_image (list (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str)))))
	                          (atof (substr string_file (+ 2 count_str))))
	      point_3_image (list (car point_2_image) (cadr point_1_image))
	      point_4_image (list (car point_1_image) (cadr point_2_image))
	      list_in_bound (iim:verify (list point_1_image point_2_image point_3_image point_4_image) point_1 point_2)
	      list_in_image (iim:verify (list point_1 point_2 point_3 point_4) point_1_image point_2_image)
	)
	((lambda (int_with) 
	  (if (not
	        (and
	          (apply 'and (mapcar 'not list_in_bound))
	          (apply 'and (mapcar 'not list_in_image))
		  (not (= 4 (length int_with)))
	        )
	      )
	    (progn
	      (setq vla_image (vla-AddRaster *mspace* path_image (vlax-3d-point point_1_image) 1 0))
	      (vla-put-ImageHeight vla_image (- (cadr point_2_image) (cadr point_1_image)))
	      (vla-put-ImageWidth  vla_image (- (car point_2_image) (car point_1_image)))
              (vla-put-ClippingEnabled vla_image t)
              (cond
	        ((= 4 (length list_in_bound)))
	        ((= 4 (length list_in_image)) (vla-ClipBoundary vla_image (iim:list->variantArray (append point_1 point_3 point_2 point_4 point_1))))
		((= 4 (length ((lambda (x)
				(foreach count (list point_1_image point_2_image point_3_image point_4_image point_1 point_2 point_3 point_4)
		                  (setq x (iim:remove x count)))) int_with)))
		      (vla-ClipBoundary vla_image
			(iim:list->variantArray
			    ((lambda (x) (if (not (or (equal (caar x) (caaddr x) *fuzz*) (equal (cadar x) (car (cdaddr x)) *fuzz*)))
					     (append (car x) (cadr x) (caddr x) (cadddr x) (car x))
	                                     (if (not (or (equal (caar x) (caadr x) *fuzz*) (equal (cadar x) (car (cdadr x)) *fuzz*)))
					         (append (car x) (cadddr x) (cadr x) (caddr x) (car x))
					         (append (car x) (cadr x) (cadddr x)  (caddr x) (car x))
					     ))) int_with))))
		((= (apply '+ (mapcar '(lambda (x) (if x 1 0)) list_in_bound)) 2); если две точки рисунка в рамке
		     ((lambda (x)
			(if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
			  (vla-ClipBoundary vla_image
		            (iim:list->variantArray
			      (if (or (equal (caar x) (caaddr x) *fuzz*) (equal (cadar x) (car (cdaddr x)) *fuzz*)); формирование полигона обрезки
				(append (car x) (caddr x) (cadddr x) (cadr x) (car x))
				(append (car x) (cadddr x) (caddr x) (cadr x) (car x))
			      )))
			  (vla-delete vla_image)
			)) 
			      (append list_in_bound
				      ((lambda (x)
					(foreach count (list point_1_image point_2_image point_3_image point_4_image)
		                          (setq x (iim:remove x count)))) int_with))))
		 ((= (apply '+ (mapcar '(lambda (x) (if x 1 0)) list_in_image)) 2); если две точки рамки в рисунке
		      ((lambda (x)
                         (if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
			   (vla-ClipBoundary vla_image
		             (iim:list->variantArray
			       (if (or (equal (caar x) (caaddr x) *fuzz*) (equal (cadar x) (car (cdaddr x)) *fuzz*)); формирование полигона обрезки
			         (append (car x) (caddr x) (cadddr x) (cadr x) (car x))
				 (append (car x) (cadddr x) (caddr x) (cadr x) (car x))
			       )))
			   (vla-delete vla_image)
			 ))
			      (append list_in_image
				      ((lambda (x)
					(foreach count (list point_1 point_2 point_3 point_4)
		                          (setq x (iim:remove x count)))) int_with))))
		 (t ((lambda (x)
		       (if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
		         (vla-ClipBoundary vla_image; если по одной точке в рисунке и рамке
		           (iim:list->variantArray
			     (append (car x) (cadr x) (cadddr x) (caddr x) (car x))))
			 (vla-delete vla_image)
		       ))
		       (append list_in_bound
		         ((lambda (x)
			   (foreach count (list point_1_image point_2_image point_3_image point_4_image point_1 point_2 point_3 point_4)
		             (setq x (iim:remove x count)))) int_with) list_in_image)))
		
	      )
	    )
          ))
        (vl-remove nil
	  (apply 'append
	    (mapcar
	     '(lambda (x)
	       (mapcar
	         '(lambda (y) (inters (car x) (cadr x) (car y) (cadr y)))
	        (list (list point_1 point_4) (list point_2 point_4) (list point_2 point_3) (list point_1 point_3))))
	        (list (list point_1_image point_4_image) (list point_2_image point_4_image)
		      (list point_2_image point_3_image) (list point_1_image point_3_image)))))) 
      )
    )
    (princ "\nНе найден текстовый файл.")
  )
  (princ)
)

; создание varianta из списка точек пример из helpa
(defun iim:list->variantArray (ptsList / )
  (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 (- (length ptsList) 1))) ptsList))
)

(defun iim:verify (list_point point_1 point_2 /); проверка попадания точек в полигон, заданный двумя точками по диагонали
  (vl-remove nil
    (mapcar '(lambda (x)
      (if (and (and (<= (car x) (max (car point_1) (car point_2))) (>= (car x) (min (car point_1) (car point_2))))
               (and (<= (cadr x) (max (cadr point_1) (cadr point_2))) (>= (cadr x) (min (cadr point_1) (cadr point_2)))))
	  x))
    list_point)
  )
)

(defun iim:remove (list_point contr_point /); удаление точек списка эквивалентных заданной
  (cond
    ((null list_point) nil)
    ((equal contr_point (car list_point) *fuzz*) (iim:remove (cdr list_point) contr_point))
    (t (cons (car list_point) (iim:remove (cdr list_point) contr_point)))
  )
)
P.S. С подрезкой рамкой пришлось повозиться.
Donhuan вне форума  
 
Автор темы   Непрочитано 22.07.2008, 11:15
#9
_Eugene


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


Цитата:
P.S. С подрезкой рамкой пришлось повозиться.

Donhuan, если не затруднит, убери подрезку рамкой.
_Eugene вне форума  
 
Непрочитано 22.07.2008, 21:31
#10
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Что переборщил - подрезка не требовалась?
Без подрезки:
Код:
[Выделить все]
;;;Igor Kireev (Donhuan) 07.2008. Для dwg.ru.
;;;mail: [email protected]
;;;Функция iim:insert_images предназначена для вставки растровых изображений в рисунок в соответствии с описанием, содержащемся в текстовом файле,
;;;и подрезке их заданной рамкой.
;;;Вызов функции (iim:insert_images file_path point_1 point_2)
;;;где:
;;;file_path - путь к текстовому файлу 
;;;point_1 - левая нижняя точка рамки подрезки
;;;point_2 - правая верхняя точка рамки подрезки
;;;Пример: (iim:insert_images "d:\\test.txt" '(2 -2) '(7 20))
;;;Пример текстового файла:
;;;	d:\29-1024.jpg=0,0,5,5 - путь к растру=левый нижний угол вставки (x,y),правый верхний угол вставки (x,y)
;;;	d:\81-1024.jpg=0,5,5,10
;;;	d:\perspectivedrawing02.jpg=0,10,5,15
;;;Глобальные переменные:
;;;*mspace* - указатель на пространство модели
;;;*fuzz* - точность сравнения точек
(vl-load-com)
(setq *mspace* (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
      *fuzz* 0.001)
(defun iim:insert_images (file_path point_1 point_2 / file_ds string_file count_str
			                              vla_image  point_3 point_4
			                              point_1_image point_2_image point_3_image point_4_image
			                              path_image list_in_bound list_in_image)
  (setq point_3 (list (max (car point_1) (car point_2)) (min (cadr point_1) (cadr point_2))); точки рамки
	point_4 (list (min (car point_1) (car point_2)) (max (cadr point_1) (cadr point_2)))
  )
  (if (setq file_ds (open file_path "r"))
    (while (setq string_file (read-line file_ds))
      (progn
	(setq path_image    (substr string_file 1 (setq count_str (vl-string-search "=" string_file)))
	      point_1_image (list (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str)))))
	                          (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str))))))
	      point_2_image (list (atof (substr string_file (+ 2 count_str) (setq count_str (vl-string-search "," string_file (+ 2 count_str)))))
	                          (atof (substr string_file (+ 2 count_str))))
	      point_3_image (list (car point_2_image) (cadr point_1_image))
	      point_4_image (list (car point_1_image) (cadr point_2_image))
	      list_in_bound (iim:verify (list point_1_image point_2_image point_3_image point_4_image) point_1 point_2)
	      list_in_image (iim:verify (list point_1 point_2 point_3 point_4) point_1_image point_2_image)
	); чтение данных файла и проверка попадания точек рисунка в рамку и рамки в область рисунка
	((lambda (int_with) ; int_with - число пересечений границ рамки и рисунка
	  (if (not
	        (and
	          (apply 'and (mapcar 'not list_in_bound)); если не полностью рисунок в рамке
	          (apply 'and (mapcar 'not list_in_image)); ранка в рисунке
		  (not (= 4 (length int_with))); и нет четырех пересечений рамки и рисунка
	        )
	      )
	    (progn
	      (setq vla_image (vla-AddRaster *mspace* path_image (vlax-3d-point point_1_image) 1 0))
	      (vla-put-ImageHeight vla_image (- (cadr point_2_image) (cadr point_1_image)))
	      (vla-put-ImageWidth  vla_image (- (car point_2_image) (car point_1_image)))
              (vla-put-ClippingEnabled vla_image t)
              (cond
	        ((= 4 (length list_in_bound))); весь рисунок в рамке
	        ((= 4 (length list_in_image)))
		((= 4 (length ((lambda (x); если четыре точки пересечения
				(foreach count (list point_1_image point_2_image point_3_image point_4_image point_1 point_2 point_3 point_4)
		                  (setq x (iim:remove x count)))) int_with))))
		((= (apply '+ (mapcar '(lambda (x) (if x 1 0)) list_in_bound)) 2); если две точки рисунка в рамке
		     ((lambda (x)
			(if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
			  nil
			  (vla-delete vla_image)
			)) 
			      (append list_in_bound
				      ((lambda (x)
					(foreach count (list point_1_image point_2_image point_3_image point_4_image)
		                          (setq x (iim:remove x count)))) int_with))))
		 ((= (apply '+ (mapcar '(lambda (x) (if x 1 0)) list_in_image)) 2); если две точки рамки в рисунке
		      ((lambda (x)
                         (if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
			   nil
			   (vla-delete vla_image)
			 ))
			      (append list_in_image
				      ((lambda (x)
					(foreach count (list point_1 point_2 point_3 point_4)
		                          (setq x (iim:remove x count)))) int_with))))
		 (t ((lambda (x)
		       (if (= (length x) 4); проверка на совпадения границ рисунка и рамки без их наложения друг на друга
		         nil
			 (vla-delete vla_image)
		       ))
		       (append list_in_bound
		         ((lambda (x)
			   (foreach count (list point_1_image point_2_image point_3_image point_4_image point_1 point_2 point_3 point_4)
		             (setq x (iim:remove x count)))) int_with) list_in_image)))
		
	      )
	    )
          ))
        (vl-remove nil
	  (apply 'append
	    (mapcar
	     '(lambda (x)
	       (mapcar
	         '(lambda (y) (inters (car x) (cadr x) (car y) (cadr y)))
	        (list (list point_1 point_4) (list point_2 point_4) (list point_2 point_3) (list point_1 point_3))))
	        (list (list point_1_image point_4_image) (list point_2_image point_4_image)
		      (list point_2_image point_3_image) (list point_1_image point_3_image)))))) 
      )
    )
    (princ "\nНе найден текстовый файл.")
  )
  (princ)
)

(defun iim:verify (list_point point_1 point_2 /); проверка попадания точек в полигон, заданный двумя точками по диагонали
  (vl-remove nil
    (mapcar '(lambda (x)
      (if (and (and (<= (car x) (max (car point_1) (car point_2))) (>= (car x) (min (car point_1) (car point_2))))
               (and (<= (cadr x) (max (cadr point_1) (cadr point_2))) (>= (cadr x) (min (cadr point_1) (cadr point_2)))))
	  x))
    list_point)
  )
)

(defun iim:remove (list_point contr_point /); удаление точек списка эквивалентных заданной
  (cond
    ((null list_point) nil)
    ((equal contr_point (car list_point) *fuzz*) (iim:remove (cdr list_point) contr_point))
    (t (cons (car list_point) (iim:remove (cdr list_point) contr_point)))
  )
)
Donhuan вне форума  
 
Автор темы   Непрочитано 23.07.2008, 17:24
#11
_Eugene


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


Donhuan,
_Eugene вне форума  
 
Автор темы   Непрочитано 01.08.2008, 13:27
#12
_Eugene


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


Для тех же нужд требуется следующее:
получить кооорднаты с рамки "area selection" (AutoCAD 2006).
_Eugene вне форума  
 
Непрочитано 01.08.2008, 21:41
#13
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


point_1 - первая точка
point_2 - вторая точка
Код:
[Выделить все]
(setq point_2 (getcorner (setq point_1 (getpoint))))
Donhuan вне форума  
 
Автор темы   Непрочитано 04.08.2008, 10:42
#14
_Eugene


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


Donhuan, thanks
_Eugene вне форума  
 
Непрочитано 23.10.2008, 13:56
#15
WeMaN


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


Господа, я что-то не втыкнул какой командой эту функцию вызывать, подскажите
WeMaN вне форума  
 
Непрочитано 23.10.2008, 14:30
#16
Кулик Алексей aka kpblc
Moderator

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


dwg.ru/art/11
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.10.2008, 16:58
#17
WeMaN


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


Я не про это, просто обычно есть одно слово которое активирует загруженый лисп, какое у данного лиспа?
WeMaN вне форума  
 
Непрочитано 23.10.2008, 17:07
#18
VVA

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


WeMaN, Выделил красным
Цитата:
;;;Igor Kireev (Donhuan) 07.2008. Для dwg.ru.
;;;mail: [email protected]
;;;Функция iim:insert_images предназначена для вставки растровых изображений в рисунок в соответствии с описанием, содержащемся в текстовом файле,
;;;и подрезке их заданной рамкой.
;;;Вызов функции (iim:insert_images file_path point_1 point_2)
;;;где:
;;;file_path - путь к текстовому файлу
;;;point_1 - левая нижняя точка рамки подрезки
;;;point_2 - правая верхняя точка рамки подрезки
;;;Пример: (iim:insert_images "d:\\test.txt" '(2 -2) '(7 20))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.02.2013, 08:21
#19
b_anton

Конструктор
 
Регистрация: 19.06.2008
Омск
Сообщений: 35


Добрый день Господа!

Есть схожая задачка. Имеется произвольный контур НЕ прямоугольной формы. Его необходимо заполнить массивом однотипных растровых изображений от конкретной базовой точки, сделать подрезку по контуру.
Алгоритм вижу следующий:
1) Выбор растрового изображения по пути
2) Выбор контура
3) Выбор базовой точки
4) Ввод угла поворота растрового изображения
5) результат на картинке

Растр загружается в масштабе 1

Заранее благодарен за идеи.
Миниатюры
Нажмите на изображение для увеличения
Название: kottedj.jpg
Просмотров: 75
Размер:	177.1 Кб
ID:	96524  

Последний раз редактировалось b_anton, 12.02.2013 в 08:40.
b_anton вне форума  
 
Непрочитано 13.02.2013, 09:26
#20
VVA

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


Цитата:
Сообщение от b_anton Посмотреть сообщение
Растр загружается в масштабе 1
Express Tools команда _superhatch
смотреть

и еще здесь
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Подключение растровых изображений ...

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часть цветных растровых изображений печатается ч/б Dimm_ka AutoCAD 20 10.07.2008 09:32
Редактирование растровых изображений Малюк Разное 31 01.02.2008 00:44
Помогите сшить куски растровых изображений карт Madlenn Прочее. Программное обеспечение 10 08.05.2007 07:01
Редактор растровых изображений Runa AutoCAD 29 27.04.2007 17:56
ZOOM и PAN растровых изображений ытя AutoCAD 9 23.12.2005 12:00