Hoe interferentie tussen twee gezichten API Solidworks te controleren

Hallo

Ik werk aan een 3D-model in Solidworks. Ik zou graag willen weten welke functie ik moet gebruiken om met name interferentie tussen twee vlakken (van verschillende componenten) te controleren? Als iemand een macro heeft, ben ik echt geïnteresseerd.

Bedankt voor je antwoorden :)

Hallo

SolidWorks heeft een functie voor het controleren van interferenties in de montage: http://help.solidworks.com/2015/english/solidworks/sldworks/hidd_dve_interference.htm

Ken je deze functie ?

Hallo

Dank u voor uw antwoord. Ja, ik ken deze functie, maar ik wil graag Interferentie automatisch controleren met een macro op Visual Basic For Application.

In dit geval kunt u dit voorbeeld lezen: http://help.solidworks.com/2015/english/api/sldworksapi/run_interference_detection_example_vb.htm

En ook resultaten voor de zoekopdracht in SolidWorks APi Web Help : http://help.solidworks.com/SearchEx.aspx?query=Interference&version=2015&lang=english&prod=api

Bedankt Remrem voor de links. Ik had de links al gezien. De eerste toont de inmenging in de wereldwijde vergadering. Wat ik wil is dat de interferentie tussen twee gezichten van verschillende delen, zoals Face1 of Body1 interfereert met Face1 of Body2 bijvoorbeeld. Ik heb op internet gezocht, ik weet niet zeker of het mogelijk is voor gezicht.

Ik probeer een macro, maar het werkt niet

Sub-interferentie ()


Dim swApp als SldWorks.SldWorks
Dim swModel als SldWorks.ModelDoc2
Dim swAssembly als SldWorks.AssemblyDoc
Dim swModelExt als SldWorks.ModelDocExtension
Dim swComp als SldWorks.Component2
Dim swComp1 als SldWorks.Component2
Dim swBody As SldWorks.Body2
Dim swModeler als SldWorks.Modeler
Zon swSelMgr As SldWorks.SelectionMgr
Dim CompArray() als SldWorks.Component2
Dim swSelData As SldWorks.SelectData

Verklaring van variabelen

Dim OutputPath als tekenreeks
Dim OutputFN als snaar
Dim Component Als Variant
Dim Component1 als variant
Dim componenten als variant
Dim Components1 als variant
Dim Deselectie Als Booleaanse
Dim Deselectie1 Aas Booleaans
Dim arrBody als variant
Dim arrFace als variant
Dim arrBody1 als variant
Dim arrFace1 als variant
Dim A als Booleaanse
Dim i                           als geheel getal
Dim i1                          als geheel getal
Zon j                           Zo lang
Dim k                           als geheel getal
Dim k1                          als geheel getal
Dim interferentie                   als Booleaanse
Dim bRet                        als Booleaanse

Cel1 = 1
Stel swApp = Toepassing.SldWorks in

Stel swModeler in = swApp.GetModeler


'Gebruik het actieve document
Stel swModel = swApp.ActiveDoc in

Stel swAssembly in = swModel

Stel swModelExt = swModel.Extension in

 Stel swSelMgr = swModel.SelectionManager in

Set swSelData = swSelMgr.CreateSelectData


 
Componenten = swAssembly.GetComponents(Onwaar)
Componenten1 = swAssembly.GetComponents(Onwaar)
 
" voor elk onderdeel (onderdeel) in de onderdelenverzameling (assemblage)
Voor elk onderdeel in componenten
        Set swComp = Onderdeel
        Als swComp.GetSuppression <> 0 Dan
        arrBody = swComp.GetBodies2(0)
        Einde als

   Voor i = 0 Naar UBound(arrBody)
   Stel swBody in = arrBody(i)
   arrFace = swBody.GetFaces

        Voor k = 0 TB UBound(arrFace)
        Stel swFace in = arrFace(k)
      Stel swEnt = swFace in
      a = swEnt.Select4(True, swSelData)
    
   
  Voor elk onderdeel1 In componenten1
    Stel swComp1 = Component1 in
    Als swComp1.GetSuppression <> 0 Dan
    arrBody1 = swComp1.GetBodies2(0)
    Einde als
   
   
   Voor i1 = 0 Naar UBound(arrBody1)
   Stel swBody1 in = arrBody1(i)
   arrFace1 = swBody1.GetFaces

        Voor k1 = 0 TB UBound(arrFace1)
        Stel swFace1 in = arrFace1(k1)
      Stel swEnt1 in = swFace1
      a1 = swEnt1.Select4(True, swSelData)
     

    Interferentie = swModeler.ICheckInterference3(swFace, swFace1, Niets)
    Debug.Print "Interferentie"; Storing
    Als swModel.GetEntityName(swFace) <> swModel.GetEntityName(swFace1) Dan
    DeselectieGezicht = swEnt1.DeSelect()
    Einde als
   
    Volgende k1
    Volgende i1

    Volgende component1

DeselectionFace1 = swEnt.DeSelect()

Volgende k
volgende i
Volgende component
  
   
Einde Sub