Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?

Ответ
Поиск в этой теме
Непрочитано 07.01.2015, 22:12 #1
Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?
Колян
 
Самозанятый КМ+КМД
 
Раменское
Регистрация: 09.09.2004
Сообщений: 1,852

Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?
Я такое в атокаде не видел, но думаю это можно сделать.. может быть какое-то выпадающее меню как стиль текста или стиль размера?? можно ли это сделать для кнопки (не путать с лентной)?
Просмотров: 9390
 
Непрочитано 07.01.2015, 22:31
#2
Кулик Алексей aka kpblc
Moderator

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


Думаю, только программно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.01.2015, 22:42
#3
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


на Lispе?
В нижнем правом углу есть кнопки, которые меняют свой вид.. и в Архитектурном автокаде, есть кнопка, которая мне нужна.
Как называет программа чтобы сделать такую кнопку?
Можно ли перенести её из Архитектурного автокада? Или где они там вообще хранятся?
На сколько всё сложно? День работы, два дня?
Миниатюры
Нажмите на изображение для увеличения
Название: AutoCAD Architecture 2010 UI_Contextual_Tabs.JPG
Просмотров: 234
Размер:	139.2 Кб
ID:	141666  
Колян вне форума  
 
Непрочитано 07.01.2015, 22:52
#4
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Колян Посмотреть сообщение
на Lispе?
Совсем необязательно.
Цитата:
Сообщение от Колян Посмотреть сообщение
В нижнем правом углу есть кнопки, которые меняют свой вид..
Вот такое на лиспе вряд ли удастся реализовать.
Цитата:
Сообщение от Колян Посмотреть сообщение
в Архитектурном автокаде, есть кнопка, которая мне нужна.
Ну так и используй его, кто мешает?
Цитата:
Сообщение от Колян Посмотреть сообщение
Можно ли перенести её из Архитектурного автокада?
Вряд ли.
Цитата:
Сообщение от Колян Посмотреть сообщение
На сколько всё сложно? День работы, два дня?
В любом случае, получается, что ты ошибся с разделом. Тебе в "Поиск исполнителей" надо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.01.2015, 23:36
#5
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Нашел приложение http://www.jtbworld.com/osnapzbg.htm
не понятно, как эти кнопки должны появиться и где?.. вот сижу разбираюсь.

Если исполнителя искать, то нужно хотя бы примерно знать, что нужно.

Эта кнопка хранится в ARX файлах архитектурного автокада?

Последний раз редактировалось Колян, 08.01.2015 в 00:55.
Колян вне форума  
 
Непрочитано 08.01.2015, 17:45
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


К сведению кнопки лиспом меняли еще здесь
Возможно ли ЛИСПом посадить иконку на кнопку
Как ЛИСПом поменять цвет текста нажатием кнопки мышки
PS Раз там Малявка разобралась, может и не придется идти в "Поиск исполнителей"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 08.01.2015 в 17:53.
VVA вне форума  
 
Автор темы   Непрочитано 08.01.2015, 19:46
#7
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Цитата:
Сообщение от VVA Посмотреть сообщение
К сведению кнопки лиспом меняли еще здесь
Здесь кнопка меняется при нажатие на неё, а у меня задача, менять кнопку в зависимости от значения переменной.
Понятно, что можно менять кнопку, если применить такую команду, которая сразу будет менять значение переменной и картинку кнопки. (только я не знаю как это сделать)
Я порылся в программе osnapzbg, она действительно работает, есть возможность менять цвет фона, или цвет закладки, цвет перекрестия. Протестирую, а потом запишу видео, на эту тему. Пока работает удобно!
Колян вне форума  
 
Непрочитано 21.01.2015, 08:18
#8
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от Колян Посмотреть сообщение
у меня задача, менять кнопку в зависимости от значения переменной
Колян, кажется, я знаю, как это сделать. Расскажи, какая нужна переменная и предоставь иконки на эту кнопку. И еще надо понять: по нажатию этой кнопки нужно переменную менять или кнопка нужна только для индикации. Зависит еще от того, сколько возможных значений у этой переменной. В общем, продумай хорошенько все нюансы и опиши подробней. Я постараюсь состряпать код по мере возможности. На лиспе. Если это еще актуально.
skkkk вне форума  
 
Автор темы   Непрочитано 21.01.2015, 16:20
#9
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Цитата:
Сообщение от skkkk Посмотреть сообщение
Колян, кажется, я знаю, как это сделать.
Программа эта работает и меняет цвет курсора, но работает она с маленькими глюками: меняет вид курсора, убирает эскизы курсоров из настроек.
Плюс к этому она меняет цвет слова Model, что оказалось удобней цвета курсора.
Поэтому я попросил бы сделать такую команду, которую можно было повесить на кнопку, которая бы при изменение переменной osnapz на 0 меняла бы цвет слова Model на красный, а при osnapz = 1 на черный (при этом эта кнопка бы меняла бы и переменную с 0 на 1, или с 1 на 0).
Просто команда, может быть маленький лисп, иначе люди не поймут, что и к чему.

вот скрипт, чтобы нажимая на кнопку переключалось с 0 на 1 или с 1 на 0
osnapz $M=$(-,1,$(getvar,osnapz))
Миниатюры
Нажмите на изображение для увеличения
Название: osnapz.JPG
Просмотров: 114
Размер:	20.8 Кб
ID:	142304  

Последний раз редактировалось Колян, 21.01.2015 в 20:51.
Колян вне форума  
 
Непрочитано 21.01.2015, 21:23
#10
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Слово "Model" на вкладке, как и названия всех листов, всегда принимают цвет, равный цвету курсора. Можно убедиться в этом, если поменять цвет курсора в настройках. Поэтому черный цвет будет означать такой же и у перекрестья, как оно (гипотетически) тогда будет видно на черном же фоне? Фактически же при черном цвете фона не получится поставить черный курсор, разве только темно-серый, но можно глаза сломать.
А в остальном проблем быть не должно. Попробую что-нибудь сделать по мере возможности.
Цитата:
Сообщение от Колян Посмотреть сообщение
Просто команда, может быть маленький лисп, иначе люди не поймут, что и к чему.
Насколько он должен быть маленьким? Думаю, те, кто захотят, поймут. Но одним, хоть и не очень большим лиспом тут не отделаться. Нужны будут еще иконки и настройка панелей, придется с этим разобраться. Вот, кстати, похожая тема.
skkkk вне форума  
 
Автор темы   Непрочитано 21.01.2015, 23:16
#11
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Я записал видео, на тему чего я хочу ))
http://youtu.be/u-JYUzATjn4
Колян вне форума  
 
Непрочитано 22.01.2015, 02:21
#12
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от Колян Посмотреть сообщение
сделать такую команду, которую можно было повесить на кнопку, которая бы при изменение переменной osnapz на 0 меняла бы цвет слова Model на красный, а при osnapz = 1 на черный (при этом эта кнопка бы меняла бы и переменную с 0 на 1, или с 1 на 0).
Получилось сделать все в точности так. Даже при включении OSNAPZ надпись модель становтся черной (невидимой на черном фоне). Это видимо, глюк, но раз душе угодно... Курсор при этом остается белым.

Все что я сделал - это слегка доработал код VVA, по указанной им выше ссылке.
Во вложении комплект необходимых файлов и инструкция, подправленная под данный случай. Кнопки - оставил те же: красный крестик и зеленая галочка, по-моему красивее скучных 1 и 0. Но можно их вставить туда любые, поменяв им имена на On.bmp (1) и Off.bmp (2), или исправить имена в коде.
Вложения
Тип файла: rar OSNAPZ-OnOff.rar (1.6 Кб, 59 просмотров)

Последний раз редактировалось skkkk, 22.01.2015 в 17:46.
skkkk вне форума  
 
Автор темы   Непрочитано 22.01.2015, 15:19
#13
Колян

Самозанятый КМ+КМД
 
Регистрация: 09.09.2004
Раменское
Сообщений: 1,852


Спасибо! Работает, буду тестировать!
Колян вне форума  
 
Непрочитано 22.01.2015, 17:13
#14
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


skkkk,

1.если нажимать несколько раз на кнопку- не переключается.
Но если раз нажал на кнопку, а потом выбрал например _line, то после такой манипуляции- кнопка уже переключается.
если еще раз нажать кнопку- опять не срабатывает.

2. Кроме того, в readme есть

Цитата:
5. Создать кнопку на этой панели. В приведенном коде она должна быть 1-й. Если это не так, номер нужно заменить.
Фрагмент кода: 0 ;_Номер кнопки, начиная с 0
и поменять число на нужное
а в коде такой строки нет
__________________
Kiev, Ukraine

Последний раз редактировалось sasha_lif, 22.01.2015 в 17:23.
sasha_lif вне форума  
 
Непрочитано 22.01.2015, 17:45
#15
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от sasha_lif Посмотреть сообщение
1.если нажимать несколько раз на кнопку- не переключается.
Но если раз нажал на кнопку, а потом выбрал например _line, то после такой манипуляции- кнопка уже переключается.
если еще раз нажать кнопку- опять не срабатывает.
Тестировал на 2011-м - все замечательно срабатывает хоть сто раз подряд... Странно. Какая версия Автокада? Что при этом пишется в командной строке?
Впрочем, я догадываюсь, что дело может быть в том глюке, который делает цвет слова "Модель" на вкладке черным. Тестируя сейчас, обнаружил, что черным становится не только это слово, но и рамка выбора. Поэтому изменил на белый.
Цитата:
Сообщение от sasha_lif Посмотреть сообщение
а в коде такой строки нет
Правда, затер случайно комментарий. Однако в коде одна единственная цифра "0"
В общем, в #12 перезалил архив.
skkkk вне форума  
 
Непрочитано 22.01.2015, 17:59
#16
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


skkkk,
такое впечатление, что где-то лишний раз вызывается команда

за ОДНО нажатие дает
Цитата:
Command: OSNAPZ-ONOFF

Новое значение OSNAPZ: 0

Command:
Command:
Command:
Command: OSNAPZ-OnOff
Новое значение OSNAPZ: 1
автокад 2013 eng SP2

Вначале на тулбар иконку какую присваивать- on или off?

А подскажите ,что нужно поменять, чтобы наооборот, при osnapz 0- все было стандартным белым,а при osnapz=1- красным так привычней работать
__________________
Kiev, Ukraine

Последний раз редактировалось sasha_lif, 22.01.2015 в 18:06.
sasha_lif вне форума  
 
Непрочитано 22.01.2015, 18:14
#17
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от sasha_lif Посмотреть сообщение
1.если нажимать несколько раз на кнопку- не переключается.
Но если раз нажал на кнопку, а потом выбрал например _line, то после такой манипуляции- кнопка уже переключается.
если еще раз нажать кнопку- опять не срабатывает.
На 2012 было тоже самое, когда пробовал исходный вариант с caduser. Кнопка обновляла внешний вид только после выполнения какого-то действия по рисованию.
Сергей812 вне форума  
 
Непрочитано 22.01.2015, 18:23
#18
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от sasha_lif Посмотреть сообщение
Вначале на тулбар иконку какую присваивать- on или off?
Не важно. Можно вообще никакую не вешать, лисп сам разберется потом, что к чему
Тут важнее другое: пока не нажмешь кнопку во вновь открытом файле, не факт, что она будет показывать правильную информацию. Выхода тут два: либо подключать реактор, что не очень охота для такой пустячковой задачи, либо прописать каждому юзеру некую строку в файле acaddoc20ХХ.lsp, но у Коляна аллергия на все, что сложнее обычной загрузки лиспа . Если будет интерес, смогу эту строчку соорудить. А пока я сделал у себя так: вообще в адаптации картинку на кнопку не вешал. При открытии файла на этой кнопке у меня вопросик. При первом нажатии все встает на свои места - переменная включается, появляется зеленая галочка.
Цитата:
Сообщение от sasha_lif Посмотреть сообщение
что нужно поменять, чтобы наооборот, при osnapz 0- все было стандартным белым,а при osnapz=1- красным
в коде поменять местами строки (для обновленной версии):
Код:
[Выделить все]
(vlax-make-variant 255 19)
и
Код:
[Выделить все]
(vlax-make-variant 16777215 19)
Эти строки я сознательно не комментировал, однако они отвечают за значение присваимого цвета. Если есть желание по другим цветам, проще спросить у меня, чем я объясню всю теорию о том где и что, и главное - на что нужно поменять, чтобы был такой-то цвет.

Последний раз редактировалось skkkk, 22.01.2015 в 18:31.
skkkk вне форума  
 
Непрочитано 22.01.2015, 18:30
#19
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


skkkk, спасибо, да, я в acaddoc20ХХ.lsp,допишу
(Command "OSNAPZ" "0")
У вас не глючит, если несколько раз вподряд нажимать на кнопку, как я писал в №14?
У меня такое впечатление что гд-то лишний раз ENTER в лиспе срабатывает. Проверьте код
Например, если я открою второй документ, тут же закрою его, и в первом нажму на вашу кнопку, то сработает команда open и ваш лисп
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 22.01.2015, 19:20
#20
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В справке пишут, что значение OSNAPZ не сохраняется, и начальное значение 0. Поэтому я и выбрал такой путь, не ставить иконку вручную, а доверил все лиспу, он в любом случае ее включает при первом нажатии.
Нужно бы, чтоб кнопка менялась и при изменении этой переменной вручную, через комстроку. А это только через реактор. Подумайте, если вам это будет нужно, сделать это несложно. Тестируйте пока так, может, еще какие будут замечания.

----- добавлено через ~4 мин. -----
sasha_lif, у меня работает четко. Команды в лиспе не задействованы, поэтому энтер там нажимать нечему. По идее. А там кто знает... Может, это что-то из уже загруженных лиспов конфликтует? Есть лиспы в автозагрузке? А с реакторами? Может, попробовать выгрузить всё для чистоты эксперимента?

Последний раз редактировалось skkkk, 23.01.2015 в 00:46.
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать кнопку, чтобы ее иконка менялась в зависимости от значения переменной автокада?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19