Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA | Komponenten in der Baugruppe ermitteln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   VBA | Komponenten in der Baugruppe ermitteln (328 mal gelesen)
fabian1243
Mitglied
Maschinen-Konstrukteur


Sehen Sie sich das Profil von fabian1243 an!   Senden Sie eine Private Message an fabian1243  Schreiben Sie einen Gästebucheintrag für fabian1243

Beiträge: 32
Registriert: 28.06.2018

SW 2019
Win 10 Pro v1909

erstellt am: 13. Mrz. 2020 21:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

Die nachfolgende Funktion ermittelt ob eine Datei in einer Baugruppe vorhanden ist oder nicht.

Code:

Option Explicit

Public swApp As Object
Public swModel As SldWorks.ModelDoc2
Public swAssembly As SldWorks.AssemblyDoc
Public swComponent As SldWorks.Component2
Public vComponents As Variant
Public lCompCount As Long

Sub Test()

    If InBaugruppe("C:\Baugruppe1.SLDASM", "C:\Teil1.SLDPRT") Then
        MsgBox "Die Datei ist in der Baugruppe verbaut"
    Else
        MsgBox "Die Datei wird in der Baugruppe nicht verwendet"
    End If
  
End Sub

Public Function InBaugruppe(PfadBaugruppe As String, PfadDatei As String) As Boolean
    Dim i As Integer
    Dim Zwischenspeicher As String
    Dim Errors As Long
   
    Set swApp = Application.SldWorks
    swApp.DocumentVisible False, swDocASSEMBLY
    Set swModel = swApp.OpenDoc3(PfadBaugruppe, swDocASSEMBLY, True, True, True, True, Errors)
    Set swAssembly = swModel
   
    InBaugruppe = False
    lCompCount = swAssembly.GetComponentCount(True)
    vComponents = swAssembly.GetComponents(True)
   
    For i = 0 To lCompCount - 1
        Set swComponent = vComponents(i)
        Zwischenspeicher = swComponent.GetPathName
        If Zwischenspeicher = PfadDatei Then
            InBaugruppe = True
            Exit For
        End If
    Next i
   
    swApp.DocumentVisible True, swDocASSEMBLY
    swApp.QuitDoc swModel.GetTitle
    Set swModel = swApp.ActiveDoc
   
End Function


[Diese Nachricht wurde von fabian1243 am 14. Mrz. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fabian1243
Mitglied
Maschinen-Konstrukteur


Sehen Sie sich das Profil von fabian1243 an!   Senden Sie eine Private Message an fabian1243  Schreiben Sie einen Gästebucheintrag für fabian1243

Beiträge: 32
Registriert: 28.06.2018

SW 2019
Win 10 Pro v1909

erstellt am: 14. Mrz. 2020 15:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So habe das Problem selber gelöst, der obige Code ist berichtigt und funktioniert!

[Diese Nachricht wurde von fabian1243 am 14. Mrz. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz