Ich versuche ein Makro, aber es funktioniert nicht
Sub-Interferenz()
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssembly als SldWorks.AssemblyDoc
Dim swModelExt As SldWorks.ModelDocExtension
Dimmen swComp als SldWorks.Component2
Dim swComp1 als SldWorks.Component2
Dim swBody As SldWorks.Body2
Dim swModeler als SldWorks.Modeler
Sun swSelMgr As SldWorks.SelectionMgr
Dim CompArray() als SldWorks.Component2
Dim swSelData als SldWorks.SelectData
Deklaration von Variablen
Dim OutputPath als Zeichenfolge
Dim OutputFN als String
Komponente als Variante dimmen
Komponenten1 als Variante dimmen
Komponenten als Variante dimmen
Komponenten1 als Variante dimmen
Abwahl als boolescher Wert dimmen
Deauswahl dimmen1 Ace Boolean
Dim arrBody als Variante
Dim arrFace als Variante
Dim arrBody1 als Variante
Dimmen arrFace1 als Variante
Dim a As Boolean
Dim i als Integer
Dim i1 als Ganzzahl
Sonne j So lang
Dim k Als Ganzzahl
Dim k1 als Ganzzahl
Schwache Interferenz als boolescher Wert
Dim bRet als boolescher Wert
Zelle1 = 1
Legen Sie swApp = Application.SldWorks fest
Set swModeler = swApp.GetModeler
"Verwenden Sie das aktive Dokument
Festlegen von swModel = swApp.ActiveDoc
Legen Sie swAssembly = swModel fest
Legen Sie swModelExt = swModel.Extension fest
Legen Sie swSelMgr = swModel.SelectionManager fest
Set swSelData = swSelMgr.CreateSelectData
Komponenten = swAssembly.GetComponents(Falsch)
Komponenten1 = swAssembly.GetComponents(Falsch)
' für jede Komponente (Teil) in der Teilesammlung (Baugruppe)
Für jede Komponente in Komponenten
Festlegen von swComp = Komponente
Wenn swComp.GetSuppression <> 0 ist, dann
arrBody = swComp.GetBodies2(0)
Ende, wenn
Für i = 0 Bis UBound(arrBody)
Setze swBody = arrBody(i)
arrFace = swBody.GetFaces
Für k = 0 TB UBound(arrFace)
Set swFace = arrFace(k)
Set swEnt = swFace
a = swEnt.Select4(Wahr, swSelData)
Für jede Komponente1 In Komponenten1
Legen Sie swComp1 = Komponente1 fest
Wenn swComp1.GetSuppression <> 0 ist, dann
arrBody1 = swComp1.GetBodies2(0)
Ende, wenn
Für i1 = 0 Bis UBound(arrBody1)
Legen Sie swBody1 = arrBody1(i) fest.
arrFace1 = swBody1.Gesichter abrufen
Für k1 = 0 TB UBound(arrFace1)
Festlegen von swFace1 = arrFace1(k1)
Legen Sie swEnt1 = swFace1 fest
a1 = swEnt1.Select4(Wahr, swSelData)
Interferenz = swModeler.ICheckInterference3(swFace, swFace1, Nichts)
Debug.Print "Interferenz"; Interferenz
Wenn swModel.GetEntityName(swFace) <> swModel.GetEntityName(swFace1) dann
DeselectionFace = swEnt1.DeSelect()
Ende, wenn
Weiter k1
Nächster i1
Nächste Komponente1
DeselectionFace1 = swEnt.DeSelect()
Weiter k
Weiter i
Nächste Komponente
Ende Sub