Автоматизация осевых стоек Solidworks VBA

Для проекта мне нужно автоматизировать проектирование Axlestand.

Для этого я хочу сделать длину и диаметр одной детали переменными. Теперь я узнал, как сделать диаметр переменным, так как это просто значение в эскизе, но я не могу заставить его работать, чтобы автоматизировать глубину выдавливания (которая является длиной детали).

Итак, мой вопрос;

Как я могу сделать длину этой части переменной? Длина равна глубине экструзии.

Код, который я использовал для создания переменной диаметра, таков:

Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Driepoot-1@Assem1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditPart
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Sketch1@Driepoot-1@Assem1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 2.74859513030536E-02, -3.06463363579324E-02, 6.16380172114107E-02, False, 0, Nothing, 0)
Set myDisplayDim = Part.AddDimension2(5.72509941423576E-02, 0, -5.63921816082802E-03)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("D1@Sketch1@Driepoot-1@Assem1", "DIMENSION", 0.051312269187431, -3.32967190067487E-02, 5.26236966313736E-02, False, 0, Nothing, 0)
Set myDimension = Part.Parameter("D1@[email protected]")
myDimension.SystemValue = <Insert Diameter here>
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
Part.EditAssembly

Надеюсь, кто-нибудь ответит на мой вопрос! :)

Тим


person Tim    schedule 27.06.2015    source источник


Ответы (1)


Глубина экструзии - это размер. Обычно именуется как «имя_измерения@имя_функции», например. "D1@Boss-Extrude1". Таким образом, вы можете изменить значение, как в вашем примере:

Dim myDimension As Object
Set myDimension = Part.Parameter("D1@Boss-Extrude1")
myDimension.SystemValue = val
boolstatus = Part.EditRebuild3()

UPD Изменено форматирование.

person Andrey.Dankevich    schedule 28.06.2015