Как программно управлять падающим меню в послених (2010 и выше) версиях Автокада
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно управлять падающим меню в послених (2010 и выше) версиях Автокада

Как программно управлять падающим меню в послених (2010 и выше) версиях Автокада

Ответ
Поиск в этой теме
Непрочитано 16.04.2013, 17:40 #1
Как программно управлять падающим меню в послених (2010 и выше) версиях Автокада
480725
 
Москва
Регистрация: 06.10.2007
Сообщений: 132

Начиная с 2010 Автокада не работают конструкции вида (Menucmd "pN=xxx") и (Menucmd "pN=*") для N отличного от 0. Судя по несколько изменившемуся описаннию функции Menucmd в Help это может быть не ошибкой, а сознательным изменением, но явно недопустимость приведенных конструкций не объявлена. Просьба подсказать какой-то другой способ заменить и / или заставить раскрыться раздел падающего меню из программы на LISP.
Просмотров: 6348
 
Автор темы   Непрочитано 20.04.2013, 11:44
#2
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Может это можно сделать при помощи объектных методов? Через VLX... Если кто знает как - подскажите пожалуйста!
480725 вне форума  
 
Непрочитано 20.04.2013, 12:22
#3
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Вот такая (к примеру) конструкция работает (из файла MNL):
(menucmd "p22=+ss.pop1")
Profan вне форума  
 
Автор темы   Непрочитано 20.04.2013, 13:57
#4
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Цитата:
Сообщение от Profan Посмотреть сообщение
Вот такая (к примеру) конструкция работает (из файла MNL):
(menucmd "p22=+ss.pop1")
Такие конструкции работают, а конструкция (menucmd "p22=*") нет. Для любых Pn, корме P0.
В программе стояло (menucmd "P1=*"), т.к. (menucmd "P0=*") гарантированно закрывала ту часть чертежа, к которой относилось меню.
480725 вне форума  
 
Непрочитано 20.04.2013, 14:42
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от 480725 Посмотреть сообщение
Начиная с 2010 Автокада не работают конструкции вида (Menucmd "pN=xxx") и (Menucmd "pN=*") для N отличного от 0.
Да вроде всё работает...
Воспользуйтесь MENUBAR=1
"В строке меню можно отобразить раскрывающиеся меню в качестве альтернативы ленте или для совместного с ней использования." - HELP
Мы такое делали для собственного меню. Если интересно, могу показать пример
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 20.04.2013 в 16:30.
Alan вне форума  
 
Автор темы   Непрочитано 20.04.2013, 19:21
#6
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Цитата:
Сообщение от Alan Посмотреть сообщение
Да вроде всё работает...
Воспользуйтесь MENUBAR=1
"В строке меню можно отобразить раскрывающиеся меню в качестве альтернативы ленте или для совместного с ней использования." - HELP
Мы такое делали для собственного меню. Если интересно, могу показать пример
Ленту в своем меню отключаю. MENUBAR=1, естественно устанвливаю (menucmd "p1=xxx") работает, т.е. разделы меню подменяются и добавляются, а вот заставить их раскрываься по команде (menucmd "p1=*") не получается. От А2000 до A2009 все нормально, а дальше (A2010, A2011)- глухо не только старая программа, но и все экперименты пробуксовывают. Если у вас именно (menucmd "p1=*") работает (цифра может быть любая, главное, чтобы не 0, т.к. с P0=* проблем нет) то буду очень благодарен за отправку меню и фрагмента программы. Можно максимально сократить, но только предварительно убедиться, что продолжает работать.
480725 вне форума  
 
Непрочитано 21.04.2013, 20:20
#7
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


[IMG]http://img845.**********.us/img845/3387/21042013191718.png[/IMG]

Что-то не так?
Александр Ривилис вне форума  
 
Непрочитано 22.04.2013, 15:33
#8
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Подтверждаю ошибку:

В AutoCAD 2014 en - работает
В AutoCAD 2014 ru - не работает

В AutoCAD 2013 en - не работает
В AutoCAD 2013 ru - не работает
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 23.04.2013, 17:21
#9
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Вынужден признать, что в А2011 рус - работает. Но в А2010 не работает. Про А2013 и А2014 Евгений написал - тоже дела не ахти. Так есть какие-то возможности решить проблему через VLX или VLA?

Последний раз редактировалось 480725, 23.04.2013 в 22:52.
480725 вне форума  
 
Непрочитано 23.04.2013, 23:36
#10
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Подтверждаю ошибку:
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
В AutoCAD 2013 ru - не работает
У мну все ок
gomer вне форума  
 
Непрочитано 23.04.2013, 23:49
#11
Кулик Алексей aka kpblc
Moderator

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


AutoCAD 2013 x64 + SP1.1; независимо от локализации - работает.

P.S. Интересна конечная цель таких шагов...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.04.2013, 23:58
#12
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Наверное, еще от разрядности зависит
Do$ вне форума  
 
Автор темы   Непрочитано 24.04.2013, 10:02
#13
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Возвращаюсь к вопросу:
Может в LISPе заставить выпасть падающее меню не функцией (menucmd "Pn=*"), а при помощи объектной модели? Через VLX...
480725 вне форума  
 
Непрочитано 24.04.2013, 10:06
#14
Кулик Алексей aka kpblc
Moderator

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


VLX - это не объектная модель, а формат компиляции лисповых исходников.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.04.2013, 12:54
#15
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Описался: функции LISP, начинающиеся с префикса VLA.

Последний раз редактировалось 480725, 24.04.2013 в 13:47.
480725 вне форума  
 
Непрочитано 24.04.2013, 13:01
#16
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
функции LISP, начинающиеся с префикса VLA.
Вам с "шашечками" или чтобы ехать?
Цитата:
Сообщение от 480725 Посмотреть сообщение
Возвращаюсь к вопросу:
Извини, был сильно занят, не отвечал.
А чем не устраивает "разворачивание" какой-то стандартной зоны (или другой?) падающего меню с возвратом после отработки строки меню её назад?
Вот как делали мы...
Вызов:
(menucmd "P5=ПАРКС.POP1-SST")(menucmd "P5=*")
соответствующий кусок меню ПАРКС.mnu
Код:
[Выделить все]
***POP1-SST
**SMESH
               [Величина]
ID_p1ss2       [смещения:]
ID_p1ss3       [0]0 
ID_p1ss4       [100]100 
................
ID_p1ss15      [3000]3000
Результат - POP5.jpg

Вернули назад стандартную зону:
(menucmd "P5=POP5")

Показали, что стандартные тоже можно ронять.
(menucmd "P5=*")
Результат - POP5_Standart.jpg
Миниатюры
Нажмите на изображение для увеличения
Название: POP5.JPG
Просмотров: 48
Размер:	95.3 Кб
ID:	101815  Нажмите на изображение для увеличения
Название: POP5_Standart.JPG
Просмотров: 45
Размер:	54.4 Кб
ID:	101816  
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 24.04.2013, 13:49
#17
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


В 2010 АCAD (menucmd "p5=*") не срабатывает! Версию Автокада поменять невозможно.
480725 вне форума  
 
Непрочитано 24.04.2013, 15:23
#18
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от 480725 Посмотреть сообщение
В 2010 АCAD (menucmd "p5=*") не срабатывает! ......
Да, в 2010 не работает ни в какой зоне , не обращал внимание раньше на это...
Придётся отнести это к "традиционному" багу разработчиков Autodesk в Автокаде...
А что ты пытаешься там уронить? М.б. можно перейти от указания строки падающего меню к чему-то другому, например, _toolbar?
В некоторых китайских Автокадах с использованием меню вообще большие проблемы, я перешел на _toolbar
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 24.04.2013, 16:01
#19
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Есть откомпилированная программа без исходника. Есть меню с исходником. Я переопределяю (menucmd "p1=*") так,
чтобы для данного конкретного заголовка выполнялся оператор (menucmd"s=заголовок"). Это сделано и работает.
НО.
1)Ширина экранного меню не позволяет полноценно разместить пункты падающего меню.
2)Сделать такой фокус можно только имея исходное меню. Не исключено, что в какой-то другой программе исходного меню не будет, тогда в подобной ситуации даже понять в чем причина сбоя не удастся. Если есть средства заставить падать падающее меню через объектную модель, то можно так переопределить menucmd, что она всегда будет работать.
480725 вне форума  
 
Непрочитано 24.04.2013, 16:15
#20
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от 480725 Посмотреть сообщение
Есть откомпилированная программа без исходника.
Первое движение души - переписать...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно управлять падающим меню в послених (2010 и выше) версиях Автокада



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зависание меню свойств єлементов в AutoCad 2010 rus x86 при работе в Windows 7 micropyhcher Баги и пожелания в Autodesk 3 21.11.2009 11:05
Попасть в слой. Vova AutoCAD 106 10.03.2006 04:36