SolidWorks 2019
我们有一个由1)个零件和2)由2个零件组成的零件组成的装配体。
2号与4号配对与1)配对。我们使用内置的“配合配合复制”,仅更改1个配合(参见图像,我们更改了后者)。效果很好。
然后,我们尝试将任务记录为一个宏,但是它不起作用。下面是录制的宏。我们必须复制70次,所以我们要编写脚本,如果可以的话...似乎该宏没有记录所有命令,因为该宏仅显示“ SelectByID2”?
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.Extension.SelectByID2("VG_35_mm_pair-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("VG_35_mm_pair-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Spline1@Front_Curve@B52_with_hub_Part_VG_Test_1-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "EXTSKETCHSEGMENT", -6.26992150606958, 0.775894302170855, -15.7340472890057, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Spline1@Front_Curve@B52_with_hub_Part_VG_Test_1-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "EXTSKETCHSEGMENT", -6.26992150606958, 0.775894302170855, -15.7340472890057, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0.72965560792877, -2.76149537219488, -52.245, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", -0.163628357652359, -0.693217558762202, -1.5, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Spline1@Front_Curve@B52_with_hub_Part_VG_Test_1-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "EXTSKETCHSEGMENT", -6.26992150606958, 0.775894302170855, -15.7340472890057, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Spline1@Front_Curve@B52_with_hub_Part_VG_Test_1-1@B52_with_hub_Assembly_VG_Test_2_MacroTest", "EXTSKETCHSEGMENT", -6.26992150606958, 0.775894302170855, -15.7340472890057, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByRay(0.72965560792877, -2.76149537219488, -52.245, 0.884362037190013, -0.288902374358076, -0.366659522264726, 4.02652481088142E-03, 2, True, 0, 0)
boolstatus = Part.Extension.SelectByRay(-0.163628357652359, -0.693217558762202, -1.5, 0.884362037190013, -0.288902374358076, -0.366659522264726, 4.02652481088142E-03, 2, True, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.EditRebuild3()
End Sub