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

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

Как заменить текст на одноименный блок

Ответ
Поиск в этой теме
Непрочитано 31.05.2022, 23:11 #1
Как заменить текст на одноименный блок
Татьянаu152
 
Регистрация: 31.05.2022
Сообщений: 5

Доброго времени, подскажите, как можно заменить текст на блок (из библиотеки ) с одноименным именем, что бы 5.22 менялся на блок с изображением знака 5.22, а текст 5.21 на блок с таким же названием. Идеально было бы, если бы блок вставлялся с тем же углом поворота, что и текст.
Просмотров: 3175
 
Непрочитано 01.06.2022, 10:55
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Штатными средствами это делается так: с помощь датаэкстракшен выгрузить в ексель содержимое текста, точку его вставки и угол поворота и потом на основание этих данных в екселе же сформировать scr файл
Boxa на форуме  
 
Непрочитано 01.06.2022, 11:09
#3
Петр-и-Алекс


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


Boxa, проще lisp написать

----- добавлено через ~17 мин. -----
а "библиотеку" в таком разе организовать так:
из разных потенциально нужных блоков создать мегаблок, который и загружать в чертеж в случае обращения к библиотеке
далее использовать понадобившиеся блоки-атомы (они уже загруженны в чертеж)
в конце все пропургенить
в годы юности написал бы это в четверть часа
Петр-и-Алекс вне форума  
 
Непрочитано 01.06.2022, 12:01
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Петр-и-Алекс, я же написал, что это штатными средствами, а из не штатных, я бы воспользовался уже готовыми, например своим DynIN-DynOut, ну или поискал по форуму.
Boxa на форуме  
 
Непрочитано 01.06.2022, 14:58
#5
Сергей812


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


Цитата:
Сообщение от Татьянаu152 Посмотреть сообщение
Доброго времени, подскажите, как можно заменить текст на блок (из библиотеки ) с одноименным именем, что бы 5.22 менялся на блок с изображением знака 5.22, а текст 5.21 на блок с таким же названием. Идеально было бы, если бы блок вставлялся с тем же углом поворота, что и текст.
тайна, покрытая мраком - зачем генерить кучу определений блоков по содержимому текстов. Может, все таки блок с атрибутом - значение которого и угол вставки блока берется из параметров текста...
Сергей812 вне форума  
 
Непрочитано 01.06.2022, 15:07
#6
Петр-и-Алекс


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


заинтригован:
"блок с атрибутом - значение которого и угол вставки блока берется из параметров текста..."
и как организовать "штатными средствами" это самое "берется" ? как установить связь?
вручную копипастом???
если что, то по мне lisp (и на всякий случай "дизель", и язык описания штриховок, типов линий и шейпов)
- это все что нинаесть "штатные средства". в отличии от положим технологии ".net" и конечно же от Excel.
---
а с чего такая странная задача - это тоже интересно.
но раз задача сформулирована, то значит это кому ни будь нужно

Последний раз редактировалось Петр-и-Алекс, 01.06.2022 в 15:20.
Петр-и-Алекс вне форума  
 
Непрочитано 01.06.2022, 16:01
#7
skkkk


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


Offtop:
Цитата:
Сообщение от Петр-и-Алекс Посмотреть сообщение
если что, то по мне lisp (и на всякий случай "дизель", и язык описания штриховок, типов линий и шейпов)
- это все что нинаесть "штатные средства". в отличии от положим технологии ".net" и конечно же от Excel.
Тут можно двояко рассуждать - это вопрос терминологии (именования понятий) - и в рамках данного форума, поверьте, принято понятие, что штатными средствами - это без привлечения любого программирования - стандартными инструментами Автокада из коробки. А код на лисп - это уже нештатная ситуация. Тут принято так. Поправьте, если ошибаюсь.
Как раз по этому критерию тема и попадает сразу или переносится после из раздела Автокад в раздел Программирование, когда становится ясно, что штатными средствами тут не обойтись. А на лиспе ли код, на сях ли - не важно, -> в Программирование
skkkk вне форума  
 
Непрочитано 01.06.2022, 16:26
#8
Петр-и-Алекс


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


офтоп
а создание собственной штриховки? или своего типа линии?
и что, создание автомата в книге Excel это разве не "программирование"?
Петр-и-Алекс вне форума  
 
Непрочитано 01.06.2022, 18:16
| 1 #9
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


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

Offtop:
Цитата:
Сообщение от Петр-и-Алекс Посмотреть сообщение
если что, то по мне lisp (и на всякий случай "дизель", и язык описания штриховок, типов линий и шейпов)
- это все что нинаесть "штатные средства". в отличии от положим технологии ".net" и конечно же от Excel.
а VBA это штатные средства? а использование комманд arxload и netload это штатные средства? а общение с автокадом по COM это штатные?
ИМХО, все задачи, для решения которых, необходимо записать некоторый алгоритм работы на любом языке - это программирование и не штатные средства, в остальных случаях штатные.
Boxa на форуме  
 
Непрочитано 02.06.2022, 10:20
#10
Петр-и-Алекс


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


ну право же...
То что приходит в поставке продукта по умолчанию - это штатные средства. То, что надо заказывать дополнительно - не штатные.
Вот вам пример: положим пипл не умеет создавать не только lisp, но и "динамические блоки" (у меня кстати таких немало), то по вашему дин.блок - тоже не штатное?
---
а кстати
замена текста на блок (даже если блок выглядит один-в-один как тот же текст) имеет смысл, если блок снабжен тучей атрибутов (таких как "поставщик", "каталожный-номер", "масса", "число-в-упаковке" и т.п.)
тогда кстати, загрузкой мега-блока можно актуализировать уже использованные блоки-атомы по состоянию загружаемого мега
Петр-и-Алекс вне форума  
 
Непрочитано 02.06.2022, 10:23
#11
Кулик Алексей aka kpblc
Moderator

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


С флудом завязывайте.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.06.2022, 12:52
#12
skkkk


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


Татьянаu152, хорошо бы приложить файл с примером того, что надо. Можно было бы предложить несложное решение (правда, на лиспе, т.е. тему придется попросить перенести, (да же, Кулик Алексей aka kpblc?), но ведь знаю, сейчас начнётся: текст с форматированием, точка вставки непонятно где, всё уехало, поскакало, плохо.
Offtop: Но Татьяна, похоже, уже не интересуется данной темой.
skkkk вне форума  
 
Автор темы   Непрочитано 11.08.2022, 14:49
#13
Татьянаu152


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


Очень интересуюсь))) Да, речь идет о дорожных знаках. Атрибуты как таковые не нужны. Приложила файл, для примера. Есть пикетаж относительно оси (плилиния), координат нет. Думаю, что проще на место и с тем же углом текста( №знака).
Татьянаu152 вне форума  
 
Автор темы   Непрочитано 11.08.2022, 14:53
#14
Татьянаu152


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


файл
Вложения
Тип файла: dwg
DWG 2018
123.dwg (76.0 Кб, 14 просмотров)
Татьянаu152 вне форума  
 
Непрочитано 11.08.2022, 20:30
#15
name02


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


Проверок никаких нет, блоки с нужными именами должны быть в файле

Код:
[Выделить все]
 (defun c:qq ( / SS i obj block_rotation ins_point block_name)

	(setq SS (ssget '((0 . "TEXT"))))
	
	(setq i 0)

	(while (< i (sslength SS))
	
		(setq obj (ssname SS i))

		(setq 
			block_name		(cdr (assoc 1	(entget obj)) )
			ins_point 		(cdr (assoc 11 (entget obj)) )
			block_rotation	(	/
									(*
										(cdr (assoc 50 (entget obj)) )
										180
									)
									
									pi
							)
		)

		(command "_insert" block_name ins_point 1 1 block_rotation)
		
		(setq i (1+ i))

	)

	(princ)

)

Последний раз редактировалось name02, 12.08.2022 в 08:52.
name02 вне форума  
 
Непрочитано 22.08.2022, 09:37
#16
shartal


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


Блок вставляется не в точку вставки текста, а в 0,0,0
shartal вне форума  
 
Непрочитано 22.08.2022, 10:17
#17
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от shartal Посмотреть сообщение
Блок вставляется не в точку вставки текста, а в 0,0,0
поменять assoc 11 на assoc 10
(эти значения зависят от способа выравнивания текста, при выравнивании влево assoc 11 даёт 0,0,0)

Последний раз редактировалось Oleg T, 22.08.2022 в 10:37.
Oleg T вне форума  
 
Автор темы   Непрочитано 07.09.2022, 12:45
#18
Татьянаu152


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


Спасибо!!! Спасибо!! Спасибо!!! текст заменяется на блоки. Только почему-то не поворачиваются.
Татьянаu152 вне форума  
 
Непрочитано 08.09.2022, 07:50
#19
name02


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


Блоки не поворачиваются? Согласно коду угол поворота блока определяется углом поворота соответствующего текстового объекта.
Протестировал еще раз на твоем файле - блоки со знаками поворачиваются.

Приложи файл с которым работаешь - посмотрю его тоже
name02 вне форума  
 
Автор темы   Непрочитано 08.09.2022, 13:41
#20
Татьянаu152


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


Вот этот, например, посмотри, пожалуйста
Вложения
Тип файла: dwg
DWG 2018
1662467461.dwg (3.22 Мб, 8 просмотров)
Татьянаu152 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как заменить текст на одноименный блок

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отзеркалить блок, так чтобы текст внутри блока не зеркалился? guta Динамические блоки 12 10.04.2016 00:04
Как заменить группу, состоящую из сотен блоков на другой блок Falaleichik Динамические блоки 6 26.12.2012 11:52
Как извлечь из размера значение, т.е. текст??? Rubль Программирование 10 24.08.2009 17:24
Как заменить один блок на другой? (не все) Абдулнасир Динамические блоки 2 21.05.2009 11:38
Помогите доделать программу добавления объектов в блок МишаVBA Программирование 1 20.05.2006 01:04