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

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

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

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

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

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


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


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


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

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

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


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


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


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


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


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

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


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


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


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


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

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


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

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


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


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

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


С флудом завязывайте.
__________________

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


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


Татьяна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 Кб, 10 просмотров)
Татьянаu152 вне форума  
 
Непрочитано 11.08.2022, 20:30
#15
name02


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


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

Код:
[Выделить все]
 (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
Сообщений: 429


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


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


Цитата:
Сообщение от 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
Сообщений: 46


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

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


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


Вот этот, например, посмотри, пожалуйста
Вложения
Тип файла: dwg
DWG 2018
1662467461.dwg (3.22 Мб, 5 просмотров)
Татьяна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