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

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

Как создать выноску/блок в будет автоматически подсчитываться площадь заливки?

Ответ
Поиск в этой теме
Непрочитано 08.05.2020, 21:04 #1
Как создать выноску/блок в будет автоматически подсчитываться площадь заливки?
sofiko
 
Регистрация: 03.04.2014
Сообщений: 35

Например: у меня есть заливка, обозначающая газон, и нужно поставить блок в котором будет отражаться надпись "Газон № ...", а снизу площадь "S=.... м.кв." (картинка в приложении)
И таких заливок очень много, на каждой выставлять площадь, замучаешься. Нужен блок который считывает площадь именно заливки, к которой он подводится

Миниатюры
Нажмите на изображение для увеличения
Название: выноска.PNG
Просмотров: 45
Размер:	20.9 Кб
ID:	225972  

Просмотров: 808
 
Непрочитано 08.05.2020, 21:50
#2
trir


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


Map/Civil 3D,
trir вне форума  
 
Непрочитано 08.05.2020, 22:11
#3
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,199


Цитата:
Сообщение от sofiko Посмотреть сообщение
Нужен блок который считывает площадь именно заливки, к которой он подводится
нет в акаде штатных средств, позволяющих связывать автоматически данные примитивов одним простым "тыком".
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.05.2020, 15:36
#4
sofiko


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
нет в акаде штатных средств, позволяющих связывать автоматически данные примитивов одним простым "тыком".
Конечно в Автокаде такого инструмента нет. Но наверняка есть что-то стороннее. В VetCad, например, есть инструмент с изменяющимся текстом, похоже, но данные выглядят не как выноска. Или может быть можно настроить динамический блок, наподобие Координатной выноски, но не знаю как настроить атрибуты, под мои нужды.
sofiko вне форума  
 
Непрочитано 09.05.2020, 16:01
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,199


Цитата:
Сообщение от sofiko Посмотреть сообщение
Но наверняка есть что-то стороннее. В VetCad, например, есть инструмент с изменяющимся текстом, похоже, но данные выглядят не как выноска. Или может быть можно настроить динамический блок, наподобие Координатной выноски, но не знаю как настроить атрибуты, под мои нужды.
программными надстройками можно - например, типа такого.
Сергей812 вне форума  
 
Непрочитано 09.05.2020, 16:01
| 1 #6
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 940


Выноску не встречал, а вот у Lee есть Area Label и Areas to Field. Вторая ближе к теме, но создает простой MText объект с текстовым полем.
AlexCondor вне форума  
 
Непрочитано 09.05.2020, 17:03
2 | #7
skkkk


 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,465


Цитата:
Сообщение от sofiko Посмотреть сообщение
Конечно в Автокаде такого инструмента нет. Но наверняка есть что-то стороннее.
Что ж тогда тема делает в разделе AutoCAD, а не в Программировании хотя бы?
Вот тут у koMon'a решение есть, я чуть-чуть только подпилил:
Код:
[Выделить все]
 (defun C:TEST ( / entlist en_htch pt area current_mleader_dxf_list current_mleader_block_attributes_list )
	(setq entlist (entsel "\nУкажите штриховку: "))
	(setq en_htch (car entlist))
	(setq pt (cadr entlist))
	(setq area (rtos (vla-get-Area (vlax-ename->vla-object en_htch)) 2 2))
	(vl-cmdf "_mleader" "_O" "_C" "_B" "1" "_X" pt pause)
	(setq current_mleader_dxf_list (entget (entlast)))
	(if (not (zerop (cdr (assoc 296 current_mleader_dxf_list))))
		(setq current_mleader_block_attributes_list 
			(mapcar 'cdr
				(vl-remove-if-not 
				   '(lambda (every_list_member)
						(and
							(= 302 (car every_list_member))
							(= "S-" (cdr every_list_member))
						)
					)
					current_mleader_dxf_list
				)
			)
		)
	)
	(foreach attribute_value current_mleader_block_attributes_list
		(entmod 
			(setq current_mleader_dxf_list 
				(subst (cons 302 (strcat attribute_value area " кв.м")) (cons 302 attribute_value) current_mleader_dxf_list)
			)
		)
	)
)
Обработок ошибок и проверок не делал. Чуть что пойдет не по сценарию, например, выберется не штриховка или вообще ничего не выберется, программа вылетит с ошибкой, но без последствий (системные переменные не меняются). Блок создал "на коленке" по образцу из стартового поста, хотя мне и очень не нравится, что текст выходит за границы выноски, но думаю, это было показано просто для примера - блок предлагается допилить под собственные нужны самостоятельно в редакторе блоков: установить нужный размер круга, высоту атрибутов и проч. Файл с блоком и гифку с демонстрацией работы программы прилагаю.

----- добавлено через ~26 мин. -----
Да, забыл уточнить: код реагирует на имя блока "1" и на текст атрибута "S-" - добавляет к нему значение площади и "кв.м", т.е., изменяться будет атрибут, который изначально в блоке-заготовке имеет значение "S-". Тэг атрибута роли не играет. Для другого блока его имя нужно вписать внутри кавычек вместо единицы в этой строке (в 6-ой):
Код:
[Выделить все]
(vl-cmdf "_mleader" "_O" "_C" "_B" "1" "_X" pt pause)
.
Миниатюры
Нажмите на изображение для увеличения
Название: 2020-05-09 at 16-58-20.gif
Просмотров: 37
Размер:	1.97 Мб
ID:	226011  
Вложения
Тип файла: dwg
DWG 2010
Файл с блоком.dwg (84.0 Кб, 3 просмотров)
skkkk на форуме  
 
Непрочитано 24.05.2020, 22:59
| 1 #8
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 266


Есть еще костыльный способ без программирования. Создать заранее пару: заливка + мультивыноска с настроенными полями. И каждый новый газон создавать не новой штриховкой, а делать копию "пары" и допиливать штриховку под нужную форму.
Theodor вне форума  
 
Непрочитано 26.05.2020, 18:18
#9
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 288


Цитата:
Сообщение от Theodor Посмотреть сообщение
а делать копию "пары" и допиливать штриховку под нужную форму.
солидарен,пользуюсь достаточно давно этим. Причем копировать можно по две и более пары объектов одновременно, причем любой тип объектов и любое свойство. В итоге все действия сводятся к
1) создал пару(несколько); 2) раскопировал нужное количество пар 3) с помощью повтора HATCHSETBOUNDARY задал штриховкам нужные контуры; 4) поправил положение выноски.
P/S с учетом применения формул внутри выноски сфера применения значительно расширяется.
Linkshunter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как создать выноску/блок в будет автоматически подсчитываться площадь заливки?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно посчитать общую площадь и этажность для здания на опорах nickbass Прочее. Архитектура и строительство 2 02.10.2017 08:37
VBA. Как в AutoCad создать всплывающее диалоговое окно, которое будет запрашивать свойства динамического блока перед его вставкой Jeneva Программирование 9 23.06.2017 19:28
Как считается площадь антресоли? ximaera Архитектура 1 31.03.2017 10:17
Можно ли создать многострочный атрибут блока, который будет динамически растягиваться? ACAD 2007. Vavapet Динамические блоки 2 01.03.2011 15:00