'******************************************************************************
Dim swApp As ObjectDim Part As ObjectDim boolstatus As BooleanDim longstatus As Long, longwarnings As Long
Sub run_()
Set swApp = Application.SldWorksSet Part = swApp.ActiveDocWith UserForm1
Dim equationDriveCurve As Object '宣告方程式驱动曲线为物件Dim myModelView As Object '宣告模组视图为物件Dim wire_dim As Double '宣告线径为双精度 mmDim pitch_dim As Double '宣告节圆直径为双精度 mmDim coil_num As Double '宣告有效圈数为双精度Dim spring_hig As Double '宣告弹簧高度为双精度 mmDim spring_pitch As Double '宣告弹簧节距为双精度 mmDim spring_compression As Double '宣告弹簧压缩量为双精度 mmDim G As Double '宣告材料横向弹性系数为双精度 kg/mm^2Dim k As Double '宣告弹簧常数为双精度 kg/mmDim load_ As Double '宣告弹簧负载为双精度 kg
wire_dim = CDbl(.TextBox3.Value)pitch_dim = CDbl(.TextBox4.Value)coil_num = CDbl(.TextBox5.Value)spring_hig = CDbl(.TextBox6.Value)
If .CommandButton1.BackColor = vbYellow Thenload_ = CDbl(.TextBox1.Value)G = CDbl(.TextBox8.Value)k = CDbl(.TextBox9.Value)spring_compression = load_ / kspring_hig = spring_hig - spring_compression
End If
Part.EditDelete '删除螺旋线
'输入 数学关系式Set equationDriveCurve = Part.SketchManager.CreateEquationSpline2(pitch_dim / 2 & "*cos(t)", spring_hig / coil_num & "*(t/(2*pi))", _pitch_dim / 2 & "*sin(t)", "0", coil_num * 2 & "*pi", False, 0, 0, 0, True, True)Set myModelView = Part.ActiveViewmyModelView.RotateAboutCenter 0, 0
'解除方程式可能之错误boolstatus = Part.Extension.SelectByID2("Point3", "SKETCHPOINT", pitch_dim / 2 / 1000, 0, 0, False, 0, Nothing, 0) '选取弹簧起点座标Part.SketchAddConstraints "sgFIXED" '设起点为固定
'设定尺寸变数Set myDimension1 = Part.Parameter("D1@草图1@Spring^组件.Part") '线径变数Set myDimension2 = Part.Parameter("D2@草图1@Spring^组件.Part") '节圆直径变数Set myDimension3 = Part.Parameter("D1@平行相距1") '弹簧高变数Set myDimension4 = Part.Parameter("D1@草图1@Press Plate.Part") '定义压板边长之变数Set myDimension5 = Part.Parameter("D1@填料-伸长1@Press Plate.Part") '定义压板板厚之变数
myDimension1.SystemValue = wire_dim / 1000 '线径myDimension2.SystemValue = pitch_dim / 2 / 1000 '线径之X座标为节圆半径
Part.EditAssembly '编辑组件myDimension3.SystemValue = spring_hig / 1000 '弹簧高myDimension4.SystemValue = pitch_dim * 1.6 / 1000 '压板边长为节圆直径*1.6myDimension5.SystemValue = IIf(pitch_dim > 30, 0.016, 0.01) '压板板厚计算
boolstatus = Part.EditRebuild3() '重新计算boolstatus = Part.SetUserPreferenceToggle(swUserPreferenceToggle_e.swViewDisplayHideAllTypes, True) '隐藏所有类型End WithEnd Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
附上原始档2012版,使用前请详看"操作注意"WORD档
彈簧力計算_繁版.part2.rar
(927.73 KB, 下载次数: 89)
彈簧力計算_繁版.part3.rar
(279.26 KB, 下载次数: 178)