Исследование механизмов построения интегрированной инструментальной среды на базе КОМПАС-3D

Направления развития САПР. Технологии интеграции инструментальных приложений. Схемы взаимодействия КОМПАС-3D и MathCAD на основе механизмов интеграции. Разработка интерфейсных модулей и механизма связывания переменных, апробация программного решения.

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 15.04.2013
Размер файла 6,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

iExtrusionParam = iDefinition.ExtrusionParam()

iExtrusionParam.depthNormal = 50.0

iExtrusionParam.depthReverse = 10.0

iExtrusionParam.direction = LDefin3D.dtNormal

iExtrusionParam.draftOutwardNormal = False

iExtrusionParam.draftOutwardReverse = False

iExtrusionParam.draftValueNormal = 0.0

iExtrusionParam.draftValueReverse = 0.0

iExtrusionParam.typeNormal = LDefin3D.etBlind

iExtrusionParam.typeReverse = LDefin3D.etBlind

iThinParam = iDefinition.ThinParam()

iThinParam.thin = False

iThinParam.normalThickness = 1.0

iThinParam.reverseThickness = 1.0

iThinParam.thinType = LDefin3D.dtNormal

obj.name = " Операция выдавливания:1"

iColorParam = obj.ColorParam()

iColorParam.ambient = 0.5

iColorParam.color = 9474192

iColorParam.diffuse = 0.6

iColorParam.emission = 0.5

iColorParam.shininess = 0.8

iColorParam.specularity = 0.8

iColorParam.transparency = 1.0

obj.Create()

Приложение 2

Задание на Международную олимпиаду по САПР и компьютерному моделированию (приводится в оригинале).

РАЗРАБОТАТЬ САПР ШПОНОЧНЫХ ПРОТЯЖЕК С ВЫДАЧЕЙ РЕЗУЛЬТАТА В ВИДЕ РАСПЕЧАТКИ РАБОЧЕГО ЧЕРТЕЖА ШПОНОЧНОЙ ПРОТЯЖКИ.

Провести расчет для данных, которые приведены ниже.

1. ПОРЯДОК РАСЧЕТА ПРОТЯЖКИ

1.1. Исходные данные для расчета:

1. Диаметр отверстия заготовки D.

2. Длина отверстия L .

3. Ширина b и глубина шпоночного паза t1 .

4. Материал заготовок и протяжки.

Последовательность расчета:

1. Рассчитывается величина стрелки C по формуле:

С=0,5(D-)

.

2. Устанавливается припуск А, который срезается протяжкой

A=t1 - D + C,

3. Конструктивная подача или подъем на зуб на сторону Sz выбирается по таблице 1 (Сначала вибирают максимальную подачу из диапазона).

Таблица 1 Величина подъема Sz на сторону, мм

№ п.п

Материал,

который обрабатывается

, МПа

Подъем на зуб Sz, мм

1

Сталь

< 750

0,05-0,20

2

Сталь

>= 750

0,05-0,12

3

Чугун

-

0,06-0,20

4

Алюминий

-

0,05-0,08

5

Латунь, бронза

-

0,08-0,20

4. Глубина впадины зуба протяжки (высота первого зуба)

,

где k - коэффициент заполнения стружечной канавки (табл.2).

L - длина обрабатываемой поверхности, мм

Sz - величина подъема на зуб.

Таблица 2 Коэффициенты заполнения стружечной канавки при обработке металлов

Sz, мм

СТАЛЬ

до 400 МПа

СТАЛЬ

от. 400 до 700 МПа

СТАЛЬ

более

700 МПа

Медь,

латунь,

алюминий

Чугун,

Бронза

о 0,03

3,0

2,5

3,0

2,5

2,5

от 0,03 до 0,07

4,0

3,0

3,5

3,0

2,5

более 0,07

4,5

3,5

4,0

3,5

2,0

5. Предварительно определяется шаг режущих и калибрующих зубьев

,

который рекомендуется округлять к ближайшим значениям из нормального ряда шагов зубьев протяжек:

4, 5, 6, 8, 10, 12, 14, 18, 20, 22, 25.

6. Проверка шага по наибольшему числу зубьев, которые одновременно берут участие в работе

Zmax=.

У полученной при расчете величины Zmax дробная часть отбрасывается, но в любом случае необходимо, чтобы Zmax 3. В противном случае шаг уменьшают, рассчитывая по формуле:

,

а потом опять округляют к стандартному меньшему значению.

7. Проверка соотношения между шагом и глубиной стружечной канавки:

;

в случае, когда это неравенство не выпонляется, умельшают величину Sz с шагом 0,01мм до меншего значения из диапазона, указанного в табл.1, и повторяют расчет, начиная с п.п.4. Если м при этом решение не найдено, увеличивают шаг , выбирая следующее большее значение из стандартного ряда.

8. Определяется высота направляющей части. У шпонковой протяжки она равна высоте хвостовика H1 (таблица 3). По этой таблице определяются и все остальные размеры хвостовика.

9. Площадь опасного сечения хвостовика необходимо также выбрать из таблицы 3 в зависимости от размера шпонкового паза.

Таблица 3 Размеры хвостовиков под кулачковые патроны для шпонковых протяжек

Размеры хвостовика, мм

Площадь опасного сечения

b

l1

B1

H1

a1

a

f

b1

Fхв. мм2

6

70

10

15

15

20

4

6

49,4

8

70

12

18

15

20

6

8

143,6

10

70

15

22

15

20

6

10

219,6

12

80

-

28

18

20

6

8

224

Примечание. l1 - длина захода хвостовика в тяговый патрон. Dотв. - диаметр отверстия.

10. Площадь опасного сечения по канавке первого зуба рассчитывается согласно формул (табл.3):

11. Подсчитывается наибольшая сила протягивания в Н по формуле

,

где , х=0,85

12. Проверка протяжки на прочность. На проочность протяжки проверяются по впадине первого зуба по формуле

;

и по хвостовику

;

где - допустимое напряжение на разрыв (для быстрорежущей стали =200 МПа, для легированной стали =150 МПа).

У протяжек с хвостовиками под клиновой зажим (табл.3) выполняют еще проверочный расчет на смятие клина по формуле:

.

Тут площадь смятия

где b1 - ширина паза под клин, мм;

b - ширина шпоночного паза, мм.

Допустимое напряжение смятия :

- для легированной стали - =(400-450) МПа ;

- для быстрорежущей стали - =600 МПа;

В случае, когда какое-либо условие прочности не выполняется, уменьшают величину Sz с шагом 0,01мм до меншего значения из диапазона, указанного в табл.1 и повторяют расчет, начиная с п.п.4. Если и в этом случае решение не найдено, увеличивают шаг , выбирая следующее большее значение из стандартного ряда и повторяют расчет, начиная з п.п.№6.

13. Определяется высота калибрующих зубьев

Hк = Hхв +A ,

где Hхв - высота хвостовика, мм;

A - припуск на протягивание, мм.

14. Определяется число режущих зубьев

15. Рассчитываются размеры режущих зубьев. Высота первого режущего зуба H1 принимается равной высоте хвостовика:

H1 =Hхв

Высота следующих зубьев увеличивается на величину подъема на зуб Sz :

H2=H1+Sz ; H3=H2+ Sz ; H4=H3+ Sz i т.д.

Последние два режущих зуба рассматриваются как переходные, а их высота определяется суммироваанием 0,6 Sz i 0,4 Sz

Необходимо проверить, чтобы высота последнего режущего зуба равнялась высоте калибровочных:

Hpi=Hк=Нхв+А

Если это условие не выполняется, корректируют высоту последнего режщего зуба.

16. Формируется таблица размеров режущих зубьев по форме:

Тип зубьев

Режущие

Калибрующие

Допуск, мм

0,01мм

0,005мм

Высота зуба H, мм

Номер зуба

1

2

3

4

17. Число каалибрующих зубьев принимают

Zk=4

18. Суммарная длина протяжки

,

где l - расстояние от торца хвостовика до первого зуба, которая составляет 160мм и выбирается в зависимости от длины передней направляющей, длины направляющей втулки (адаптера), длины хвостовика, который входит в патрон и толщины упорной плиты станка;

l1 -длина рабочей части протяжки. Она равна сумме длин режущей и калибрующей частей:

l1=lр+lk .

Длина режущей части

,

а калибрующей

У шпоночных протяжек задней направляющей части не делают. Ее функцию выполняет последний калибрующий зуб с шагом 1,5 Рк . Поэтому

Тут Рк - шаг калибровочных зубьев.

19. Выполняется проверка на то, чтобы суммарная длина протяжки была не больше допустимой величины, которая приведена в таблице 5.

Таблица 5 Наибольшая допустимая величина шпоночных протяжек

Площадь сечения хвостовика , мм2

L доп., мм

35

500

50

700

190

900

240

1000

Если общая длина шпоночной протяжки превышает длину Lдоп., тогда припуск A делится на принятое число проходов n. При этом расчет протяжки проводится для припуска А/n.

Рис. 1. Форма и размеры стружечных канавок черновых зубьев протяжки

20. Определяются элементы профиля зубьев протяжки в осевом сечении (рис.1):

ширина спинки ; радиус дна впадины r= 0,50X h; радиус спинки .

21. Определяем величины углов: переднего и заднего согласно табл.6.

Таблица 6 Величины переднего угла у протяжек

Обрабатываемый материал

Угол g , град.

Сталь в МПа 600

16

Сталь в МПа 600 до 1000

14

Сталь в МПа > 1000

10

Чугун НВ 150

10

Чугун НВ > 150

6

Алюминий

13

Бронза

3

Выбирается задний угол :

- для режущих зубьев ;

- для калибрующих зубьев .

Величина фаски f на режущих зубьях не более 0,05мм, на калибрующих - 0,2-1мм.

22. Ширина режущей части протяжки равна:

23. Выводятся на экран (по запросу) все рассчитанные результаты, которые относятся к параметрам протяжки.

3.РАЗРАБОТКА РАБОЧЕГО ЧЕРТЕЖА ШПОНОЧНОЙ ПРОТЯЖКИ:

Вычерчивается профиль стружечной впадины между двумя соседними зубьями (рис.1), который состоит из:

· задней поверхности предыдущего зуба шириной С;

· передней поверхности следующего зуба, размещенной под углом , вершина которого находится выше предыдущего на величину подъема на зуб Sz.

· дуги окружности, касательной к передней поверхности и линии, которая определяет глубину канавки h.

· дуги окружности спинки зуба, которая проходит через конец линии задней оверхности, касательно к дуге впадины стружечной канавки.

Проводится копирование этого профиля в количестве, равном числу режущих и калибровочных зубьев. При этом обеспечивается сдвиг каждого профиля по отношению к предыдущему на величину шага в горизонтальном направлении и на заданную величину подъема на зуб - в вертикальном (для переходных подъем уменьшенный, а для калибровочных - равен нулю). Дочерчивается хвостовик, на расстоянии 160мм от первого зуба до левого торца хвостовика. Линия нижней поверхности хвостовика продолжается на полную длину протяжки и оформляется задняя часть, как показано на рис.2.

Рис.2.Протяжка шпоночная обыкновенная: 1 - для протяжек, работающих в один проход; 2 - для протяжек, работающих в несколько проходов.

Приложение 3

РАСЧЕТ РАДИАТОРА ПОЛУПРОВОДНИКОВОГО ПРИБОРА

(по материалам [3,21])

Исходные данные

tп.max - максимальная температура перехода;

Rвн - внутреннее тепловое сопротивление прибора;

Ррас - мощность рассеиваемая прибором;

tc - температура окружающей среды;

Rкт - контактное сопротивление прибор - теплосток (величина Rкт лежит в пределах 0,1-1,0 град/Вт).

Последовательность расчета

1. Мощность рассеяния прибора при заданных условиях

,

где Rтс - тепловое сопротивление теплосток (радиатор)-среда. Необходимо выполнить условие Рmax > Ррас.

2. Тепловое сопротивление теплосток - среда

,

где q - коэффициент, учитывающий неравномерность распределения температуры по радиатору (q » 0,9).

3. Среднеповерхностная температура перегрева радиатора (рис. 2.8)

tT - tc =Ppac · Rтс

4. По D t (рис. 2.9) находят минимальную высоту радиатора Lmin.

5. Задаются габаритами радиатора: l - ширина радиатора, b - расстояние между ребрами, h - высота ребра, d - толщина основания. Рекомендуется придерживаться следующих соотношений: при основании радиатора 90ґ 90 мм; d = 3мм; d = 5 мм; h = 20 мм; b = 12 мм (естественная конвекция) и b = 6 мм (принудительное движение воздуха).

6. Расстояние между ребрами

,

где n и d - число и толщина ребра.

Расстояние между ребрами определяют из условия b і А, где А толщина пограничного слоя (при естественной конвекции А = 8-10 мм, вынужденной - А » 2,5 мм).

Толщина и высота ребра выбираются из условия

,

где h - высота ребра; a - суммарный коэффициент теплоотвода; l - теплопроводность материала радиатора. Ширину радиатора l определяют из конструктивных соображений, считая l » 0,9 Lmin:

l = n (b + d ) - b.

Материалы для радиаторов

 

g , кг/м3

l , Вт/(м· ° С)

Медь

Сплавы алюминия

Сплавы магния

Сталь

Нержавеющая сталь

8960

2660

1760

7840

7840

370

160

170

55

14

Степень черноты поверхностей некоторых материалов

Алюминиевый сплав с шероховатой поверхностью

Алюминиевый сплав окисленный

Алюминиевый сплав анодированный (черный)

Медь окисленная

0,06-0,07

0,20-0,30

0,80-0,85

0,80-0,88

7. Целесообразность оребрения радиатора определяется по критерию Био

Bi = 0,5ad/l,

Bi < 1 (ребро охлаждается), Bi >1 (ребро изолятор), Bi = 1 (ребро не влияет).

8. Всю поверхность радиатора разбивают на части:

S1 - поверхность между ребрами;

S2 - поверхность ребер, обращенная друг к другу;

S3 - поверхность крайних ребер;

S4 - поверхность торцов ребер;

S5 - неоребренная поверхность.

Неоребренная поверхность S5 = l· L

Оребренная поверхность

Sореб= S1+ S2+ S3+ S4=(n-1)· (bLmin)+ 2hl(n-1)+2(+d)Lmin+ n[ 2hd +d Lmin] .

9. Полные коэффициенты теплоотдачи оребренной и неоребренной поверхностей

a гл = a л.гл + a к.гл; a ореб = a л.ореб + a к.ореб; a л = e п· j ij· f(tт,tс).

Для поверхностей S1 и S2 коэффициенты взаимной облученности определяются из графика (рис. 2.10) или рассчитываются

.

Конвективный коэффициент теплоотдачи, Вт/(см2· ? С)

aк = 5,62A(tм)· B,

где tм = 0,5(tт + tc);

Величина А(tм) учитывает свойства среды и находится по графику (рис. 2.11).

Влияние атмосферного давления на величину А(tм) находят из графика рис. 2.12.

10. Мощность, рассеиваемая гладкой поверхностью радиатора, Вт,

Pгл = aгл · Sгл · (tт - tc).

11. Величина теплового сопротивления гладкой поверхности, ? C/Вт,

.

12. Мощность, рассеиваемая оребренной поверхностью

,

где Рi - мощность, рассеиваемая i-й поверхностью; tic - температура среды между ребрами.

Температура воздуха вблизи поверхностей S3; S4 и S5 равна tc.

Температура воздуха вблизи поверхностей S1 и S2 (между ребрами) равна

tic = tт - (tт - tc)· H,

где H - относительный температурный напор, tт - среднеповерхностная температура теплостока.

Если ребра располагаются вертикально, то

Н = f(h ),

где h = А4(tм)bC, tм = 0,5(tт + tc), C= (tт - tc)1/4/(L)1/4 (рис. 2.13 и 2.14).

tci = tc для S3, S4, S5. tci = tic для S1 и S2 (конвективный коэффициент торцевых поверхностей ребер принимается равным крайним ребрам).

Тепловое сопротивление оребренной поверхности, °--C/Вт

.

Общее тепловое сопротивление

.

Мощность, рассеиваемая радиатором, Вт

Робщ.расч= Ргл + Рореб.

Необходимо выполнить условие Робщ.расч ? Рисх (расч).

Приложение 4

ЛИСТИНГИ ПРОГРАММНОГО КОДА (C#)

ОСНОВНЫХ ФУНКЦИЙ РАЗРАБОТАННЫХ МОДУЛЕЙ

ExVarCompass3D

//Подключение библиотек для работы с КОМПАС-3D

using Kompas6Constants;

using Kompas6Constants3D;

//В зависимости от установленной версии подключаються разные библиотеки

#if (__LIGHT_VERSION__)

using Kompas6LTAPI5;

#else

using Kompas6API5;

#endif

using KAPITypes;

// Создаём объекты для работы с КОМПАС-3D

private KompasObject kompas; // Объект КОМПАС-3D

private ksDocument3D doc3D; // 3D-Документ КОМПАС-3D

private string LastPathCompass; Путь к файлу КОМПАС-3D

// Активируем КОМПАС-3D

private void ActiveCompass()

{

if (kompas == null)

{

#if __LIGHT_VERSION__

Type t = Type.GetTypeFromProgID("KOMPASLT.Application.5");

#else

Type t = Type.GetTypeFromProgID("KOMPAS.Application.5");

#endif

kompas = (KompasObject)Activator.CreateInstance(t);

}

}

// Открываем файл Компас-3D

private void OpenFileCompass()

{

if (kompas != null)

{

OpenFileDialog OpenFileDialog = new OpenFileDialog();

OpenFileDialog.Filter = "КОМПАС-3D Документы (*.m3d;*.a3d)|*.m3d;*.a3d";

if (OpenFileDialog.ShowDialog() == DialogResult.OK)

{

CompassPath.Text = OpenFileDialog.FileName;

LastPathCompass = CompassPath.Text;

doc3D = (ksDocument3D)kompas.Document3D();

if (doc3D != null) doc3D.Open(OpenFileDialog.FileName, false);

// Делаем Компас-3D видимым

kompas.Visible = true;

}

}

else

{

MessageBox.Show(this, "Объект не захвачен", "Сообщение");

}

}

// Активируем КОМПАС-3D и открываем файл

private void StartCompass_Click(object sender, EventArgs e)

{

ActiveCompass();

OpenFileCompass();

}

// Закрываем Компас-3D, закрываем форму

private void Exit_Click(object sender, EventArgs e)

{

if (kompas != null)

{

kompas.Quit();

Marshal.ReleaseComObject(kompas);

}

Close();

}

// Считываем значение внешних переменных КОМПАС-3D

private void Compass_EV_Read_Click(object sender, EventArgs e)

{

if (kompas != null)

{

kompas.Visible = true;

if (doc3D != null)

{

if (doc3D.IsDetail())

{

kompas.ksError("Текущий документ должен быть сборкой");

return;

}

// Выбор компонента -1 главный(сама сборка),0 первый(первая деталь)

ksPart part = (ksPart)doc3D.GetPart(-1);

if (part != null)

{

// Работа с массивом внешних переменных

ksVariableCollection varCol =

(ksVariableCollection)part.VariableCollection();

if (varCol != null)

{

ksVariable var = (ksVariable)kompas.GetParamStruct

((short)StructType2DEnum.ko_VariableParam);

if (var == null) return;

this.TableCompassEV.Rows.Clear();

for (int j = 0; j < varCol.GetCount(); j++)

{

// Считывание переменных с записью в таблицу

var = (ksVariable)varCol.GetByIndex(j);

this.TableCompassEV.Rows.Add(var.name, var.value, var.note);

}

}

}

}

}

}

// Запись значения внешних переменных в КОМПАС-3D

private void Compass_EV_Write_Click(object sender, EventArgs e)

{

if (kompas != null)

{

if (doc3D != null)

{

if (doc3D.IsDetail())

{

kompas.ksError("Текущий документ должен быть сборкой");

return;

}

// Выбор компонента -1 главный(сама сборка),0 первый(первая деталь)

ksPart part = (ksPart)doc3D.GetPart(-1);

if (part != null)

{

// Работа с массивом внешних переменных

ksVariableCollection varCol =

(ksVariableCollection)part.VariableCollection();

if (varCol != null)

{

// Запись внешних переменных в компас

ksVariable var = (ksVariable)kompas.GetParamStruct

((short)StructType2DEnum.ko_VariableParam);

if (var == null) return;

string d;

double g;

for (int i = 0; i < varCol.GetCount(); i++)

{

var = (ksVariable)varCol.GetByIndex(i);

d = (string)(this.TableCompassEV.Rows[i].Cells[1].Value.ToString());

g = Convert.ToDouble(d);

var.value = g;

}

//Перестроение сборки, почемуто не работает

part.RebuildModel();

}

}

}

}

}

VarMathCAD_API

//Подключение библиотек для работы с MathCAD

using Mathcad;

//Создание объектов для работы с MathCAD

private string LastMathCadPath = "";

private Mathcad.Application MC; //Объектов MathCAD

private Mathcad.Worksheets WK; //Объект для списка рабочих листов MathCAD

private Mathcad.Worksheet WS; //Объект для рабочего листа MathCAD

// Активируем MathCAD

private void InitMathCad()

{

if (MC == null)

{

try

{

MC = new Mathcad.Application();

}

catch

{

MessageBox.Show("MathCAD не установлен.", "Ошибка",

MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

// Открываем файл MathCAD

private void OpenFileMathCad(string filename)

{

if (MC != null)

{

WK = MC.Worksheets;

for (int i = 0; i < WK.Count; i++)

{

WS = WK.Item(i);

if (WS.FullName == filename)

WS.Close(MCSaveOption.mcSaveChanges);

}

if (WK != null) WS = WK.Open(filename);

MC.Visible = true;

}

else

{

MessageBox.Show(this, "Объект не захвачен", "Сообщение");

}

}

// Считываем значение входных и выходных переменных MathCAD

private void MathCadRead()

{

if (MC != null)

if (WS != null)

{

for (int j = 0; j < 50; j++)

{

{

string name;

name = "in" + j; // Считываем значение входных переменных MathCAD

string value;

try

{

value = (WS.GetValue(name) as NumericValue).Real.ToString();

this.TableMathCad_IN.Rows.Add(name, value);

}

catch(Exception)

{

continue;

}

}

}

for (int j = 0; j < 50; j++)

{

string name;

name = "out" + j;//Считываем значение выходных переменныхMathCAD

string value;

try

{

value = (WS.GetValue(name) as NumericValue).Real.ToString();

this.TableMathCad_OUT.Rows.Add(name, value);

}

catch(Exception)

{

continue;

}

}

}

else

{

MessageBox.Show(this, "Объект не захвачен", "Сообщение");

}

}

// Записываем значение входных переменных и считываем новые значения выходных // переменных MathCAD

private void MathCadWrite()

{

if (MC != null)

if (WS != null)

{

for (int j = 0; j < this.TableMathCad_IN.Rows.Count; j++)

{

try

{

string name;

name = this.TableMathCad_IN.Rows[j].Cells[0].Value.ToString();

string value;

value = this.TableMathCad_IN.Rows[j].Cells[1].Value.ToString();

double var;

var = ConverToDouble(value);

// Записываем значение входных переменных MathCAD

WS.SetValue(name, var);

}

catch (Exception)

{

continue;

}

}

WS.Recalculate();

WS.Save();

for (int i = 0; i < this.TableMathCad_OUT.Rows.Count; i++)

{

try

{

string name1;

name1 = this.TableMathCad_OUT.Rows[i].Cells[0].Value.ToString();

string value1;

// Cчитываем новые значения выходных переменных MathCAD

value1 = (WS.GetValue(name1) as NumericValue).Real.ToString();

this.TableMathCad_OUT.Rows[i].Cells[1].Value = value1;

}

catch (Exception)

{

continue;

}

}

}

else

{

MessageBox.Show(this, "Объект не захвачен", "Сообщение");

}

}

VarMathCAD_XML

// Считываем или записываем значения переменных в файл MathCAD

private void MathCadParser(string MathPath, bool save)

{

// Обновляем таблицу Маткада

int i = 0;

string region_id;

XmlDocument xd = new XmlDocument();

try{

xd.Load(MathPath); // Открываем файл MathCAD

}

catch

{

return;

}

XmlNodeList xnl = xd.DocumentElement.ChildNodes;

XmlNode ml_id, ml_real;

if (save == false) this.TableMathCad.Rows.Clear();

foreach (XmlNode xn in xnl)

if (xn.Name == "regions")

foreach (XmlNode region in xn.ChildNodes)

{

region_id = region.Attributes[0].Value;

foreach (XmlNode math in region.ChildNodes)

foreach (XmlNode ml_define in math.ChildNodes)

{

if (ml_define.Name == "ml:define") // Присвоенные переменные MathCAD

{

ml_id = ml_define.FirstChild;

ml_real = ml_define.LastChild;

if (ml_real.Name == "ml:real")

{

if (save == true)

ml_real.InnerText =

this.TableMathCad.Rows[i].Cells[1].Value.ToString();

else

this.TableMathCad.Rows.Add (ml_id.InnerText,

ml_real.InnerText, "Присвоенная", region_id, "define");

i++;

}

}

if (ml_define.Name == "ml:eval") // Вычисленные переменные MathCAD

{

ml_id = ml_define.FirstChild;

foreach (XmlNode result in ml_define.ChildNodes)

if (result.Name == "result")

{

ml_real = result.FirstChild;

if (save == true)ml_real.InnerText = this.TableMathCad.Rows[i].Cells[1].Value.ToString();

else

this.TableMathCad.Rows.Add(ml_id.InnerText,

ml_real.InnerText, "Вычисленная", region_id, "eval");

}

i++;

}

}

}

try

{

if (save) xd.Save(MathPath);

}

catch

{

MessageBox.Show("Не могу сохранить! Возможно файл открыт только для чтения!", "Ошибка",MessageBoxButtons.OK, MessageBoxIcon.Error);

}

IntegratorKM_Lite

// Заполняем комбобокс у таблицы MathCAD и выбираем нулевой элемент

private void AddMathCadCombo()

{

//заполняем комбобокс у таблицы MathCAD

this.KompasName_ComboBox.Items.Clear();

this.KompasName_ComboBox.Items.Add("empty");

for (int j = 0; j < TableKompas3D.Rows.Count; j++)

{

this.KompasName_ComboBox.Items.Add

(this.TableKompas3D.Rows[j].Cells[0].Value.ToString());

}

// Выбираем нулевой элемент для каждой ячейки в комбо-бокс-столбце в таблице внешних переменных Маткада

for (int i = 0; i < TableMathCad.Rows.Count; i++)

{

this.KompasName_ComboBox.DataGridView.Rows[i].Cells[5].Value =

this.KompasName_ComboBox.Items[0];

}

}

// Заполняем комбобокс у таблицы КОМПАС-3D и выбираем нулевой элемент

private void AddKompasCombo()

{

//заполняем комбобокс у таблицы КОМПАС-3D

this.MathCadName_ComboBox.Items.Clear();

this.MathCadName_ComboBox.Items.Add("empty");

for (int j = 0; j < TableMathCad.Rows.Count; j++)

{

this.MathCadName_ComboBox.Items.Add

(this.TableMathCad.Rows[j].Cells[0].Value.ToString());

}

// Выбираем нулевой элемент для каждой ячейки в комбо-бокс-столбце в таблице внешних переменных КОМПАС-3D

for (int i = 0; i < TableKompas3D.Rows.Count; i++)

{

this.MathCadName_ComboBox.DataGridView.Rows[i].Cells[3].Value =

this.MathCadName_ComboBox.Items[0];

}

}

// Присваиваем переменной КОМПАС-3D значение переменной MathCAD

// выбранной в комбо-бокс-столбце

void EndEdit_TableKompas3D(object sender, DataGridViewCellEventArgs e)

{

try

{

if (e.ColumnIndex == 3)

this.TableKompas3D.Rows[e.RowIndex].Cells[1].Value =

this.TableMathCad.Rows[MathCadName_ComboBox.Items.IndexOf

(this.TableKompas3D.Rows[e.RowIndex].Cells[3].Value)

- 1].Cells[1].Value;

}

catch

{

MessageBox.Show("Error");

return;

}

finally

{

this.TableKompas3D.Update();

}

}

// Присваиваем переменной MathCad значение переменной КОМПАС-3D

// выбранной в комбо-бокс-столбце

void TableMathCadCellEndEdit(object sender, DataGridViewCellEventArgs e)

{

try

{

if (e.ColumnIndex == 5)

this.TableMathCad.Rows[e.RowIndex].Cells[1].Value =

this.TableKompas3D.Rows[KompasName_ComboBox.Items.IndexOf

(this.TableMathCad.Rows[e.RowIndex].Cells[5].Value)

- 1].Cells[1].Value;

}

catch

{

MessageBox.Show("Error");

return;

}

finally

{

this.TableMathCad.Update();

}

}

Размещено на Allbest.ru


Подобные документы

  • Общие сведения о системе Компас 3D, предназначенной для графического ввода и редактирования чертежей на ПК. Ее основные функции, типы объектов, единицы измерения. Принципы работы в Компас-График LT. Пример создания файла трехмерной модели сборки детали.

    курсовая работа [1,1 M], добавлен 03.11.2014

  • Последовательность разработки чертежа и модели с типоразмерами из параметрического ряда. Построение таблицы переменных в соответствии с исходными данными. Проектирование параметрической модели в системе Компас-3D, внешние переменные для чертежа детали.

    практическая работа [5,9 M], добавлен 14.04.2016

  • Анализ объектно-ориентированной технологии программирования на примере языка Java. Методы, инструменты разработки web-приложений. Применение их при создании Интернет-магазина для ООО "Компас". Разработка апплета для его страницы в виде стрелочных часов.

    курсовая работа [2,7 M], добавлен 31.01.2014

  • Изучение системы КОМПАС-ГРАФИК, ее структура и основные возможности, типы файлов. Рабочий чертеж детали с простановкой размеров, оформлением технических требований и заполнением основной надписи. Проверочный прочностной расчет узла автомобиля в САПР-АВТО.

    курсовая работа [68,8 K], добавлен 14.05.2015

  • Изучение интерфейса и основных инструментов программы Компас. Обзор инструментов моделирования, используемых при создании модели материнской платы. Анализ программных и технических средств, объединенных в единый технологический процесс проектирования.

    курсовая работа [2,7 M], добавлен 05.04.2012

  • Компас-3D как универсальная система трехмерного проектирования. Классический процесс трехмерного параметрического проектирования. Особенности универсальной системы автоматизированного проектирования Компас-График. Преимущества и недостатки системы Компас.

    реферат [2,8 M], добавлен 30.05.2010

  • Создание, редактирование, выбор штриховок и заливок 3D детали с целью наглядности представления изготовленной детали в программе Компас 3D. Изучение и порядок работы с программой, знакомство с ее особенностями, область применения программы Компас.

    курсовая работа [1,4 M], добавлен 16.07.2012

  • Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.

    отчет по практике [589,0 K], добавлен 18.05.2017

  • Создание сложных двумерных и трехмерных моделей в среде AutoCAD, КОМПАС-3D и Autodesk Inventor. Построение эскизов на плоскости, порядок создания чертежей. Способы построения моделей и особенности их применения в той или иной ситуации на практике.

    контрольная работа [1,2 M], добавлен 30.05.2015

  • Точность чертежей и документации. Использование собственного математического ядра и параметрических технологий как ключевая особенность "Компас-3D". Основной инструментарий трехмерного моделирования. Моделирование деталей из листового материала.

    реферат [16,4 K], добавлен 20.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.