
- •Минобрнауки россии
- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •2. Лабораторная работа № 2: Создание простого приложения Windows Forms Лабораторная работа № 2: Создание простого приложения Windows Forms
- •1. Вводная часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •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 — работа с формами
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •6. Лабораторная работа № 6: SolidWorks — работа с SolidWorks Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •1. Вводная часть
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •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. Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •11. Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •1. Вводная часть
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •12. Лабораторная работа № 12: Автоматизация Microsoft Office Word Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •13. Лабораторная работа № 13: Автоматизация Microsoft Office Excel Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •14. Лабораторная работа № 14: Простой растровый редактор Лабораторная работа № 14: Простой растровый редактор
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •16. Лабораторная работа № 16: Windows Communication Foundation Лабораторная работа № 16: Windows Communication Foundation
- •1. Вводная часть
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •17. Лабораторная работа № 17: Знакомство с Silverlight Лабораторная работа № 17: Знакомство с Silverlight
- •1. Вводная часть
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •18. Лабораторная работа № 18: Знакомство с asp.Net Лабораторная работа № 18: Знакомство с asp.Net
- •1. Вводная часть
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •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
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •22. Лабораторная работа № 22: Различные примеры на f# Лабораторная работа № 22: Различные примеры на f#
- •1. Вводная часть
- •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: организация работы с SolidWorks через приложение
Теперь, попытаемся сделать вот что. Допустим нам нужно, чтобы наше приложение запускалось отдельно, но при необходимости оно могло открывать SolidWorks и что-то делать (например, строить элемент по размерам из приложения). Такой способ работы противоположен концепции использования макросов после запуска SolidWorks и гораздо медленнее (необходимость запускать SolidWorks пусть даже и в фоновом режиме). Однако бывают ситуации, когда такой подход необходим.
Для начала необходимо подключить необходимые библиотеки (подключим их через добавление ссылок в проект). Ссылки две: SldWorks и SwConst. Для добавления, нажмём ПКМ в обозревателе решений на пункте Ссылки, далее в контекстном меню Добавить ссылку... и в открывшемся окне перейдём на вкладку COM. Теперь, нам нужно добавить два компонента (для SolidWorks 2010-2012 все компоненты называются одинаково, различаются только цифрой в версии). Нам нужено (Имя компонента): SldWorks 2012 Type Library и SolidWorks 2012 Constant type library. Обе библиотеки располагаются в корневом каталоге SolidWorks (<исходный путь до директории установки SolidWorks>\SolidWorks\):
Рис. 4. 1. Добавить ссылку: выбор нужных компонентов для добавления
Рис. 4. 2. Результат добавления новых ссылок
Теперь нужно, чтобы наше приложение выполняло запуск лишь в том случае, если не запущено других экземпляров SolidWorks. Сделаем проверку на загрузку процесса SLDWORKS.exe в коде. Добавим в самом низу формы три кнопки: Запустить SolidWorks и Послать команду.
Запустить SolidWorks, создать деталь (Button):
(Name): |
BStart |
Text: |
Запустить SolidWorks, создать деталь |
Size: |
300; 23 |
Послать команду, выгрузить (Button):
(Name): |
BSend |
Text: |
Послать команду, выгрузить |
Size: |
300; 23 |
Фоновый режим (запуск, действие, выгрузка) (Button):
(Name): |
BHide |
Text: |
Фоновый режим (запуск, действие, выгрузка) |
Size: |
300; 23 |
Впишем ещё одну ссылку для работы со списком запущенных процессов в самое начало файла LWP06Main.cs:
using System.Diagnostics;
А также ещё две ссылки:
using SldWorks;
using SwConst;
Первая кнопка будет запускать SolidWorks (если не запущено других экземпляров приложения) и создавать там пустую деталь. Добавим код события Click для кнопки BStart:
private void BStart_Click(object sender, EventArgs e)
{
BHide.Enabled = false;
swApp = new SldWorks.SldWorks(); // Создаём экземпляр Solidworks приложения (SolidWorks 2012)
if (swApp == null) // Если SolidWorks не запустился, посылаем сообщение; если запустился, гасим кнопку запуска
{ MessageBox.Show("Невозможно запустить экземпляр SolidWorks 2012!", "Работа с SolidWorks (C#) :: Запуск SolidWorks"); }
else
{
BStart.Enabled = false;
BHide.Enabled = false;
}
swApp.Visible = true; // Вытаскиваем окно SolidWorks из фонового режима
swApp.NewPart(); // Создаём документ с новой деталью
}
Вторая кнопка будет вызывать всплывающее окно в SolidWorks средствами API с той информацией, которую будет передавать из нашего приложения, а затем выгружать SolidWorks. Добавим код события Click для кнопки BSend:
private void BSend_Click(object sender, EventArgs e)
{
try
{
swApp.SendMsgToUser2("Посылаем команды в открытое приложение SolidWorks!", (int)SwConst.swMessageBoxIcon_e.swMbInformation, (int)SwConst.swMessageBoxBtn_e.swMbOk);
// Выгрузка фонового процесса не произойдёт из-за некорректного объявления экземпляра класса;
// это было допущено сознательно для демонстрации возможностей работы открытого приложения и самого Solidworks.
// Правильная работа ExitApp() будет реализована так:
// некая_функция() {
// SldWorks.SldWorks swApp = new SldWorks.SldWorks();
// /* действия */
// swApp.ExitApp();
// swApp = null;
// }
swApp.ExitApp();
/* Выгрузим процесс */
foreach (Process PSW in Process.GetProcessesByName(SW))
PSW.Kill();
}
catch { MessageBox.Show("Невозможно послать команду экземпляру SolidWorks 2012: экземпляр приложения не найден!", "Работа с SolidWorks (C#) :: Отсылка команды в SolidWorks"); }
}
Также для главного окна формы (LWP06Main) инициализируем событие MouseEnter. Для этого один нажмём на заголовок формы в поле конструктора, перейдём на свойства формы и нажмём на знак молнии (События). Код события MouseEnter:
private void LWP06Main_MouseEnter(object sender, EventArgs e)
{
PList = Process.GetProcessesByName(SW); // Получаем список процессов с именем SLDWORKS
if (PList.Length == 0) // Если такого процесса нет, активируем кнопку запуска SolidWorks
{
BStart.Enabled = true;
BHide.Enabled = true;
}
}
Смысл его в том, чтобы при наведении мышки на любое пустое место приложения запускалась проверка на запущенный процесс SolidWorks. И если процесс выгружен, то происходит разблокировка двух кнопок.
Добавим объявление переменных после строчки:
public partial class LWP06Main : Form
{
Впишем:
String SW = "SLDWORKS";
Process[] PList;
SldWorks.SldWorks swApp;
Функцию LWP06Main() перепишем так:
public LWP06Main()
{
InitializeComponent();
BStart.Enabled = false;
BHide.Enabled = false;
}
Последняя кнопка (BHide) будет выполнять фоновую загрузку SolidWorks, построение3 простой детали, сохранение на диск этой детали и выгрузку самого Solid’а.
ПРИМЕЧАНИЕ № 3: При записи макроса на языке C# могут возникнуть проблемы с работой VSTA и непосредственно передачей кода в шаблон. В случае, если макрос на основе шаблона не создаётся или не записывается код (открывается пустой VSTA), необходимо:
1. Вручную, в самом VSTA создать проект макроса (File -> New Project... далее выбрать SolidWorksMacro).
2. Не закрывая VSTA, попытаться снова записать свои действия.
3. После нажатия на кнопку Остановить запись макроса, SolidWorks предложит выбрать имя для проекта и место куда сохранить код).
4. VSTA должен будет создать корректный проект на основе шаблона и скопировать в него код из SolidWorks, имя проекта будет соответствовать выбранному.
5. Ранее открытый пустой проект в VSTA не будет сохранён.
Рис. 4. 3. VSTA: New Project
Если в VSTA отсутствует шаблон проекта, этот шаблон необходимо поместить в соответствующую директорию. По умолчанию VSTA подгружает шаблоны из директории (для Windows XP, русская версия): Мои документы\SolidWorks Visual Studio Tools for Applications\Templates\ProjectTemplates\Visual C#. В эту директорию необходимо скопировать шаблон из стандартной поставки SolidWorks (solidworks_macro.zip), который можно найти по следующему пути:<исходный путь до директории установки SolidWorks>\SolidWorks\data\VSTA\csharp\1033\
Копировать необходимо архив без распаковки. Также стоит проверить пути, которые использует VSTA для работы с SolidWorks. Для этого выполним в VSTA: Tools -> Options, нажать на Project and Solutions.
Главные пути:
Visual Studio user project templates location:
Для Windows XP, русская версия: Мои документы\SolidWorks Visual Studio Tools for Applications\Templates\ProjectTemplates
Для Windows 7, русская версия: Documents\SolidWorks Visual Studio Tools for Applications\Templates\ProjectTemplates
Visual Studio user item templates location:
Для Windows XP, русская версия: Мои документы\SolidWorks Visual Studio Tools for Applications\Templates\ItemTemplates
Для Windows 7, русская версия: Documents\SolidWorks Visual Studio Tools for Applications\Templates\ItemTemplates
Также, в случае если есть проблемы с записью макросов, стоит сделать следующее: в SolidWorks зайти в Параметры, в разделе Общие найти и снять галочку с пункта Остановить отладчик VSTA при завершении работы макроса и поставить галочку в пункте Автоматически редактировать макрос после записи.
Рис. 4. 4. Настройка SolidWorks для работы с VSTA
В случае успешной записи макроса, его работу можно проверить следующим образом: скомпилировать dll в VSTA: Build -> Build <имя макроса>. Запустить скомпилированный dll (из директории <имя макроса>\SwMacro\bin\Release) в SolidWorks на новой детали (Выполнить макрос). Основная панель для работы с макросами в SolidWorks выглядит так:
Возвращаемся к кнопке нашего приложения, которая будет строить деталь в SolidWorks. Скопируем код записанного макроса построения простенькой детали в наш проект, а именно в код события Click для кнопки BHide:
private void BHide_Click(object sender, EventArgs e)
{
BStart.Enabled = false;
SldWorks.SldWorks swAppHide = new SldWorks.SldWorks();
if (swAppHide == null)
{ MessageBox.Show("Невозможно запустить экземпляр SolidWorks 2012!", "Работа с SolidWorks (C#) :: Запуск SolidWorks"); }
else
{
BStart.Enabled = false;
BHide.Enabled = false;
}
swAppHide.Visible = false;
swAppHide.NewPart();
// Начало макроса
ModelDoc2 swDoc = null;
PartDoc swPart = null;
DrawingDoc swDrawing = null;
AssemblyDoc swAssembly = null;
bool boolstatus = false;
int longstatus = 0;
int longwarnings = 0;
swDoc = ((ModelDoc2)(swAppHide.ActiveDoc)); // В макросе было использовано swApp
swDoc = ((ModelDoc2)(swAppHide.ActiveDoc)); // В макросе было использовано swApp
boolstatus = swDoc.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, true, 0, null, 0);
RefPlane myRefPlane = null;
myRefPlane = ((RefPlane)(swDoc.FeatureManager.InsertRefPlane(8, 0.01, 0, 0, 0, 0)));
swDoc.ClearSelection2(true);
swDoc.ClearSelection2(true);
Array vSkLines = null;
vSkLines = ((Array)(swDoc.SketchManager.CreateCornerRectangle(0, 0, 0, 0.070797287636592099, 0.045512542052094929, 0)));
swDoc.ClearSelection2(true);
SketchSegment skSegment = null;
skSegment = ((SketchSegment)(swDoc.SketchManager.CreateCircle(0.035399, 0.022756, 0.000000, 0.048625, 0.029175, 0.000000)));
swDoc.ClearSelection2(true);
swDoc.SketchManager.InsertSketch(true);
boolstatus = swDoc.Extension.SelectByID2("Line2@Эскиз1", "EXTSKETCHSEGMENT", 0, 0.017504823866190358, 0, false, 0, null, 0);
swDoc.ShowNamedView2("*Триметрия", 8);
swDoc.ClearSelection2(true);
boolstatus = swDoc.Extension.SelectByID2("Line2@Эскиз1", "EXTSKETCHSEGMENT", 0, 0.017504823866190358, 0, false, 0, null, 0);
Feature myFeature = null;
myFeature = ((Feature)(swDoc.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.020000000000000004, 0.01, false, false, false, false, 0.017453292519943334, 0.017453292519943334, false, false, false, false, true, true, true, 0, 0, false)));
swDoc.ISelectionManager.EnableContourSelection = false;
swDoc.SetPickMode();
swDoc.ClearSelection2(true);
// Конец макроса
swDoc.SaveAsSilent("D:\\LWP06SW01-Деталь.sldprt", false);
swAppHide.ExitApp();
swAppHide = null;
MessageBox.Show("Деталь отрисована и сохранена на диск, работа SolidWorks 2012успещно завершена!", "Работа с SolidWorks (C#) :: Фоновый режим");
}
Код который записывает SolidWorks достаточно прост. Все операции по построению детали совершаются последовательно. SolidWorks записывает абсолютно все действия пользователя (даже повороты камеры во время построения), поэтому иногда целесообразнее останавливать запись, чтобы в макрос не шло лишних ненужных данных. Также имеет смысл останавливать запись и обновлять макрос для «вылавливания» части кода, который например, отвечает за размер детали (чтобы поставить в это место комментарий).
Макрос выше, сначала на виде Спереди вставляет справочную плоскость (расстояние от вида Спереди: 10 мм). Затем рисует Эскиз (который находится непосредственно на виде Спереди). Эскиз состоит из двух фигур: прямоугольника и окружности. Затем происходит вытягивание на 20 мм фигуры заключённой между внешнем прямоугольником и внутренней окружностью. Поясним код, который отвечает за размеры фигур:
boolstatus = swDoc.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, true, 0, null, 0);
RefPlane myRefPlane = null;
myRefPlane = ((RefPlane)(swDoc.FeatureManager.InsertRefPlane(8, 0.01, 0, 0, 0, 0)));
swDoc.ClearSelection2(true);
Здесь по порядку:
1. Выбор вида Спереди.
2. Задание экземпляра объекта Плоскость.
3. Отрисовка плоскости, где 8 это параметр первого ограничения (первая привязка), а второй (0.01) и есть отступ в 10 мм по первой привязке (вид Спереди).\
4. Дальше идёт сбор выделения.
Array vSkLines = null;
vSkLines = ((Array)(swDoc.SketchManager.CreateCornerRectangle(0, 0, 0, 0.070797287636592099, 0.045512542052094929, 0)));
swDoc.ClearSelection2(true);
Это построение прямоугольника (эскиз как массив линий). Строит четыре линии от начальной точки (три первых нуля), до конечной. В качестве начальной выбрана Исходная точка. Конечная точка это:
double X2 (ось X): ~70.7 мм.
double Y2 (ось Y): ~45.5 мм.
double Z2: 0.
SketchSegment skSegment = null;
skSegment = ((SketchSegment)(swDoc.SketchManager.CreateCircle(0.035399, 0.022756, 0.000000, 0.048625, 0.029175, 0.000000)));
swDoc.ClearSelection2(true);
swDoc.SketchManager.InsertSketch(true);
Построение окружности (по двум точкам: точка центра и точка на самой окружности). Первый три координаты (double XC, double YC и double Zc) отвечают за положение точки центра на эскизе. Последние три: за положение точки на окружности. Как видно, функция отрисовки окружности не хранит напрямую параметр радиуса и диаметра. В конце кода выше после строчки выполняющей снятие выделения идёт строчка вставки эскиза (завершение его редактирования).
boolstatus = swDoc.Extension.SelectByID2("Line2@Эскиз1", "EXTSKETCHSEGMENT", 0, 0.017504823866190358, 0, false, 0, null, 0);
Feature myFeature = null;
myFeature = ((Feature)(swDoc.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.020000000000000004, 0.01, false, false, false, false, 0.017453292519943334, 0.017453292519943334, false, false, false, false, true, true, true, 0, 0, false)));
Вытягивание. Выбираем весь эскиз (в данном случае была выделена линия прямоугольника). После выделения, весь эскиз выделяется жёлтым цветом. Далее идёт создание экземпляра объекта для вытягивания и собственно последняя строчка выполняет вытягивание в одну сторону (Направление 1) на 20 мм (0.02000...4).
Итак. «Читать» код SolidWorks достаточно просто. К тому же, при наведении курсора на функции, сам VSTA также как и Visual Studio 2010 высвечивает подсказки Достаточно скудные подсказки: лишь тип функций, их аргументы и тип аргументов, однако в названии, как функций, так и аргументов уже заложено определение того, для чего всё это можно использовать. Проще всего изучать API на многочисленных примерах как в справочной системе SolidWorks (на локальной машине с установленным SolidWorks), так и на официальном сайте (www.solidworks.com). Также можно записывать макросы с различными действиями.