Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline smath  
#1 Оставлено : 18 октября 2009 г. 6:50:24(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 505 раз
Поблагодарили: 260 раз в 101 постах
Доступна новая альфа версия: SMath Studio 0.85.3578


Цель данного выпуска SMath Studio - познакомить пользователей и сторонних разработчиков с новейшей функцией программы. Теперь SMath Studio поддерживает плагины. Это важнейшее изменение, бесспорно, позволяет расширить функциональность программы за счёт разработки и подключения к программе сторонних дополнений - каждый, кто владеет любым из .Net языков программирования, может привнести что-то новое в проект!

Данная версия программы не является стабильной, а потому может содержать серьёзные ошибки и недочёты существование которых ещё не известно. Старайтесь использовать данный релиз только в ознакомительных целях и для тестирования. Повседневные расчёты рекомендуется выполнять в последней стабильной версии программы. О любой найденной проблеме просьба сообщать в соответствующей ветке форума, с указанием номера версии SMath Studio.

Загрузка



Дополнительно

Инструкция по созданию плагинов, сами дополнения и другие подробности будут добавляться к этой теме по мере их появления. Просьба не сообщать о необходимости дополнительных материалов, т.к. всё, что нужно, уже готовится и будет опубликовано в самое ближайшее время.

Отредактировано пользователем 21 октября 2009 г. 0:40:41(UTC)  | Причина: Не указана

Offline smath  
#2 Оставлено : 18 октября 2009 г. 7:54:02(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 505 раз
Поблагодарили: 260 раз в 101 постах
XCas Plugin для SMath Studio Handheld


Плагин расширяет функционал SMath Studio Handheld функциями библиотеки XCas (xcint, xcsolve, xclimit). Для активации данного дополнения, пожалуйста, поместите файлы XCasPlugins.dll и cas.exe (предварительно их необходимо распаковать из архива) в папку "plugins" в установочной директории Вашей копии программы SMath Studio (обычно программа установлена в папке "Program Files\SMath Studio").

Внимание: только для карманной версии программы! Не пытайтесь использовать дополнение на стационарных компьютерах.



Функции

xcint([подынтегральное выражение];[переменная интегрирования]) - Вычисление неопределённого интеграла с помощью XCAS.
xclimit([функция предела],[переменная],[конечное значение]) - Вычисление предела функции с помощью XCAS.
xcsolve([функция],[переменная]) - Решение уравнений с помощью XCAS.

Загрузка

Отредактировано пользователем 18 октября 2009 г. 8:35:07(UTC)  | Причина: Не указана

Offline smath  
#3 Оставлено : 19 октября 2009 г. 3:26:18(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 505 раз
Поблагодарили: 260 раз в 101 постах
Инструкция по написанию плагинов к SMath Studio


Целью данной статьи является написание с нуля собственного плагина для программы SMath Studio Desktop для ОС Microsoft Windows, т.к. это требует наименьших усилий со стороны разработчика дополнений. В следующих статьях будет объяснено как планины могут быть написаны для Handheld версии программы под Windows Mobile и для Desktop версии под Linux.

Для написания дополнений к программе SMath Studio необходимо иметь на компьютере установленным следующее программное обеспечение:
  • Microsoft Visual Studio 2005 или Microsoft Visual Studio 2008;
  • SMath Studio 0.85.3578 или более позднюю версию.

    Для написания дополнений к программе SMath Studio разработчик должен владеть следующими навыками:
  • Знание любого из .Net языков программирования, таких как C#, VB.Net, C++.Net и т.п.

    Ниже представлен полный список шагов для написания своего дополнения к программе SMath Studio с нуля. Для демонстрации используется ОС Microsoft Windows Vista Ultimate Eng и IDE Microsoft Visual Studio Team System 2008 Eng. Исходный код в примерах написан с использованием языка C#.

    1. Откройте Visual Studio;

    2. Выберите пункт меню File, New, Project...

    3. В диалоговом окне выбора проекта используйте Windows, Class Library. Используйте .Net Framework 2.0. Задайте имя проекта и нажмите OK.

    4. В Visual Studio загрузится темплейт проекта, с которым и будет вестись дальнейшая работа.

    5. В фрейме Solution Explorer нажмите правой клавишей мыши по элементу дерева References и выберите Add Reference... из появившегося контекстного меню.

    6. В диалоге Add Reference перейдите на вкладку Browse, выберите папку, в которую Вы установили SMath Studio (по-умолчанию: C:\Program Files (x86)\SMath\SMath Studio) и при нажатой клавише Ctrl выберите файлы canvas.dll, ioman.dll, NuLib.dll и SyLib.dll. По окончании выбора файлов нажмите OK.

    7. После закрытия диалога Add Reference дерево в Solution Explorer будет обновлено и в папке References появятся требуемые элементы: canvas, ioman, NuLib, SyLib.

    8. Проделайте операцию по вызову диалога Add References ещё раз, для чего в фрейме Solution Explorer нажмите правой клавишей мыши по элементу дерева References и выберите Add Reference... из появившегося контекстного меню.

    9. В диалоге Add Reference перейдите на вкладку .NET и в списке пространств имён выберите System.Windows.Forms. Для подтверждения выбора нажмите OK.

    10. После закрытия диалога Add Reference дерево в Solution Explorer будет обновлено и в папке References появится элемент System.Windows.Forms.

    11. В редакторе кода Visual Studio подключите следующие пространства имён: SMath.Manager, SMath.Math.Numeric и SMath.Math.Symbolic. Наследуйте класс созданного проекта от интерфейса IPluginFunctionsExtension.
      Код:
      using System;
      using System.Collections.Generic;
      using System.Text;
      
      using SMath.Manager;
      using SMath.Math.Numeric;
      using SMath.Math.Symbolic;
      
      namespace WowFunction
      {
          public class Class1 : IPluginFunctionsExtension
          {
          }
      }
      


    12. Для реализации всех необходимых методов интерфейса, нажмите правой клавишей по имени интерфейса (IPluginFunctionsExtension) и в появившимся контекстном меню выбирите Implement Interface, Implement Interface.

    13. Все требуемые методы интерфейса IPluginFunctionsExtension будут автоматически сгенерированы IDE Visual Studio.

    14. Создайте локальные переменные для хранения свойств плагина.
      Код:
              #region Private fields
      
              private FunctionInfo[] availableFunctions;
              private string name;
              private Version version;
              private string description;
              private string author;
      
              #endregion
      


    15. Присвойте значения локальным переменным в методе Initialize().
      Код:
              public void Initialize()
              {
                  this.name = "Wow function realization";
                  this.version = new Version(0, 1);
                  this.description = "Wow function plugin for SMath Studio. For test purposes only!";
                  this.author = "Andrey Ivashov (http://smath.info/)";
                  this.availableFunctions = new FunctionInfo[] {
                      new FunctionInfo("wow", 2, "wow('number';'number') - Returns something interesting.", FunctionSection.Unknown)
                  };
              }
      


    16. Обработайте обязательное поле Author.
      Код:
              public string Author
              {
                  get { return this.author; }
              }
      


    17. Обработайте обязательное поле Description.
      Код:
              public string Description
              {
                  get { return this.description; }
              }
      


    18. Обработайте обязательное поле Name.
      Код:
              public string Name
              {
                  get { return this.name; }
              }
      


    19. Обработайте обязательное поле Version.
      Код:
              public Version Version
              {
                  get { return this.version; }
              }
      


    20. Обработайте обязательное поле GetAvailableFunctions.
      Код:
              public FunctionInfo[] GetAvailableFunctions
              {
                  get { return this.availableFunctions; }
              }
      


    21. Обработайте обязательный метод Dispose().
      Код:
              public void Dispose()
              {
              }
      


    22. Т.к. в данном примере не будет создаваться ни специальных функций, ни специальной отрисовки функций, просто верните в методах PrepareDrawing, ProceedDrawing и SpecialCalculation false.
      Код:
              public bool PrepareDrawing(object control, int termIndex)
              {
                  return false;
              }
      
              public bool ProceedDrawing(object control, System.Windows.Forms.PaintEventArgs e, int drawIndex, ref bool bracket)
              {
                  return false;
              }
      
              public bool SpecialCalculation(string name, Term[][] args, ref Store store, ref Term[] result)
              {
                  return false;
              }
      


    23. Обработайте метод NumericCalculation.
      Код:
              public bool NumericCalculation(string name, object[] args, ref object result)
              {
                  if (name == "wow" && args.Length == 2)
                  {
                      TNumber
                          arg1 = (TNumber)args[0],
                          arg2 = (TNumber)args[1];
      
                      // calculates a^b (arg1^arg2)
                      result = arg1.Power(arg2);
                  }
                  else
                      return false;
      
                  return true;
              }
      


    24. Обработайте метод AnaliticCalculation.
      Код:
              public bool AnaliticCalculation(string name, object[] args, ref object result)
              {
                  if (name == "wow" && args.Length == 2)
                  {
                      MItem
                          arg1 = (MItem)args[0],
                          arg2 = (MItem)args[1];
      
                      // calculates a^b (arg1^arg2)
                      result = arg1 ^ arg2;
                  }
                  else
                      return false;
      
                  return true;
              }
      


    25. Соберите проект используя меню Build, Build Solution.

    26. Если сборка пройдёт успешно, в статус-строке окна IDE Visual Studio появится надпись Build succeeded.

    27. Перейдите в папку созданного проекта (в примере это Мои Документы\Visual Studio 2008\Projects\WowFunction\WowFunction) и в директории bin\Debug найдите файлы результата сборки (в примере это WowFunction.dll и WowFunction.pdb). Скопируйте эти файлы.

    28. Перейдите в папку установленной копии SMath Studio Desktop (в примере это C:\Program Files (x86)\SMath\SMath Studio) и вставьте скопированные файлы в директорию plugins.

    29. Теперь можно запустить программу SMath Studio Desktop щёлкнув двойным щелчком мыши по ярлыку программы на рабочем столе или в меню Все Программы.

    30. В меню Tools (Опции) выберите Plugins... для проверки успешного подключения созданного плагина.

    31. В диалоге Plugins, рядом со встроенным дополнением Special Functions, появится и только что созданный плагин (в примере это Wow function realization). После проверки закройте диалог.

    32. Попробуйте использовать реализованную функцию на листе программы численно и аналитически (символьно) просто записав имя функции с требуемым количеством параметров (в примере имя функции: "wow", а аргументов: 2).

    33. В более сложных реализациях функций, может потребоваться отладка, которую легко инициировать подключив IDE Visual Studio к процессу запущенной копии программы SMath Studio. Сделать это можно через меню Debug, Attach to Process...

    34. В появившемся диалоге Attach to Process найдите процесс с именем SMathStudio_Desktop.exe и нажмите кнопку Attach.

    35. Поставьте точку останова (Breakpoint) в интересующую Вас строчку щёлкнув левой клавишей мыши по левой от кода границе.

    36. Инициируйте вычисление функции в программе. Выполнение программы остановится на строчке, в которой установлена точка останова.

    37. После создания и отладки плагина необходимо подготовить его для последующего использования. Для этого дополнение надо собрать в режиме Release. Выберите пункт выпадающего списка Release в тулбаре IDE Visual Studio.

    38. Соберите проект используя меню Build, Build Solution.

    39. Перейдите в папку созданного проекта (в примере это Мои Документы\Visual Studio 2008\Projects\WowFunction\WowFunction) и в директории bin\Release найдите файл результата сборки (в примере это WowFunction.dll). Данный файл является готовым плагином к программе SMath Studio. Для его использования достаточно перед запуском программы SMath Studio скопировать его в директорию plugins установочной папки SMath Studio (обычно C:\Program Files (x86)\SMath\SMath Studio).

    Отредактировано пользователем 21 октября 2009 г. 0:41:04(UTC)  | Причина: Не указана

  • Offline kt315e  
    #4 Оставлено : 12 января 2010 г. 23:27:40(UTC)
    kt315e

    Статус: Newbie

    Группы: Registered
    Зарегистрирован: 04.10.2009(UTC)
    Сообщений: 4

    Для Linux альфа будет?
    Можно ли будет писать плагины из Linux?
    Offline smath  
    #5 Оставлено : 12 января 2010 г. 23:47:18(UTC)
    smath


    Статус: Administration

    Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
    Зарегистрирован: 11.07.2008(UTC)
    Сообщений: 912
    Мужчина
    Российская Федерация

    Сказал «Спасибо»: 505 раз
    Поблагодарили: 260 раз в 101 постах
    kt315e написал:
    Для Linux альфа будет?

    Посмотрим. Скорее всего нет. Но следующая стабильная версия будет и для Linux.
    kt315e написал:
    Можно ли будет писать плагины из Linux?

    Да.
    Offline уни  
    #6 Оставлено : 20 марта 2010 г. 12:12:40(UTC)
    уни


    Статус: Advanced Member

    Группы: Registered
    Зарегистрирован: 02.06.2009(UTC)
    Сообщений: 346
    Мужчина
    Российская Федерация

    Сказал «Спасибо»: 50 раз
    Поблагодарили: 151 раз в 103 постах
    Нда, это будет покруче маткадовских библиотек, однозначно. Уважаемый автор, вы хоть и декларируете "собственный подход" к интерфейсу, всё же нужно не вставать на те грабли, которые уже много лет дают полбу программерам маткада. За мою долгую историю использования маткада и его интерфейсных пользовательских библиотек (а это лет 10) я встречал только несколько человек, кто более менее разобрался как их компилировать и вообще использовать. Никто практически, кроме Валерия Федоровича Очкова, не описывает эти библиотеки в книгах по Маткад! Сам этот маткадовский "интерфейс" не изменялся вообще всё это время и благополучно издох в новом маткаде 15 (Mathcad Prime 1.0) как изживший своё. Встаёт логичный вывод и за ним вопрос. Если интерфейс не изменялся, то получается, что либо он был никому не нужен из нескольких миллионов пользователей по всему миру, либо фирма просто игнорировала требования пользователей или и то, и другое. А вопрос такой: почему подключаемые модули не использовались? По большому счёту это именно так. Что Вы об этом думаете?

    Как по мне, то уже пора писать книгу по SMath, можно попробовать договориться с сайтом экспоненты в связи с появлением SMath включить новый форум чисто для пользователей.
    И, кстати, будут ли скайп-конференции по SMath? Где можно было бы пообщаться вживую.
    Россия навсегда!
    Вячеслав Мезенцев
    Offline build_your_web  
    #7 Оставлено : 20 марта 2010 г. 17:51:36(UTC)
    build_your_web


    Статус: Advanced Member

    Группы: Developers, Registered
    Зарегистрирован: 28.08.2009(UTC)
    Сообщений: 127

    Сказал(а) «Спасибо»: 19 раз
    Поблагодарили: 4 раз в 4 постах
    уни,
    разработчикам программы наверняка пригодится ваш многолетний опыт использовать программ инженерного расчета.

    Не могли бы вы описать ваше видение того, как должна выглядть удобная программа этого типа.
    Лучше, конечно, не в общих чертах, а в деталях - какие именно из деталей сделают работу с пакетом удобнее и как это будет выглядеть?
    Offline уни  
    #8 Оставлено : 20 марта 2010 г. 18:11:35(UTC)
    уни


    Статус: Advanced Member

    Группы: Registered
    Зарегистрирован: 02.06.2009(UTC)
    Сообщений: 346
    Мужчина
    Российская Федерация

    Сказал «Спасибо»: 50 раз
    Поблагодарили: 151 раз в 103 постах
    Давайте создадим отдельный топик по этому поводу. Обычно, при промышленном писании, выдаётся Техническое Задание на проект. Это нужно как опора для будущего "здания" проекта. Если все будут заваливать автора хотелками, то это будет хаос, что приведёт к таким ужасным вещам, как нелогичности программы. Не обязательно что-то конкретно прописывать, можно просто продекларировать. Пункты в ТЗ пишутся в общих терминах, т.к. заранее далеко не всегда известен механизм реализации. ТЗ декларирует цель (первоначальную цель), далее ТЗ уточняется (можно выложить его на форуме, дать номер редакции/версии) и пишется код, потом результат сравнивается с целями, вырабатывается протокол неточностей, ошибок, в ТЗ вводятся поправки и всё повторяется. Поэтому я за то, чтобы автор потратил время на описания Плана своих задумок по пунктам, а народ бы обсудил этот план и сделал корректировки. У нас в России есть люди, которые достаточно давно работают с матпакетами и им есть что посоветовать и поучаствовать на уровне ТЗ. Вот недавно один из авторов книг по Маткад выложил свои наработки: http://forum.exponenta.ru/viewtopic.php?t=9720

    Я тут уже как-то писал, что мог бы помочь даже в реализации некоторых функций и даже предложить один интересный метод решения систем нелинейных уравнений, но это в будущем. Пока буду ждать чего-то похожего на ТЗ или план и одновременно осваивать местный плагинный интерфейс. Также я предлагал ввести отладку и показал пример того как я это сделал для Маткад (выслал код и описание автору).
    Россия навсегда!
    Вячеслав Мезенцев
    thanks 1 пользователь поблагодарил уни за этот пост.
    genf оставлено 25.01.2014(UTC)
    Offline build_your_web  
    #9 Оставлено : 20 марта 2010 г. 22:12:12(UTC)
    build_your_web


    Статус: Advanced Member

    Группы: Developers, Registered
    Зарегистрирован: 28.08.2009(UTC)
    Сообщений: 127

    Сказал(а) «Спасибо»: 19 раз
    Поблагодарили: 4 раз в 4 постах
    Вы описали водопад.
    Здесь же что-то типа agile.

    Слушаем пользовательские истории и реализуем те, которые обладают большей ценностью.
    Пользователи, просматривающие эту тему
    Быстрый переход  
    Вы не можете создавать новые темы в этом форуме.
    Вы не можете отвечать в этом форуме.
    Вы не можете удалять Ваши сообщения в этом форуме.
    Вы не можете редактировать Ваши сообщения в этом форуме.
    Вы не можете создавать опросы в этом форуме.
    Вы не можете голосовать в этом форуме.