Книга «Путь к nanoCAD»
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

Как автоматически преобразовать однострочный атрибут в многострочный?

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 12.03.2017, 12:19
Как автоматически преобразовать однострочный атрибут в многострочный?
config
 
Регистрация: 20.02.2015
Сообщений: 65

config вне форума Вставить имя

Всем здравствуйте! Подскажите пожалуйста, существует ли в природе штатная команда или *.lisp автоматического преобразования однострочного атрибута в многострочный. В идеале, в сочетании, осуществить бы, у преобразованного атрибута, скрытие заднего плана. Это просто необходимо при использовании в геодезии блоков в виде точек. Спасибо!
Просмотров: 1172
 
Непрочитано 13.03.2017, 15:33
#21
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,439


А топикстартер _attsync и не собирался применять, я так понял
__________________
Кому жизнь буги-вуги, а кому полный бред... (С)
kp+ на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 13.03.2017, 18:23
#22
config


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


kp+, спасибо огромное, работает! Обновление атрибутов совсем не обязательно. Это вполне можно опустить. Но если возможно, еще одна просьба, для логического завершения этой опции. Как-бы сделать лиспом скрытие заднего плана в связке с преобразованием в многострочник? Такое возможно? Пусть и без _attsync. Спасибо!
config вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2017, 18:47
2 | #23
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,439


Цитата:
Сообщение от config Посмотреть сообщение
Обновление атрибутов совсем не обязательно
Оно категорически противопоказано
Цитата:
Сообщение от config Посмотреть сообщение
Как-бы сделать лиспом скрытие заднего плана в связке с преобразованием в многострочник?
Lee Mac уже все сделал: http://www.theswamp.org/index.php?topic=43827.0
вот моя деревянная телега с его реактивным двигателем адаптированная версия:
Код:
[Выделить все]
  (defun c:sa2ma (/ ATT EL)
   (setq att (car (nentsel "выберите отребут")))
   (vla-put-mtextattribute (vlax-ename->vla-object att) :vlax-true)
				; set background mask by Lee Mac http://www.theswamp.org/index.php?topic=43827.0
				(setq el (entget att))
				(if (member '(101 . "Embedded Object") el)
					(entmod (append
						; el without mask related pairs
						(vl-remove-if
							(function (lambda ( pair )
								(member (car pair) '(45 63 90 421 431 441))
							))
							el
						)
						; new mask related pairs
						
							(list
								(cons 90 3) ; background fill setting (transparent)
								(cons 63 256) ; background color
								(cons 45 1) ; fill box scale
								(cons 441 0) ; transparency of background fill
							)
							(list
								(cons 90 2) ; background fill setting (off)
							)
						
					))
				);eo IF
)
Цитата:
Сообщение от config Посмотреть сообщение
Пусть и без _attsync
Об _attsync после применения вышеприведенного кода забыть под страхом потери результатов работы!
__________________
Кому жизнь буги-вуги, а кому полный бред... (С)
kp+ на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 13.03.2017, 19:04
#24
config


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


kp+, супер! Преклоняюсь. Спасибо Вам огромное! То, что "доктор прописал"!
config вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2017, 21:36
#25
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,506


Сделайте под однострочным атрибутом (под чем нужно) в блоке маскировку-wipeout, и два состояния видимости - с маской и без. И включайте-отключайте маскировку на здоровье и Ваше, и атрибутов, и блоков, сколько и когда нужно. Никакой _attsync при этом не помешает.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 13.03.2017, 21:43
#26
config


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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Сделайте под однострочным атрибутом (под чем нужно) в блоке маскировку-wipeout
Нет, маскировка, на мой взгляд - зло. Я думаю не стоит объяснять почему. Столько "копий на этом сломано". А в данном случае - скрытие заднего плана. Это совсем другое дело.
config вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2017, 22:01
#27
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,506


Цитата:
Сообщение от config Посмотреть сообщение
Нет, маскировка, на мой взгляд - зло. Я думаю не стоит объяснять почему. Столько "копий на этом сломано". А в данном случае - скрытие заднего плана. Это совсем другое дело.
Мы этим "злом" пользовались, пользуемся и пользоваться будем как раз для скрытия заднего плана. Исключительно для добра.
Объясните, почему зло?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2017, 22:23
#28
trir


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


В AtoCAD'е периодически слетает порядок прорисовки...
trir вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2017, 23:12
1 | #29
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от config Посмотреть сообщение
Нет, маскировка, на мой взгляд - зло. Я думаю не стоит объяснять почему.
Насколько я понимаю, скрытие заднего фона обращается к тому же самому функционалу.
Цитата:
Сообщение от trir Посмотреть сообщение
В AtoCAD'е периодически слетает порядок прорисовки...
Как правило, "слет" обуславливается строго определенными действиями пользователя. Частично я разбирал это здесь: http://autolisp.ru/2013/09/18/draworder-inside-blocks/
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.03.2017, 00:33
#30
Сергей812


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Как правило, "слет" обуславливается строго определенными действиями пользователя. Частично я разбирал это здесь: http://autolisp.ru/2013/09/18/draworder-inside-blocks/
получается, что порядок отрисовки каким то образом завязан на хэндл объектов? Ведь при копировании и последующей вставки примитивы получают следующие свободные хэндлы...
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.03.2017, 02:11
#31
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,506


Редко и у нас маски закрывали нужные элементы. Почти всегда лечилось аудитом.
Да, правильность порядка отображения заложена в порядке создания маски и ее текста или пр. Сначала маску, а потом соотв. атрибут или пр.

Соглашусь с еще неназванным недостатком, что у маскировки нет такого замечательного свойства, как у скрытия заднего плана многострочных текстов-атрибутов - размер маскировки для текстов разной длины нуждается в редактировании вручную.

Есть другой вариант: сделать в блоке два атрибута - многострочный со скрытым задним планом и однострочный, но с пр. одинаковыми свойствами, и состояния видимости - с "маской", т.е. многострочный и без, однострочный.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.03.2017, 23:37
#32
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 1,984


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Насколько я понимаю, скрытие заднего фона обращается к тому же самому функционалу.
Возможно и так, но я ни разу не видел, чтобы скрытие заднего плана выскакивало на передний, а с маскировками - сколько угодно. Лечится, правда, чаще всего аудитом с последующей регенерацией, но это лишние действия.
Я бы все же пошел по пути АлексЮстасу - сделал бы динамический блок с двумя видимостями и менял бы видимость программно у выбранных (множественно - хоть рамкой, хоть кликом) блоков. Все коды для этого на форуме уже есть.
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.03.2017, 00:04
#33
Сергей812


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


сталкивался еще с тем, что маскировка в некоторых блоках внезапно отваливалась от операции динамического поворота - т.е. все остальные примитивы вращаются, а маскировка стоит на месте.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.03.2017, 02:41
1 | #34
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,506


Во-первых, я попробовал сделать блоки с многострочными атрибутами. Где атрибут считывает Z своего блока - как раз для геодезических отметок. Раньше многострочные никогда не делал. То ли я их не умею готовить, то ли с многострочными что-то по жизни не так, но в таких атрибутах поля у меня при вставке блоков работают через раз. Сделал - работают. Закрыл файл, открыл - вставляются, но вместо значения атрибута пишет название поля "InsertionPoint". И в 2012-м и в 2016-м. С однострочными такого за многие годы не наблюдалось.
Во-вторых, беру частично свои слова обратно, т.к. можно проще - достаточно одного атрибута со скрытым фоном, и не нужно никакого определения видимости. Зачем вообще два варианта? Если скрывать нечего, то и скрытие фона не мешает. Если есть что скрывать - он и скроет.

А по поводу адских маскировок=вайпаутов - если блок правильно сделан, то ничто никуда не налезает и не съезжает. Мистики с маскировками в блоках не наблюдал, хотя таких блоков понаделал предостаточно - сотни, и пользовались ими интенсивно десятки людей лет десять.
Вложения
Тип файла: dwg
DWG 2004
отметка_многострочный_атрибут_2.dwg (137.8 Кб, 5 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как автоматически преобразовать однострочный атрибут в многострочный?

Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись значения в многострочный атрибут (LISP) tujn08 LISP 3 09.06.2015 09:02
Многострочный атрибут блока Нитонисе AutoCAD 20 05.12.2014 15:02
C# AutoCAD. Как сделать многострочный атрибут? Sfinks7s1 Программирование 5 17.09.2013 14:22
Почему многострочный атрибут блока становиться в одну строку? Alexg-12 AutoCAD 13 10.06.2013 15:58
Можно ли создать многострочный атрибут блока, который будет динамически растягиваться? ACAD 2007. Vavapet AutoCAD 2 01.03.2011 15:00

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


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