我正在编写一个宏,它最终(希望如此!)从 excel 或文本文件中读取零件编号,然后搜索我的零件库的配置并将相应的组件插入到组件中,然后激活相应的配置。
我在插入零件和/或组件时遇到问题。我开始录制插入零件的宏。很简单。它使用 AddComponent 命令,该命令需要文件路径和 xyz 坐标。这似乎工作正常,但它一直出现故障。据我所知,此命令无法插入零件或装配体,除非该零件或装配体已在当前的 Solidworks 会话期间使用过。
Option Base 1
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim filepath As String
Dim partnum(8) As String
Dim posx As Integer
Dim posy As Integer
Dim posz As Integer
Dim x As Integer
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
posx = 0
posy = 0
posz = 0
partnum(1) = "07010304"
partnum(2) = "07010318"
partnum(3) = "07010321"
partnum(4) = "07010331"
For x = 1 To 8
filepath = "C:\Documents and Settings\user\My Documents\Solid Works Testing\Parts\"+ partnum(x) + ".SLDPRT"
Part.AddComponent filepath, posx, posy, posz
filepath = "C:\Documents and Settings\user\My Documents\Solid Works Testing\Assemblies\" + partnum(x) + ".SLDASM"
Part.AddComponent filepath, posx, posy, posz
posx = posx + 1.5
Next
End Sub
这个宏抓取三个部件 07010304.SLDPRT、07010318.SLDPRT 等一个组件(由这些部件组成)并将它们插入到活动组件中,并在这样做时将它们隔开。
- 如果我打开程序集并运行宏,则不会发生任何事情。
- 如果我打开一个程序集,插入多维数据集,删除它,然后运行宏,它会插入多维数据集。
- 如果我打开一个装配体,插入所有零件,删除它们,然后运行宏,它会插入所有零件(但不是由其中两个组成的装配体)。
- 如果我打开一个程序集,插入立方体球体程序集,删除它,然后运行宏,它将插入立方体、球体和立方体球体程序集,但不会插入圆柱体。
- 如果零件已在一个装配中使用,并且另一个已打开或激活,则宏在新窗口中可以正常工作。
所以总而言之,我该如何解决这个问题?是否有另一个命令可以插入不依赖于似乎正在发生的“加载到 SW 内存”的事情?还是执行此操作并将零件加载到软件内存中的命令?