Вызвать Калькулятор

Автор Тема: Вызвать Калькулятор  (Прочитано 7575 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Вызвать Калькулятор
« : 27-10-2020, 22:26:42 »
Есть ли какой-нибудь способ вызвать калькулятор Автокад? Передать ему цифру, получить от него результат. Я имею ввиду модальный диалог калькулятора, который вызывается из палитры свойств, а не палитру QuickCalc. Что-то этого диалога не видно в Autodesk.AutoCAD.Windows. Есть какой-то Autodesk.AutoCAD.Internal.Calculator, но похоже это чисто для вычислений, не диалог.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызвать Калькулятор
« Ответ #1 : 27-10-2020, 23:28:13 »
Так
Передать ему цифру, получить от него результат.
или
Я имею ввиду модальный диалог калькулятора
Согласись, что это совершенно разные вещи.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #2 : 27-10-2020, 23:33:34 »
Не соглашусь. Может не понятно объясняю...
Модальный (то есть прерывающий работу в Автокад) калькулятор именно так и работает - берет число из свойств объекта и по нажатию ОК возвращает результат обратно в палитру свойств. А не модальная палитра-калькулятор так не умеет и поэтому мне вызов команды QuickCalc ничего полезного не даст.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызвать Калькулятор
« Ответ #3 : 27-10-2020, 23:38:12 »
Так тебе нужен этот диалог или просто вычислить выражение, переданное в виде строки, а диалог при необходимости ты нарисуешь сам?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #4 : 27-10-2020, 23:41:31 »
Именно диалог. Выражения я умею вычислять прямо в полях ввода.

Отмечено как Решение avc 28-10-2020, 08:39:47

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызвать Калькулятор
« Ответ #5 : 28-10-2020, 01:08:47 »
"А всё-таки она вертится!" (c) Галилео Галилей :D

Причем всё очень просто:

Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.Runtime;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. // Это из файла AcCalcUi.dll - не забываем про CopyLocal = False
  5. using Autodesk.AutoCAD.CalculatorUI;
  6. using Autodesk.AutoCAD.Internal.Calculator;
  7.  
  8. [assembly: CommandClass(typeof(Rivilis.CalcFormTest))]
  9.  
  10. namespace Rivilis
  11. {
  12.   public class CalcFormTest
  13.   {
  14.     [CommandMethod("CalcTest")]
  15.     public void CalcTestHandler()
  16.     {
  17.       Document doc = Application.DocumentManager.MdiActiveDocument;
  18.       Editor ed = doc.Editor;
  19.       CalcResult rs = QCalcApplication.ShowModalCalculator("Тест Калькулятора", "3*14*15+92.6", true);
  20.       if (rs != null) {
  21.         ed.WriteMessage($"\nDWGResultString = {rs.DWGResultString}, " +
  22.                         $"\nResultString = {rs.ResultString}," +
  23.                         $"\nResult = {rs.Result}"
  24.         );
  25.       }
  26.     }
  27.   }
  28. }



Интересно, что в интернете нет никаких упоминаний об этом... Сделаю-ка я статью на сайт по этому поводу.


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #6 : 28-10-2020, 08:39:41 »
Вот оно как! В отдельную dll запрятано... Спасибо!
Обязательно делайте статью. Вызов калькулятора полезен во многих формах ввода

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Re: Вызвать Калькулятор
« Ответ #7 : 28-10-2020, 10:17:52 »
Вызов калькулятора полезен во многих формах ввода
А чем полезен? Показать формулу расчета?

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #8 : 28-10-2020, 10:34:44 »
Приятно пользователю нажать кнопочку получить калькулятор, потыкать в нем мышкой (клавиатуру то мы не любим), получить результат уже прямо в нашей форме, без всяких Ctrl+C|Ctrl+V. Мелочь конечно, но приятно. Тем более Автокадовский калькулятор дистанции мерить умеет.
Я вот встроил в поля ввода калькулятор. Достаточно написать 2+2 чтоб ввелось 4. И как вы думаете сколько пользователей у этой фичи? Ровно 0. Надо чтоб мышкой кнопочку калькулятора и в ней мышкой кнопочки [2][ + ][2]... такие дела...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызвать Калькулятор
« Ответ #9 : 28-10-2020, 11:02:59 »
Я вот встроил в поля ввода калькулятор. Достаточно написать 2+2 чтоб ввелось 4. И как вы думаете сколько пользователей у этой фичи? Ровно 0. Надо чтоб мышкой кнопочку калькулятора и в ней мышкой кнопочки [2][ + ][2]... такие дела...
Это не очевидно, что в полях ввода можно писать выражения. Наверное поэтому и не пользуются.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #10 : 28-10-2020, 11:06:56 »
Это не очевидно, что в полях ввода можно писать выражения. Наверное поэтому и не пользуются.
Согласен. И это тоже аргумент в пользу кнопочки вызова калькулятора.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Re: Вызвать Калькулятор
« Ответ #11 : 28-10-2020, 12:06:15 »
И это тоже аргумент в пользу кнопочки вызова калькулятора.
А что в поле такое вводят, что им приходиться калькулятором пользоваться?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вызвать Калькулятор
« Ответ #12 : 28-10-2020, 12:08:50 »
И это тоже аргумент в пользу кнопочки вызова калькулятора.
А что в поле такое вводят, что им приходиться калькулятором пользоваться?
Элементарный пример - расстояние между точками на чертеже.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Вызвать Калькулятор
« Ответ #13 : 28-10-2020, 12:22:59 »

Re: Вызвать Калькулятор
« Ответ #11 : 28-10-2020, 12:06:15 »
Цитировать (выделенное)
Цитата: avc от 28-10-2020, 11:06:56
И это тоже аргумент в пользу кнопочки вызова калькулятора.
А что в поле такое вводят, что им приходиться калькулятором пользоваться?
Сообщить модератору  
Размеры деталей, параметры, цены, веса,.... Да любые цифровые данные. Все иногда приходится пересчитывать в разные единицы, делить на части, суммировать...