- •Введение
- •Часть I. Краткие основы Visual c# Глава 1. Основные определения книги
- •1.1. Требования для установки Visual Studio 2005
- •Глава 2. Методика разработки приложений для выполнения расчетов с эффектами анимации
- •Глава 3. Методика разработки приложений на нескольких формах
- •Часть II. Методология проектирования графики и печати на принтере Глава 4. Краткие сведения о графических возможностях Visual Studio
- •Глава 5. Рисование простых линий на форме или элементах управления и печать этих линий
- •Глава 6. Рисование сложных линий и печать всей формы как снимка экрана
- •Глава 8. Рисование текста и печать текстового файла
- •Глава 7. Рисование заполненных фигур и печать всей формы с предварительным просмотром
- •Часть III. Методология вычислений на основе Visual c# с использованием эффектов анимации Глава 9. Методика создания вычислительной системы
- •Глава 10. Арифметические вычисления
- •10.3. Анимация в виде циклического изменения непрозрачности панели
- •Глава 11. Разработка стандартного калькулятора
- •11.3. Анимация в виде циклического изменения цвета формы
- •11.4. Выполнение расчетов
- •Глава 12. Вычисление процентов
- •Глава 13. Степени, корни, логарифмы и факториалы
- •Часть IV. Методология вычислений на основе интеграции Visual c# с другими платформами Глава 14. Использование в Visual c# программ из Excel
- •Глава 15. Вычисление сложных математических выражений
- •Часть V. Интеграция Visual c# с Word Глава 16. Оглавление приложения по использованию методов Word
- •Глава 17. Запуск Word, добавление нового и открытие существующего документа
- •17.3. Выполнение программы
- •Часть VI. Получение расчетных параметров из баз данных Access Глава 18. Оглавление приложения по использованию Access
- •18.1. Алгоритм оглавления и проектирование формы
- •Глава 19. Открытие Access
- •Часть VII. Создание баз данных и интеграция с другими субд Глава 20. Создание баз и наборов данных
- •Глава 21. Архитектура доступа к данным ado.Net
- •Глава 22. Разработка баз данных при помощи шаблонов
- •22.1. Создание проекта sql Server Project
- •Часть VIII. Методология создания графической системы в двухмерном пространстве Глава 23. Алгоритмы и оглавление графической системы
- •Глава 24. График линейной функции
- •Глава 25. Графики типичных функций
- •Глава 26. Рисование при помощи перемещения мыши
- •Глава 27. Рисование линий при помощи нажатия кнопки мыши
- •Глава 28. Рисование прямоугольников и эллипсов при помощи нажатия кнопки мыши
- •Глава 29. Рисование заполненных прямоугольников и эллипсов при помощи нажатия кнопки мыши
- •Глава 30. Непрерывный график-осциллограмма и его проверка при помощи диспетчера задач и файла подкачки
- •Часть IX. Методология создания графической системы в трехмерном пространстве Глава 31. Теория и алгоритмы системы
- •32.1. Основные схемы интеграции
- •Глава 33. Изображение и управление трехмерными объектами в трехмерном пространстве
- •Глава 34. Изображение и управление трехмерными объектами в трехмерном пространстве на Visual Basic для интеграции с Visual c# и другими языками
- •Глава 35. Изображение объектов в трехмерном пространстве на Visual c# по данным из проекта на Visual Basic
- •35.1. Постановка задачи и проектирование формы
- •Глава 37. Изображение и управление поверхностями в трехмерном пространстве
- •Глава 40. Расчет и изображение линий уровня на поверхности
- •Часть X. Методология создания анимационной трехмерной графики на основе новых версий Visual c# и DirectX Глава 44. Методика проектирования неподвижных и подвижных плоских фигур
- •Глава 45. Методика проектирования неподвижных и подвижных пространственных фигур
- •Часть XI. Методология разработки мультимедиа и игр на основе Microsoft Agent Глава 46. Загрузка и установка компонентов Microsoft Agent
- •46.1. Краткие сведения о Microsoft Agent
- •Глава 47. Методика управления мультипликационными персонажами
- •Глава 48. Вывод на экран выступлений и анимаций всех персонажей
- •Глава 49. Методика создания компьютерных игр и мультфильмов
- •49.4. Выполнение программы
- •Глава 50. Пример Интернет-магазина на основе Microsoft Agent
- •Глава 51. Построение графика по точкам эксперимента и интеграция с мультипликационными персонажами ms Agent
- •Часть XII. Методология анимации объектов Глава 52. Оглавление системы программ для анимации объектов
- •52.1. Алгоритм и проект системы
- •Глава 53. Варианты часов с цифровой индикацией, индикаторами прогресса и датой
- •Глава 54. Вращение линии
- •Глава 55. Управляемое вращение линии
- •Глава 56. Управляемое вращение и перемещение фигуры
- •Глава 57. Управляемое заполнение фигур
- •Глава 58. Управляемый мигающий текст
- •Глава 59. Методика изображения летающих предметов
- •Глава 60. Методика анимации градиентного заполнения текста цветом
- •Глава 61. Вращающееся градиентное заполнение фигур цветом
- •Глава 62. Изображение кругов на воде с использованием двойной буферизации
- •Глава 63. Анимация текста в консольном приложении
- •Часть XIII. Методология создания, конвертирования и мультипликации изображений на форме Глава 64. Методика задания, конвертирования и поочередной замены изображений
- •Глава 65. Методика разработки мультипликации
- •Глава 66. Разработка мультипликации при помощи списка рисунков
- •Глава 67. Методика управления цветом изображения
- •Часть XIV. Воспроизведение аудио и видео Глава 68. Оглавление приложения по интеграции Visual c# с Windows Media Player
- •Глава 69. Воспроизведение аудио файлов из приложения Visual с#
- •Глава 70. Воспроизведение видео файлов из приложения Visual c#
- •70.3. Выполнение программы
- •Глава 72. Интеграция Visual c# с браузером Internet Explorer
- •Глава 73. Установка веб-компонентов Windows для веб-программирования на основе asp.Net
- •Часть XVI. Введение в программирование мобильных устройств Глава 74. Программирование портативных и карманных компьютеров
- •Часть XVII. Приложения Visual c# для использования на практике, например, в промышленности Глава 75. Алгоритмы для расчета площади, объема и массы изделий и заготовок
- •75.1. Объектно-ориентированный анализ геометрии изделий
- •Глава 76. Консольное приложение для расчета массы изделий
- •Глава 77. Вычисление массы изделий при помощи формы
- •Часть XVIII. Приложения Visual c# для использования в учебе и науке Глава 78. Ввод в систему свойств материалов для изготовления изделий
- •Глава 79. Математическое моделирование обработки заготовки при помощи аналитических решений
- •Глава 80. Математическое моделирование обработки заготовки при помощи метода конечных элементов
- •Глава 81. Математическое моделирование и графика для типичных техпроцессов
- •Глава 82. Методология учета анизотропии материала при проектировании техпроцесса изготовления изделия
- •Глава 83. Методология проектирования техпроцессов изготовления изделий коробчатой формы
- •Часть XIX. Методология создания и внедрения систем компьютерного проектирования Глава 84. Оптимизация раскроя материалов
- •Глава 85. Система компьютерного проектирования техпроцессов
- •Глава 86. Проектирование заготовительных операций подготовки материала
- •Глава 87. Проектирование операций изготовления заготовок
- •Глава 88. Проектирование операций обработки заготовок
- •Глава 89. Проектирование финишных операций изготовления изделий
- •Заключение
- •Часть XX. Передача приложения заказчику Глава 90. Методика передачи приложения пользователю
- •90.1. Этапы разработки программы для установки приложения
- •90.2. Создание проекта для установки приложения
- •Описание содержимого компакт-диска и схема использования
- •Список литературы
- •Предметный указатель
Глава 86. Проектирование заготовительных операций подготовки материала
Листинг 86.1. Расчет оптимальных параметров разрезки листа на полосы.
//Объявляем глобальные переменные:
public double d, H, Rn, s, s_sheet, C, L, rho,
nu, El, sig_ys, sig_u, e_u, e_tot;
public int Radio;
double dH, Ha, D;
double B, a, b, t, W, F, Nbl, W_F;
double pi = Math.PI;
// Расчетные функции:
//Функции класса объектов "Полуфабрикаты":
double Allowance()
{
//Определение техн-го припуска, например, по таблице:
dH=5;
//Если включен переключатель 2,
// то обрезка припуска не нужна; при этом Radio=1:
if (Radio==1) dH=0;
return dH;
}
double Semiproduct()
{
dH=Allowance();
//Расчет размеров полуфабриката:
Ha = H + dH;
return Ha;
}
//Функции класса объектов "Заготовки":
double Area1_Semiproduct()
{
double A1 = pi*(d-2*Rn)*(d-2*Rn)/4;
return A1; //mm*mm
}
double Area2_Semiproduct()
{
double A2 = pi*(Rn-s/2)*(2*(Rn-s/2)+pi*(d-2*Rn)/2);
return A2; //mm*mm
}
double Area3_Semiproduct()
{
Ha=Semiproduct();
double A3 = pi*(d-s)*(Ha-Rn);
return A3; //mm*mm
}
double Area_Semiproduct()
{
double A, A1, A2, A3;
A1=Area1_Semiproduct();
A2=Area2_Semiproduct();
A3=Area3_Semiproduct(); A=A1+A2+A3;
return A;
}
double DBlank()
{
double A = Area_Semiproduct();
D=Math.Sqrt(4*A/pi);
return D;
}
//Функции класса объектов "Материалы":
double Bstrip()
{
//Определение параметров раскроя:
double del_st, del1, z_b;
a=1.2; b=1.6; del_st=0.7; del1=0.4; z_b=1;
//Шаг вырезки заготовок:
D = DBlank(); t = D + a;
//Расчет ширины полосы:
B = D + 2*(b + del_st) + z_b + del1;
return B;
}
void Cutting()
{
//Определение параметров раскроя:
double N_strip_1, N_strip_2, N_bl_st_1, N_bl_st_2,
N_bl_1, N_bl_2;
B = Bstrip();
//Число полос из листа при продольной разрезке:
N_strip_1 = Math.Floor(C/B);
//Число полос из листа при поперечной разрезке:
N_strip_2 = Math.Floor(L/B);
//Шаг вырезки заготовок:
D = DBlank(); t = D + a;
//Число заготовок из полосы при продольной разрезке:
N_bl_st_1 = Math.Floor((L - a)/t);
//Число заготовок из полосы при поперечной разрезке:
N_bl_st_2 = Math.Floor((C - a)/t);
//Число заготовок из листа при продольной разрезке:
N_bl_1 = N_bl_st_1 * N_strip_1;
//Число заготовок из листа при поперечной разрезке:
N_bl_2 = N_bl_st_2 * N_strip_2;
//Проверка, при каком варианте разрезки
// заготовок больше:
if (N_bl_1 >= N_bl_2)
{
//Передача рассчитанных значений в окна TextBox:
textBox5.Text = N_strip_1.ToString();
W = N_strip_1 * B;
textBox6.Text = W.ToString();
F = C - W;
textBox7.Text = F.ToString();
textBox8.Text = C.ToString(); W_F = C;
textBox9.Text = (W/W_F).ToString();
Nbl=N_bl_1;
}
else
{
//Передача рассчитанных значений в окна TextBox:
textBox5.Text = N_strip_2.ToString();
W = N_strip_2 * B;
textBox6.Text = W.ToString();
F = L - W;
textBox7.Text = F.ToString();
textBox8.Text = L.ToString(); W_F = L;
textBox9.Text = (W/W_F).ToString();
Nbl=N_bl_2;
}
}
Теперь для выполнения расчета и вывода результатов расчета в окна TextBox на Form3 (при помощи кнопки со знаком равенства “=”) дважды щелкаем эту кнопку. Появляется файл Form3.cs с шаблоном, в который записываем следующий код.
Листинг 86.2. Код кнопки “=” на Form3 для расчета первой операции.
//Передача размеров листа s, C, L
//из окон TextBox на Form1 в окна TextBox на Form3:
textBox1.Text = s_sheet.ToString();
textBox2.Text = C.ToString();
textBox3.Text = L.ToString();
//Расчет и передача значения ширины полосы "B"
//в окно TextBox4 на Form3:
textBox4.Text = Bstrip().ToString();
//Расчет и передача рациональных параметров
//разрезки листа на полосы в окна TextBox на Form3:
Cutting();
Листинг 86.3. Код для выполнения анимации.
bool myColor = false;
private void timer1_Tick(object sender, EventArgs e)
{
//Вводим анимацию:
if (myColor == false)
{
//Выводим красный цвет надписи элемента упр-я:
this.button1.ForeColor = Color.Red;
//Изменяем значение myColor на противоположное:
myColor = true;
}
else
{
//Выводим зеленый цвет надписи элемента упр-я: this.button1.ForeColor = Color.Green;
//Изменяем значение myColor на противоположное:
myColor = false;
}
}
Щелчок по значку “x” (Close), который уже был на Form1 после создания проекта, или по кнопке Cancel, которую ввели мы (для удобства), закрывает не только данный активный вид панели, но и все последующие виды панели, которые мы вызвали после данного вида (т.е. закрываем приложение). После щелчка значка “x” (Close) или кнопки Cancel на Form3 закрывается только один этот вид панели, а все остальные панели остаются открытыми, и мы можем их анализировать или читать справку (если щелкнуть кнопку Help). Методика печати на принтере информации с панели (после щелчка кнопки Print, рис. 86.1) описана выше.
Как уже отмечалось, на практике часто ограничиваются только первой операцией разрезки листа на полосы; в этом случае следующая операция не нужна, и, соответственно, не нужна и кнопка Next>> на Form3. В нашем общем случае требуется, чтобы после щелчка кнопки Next>> выходила следующая форма (со следующим эффектом анимации), к разработке которой мы и приступаем.
