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

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

Как быстро обрезать растровые изображения?

Ответ
Поиск в этой теме
Непрочитано 01.03.2022, 01:19 #1
Как быстро обрезать растровые изображения?
Ibra
 
Регистрация: 24.12.2017
Сообщений: 19

Доброго времени суток господа, имеется проблема в том, чтобы быстро обрезать растровые изображения. Уже несколько лет работаю в сфере изготовления изделий из мрамора, и в каждом проекте требуется раскрой из плит мрамора, дабы собрать общую картинку. минимальный образец представлен в прикрепленном файле. Ранее уже задавал вопрос на форуме но к сожалению конкретного ответа не получил. большую часть времени пользовался написанным мною минимальным макросом ( *^C^Cизобрез;\н;в;; ), при помощи него можно было выбрать изображение и сразу полилинию, и она вырезается, но это быстро когда на картинке должна вырезаться одна картинка, если деталей на плите несколько, то надо изначально скопировать картинок количеством деталей на плите, не очень быстро согласитесь. недавно узнал о такой функции из expresstolls как Superhatch, при помощи нее удобно вырезать большое количество деталей из одной плиты, вызываю команду, нажимаю выбрать существующие, выбираю картинку и потом мышкой клацаю внутри каждой полилинии, заканчиваю команду, далее удаляю исходную картинку и разгруппировываю оставшиеся объекты и готово, удобно когда много деталей, когда одна, две, три моим макросом быстрее, так же эта команда вырезает область текста, если он находится внутри полилинии, текст надо заранее скрывать, тоже не очень удобно плюс то, что надо каждый раз разгруппировывать окончательный результат, долго и подходит только для большого количества деталей на одной плите. так вот возможно кто то знает как упростить этот процесс стандартными командами автокада ( в чем я сильно сомневаюсь, потому что облазил весь автокад и весь интернет в поиске этого вопроса), или же кто то может написать лисп, чтобы можно было сразу после вызова команды выбрать картинку, а после выбрать полилинии и картинка сразу вырезалась на все полилинии, это в разы ускорит мою работу, проекты бывают гораздо больше, чем в моем прикрепленном образце, по 300-500 квадратов, и в таких случаях чисто на обрезку картинок уходит очень много времени. очень надеюсь что есть умельцы которые смогут написать такой лисп, гарантирую что в долгу не останусь)

Вложения
Тип файла: rar Образец.rar (3.49 Мб, 33 просмотров)

Просмотров: 3471
 
Непрочитано 01.03.2022, 12:39
#2
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


У меня не открывается архив. Пишет, что повреждён или имеет неизвестный формат. Попробуйте собрать комплект командой _etransmit.
skkkk вне форума  
 
Автор темы   Непрочитано 01.03.2022, 12:57
#3
Ibra


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


воот собрал,как вы сказали)
Вложения
Тип файла: zip Образец-01.03.22 - Standard.zip (3.42 Мб, 14 просмотров)
Ibra вне форума  
 
Непрочитано 01.03.2022, 13:10
#4
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Насколько я понял задачу, ТЗ будет примерно таким:
1. Запускаем команду.
2. Выбираем одно изображение.
3. Выбираем несколько полилиний, которые на этом изображении наложены. Хоть рамкой, хоть тыками. Выбираться будут только полилинии, тексты - игнорироваться.
4. Изображение копируется столько раз, сколько выбрано полилиний, и в цикле каждая полилиния подрезает свою копию изначального изображения.

Так?

Это реализовать довольно лекго на лиспе.

Можно бы и подумать в сторону полностью автоматической обработки, но это гораздо хлопотнее: придется вычислять для каждого растра полилинии, попадающие в его границы. Но тоже реально.
skkkk вне форума  
 
Непрочитано 01.03.2022, 13:35
#5
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


https://forums.autodesk.com/t5/visua...s/td-p/9976490
Вложения
Тип файла: lsp smart_clipping.lsp (11.7 Кб, 30 просмотров)
Nike вне форума  
 
Автор темы   Непрочитано 01.03.2022, 13:52
#6
Ibra


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Насколько я понял задачу, ТЗ будет примерно таким:
1. Запускаем команду.
2. Выбираем одно изображение.
3. Выбираем несколько полилиний, которые на этом изображении наложены. Хоть рамкой, хоть тыками. Выбираться будут только полилинии, тексты - игнорироваться.
4. Изображение копируется столько раз, сколько выбрано полилиний, и в цикле каждая полилиния подрезает свою копию изначального изображения.

Так?

Это реализовать довольно лекго на лиспе.

Можно бы и подумать в сторону полностью автоматической обработки, но это гораздо хлопотнее: придется вычислять для каждого растра полилинии, попадающие в его границы. Но тоже реально.
Да все верно именно это и требуется)

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от Nike Посмотреть сообщение
вт этот лисп то что надо, благодарю
Ibra вне форума  
 
Непрочитано 01.03.2022, 14:27
#7
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


А мрамор чем режется? И как рисунок акад переносится на плиту, что-то типа шаблона на каком-то носителе или чпу?
Т.е. получается, что раскрой тут самое главное, тогда нужен авто раскрой, но зачем тут растр? Контуры довольно простые...?
Подробней можете рассказать? Изначально задумка чем и как реализована, это 3d модель? Рисунок с узором? Почему в Autocad-е? Мутно всё...
Цитата:
Сообщение от skkkk Посмотреть сообщение
У меня не открывается архив.
новый Rar

Последний раз редактировалось VitalyAF, 01.03.2022 в 14:43.
VitalyAF вне форума  
 
Непрочитано 01.03.2022, 15:05
#8
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Пока разминался, отвлекали, - а тут уже и решение нашлось, прикольно.
Но раз уж уже написал, то выложу. Тем более, что всё же пошёл по более замороченному сценарию: выбираем рамкой область со множеством таких групп (растр-полилинии) и все само обрезается. Еще и новые растры закидываются на задний план. Может, поудобнее будет.
Код:
[Выделить все]
 ;;; Команда подрезает выбранные растры по полилиниям, которые находятся внутри границ каждого растра
;;; Должен быть подгружен лисп PLTOOLS от VVA https://dwg.ru/dnl/607

(defun C:TEST ( / *error* oldCMDECHO img_ss i img MinP MaxP pline_ss k pl copied_img)
	(defun *error* (msg)
		(vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object)))
		(vl-cmdf "_.ZOOM" "_P")
		(setvar "CMDECHO" oldCMDECHO)
	)
	(vl-load-com)
	(vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
	(setq oldCMDECHO (getvar "CMDECHO"))
	(setvar "CMDECHO" 0)
	(setq img_ss (ssget '((0 . "IMAGE"))))
	(vl-cmdf "_.ZOOM" "_A")
	(cond 
	  (	img_ss
		(repeat (setq i (sslength img_ss))
			(setq img (ssname img_ss (setq i (1- i))))
			(vla-GetBoundingBox (vlax-ename->vla-object img) 'MinP 'MaxP)
			(setq MinP (vlax-safearray->list MinP))
			(setq MaxP (vlax-safearray->list MaxP))
			(setq pline_ss (ssget "_C" MinP MaxP '((0 . "LWPOLYLINE"))))
			(cond
			  (	pline_ss
				(repeat (setq k (sslength pline_ss))
					(setq pl (ssname pline_ss (setq k (1- k))))
					(if (> k 0) 
						(setq copied_img (vlax-vla-object->ename (vla-Copy (vlax-ename->vla-object img))))
						(setq copied_img img)
					)
					(mip-pline-no-arc pl -10 T 0)
					(vl-cmdf "_.CLIP" copied_img "_N" "_S" pl)
					(vl-cmdf "_.DRAWORDER" copied_img "" "_B")
				)
			  
			  )
			  (	T
				(princ "\nПодрезающие полилинии не ненайдены")
			  )
			)
		)
	  )
	  (	T
		(princ "\nИзображения не найдены")
	  )
	)
	(*error* nil)
	(princ)
)
----- добавлено через 54 сек. -----
Offtop:
Цитата:
Сообщение от VitalyAF Посмотреть сообщение
новый Rar
Надо же... Не знал, спасибо.

Последний раз редактировалось skkkk, 01.03.2022 в 18:07.
skkkk вне форума  
 
Автор темы   Непрочитано 01.03.2022, 15:06
#9
Ibra


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


[quote=VitalyAF;1984257]А мрамор чем режется? И как рисунок акад переносится на плиту, что-то типа шаблона на каком-то носителе или чпу?
Т.е. получается, что раскрой тут самое главное, тогда нужен авто раскрой, но зачем тут растр? Контуры довольно простые...?
Подробней можете рассказать? Изначально задумка чем и как реализована, это 3d модель? Рисунок с узором? Почему в Autocad-е? Мутно всё...

мрамор режем чпушными станками, в автокаде мы на основе фоток делаем примерную раскладку так, чтоб посмотреть какой примерный рисунок собирается, чтоб его видел клиент,после согласования рисунка, на станки мы скидываем в формате DXF детали в сборе как они выглядят на плане, а дальше уже оператор ложит плиту на стол станка, где ее фоткают и при специальных функции фотораскроя на самой плите передвигают детали и смотрят на общей картинке какой получается рисунок, а в автокае чисто проект для согласования с заказчиком
Ibra вне форума  
 
Непрочитано 01.03.2022, 15:10
#10
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


А еще, мне кажется, удобнее будет каждый обрезанный растр со своей линией и текстом собирать в блок со случайным именем, допустим, в формате, например, [<Имя> <Дата до миллисекунд>].

----- добавлено через ~2 мин. -----
Offtop:
Цитата:
Сообщение от Ibra Посмотреть сообщение
мрамор режем чпушными станками
Любопытно. А можно попросить выложить фото, а лучше - видео процесса?
skkkk вне форума  
 
Автор темы   Непрочитано 01.03.2022, 15:18
#11
Ibra


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


[quote=skkkk;1984258]Пока разминался, отвлекали, - а тут уже и решение нашлось, прикольно.
Но раз уж уже написал, то выложу. Тем более, что всё же пошёл по более замороченному сценарию: выбираем рамкой область со множеством таких групп (растр-полилинии) и все само обрезается. Еще и новые растры закидываются на задний план. Может, поудобнее будет.


твоя версия попроще будет, всего два клика, единственное тока радиусные детали не обрезает, есть ли такая возможность чтоб картинка как многоугольник с кучей точек в радиусах обрезался?
Ibra вне форума  
 
Автор темы   Непрочитано 01.03.2022, 15:29
#12
Ibra


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
А еще, мне кажется, удобнее будет каждый обрезанный растр со своей линией и текстом собирать в блок со случайным именем, допустим, в формате, например, [<Имя> <Дата до миллисекунд>].

----- добавлено через ~2 мин. -----
Offtop:
Любопытно. А можно попросить выложить фото, а лучше - видео процесса?
вот во вложениях фотки станка и пульта на котором раьотает оператор, на пульте справа это фото стола с плитой, а слева раскладка деталей, из которых центральная часть уже была ранее вырезана а боковые расположены на рисунке справа
Миниатюры
Нажмите на изображение для увеличения
Название: IMG_3022.jpg
Просмотров: 52
Размер:	385.1 Кб
ID:	245714  Нажмите на изображение для увеличения
Название: IMG_3023.jpg
Просмотров: 50
Размер:	338.8 Кб
ID:	245715  
Ibra вне форума  
 
Непрочитано 01.03.2022, 17:22
#13
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от Ibra Посмотреть сообщение
единственное тока радиусные детали не обрезает, есть ли такая возможность чтоб картинка как многоугольник с кучей точек в радиусах обрезался?
Есть. Исправил код в #8. Только обязательно должен быть загружен лисп PLTOOLS от VVA - в коде использована функция аппроксимации дуговых сегментов (mip-pline-no-arc).
Offtop:
Цитата:
Сообщение от Ibra Посмотреть сообщение
вот во вложениях фотки станка и пульта на котором раьотает оператор
Спасибо. Не видел таких станков, впечатляет. Сколько был на стройках, всё работяги пилят вручную, даже такие крупноформатные слэбы. Были только одни, которые привозили уже готовые - вырезанные в размер.
skkkk вне форума  
 
Непрочитано 01.03.2022, 17:57
#14
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от Ibra Посмотреть сообщение
вот во вложениях фотки станка и пульта...
В общих чертах ясно! Не в пику skkkk! Глянь по ссылке, бесплатный софт, для раскладки на плоском материале...
заодно и для чпу файл сгенеришь.
VitalyAF вне форума  
 
Автор темы   Непрочитано 01.03.2022, 18:58
#15
Ibra


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Есть. Исправил код в #8. Только обязательно должен быть загружен лисп PLTOOLS от VVA - в коде использована функция аппроксимации дуговых сегментов (mip-pline-no-arc).
Offtop:
Спасибо. Не видел таких станков, впечатляет. Сколько был на стройках, всё работяги пилят вручную, даже такие крупноформатные слэбы. Были только одни, которые привозили уже готовые - вырезанные в размер.
Щиикарнаа)
Ibra вне форума  
 
Непрочитано 01.03.2022, 19:28
#16
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


... Для хобитов и студентов бесплатно!!!

Нажмите на изображение для увеличения
Название: Nest_2022-03-01_20-24-20.png
Просмотров: 64
Размер:	32.2 Кб
ID:	245717
VitalyAF вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как быстро обрезать растровые изображения?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректно привязываются растровые изображения Аcz AutoCAD 8 05.05.2018 15:43
Не отображаются растровые изображения на подложке Alex-x-x-x Revit 0 24.05.2017 13:51
Сбиваются файлы вн. ссылок на растровые изображения. Как исправить? Blastoderm AutoCAD 7 15.03.2017 12:08
Не распечатываются растровые изображения в AutoCAD 2015 MJbomb AutoCAD 1 25.02.2015 13:59
При печати видимы и фон и маленькие растровые изображения portal AutoCAD 2 12.11.2008 11:16