|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.02.2010, 17:33 | #1 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Программа и MathCAD
пишу программы на С++,часто возникает ситуации,когда изначально в программу нельзя забить формулу(ну для примера: Реализовывал метод Свенна,ничего сложного,но необходимо заранее забить функцию,например y=sin(x),x!=0;y=1,x==0...) Хочется связать MathCad с программой,чтобы пользователь вводил формулу в Маткаде,потом программа посылала значение х в Маткад,Маткад вернул значение у..Как мне это сделать?.. Возможность такая должна быть... Парсить формулы бессмысленно,да и парсер не проще прикрутить,чем маткад..
Не давай организму поблажки, каждый день тренируй его в шашки..
|
19.02.2010, 20:05 | #2 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Поищи вот эту книгу (или какое-то из её более ранних изданий, посвящённых более старым (13,...8,..) версиям; там только цифры в названии менялись). Ну и в документации наверняка должно быть (в MATLAB'е отдельный документ mixed-language-программированию посвящён).
Ну и, может, всё-таки, идею парсера http://www.codeproject.com/KB/recipe...athParser.aspx http://www.codeproject.com/KB/recipe...athParser.aspx пока не отбрасывать?... |
19.02.2010, 23:01 | #3 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Ну насчет парсеров я думал и не раз,но вот какая штука,на мой взгляд это занятие муторное и неблагодарное,особенно когда вся документация на английском языке(всю жизнь учил испанский,да и тот хромает). Да и если будет дана система уравнений,то еще необходимо будет писать и свой парсер,чтобы проверять условия...Конечно,если бы я выложил исходники и мне кто-нибудь помог вставить туда парсер(чтобы у меня был образец),тогда все кажется проще.Но это же никто не сделает,правильно?).. Поэтому налажу связь программы и маткада и вместо того,чтобы вызывать функцию double f(double x),буду передавать х в маткад...Выглядит более реально..))
Не давай организму поблажки, каждый день тренируй его в шашки..
|
19.02.2010, 23:08 | #4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...оно конечно на delphi... но важен сам принцип, через ole.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
20.02.2010, 00:01 | #5 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Хмм...пока не понятно...вот она запустила Маткад
Код:
Код:
З.Ы.С OLE вроде все понятно,но в примере,который я нашел подключали #include <Mathcad_TLB.h>,надо ли её подключать,или просто создать контейнер и все...Контейнер же делает доступными все функции типа "SetComplex"?..
Не давай организму поблажки, каждый день тренируй его в шашки..
Последний раз редактировалось Скарам; 20.02.2010 в 00:34. |
20.02.2010, 01:06 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...думаю для начала попробовать импортировать интерфейсы либы mathcad.dll... по-поводу мануала с api самому интересно.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
21.02.2010, 20:22 | #7 | |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Смог добавить в проект
Код:
Но дальше что делать не понятно,здесь написано,что можно создать,например,объект IMathcadWorksheet,но когда пишешь Код:
З.Ы.Ввот пример: Создаю IMathcad McdDoc;,пишет Цитата:
Не давай организму поблажки, каждый день тренируй его в шашки..
Последний раз редактировалось Скарам; 21.02.2010 в 20:27. |
|
21.02.2010, 21:27 | #8 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...попробуйте через тип variant
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
21.02.2010, 21:37 | #9 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
|
22.02.2010, 00:03 | #10 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
To raxp,у типа variant нет метода open,я пробовал похожие варанты-и через OleFunction,OleProcedure и так можно продолжать очень долго,обычно вываливается ошибка на стадии выполнения программы с сообщением Неизвестное имя функции или такое действие не поддерживается..
To netrino,теперь создается,даже стали доступны методы класса GetValue и прочие..теперь осталось разобраться как от OleContainer1->CreateObjectFromFile( "c:\\funcion.xmcd", False ); перейти к этому классу.Здесь есть пример на делфи,в котором они от объекта переходят к MC.Worksheets...Какой аналог у Worksheets в С++?Просмотрел все,что предлагает OleContainer1-> и OleContainer1->OleObject, там такой строки нет(...В принципе после этого перехода думаю,что все проблемы решаться...(
Не давай организму поблажки, каждый день тренируй его в шашки..
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MathCad | werser | Помощь студентам | 1 | 14.12.2009 18:01 |
MathCAD+интерфейс | e-bosh | Помощь студентам | 0 | 01.12.2009 17:07 |
MATHCAD | HECTOR.A. | Помощь студентам | 3 | 08.03.2009 20:21 |
MathCad | madshizik | Microsoft Office Excel | 2 | 10.10.2008 18:36 |