Autor
|
Thema: Aktuelle Sheet einer Drawing ermitteln (2760 mal gelesen)
|
sa2728 Mitglied
Beiträge: 79 Registriert: 06.06.2003
|
erstellt am: 20. Mai. 2009 15:12 <-- editieren / zitieren --> Unities abgeben:
Hallo. mit den Zeilen: Dim AktuelleDrawing 'As DrawingDocument Set AktuelleDrawing = CATIA.ActiveDocument MsgBox (AktuelleDrawing.Sheets.count) erhalte ich die Anzahl der Blätter der geöffneten Drawing. Wie kriege ich jetzt raus, welche Nummer das gerade aktive Blatt hat? Ich dachte es müsste so gehen, aber es funktioniert nicht: Set AktivesBlatt = As DrawingSheet Set AktivesBlatt = AktuelleDrawing.ActiveSheet MsgBox (AktuelleDrawing.Sheets.AktivesBlatt) Kann mir da jemand weiterhelfen? Danke. Gruss Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 20. Mai. 2009 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
Hallo Andreas, du hast eine Collection übersprungen. Dir fehlt die Sheets-Collection in der sich die Methode ActiveSheet befindet. So funktioniert es: Code:
Dim oDoc as DrawingDocument Dim oSheets as DrawingSheets Dim oSheet as DrawingSheetSet oDoc = CATIA.ActiveDocument Set oSheets = oDoc.Sheets Set oSheet = oSheets.ActiveSheet MsgBox(oSheet)
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sa2728 Mitglied
Beiträge: 79 Registriert: 06.06.2003
|
erstellt am: 25. Mai. 2009 15:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, jetzt wirds immer verrückter: Das Script: ----------------------------------------- Language="VBSCRIPT" Sub CATMain() Dim AktuelleDrawing 'As DrawingDocument Set AktuelleDrawing = CATIA.ActiveDocument MsgBox (AktuelleDrawing.Sheets.count) end sub --------------------------------------------- funktioniert, aber nur wenn ich das Kommentarzeichen in der DIM Zeile habe, sonst kommt eine Fehlermeldung "Anweisungsende in Spalte 20 erwartet", also genau nach dem Dim AktuelleDrawing Genau das gleiche mit Daniels Scriptauszug ----------------------------------------- Language="VBSCRIPT" Sub CATMain() Dim oDoc As DrawingDocument Dim oSheets As DrawingSheets Dim oSheet As DrawingSheet Set oDoc = CATIA.ActiveDocument Set oSheets = oDoc.Sheets Set oSheet = oSheets.ActiveSheet MsgBox(oSheet) end sub ---------------------------------------------- Da bringt es aber nichts wenn ich vor dem as ... auskommentiere. Kann mir jemand sagen wo da mein Denkfehler liegt? Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 25. Mai. 2009 20:30 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Mai. 2009 06:14 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
Zitat: Original erstellt von CEROG: Du schreibst deinen Code in VBA und läßt ihn als CATVBS laufen...
...und VBS deklariert sich die Variabkentypen selber. Man brauchst deshalb keine DIM Anweisungen. Mit diesem Code sollte deine CATVbs auch laufen: Code:
Language="VBSCRIPT"Sub CATMain() ' Dim oDoc As DrawingDocument (KOMPLETTE Zeile auskommentieren oder löschen!) ' Dim oSheets As DrawingSheets (KOMPLETTE Zeile auskommentieren oder löschen!) ' Dim oSheet As DrawingSheet (KOMPLETTE Zeile auskommentieren oder löschen!) Set oDoc = CATIA.ActiveDocument Set oSheets = oDoc.Sheets Set oSheet = oSheets.ActiveSheet MsgBox(oSheet) end sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sa2728 Mitglied
Beiträge: 79 Registriert: 06.06.2003
|
erstellt am: 26. Mai. 2009 08:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, mit den DIMs hatte ich gestern auch schon probiert sie wegzulassen. Wenn ich das mache, kommt eine Fehlermeldung das die Eigenschaft/Methode nicht unterstützt wird und zwar in der Zeile "MsgBox(oSheet)" Gruss Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Mai. 2009 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
Zitat: Original erstellt von sa2728: Hallo Daniel,mit den DIMs hatte ich gestern auch schon probiert sie wegzulassen. Wenn ich das mache, kommt eine Fehlermeldung das die Eigenschaft/Methode nicht unterstützt wird und zwar in der Zeile "MsgBox(oSheet)" Gruss Andreas
Hallo Andreas, das ganze ist ja auch nur ein Beispiel. oSheet ist in diesem Beispiel eine Variable die als DrawingSheet deklariert ist. Eine MessageBox ewartet einen String-Typ (bzw. einen Variablentyp der in ein String umgewandelt werden aknn z.B. Integer) und keinen DrawingSheet Typ. Ich habe gerade weder CATIA noch VB am laufen aber ich versuch dir mal dein Makro hinzubasteln. Hier der Code (natürlich nicht getestet): Code:
Language="VBSCRIPT" Sub CATMain() ' Dim oDoc As DrawingDocument (KOMPLETTE Zeile auskommentieren oder löschen!) ' Dim oSheets As DrawingSheets (KOMPLETTE Zeile auskommentieren oder löschen!) ' Dim oSheet As DrawingSheet (KOMPLETTE Zeile auskommentieren oder löschen!) Set oDoc = CATIA.ActiveDocument Set oSheets = oDoc.Sheets Set oSheet = oSheets.ActiveSheet Set mySheetName = oSheet.Name For i = 1 to oSheets.Count Set myCheckSheet = oSheets.Item(i) If myCheckSheet.Name = mySheetName then BoxValue = i Exit For End If Next Box = MsgBox("Das aktuelle Blatt ist an Position " & BoxValue,vbInformation,"Hinweis") End sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MICHLICK Mitglied CAD Methodik Entwickler (CATIA; NX)
Beiträge: 454 Registriert: 20.06.2001 Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.
|
erstellt am: 28. Mai. 2009 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
|
sa2728 Mitglied
Beiträge: 79 Registriert: 06.06.2003
|
erstellt am: 28. Mai. 2009 14:37 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 29. Mai. 2009 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für sa2728
|