|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Получить имя блока, открытого в текущий момент в Block editor'е
Programming, automation, CADs, GISs. "Теплоком"
Россия, Санкт-Петербург
Регистрация: 02.02.2007
Сообщений: 306
|
||
Просмотров: 4242
|
|
||||
|
||||
![]() |
|
||||
Programming, automation, CADs, GISs. "Теплоком" Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306
|
Засада... в 2008-м надо. Может, хоть как-то, хоть через одно место - все-таки можно? Сильно надо...
Хотя, можно написать свое окно с выбором редактируемого блока, и вызывать блок едитор программно... Тогда-то уж точно будет известно, какой блок открыт. Но это крайний вариант
__________________
На LISPе можно мыслить! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Ax3, а что конкретно требуется внутри редактора блоков? Может, есть другие варианты решения?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Programming, automation, CADs, GISs. "Теплоком" Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306
|
Привет, Алексей.
Требуется заполнять/редактировать значения по умолчанию скрытых атрибутов блока, как-то: название блока по ГОСТ, информация об исполнителе, дате исполнения и версии, границах применения и т.п. В принципе это могут быть расширенные данные, но скрытые атрибуты предпочтительней, поскольку пользователь в любой момент может их просмотреть в том же редакторе блоков
__________________
На LISPе можно мыслить! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
А зачем так заморочено-то делать? Ведь получить атрибуты вхождения (равно как и описания) блока не так уж и сложно. Во, как пример:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Ax3, а зачем для редактирования скрытых атрибутов нужно имя блока.
Может я чего не понял, но раз Вы работаете внутри редактора блоков, то можно с помощью entnext перебрать все элементы блока, выбрать нужные (например атрибуты) и делать с ними все что угодно. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
TararykovDG, а с какого примитива начинать "исчисление" entnext?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Алексей, по-моему, если открыт редактор блоков, то entnextом мы переберем только элементы составляющие наш блок, поэтому можно перебрать все элементы и выбрать нужные просто по типу примитива
Пример: (setq obj (entnext)) - первый элемент блока (while obj {тело цикла} (setq obj (entnext obj)) - следующий элемент блока ) Повторюсь, все это, только если работаем в редакторе блоков, на DWG чертеже, естественно не получиться. Поправьте если ошибаюсь |
|||
![]() |
|
||||
Programming, automation, CADs, GISs. "Теплоком" Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306
|
TararykovDG, ты абсолютно прав. Только что проверил - (entnext) перебирает примитивы открытого в block editor'е блока! Спасибо за подсказку. Имя блока, кстати, можно хранить в одном из атрибутов
Алексей, тут понимаешь в чем дело - хотелось избавить пользователя от лишних указаний блоков. Скажем так, чтобы пользователь контекстно в редакторе блоков спокойно вызывал нужные функции
__________________
На LISPе можно мыслить! Последний раз редактировалось Ax3, 23.07.2010 в 10:18. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Вопрос не совсем в тему, но новую из-за него создавать ой как не хочется.
Помогите, пожалуйста, сообразить, как программно (на лиспе) определить, что в данный момент активен редактор блока? Проверял переменные - что в пространстве модели, что в редакторе блоков - ни одна не поменялась. Возникла мысль проверять цвет фона, но что-то свойство GraphicsWinModelBackgrndColor, как и писал Полещук, недоступно для чтения. На этом мои мысли зашли в тупик... |
|||
![]() |
|
||||
skkkk, системная переменная BLOCKEDITOR
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Спасибо, Александр, оказывается я плохо искал, Offtop: хотя думал, что ищу хорошо и грамотно с тех пор, как узнал про команду _SYSVDLG. Сохраняю я, значит, все переменные в текстовый файл в модели, захожу в редактор блока, сохраняю еще раз, сравниваю два файла в Notepad++ - пишет "Полное соответствие". Стало быть readonly-переменные игнорируются и не пишутся в файл. Старый метод (vl-cmdf "_setvar" "?" "*") оказался надежнее. Спасибо еще раз
![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
застревает файл при копировании, в чем дело? | maximas | AutoCAD | 4 | 12.11.2010 10:34 |
Как перенести в чертеж блок из файла библиотеки блоков | Main Urod | Программирование | 8 | 03.02.2010 14:15 |
Перевод имени блока в имя переменной и обратно | Supermax | Программирование | 11 | 14.12.2009 23:26 |
Не могу расчленить объекты! | msuab2004 | AutoCAD | 6 | 24.04.2009 00:17 |
Вариация моделей в SCAD - проблемы с РСУ | UIII | SCAD | 2 | 04.10.2007 13:35 |