Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - unterschiedliche Rückgabewerte mit swSheet.GetViews

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Dokumentenmanagement leicht gemacht mit 3DEXPERIENCE SOLIDWORKS
Autor Thema:  API - unterschiedliche Rückgabewerte mit swSheet.GetViews (1611 mal gelesen)
Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 24. Mai. 2018 14:49    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


AnsichtenaufZeichenblatt.JPG

 
Hallo,
ausgehend von einer Zeichnung, gehe ich mit einer Schleife durch alle Blätter.
In einer Unterroutine frage ich die jeweiligen Ansichten darauf ab.

Der Code der Routine ist dieser:

Code:

Function GetPropertiesView(swSheet As SldWorks.Sheet) As SldWorks.View
   
    Dim vViews  As Variant
    Dim swView  As SldWorks.View
    Dim i      As Integer
   
    vViews = swSheet.GetViews()
   
    If Not IsEmpty(vViews) Then
       
        For i = 0 To UBound(vViews)
           
            Set swView = vViews(i)
           
            If UCase(swView.Name) = UCase(swSheet.CustomPropertyView) Then
                Set GetPropertiesView = swView
                Exit Function
            End If
           
        Next i
       
        Set GetPropertiesView = vViews(0)      'ansonsten ist es die erste Ansicht
    End If
   
End Function


Die Schleife For i = 0 To UBound(vViews) liefert mir allerdings unterschiedliche Ergebnisse, je nachdem, ob das jeweilige Blatt das aktive ist, oder eben nicht.
Ist es nicht das aktive Blatt, liefert sie alle Ansichten, welche auf dem Blatt vorhanden sind.
Ist es das aktive Blatt, liefert sie auch diejenigen Ansichten, welche im angehängten Bild zu sehen sind, obwohl die nicht auf dem Blatt sind.
Also Ansichten mit dem Namen "Vorderseite" etc.
Das fatale dabei ist, befindet sich gar keine Ansicht auf dem Blatt, sollte auch keine gemeldet werden, es kommen aber diese Pseudoansichten.

Weiß jemand, wie ich diese Pseudoansichten ignorieren kann, bzw. wie lautet die Abfrage nur der tatsächlichen Ansichten auf dem Blatt?

Ich habe schon rumgebastelt mit diesem Code:

Code:

        Set swView = swDraw.GetFirstView
        Set swView = swView.GetNextView
        Set GetPropertiesView = swView



Aber damit kann ich immer nur das aktive Blatt abfragen.
Weiß jemand, wie man hier jedes beliebige Blatt ansprechen kann?

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3682
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 24. Mai. 2018 16:44    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 24. Mai. 2018 18:19    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 Torsten, 
danke für deine Rückmeldung.

Also, diese Variante kannte ich noch nicht.
Sie gibt jedenfalls keine Pseudoansichten wieder.
Egal welches Blatt aktiv ist.
Als Ergebnis bekomme ich z.B. dieses hier.

    Blatt1
    Zeichenansicht1
    Blatt2

Auf Blatt2 ist keine Ansicht platziert.

Allerdings bin ich mir noch nicht so sicher, ob mir das hier weiterhilft.
Da muss ich mal drüber Nachdenken.
In diesem Fall müsste ich die jeweiligen echten Ansichten von den jeweiligen Blättern rausfiltern.
Die undefinierte Reihenfolge der Blätter in diesem Array ist da sicherlich nicht hilfreich.

Wie ich oben schon schrieb, gehe ich Blatt für Blatt durch und schaue nach evtl. enthaltenen Ansichten.
Diese verwende ich zur Aktualisierung von evtl. vorhandenen Stücklisten.
Nun muss ich alle möglichen Varianten berücksichtigen.
Jedes Blatt kann Ansichten und / oder Stücklisten haben oder auch nicht.
Und ich frage auch noch folgende Einstellung in den Optionen der Blätter ab.
"Verwende benutzerdefinierte Eigenschaftswerte von Modell in:"

Alles sehr komplex, aber nochmal Danke für diese Anregung.
Evtl. fällt ja noch jemand was anderes ein.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1358
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 24. Mai. 2018 21:14    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hi Andi,

Du bekommst doch aus dem Beispiel von Thorsten 2 Arrays wieder zurück:
ss enthält die Blätter und darunter sind die Views aufgelistet.
vv enthält die Views für das jeweilige Blatt.

Schau dir das mal im Debugger an, da kann man das gut sehen.

Gruß, Carsten

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 24. Mai. 2018 22:23    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

Zitat:
Original erstellt von Carsten1210:

vv enthält die Views für das jeweilige Blatt.

Hallo Carsten,
schon klar, habe ich mir genau angeschaut im Debugger.
Aber die erste View von vv ist immer der Blattname und erst ab der 2ten View werden tatsächliche Ansichten aufgezählt.
Das Verhalten ist hier ähnlich wie bei der Abfrage mit GetFirstView und GetNextView.
Und da die Reihenfolge der Blätter unbestimmt sind, muss ich die erst noch Identifizieren.
Das meinte ich auch mit rausfiltern.

Wahrscheinlich ist das wirklich nicht so schwierig, ich muss halt einiges Umbauen.

Grüße und Danke für deine Bemerkungen, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1358
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 25. Mai. 2018 06:17    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hi Andi,

Was meinst du mit der unbestimmten Reihenfolge?!
In dem Array werden die doch in der Reihenfolge aufgelistet wie diese in der Zeichnung sind, oder nicht?!
Oder meinst du das deine eigene Reihenfolge abweichend dazu ist?!

Gruß, Carsten

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 25. Mai. 2018 07:12    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hallo Jörg Andi,

könntest du in der Weiterverarbeitung mit dem View Arry über die View Eigenschaft Type nicht rausfiltern bei welchen es sich um die Blätter handelt? Evtl. kannst du das Arry auch in ein neues Arry überführen ohne eben die Blätter.


Gruß
Bernd


------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 25. Mai. 2018 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 25. Mai. 2018 07:16    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

Zitat:
Original erstellt von Carsten1210:

Was meinst du mit der unbestimmten Reihenfolge?!

Hallo Carsten,
in der Beschreibung in der API Hilfe steht folgender Satz.

Zitat:
"If there are multiple sheets in the drawing document, then the order in which the sheets are returned is undetermined. So, the active sheet and its views might not be returned in the first array."

Googleübersetzung:

Zitat:
"Wenn sich im Zeichnungsdokument mehrere Blätter befinden, ist die Reihenfolge, in der die Blätter zurückgegeben werden, unbestimmt. Daher werden das aktive Blatt und seine Ansichten möglicherweise nicht im ersten Array zurückgegeben."

Das ist es, was ich gemeint habe.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3682
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 25. Mai. 2018 07:23    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bk.sc:
Hallo Jörg, ...

Welcher Jörg? 

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1358
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 25. Mai. 2018 08:50    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hi Andi,

OK, das hatte ich nicht gesehen und in meinem Test war alles in der korrekten Reihenfolge...

Gruß, Carsten

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 25. Mai. 2018 09:49    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Zitat:
Welcher Jörg?

ohh da war mein Kopf wohl noch in einem anderen Thread

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 29. Mai. 2018 03:49    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

Zitat:
Original erstellt von Andi Beck:

Wahrscheinlich ist das wirklich nicht so schwierig, ich muss halt einiges Umbauen.

Hallo,
wollte noch ne Rückmeldung geben, mit dem, was ich gemacht habe.
Ich habe jetzt einen verschachtelten Code hinbekommen, der funktioniert, sieht gut aus.

Die Routine, welche ich als Basis meines Makros von hier verwendet habe, ist also Fehleranfällig.
https://www.codestack.net/solidworks-api/document/drawing/bom-tables-update-referenced-configuration/

Hier der Code, falls sich jemand dafür Interessiert:

Code:

Dim swApp          As SldWorks.SldWorks
Dim swDraw          As SldWorks.DrawingDoc

Sub main()
   
    Dim swModel        As SldWorks.ModelDoc2
    Dim vSheetNames    As Variant
    Dim swSheet        As SldWorks.Sheet
    Dim swView          As SldWorks.View
    Dim i              As Integer
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
   
    'dann war gar kein Dokument geöffnet, wie soll da was funktionieren
    If swModel Is Nothing Then
        Call MsgBox("Kein Dokument geöffnet!", vbSystemModal, "Information")
        End
    End If
   
    'nur wenn eine Zeichnung aktiv ist, geht es weiter
    If (swModel.GetType <> swDocDRAWING) Then
        Call MsgBox("Nur für Zeichnungen geeignet!", vbSystemModal, "Information")
        End
    End If
   
    Set swDraw = swApp.ActiveDoc
   
    vSheetNames = swDraw.GetSheetNames              'Namen aller Zeichenblätter
   
    For i = 0 To UBound(vSheetNames)                'alle Zeichenblätter durchgehen
       
        Set swSheet = swDraw.Sheet(vSheetNames(i))  'der Name des entsprechenden Zeichenblattes
       
        Set swView = GetPropertiesView(swSheet)    'gehe zur Function "GetPropertiesView", welche Ansicht verwendet werden soll
       
        If Not swView Is Nothing And Not swView.Type = 1 Then  'wenn eine Ansicht vorhanden ist, dann, ansonsten
            'Call MsgBox("Auf dem Blatt -" & swSheet.GetName & "- gilt die " & swView.Name & vbCrLf & "mit der Konfiguration " & swView.ReferencedConfiguration, vbSystemModal, "Information")
        Else
            Call MsgBox("keine Ansicht auf dem Blatt -" & swSheet.GetName & "- vorhanden", vbSystemModal, "Information")
        End If
               
    Next i
   

   
End Sub

Function GetPropertiesView(swSheet As SldWorks.Sheet) As SldWorks.View  'welche Ansicht auf diesem Blatt verwendet werden soll
   
    Dim sheetCount      As Long
    Dim sheetCount2    As Long
    Dim viewCount      As Long
    Dim viewCount2      As Long
    Dim ss              As Variant
    Dim vv              As Variant
   
    ss = swDraw.GetViews                        'alle Blätter und Ansichten der Zeichnung in ein Doppel-Array übergeben
       
'erster Schritt: wenn auf diesem Blatt eine spezielle Ansicht ausgewählt ist, dann diese verwenden
    If Not swSheet.CustomPropertyView = "Standard" Then    'wenn bei "Verwende benutzerdefinierte Eigenschaftswerte von Modell in:" etwas individuelles eingestellt ist, dann
        For sheetCount = LBound(ss) To UBound(ss)          'durch alle Blätter gehen
            vv = ss(sheetCount)
            For viewCount = LBound(vv) To UBound(vv)        'durch alle Ansichten gehen (Blätter sind auch Ansichten)
       
                If UCase(vv(viewCount).GetName2()) = UCase(swSheet.CustomPropertyView) Then 'Vergleich mit der Einstellung "Verwende benutzerdefinierte Eigenschaftswerte von Modell in:"
                    Set GetPropertiesView = vv(viewCount)  'die benutzerdefinierte Ansicht wird gesetzt
                    Exit Function
                End If
       
            Next viewCount
        Next sheetCount
    End If
           
'zweiter Schritt: ansonsten die erste Ansicht auf diesem Blatt verwenden
    For sheetCount = LBound(ss) To UBound(ss)              'durch alle Blätter gehen
        vv = ss(sheetCount)
        For viewCount = LBound(vv) To UBound(vv)            'durch alle Ansichten gehen (Blätter sind auch Ansichten)
   
            If vv(viewCount).GetName2() = swSheet.GetName Then 'Vergleich mit dem Blattnamen
                On Error Resume Next                        'bei einem Überlauf des Arrays, Fehler abfangen >> "vv(viewCount + 1)", = keine Ansicht auf dem Blatt vorhanden
                Set GetPropertiesView = vv(viewCount + 1)  'die Ansicht wird gesetzt
                         
'dritter Schritt: ansonsten die erste Ansicht in dieser Zeichnung verwenden (von allen Blättern)
                If Err <> 0 Then                                    'wenn ein Überlauf stattgefunden hat, Meldung machen
                    'Call MsgBox("Auf dem Blatt -" & swSheet.GetName & "- befindet sich keine Ansicht", vbSystemModal, "Information")
                   
                    For sheetCount2 = LBound(ss) To UBound(ss)      'durch alle Blätter gehen
                        vv = ss(sheetCount2)
                        For viewCount2 = LBound(vv) To UBound(vv)  'durch alle Ansichten gehen (Blätter sind auch Ansichten)
                   
                            Set GetPropertiesView = vv(viewCount2)  'die Ansicht wird gesetzt
                            If GetPropertiesView.Type = 4 Or GetPropertiesView.Type = 7 Then      'wenn es eine normale Ansicht ist, dann Routine verlassen
                                Exit Function
                            End If
                           
                        Next viewCount2
                    Next sheetCount2
                End If

                Exit Function
            End If
   
        Next viewCount
    Next sheetCount
   
End Function


Die Problembeschreibung aus meinem Anfangspost ist allerdings nicht geklärt. In meinen Augen scheint das ein Bug in der API zu sein.

Danke nochmals an alle, für die Anregungen.

Grüße, bis demnächst, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 30. Mai. 2018 08:32    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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi,

ich mach das bei mir so, dass ich die Blätter durchlaufe (aktiviere)
und dann mit getfirstview und getnextview die Ansichten durchlaufe

Du solltest halt vorher das aktive Blatt speichern,
damit Du nach den Schleifen, dieses Blatt wieder aktivieren kannst

------------------
Grüße
Heinz

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 30. Mai. 2018 18:46    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 Heinz,
danke für deine Antwort.
Ja, das ist mir schon klar, aber genau das wollte ich nicht, um einen unnötigen Aufbau der einzelnen Seiten zu vermeiden.
Je nach Größe der Ansichten kann das ganz schön dauern.
Ich brauche ja nur die Namen der Ansichten und ihre Referenzen um Stücklisten zu aktualisieren (nach Konfigwechsel z.B.).

Mein gewählter Weg bekommt das auch ohne Blattwechsel hin.

Grüße und schönes WE noch, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 30. Mai. 2018 18:46    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

2x die gleiche Antwort.

Grüße und schönes WE noch, Andi  

[Diese Nachricht wurde von Andi Beck am 30. Mai. 2018 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)2024 CAD.de | Impressum | Datenschutz