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

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

Разделить или разрезать штриховку полилинией

Ответ
Поиск в этой теме
Непрочитано 22.09.2017, 10:53
Разделить или разрезать штриховку полилинией
Djeker
 
Регистрация: 09.07.2014
Сообщений: 23

Как разделить или разрезать штриховку по полилинии?
Не обрезать стандартной командой, что потом исчезает кусок, а именно поделить / разрезать , чтобы сохранить обе части штриховки

Вот к примеру есть жёлтая штриховка и полилиния. (сверху на рисунке)
Какую команду набрать или какой лисп запустить , чтобы последовательно выбрать штриховку, затем полилинию, нажать Ентер и штриховка поделилась на 2 части?

Миниатюры
Нажмите на изображение для увеличения
Название: forum.jpg
Просмотров: 92
Размер:	145.4 Кб
ID:	193917  

Просмотров: 17556
 
Непрочитано 13.01.2021, 10:26
3 | #21
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Почему-то не работает данный lisp.
прикольная идея резать штриховку через объёмное преобразование с последующим отпечатком (imprint) режущей кривой. я написал лисп по мотивам ссылки. всяческих проверок нет. получаемые на выходе порезки штриховки штрихуют регионы, которые затем удаляются.

Код:
[Выделить все]
 
*****************************************************************************************************************************************

(vl-load-com) 			;unless Boxa did not shorten the participants list

;*****************************************************************************************************************************************

(defun c:split_hatch (/
						hatch_to_split
						sample_hatch
						hatch_splitter
						hatch_plane
						splitted_parts_variant
						summary_region
						splitted_hatch_index
					 )

;	*************************************************************************************************************

	(defun add_hatch (object_to_hatch sample_hatch / hatch_object)
		(vl-cmdf "_-hatch" "_p" (vla-get-patternname sample_hatch)
								(vla-get-patternscale sample_hatch)
								(vla-get-patternangle sample_hatch)
						   "_s" (vlax-vla-object->ename object_to_hatch)
						   	"" ""
		)
	    (setq hatch_object (vlax-ename->vla-object (entlast)))
		(foreach property '(
								BackgroundColor Elevation EntityTransparency GradientAngle GradientCentered
								GradientColor1 GradientColor2 GradientName HatchObjectType HatchStyle ISOPenWidth
								Layer Linetype LinetypeScale Lineweight Material Normal Origin PatternDouble
								PatternSpace PlotStyleName TrueColor Visible
						   )
			(vl-catch-all-apply (read (strcat "vla-put-" (vl-symbol-name property)))
								(list hatch_object
									  (vl-catch-all-apply (read (strcat "vla-get-" (vl-symbol-name property)))
														  (list sample_hatch)
									  )
								)
			)
		)
		(vla-put-associativehatch hatch_object :vlax-false)
	)

;	*************************************************************************************************************

	(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
	(redraw (setq hatch_to_split (car (entsel "\nВыберите штриховку для разделения: "))) 3)
	(setq sample_hatch (vla-copy (vlax-ename->vla-object hatch_to_split))
		  hatch_splitter (car (entsel "\nВыберите делящий примитив: "))
		  splitted_hatch_index 0
	)
	(setvar 'cmdecho 0)
	(vl-cmdf "._hatchedit" hatch_to_split "_b" "_r" "_y")
	(vl-cmdf "._planesurf" "_o" (entlast) "")
	(setq hatch_plane (entlast))
	(vla-erase (vlax-ename->vla-object hatch_to_split))
	(vl-cmdf "._imprint" hatch_plane hatch_splitter "_n" "")
	(vl-cmdf "._explode" hatch_plane)
	(setq splitted_parts_variant (vla-explode (vlax-ename->vla-object (setq summary_region (entlast)))))
	(vla-erase (vlax-ename->vla-object summary_region))
	(foreach _region (vlax-safearray->list (vlax-variant-value splitted_parts_variant))
		(add_hatch _region sample_hatch)
		(vla-erase _region)
		(setq splitted_hatch_index (1+ splitted_hatch_index))
	)
	(vla-erase sample_hatch)
	(princ (strcat "\nИз выбранной штриховки получено частей: " (itoa splitted_hatch_index)))
	(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
	(setvar 'cmdecho 1)
	(princ)
)

;*****************************************************************************************************************************************
koMon вне форума  
 
Непрочитано 13.01.2021, 10:36
#22
mindchamber


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


Цитата:
Сообщение от koMon Посмотреть сообщение
прикольная идея резать штриховку через объёмное преобразование с последующим отпечатком (imprint) режущей кривой. я написал лисп по мотивам ссылки. всяческих проверок нет. получаемые на выходе порезки штриховки штрихуют регионы, которые затем удаляются.
Спасибо, то что надо!

Offtop: Если бы можно было выбрать сразу несколько штриховок и полилиний, то было бы идеально , сори за наглость)
mindchamber вне форума  
 
Непрочитано 13.01.2021, 10:40
#23
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Например на генплане участок разделен на много участков, а штриховка озеленения и дорог одна, а экспертиза просит площади в технико-экономических показателях на каждый участок отдельно. Поэтому очень бы пригодился инструмент по разрезу штриховки полилиниями.
Цитата:
Если бы можно было выбрать сразу несколько штриховок и полилиний, то было бы идеально
SQL!
trir вне форума  
 
Непрочитано 13.01.2021, 11:18
#24
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от mindchamber Посмотреть сообщение
сразу несколько штриховок и полилиний
попарно/комплектами?
koMon вне форума  
 
Непрочитано 13.01.2021, 11:37
#25
mindchamber


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


Цитата:
Сообщение от koMon Посмотреть сообщение
попарно/комплектами?
Было бы удобно так:
split_hatch
ENTER
Выбор штриховок (хорошо если бы можно было использовать инструмент лассо)
ENTER
Выбор полилиний (тоже хорошо было бы использовать лассо)
ENTER
mindchamber вне форума  
 
Непрочитано 13.01.2021, 11:51
#26
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Было бы удобно так:
split_hatch
ENTER
Выбор штриховок (хорошо если бы можно было использовать инструмент лассо)
ENTER
Выбор полилиний (тоже хорошо было бы использовать лассо)
ENTER
Легко!

Код:
[Выделить все]
select p.id, p.geom.STDifference(l.geom) as geom1, p.geom.STIntersection(l.geom) as geom2
from Леса as l, Участки as p

Последний раз редактировалось trir, 13.01.2021 в 12:33.
trir вне форума  
 
Непрочитано 13.01.2021, 17:36
#27
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


mindchamber, хорошо бы картинку посмотреть
koMon вне форума  
 
Непрочитано 13.01.2021, 18:06
#28
mindchamber


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


Цитата:
Сообщение от koMon Посмотреть сообщение
mindchamber, хорошо бы картинку посмотреть
Вот например - необходимо обрезать эти штриховки по красному контуру. Это только часть штриховок, выбирать по отдельности каждый раз сначала штриховку, потом полилинию долго получается.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_1.png
Просмотров: 80
Размер:	257.5 Кб
ID:	233521  
mindchamber вне форума  
 
Непрочитано 30.03.2021, 11:09
#29
tusiko

architector
 
Регистрация: 16.05.2006
S-Peterburg
Сообщений: 227
<phrase 1=


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Или создать 2 полилинии и обрезать между ними штриховку
спасибо за решение. Только после разделения надо в редактировании штриховки поставить галочку "separate hatches", что бы штриховки были самостоятельными, иначе она остается единой.
tusiko вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Разделить или разрезать штриховку полилинией

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разделить деталь на две части и сохранить общюю длину runmy AutoCAD 2 13.01.2017 08:54
SW 2014 Возможно ли в эскизе выбрать только штриховку? voverrr SolidWorks 0 10.09.2016 12:37
Как сделать штриховку по периметру окружности? dimond7 AutoCAD 12 05.07.2016 14:58
как штриховку обрисовать полилинией? Alex II AutoCAD 3 16.07.2013 10:29
Помогите разрезать солиды.. skalder AutoCAD 34 10.01.2008 11:46