【问题标题】:SolidWorks Macro "Copy with Mates"SolidWorks 宏“与配合复制”
【发布时间】: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


    【解决方案1】:

    并非所有的soldiworks 操作都可以记录为宏。更复杂的通常不能。如果你想自动化它,你将不得不自己完成大部分工作。

    我建议首先使用 API 来确定您要使用手动设置正确的部分添加什么样的配合:example

    然后按照this插入零部件并添加配合。

    【讨论】:

      猜你喜欢
      • 2021-09-06
      • 2022-06-30
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2023-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多