|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
создание собственной подсказки
Регистрация: 15.11.2007
Сообщений: 52
|
||
Просмотров: 19254
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
gool, может достаточно будет использовать гиперссылки?
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 52
|
ksi, спасибо, конечно, за внимание к вопросу, но я не хочу заводить никаких дополнительных файлов, а гиперссылка требует файл. Или я что-то не понимаю? Но без указания файла я описание сохранить не могу. До сих пор не пришлось сталкиваться с гиперссылками, и прежде чем задать вопрос, конечно, открывались и хелпы, и аналогичные темы на форуме, но там уже ссылки на темы недоступны. У меня схема с расчетом токов КЗ. Хочу при наведении на объект показывать токи. Не создавать же для каждого элемента схемы свой файл.
hwd, спасибо, попробую разобраться |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
Цитата:
P.S. Конечно, раз вопрос задан в ветке "Программирование", то hwd дал хороший и правильный ответ, но что мне подсказывает что автор темы не будет разбираться с кодом на C#
__________________
cadtools |
|||
![]() |
|
||||
Цитата:
Только тебе придётся выбирать: "шашечки или ехать"(с)...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да уж по моему все расписали - выбери что нужно быстро или красиво и вперед на танки (если с .Net проблемы можно еще через реакторы\ActiveX отследить изменение выделенного набора и показать свои токи каким-либо образом), но показать "ненавязчиво" в области курсора на лиспе можно только через **пу, то есть по любому для такой "хотелки" что-нибудь "внешнее" подгружать придеться (на кнопочку макросом в 3 строчки не прокатит - без подгрузки тут танцы с бубном такие нужны - что обработка PointMonitor на этом фоне - детский лепет) - стоит-ли игра свечь?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Нет, не всё
![]() ![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
To hwd Offtop: а в чем разница то (я честно говоря по диогонали пробежался), понятно дело что кроме штатной обработки "хандлера" события туда можно еще любых "свистелок-перделок" понавешать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Ссылкой на Волмслея демонстрируется решение задачи средствами самого AutoCAD. Ссылкой на мой блог задача решается средствами WPF. Второй способ, по сути и позволяет с лёгкостью использовать всякие
Цитата:
Offtop: P.S. Смотрю, как-то участились вопросы в ветке "Программирование" непрограммистами, вместо того, чтобы в поисках готового решения задавать эти вопросы в ветке "AutoCAD" или "Поиск исполнителей". Наверное имеет смысл добавить новую ветку форума: "А напишите мне такое..." - думаю, что будет иметь бешеную посещаемость...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я четырмя руками за - ибо действительно иногда немного устаешь от таких тем и по названию темы и открывать нет желания + перед созданием темы в этой ветке БОЛЬШИМИ КРАСНЫМИ БУКВАМИ прописать сто раз уже обсуждаемые "рекомендации" как правильно спрашивать, чтоб потом клещами не вытаскивать - что все-же надо.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 52
|
Ребята, вы, конечно, все очень продвинутые, я исренне перед вами преклоняюсь, нисколько не лукавя, честное слово и без обид. Но не все же такие крутые. Я мало работаю с autocad-ом, и честно говоря, вам гожусь наверное в бабушки и такой легкости как у вас, конечно, нет.
Если что-то не так выразила, ну не специально же. Чем больше знаешь, тем точнее выражаешься. Аналогичная тема была, правда в разделе "Autocad", и, по-моему, воспринималась совершенно нормально, но ссылки, которые там указывались, уже не были доступны и я не смогла просмотреть всю тему. (об этом, вообще-то, изначально и был вопрос). Если обратилась не в тот раздел, ну простите, по неопытности. Я обращаюсь с вопросами очень редко, но ищу нужные темы часто. Читаю часто возмущение по поводу поставленного вопроса. Людей, которые не могут четко поставить вопрос, с сожалению, очень много. И когда их начинают клевать, мне их всегда искренне жаль. Это уже не столько обо мне, а вообщем. Что же им делать? Не жить и не работать? Никто специально не пишет "неправильные" вопросы. А если вы умнее, покажите это. Ну задайте еще уточняющий вопрос, если заинтересовались темой, нет - ну и не отвечайте. А в раздел "программирование" написала, т.к. средствами самого autocada этого не сделать, а на lisp-е пишу понемногу, может, не так красиво, как вы, но работает. Я никогда не просила никого писать за себя программы, боже упаси. Когда доходишь до тупика, иногда достаточно намека, линии поведения, что ли, чтобы сдвинуться дальше. А то, что вы тут советовали убрать галочки в насройках чтобы убрать слова "CTRL+щелчок для перехода по ссылке", я еще пробовала до обращения на форум, только через сист. переменную. Вы ведь и сами знаете, что это скрывает не только слова "CTRL+...", но и само пояснение... Так что, если ввела кого-то в раздражение, простите. Я находила здесь ответы на многие свои вопросы и действительно отношусь с огромным уважением ко всем участникам форума и понимаю, что никто никому ничего не обязан. Поэтому не надо никуда уходить, ну не нравится вопрос, не отвечайте. Еще раз с искренним уважением ваша "бабушка". |
|||
![]() |
|
||||
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Теперь по Вашей теме, вопрос прямой Вы уверенны что Вам оно надо? Напомню, тремя строками лиспа здесь не прокатит, надо будет на каждую машину где это используется устанавливать какой-либо плагин (будете это делать)? + если, как Вы написали, вы хоть немного, но программируете, то должны понимать, что для того чтоб чего-нибудь показало (в Вашем случае подсказки-токи), они должны быть или занесенны по какому-нибудь "стандарту" или соответственно вычеслинны, на основе, например, данных чертежа. Откуда их брать? из аттрибутов, из расширенных данных, из ... ??? Если из аттрибутов - не проще ли их, допустим сделать видимыми, и чем в конце концов гиперссылки не угодили (я не спросил правда какой автокад, но по моему поведение у них во всех версиях схожее - подержал чуток - всплыла подсказка), если нет, то наверно надо еще будет что-то написать, чем их (токи) заносить. Вобщем, если Вам нужна "подсказка" в каком направлении работать - то их "уже есть", если понимаете что "не потянуть" - изложите подробно, что к чему, чтоб не мы из Вас клещами вытягивали, а чтоб информации было достаточно, для помощи Вам-же - уверен на 100% здесь помогут.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
У меня почему-то подозрения, что разговор про ролловеры...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
gool
Чем больше вы тянете резину, тем меньше у вас шансов получить решение. Я вам вопрос задал в предыдущем сообщении. Не будет ответа, не будет мультиков. Я не намерен ожидать ваш ответ целый день. Если у вас версия AutoCAD 2009 или 2013, то считайте что вам повезло - дам вам готовое решение. Ну что, будем и дальше сидеть, молча разглядывая топик?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 52
|
Дима, гиперссылки мне "угодили", я всего то спрашивала, вдруг можно убрать слова "CTRL+ ....". Разве по этому поводу я непонятно выразилась? Ну нельзя, значит нельзя.
Данные все рассчитаны, хранятся в расширенных данных, и просматриваются через окна, и там куча дополнительных данных, и потери напряжения, и сопротивления, и токи, и типы аппаратуры с их параметрами. Но токи - самое важное при анализе схемы. И хотелось бы их видеть быстро. Правда, эти окна я навесила на горячие клавиши, но все равно не очень удобно. Идешь по цепочке по десяткам элементов, каждый раз открывать и закрывать окно. Все начиналось в Delphi. Но это не очень удобно, сами понимаете, чертеж то в autocad-е. Пришлось осваивать autocad. До этого работала в нем довольно поверхностно. И пришлось autocad с delphi связывать, т.к. там достаточно много наработок было. Я не думала, что интересен вопрос, как я храню данные, я вытащу то, что нужно показать, вопрос в том, как показать. Про атрибуты я тоже думала, но отказалась, т.к. в начале рисования схемы их нет, а потом могут налазить на другие элементы схемы. Даже если под эти атрибуты оставлять место, для передачи схемы их нужно отключать, и заказчику будет неясно, зачем тут такие "пустоты"? Да и тогда нужно следить за атрибутами, чтобы те, которые вычисляются, любой не смог изменить. В атрибутах хранятся, например, типы оборудования, номиналы, позиционные обозначения и.т.д. - та информация, которая д.б. на чертеже всегда. Вообщем, спасибо всем. Для анализа схем сойдет пока и гиперссылка, будем закрывать глаза на предложение "перейти по ссылке через...". |
|||
![]() |
|
||||
Цитата:
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Насчёт 2006 не знаю, т.к. не пробовал под него писать на .NET. Те, у кого имеется под рукой AutoCAD 2006, могут попробовать скомпилировать под него этот код. Там же, в мультике демонстрируется принцип работы.
UPD. Смотрите вложенный файл. Откомпилировал под AutoCAD 2006. Распакуйте его у себя на локальной машине. На компьютере обязательно должен быть установлен .Net Framework 2.0. Попробуйте загрузить выложенную мною библиотеку в AutoCAD 2006 командой _NETLOAD и проверьте работоспособность. Пришлось внести в исходный код значительные изменения, т.к. .NET API под AutoCAD 2006 более "ущербный".
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 17.10.2012 в 12:38. |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Ну так добавьте на acad.ActiveDocument.SelectionChanged ... функцию анализирующие pickfirstselectionset (если там в самом событии ничего нет, я не помню уж) и у рисуйте у курсора полупрозрачные окошки.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Дима_, насколько я понял, подсказка нужна не в момент выбора, а в момент "подвода" курсора к примитиву. Так что SelectionChanged тут будет ни к селу, ни к городу. ЯТД.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Offtop: не стал об этом писать ![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Это совершенно не то, о чём спрашивала автор топика:
Цитата:
Ну и чего молчим?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да это я тоже знаю, просто через лисп и активикс (в чем у автора есть какое-то понимание), это надо через голову перепрыгнуть чтоб реализовать без щелчка, а если там уже что-то на дельфях прикрученно, то есть ли смысл автору с 2006 .Net'ом заморачиватся.
з.ы лично для меня щелчок в такой задаче был-бы предпочтительней (но автору конечно видней) з.з.ы тут все меняется т.к. hwd уже и 2006 нашел и переделал, только данные у автора в расширенныз сидят (и не факт что они одинаковые у всех вхождений блока, а т.к. формат автор дружелюбно не выдал - то ему либо самому разруливать, либо опять Андрея просить).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 52
|
hwd, спасибо! библиотеку взяла, но при загрузке выдает:
"Не удалось загрузить сборку. Сведения об ошибке: System.BadImageFormatException: Недопустимый формат файла 'BlockReferencesTooltip.dll'...." Я еще посмотрю. Это первая проба. Дима, это тоже идея. Хоть и не наведение курсора, а при выборе, но это побыстрее, чем у меня сейчас открывать и закрывать окна. Олег! а вашу функцию я попробовала. Все ок. И хотя у меня информация в расширенных данных, это я изменю, без проблем. Самой мне эти идеи в голову не пришли. Зациклилась на подсказках. Ребята, вы супер, я уже писала. |
|||
![]() |
|
||||
Подозреваю, что AutoCAD 2006 использует .Net Framework 1.0 или 1.1, а не версию 2.0. Я не смогу скомпилировать под 1.0 и 1.1, т.к. моя MS Visual Studio 2010 не поддерживает эти устаревшие версии платформы. Да и код нужно будет снова править, т.к. в обозначенных версиях ещё отсутствовали Generics.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Можешь попробовать для .NET Framework 1.1,
здесь нет WPF,только обычное автокадовское окошко Код:
Последний раз редактировалось Олег (jr.), 17.10.2012 в 18:49. Причина: добавлена библиотечная функция |
|||
![]() |
|
||||
Насколько я понял, автор не умеет компилировать код, написанный на .NET и возможно, что даже отсутствует нужная версия IDE MS Visual Studio. Хотя, кто знает...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Цитата:
.NET, это не язык программирования для AutoCAD, вроде AutoLISP. На .NET (вообще-то это группа языков) можно писать не только плагины, но и самостоятельные приложения, в том числе сайты, службы. Т.о. если браться изучать .NET, то нужно быть готовым к тому, что это несколько растянутое по времени занятие. Если усваиваете информацию шустро, то достаточно быстро сможете писать простые вещи. Только нужно сначала определиться, на каком именно .NET языке хотите учиться писать код. Все .NET языки совместимы между собой, т.е. в одном языке свободно можно использовать результат того, что написан на другом. .NET - это платформа, предназначенная для программирования под разные операционные системы (Windows\LINUX\MAC OS). Код "условно" кроссплатформенный. "Условно", потому что есть нюансы, которые следует обходить, чтобы он действительно был кроссплатформенным.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 52
|
Я примерно так и представляла, но вы hwd, все четко выразили. Уж насколько шустро работает голова, наверное, не мне судить, но потому что мне все интересно, поэтому и пишу что-то сама прожив около 6-ти десятков. Нельзя ли с Вами связаться как-то лично по этому вопросу, чтобы не "захламлять" форум ?
|
|||
![]() |
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
|
|||
![]() |
|
||||
2 gomer
что ты знаешь о недостатках Java? Вопрос риторический... Цитата:
Из справочников хорошая литература - Шилдт. Из пошаговой обучающей литературы среди .NET программистов очень ценится Троелсен. Для начала этих книг хватит за глаза.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 17.10.2012 в 17:23. |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
дело не в яве, а в вашей миссионерской позиции насчет нет:
Цитата:
Впрочем это сезонное наверное, был тут товарищь, который на острие курсора хотел меню... или он не меню хотел... |
|||
![]() |
|
||||
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Олег (jr.), там регистрация требуется.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Спасибо, Алексей я забыл, выкладываю здесь:
Код:
Последний раз редактировалось Олег (jr.), 29.10.2012 в 13:30. Причина: форматирование |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Кто знает, можно ли создать свою подсказку динамического ввода, но не в момент интерактивного выбора, (как на лиспе у семейства функций get...), а после завершения команды? Некий отчет о выполнении команды на курсор повесить? Наподобие такой, какая указана на скриншоте. При некотором удалении курсора от первоначальной позиции подсказка пропадает.
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Сейчас не могу себе позволить осваивать NET. Да и это первый случай за 5 лет, когда возможностей лиспа нам не хватило. Мне даже удалось написать аналог ssget со своим приглашением, висящим на курсоре (выложу как допилю), но это, похоже, потолок.
Остается надеяться, что звезды повернуться лицом, и кто-то сможет написать такую прогу на NET. Буду очень признателен. Алгоритм вижу таким: вызываем функцию с аргументом-строкой - и на курсоре висит эта строка до тех пор, пока курсор не переместится примерно на 1/10 экрана. При этом можно вызвать другую команду - тогда подсказка пропадает тоже. Все как в случае на миниатюре в #48. Я заметил, что такая подсказка с восклицательным знаком появляется лишь при некоторых ошибках. Например, при неверно введенной команде или при ошибке печати. Функция *error* сообщение на курсор не вешает. Семейство vl-catch-... - тоже. Значит, похоже, это какой-то обработчик ошибок на NET или С++? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
По-моему, Евгений Елпанов то ли у себя на сайте, то ли на theswamp.org показывал решение задачи "текст на курсоре". Решалось через grread и grvecs, если я не ошибаюсь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Кулик Алексей aka kpblc, видел, и это видел, да не то это все. Это дополнительные подтверждения-клики нужны, чтоб эту подсказку закрыть, да и этот "грвекс" мельтишит как-то, мерцает, работает, только если двигаться и проч. В таком ракурсе ничего не мешает просто выдать подсказку той же getpoint - тот же клик, чтоб закрыть подсказку. Лучший вариант, на мой взгляд, это тот, который я хочу
![]() Я в свое время пропустил здесь все обсуждения динамического ввода, голосования всякие, и не высказался... Как-то я прикидывал, что за рабочий день мышка проектировщика пробегает по экрану порядка трех километров. Из них больше половины - это движение к панелям и обратно, к эпицентру событий. Я приучился к иному методу работы. Все нужные команды я контекстозависимо вывожу в динамическом вводе (выпадающем меню) под курсор. Ну и подсказки, соответственно, тоже удобно видеть в эпицентре. На многокнопочной мышке есть стрелка вниз, а значит - и все опции команд. И стрелка вверх, а значит - и последние команды. Клавиатура - только для ввода текстовых строк и числовых значений. Редко - кнопки или меню. Все бы хорошо, но вот результаты работы команды выводить на курсор не выходит без дополнительных кликов. По мне, так очень полезные шарфики. Иной подход, но применимый, пожалуй, не во всех сферах проектирования. Последний раз редактировалось skkkk, 18.09.2014 в 01:26. |
|||
![]() |
|
||||
Вроде получается довольно красиво:
https://screencast.autodesk.com/main...f-1d741054a77d Под какой автокад надо?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Под 2011 не писал раньше, так что может получиться не так красиво, как на видео
![]() Загружаете нужную DLL с помощью команды NETLOAD. После этого будут доступны две LISP функции: 1. (do$-show-cursor-message text length) text - Текст, который должна отображать подсказка. Строка. length - Длина пути в единицах чертежа, которую должен пройти курсор, чтобы подсказка исчезла. Целое или вещественное число. 2. (do$-stop-show-cursor-message) Принудительное гашение подсказки на всякий случай. Пробуйте.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 18.09.2014 в 17:58. Причина: Подправил библиотеки. |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Не выходит у меня чего-то. Ввожу _netload, загружаю файл х64, в комстроке - ничего. Абсолютно ничего. Вызываю функцию - тоже ничего. Даже сообщения об ошибке. Но если функцию ввести неправильно или аргумент не такой задать, то сообщение об ошибке в комстроке есть. Значит функция грузится, но не работает. Не появляется шарфик. Может переменные?
|
|||
![]() |
|
||||
Цитата:
(do$-show-cursor-message "Привет мир!" 50.0) <- попробуйте число побольше задать, может быть масштаб большой, подсказка исчезает не успев появиться. Очень маловероятно. P.S. Мне, к сожалению, не на чем проверять. Поэтому, могу только гадать ![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Появилась все-таки подсказка, только она появляется при вызове следующей команды, а не сразу при вызове, причем поверх подсказки динамического ввода, поверх даже этого окна браузера. И добросовестно не исчезает, пока по окошку Автокада не отбегаешь заданное число единиц. Я еще от души, 5000 задал
![]() |
|||
![]() |
|
||||
Забавно конечно :-) Но непонятно, почему так. В 2014 очень хорошо работает.
P.S. Установил дома 2011 версию, проверил - все в порядке. Пробуйте менять аргументы и убедитесь, что нормально работает. Длину "пробега" можно вычислять в LISP коде исходя из масштаба чертежа и пр. факторов. Если нужно экстренно завершить показ - пользуйтесь второй функцией. Убрал у окошка функцию "поверх всех окон", немного причесал методы.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 18.09.2014 в 22:45. |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Offtop: Do$, может, на "ты"? Я еще не очень старый
![]() Проверил еще на одном 2011-м - то же самое. У меня выходит как на скринах: подсказка появляется при повторе команды, которая была запущена перед (do$-show-cursor-message "Привет мир! 100) или при начале выбора рамкой. Как только не менял аргументы, все также. ![]() Может, все-таки сверить переменные? Можешь, пожалуйста, сохранить все из 2011-го (или хотя бы из 2014-го) и сюда приложить (команда _sysvdlg)? Я сравню их в блокноте со своими. Да, и спасибо тебе огромное, Do$, в любом случае. Offtop: Буду в Питере - с меня ящик ![]() Последний раз редактировалось skkkk, 19.09.2014 в 00:03. |
|||
![]() |
|
||||
Да, есть такая беда. Окошко появляется не сразу после вызова команды, а только если хотя бы чуть-чуть сдвинуть курсор. В тестах это незаметно, только когда "в боевых условиях" используешь. Решение есть, но имеется некоторая проблема с вычислением положения подсказки, если курсор не двигается. Попробую разобраться с ней.
Точно тебе говорю, переменные тут не при чем ![]() Offtop: Ящика много, можно просто по бутылочке пропустить в рамках AU2014 ![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
В том-то и дело, что не достаточно просто сдвинуть курсор. Нужно вызвать другую команду или начать выбор рамкой. Только тогда оно появляется. А я бы хотел, чтоб оно появлялось у курсора при неактивной команде. Вроде, на твоем видео так и есть. Я не умею делать видеозахват. Какая это прога у тебя делает?
|
|||
![]() |
|
||||
Смотря еще как ты это в LISP прописал...
В общем, получилось добиться корректного поведения благодаря этим ресурсам: http://www.theswamp.org/index.php?topic=43077.0 http://bushman-andrey.blogspot.ru/2012/10/autocad.html Добавил 2 аргумента - отступы от курсора влево и вниз в пикселях: Код:
Цитата:
![]() Я пользуюсь специальным приложением от Autodesk Screencast
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 19.09.2014 в 14:00. |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Да, собственно, в лисп еще не прописывал, а пока просто вбивал в комстроку, но рассчитывал именно по такому принципу прописывать.
Загрузил последнюю сборку. Offtop: Кстати, у меня х64 система, неудобно тебя "заставлять" два файла компилировать, ты уж прости, что сразу не уточнил, ступил. Теперь подсказка появляется сразу, но за курсором не бегает, а начинает бегать только если запустить другую команду или рамку выбора. А по-хорошему, нужно, чтоб при нажатии любой кнопки (мыши, клавиатуры) она исчезала. Почему, интересно, так? Весь мозг сломал, чем могут отличаться два 2011-х Автокада? Или системы? У меня Win7 Ultimate x64. |
|||
![]() |
|
||||
За курсором не бегает? Хм... Надо видео.
Я не компилирую 2 раза, настроил так, что сразу под 3 версии делаются сборки (2011 х86, 2011 х64, 2014 х64). А если те же самые манипуляции делать, что у меня на видео? Так же отрабатывает или нет?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Цитата:
Видео смогу позже только снять ![]() |
|||
![]() |
|
||||
А вот тут уже может быть какая-то переменная... Навскидку не помню, но вроде есть какая-то, которая отслеживание курсора регулирует. У меня AutoCAD 2011 только на домашнем компьютере, так что только вечером смогу потестировать на нем.
Хотя, появилась и другое предположение. В общем, дома буду проверять. Придумал еще интересную фишку - управление расположением подсказки с помощью знаков аргументов отступа. (do$-show-cursor-message "Построена\nлиния" 50.0 20.0 20.0) - вид подсказки '1' (см. рисунок) (do$-show-cursor-message "Построена\nлиния" 50.0 -20.0 20.0) - вид подсказки '2' (do$-show-cursor-message "Построена\nлиния" 50.0 -20.0 -20.0) - вид подсказки '3' (do$-show-cursor-message "Построена\nлиния" 50.0 20.0 -20.0) - вид подсказки '4' Тогда можно будет располагать ее так, чтобы не перекрывать другие полезные окна.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 19.09.2014 в 16:31. |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Так весь смысл в том, чтоб эта подсказка была в тот момент, когда не активна ни одна команда и у курсора ничего нет. В остальных случаях подсказку можно вызвать лиспом всегда: будь-то запрос точки, строки, объекта, объектов и прочего. А то, что она сможет менять положение, это хорошо. Еще бы вывести в аргументы цвет и высоту текста и окна... Было б вообще супер!
|
|||
![]() |
|
||||
Цитата:
https://screencast.autodesk.com/main...1-4651571e3a39 Проблем нет никаких ![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Удалил все из автозапуска, думал, конфликтует что-либо - не помогло. Проверил на одном ноуте, там 2011-й с настройками по умолчанию - работает на ура!!! На том компе, что я пробовал, настройки были импортированы с моего компа. Значит дело в настройках. Или переменных. Сохранил список переменных и там и там, вывел на сравнение в Notepad++. Отличаются порядка 50-ти переменных. Сейчас исключу те, которые знаю, остальные попробую поочередно менять. Пока больше мыслей никаких нет.
Вот и думай потом, как перелезать на NET... С лиспами очень редкий вариант, что не заработает в какой-то другой версии, а тут вон ведь как... ----- добавлено через ~42 мин. ----- Нашел!!! ![]() Эта переменная ROLLOVERTIPS. Я ролловеры отключаю за ненадобностью. Ну не нужны они. Малоинформативные на мой взгляд. Можно перед вызовом ее включать, затем сразу отключать обратно. Здорово! Не, это точно ящик ![]() Просьбы по доработке: 1. Чтоб окошко пропадало при нажатии чего угодно, а не только по факту пройденного пути. Можно конечно, его спрятать за подсказкой динввода, благо оно стало не поверх всех окон. 2. Добавить в аргументы цвет и размер текста и рамки - это если возможно. Спасибо, Do$!!! ----- добавлено через ~43 мин. ----- Пойду спать довольный ![]() |
|||
![]() |
|
||||
skkkk, отличная работа
![]() Очень странно, конечно, что такая "второсортная" настройка влияет на такой важнейший функционал, как отслеживание положения курсора. Надо будет проверить это на последних версиях... По доработке. 1. Событие "нажатие чего угодно" я не смог пока отследить. Как альтернатива - событие запуска команды или таймер. Подойдет? 2. Это, думаю, получится. В общем, попробую в ближайшее время доработать, но не знаю когда, ибо выходные и все такое ![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Я так понял, созданное тобой окошко использует те же методы, что и окошко ролловеров. Цвет у них один. Как оказалось, и переменная одна за них отвечает. Только странно, что при отключенной переменной окошко все равно появляется, только ведет себя неадекватно. В общем, я поснимал в адаптации все галочки на ролловерах, а переменную включил. Теперь все как надо.
|
|||
![]() |
|
||||
Тут такое дело... Решил исследовать обнаруженную проблему. Но у меня фокус с ROLLOVERTIPS не воспроизводится даже в 2011
![]() https://screencast.autodesk.com/main...0-db8136da71c3
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Сравните установленные SP для AutoCAD 2011.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Александр Наумович, это предположение, или Вам известны какие-то проблемы с обновлениями 2011 версии?
![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Это интуиция помноженная на смутное воспоминание об исправленной ошибке в AutoCAD 2011. Кстати, тут неплохо бы уточнить используется ли чистый AutoCAD или вертикалка - это тоже может быть существенным.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Да обычный автокад, не вертикалка. Единственое, я не ручаюсь, что у меня дистрибутив официальный. Был уверен, что официальный можно скачать не позднее 2012 версии, поэтому устанавливал с диска из "старых запасов", на котором было указано "2011SP2RUS"
![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Чудеса. Всё одинаково, но все по-разному... Ну, я позже смогу проверить на том ноуте, на котором изначально все работало, отпишусь. Может, там еще какая переменная. Или ленточный интерфейс как-то влияет, хотя прямой зависимости я не обнаружил, включив ленту. Сам пользуюсь до сих пор классикой.
Проверил. Гасится. Но... Нажатие, например, левой кнопки мыши гасит подсказку и всё. Рациональней было бы, чтоб по нажатию левой кнопки начиналась рамка выбора, а по нажатию кнопки с буквой эта буква сразу появлялась в командной строке. В этом смысле для меня предпочтительней предыдущий вариант, поскольку там наше окошко можно спрятать за окном динввода. Как-то неправильным это кажется, но работает чётко, особенно если подобрать правильные координаты окошка и размер окошка динввода. Уже сколько программ сам понаписал, а до сих пор наивно полагал, что такая простая на первый взгляд функция не должна была вызвать столько проблем, и что в ней будет столько нюансов. Однако.... Виноват. Каюсь. ТЗ было мною составлено плохо ![]() |
|||
![]() |
|
||||
Цитата:
![]() Подумаю над этим.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Новый вариант функции:
(do$-show-cursor-message message distance imgType offsetX offsetY fontSize fontColorIndex) message - текст подсказки (обязательный аргумент), строка distance - длина пробега курсора в единицах чертежа, пока не пропадет подсказка (обязательный аргумент), положительное вещественное число imgType - тип изображения (необязательный аргумент), целое число: 0 - без изображения (по умолчанию), 1 - "внимание" 2 - "ошибка" 3 - "информация" offsetX, offsetY - отступы подсказки от курсора по X вправо и по Y вниз соответственно в пикселях (необязательные аргументы), вещественное число. Знаком числа можно управлять положением подсказки относительно курсора. По умолчанию равны 20. fontSize - высота текста подсказки (необязательный аргумент), вещественное положительное число. Если равно 0,0 - высота текста принимается по умолчанию (из настроек системы наверное). fontColorIndex - индекс цвета текста подсказки (необязательный аргумент), целое число от 0 до 255 - соответствуют индексированным цветам AutoCAD. Если равно 0 - цвет текста принимается по умолчанию (из настроек системы наверное). Сильно не тестировал, но, по идее, должно хорошо работать ![]() Лисп для тестов: Код:
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Do$, просто супер!!! Основательно потестировал - багов не обнаружил. Кроме одного. Если задать вместо строки, например, переменную, которая не определена, Автокад вылетает с фатальной ошибкой. Этого можно избежать, не допуская попадания в аргументы "не строки", меня не парит, это я так, для порядку. А в остальном - все, как я и хотел. Даже больше, чем я ожидал! Отличная идея насчет нескольких вариантов изображений - точно приживется.
Спасибо тебе огромное!!! Долго думал, чего в программе может не хватать - придумал только одно: вывести в аргумент цвет фона подсказки. Это возможно? Больше, по-моему, туда уже ничего не впихнуть ![]() Получилось своеобразное дополнение princ с функцией вывода под курсор. Уже в пяти моих функциях успешно вещает мне результаты проделанной работы ![]() |
|||
![]() |
|
||||
Пожалуйста!
Цитата:
Цитата:
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Offtop: Тут точнее подскажет дядюшка Билл
![]() Иной раз осознаешь, что ты во власти живого труднообъяснимого интереса, рождаемого некой кем-то поставленной задачей. Когда понимаешь, что эта задачка тебе по зубам, жадно вгрызаешься в нее, погружаешься в процесс мышления, и вот оно уже решение, вертится где-то на кончике языка... В общем, у меня такое со школы. Кто знает, тот поймет ![]() ![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание собственной панели инструментов к AutoCAD-у | Supermax | Программирование | 43 | 18.11.2009 12:01 |
Создание собственной системы координат для растрового изображения | зюс | AutoCAD | 4 | 06.05.2009 21:52 |
Создание собственной текстуры и добавление в Revit | Scrubber | Revit | 14 | 05.02.2009 15:19 |
создание собственной подписи??? | Робин Бобин | Разное | 36 | 17.12.2007 17:15 |
Создание всплывающей подсказки? | draft | AutoCAD | 5 | 08.01.2007 17:15 |