1 страниц (9 вхождений)
Альфа: SMath Studio 0.85.3578 (18 Октябрь 2009) - Сообщения
#1 Опубликовано: 17.10.2009 23:50:24
Доступна новая альфа версия: SMath Studio 0.85.3578
Цель данного выпуска SMath Studio - познакомить пользователей и сторонних разработчиков с новейшей функцией программы. Теперь SMath Studio поддерживает плагины. Это важнейшее изменение, бесспорно, позволяет расширить функциональность программы за счёт разработки и подключения к программе сторонних дополнений - каждый, кто владеет любым из .Net языков программирования, может привнести что-то новое в проект!
Данная версия программы не является стабильной, а потому может содержать серьёзные ошибки и недочёты существование которых ещё не известно. Старайтесь использовать данный релиз только в ознакомительных целях и для тестирования. Повседневные расчёты рекомендуется выполнять в последней стабильной версии программы. О любой найденной проблеме просьба сообщать в соответствующей ветке форума, с указанием номера версии SMath Studio.
Загрузка
- Handheld (КПК, коммуникатор, смартфон):
SMathStudioHandheld.0_85.3578.Alpha.Setup.cab (Дата: 18.10.2009. Размер: 1,6MB) - для установки с КПК
SMathStudioHandheld.0_85.3578.Alpha.Setup.cab.zip (Дата: 18.10.2009. Размер: 364,04KB) - для установки с КПК (архив, внутри CAB )
SMathStudioHandheld.0_85.3578.Alpha.Setup.exe (Дата: 18.10.2009. Размер: 428,77KB) - для установки с ПК
- Desktop Windows (настольный компьютер с Windows ОС):
SMathStudioDesktop.0_85.3578.Alpha.Setup.msi (Дата: 18.10.2009. Размер: 772,5KB)
SMathStudioDesktop.0_85.3578.Alpha.Portable.exe (Дата: 18.10.2009. Размер: 16,28MB) - не требует установки .Net Framework 2.0
Дополнительно
Инструкция по созданию плагинов, сами дополнения и другие подробности будут добавляться к этой теме по мере их появления. Просьба не сообщать о необходимости дополнительных материалов, т.к. всё, что нужно, уже готовится и будет опубликовано в самое ближайшее время.
#2 Опубликовано: 18.10.2009 00:54:02
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.
Загрузка
- Handheld (КПК, коммуникатор, смартфон):
XCasPluginForSMathStudio.0_85_3578.Bin.zip (Дата: 18.10.2009. Размер: 2,22MB) - для копирования на КПК
#3 Опубликовано: 18.10.2009 20:26:18
Инструкция по написанию плагинов к SMath Studio
Целью данной статьи является написание с нуля собственного плагина для программы SMath Studio Desktop для ОС Microsoft Windows, т.к. это требует наименьших усилий со стороны разработчика дополнений. В следующих статьях будет объяснено как планины могут быть написаны для Handheld версии программы под Windows Mobile и для Desktop версии под Linux.
Для написания дополнений к программе SMath Studio необходимо иметь на компьютере установленным следующее программное обеспечение:
Для написания дополнений к программе SMath Studio разработчик должен владеть следующими навыками:
Ниже представлен полный список шагов для написания своего дополнения к программе SMath Studio с нуля. Для демонстрации используется ОС Microsoft Windows Vista Ultimate Eng и IDE Microsoft Visual Studio Team System 2008 Eng. Исходный код в примерах написан с использованием языка C#.
- Откройте Visual Studio;
- Выберите пункт меню File, New, Project...
- В диалоговом окне выбора проекта используйте Windows, Class Library. Используйте .Net Framework 2.0. Задайте имя проекта и нажмите OK.
- В Visual Studio загрузится темплейт проекта, с которым и будет вестись дальнейшая работа.
- В фрейме Solution Explorer нажмите правой клавишей мыши по элементу дерева References и выберите Add Reference... из появившегося контекстного меню.
- В диалоге Add Reference перейдите на вкладку Browse, выберите папку, в которую Вы установили SMath Studio (по-умолчанию: C:\Program Files (x86)\SMath\SMath Studio) и при нажатой клавише Ctrl выберите файлы canvas.dll, ioman.dll, NuLib.dll и SyLib.dll. По окончании выбора файлов нажмите OK.
- После закрытия диалога Add Reference дерево в Solution Explorer будет обновлено и в папке References появятся требуемые элементы: canvas, ioman, NuLib, SyLib.
- Проделайте операцию по вызову диалога Add References ещё раз, для чего в фрейме Solution Explorer нажмите правой клавишей мыши по элементу дерева References и выберите Add Reference... из появившегося контекстного меню.
- В диалоге Add Reference перейдите на вкладку .NET и в списке пространств имён выберите System.Windows.Forms. Для подтверждения выбора нажмите OK.
- После закрытия диалога Add Reference дерево в Solution Explorer будет обновлено и в папке References появится элемент System.Windows.Forms.
- В редакторе кода 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 { } }
- Для реализации всех необходимых методов интерфейса, нажмите правой клавишей по имени интерфейса (IPluginFunctionsExtension) и в появившимся контекстном меню выбирите Implement Interface, Implement Interface.
- Все требуемые методы интерфейса IPluginFunctionsExtension будут автоматически сгенерированы IDE Visual Studio.
- Создайте локальные переменные для хранения свойств плагина.
#region Private fields private FunctionInfo[] availableFunctions; private string name; private Version version; private string description; private string author; #endregion
- Присвойте значения локальным переменным в методе 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) }; }
- Обработайте обязательное поле Author.
public string Author { get { return this.author; } }
- Обработайте обязательное поле Description.
public string Description { get { return this.description; } }
- Обработайте обязательное поле Name.
public string Name { get { return this.name; } }
- Обработайте обязательное поле Version.
public Version Version { get { return this.version; } }
- Обработайте обязательное поле GetAvailableFunctions.
public FunctionInfo[] GetAvailableFunctions { get { return this.availableFunctions; } }
- Обработайте обязательный метод Dispose().
public void Dispose() { }
- Т.к. в данном примере не будет создаваться ни специальных функций, ни специальной отрисовки функций, просто верните в методах 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; }
- Обработайте метод 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; }
- Обработайте метод 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; }
- Соберите проект используя меню Build, Build Solution.
- Если сборка пройдёт успешно, в статус-строке окна IDE Visual Studio появится надпись Build succeeded.
- Перейдите в папку созданного проекта (в примере это Мои Документы\Visual Studio 2008\Projects\WowFunction\WowFunction) и в директории bin\Debug найдите файлы результата сборки (в примере это WowFunction.dll и WowFunction.pdb). Скопируйте эти файлы.
- Перейдите в папку установленной копии SMath Studio Desktop (в примере это C:\Program Files (x86)\SMath\SMath Studio) и вставьте скопированные файлы в директорию plugins.
- Теперь можно запустить программу SMath Studio Desktop щёлкнув двойным щелчком мыши по ярлыку программы на рабочем столе или в меню Все Программы.
- В меню Tools (Опции) выберите Plugins... для проверки успешного подключения созданного плагина.
- В диалоге Plugins, рядом со встроенным дополнением Special Functions, появится и только что созданный плагин (в примере это Wow function realization). После проверки закройте диалог.
- Попробуйте использовать реализованную функцию на листе программы численно и аналитически (символьно) просто записав имя функции с требуемым количеством параметров (в примере имя функции: "wow", а аргументов: 2).
- В более сложных реализациях функций, может потребоваться отладка, которую легко инициировать подключив IDE Visual Studio к процессу запущенной копии программы SMath Studio. Сделать это можно через меню Debug, Attach to Process...
- В появившемся диалоге Attach to Process найдите процесс с именем SMathStudio_Desktop.exe и нажмите кнопку Attach.
- Поставьте точку останова (Breakpoint) в интересующую Вас строчку щёлкнув левой клавишей мыши по левой от кода границе.
- Инициируйте вычисление функции в программе. Выполнение программы остановится на строчке, в которой установлена точка останова.
- После создания и отладки плагина необходимо подготовить его для последующего использования. Для этого дополнение надо собрать в режиме Release. Выберите пункт выпадающего списка Release в тулбаре IDE Visual Studio.
- Соберите проект используя меню Build, Build Solution.
- Перейдите в папку созданного проекта (в примере это Мои Документы\Visual Studio 2008\Projects\WowFunction\WowFunction) и в директории bin\Release найдите файл результата сборки (в примере это WowFunction.dll). Данный файл является готовым плагином к программе SMath Studio. Для его использования достаточно перед запуском программы SMath Studio скопировать его в директорию plugins установочной папки SMath Studio (обычно C:\Program Files (x86)\SMath\SMath Studio).
#4 Опубликовано: 12.01.2010 17:27:40
Для Linux альфа будет?
Можно ли будет писать плагины из Linux?
Можно ли будет писать плагины из Linux?
#5 Опубликовано: 12.01.2010 17:47:18
WroteДля Linux альфа будет?
Посмотрим. Скорее всего нет. Но следующая стабильная версия будет и для Linux.
WroteМожно ли будет писать плагины из Linux?
Да.
#6 Опубликовано: 20.03.2010 06:12:40
Нда, это будет покруче маткадовских библиотек, однозначно. Уважаемый автор, вы хоть и декларируете "собственный подход" к интерфейсу, всё же нужно не вставать на те грабли, которые уже много лет дают полбу программерам маткада. За мою долгую историю использования маткада и его интерфейсных пользовательских библиотек (а это лет 10) я встречал только несколько человек, кто более менее разобрался как их компилировать и вообще использовать. Никто практически, кроме Валерия Федоровича Очкова, не описывает эти библиотеки в книгах по Маткад! Сам этот маткадовский "интерфейс" не изменялся вообще всё это время и благополучно издох в новом маткаде 15 (Mathcad Prime 1.0) как изживший своё. Встаёт логичный вывод и за ним вопрос. Если интерфейс не изменялся, то получается, что либо он был никому не нужен из нескольких миллионов пользователей по всему миру, либо фирма просто игнорировала требования пользователей или и то, и другое. А вопрос такой: почему подключаемые модули не использовались? По большому счёту это именно так. Что Вы об этом думаете?
Как по мне, то уже пора писать книгу по SMath, можно попробовать договориться с сайтом экспоненты в связи с появлением SMath включить новый форум чисто для пользователей.
И, кстати, будут ли скайп-конференции по SMath? Где можно было бы пообщаться вживую.
Как по мне, то уже пора писать книгу по SMath, можно попробовать договориться с сайтом экспоненты в связи с появлением SMath включить новый форум чисто для пользователей.
И, кстати, будут ли скайп-конференции по SMath? Где можно было бы пообщаться вживую.
Россия навсегда!
Вячеслав Мезенцев
#7 Опубликовано: 20.03.2010 11:51:36
уни,
разработчикам программы наверняка пригодится ваш многолетний опыт использовать программ инженерного расчета.
Не могли бы вы описать ваше видение того, как должна выглядть удобная программа этого типа.
Лучше, конечно, не в общих чертах, а в деталях - какие именно из деталей сделают работу с пакетом удобнее и как это будет выглядеть?
разработчикам программы наверняка пригодится ваш многолетний опыт использовать программ инженерного расчета.
Не могли бы вы описать ваше видение того, как должна выглядть удобная программа этого типа.
Лучше, конечно, не в общих чертах, а в деталях - какие именно из деталей сделают работу с пакетом удобнее и как это будет выглядеть?
#8 Опубликовано: 20.03.2010 12:11:35
Давайте создадим отдельный топик по этому поводу. Обычно, при промышленном писании, выдаётся Техническое Задание на проект. Это нужно как опора для будущего "здания" проекта. Если все будут заваливать автора хотелками, то это будет хаос, что приведёт к таким ужасным вещам, как нелогичности программы. Не обязательно что-то конкретно прописывать, можно просто продекларировать. Пункты в ТЗ пишутся в общих терминах, т.к. заранее далеко не всегда известен механизм реализации. ТЗ декларирует цель (первоначальную цель), далее ТЗ уточняется (можно выложить его на форуме, дать номер редакции/версии) и пишется код, потом результат сравнивается с целями, вырабатывается протокол неточностей, ошибок, в ТЗ вводятся поправки и всё повторяется. Поэтому я за то, чтобы автор потратил время на описания Плана своих задумок по пунктам, а народ бы обсудил этот план и сделал корректировки. У нас в России есть люди, которые достаточно давно работают с матпакетами и им есть что посоветовать и поучаствовать на уровне ТЗ. Вот недавно один из авторов книг по Маткад выложил свои наработки: http://forum.exponenta.ru/viewtopic.php?t=9720
Я тут уже как-то писал, что мог бы помочь даже в реализации некоторых функций и даже предложить один интересный метод решения систем нелинейных уравнений, но это в будущем. Пока буду ждать чего-то похожего на ТЗ или план и одновременно осваивать местный плагинный интерфейс. Также я предлагал ввести отладку и показал пример того как я это сделал для Маткад (выслал код и описание автору).
Я тут уже как-то писал, что мог бы помочь даже в реализации некоторых функций и даже предложить один интересный метод решения систем нелинейных уравнений, но это в будущем. Пока буду ждать чего-то похожего на ТЗ или план и одновременно осваивать местный плагинный интерфейс. Также я предлагал ввести отладку и показал пример того как я это сделал для Маткад (выслал код и описание автору).
Россия навсегда!
Вячеслав Мезенцев
1 пользователям понравился этот пост
Serg 25.01.2014 11:36:00
#9 Опубликовано: 20.03.2010 16:12:12
Вы описали водопад.
Здесь же что-то типа agile.
Слушаем пользовательские истории и реализуем те, которые обладают большей ценностью.
Здесь же что-то типа agile.
Слушаем пользовательские истории и реализуем те, которые обладают большей ценностью.
1 страниц (9 вхождений)
-
Новые сообщения
-
Нет новых сообщений