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

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

Как избавиться от атрибутов блока, если "Управление атрибутами" их не видит?

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 27.12.2017, 09:10 #1
Как избавиться от атрибутов блока, если "Управление атрибутами" их не видит?
Полянка
 
Регистрация: 27.12.2017
Сообщений: 6

Полянка вне форума Вставить имя

Есть блок, у которого в свойствах высвечиваются 4 атрибута, при нажатии кнопки "редактировать атрибут", они редактируются. Но при нажатии "управление атрибутами", выдает, что нет блоков с атрибутами, тоже самое в редакторе блоков. Как это возможно и, главное, как избавиться от этих атрибутов, они не нужны.
Просмотров: 902
 
Непрочитано 27.12.2017, 10:04
#2
Кулик Алексей aka kpblc
Moderator

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


Попробуй _.attsync, но я не уверен, что сработает.
Я с такими ситуациями сталкивался, лечилось вставкой (вручную или программно) аналогов блока, удалением старых блоков и переименованием аналога на старое имя.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 27.12.2017, 12:46 Вы правы.
#3
Полянка


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


не сработало.
Полянка вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.12.2017, 15:55
#4
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 15,514


Полянка, файл с проблемным блоком где?
Хмурый вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 28.12.2017, 08:04
#5
Полянка


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


Вот файл, acad2014
Вложения
Тип файла: dwg
DWG 2013
Проблемные блоки acad2014.dwg (492.2 Кб, 19 просмотров)
Полянка вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 08:39
#6
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 15,514


Здесь придётся, если нет исходных блоков, открыть блок редактором блоков и вручную заново определить атрибуты.
_attdef
по выходе из редактора атрибуты синхронизировать _attsync
Атрибуты не нужны, а блок нужен? что-то непонятно. Атрибуты можно не заполнять, блок можно расчленить...
PS я-то, вначале, подумал, что, как обычно, нужно восстановить блок...
Вложения
Тип файла: dwg
DWG 2010
Проблемные блоки acad2014_review.dwg (549.8 Кб, 11 просмотров)

Последний раз редактировалось Хмурый, 28.12.2017 в 08:54.
Хмурый вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 09:52
#7
Кулик Алексей aka kpblc
Moderator

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


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

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 28.12.2017, 12:57
#8
Полянка


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Атрибуты не нужны, а блок нужен? что-то непонятно
требование сторонней организации. И вхождений блоков очень много, это точки топосъемки.
Спасибо всем.
Полянка вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 14:42
#9
koMon


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


Варварское удаление атрибутов у выбранных блоков…
После сохранения на выходе имеем голые блоки.

Код:
[Выделить все]
 
(defun c:Clear_Blocks_of_Attributes ()
	(while (or (= 'VL-CATCH-ALL-APPLY-ERROR (type (setq blocks_pickset (vl-catch-all-apply 'ssget (list (list (cons 0 "INSERT")))))))
			   (null blocks_pickset)
		   )
	)
	(setq blocks_pickset_index 0
		  block_processed 0
	)
	(repeat (sslength blocks_pickset)
  		(setq block_inspected (vlax-ename->vla-object (ssname blocks_pickset blocks_pickset_index)))
  		(if (and (= (vla-get-HasAttributes block_inspected) :vlax-true)
  			 (/= 'VL-CATCH-ALL-APPLY-ERROR (type (vl-catch-all-apply 'vlax-safearray->list (list (vlax-variant-value (vla-getattributes block_inspected))))))
  			)
  			  (progn
  				    (setq All_Attributes_List (vlax-safearray->list (vlax-variant-value (vla-GetAttributes block_inspected))))
  				    (foreach attribite_object All_Attributes_List (vla-delete attribite_object) (vlax-release-object attribite_object))
					(setq block_processed (1+ block_processed))
  			  )
  		)
		(setq blocks_pickset_index (1+ blocks_pickset_index))
	)
	(princ (strcat "\n" (itoa block_processed) "\ Blocks Have Been Cleared of Attributes."))
	(princ)
)

Вложения
Тип файла: dwg
DWG 2013
Проблемные блоки acad2014_Блоки Без Атрибутов.dwg (504.9 Кб, 3 просмотров)

Последний раз редактировалось koMon, 29.12.2017 в 11:29.
koMon вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 16:15
#10
Кулик Алексей aka kpblc
Moderator

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


koMon, у меня сейчас нет возможности скачать и посмореть файл. Тем не менее, попробуй сделать следующее:
1. Создаешь блок с атрибутом. Атрибут нормальный, видимый и т.п. Значение по умолчанию, например, "12"
2. Вставка блока (пару-тройку раз). Значение атрибута устанавливаешь в пустую строку.
3. Зайти в редактор блоков. Удалить определение атрибута.
4. Попытаться исправить сложившуюся ситуацию.

P.S. Насколько я помню, у Alasher'a был код, "добавляющий" атрибуты ко вхождению блока. Может быть, аналогичным образом можно их и удалять - не знаю.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 17:43
#11
koMon


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


Алексей, что ты имеешь в виду под "попытаться исправить сложившуюся ситуацию"? Я сделал 1-3. Прикольные получились блоки со стелс атрибутами))) Если речь идёт об удалении таких атрибутов, то #9 их удаляет, но в текущей сессии у блока сохраняется свойство hasattributes. установленное в true. После сохранения файла и его следующего открытия всё становится так, как надо: блоки становятя безатрибутными. Но вот если к примеру в такой файл вставить нетронутый блок, с его прежними атрибутами и позволить акаду обновить все его вхождения, то получим [по крайней мере у меня это случилось] ещё прикольнее ситуацию: блоки с имеющимися определениями атрибутов, но без наличия последних. Как-то что-то у них в автодеске с атрибутами не доделалось, имхо.

Последнее лечится однако очень легко редактированием определения блока, а именно удалением определений атрибутов. Но тем не менее…

Последний раз редактировалось koMon, 28.12.2017 в 17:52.
koMon вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 19:12
#12
Кулик Алексей aka kpblc
Moderator

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


К сожалению, если удалить все определения атрибутов, то не будут удаляться вхождения соответствующих атрибутов.
Другой вопрос, что есть вариант вынести блок с таким же именем и нормальными настройками на палитру, потом открыл этот "больной" файл, правый клик на блоке, "Переопределить".
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.12.2017, 22:57
#13
koMon


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


Я понял идею, но она как-то отличается от того, чего хотел Полянка. Надо подумать.
koMon вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.12.2017, 07:29
#14
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 15,514


Полянка, выделить все блоки с одинаковым именем и в свойствах проставить пробелы в заполнении атрибутов.
Или отключить отображение атрибутов
_ATTDISP
Хмурый вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.12.2017, 10:22
#15
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 952


Такой вариант:
- заходим в редактор блоков, создаем атрибут постоянный скрытый с фиксированным положением.
- выходим, синхронизируем (_.attsync)
- теперь снаружи атрибутов не видно
- заходим в редактор блоков, удаляем наш атрибут
- теперь и внутри атрибутов не видно
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.12.2017, 18:07
#16
Oleg T


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


Я в таких случаях просто меняю одно на другое с помощью простейшего лиспа. Вроде в ExpressTools что-то есть, но пользуюсь своим. Корявый-нет, работает ).
Код:
[Выделить все]
 
;Замена блока (и пр) другим по выбору на чертеже
;-------------------------------------------------------
(defun c:change_objekt ()
	(setq v_repl_1 (getstring "\nУдалить объекты - Enter, оставить - 1"))
	(while
		(setq pr_1 (car (entsel "\n Выберите исходный объект")))
		(setq pr_1_ (cdr (assoc '0 (entget pr_1))))
		(setq t_2 (cdr (assoc '10 (entget pr_1))))
		(prompt "\n Выберите объекты, которые планируете заменить")
		(setq nab (ssget))
		(setq kol (sslength nab))
		(setq nab1 (ssadd))
		(setq n -1)
		(repeat kol
			(setq n (+ n 1))
			(setq pr_i (ssname nab n))
			(setq t_1 (cdr (assoc '10 (entget pr_i))))
			(setq lr_1 (assoc '8 (entget pr_i)))
			(setq ang_1 (assoc '50 (entget pr_i)))
			(command "_copy" pr_1 "" t_2 t_1)
			(setq lr_ (assoc '8 (entget (entlast))))
			(setq ang_ (assoc '50 (entget (entlast))))
			(setq pr_ (subst lr_1 lr_ pr_))
			(entmod pr_)
			(setq pr_ (subst ang_1 ang_ pr_))
			(entmod pr_)
			(ssadd pr_i nab1)
		)
	(if (= v_repl_1 "") (command "_erase" nab1 ""))
	)
)
Вложения
Тип файла: dwg
DWG 2013
Проблемные блоки acad2014.dwg (480.0 Кб, 2 просмотров)

Последний раз редактировалось Oleg T, 29.12.2017 в 18:38.
Oleg T вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как избавиться от атрибутов блока, если "Управление атрибутами" их не видит?

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки [2] Кулик Алексей aka kpblc AutoCAD 4027 20.05.2018 11:34
Как задать ПСК на основе 3D-грани, если 3D-тело входит в состав блока? Deglator AutoCAD 2 22.05.2017 18:05
Как избавиться от проблемы "конфликт имени блока в рабочем наборе" при вставке нескольких идеинтичных блоков в другой блок? igor130566 AutoCAD 9 02.06.2011 11:25
Баг: сбрасывается аннотативность атрибутов блока + атрибуты не отображаются во вхождениях блока hwd Баги и пожелания в Autodesk 0 15.11.2009 14:55
Как изменить свойства атрибутов блока ALFMario AutoCAD 15 25.01.2008 00:42

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