| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.08.2016, 21:08 | #1 | |
Редактирование атрибута дин. блока по двойному нажатию мышью.
ГИП
Регистрация: 07.06.2015
Сообщений: 1,254
|
||
Просмотров: 9556
|
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Спасибо! Работает.
На тот случай, если а) под точкой идёт примечание, чем она является. Например, "Т. 1/Врезка в существующую сеть". б) если у одной и той же точки есть два обозначения. Например, когда наш колодец также относится к другой сети: "Л-1/К-86.5-1". Я пока что до этих точек не дошёл. Но вроде бы такой многострочный текст должен экспортироваться в таблицу без проблем. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Сначала мне этот способ тоже понравился, но на некоторых блоках, где есть атрибуты в других наборах параметра видимости частенько вылезает не тот атрибут, на который "контрольно даблкликнул", а другой, скрытый в данном состоянии видимости; после этого вылезший атрибут больше не пропадает - приходится отменять сделанное. Глюк, в общем, какой-то. Кто знает из-за чего он и как победить - буду признателен за рассказ.
Я нашел другое решение. В адаптации (_CUI) в операциях при двукратном нажатии на атрибут динамического блока ставим макрос (не для LT): Код:
И вдогонку: если не нравится штатный редактор атрибутов (а он, мягко говоря, слегка кастрирован - уж не знаю, зачем), назначаем переменной ATTIPE значение 1 и работаем в удобном и привычном редакторе м-текста. |
|||
|
||||
Геодезист Регистрация: 23.05.2012
Ухта
Сообщений: 1,374
|
А как быть, если нужно удалить какой-нибудь атрибут?
__________________
Как-то так. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не понятен вопрос. Разве его можно как-то удалить при помощи стандартного варианта редактирования атрибутов? Я имею в виду операцию при двукратном нажатии по умолчанию. Насколько я понимаю, удалить атрибут надо войдя в редактор блока. Или речь не об этом?
|
|||
|
||||
Геодезист Регистрация: 23.05.2012
Ухта
Сообщений: 1,374
|
Я пытался прикрутить Ваш макрос для редактирования атрибутов блока при двукратном нажатии в чертеже. По-умолчанию, появляется окно стандартного редактора (скрин 1). Иногда, некоторые атрибуты необходимо удалить. В этом случае удаление происходит безболезненно. А при использовании макроса удалить значение атрибута невозможно, хотя на мой взгляд, работать с ним удобнее.
__________________
Как-то так. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Теперь понял - удалить значение атрибута (содержимое). Действительно, при попытке стереть текст в редакторе м-текста и выходе из него содержимое восстанавливается. Один из вариантов - добавить кнопку или сочетание клавиш на вызов стандартного окна редактирования. Я же в таких случаях ставлю просто пробел.
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
skkk (#4), можно попробовать команду, про которую мало кто помнит, Называлась она TEDIT и принадлежала к экспрессам старых автокадов, а затем исчезла.
Я ее лисп все время тащил в каждую новую версию ибо она работает несколько по-другому чем стандартная команда DDEDIT редактирования текста. Затем в 2016 имя TEXTEDIT появилось в основном автокаде заменив имя сущ. команды DDEDIT, ничего не изменив по сути. Экспрессовский лисп перестал работать. Выкладываю подправленный лисп. Попробуй для своей задачи Вот этот лисп Он покажет все атрибуты блока, насчет невидимых не проверял, попробуй. Кстати, не проверял лисп на версиях старше 2016. Если не сработает, надо разыскать (поиском по форуму) старую версию TEDIT Код:
Последний раз редактировалось Vova, 23.08.2017 в 20:46. Причина: в 2016 имя TEDIT (CHANGED TO TEXTEDIT) появилось в основном автокаде.... |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Да, attedit и tedit выдают одинаковое диал. окно, оно называется Edit attributes. Разница в том, что первая выдает диал окно сразу после клика на блок а вторая позволяет заселектировать много блоков (и текстов) последовательно и редактирование начинается после нажатия Enter. Диал. окна появляются в той же последовательности в которой проходило селектирование, что весьма удобно. Но это не столько важно для твоей задачи как то что если у блока неск. атрибутов, то в окне они видны все (про скрытые параметром видимости я не проверял)
Команда DDEDIT (в автокадах до 2016) и Textedit (от 2016) выдает окно Enhanced Attribute Editor, более сложное и менее удобное для твоей, как мне кажется, задачи (если я ее правильно понял) |
|||
|
||||
Геодезист Регистрация: 23.05.2012
Ухта
Сообщений: 1,374
|
Offtop: Vova, в последнее время не часто можно видеть Вас на форуме. Пользуясь случаем, хочу сказать Вам спасибо за Вашу книгу. Уже больше десятка лет она у меня настольная.
И не в качестве "мебели", а именно востребованной справочной литературы, которая очень "упростила мне жизнь"! В сочетании с "Секретами... Д.Эббота
__________________
Как-то так. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Набросал "макролиспик" (можно оформить в лисп-команду или просто в строке макросов вбить), который можно закрепить за операцией при двукратном нажатии на атрибут блока (и атрибут динамического блока): Код:
Вместо этого окна можно реализовать, например, открытие блока в редакторе блоков. Или его расчленение |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Поставил это лисп-выражение в макрос, и ничего не получилось: сначала после однократного клика на атрибут он подсветился синим (то есть готов для редактирования). Затем при всех других попытках однократного и двойного клика как по атрибуту так и по блоку но мимо атрибута выдается диал. окно. Иногда все-таки подсвечивается синим но чаще диал окно...
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Vova,
1. Макрос вбили в операцию при двукратном нажатии на атрибут блока или на атрибут дин.блока? 2. Нажимаете двойной клик с зажатым Ctrl? Надо без него. А синим атрибут подсвечивается при одном клике с Ctrl вроде? Я проверял на 2011-м. Позже смогу проверить на 2015-м. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Я не понимаю выражения "Макрос вбили в операцию..."
Я создал команду с данным выражением на палете. Что не так? У Sertor в ролике данное выражение работает точно также как здесь |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Вот это и не так.
Смысл всего в том, чтобы данный макрос (точнее, в нашем случае макро-лисп) вызывался при двойном клике на блоке. И в зависимости от того, где именно на блоке был произведен даблклик, последуют разные события: если на атрибуте, то этот атрибут откроется в текстовом редакторе, а если на линии внутри блока или круге, то откроется окно редактирования всех атрибутов. Этот макро-лисп не рассчитан на вызов из палитры, поскольку при двойном клике происходит считывание координат курсора и анализ подобъекта блока, который находится в момент клика под курсором. В _CUI есть пункт "Операции при двукратном нажатии" ("Double Click Actions"), там из списка надо выбрать "Атрибут блока" (боюсь ошибиться в точном английском написании), раскрыть его и выбрать подпункт. Справа среди прочих появится окно для ввода макроса. Туда и вставляем это выражение. Уж и не припомню сейчас, почему я решил выложить это выражение в виде макроса, то ли потому что тут Vova и я машинально подался к макросам, то ли потому что первые более простые предложенные мной решения были в виде макросов, то ли не хотелось возиться с локализацией переменных, но посмотрев видео sertor'а и увидев столько шума в командной строке, я решил исправиться и оформить всё это дело в функцию: Код:
Код:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Что касается функции лиспа (н-р 19) то как ее использовать? Получается, даблклик не дает возможность использовать окно EATTEDIT, необходимое для большинства стандартных работ в автокаде. Для его вызова теперь надо вызывать команду _eattedit (например, из меню на правой кнопке). Поэтому работа с даблкликом является полезной только для тех кто чаще всего редактирует только текст атрибутов, а не размеры или цвет, стиль и др., заложенное в EATTEDIT. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Нужно обеспечить загрузку лиспа (лучше автозагрузку), в макросе на даблклик прописать У меня получилось: в лиспе из #19 я всего лишь заменил ATTEDIT на EATTEDIT (см. гифку) |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Все получилось, спасибо SKKKK. Offtop: Я задал глупый вопрос в #20 – где применить функцию лиспа? Ведь я так и сделал как ты впоследствии сказал (поставить в автозагрузку). А вышло следущее: в твоем #19 нет возможности «выделить все», зато есть 4 кнопки и среди них «copy to clipboard”. Так вот, она у меня не сработала. Clipboard вместо текста лиспа упорно выдавал предыдущее сохранение. Текст в окне твоей функции не выделялся (Ctrl+A), а только все страница форума целиком. Пришлось скопировать всю страницу в ворд и сделать там вычленение лиспа. Его я и загрузил в файл чертежа, где делал пробы. И – ничего не получилось. Как я потом обнаружил, в лисп скопировалась и нумерация строк, что сделало его неработоспособным. После удаление ненужных цифр все заработало.
Еще раз спасибо. В чистом автокаде дабл клик работает, вместе с клавишей Ctrl позволяя редактировать атрибут In place, без вызова диал. oкна EATTEDIT. Похоже, не работает только в вертикальных приложениях. SKKKK исправил это в данной теме интересным способом, раздвоив давл клик между атрибутом и геометрией блока: получаешь либо редактирование конкретного атрибута на месте, либо текстовой редактор всех атрибутов блока. Нельзя ли развить эту идею след. образом: с прижатым Ctrl двойной клик по атрибуту выдает редактирование на месте, без Ctrl вызывается редактор EATTEDIT, (точно как в чистом автокаде) и плюс к этому двойной клик по геометрии блока что-бы выдавал редактор текста всех блоков, как это происходит у тебя сейчас ---------------------------------------------------- Цитата:
Я задержался с ответом потому что хотел сначала закончить тему и еще раз убедился что популярность автокада на форуме снизилась: раньше тема заинтересовала вы гораздо больше участников |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Vova, к сожалению, в лиспе нет обработки нажатия Ctrl, есть только Shift (экспрессовская функция acet-sys-shift-down). С шифтом же ничего не выйдет, поскольку если он зажат, то происходит сброс выделения объектов и функция не сработает. Может, у кого есть или кто-то знает, где взять или как написать подобную функцию, допустим, на .NET, которая могла бы вызываться из-под лиспа и возвращала бы T, если Ctrl нажат и nil, если нет. Интуитивно чувствую, что подобная функция будет несложной в реализации, но у самого руки до нового языка пока не дошли. Я тоже был бы благодарен за такую функцию, поскольку уже знаю ей несколько других применений.
|
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
Цитата:
Где-то на форуме проскакивала мысль, что редактор блоков автокада криво отрабатывает копипаст. Т. е. все объекты в нём должны быть отрисованы "с нуля", а не через копирование-вставку, и атрибуты в том числе. Но это же нерационально! И не факт, что проблема касается только атрибутов, которые создавались в редакторе путём копирования и изменения ранее созданных атрибутов. Кто-нибудь ещё сталкивался с подобным? В чём может быть причина? |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
Похоже, дело действительно в полях. Коллега взял динамический блок основной надписи, в котором не было параметра видимости, а все атрибуты были обычными (одно- и многострочными). Вставил в атрибут поле с формулой - и при его редактировании с зажатой клавишей Ctrl курсор перескакивал на другие атрибуты с незаполненными значениями.
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,225
|
Цитата:
Последний раз редактировалось VitalyAF, 22.03.2023 в 06:25. |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
А зачем тогда атрибуты нужны?
просто текстом в самом блоке
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
Цитата:
Конечно. Только у нас народ подшивками практически не пользуется, по разным причинам. Может, 2-3 человека, и то изредка. Поля у нас ссылаются на свойства самого чертежа (пока это, правда, в стадии тестирования). Над одним разделом иногда могут работать несколько исполнителей. Иногда возникает необходимость объединить несколько dwg-файлов в один (не спрашивайте, почему). На этот случай, например, есть пользовательские свойства Разработал1, Разработал2 и т. д. Исполнители заранее договариваются, кто под каким номером. И вот кто-нибудь редактирует поле в атрибуте с фамилией, чтобы переназначить его на другое пользовательское свойство, и по привычке делает это с зажатой клавишей Ctrl. Получает глюк. Не знаю, понятно ли описал. |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
Пусть использует ПКМ, тогда норм срабатывает
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
Цитата:
Странно, а у меня работает почему-то 1 - зажать Ctrl, выбрать атрибут, сделать с ним всякое 2 - ПКМ, выбрать атрибут, сделать с ним всякое 3 - повторять пока не надоест
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
ну так выйти без изменений, а далее ПКМ
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
вроде понятно написал, с Ctrl, только первый раз, в последующем ПКМ (или повтор последней команды, если кнопа мыши не настроена)
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,830
|
Цитата:
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выключение редактирование атрибута блока | ArtyLight | AutoCAD | 10 | 16.10.2019 15:28 |
Запрет на редактирование значения атрибута в составе вхождения блока | hwd | AutoCAD | 10 | 26.01.2016 12:02 |
Lisp. авто-нумерация атрибута блока. | DonJad | LISP | 10 | 26.10.2014 02:04 |
Присвоение атрибуту блока значения атрибута другого блока. | shartal | Программирование | 4 | 14.11.2013 14:02 |
Непонятное поведение многострочного атрибута блока | Нитонисе | AutoCAD | 2 | 11.09.2010 17:35 |