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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline уни  
#21 Оставлено : 23 ноября 2010 г. 17:07:06(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Я вспомнил, что собирал архивчик в отладочной конфигурации (Debug), может поэтому не работало. Пересобрал в релиз и вроде стало лучше: mcadefi_20101123.7z

Помните, что пока это тестовая версия. Работа со строками пока не реализована, сообщения об ошибках из маткадовских библиотек игнорируются.

К слову сказать, не много я видел проектов пользовательских библиотек для Mathcad. Я мог бы показать ещё одну интересную библиотечку, но там нужна визуализация двумерных массивов, содержащих изображения. В SMath Studio пока такого нет.

Вот:
http://edu.tnw.utwente.n.../manual/onlinemanual.htm

Думается мне, что эту библиотечку можно будет прикрутить.
Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#22 Оставлено : 23 ноября 2010 г. 17:42:52(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Ха, работает:


Жаль только посмотреть результаты работы пока нельзя и почему-то в версии для MC14 загрузилась только эта функция Good

Отредактировано пользователем 23 ноября 2010 г. 17:48:31(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
thanks 3 пользователей поблагодарили уни за этот пост.
Ber7 оставлено 23.11.2010(UTC), build_your_web оставлено 24.11.2010(UTC), mikka оставлено 24.11.2010(UTC)
Offline уни  
#23 Оставлено : 24 ноября 2010 г. 9:20:19(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Вот почти полная подержка маткадовских библиотек: mcadefi_20101124.7z

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

Могу ещё до кучи добавить пример пользовательской библиотеки на ассемблере. Да, для SMath Studio можно будет писать численные плагины и на ассемблере, через это дополнение. Может кому-то пригодится.

П.С. Теперь для маткадовских функций в описании пишется и модуль (имя dll'ки), где она находится.

П.С.2 Исправил ссылку, теперь поддерживаются и сообщения об ошибках из самих библиотек. От обилия функций окно с текстом в Сервис\Дополнения... зависает. Уж не знаю на кого грешить. Добавил пакет WSPro, а там больше 300, кажется, функций... и всё, окно в ауте, загрузка процессора 100%.

Отредактировано пользователем 24 ноября 2010 г. 11:06:13(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
thanks 1 пользователь поблагодарил уни за этот пост.
smath оставлено 24.11.2010(UTC)
Offline уни  
#24 Оставлено : 24 ноября 2010 г. 20:48:51(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Пояснительная записка к плагину для MathCAD bqmcad:
http://schoolbell.nichost.ru/tmp/bqmcad.pdf

Исправил ошибки, плагин включил в архив: mcadefi_20101125.7z

Дополнительная ссылка: http://karataev.nm.ru/bqmcad/bqmcadru.html
Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#25 Оставлено : 25 ноября 2010 г. 11:46:33(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Андрей, правильно ли я понимаю, что строка хранится вместе с обрамляющими двойными кавычками?
В плагине строка передаётся как есть в маткадовский плагин. Ещё есть некоторая неточность при индексировании номера ошибки. При возникновении ошибки в маткадовском плагине, сообщение может не соответствовать. Не понял пока алгоритма выбора сообщения об ошибке из таблицы ошибок (поведение отличается от того же в Маткаде).
Россия навсегда!
Вячеслав Мезенцев
Offline smath  
#26 Оставлено : 25 ноября 2010 г. 12:30:05(UTC)
smath


Статус: Administration

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

Сказал «Спасибо»: 505 раз
Поблагодарили: 260 раз в 101 постах
уни написал:
Андрей, правильно ли я понимаю, что строка хранится вместе с обрамляющими двойными кавычками?

Верно. Двойные кавычки в начале и конце являются ключём к типу данных. Так же и с единицами измерения - апостроф в начале есть такой же ключ.
Offline уни  
#27 Оставлено : 25 ноября 2010 г. 19:34:17(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Тут одна идея возникла. Можно предлагать использовать программу фирмам на подобие этой:
http://www.techwareeng.com/

Там есть ряд продуктов для вычислений. Они "заточены" под Excel, Lotus и Mathcad (см. документацию по ссылкам).
Учитывая наличие дополнения mcadefi можно, думается мне, уже предлагать не навязчиво попробовать их продукты и с SMath Studio.

Сейчас плагин вполне работоспособен. В следующем релизе сделаю ещё ряд мелких исправлений и дополнений.
Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#28 Оставлено : 26 ноября 2010 г. 14:40:15(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Андрей, а чем отличается тип ArgumentSections::FileName от ArgumentSections::String?

mcadefi_20101126.7z

Новая версия. Пофиксил некоторые баги, добавил тип параметра INFILE. Плагин mcadefi должен отрабатывать более корректно. А вот библиотечка от NIT, которую я упоминал выше, использует какие-то странные параметры в описании некоторых функций, которые не определены в заголовочном файле. Поэтому ни Маткад, ни тем более mcadefi не смогут загрузить функции, параметров которых не знают. Такие функции будут просто проигнорированы.

Отредактировано пользователем 26 ноября 2010 г. 15:05:38(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline smath  
#29 Оставлено : 26 ноября 2010 г. 14:53:33(UTC)
smath


Статус: Administration

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

Сказал «Спасибо»: 505 раз
Поблагодарили: 260 раз в 101 постах
Только тем, что будет подставляться в описание функции. Никакого другого функционала от этого не зависит. Если же смотреть с точки зрения чисто логического, то FileName (будучи URI) является частным случаем String.
Offline уни  
#30 Оставлено : 26 ноября 2010 г. 15:14:35(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
В маткаде тоже есть параметр INFILE, но там очень много чего зависит от него:
Код:

// File name variables. These are passed as const char *pointers
// if the string doesn't look like it has a path in it then 
// the current working directory will be prepended to the string 
// before it is passed to the user function.
// 
//

// your function will be passed a const char * pointer
#define INFILE			13

Я обработал этот тип как строку за исключением того, что в библиотеку передаю указатель на строку, я не структуру, как в случае со строкой. В Руководстве разработчика такой тип вообще не описан и не используется, как, видимо, и многие другие, только COMPLEX_SCALAR, COMPLEX_ARRAY и STRING. Хотя тесты показали, что Маткад INFILE отрабатывает согласно заголовочника, плагин mcadefi теперь тоже. Правда никаких текущих путей я не трогаю.

Отредактировано пользователем 26 ноября 2010 г. 15:16:29(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#31 Оставлено : 17 апреля 2012 г. 20:11:14(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Как подключить старый паскалевский численный код через интерфейс Mathcad User EFI. На примере древней библиотеки "NUMERICAL RECIPES IN PASCAL".

Один уральский программист (Александров О.Е.) из УПИ (УФУ) с ФизТеха портировал маткадовский интерфейс на паскаль. Получилось два файла:

1. McadUserTypes.pas
2. McadUserEx.pas

То была часть НИР "Разработка методики создания виртуальных приборов для учебных целей и создание учебно-программного комплекса на базе эмулятора масс-спектрометра МИ-1201 АГМ". По-моему, это единственное место в сети, где человек решил писать пользовательские библиотеки для Mathcad'а на паскале. Это, конечно, не очень хорошо, но это работает, что позволяет подключать сторонний математический код на старом паскале, с которым Вы ну никак не хотите расставаться всю оставшуюся жизнь.

Для подключения своей функции нужно выполнить несколько шагов:
1. Описать функцию в стиле User EFI (см. примеры: FLMOONUnit.pas)
2. Написать обёртку для Вашей функции в стиле User EFI (примеры там же).
3. Зарегистрировать функцию, вызовом CreateUserFunction() в основном модуле (см. примеры: MainUnit.pas)

Ниже приведены исходники для Delphi7. И в результате мы имеем:


П.С. А плохо это тем, что отлаживать такой код можно только при помощи специального лога ошибок, который делать вручную. Либо я не понял как это делать в Delphi7. SMath Studio работает в управляемом пространстве .Net, а код написан для неуправляемого пространства Windows. Поэтому, таким образом лучше подключать уже отлаженный код или отлаживать его отдельно, а потом подключать.

Ссылки:
Исходники: http://pascal.sources.ru/math/nrpas13.htm
Исходники плагина: https://smath.info/svn/p.../NumericalRecipesPascal/
Сам плагин: nrpas13.dll (нужно положить в папку /plugins/userefi/)
НИР: http://mp.ustu.ru/Users/NIR_05.01.038/

Отредактировано пользователем 17 апреля 2012 г. 20:12:46(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline Balakin Vladimir  
#32 Оставлено : 26 сентября 2012 г. 8:26:58(UTC)
Balakin Vladimir

Статус: Newbie

Группы: Registered
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 3
Российская Федерация
Откуда: Россия

Приветствую.
Версия Smath 0.95(сборка 4594). Из mcadefi_20120411.zip/plugins пара .dll и папка "userefi" скопирована в папку плагинов Smath. При запуске появляется окно с ошибкой (размер картинки 118 кб). Что можно тут сдалать?
Offline уни  
#33 Оставлено : 26 сентября 2012 г. 8:58:29(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Автор: Balakin Vladimir Перейти к цитате
Приветствую.
Версия Smath 0.95(сборка 4594). Из mcadefi_20120411.zip/plugins пара .dll и папка "userefi" скопирована в папку плагинов Smath. При запуске появляется окно с ошибкой (размер картинки 118 кб). Что можно тут сдалать?

Не знаю, если честно. Я заменил сборку на новую, которая работает у меня на машине (WinXP, на семерке пока не проверял). Попробуйте ещё раз.

Отредактировано пользователем 27 сентября 2012 г. 7:14:25(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline Balakin Vladimir  
#34 Оставлено : 27 сентября 2012 г. 10:14:39(UTC)
Balakin Vladimir

Статус: Newbie

Группы: Registered
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 3
Российская Федерация
Откуда: Россия

На какой версии Smath у Вас работало или работает?
Offline уни  
#35 Оставлено : 27 сентября 2012 г. 15:53:16(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
На последней SMath Studio 0.95(сборка 4594). Вообще, ошибка странная, этот Windows 7 мне никогда не нравился. Я попробую запустить SMath на своей Win7 вместе с плагином и посмотрю что будет.

П.С. Посмотрел на чистой семёрке x32. Всё работает. Запускал под админом. Если дадите доступ к системе через Team Viewer 7, то я могу попробовать посмотреть на проблему живьём.

Отредактировано пользователем 27 сентября 2012 г. 21:34:53(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline Balakin Vladimir  
#36 Оставлено : 28 сентября 2012 г. 9:34:28(UTC)
Balakin Vladimir

Статус: Newbie

Группы: Registered
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 3
Российская Федерация
Откуда: Россия

У меня в Windows 7 64-разрядной не работает. На следующей неделе в будний день после 18 часов по Москве сможете?
Offline уни  
#37 Оставлено : 28 сентября 2012 г. 9:38:47(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Автор: Balakin Vladimir Перейти к цитате
У меня в Windows 7 64-разрядной не работает. На следующей неделе в будний день после 18 часов по Москве сможете?

Скорее всего мне нужно просто перекомпилировать проект под 64 разряда. Я посмотрю где там и что нужно поменять и сделаю специальный релиз для Win7(x64). Посмотрим что будет. Правда как при этом будут загружаться обычные dll, они ведь тоже для 32-х разрядов?

Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#38 Оставлено : 28 сентября 2012 г. 9:51:44(UTC)
уни


Статус: Advanced Member

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

Сказал «Спасибо»: 50 раз
Поблагодарили: 151 раз в 103 постах
Вот попробуйте, хотя, думается мне, что может выскочить куда более страшная ошибка Good

mcaduser-x64.zip
Россия навсегда!
Вячеслав Мезенцев
Offline mkraska  
#39 Оставлено : 7 февраля 2013 г. 11:49:34(UTC)
mkraska


Статус: Advanced Member

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

Сказал(а) «Спасибо»: 344 раз
Поблагодарили: 44 раз в 35 постах
Автор: уни Перейти к цитате
Последняя редакция дополнения: mcadefi_20120926.zip


К сожалению плагин у меня не работает (win 7, x64). Очень хотелось бы испытать его.

Сначала SMath жалуется что не может наидти файл, потом жалуется про формат файла.

Мартин

Отредактировано пользователем 7 февраля 2013 г. 11:56:05(UTC)  | Причина: Не указана

Пользователь mkraska прикрепил следующие файлы:
mcadefi-error.PNG
mcaduser-error.PNG
Martin Kraska

Неоффицальная портативная версия SMath с дополнениями http://smath.info/wiki/SMath%20with%20Plugins.ashx
Offline uni  
#40 Оставлено : 7 февраля 2013 г. 20:41:58(UTC)
uni


Статус: Advanced Member

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

Сказал «Спасибо»: 409 раз
Поблагодарили: 1 раз в 1 постах
Увы, он и не предназначен для 64-разрядных систем. Я его делал для совместимости с пользовательскими dll Mathcad. Не уверен, что можно так просто использовать 32-разрядные версии дополнений в 64-разрядной среде. У меня просто нет под рукой 64-разрядной системы, а так я бы может нашёл в чём дело. В любом случае это рудимент и его назначение - это использование старого кода, который лень или неохота переписывать под .Net.
Как появится рабочая машина с 64-разрядами я попробую собрать дополнение и протестировать его работу.
thanks 1 пользователь поблагодарил uni за этот пост.
mkraska оставлено 08.02.2013(UTC)
Пользователи, просматривающие эту тему
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.