Autor
|
Thema: SetViewName funktioniert nicht (1339 mal gelesen)
|
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 21. Jan. 2009 13:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, soweit habe ich es schon geschafft. Zeichnung aktivieren bis hin zur View. Jetzt möchte ich diese aber noch mit einem Neuen Namen versehen aber erhalte beim Einsatz von "SetViewName" immer einer Fehlermeldung das die Metode nicht vorhanden ist. Hier meine Code: Dim drawingDocument1 As Document Set drawingDocument1 = CATIA.ActiveDocument Dim drawingSheets1 As DrawingSheets Set drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet Set drawingSheet1 = drawingSheets1.Item("Details") msgbox(drawingSheet1.name) Dim drawingViews1 as DrawingViews Set drawingViews1 = drawingSheet1.Views.item("Name1") drawingView1 = drawingViews1.Activate() drawingView1 = drawingViews1.SetViewName ("test","","") msgbox (drawingViews1.name) Wo liegt meine Fehler?
------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Jan. 2009 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Servus Du hast die Variable falsch deklariert: Code: Dim drawingView1 as DrawingView Set drawingView1 = drawingSheet1.Views.Item("Name1")
So solltest du direkt auf die View zugreifen können, ohne erst die Collection der Views zudeklarieren.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 21. Jan. 2009 13:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd ich stehe mir wohl selbst im Wege, jetzt kommt die Meldung das ein Objekt erforderlich ist. Irgend ein Fehler muß im letzten Bereich des Programm noch sein, nur ich verstehe es nicht ------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Jan. 2009 14:06 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Servus Meiner Meinung sollte es so sein (nicht getestet): Code: Dim drawingDocument1 As Document Set drawingDocument1 = CATIA.ActiveDocumentDim drawingSheets1 As DrawingSheets Set drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet Set drawingSheet1 = drawingSheets1.Item("Details") msgbox(drawingSheet1.name) Dim drawingView1 as DrawingView Set drawingView1 = drawingSheet1.Views.item("Name1") drawingView1.SetViewName ("","test","")
Schau dir mal die Doku an. Dort sind zu den meisten Befehlen kurze Beispiele.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 21. Jan. 2009 14:24 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
|
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 21. Jan. 2009 14:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Hallo Bertel, irgendwie will es heute nicht klappen. @Hallo Bernd habe den Code probiert. bekomme die Meldung das beim Aufrufen einr Unterroutine keine Klammern verwendet werden dürfen. In der Onlinedoku habe ich ebenfalls den Code gefunden. Alles müßte richtig sein aber es läuft nicht. @Hallo Bertel, habe den Fehler schon beseitigt. ------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 21. Jan. 2009 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
|
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 21. Jan. 2009 15:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Bertel, alles schon ausprobiert. Der Code wird einfach nicht angenommen. Das ganze soll auf R17SP3 laufen, kann der Fehler hier noch sein. Habe leider nur für R16 die Onlinedoku vorliegen. Kann es sein das der Befehl SetViewName sich verändert hat? ------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 21. Jan. 2009 17:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Hallo Bertel, ich glaube habe euch nicht genau beschreiben welche Elemente ich umbenennen / ansprechen möchte. Nachdem ich den Code auf eine View, die innerhalb eines Blatt liegt angewendet hatte, war alle super. Also Code 1A. Ich möchte aber die im JPG dargestellten Elemente per Makro ansprechen und umbenennen. Leider funktioniert dieses nicht. Ist es Möglich diese Elemente genauso wie eine View unterhalb einem Blatt anzusprechen und umzubenennen? ------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Jan. 2009 17:12 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Servus Dabei handelt es sich um eine 2D-Komponente diese werden als DrawingComponent angesprochen und nicht als View (siehe Doku). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. 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: 21. Jan. 2009 19:12 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Zitat: Original erstellt von bgrittmann: Servus Dabei handelt es sich um eine 2D-Komponente diese werden als [b]DrawingComponent angesprochen und nicht als View (siehe Doku).Gruß Bernd [/B]
Nicht ganz, es handelt sich bei DrawingComponents um die Instanzen der 2D-Komponenten. Wenn man über die DrawingComponents geht, wird es komplizierter. Dann mußt du mit CompRef an die Referenz der DrawingComponent und kannst dann an den Namen. Bei einem Makro zum Kopieren einer Ansicht aus einer Zeichnung in eine andere bin ich darüber gegangen. Und habe die Referenz umbenannt. Ich muß mal meine Makros zu dem Thema zusammenkramen. Viele Grüße, CEROG ------------------ Meine Firma | Website zum Buch Technisches Zeichnen mit CATIA V5 Wie stelle ich meine Fragen richtig? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Jan. 2009 19:18 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
|
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 22. Jan. 2009 08:56 <-- editieren / zitieren --> Unities abgeben:
Hallo CEROG, hast du schon nachgesehen? Ich habe mir es in der Onlinehilfe angesehen und komme doch nicht weiter. Währe schön wenn du mir den Auszug in dem du die Referenz ansteuerst und änderst geben könnstet. Vielen Dank
------------------ Willi 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: 22. Jan. 2009 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
|
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 22. Jan. 2009 12:26 <-- editieren / zitieren --> Unities abgeben:
Hallo CEROG vielen Dank für den Code. Haben den Code eingebaut und getestet. Bekomme jetzt aber die folgende Meldung, die ich aber nicht verstehe. "Anweisungsende erwartet => Next J" Die Schleife ist doch beendet mit Next J Vielleicht stecke ich auch noch zu sehr in den Kinderschuhen. Sub CATMain() Dim drawingDocument1 As Document drawingDocument1 = CATIA.ActiveDocument Dim drawingSheets1 As DrawingSheets drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet drawingSheet1 = drawingSheets1.Item("Details") MsgBox(drawingSheet1.Name) drawingSheet1.Activate() 'Dim drawingView1 As DrawingView 'drawingView1 = drawingSheet1.Views.Item("Farbindex (Detale)") '-------------Details umbenennen------------ Dim AnzahlBl As Integer Dim Pos As Integer Dim oSheets As DrawingSheets1 Dim oSheet As DrawingSheet1 Dim oViews As DrawingViews For I = AnzahlBl To 1 Step -1 oSheet = oSheets.Item(I) If oSheets.Item(I).IsDetail Then oViews = oSheets.Item(I).Views For J = oViews.Count To 3 Step -1 Name = oViews.Item(J).Name Pos = InStr(Name, "Farbindex (Detale)") - 1 If Pos > 1 Then oViews.Item(J).Name = " Test" End If oViews.Item(J).Name = oViews.Item(J).Name + " 2 " Next J End If Next I End Sub
------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 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: 22. Jan. 2009 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
|
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: 22. Jan. 2009 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Hallo Willi, räum doch erst mal deinen Code auf. Du hast irgendwelche Objekte - deine ursprünglichen - deklariert und verwendet andere, nämlich die aus meinem Code.... Das ist zumindest schlampig und erschwert die die Fehlersuche. Noch ein Hinweis: Die erste View ist immer die Main View, die zweite die BackgroundView, auch bei DetailSheets. Deshalb gehe ich bis 3 runter. Du kannst natürlich auch hochzählen. In meinem Gesamtcode hat es sich insgesamt als günstiger erwiesen, runter zu zählen... Views solltest du NIE mit einem Namen ansprechen. Der kann nämlich mehrfach auf einem Blatt auftauchen. Der Index der View ist eindeutiger. Die internen Blattnummern werden in der Reihenfolge vergeben, in der die Blätter angelegt werden. Im Baum werden sie anders aufgelistet... Viele Grüße, CEROG ------------------ Meine Firma | Website zum Buch Technisches Zeichnen mit CATIA V5 Wie stelle ich meine Fragen richtig? 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: 22. Jan. 2009 17:46 <-- editieren / zitieren --> Unities abgeben: Nur für WilliGo
Hallo zusammen, @WilliGo: Ich habe deinen Code mal bereinigt. In dieser Form ist er noch nicht getestet. Code:
Sub CATMain() Dim oDoc As DrawingDocument Dim oSheets1 As DrawingSheets Dim oSheets As DrawingSheets Dim oSheet As DrawingSheet Dim oViews As DrawingViews Dim I, J, Pos As Integer Set oDoc = CATIA.ActiveDocument Set oSheets = oDoc.Sheets Set oSheet = oSheet.Item("Details") '-------------Details umbenennen------------ For I = oSheets.Count To 1 Step -1 Set oSheet = oSheets.Item(I) If oSheets.Item(I).IsDetail Then Set oViews = oSheets.Item(I).Views For J = oViews.Count To 3 Step -1 Name = oViews.Item(J).Name Pos = InStr(Name, "Farbindex_(Detale)") - 1 If Pos > 1 Then oViews.Item(J).Name = "Test" End If oViews.Item(J).Name = oViews.Item(J).Name & "2" Next J End If Next I End Sub
Dabei sind mir noch zwei Sachen aufgefallen: Code:
oViews.Item(J).Name = oViews.Item(J).Name & "2"
Diese Stelle habe ich geändert. Ursprünglich war da ein Pluszeichen. Strings werden mit einem "&" aneinandergehängt. Mag ja sein, daß das "+" auch gegangen wäre, aber ich glaube, da lag das Problem. Und noch eins: Ich mag keine Leerzeichen in Namen. Die habe ich im Code beseitigt. Viele Grüße, CEROG PS: @bgrittmann: Ich bin auch kein Programmierer. ------------------ Meine Firma | Website zum Buch Technisches Zeichnen mit CATIA V5 Wie stelle ich meine Fragen richtig? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WilliGo Mitglied Konstruktion
Beiträge: 102 Registriert: 20.02.2007 Catia V5 R14 - R19 Windows 10
|
erstellt am: 28. Jan. 2009 12:09 <-- editieren / zitieren --> Unities abgeben:
Hallo CEROG vielen Dank für deine Antworten, sie haben mir gut weitergeholfen. Das der Code so "schlampig" geschreiben war, ist drauf zurück zuführen das ich einiges erstmal zusammen kopiert hatte. ------------------ Willi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |