Разработка VBA приложений в SolidWorks

Описаны основные возможности и понятия, связанные с разработкой макросов в среде графического пакета SolidWorks. Рассмотрены подходы разработки макросов, реализующих автоматизированное проектирование пространственных моделей объектов и получения чертежей.

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

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

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Уральский федеральный университет

имени первого Президента России Б.Н. Ельцина

Разработка VBA приложений в SolidWorks

Часть 1. Сборник лабораторных работ

Д.В. Куреннов, В.И. Кондратьев

Подготовлено кафедрой «Информационные системы и автоматизация проектирования»

Научный редактор: доц., кандидат технических. наук Н.Д. Старостин

Екатеринбург

2013

Методическое пособие по курсу «Системы автоматизированного проектирования - САПР» для студентов дневной формы обучения направление 230000 «Информатика и вычислительная техника: 230105» Программное обеспечение вычислительных комплексов и систем.

Описаны основные возможности и понятия, связанные с разработкой макросов в среде графического пакета Solid Works. Рассмотрены подходы разработки макросов, реализующих автоматизированное проектирование пространственных моделей объектов и получения чертежей

УДК 681.3

Составители: Д.В. Куреннов, В. И. Кондратьев

Научный редактор Н.Д. Cтаростин, к.т.н., доц. РАЗРАБОТКА VBA ПРИЛОЖЕНИЙ

В SOLIDWORKS:Методические указания по дисциплине “Системы автоматизированного проектирования -САПР ”/ Д.В. Куреннов, В. И. Кондратьев. изд. институт УГТУ-УПИ, 2012. 50c.

В данных методических указаниях приведены сведения о разработке макросов в среде графического пакета Solid Works, рассмотрены подходы формирования макросов для построения трехмерных моделей объектов и построения чертежей . В пособии приведено большое количество примеров.

Библиогр.: 3 назв. Рис.20.

Подготовлено кафедрой
“ИНФОРМАЦИОННЫЕ СИСТЕМЫ И АВТОМАТИЗАЦИЯ ПРОЕКТИРОВАНИЯ”
© УГТУ-УПИ,2013
Solid Works является расширяемым пакетом, то есть он содержит средства, позволяющие создавать новые команды и приложения. Такие приложения обеспечивают большую степень автоматизации, чем ручное проектирование.
Можно выделить три варианта макросов, которые разрабатываются в Solid Works.
Первый вариант связан с автоматическим способом записи макросов. Так, в Solid Works имеются панель и меню с командами для записи и сохранения макросов (рис.1).
Рис.1. Панель для записи , сохранения и выполнения макросов
Макросы таким способом формируются следующим образом, включается команда Запись макроса, после чего строится модель объекта в командном режиме. Когда модель построена, выполняется команда Остановить запись макроса. После чего макрос сохраняется на диске и его можно запускать на выполнение.
Недостатком таких макросов является то, что они формируют модель точно такой же формы и размеров, какую мы построили. Положительным моментом является то, что в макросе содержатся операторы на языке Visual Basic, которые можно использовать для разработки более универсальных и гибких приложений.
По степени универсальности их можно разделить на два вида. К первому виду относятся приложения, которые позволяют при постоянной форме модели, которая формируется заранее ручным способом, менять размеры объектов, задавая значения размеров в диалоге и, если объект стандартный, то с использованием таблиц параметров. Ко второму виду, относятся приложения, в которых модель строится программно с использованием операторов языка Visual Basic For Application. В этом случае можно создавать более гибкие и интеллектуальные приложения, позволяющие управлять формой и размерами объектов проектирования.
Рассмотрим примеры разработки VBA приложений.
Создание параметрических объектов в SolidWorks на языке Visual Basic с использованием таблиц параметров
Рассмотрим методику создания параметрических моделей в среде Solid Works на языке Visual Basic с использованием таблиц параметров.
1. С этой целью создадим модель куба (рис.2).
Рис.2. Модель куба
Сохраним модель в файле Соparametric.SLDPRT
2. Затем создадим макрос Macpar1.swp и в нем создадим форму UserForm1(Рис.3).
приложение в solidworks графический макрос
Рис.3. Форма макроса
В форме разместим элементы: image,listbox,label,commandButton.
3. Поставим в соответствие событию нажатия кнопки OK следующий прогаммный код
Public iii As Integer
Dim MyArray(6, 3) 'Объявление массива
Private Sub CommandButton1_Click()
ListBox1.ColumnCount = 3
'Заполнение массива
MyArray(1, 0) = 100
MyArray(1, 1) = 120
MyArray(1, 2) = 150
MyArray(2, 0) = 200
MyArray(2, 1) = 220
MyArray(2, 2) = 250
MyArray(3, 0) = 300
MyArray(3, 1) = 320
MyArray(3, 2) = 350
MyArray(4, 0) = 400
MyArray(4, 1) = 420
MyArray(4, 2) = 450
MyArray(5, 0) = 500
MyArray(5, 1) = 520
MyArray(5, 2) = 550
MyArray(6, 0) = 600
MyArray(6, 1) = 620
MyArray(6, 2) = 650
ListBox1.List = MyArray
End Sub
Sub ParametricSub(ByVal XValue_Passed As Double, ByVal YValue_Passed As Double, ByVal ZValue_Passed As Double)
Dim swApp As Object
Set swApp = Application.SldWorks
Dim Part As Object ' Define variable used to hold the part object
MyPath = CurDir ' Determine current directory
Set Part = swApp.ActivateDoc("coparametric.SLDPRT")
' Change Dimension values to the X, Y, and Z values passed in
'XValue_Passed = 80
Part.Parameter("D1@Sketch1").SystemValue = XValue_Passed / 1000
Part.Parameter("D2@Sketch1").SystemValue = YValue_Passed / 1000
Part.Parameter("D1@Extrude1").SystemValue = ZValue_Passed / 1000
' Regenerate the partfile since changes were made
Part.EditRebuild
' Save the changes made to the partfile
Part.Save
End Sub
4. Поставим в соответствие событию выбора из списка ListBox1 следующий прогаммный код
Private Sub ListBox1_Click()
iii = 0
iii = ListBox1.ListIndex
'MsgBox iii
NN = MyArray(iii, 0)
LL = MyArray(iii, 1)
HH = MyArray(iii, 2)
NN = Val(NN)
LL = Val(LL)
HH = Val(HH)
'MsgBox iii
'MsgBox NN
'MsgBox LL
'MsgBox HH
XValue = LL
YValue = HH
ZValue = NN
Call ParametricSub(XValue, YValue, ZValue)
Msg = "Changes Complete" ' Define message.
Style = vbOKOnly ' Button option shows OK only
Title = "Parametric Block" ' Define title.
Call MsgBox(Msg, Style, Title)
End Sub
5.Поставим в соответствие событию нажатия кнопки CANCEL следующий прогаммный код
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
6. Запустите макрос (Рис.4).
Рис.4. Запуск макроса
7.В появившемся окне выберите нужные размеры объекта(Рис.5).
Рис.5. Выбор размеров объекта
В приведенном примере набор параметрических размеров объекта заносился непосредственно в массивы внутри программы. Такой вариант при изменении размерных данных объекта требует изменения программного кода, что для пользователя является неприемлемым.
1. Решим поставленную задачу, поместив данные о размерах объекта в файл Zapicw.txt.
100,120,150
200,220,250
300,320,350
400,420,450
500,520,550
600,620,650
Здесь в каждой строке представлены данные о длине, ширине и высоте рассматриваемой детали.
2. Затем создадим макрос Macpar2.swp и в нем создадим форму UserForm1(Рис.6).
Рис.6. Форма макроса
Эта форма точно такая же.
3. Событию нажатия кнопки ОК будет соответствовать программный код
Public iii As Integer
Dim MyArray() 'Определение массива переменной размерности
Private Sub CommandButton1_Click()
Dim i As Integer
ListBox1.ColumnCount = 3
'Определение размерности массива
i = 0
Open "C:\vlad\Solid\Basic\param_dan_file\Zapicw.txt" For Input As #2
Do While Not EOF(2)
Input #2, vr1, vr2, vr3
i = i + 1
Loop
Close #2
ReDim MyArray(i, 3)
'Заполнение массива из файла данных Zapicw.txt
i = 0
Open "C:\vlad\Solid\Basic\param_dan_file\Zapicw.txt" For Input As #2
Do While Not EOF(2)
Input #2, MyArray(i, 0), MyArray(i, 1), MyArray(i, 2)
i = i + 1
Loop
Close #2
ListBox1.List = MyArray
End Sub
Sub ParametricSub(ByVal XValue_Passed As Double, ByVal YValue_Passed As Double, ByVal ZValue_Passed As Double)
Dim swApp As Object
Set swApp = Application.SldWorks
Dim Part As Object ' Define variable used to hold the part object
MyPath = CurDir ' Determine current directory
Set Part = swApp.ActivateDoc("parametric.SLDPRT")
' Change Dimension values to the X, Y, and Z values passed in
Part.Parameter("D1@Sketch1").SystemValue = XValue_Passed / 1000
Part.Parameter("D2@Sketch1").SystemValue = YValue_Passed / 1000
Part.Parameter("D1@Extrude1").SystemValue = ZValue_Passed / 1000
' Regenerate the partfile since changes were made
Part.EditRebuild
' Save the changes made to the partfile
Part.Save
End Sub
4. Поставим в соответствие событию выбора из списка ListBox1 следующий прогаммный код
Private Sub ListBox1_Click()
iii = 0
iii = ListBox1.ListIndex
'MsgBox iii
NN = MyArray(iii, 0)
LL = MyArray(iii, 1)
HH = MyArray(iii, 2)
NN = Val(NN)
LL = Val(LL)
HH = Val(HH)
'MsgBox iii
'MsgBox NN
'MsgBox LL
'MsgBox HH
XValue = LL
YValue = HH
ZValue = NN
Call ParametricSub(XValue, YValue, ZValue)
Msg = "Changes Complete" ' Define message.
Style = vbOKOnly ' Button option shows OK only
Title = "Parametric Block" ' Define title.
Call MsgBox(Msg, Style, Title)
End Sub
5.Поставим в соответствие событию нажатия кнопки CANSEL следующий прогаммный код
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
6. Запустите макрос
7.В появившемся окне выберите нужные размеры объекта(Рис.7).
Рис.7. Выбор размеров объекта
Рассмотрим примеры формирования макросов по второму варианту на примерах построения моделей деталей.
Построение модели заготовки штампа для горячей штамповки тела вращения
Модель штампа в основном строится методами вытяжки и выреза в преобразовании 2D в 3D. Это значит, что для построения объемного элемента сначала выбирается плоскость, на ней строится эскиз, затем этот эскиз вытягивается на определенное расстояние, образуя объемный конструктивный элемент.
Построение модели начинается с создания кубика.
Построение кубика использует следующие функции:
SketchRectangle(val1,val2,z1,val3,val4,z2), где
val1 - координата X левого верхнего угла;
(double)val2 - координата Y левого верхнего угла;
(double)z2 - координата Z левого верхнего угла;
(double)val3 - координата X правого нижнего угла;
(double)val4 - координата Y правого нижнего угла;
(double)z2 - координата Z правого нижнего угла.
FeatureExtrusion2(sd,flip,dir,t1,t2,d1,d2,dchk1, dchk2,ddir1, ddir2,dang1,dang2,offsetReverse1, offsetReverse2,translateSurface1, translateSurface2, merge,useFeatScope,useAutoSelect,t0,startOffset,,flipStartOffset)
где
(VARIANT_BOOL)sd - TRUE,если вытягивание в одном направлении,FALSE - в двух;
(VARIANT_BOOL)flip - TRUE для смены направления выреза;
(VARIANT_BOOL)dir - TRUE для смены направления вытягивания;
(double)d1 - глубина вытягивание в первом направлении;
(double)d2 - глубина вытягивание во втором направлении;
(VARIANT_BOOL)dchk1 - TRUE для изменения угла наклона в первом направлении,FALSE - не изменять;
(VARIANT_BOOL)dchk2 - TRUE для изменения угла наклона во втором направлении,FALSE - не изменять;
(VARIANT_BOOL) ddir1- TRUE - уклон первого угла внутрь, FALSE -наружу;
(VARIANT_BOOL) ddir2- TRUE - уклон второго угла внутрь, FALSE -наружу
(double)dang1- значение угла для первого направления;
(double)dang2- значение угла для второго направления;
(VARIANT_BOOL)offsetReverse1- TRUE - реверс направления вытягивания в первом направлении, FALSE - не изменять направление вытягивания;
(VARIANT_BOOL)offsetReverse2- TRUE - реверс направления вытягивания во втором направлении, FALSE - не изменять направление вытягивания;
(VARIANT_BOOL) translateSurface1 - TRUE для отсчета глубины вытяжки от противоположной плоскости в первом направлении, FALSE- от текущей плоскости;
После кубика строятся конструктивные элементы с помощью следующих функций:
(VARIANT_BOOL) translateSurface2 - TRUE для отсчета глубины вытяжки от противоположной плоскости во втором направлении, FALSE- от текущей плоскости;
(VARIANT_BOOL) merge- TRUE, если нужно объединить с телом, FALSE- не нужно;
(VARIANT_BOOL) useFeatScope- - TRUE, если вытягиваемый объект влиет на другие объекты, , FALSE- не влияет;
(VARIANT_BOOL) useAutoSelect - TRUE,-для автоматического выделения объектов, FALSE- вручную;
(long) t0 - начальное условие swStartConditions_e;
(double)startOffset - Если задано значение t0, устанавливается значение отступа;
(VARIANT_BOOL)flipStartOffset - Если задано значение t0, TRUE - изменить направление на противоположное, FALSE- не изменять.
FeatureFillet
FeatureFillet(options,r1,ftyp,overFlowType,radii,setBackDistances,pointRadiusArray), Где
(long)options - опция скругления swFeatureFilletOptions_e;
(double)r1 - радиус скругления;
(long)ftyp - 0 - для простого скругления;
1 - для варьируемого радиуса скругления;
2 - для смещения радиуса
(long)overFlowType - контроль выхода скругления на смежные поверхности.
FeatureCut
Создает вырез по эскизу на заданную глубину
FeatureCut(sd,flip,dir,t1,t2,d1,d2,dchk1, dchk2,ddir1,ddir2,dang1,dang2,offsetReverse1, offsetReverse2,translateSurface1, translateSurface2,normalCut,useFeatScope,useAutoSelect)
Элементы этой функции аналогичны элементам FeatureExtrusion2.
CreateCircle
Создает окружность по координатам
CreateCircle2(xc,yc,zc,xp,yp,zp)
где
(double) xc,yc,zc - координаты центра окружности;
(double) xp,yp,zp - координаты края окружностию.
CreateLine2
Создает линию по координатам
CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd)
где
(double)xStart,yStart,zStart - координаты начальной точки;
(double)xEnd,yEnd,zEnd - координаты конечной точки.
CreatePlaneAtOffset3
Создает вспомогательную плоскость
CreatePlaneAtOffset3(val,flipDir,autoSize), где
(double) va - расстояние отступа от выбранной плоскости;
(VARIANT_BOOL) flipDir - TRUE - для смены направления;
(VARIANT_BOOL) autoSize- TRUE - для автоматического задания размеров.
FeatureRevolveCut
Вращает контур на заданный угол вокруг выбранной точки
FeatureRevolveCut(angle,revolveDir, angle2,revType,options,useFeatScope,useAutoSel), Где
(double) angle - угол вращения;
(VARIANT_BOOL) revolveDir - TRUE - для противоположного направления вращения, FALSE - не менять;
(double) angle2- угол вращения;
(long)- revType - тип вращения;
(long)options - дополнительный контроль;
(VARIANT_BOOL) useFeatScope - TRUE вращать выбранные объекты, FALSE - вращать вcе объекты;
(VARIANT_BOOL) useAutoSel- автоматически выбрать объекты, FALSE - вручную выбрать объекты.
Создание макроса для проектирования штампа
1. Создадим макрос, используя Tools/Macroc/New
2. Создадим форму для ввода исходных данных(Рис.8).
Текст программного кода для 12 версии Solid Works
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
Рис.8. Форма макроса
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Dim vSkLines As Variant
Dim B As Double
Dim L As Double
Dim H As Double
Dim B1 As Double
Dim h1 As Double
Dim i1 As Double
Dim b3 As Double
Dim r3 As Double
Dim h3 As Double
Dim r As Double
Dim alfa As Double
B = Val(TextBoxB.Text)
L = Val(TextBoxL.Text)
H = Val(TextBoxH.Text)
B1 = Val(TextBoxB1.Text)
BB = Val(TextBoxBB.Text)
h1 = Val(TextBoxh1.Text)
i1 = Val(TextBoxi1.Text)
b3 = Val(TextBoxb3.Text)
r3 = Val(TextBoxr3.Text)
r = Val(TextBoxr.Text)
h3 = Val(TextBoxh3.Text)
alfa = Atn((B1 - BB) / h1)
'Построение кубика
vSkLines = Part.SketchManager.CreateCornerRectangle(0, 0, 0, B, L, 0)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Эскиз1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Dim myFeature As Object
'Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, H, H, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, H, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = False
'Боковые вырезы
'boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H / 2, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, (B - B1) / 2, L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle B, 0, 0, B - ((B - B1) / 2), L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'boolstatus = Part.Extension.SelectByID2("", "FACE", 0, L, 0, False, 0, Nothing, 0)
' Вырез паза
boolstatus = Part.Extension.SelectByID2("Top", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle (B - ((B - B1) / 2)) - i1, L / 2 - i1 / 2, 0, (B - ((B - B1) / 2)), L / 2 + i1 / 2, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, 0, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Боковые отверстия
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, b3, 0, B / 2, b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, -b3, 0, B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Скругления
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B + BB) / 2), h1, 0, ((B + BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B - BB) / 2), h1, 0, ((B - BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Построение профиля ручья
'Построение эскиза
boolstatus = Part.Extension.SelectByID2("Top", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 L / 2, False, True
boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Part.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1, 0, "New_Name"
'boolstatus = Part.Extension.SelectByID2("New_Name", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchRectangle 0, 0, 0, 0, 0, 0, 1
H = -H
Part.CreateLine2 B / 2, H - 3, 0, B / 2 + 20, H - 3, 0
Part.CreateLine2 B / 2 + 20, H - 3, 0, B / 2 + 20, H + 8, 0
Part.CreateLine2 B / 2 + 20, H + 8, 0, B / 2 + 14, H + 8, 0
Part.CreateLine2 B / 2 + 14, H + 8, 0, B / 2 + 14, H + 13, 0
Part.CreateLine2 B / 2 + 14, H + 13, 0, B / 2, H + 13, 0
Part.CreateLine2 B / 2, H + 13, 0, B / 2, H - 3, 0
Part.CreateLine2(B / 2, H - 20, 0, B / 2, H + 13, 0).ConstructionGeometry = True
'Вращение контура
boolstatus = Part.Extension.SelectByID2("Эскиз9", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureRevolveCut 6.28318530718, False, 0, 0, 0, 1, 1
Part.ClearSelection2 True
End Sub
Текст программного кода для 8 версии Solid Works
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim B As Double
Dim L As Double
Dim H As Double
Dim B1 As Double
Dim h1 As Double
Dim i1 As Double
Dim b3 As Double
Dim r3 As Double
Dim h3 As Double
Dim r As Double
Dim alfa As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swApp = Application.SldWorks
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
B = Val(TextBoxB.Text)
L = Val(TextBoxL.Text)
H = Val(TextBoxH.Text)
B1 = Val(TextBoxB1.Text)
BB = Val(TextBoxBB.Text)
h1 = Val(TextBoxh1.Text)
i1 = Val(TextBoxi1.Text)
b3 = Val(TextBoxb3.Text)
r3 = Val(TextBoxr3.Text)
r = Val(TextBoxr.Text)
h3 = Val(TextBoxh3.Text)
alfa = Atn((B1 - BB) / h1)
'Построение кубика
Part.SketchRectangle 0, 0, 0, B, L, 0, 1
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, H, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = 0
'Боковые вырезы
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, (B - B1) / 2, L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle B, 0, 0, B - ((B - B1) / 2), L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0, L, 0, False, 0, Nothing, 0)
' Вырез паза
boolstatus = Part.Extension.SelectByID2("Top", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle (B - ((B - B1) / 2)) - i1, L / 2 - i1 / 2, 0, (B - ((B - B1) / 2)), L / 2 + i1 / 2, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, 0, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Боковые отверстия
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreateCircle -B / 2, -b3, 0, -B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, -b3, 0, B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Скругления
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B + BB) / 2), h1, 0, ((B + BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B - BB) / 2), h1, 0, ((B - BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Построение профиля ручья
'Построение эскиза
boolstatus = Part.Extension.SelectByID2("Top", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 L / 2, False, True
boolstatus = Part.Extension.SelectByID2("Plane1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1, 0, "New_Name"
boolstatus = Part.Extension.SelectByID2("New_Name", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, 0, 0, 0, 1
Part.CreateLine2 -B / 2, H + 3, 0, -B / 2 + 20, H + 3, 0
Part.CreateLine2 -B / 2 + 20, H + 3, 0, -B / 2 + 20, H - 8, 0
Part.CreateLine2 -B / 2 + 20, H - 8, 0, -B / 2 + 14, H - 8, 0
Part.CreateLine2 -B / 2 + 14, H - 8, 0, -B / 2 + 14, H - 13, 0
Part.CreateLine2 -B / 2 + 14, H - 13, 0, -B / 2, H - 13, 0
Part.CreateLine2 -B / 2, H - 13, 0, -B / 2, H + 3, 0
Part.CreateLine2(-B / 2, H - 20, 0, -B / 2, H + 13, 0).ConstructionGeometry = True
'Вращение контура
boolstatus = Part.Extension.SelectByID2("Sketch9", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureRevolveCut 6.28318530718, False, 0, 0, 0, 1, 1
'Part.SelectionManager.EnableContourSelection = 0
Part.ClearSelection2 True
'Part.SketchRectangle 0, 0, 0, 30, 40, 0, 1
End Sub
Текст программного кода для 9 версии Solid Works
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim B As Double
Dim L As Double
Dim H As Double
Dim B1 As Double
Dim h1 As Double
Dim i1 As Double
Dim b3 As Double
Dim r3 As Double
Dim h3 As Double
Dim r As Double
Dim alfa As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swApp = Application.SldWorks
boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
B = Val(TextBoxB.Text)
L = Val(TextBoxL.Text)
H = Val(TextBoxH.Text)
B1 = Val(TextBoxB1.Text)
BB = Val(TextBoxBB.Text)
h1 = Val(TextBoxh1.Text)
i1 = Val(TextBoxi1.Text)
b3 = Val(TextBoxb3.Text)
r3 = Val(TextBoxr3.Text)
r = Val(TextBoxr.Text)
h3 = Val(TextBoxh3.Text)
alfa = Atn((B1 - BB) / h1)
'Построение кубика
Part.SketchRectangle 0, 0, 0, B, L, 0, 1
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, H, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = 0
'Боковые вырезы
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, (B - B1) / 2, L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle B, 0, 0, B - ((B - B1) / 2), L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0, L, 0, False, 0, Nothing, 0)
' Вырез паза
boolstatus = Part.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle (B - ((B - B1) / 2)) - i1, L / 2 - i1 / 2, 0, (B - ((B - B1) / 2)), L / 2 + i1 / 2, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, 0, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Боковые отверстия
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, b3, 0, B / 2, b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, -b3, 0, B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Скругления
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B + BB) / 2), h1, 0, ((B + BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B - BB) / 2), h1, 0, ((B - BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Построение профиля ручья
'Построение эскиза
boolstatus = Part.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 L / 2, False, True
boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1, 0, "New_Name"
boolstatus = Part.Extension.SelectByID2("New_Name", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, 0, 0, 0, 1
Part.CreateLine2 -B / 2, H + 3, 0, -B / 2 + 20, H + 3, 0
Part.CreateLine2 -B / 2 + 20, H + 3, 0, -B / 2 + 20, H - 8, 0
Part.CreateLine2 -B / 2 + 20, H - 8, 0, -B / 2 + 14, H - 8, 0
Part.CreateLine2 -B / 2 + 14, H - 8, 0, -B / 2 + 14, H - 13, 0
Part.CreateLine2 -B / 2 + 14, H - 13, 0, -B / 2, H - 13, 0
Part.CreateLine2 -B / 2, H - 13, 0, -B / 2, H + 3, 0
Part.CreateLine2(-B / 2, H - 20, 0, -B / 2, H + 13, 0).ConstructionGeometry = True
'Вращение контура
boolstatus = Part.Extension.SelectByID2("Эскиз9", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureRevolveCut 6.28318530718, False, 0, 0, 0, 1, 1
''Part.SelectionManager.EnableContourSelection = 0
Part.ClearSelection2 True
'Part.SketchRectangle 0, 0, 0, 30, 40, 0, 1
End Sub
Текст программного кода для 6 версии Solid Works
Private Sub CommandButton2_Click()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim B As Double
Dim L As Double
Dim H As Double
Dim B1 As Double
Dim h1 As Double
Dim i1 As Double
Dim b3 As Double
Dim r3 As Double
Dim h3 As Double
Dim r As Double
Dim alfa As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swApp = Application.SldWorks
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
B = Val(TextBox1.Text)
L = Val(TextBox2.Text)
H = Val(TextBox3.Text)
B1 = Val(TextBox4.Text)
BB = Val(TextBox5.Text)
h1 = Val(TextBox6.Text)
i1 = Val(TextBox7.Text)
b3 = Val(TextBox8.Text)
r3 = Val(TextBox9.Text)
r = Val(TextBox10.Text)
h3 = Val(TextBox11.Text)
alfa = Atn((B1 - BB) / h1)
'Построение кубика
Part.SketchRectangle 0, 0, 0, B, L, 0, 1
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, H, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = 0
Part.SelectionManager.EnableContourSelection = 0
'Боковые вырезы
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, (B - B1) / 2, L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle B, 0, 0, B - ((B - B1) / 2), L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0, L, 0, False, 0, Nothing, 0)
' Вырез паза
boolstatus = Part.Extension.SelectByID2("Top", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle (B - ((B - B1) / 2)) - i1, L / 2 - i1 / 2, 0, (B - ((B - B1) / 2)), L / 2 + i1 / 2, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, 0, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Боковые отверстия
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreateCircle -B / 2, -b3, 0, -B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, -b3, 0, B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Скругления
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B + BB) / 2), h1, 0, ((B + BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B - BB) / 2), h1, 0, ((B - BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 L / 2, True, True
boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Part.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1, 0, "Новая_плоскость"
'boolstatus = Part.Extension.SelectByID2("Новая_плоскость", "Плоскость1", 0, 0, 0, False, 0, Nothing, 0)
'Part.SketchRectangle 0, 0, 0, B, L, 0, 1
Part.CreateCircle -B / 2, -b3, 0, -B / 2, -b3 - 0, 0
Part.CreateLine2 -B / 2, H + 3, 0, -B / 2 + 20, H + 3, 0
Part.CreateLine2 -B / 2 + 20, H + 3, 0, -B / 2 + 20, H - 8, 0
Part.CreateLine2 -B / 2 + 20, H - 8, 0, -B / 2 + 14, H - 8, 0
Part.CreateLine2 -B / 2 + 14, H - 8, 0, -B / 2 + 14, H - 13, 0
Part.CreateLine2 -B / 2 + 14, H - 13, 0, -B / 2, H - 13, 0
Part.CreateLine2 -B / 2, H - 13, 0, -B / 2, H + 3, 0
Part.CreateLine2(-B / 2, H - 20, 0, -B / 2, H + 13, 0).ConstructionGeometry = True
boolstatus = Part.Extension.SelectByID2("Sketch9", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureRevolveCut 6.28318530718, False, 0, 0, 0, 1, 1
'Part.SelectionManager.EnableContourSelection = 0
Part.ClearSelection2 True
End Sub
Текст для 16 версии
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = _
Application.SldWorks
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2016\templates\gost-part.prtdot", 0, 0, 0)
swApp.ActivateDoc2 "Деталь1", False, longstatus
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
'boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Dim swApp As Object
'Dim Part As Object
'Dim boolstatus As Boolean
Dim B As Double
Dim L As Double
Dim H As Double
Dim B1 As Double
Dim h1 As Double
Dim i1 As Double
Dim b3 As Double
Dim r3 As Double
Dim h3 As Double
Dim r As Double
Dim alfa As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swApp = Application.SldWorks
boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
B = Val(TextBoxB.Text)
L = Val(TextBoxL.Text)
H = Val(TextBoxH.Text)
B1 = Val(TextBoxB1.Text)
BB = Val(TextBoxBB.Text)
h1 = Val(TextBoxh1.Text)
i1 = Val(TextBoxi1.Text)
b3 = Val(TextBoxb3.Text)
r3 = Val(TextBoxr3.Text)
r = Val(TextBoxr.Text)
h3 = Val(TextBoxh3.Text)
alfa = Atn((B1 - BB) / h1)
'Построение кубика
Part.SketchRectangle 0, 0, 0, B, L, 0, 1
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, H, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = 0
'Боковые вырезы
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, (B - B1) / 2, L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L / 2, H, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle B, 0, 0, B - ((B - B1) / 2), L, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, h1, True, False, True, False, alfa, alfa, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0, L, 0, False, 0, Nothing, 0)
' Вырез паза
boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Part.SketchRectangle (B - ((B - B1) / 2)) - i1, L / 2 - i1 / 2, 0, (B - ((B - B1) / 2)), L / 2 + i1 / 2, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, True, 0, 0, h1, 0, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Боковые отверстия
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, L, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, b3, 0, B / 2, b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle B / 2, -b3, 0, B / 2, -b3 - r3, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, h3, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Скругления
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B + BB) / 2), h1, 0, ((B + BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("", "FACE", B / 2, 0, H / 2, False, 0, Nothing, 0)
Part.CreateCircle ((B - BB) / 2), h1, 0, ((B - BB) / 2), h1 + r, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 0, 0, L + 10, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
'Построение профиля ручья
'Построение эскиза
boolstatus = Part.Extension.SelectByID2("Сверху", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 L / 2, False, True
boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1, 0, "New_Name"
boolstatus = Part.Extension.SelectByID2("New_Name", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, 0, 0, 0, 1
Part.CreateLine2 B / 2, -H - 3, 0, B / 2 + 20, -H - 3, 0
Part.CreateLine2 B / 2 + 20, -H - 3, 0, B / 2 + 20, -H + 8, 0
Part.CreateLine2 B / 2 + 20, -H + 8, 0, B / 2 + 14, -H + 8, 0
Part.CreateLine2 B / 2 + 14, -H + 8, 0, B / 2 + 14, -H + 13, 0
Part.CreateLine2 B / 2 + 14, -H + 13, 0, B / 2, -H + 13, 0
Part.CreateLine2 B / 2, -H + 13, 0, B / 2, -H - 3, 0
...

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

  • Создание программных комплексов для систем автоматизированного проектирования с системами объемного моделирования и экспресс-тестами. SolidWorks - мировой стандарт автоматизированного проектирования. Пользовательский интерфейс, визуализация модели.

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

  • Современный подход к проектированию и производству высокотехнологичной и наукоёмкой продукции. Схема, структура, интерфейсы и приложения, создаваемые на платформе SolidWorks API. Особенности использования API в коммерческих программных продуктах.

    курсовая работа [325,7 K], добавлен 06.08.2013

  • Решение математических примеров, построение графиков с помощью программы Mathcad. Создание 3D модели сборки, гидродинамического расчета, термического расчета и статистического расчета с помощью программы SolidWorks. Детали интерфейса, элементы вкладок.

    отчет по практике [2,3 M], добавлен 25.11.2014

  • Использование трехмерного твердотельного и поверхностного параметрического проектирования на этапах конструкторской и технологической подготовки производства. Проектирование горизонтального тонкоплёночного испарителя в программном комплексе SolidWorks.

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

  • Изучение понятия, видов и методов создания стандартных макросов Microsoft Office Word - набора инструкций, которые сообщают программе, какие действия следует выполнить, чтобы достичь определенной цели. Функции макрорекордера. Редактирование макросов.

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

  • Проектирование и моделирование платы и корпуса цифрового устройства. Геометрическая модель платы и нахождение собственных частот. Исследование теплообмена с использованием граничного условия и вентилятора. Методы моделирования в системе SolidWorks.

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

  • История создания программы SolidWorks: рынок САПР в 90-е гг., появление средств программного комплекса. Общая характеристика и описание программы SolidWorks: концепция, пользовательский интерфейс, принципы работы, создание сборок, визуализация изделий.

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

  • Процесс твердотельного моделирования отдельных деталей и узлов (вала, втулки, корпуса), создание модели всего трехступенчатого червячного редуктора (сборка). Создание трехмерной модели сборки редуктора. Проверка правильности сборки в среде SolidWorks.

    курсовая работа [6,5 M], добавлен 13.01.2014

  • САПР інженерного аналізу та підготовки виробництва виробів SolidWorks, AutoCAD та Unigraphics, їх відмінні та подібні ознаки, порівняльна характеристика та особливості використання, оцінка можливостей, технічні вимоги. Універсальна система СADAD (США).

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

  • Обґрунтування вибору автоматизованої системи для створення конструкторської документації. Проектування 3D моделі і креслення деталі в системі SolidWorks. Розробка API програми. Призначення деталі "прес-форма". Розробка керуючої програми для устаткування.

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

  • Создание базы данных, планирование разработки и системные требования. Проектирование базы данных в среде Microsoft Access, элементы и типы данных. Создание таблицы и использование конструктора для их модернизации. Построение запросов и создание макросов.

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

  • Разработка базы данных "Доставка товара" в среде MS Access, ее структуры, объектов (таблиц, запросов, форм, отчетов, макросов). Анализ предметной области базы данных, описание ее схемы, полей таблиц, разработанных объектов. Требования к работе приложения.

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

  • Разработка базы данных торговой фирмы по поставке одежды. Анализ таблиц, которые она содержит. Присвоение ключевых полей. Использование средств программирования и макросов для упорядочения структуры базы данных в среде СУБД MS Access. Добавление объектов.

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

  • Применение системы автоматизированного проектирования AutoCad при создании электронных чертежей. Основные алгоритмы работы и создания чертежей. Операции над файлами. Модификация и редактирование объектов на экране. Панель свойств объектов Properties.

    курсовая работа [206,7 K], добавлен 21.12.2010

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

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

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

    презентация [329,0 K], добавлен 08.12.2013

  • Суммирование элементов столбцов заданной матрицы и получение результатов в одномерных массивах с помощью задания формулы и создания макросов. Нормирование вектора и нахождение его длины, объявление массива, указание его размерности, вывод формы.

    контрольная работа [460,5 K], добавлен 18.01.2011

  • Общая характеристика и функциональные возможности системы "Компьютерное тестирование". Связи между информационными объектами. Проектирование алгоритмов обработки данных. Реализация алгоритмов обработки информации, разработка соответствующих макросов.

    контрольная работа [542,8 K], добавлен 19.10.2010

  • Основы проектирования базы данных (БД). Модели, типы и функциональные возможности БД. Практическая разработка БД для горнолыжной базы. Сохранение данных в таблицах. Типы запросов как средства выбора необходимой информации. Создание отчетов и макросов.

    курсовая работа [53,3 K], добавлен 12.06.2014

  • Общие сведения о деятельности кондитерской фабрики. Проектирование структуры баз данных для формирования заказов. Выделение информации объектов, определение структурных связей. Построение информационной модели. Создание запросов, отчетов и макросов.

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

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