VB + MathCAD

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Celebril
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.09.2008 (Вт) 18:39

VB + MathCAD

Сообщение Celebril » 16.09.2008 (Вт) 22:11

Добрый вечер.
Допустим, есть у нас функция y = f(x)+i
Нужно как-то реализовать следующий алгоритм.
1. Задать i (это просто :) )
2. Передать данные (функцию y) в MathCAD (а вот тут начинаются проблемы :) )
3. Вернуть в нашу программу график этой функции y (который должен нарисовать MathCAD), в виде OLE-объекта
4. Ну и отобразить график

Или раскатал губу? :)

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Re: VB + MathCAD

Сообщение Александр Дмитриев » 16.09.2008 (Вт) 23:49

А может быть, тебе лучше не MathCAD использовать для рисования графиков, а встроить в программу какой-нибудь класс, чтобы он тебе их рисовал?

Celebril
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.09.2008 (Вт) 18:39

Re: VB + MathCAD

Сообщение Celebril » 17.09.2008 (Ср) 9:22

Я вчера, наверное, неясно мысль выразил. На свежую голову сейчас попробую объяснить.
У нас есть файл MathCAD'a. Например, такой, как прикрепленный.
Здесь f(x) = sin(x) + i
Необходимо, чтобы VB передавал эту i в MathCAD. Ну и, естественно, потом от него принимал соответствующий OLE.
Вложения
example.rar
Простенький график.
(7.71 Кб) Скачиваний: 43

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Re: VB + MathCAD

Сообщение Александр Дмитриев » 18.09.2008 (Чт) 22:36

Celebril писал(а):У нас есть файл MathCAD'a ... Необходимо, чтобы VB передавал эту i в MathCAD.
Тебе нужно в том числе файл править, или все операции планируется делать в пределах оперативной памяти?
Celebril писал(а):Ну и, естественно, потом от него принимал соответствующий OLE.
Что здесь значит "принимал OLE"?

Celebril
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.09.2008 (Вт) 18:39

Re: VB + MathCAD

Сообщение Celebril » 18.09.2008 (Чт) 23:23

Александр Дмитриев писал(а):Тебе нужно в том числе файл править, или все операции планируется делать в пределах оперативной памяти?

В пределах оперативной. Я посмотрел примеры в папке с MathCAD'ом. SetComplex работает, а вот с SetValue я не разобрался, да и впримерах его нет.
Александр Дмитриев писал(а):Что здесь значит "принимал OLE"?

Файл MathCAD'а в проект вставлен как OLE-объект.

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Re: VB + MathCAD

Сообщение Александр Дмитриев » 19.09.2008 (Пт) 2:30

Понял. SetValue можно использовать так:
Код: Выделить всё
mc.Worksheet.SetValue "i", Val(Text1.Text)
Здесь mc - это объект OLE.

Celebril
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.09.2008 (Вт) 18:39

Re: VB + MathCAD

Сообщение Celebril » 19.09.2008 (Пт) 15:03

Спасибо, все работает.
Только все равно непонятно кое-что.
Во-первых, почему изменения отображаются только со второго нажатия на кнопку?
Во-вторых, не получается изменять добавленные мной переменные. Я так понял, нужно создавать Input Variable. Не могу пока понять, как.

UPD.
Первый вопрос вроде решил банальным прибавлением единички в цикле. Но все равно интересно, в чем дело - может удастся сделать лучше.
И еще сейчас заметил. Почему-то всегда отображается только часть документа определенного размера. То есть, когда я увеличиваю в mcd-файле график или дописываю что-то, то в моей программе изображение как будто обрезается. Вот это проблема...

Celebril
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.09.2008 (Вт) 18:39

Re: VB + MathCAD

Сообщение Celebril » 20.09.2008 (Сб) 18:29

Может кто-нибудь все же подскажет, как избавиться от того, что документ обрезается и не полностью отображается?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 77

    TopList