|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как добавить атрибуты к уже существующему блоку
Инженер
Регистрация: 21.08.2007
Сообщений: 598
|
||
Просмотров: 18134
|
|
||||
Инженер Регистрация: 21.08.2007
Сообщений: 598
![]() |
Подходит, просто хотелось бы разобраться. Зачем тогда нужна палитра, если она не корректно работает
__________________
Склероз нельзя вылечить, но о нем можно забыть. (Ф. Раневская) |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,194
|
|
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Почему- то я даже не удивлён.
Начинаю привыкать, что в автокаде нет даже элементарных удобств. Хотя казалось бы: выделить на чертеже несколько блоков и одним кликом присвоить им атрибут - довольно часто требуется. Но разработчикам автокад начхать на юзверя. Они развивают свою продукт исходя из каких-то своих, чисто им понятных, соображений |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Присвоить атрибут? Или добавить атрибут к описанию?
Кондратий, ты сначала разберись с определением и вхождениями блока, а потом уже возмущайся.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
или автодеск просто ненавидит своего юзверя и хочет чтобы он помучился редактируя атрибут каждого из нескольких тысяч блоков чертежа ИНДИВИДУАЛЬНО
![]() ----- добавлено через ~2 мин. ----- Цитата:
Для моих задач это монописуально. Мне важно, чтобы "одним кликом" атрибут появился сразу у сотен РАЗНЫХ блоков, которые я выделил на чертеже. Чтобы потом я их мог идентифицировать по этому атрибуту |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
2. Корректные атрибуты могут появиться только у всех вставок определений блоков, полученных из набора выделенных вставок блоков. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
У файла *.dwg есть определенная структура данных - и если нет желания по собственной воле оказаться в ситуации: "Файл не открывается и не восстанавливается" - следует все-таки этой структуры файла придерживаться. Хотя программно можно и извратиться, конечно.
|
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Т.е. добавить атрибут сразу в несколько блоков, которые я выделил на чертеже (причем разных типов, причем добавить не во все блоки данного типа, а только в те, что я выделил), не получится?
|
|||
![]() |
|
||||
Регистрация: 27.12.2011
Сообщений: 1,456
|
Offtop:
Цитата:
Для их удовлетворения а Автокаде существуют языки программирования, причем несколько, на любой вкус. Так что либо изучать, либо исполнителя искать, либо продолжать ручками )). Последний раз редактировалось Oleg T, 23.08.2019 в 07:56. |
|||
![]() |
|
||||
Регистрация: 27.12.2011
Сообщений: 1,456
|
Тем не менее это вполне решаемо и в формате DWG, но только программированием, что сложнее, конечно:
Последний раз редактировалось Oleg T, 23.08.2019 в 08:10. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616
|
Цитата:
Цитата:
У Вас 30 лет стажа на С++, что Вас останавливает то? Не понимаю. |
|||
![]() |
|
||||
Регистрация: 27.12.2011
Сообщений: 1,456
|
Цитата:
Имелось ввиду, что задача добавления атрибутов к нескольким (многим) описаниям блоков одновременно путем выбора объектов из чертежа у нас в конторе давно уже решена. Думаю, здесь мы не одиноки. |
|||
![]() |
|
||||
Регистрация: 27.12.2011
Сообщений: 1,456
|
Насколько я помню, в автокадовских вертикалках (AARCH и пр.) есть возможность присваивать дополнительные данные чему угодно, хоть отрезкам.
Сам когда-то давно немного пользовался. В самом автокаде - нет, конечно (только _editedata, но с этим как-то не подружился). ----- добавлено через ~5 мин. ----- Offtop: Обалдеть. А я тут советую исполнителей искать. ![]() Не будучи программистом, для себя эту проблему на кустарном лиспе (без расширенных функций) решил. Последний раз редактировалось Oleg T, 23.08.2019 в 09:08. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,115
|
Цитата:
а ещё существует проблема их индексирования Последний раз редактировалось trir, 23.08.2019 в 09:59. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Индексирование не однотипных данных в сериализованном (скорее всего) потоке - это тоже дополнительные расходы. Проще, конечно, в XData хранить лишь ссылку на ID строк БД. Но для Т.К. это все без разницы, имхо - если он до сих пор не понимает разницы между определениями блока и его атрибутов, и их вставками. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,115
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
никакого желания "играть в рулетку" на рабочих файлах нет. Тем более Т.К. атрибуты нужны для селекции блоков: Да и тема про 1000 слоев в исполнении Т.К. в принципе сводится к тому же механизму тэгов - и поэтому бессмысленно делать один механизм для блоков, другой для цепей, имхо... Хотя можно цепи-кабели в виде блоков оформлять, но это очень специфичное решение на любителя) |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,194
|
Цитата:
Добавление атрибутов в отдельные экземпляры блока - вообще-то плохое решение, до первого attsync, но путем небольших изменений можно заставить тот лисп работать и таким образом. Последний раз редактировалось kp+, 23.08.2019 в 11:15. |
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Спасибо огромное. Это почти то, что нужно.
Ваш ответ самый полезный из всех, что мне дали в этой теме ![]() Да пофиг. Это хоть что-то, чем ничего. Единственное, что данный скрипт добавляет к выделенным блокам один и тот же прописанный в лиспе атрибут ("PRICE" ) с одним и тем же значением ("338") А как мне добавить атрибут с нужным мне именем и значением? Неужели каждый раз править скрипт? А прямо в команде (add$) нельзя их определять? ----- добавлено через ~7 мин. ----- Т.е. существует ли возможность при вызове LISP-функции задать "аргументы командной строки"? |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,194
|
Там в конце темы был какой-то вариант с текстовым файлом, содержащим список атрибутов, которые надо добавить, но это уже для "промышленного масштаба". А для "разовых" применений - да, getstring.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Осталось изучить азы лиспа и добавить в лисп из п.№17 вместо констант переменные, инициализируемые через getstring из комстроки. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Да легко, в этой же ветке
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Ладно. Поясню.
Блоки у меня в единственном экземпляре как раз из-за того, что есть понятие "определение блока", а есть "вхождение блока" Поэтому пришлось делать так, чтобы вхождений было по одному. А зачем вообще я использовал блоки? Для удобства. Удобно когда ряд графических изображений выступают как единая сущность |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
Как добавить (убрать) к viewport ещё один? | Малюк | AutoCAD | 4 | 13.06.2008 14:48 |
Как добавить в файл чертежа его имя (файла) ? | Shura | AutoCAD | 7 | 02.12.2003 18:03 |