- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •Лабораторная работа № 2: Создание простого приложения Windows Forms
- •Создание простого приложения Windows Forms
- •Модификация приложения Windows Forms
- •Завершающая часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •Вводная часть
- •О приложении к Лабораторной работе № 3
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: элемент управления MenuStrip
- •5. Модификация приложения Windows Forms: элемент управления Button
- •6. Модификация приложения Windows Forms: элемент управления ToolTip
- •7. Модификация приложения Windows Forms: элемент управления ComboBox
- •8. Модификация приложения Windows Forms: элемент управления WebBrowser
- •9. Модификация приложения Windows Forms: добавляем исходный код
- •10. Завершающая часть
- •11. О приложение к Лабораторной работе № 3
- •4. Лабораторная работа № 4: Windows Forms — работа с формами Лабораторная работа № 4: Windows Forms — работа с формами
- •Вводная часть
- •О приложении к Лабораторной работе № 4
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •10. О приложении к Лабораторной работе № 4
- •5. Лабораторная работа № 5: Windows Forms — элементы управления Лабораторная работа № 5: Windows Forms — элементы управления
- •Вводная часть
- •О приложении к Лабораторной работе № 5
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •Лабораторная работа № 7: SolidWorks — использование SwCSharpAddin, работа с макросом и шаблоном детали
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •Вводная часть
- •О приложении к Лабораторной работе № 8
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: добавление нового элемента из библиотеки компонентов wpf
- •5. Модификация приложения Windows Forms: расширение функциональности приложения и работа с оформление
- •6. Модификация приложения Windows Foundation Presentation: различные возможности wpf
- •7. Модификация приложения Windows Foundation Presentation: немного о стилях и шаблонах
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 8
- •Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 9
- •Лабораторная работа № 10: Работа с базами данных — xml и ole
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •Лабораторная работа № 14: Простой растровый редактор
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •Вводная часть
- •О приложении к Лабораторной работе № 15
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •Лабораторная работа № 16: Windows Communication Foundation
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •Лабораторная работа № 17: Знакомство с Silverlight
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •Лабораторная работа № 18: Знакомство с asp.Net
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •Вводная часть
- •О приложении к Лабораторной работе № 19
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса и добавление TabControl
- •4. Модификация приложения Windows Forms: вкладка «Просто фон!»
- •5. Модификация приложения Windows Forms: вкладка «Объекты и градиент»
- •6. Модификация приложения Windows Forms: вкладка «Мой монитор сломался!»
- •7. Модификация приложения Windows Forms: вкладка «Векторные часы»
- •8. Модификация приложения Windows Forms: вкладка «Огонь!!!»
- •9. Модификация приложения Windows Forms: вкладка «Дождик»
- •10. Завершающая часть
- •11. О приложении к Лабораторной работе № 19
- •Лабораторная работа № 20: Inventor — работа с Inventor
- •Вводная часть
- •О приложении к Лабораторной работе № 20
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: запуск и завершение приложения Inventor
- •4. Модификация приложения Windows Forms: создание новых документов
- •5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 20
- •Лабораторная работа № 21: Знакомство с языком f# (Эф-шарп) на примере простого приложения для командной строки
- •Вводная часть
- •О приложении к Лабораторной работе № 21
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •Лабораторная работа № 22: Различные примеры на f#
- •2. Создание приложения «Приложение f#»
- •3. Модификация приложения f#: match
- •4. Модификация приложения f#: создание форм и рисование объектов на форме
- •5. Модификация приложения f#: работа с базой данных Microsoft Access
- •6. О приложении к Лабораторной работе № 22
- •23. Дополнительная лабораторная работа № 1
- •24. Дополнительная лабораторная работа № 2
- •25. Дополнительная лабораторная работа № 3
- •Вводная часть
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation: добавление ресурсов
- •4. Модификация приложения Windows Foundation Presentation: добавление исходного кода
- •5. Модификация приложения Windows Foundation Presentation: оформление элемента ListBox
- •6. Завершающая часть
- •7. О приложении к данной работе
4. Модификация приложения Windows Forms: создание новых документов
Следующая часть данной работы объясняет, как создать новый документ (например, обычную деталь, тип файла Обычный.ipt) и получить общее число открытых документов в открытом приложении Inventor. Строго говоря, работы с COM-Сервером Inventor очень похожа и мало чем отличается от работы с COM-сервером SolidWorks (классы приложения, документа, эскиза и т.п.). Поэтому основы работы такие же. Необходимо лишь хорошо знать структуру применяемых классов COM-сервера и документа для успешного применения этих навыков.
Единственно «но». Популярность разработки приложений на C# «под и для» Inventor достаточно невысокая по сравнению с тем же «родным» для корпорации Autodesk Inventor Visual Basic for Application и Visual Basic .NET.. Но найти необходимую документацию всё же можно.
И так, размещаем вторую группу элементов на форме следующим образом:
Рис. 4. 1. Расстановка элементов управления второй группы элементов
И код для единственной кнопки B_Create (событие Click):
private void B_Create_Click(object sender, EventArgs e)
{
Inventor.Application oApp2;
oApp2 = (Inventor.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application");
Inventor.PartDocument oPart2;
oPart2 = (Inventor.PartDocument)oApp2.Documents.Add(Inventor.DocumentTypeEnum.kPartDocumentObject);
// Получае число открытых документов экземпляра приложения Inventor
int number_int = oApp2.Documents.Count;
string number_string = Convert.ToString(number_int);
MessageBox.Show("Текущее число открытых документов: " + number_string, "Работа с Inventor (C#) :: Получение числа открытых страниц в Inventor");
}
Подкорректируем код LWP20Main():
public LWP20Main()
{
InitializeComponent();
B_Close.Enabled = false;
B_Create.Enabled = false;
}
Найдём:
// Запускаем экземпляр приложения Inventor
Process InventorProcess = System.Diagnostics.Process.Start("C:\\Program Files\\Autodesk\\Inventor 2012\\Bin\\Inventor.exe");
B_Close.Enabled = true;
B_Open.Enabled = false;
Добавим после:
B_Create.Enabled = true;
И изменим событие нажатия кнопки B_Close:
private void B_Close_Click(object sender, EventArgs e)
{
CloseInventor();
B_Close.Enabled = false;
B_Open.Enabled = true;
B_Create.Enabled = false;
}
Компилируем приложение (Debug) и запускаем. Запускаем Inventor основной кнопкой, и жмём несколько раз на Создать и посчитать (Рис. 4. 2):
Рис. 4. 2. Создание двух документов деталей в Inventor и отображение получения общего числа открытых документов
5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
Допустим, есть документ сборка (тип файла Обычный.iam) с двумя простенькими деталями:
Рис. 5. 1. Сборка1.iam в среде Inventor
Следующая часть нашего приложения сможет, например по имени любой части сборки вводимой в текстовом поле скрыть или показать этот элемент на сборке в Inventor.
Размести элементы третьей группы следующим образом:
Рис. 5. 2. Расстановка элементов управления третьей группы элементов
Где три кнопки и одно текстовое поле TextBox по порядку:
(Name): |
B_Start |
Text: |
Инициализировать сборку |
Size: |
155; 23 |
(Name): |
B_Hide |
Text: |
Скрыть |
Size: |
100; 23 |
(Name): |
B_Show |
Text: |
Показать |
Size: |
100; 23 |
(Name): |
TB_Name |
Text: |
Имя элемента |
Size: |
100; 23 |
Также добавим на форму элемент OpenFileDialog со свойствами:
(Name): |
OFD_Name |
Filter: |
Сборка *.iam|*.iam |
И один Label (по первой кнопкой группы).
Найдём в файле LWP20Main.cs строчки:
private Inventor.Application oApp1;
Добавим после:
// Делаем это ещё раз для другой части нашего приложения
private Inventor.Application oApp3;
// Объявляем экземпляр переменную oAsmDoc3, чтобы получить возможности в работы в этом классе
private Inventor.AssemblyDocument oAsmDoc3;
Событие Click кнопки B_Start:
private void B_Start_Click(object sender, EventArgs e)
{
OFD_Name.ShowDialog();
oApp3 = (Inventor.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application");
// Открываем файл сборки
oAsmDoc3 = (Inventor._AssemblyDocument)oApp3.Documents.Open(OFD_Name.FileName, true);
// Проверяем, что хотя бы один документ был открыт
if (oApp3.Documents.Count == 0)
{
MessageBox.Show("Должен быть открыт хотя бы один документ в данный момент");
}
// Проверяем что хотя бы один документ Сборка (*.iam) был активным
if (oApp3.ActiveDocument.DocumentType != Inventor.DocumentTypeEnum.kAssemblyDocumentObject)
{
MessageBox.Show("Должна быть открыт хотя бы одна сборка (документ: \"Сборка\", тип файла: *.iam) в данный момент");
}
// Переопределяем тип активного документа ActiveDocument в AssemblyDocument (документ сборки)
// Устанавливаем ссылку на активный документ
oAsmDoc3 = (Inventor.AssemblyDocument)oApp3.ActiveDocument;
B_Show.Enabled = true;
B_Hide.Enabled = true;
}
Событие MouseClick текстового поля TB_Name:
private void TB_Name_MouseClick(object sender, MouseEventArgs e)
{
TB_Name.Text = "";
}
Изменим метод LWP20Main():
public LWP20Main()
{
InitializeComponent();
B_Close.Enabled = false;
B_Create.Enabled = false;
B_Start.Enabled = false;
B_Show.Enabled = false;
B_Hide.Enabled = false;
}
И код закрытия Кнопки для приложения Inventor:
private void B_Close_Click(object sender, EventArgs e)
{
CloseInventor();
B_Close.Enabled = false;
B_Open.Enabled = true;
B_Create.Enabled = false;
B_Start.Enabled = false;
B_Show.Enabled = false;
B_Hide.Enabled = false;
}
Найдём:
Thread.Sleep(20000);
Добавим до:
B_Start.Enabled = true;
Последним штрихом инициализируем события кнопок Скрыть и Показать, а также методу, выполняющему изменения статуса видимости объекта:
private void B_Hide_Click(object sender, EventArgs e)
{
// Вызываем функция, которая работает со сборкой и устанавливает видимость объектов
SetVisibility(oAsmDoc3.ComponentDefinition.Occurrences, TB_Name.Text, false);
// Обновляем вид
oApp3.ActiveView.Update();
}
private void B_Show_Click(object sender, EventArgs e)
{
// Вызываем функция, которая работает со сборкой и устанавливает видимость объектов
SetVisibility(oAsmDoc3.ComponentDefinition.Occurrences, TB_Name.Text, true);
// Обновляем вид
oApp3.ActiveView.Update();
}
private static void SetVisibility(Inventor.ComponentOccurrences Occurences, string SearchName, bool VisibilityOn)
{
// Итерация по каждому из "упоминаний" в коллекции условий
foreach (Inventor.ComponentOccurrence oOccurence in Occurences)
{ // Проверяем, если имя "упоминания" совпадает с введённым на форме именем
// Все символы строки делаем строчными чтобы избежать чувствительности к регистру
if (oOccurence.Name.ToLower().Contains(SearchName.ToLower()))
{ // Проверяем, если параметр "Видимость" отличает от введённого при нажатии на кнопки формы
if (oOccurence.Visible != VisibilityOn)
{ // Устанавливаем видимость для "упоминания" (например, детали)
oOccurence.Visible = VisibilityOn;
}
}
}
}
Готово. Можно компилировать и проверять работоспособность.