|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
07.01.2015, 22:12 | #1 | |
Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?
Самозанятый КМ+КМД
Раменское
Регистрация: 09.09.2004
Сообщений: 1,852
|
||
Просмотров: 9094
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Думаю, только программно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
на Lispе?
В нижнем правом углу есть кнопки, которые меняют свой вид.. и в Архитектурном автокаде, есть кнопка, которая мне нужна. Как называет программа чтобы сделать такую кнопку? Можно ли перенести её из Архитектурного автокада? Или где они там вообще хранятся? На сколько всё сложно? День работы, два дня? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Совсем необязательно.
Вот такое на лиспе вряд ли удастся реализовать. Ну так и используй его, кто мешает? Вряд ли. В любом случае, получается, что ты ошибся с разделом. Тебе в "Поиск исполнителей" надо.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Нашел приложение http://www.jtbworld.com/osnapzbg.htm
не понятно, как эти кнопки должны появиться и где?.. вот сижу разбираюсь. Если исполнителя искать, то нужно хотя бы примерно знать, что нужно. Эта кнопка хранится в ARX файлах архитектурного автокада? Последний раз редактировалось Колян, 08.01.2015 в 00:55. |
|||
|
||||
К сведению кнопки лиспом меняли еще здесь
Возможно ли ЛИСПом посадить иконку на кнопку Как ЛИСПом поменять цвет текста нажатием кнопки мышки PS Раз там Малявка разобралась, может и не придется идти в "Поиск исполнителей"
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 08.01.2015 в 17:53. |
||||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Здесь кнопка меняется при нажатие на неё, а у меня задача, менять кнопку в зависимости от значения переменной.
Понятно, что можно менять кнопку, если применить такую команду, которая сразу будет менять значение переменной и картинку кнопки. (только я не знаю как это сделать) Я порылся в программе osnapzbg, она действительно работает, есть возможность менять цвет фона, или цвет закладки, цвет перекрестия. Протестирую, а потом запишу видео, на эту тему. Пока работает удобно! |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Колян, кажется, я знаю, как это сделать. Расскажи, какая нужна переменная и предоставь иконки на эту кнопку. И еще надо понять: по нажатию этой кнопки нужно переменную менять или кнопка нужна только для индикации. Зависит еще от того, сколько возможных значений у этой переменной. В общем, продумай хорошенько все нюансы и опиши подробней. Я постараюсь состряпать код по мере возможности. На лиспе. Если это еще актуально.
|
|||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Программа эта работает и меняет цвет курсора, но работает она с маленькими глюками: меняет вид курсора, убирает эскизы курсоров из настроек.
Плюс к этому она меняет цвет слова Model, что оказалось удобней цвета курсора. Поэтому я попросил бы сделать такую команду, которую можно было повесить на кнопку, которая бы при изменение переменной osnapz на 0 меняла бы цвет слова Model на красный, а при osnapz = 1 на черный (при этом эта кнопка бы меняла бы и переменную с 0 на 1, или с 1 на 0). Просто команда, может быть маленький лисп, иначе люди не поймут, что и к чему. вот скрипт, чтобы нажимая на кнопку переключалось с 0 на 1 или с 1 на 0 osnapz $M=$(-,1,$(getvar,osnapz)) Последний раз редактировалось Колян, 21.01.2015 в 20:51. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Слово "Model" на вкладке, как и названия всех листов, всегда принимают цвет, равный цвету курсора. Можно убедиться в этом, если поменять цвет курсора в настройках. Поэтому черный цвет будет означать такой же и у перекрестья, как оно (гипотетически) тогда будет видно на черном же фоне? Фактически же при черном цвете фона не получится поставить черный курсор, разве только темно-серый, но можно глаза сломать.
А в остальном проблем быть не должно. Попробую что-нибудь сделать по мере возможности. Цитата:
|
|||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Я записал видео, на тему чего я хочу ))
http://youtu.be/u-JYUzATjn4 |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Все что я сделал - это слегка доработал код VVA, по указанной им выше ссылке. Во вложении комплект необходимых файлов и инструкция, подправленная под данный случай. Кнопки - оставил те же: красный крестик и зеленая галочка, по-моему красивее скучных 1 и 0. Но можно их вставить туда любые, поменяв им имена на On.bmp (1) и Off.bmp (2), или исправить имена в коде. Последний раз редактировалось skkkk, 22.01.2015 в 17:46. |
|||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
skkkk,
1.если нажимать несколько раз на кнопку- не переключается. Но если раз нажал на кнопку, а потом выбрал например _line, то после такой манипуляции- кнопка уже переключается. если еще раз нажать кнопку- опять не срабатывает. 2. Кроме того, в readme есть Цитата:
__________________
Kiev, Ukraine Последний раз редактировалось sasha_lif, 22.01.2015 в 17:23. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Впрочем, я догадываюсь, что дело может быть в том глюке, который делает цвет слова "Модель" на вкладке черным. Тестируя сейчас, обнаружил, что черным становится не только это слово, но и рамка выбора. Поэтому изменил на белый. Правда, затер случайно комментарий. Однако в коде одна единственная цифра "0" В общем, в #12 перезалил архив. |
|||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
skkkk,
такое впечатление, что где-то лишний раз вызывается команда за ОДНО нажатие дает Цитата:
Вначале на тулбар иконку какую присваивать- on или off? А подскажите ,что нужно поменять, чтобы наооборот, при osnapz 0- все было стандартным белым,а при osnapz=1- красным так привычней работать
__________________
Kiev, Ukraine Последний раз редактировалось sasha_lif, 22.01.2015 в 18:06. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
На 2012 было тоже самое, когда пробовал исходный вариант с caduser. Кнопка обновляла внешний вид только после выполнения какого-то действия по рисованию.
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не важно. Можно вообще никакую не вешать, лисп сам разберется потом, что к чему
Тут важнее другое: пока не нажмешь кнопку во вновь открытом файле, не факт, что она будет показывать правильную информацию. Выхода тут два: либо подключать реактор, что не очень охота для такой пустячковой задачи, либо прописать каждому юзеру некую строку в файле acaddoc20ХХ.lsp, но у Коляна аллергия на все, что сложнее обычной загрузки лиспа . Если будет интерес, смогу эту строчку соорудить. А пока я сделал у себя так: вообще в адаптации картинку на кнопку не вешал. При открытии файла на этой кнопке у меня вопросик. При первом нажатии все встает на свои места - переменная включается, появляется зеленая галочка. Цитата:
Код:
Код:
Последний раз редактировалось skkkk, 22.01.2015 в 18:31. |
|||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
skkkk, спасибо, да, я в acaddoc20ХХ.lsp,допишу
(Command "OSNAPZ" "0") У вас не глючит, если несколько раз вподряд нажимать на кнопку, как я писал в №14? У меня такое впечатление что гд-то лишний раз ENTER в лиспе срабатывает. Проверьте код Например, если я открою второй документ, тут же закрою его, и в первом нажму на вашу кнопку, то сработает команда open и ваш лисп
__________________
Kiev, Ukraine |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
В справке пишут, что значение OSNAPZ не сохраняется, и начальное значение 0. Поэтому я и выбрал такой путь, не ставить иконку вручную, а доверил все лиспу, он в любом случае ее включает при первом нажатии.
Нужно бы, чтоб кнопка менялась и при изменении этой переменной вручную, через комстроку. А это только через реактор. Подумайте, если вам это будет нужно, сделать это несложно. Тестируйте пока так, может, еще какие будут замечания. ----- добавлено через ~4 мин. ----- sasha_lif, у меня работает четко. Команды в лиспе не задействованы, поэтому энтер там нажимать нечему. По идее. А там кто знает... Может, это что-то из уже загруженных лиспов конфликтует? Есть лиспы в автозагрузке? А с реакторами? Может, попробовать выгрузить всё для чистоты эксперимента? Последний раз редактировалось skkkk, 23.01.2015 в 00:46. |
|||
|
||||
Вполне возможно, что в макросе на кнопку затесался лишний пробел
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Пробовал на 2015 автокаде и не работает
Почти всё работает.. можно ли перенести панель из "панели" на "панель быстрого доступа" ? и убрать изменения цветов, т.к. они не работают на 2015 автокаде Последний раз редактировалось Колян, 25.02.2015 в 13:55. |
|||
|
||||
Самозанятый КМ+КМД Регистрация: 09.09.2004
Раменское
Сообщений: 1,852
|
Путем долгих мучений родилось две идеи
1. Менять цвет фона в зависимости от привязки 2д или 3д. Не реализовано. Есть проблема в том, что цвет фона есть в 2д виде и 3д виде и это разные переменные. 2. Менять цвет курсора в зависимости от привязки 2д и 3д. Частично реализовано. Есть проблема в том, что цвет курсора в 2д и 3д виде это разные переменные. При этом в 3д виде нужно убрать галочку "оттенок X,Y,Z" 3. Уже реализованный вариант изменение иконки кнопки. Хорошо бы сделать ее изменение (иконки) даже в случае изменения переменной osnapz через переменную osnapz. Реализован только в части кнопки на панели меню, не реализовано в быстрой панели (в самом верху) и ленте. Скриншоты на тему цвета курсора, тоже и по цвету фона. Последний раз редактировалось Колян, 04.03.2015 в 19:16. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Несколько доработал программу. Теперь вместе с фоном чертежа меняется и цвет фона командной строки, а вместе с курсором меняется цвет текста командной строки.
Программа ведет себя следующим образом (нужно заменить файл OSNAPZ-OnOff.lsp на новый): 1. Принцип создания кнопки на панелях остается таким же, как в предыдущей версии: пользователь создает самостоятельно пустую кнопку в нужном меню с нужным именем, затем прописывает имена "в теле" лисп-файла. Кнопки могут располагаться: а) на обычной панели инструментов (реализовано); б) на "быстрой" панели инструментов; (скорее всего нереализуемо в LISP) в) в ленте. (скорее всего также нереализуемо в LISP) 2. Для изменения набора цветов фона и перекрестья в той или иной конфигурации пользователь выясняет номер цвета в Автокаде и вписывает его значение "в тело" файла *.lsp в соответствующие места, отмеченные комментариями, примерно в таком виде Код:
3. При открытии Автокада, а также при открытии нового окна (нового сеанса), кнопке на панели присваивается иконка "Off". Все цвета приводятся в соответствие режиму OSNAPZ-off, какими бы они не были до предудыщего закрытия Автокада. Это обусловлено тем, что значение OSNAPZ по умолчанию при открытии любого чертежа равно 0. 4. При открытии другого файла в этом сеансе значение переменной OSNAPZ наследуется из последнего открытого файла в текущем сеансе (это также "встроенное" поведение Автокада). Все цвета приводятся в соответствие с режимом. 5. При нажатии на кнопку: а) переменная OSNAPZ меняет значение на противоположное (реализовано), б) меняется цвет курсора на значение, установленное "в теле" лисп-файла (реализовано, только для 2D, для 3D в LISP не реализуемо); в) меняется цвет фона на значение, установленное "в теле" лисп-файла (реализовано 2D+3D-видов); г) меняется иконка на панели (если существует). 6. При вводе переменной OSNAPZ с клавиатуры пункты 4б, 4в, 4г выполняются автоматически. Вот код: Код:
Пока остается непонятным две вещи: 1. Можно ли все-таки как-то из лиспа добраться до программной настройки кнопок на ленте и в меню быстрого доступа? Или все же, учитывая, что лента (и вроде быстрое меню тоже) появилась в 2009-й версии, а лисп с тех пор, насколько я знаю, подвергся изменениям только в части command - command-s. Или я ошибаюсь? 2. Из лиспа не нашел доступа к цветам курсора и фона в 3D. В ActiveX свойство цвета курсора есть только для модели и листа, а если речь заходит о визуальных стилях, отличных от 2D-каркас, или в видах, отличных от 2D-вида сверху, то эти свойства цвет курсора не меняют. Из того, что удалось найти, цвета можно поменять только сменой профиля, а такой подход мне не нравится. Очень долго это. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка ПОС, искусство проектирования | Tyhig | Технология и организация строительства | 117 | 25.11.2021 17:38 |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |