【发布时间】:2019-09-24 16:30:22
【问题描述】:
SolidWorks 2019
我们有一个组件,包括 1) 一个零件和 2) 一个由 2 个零件组成的组件。
数字 2) 与数字 1) 与 4 个配对。我们使用内置的“Copy with Mates”,只更改 1 个 mate(见图片,我们更改了后者)。效果很好。
然后我们尝试将任务记录为宏,但它不起作用。下面是录制的宏。我们必须复制 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
【问题讨论】:
标签: vba solidworks