Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Zeichenansichten

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
  
SOLIDWORKS Visualize Standard - Online-Live, ein Seminar am 27.07.2026
Autor Thema:  API: Zeichenansichten (1502 mal gelesen)
gismo
Mitglied
DriveWorks Support


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

Beiträge: 1047
Registriert: 05.03.2001

erstellt am: 09. Jul. 2001 10:24    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

Guten Morgen Zusammen,
Ich hab eine Frage zu meinem ersten "richtigen" API Programm
Wie kann ich per API in einer Drawing die Anzahl der Ansichten feststellen, und dann auch noch eine bestimmte auswählen? Also es sind z.B 5 Ansichten auf einem Blatt und will die 3. auswählen!
Über einen Hinweis oder ein paar Zeilen Code würde ich mich freuen, da ich im Moment ziemlich auf dem Schlauch sitze!

Vielen Dank im Voraus

Gruß
gismo

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 09. Jul. 2001 12:11    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 gismo 10 Unities + Antwort hilfreich

Hi gismo,

um die Anzahl rauszukriegen mußt du einen Loop über alle Views machen. Dabei mußt du bedenken, dass das Blatt selbst immer (?) der erste View ist. um später eine bestimmte Ansicht zu aktivieren läufst du dann wieder die Schleife ab, bist du den View mnit dem passenden Namen hast.

Als Basis kannst du eine einfache Schleife nehmen:

Code:

Dim swApp As Object
Dim DrawingDoc as Object
Dim View as Object
Dim ViewName as String
Dim ViewCount as Long
Dim meldung as String

Sub main()
' erstmal SolidWorks ansprechen
Set swApp = CreateObject ("SldWorks.Application")

' an aktives Dokument anklinken, ggf. prüfen ob es auch eine
' Zeichnung ist, sonst abbrechen
Set DrawingDoc = swApp.ActiveDoc

' der erste View ist immer das Blatt selbst
Set View = DrawingDoc.GetFirstView

' zum durchblättern den Namen des Views mit dem gemerkten
' vom letzten View vergleichen, ansonsten den nächsten aufrufen

While View Is Not Nothing
' Namen des aktuellen Views merken
ViewName = View.Name
meldung = meldung & chr$(13) & chr$(10) & ViewName
ViewCount = ViewCount + 1
' nächster View aufrufen
Set View = View.GetNextView
Wend
Call Msgbox(meldung & chr$(13) & chr$(10) & "Anzahl: " & ViewCount)
End Sub


Ich hoffe du kommst damit einen Schritt weiter, ciao

Stefan

------------------
--
Inoffizielle Solidworks Hilfeseite
http://solidworks.cad.de
EMail: Stefan.Berlitz@solidworks.cad.de

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

gismo
Mitglied
DriveWorks Support


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

Beiträge: 1047
Registriert: 05.03.2001

erstellt am: 09. Jul. 2001 12:56    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

Danke Stefan,
es ist schon klasse, wie Du sowas aus dem Ärmel schüttelst.
Ich hab mir den ganzen Vormittag den Kopf zerbrochen, dabei ist das doch so einfach !!

Grüsse aus dem sonnigen Schwarzwald und
tschüss bis zum nächsten Problem

gismo

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

gismo
Mitglied
DriveWorks Support


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

Beiträge: 1047
Registriert: 05.03.2001

HP Z Book17 G5;
32GB Ram;
Quadro P4200
WIN10 Pro;
Alle SWX ;)

erstellt am: 09. Jul. 2001 17:59    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,
ich bins nochmal. Stefan, Dein Beispiel funktioniert tadellos. Allerdings nur in einem Makro. Ich hab den Code in in ein VB6 Projekt eingefügt... und es tut sich nichts. Das Programm findet keine Ansichten
Vielleicht hab ich auch nur einen Fehler in meinem Code:


Dim ViewName As String
Dim View As Object
Dim ViewCount As Long
Dim Meldung As String
Dim SwApp As Object
Dim ModelDoc As Object
Dim DrawingDoc As Object


'Deklarationen aus der swconst.bas
Public Enum swDocumentTypes_e
swdocPart = 1
swDocASSEMBLY = 2
swdocDrawing = 3
End Enum

Private Sub Command1_Click()

'An das aktive Solidworks-Modell anklinken. Wenn noch kein SWXSolidWorks
'lief, wird eins geladen

Set SwApp = CreateObject("SldWorks.Application")

'Session sicherheitshaber sichtbar machen

SwApp.Visible = True
Set DrawingDoc = SwApp.activedoc

'wenn nichts geladen ist direkt wieder raus

If DrawingDoc Is Nothing Then
Call MsgBox("Keine Datei geöffnet!", vbOKOnly)
Exit Sub
End If

'jetzt überprüfen, ob das aktive Dokument eine Drawing ist

If DrawingDoc.gettype() <> swdocDrawing Then

'Keine Drawing, keine Arbeit

Call MsgBox("Aktives Dokument ist keine Drawing", vbOKOnly)
Exit Sub
End If

'der erste View ist das Blatt selbst

Set View = DrawingDoc.GetFirstView

'jetzt Ansichten zählen

While View Is Nothing
'Namen des aktuellen views merken
ViewName = View.Name
Meldung = Meldung & Chr$(13) & Chr$(10) & ViewName
ViewCount = ViewCount + 1
'nächsten view aufrufen
Set View = View.GetNextView
Wend
Call MsgBox(Meldung & Chr$(13) & Chr$(10) & "Anzahl: " & ViewCount)
End Sub


Danke fürs Reinschauen

Gruß
gismo

[Diese Nachricht wurde von gismo am 09. Juli 2001 editiert.]

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 09. Jul. 2001 20: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 Nur für gismo 10 Unities + Antwort hilfreich

Hi gismo,

du hast beim Loop das Not vergessen:

Code:

...
While Not View Is Nothing
...

Frag mich nicht, warum in VB das Not vorne sein muss und im Makro hinten sein darf ...

Ciao,
Stefan

------------------
--
Inoffizielle Solidworks Hilfeseite
http://solidworks.cad.de
EMail: Stefan.Berlitz@solidworks.cad.de

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

gismo
Mitglied
DriveWorks Support


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

Beiträge: 1047
Registriert: 05.03.2001

erstellt am: 09. Jul. 2001 21:13    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

Danke Stefan,
Du bist einfach der beste
Tschüssle
gismo

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

Armin B
Mitglied
Software Engineer ERP/PLM/CAD


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

Beiträge: 209
Registriert: 04.09.2000

Sw 2015 SP3

erstellt am: 10. Jul. 2001 08:40    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 gismo 10 Unities + Antwort hilfreich

Ist schon erstaunlich, was hier mittlerweile abgeht.
Das nenne ich Support und Schulung gleichzeitig, und dann auch noch kostenlos. Wo kriegt man das heute noch....

Armin

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