Autor
|
Thema: selection DetailView von User (1115 mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 15. Aug. 2015 17:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte vom User eine selection auf eine View machen lassen. Leider bekomme ich einen Fehler bei der Auswahl. "The View automation name is not suppoerted" Hat jemand einen Tip?
Code: Sub CATMain()Dim Doc As Document Dim DrwDocument As DrawingDocument Dim DrwRoot As DrawingRoot Dim DrwSheets As DrawingSheets Dim DrwSheet As DrawingSheet Dim Selection As Selection Dim DrwViews As DrawingViews Dim DrwView As DrawingView Dim DrwTexts As DrawingTexts Dim Text 'as DrawingText Dim Textname As String Set DrwDocument = CATIA.ActiveDocument Set DrwRoot = DrwDocument.DrawingRoot Set DrwSheets = DrwRoot.Sheets Set DrwSheet = DrwSheets.ActiveSheet Set Selection = DrwDocument.Selection Set DrwView = DrwSheet.Views.ActiveView Set DrwTexts = DrwView.Texts Set selection1 = DrwDocument.Selection selection1.Clear Dim Auswahl
ReDim Auswahl(1) Auswahl(0) = "View" SelErg = selection1.SelectElement2(Auswahl, "Bitte die View auswählen", True) If SelErg <> "Normal" Then MsgBox "Auswahl wurde abgebrochen:" & SelErg Exit Sub End If ...
End Sub
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 15. Aug. 2015 19:01 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo Uwe, hast mal 'DrawingView' statt 'View' probiert? Hope it helps, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 16. Aug. 2015 10:32 <-- editieren / zitieren --> Unities abgeben:
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 16. Aug. 2015 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo Uwe, zwei Dinge waren gravierend: - In den Dims steht Selection, weiter unten aber ausschliesslich Selection1. Wenn über dem Code 'Option Explicit' stünde, hätt'st das selber gemerkt. - SelectedElement2 mag Selections nicht?! Also: as Object Probier's mal so:
Code:
Option Explicit Sub CATMain() Dim Doc As Document Dim DrwDocument As DrawingDocument Dim DrwRoot As DrawingRoot Dim DrwSheets As DrawingSheets Dim DrwSheet As DrawingSheet Dim Selection As Object 'Selection Dim DrwViews As DrawingViews Dim DrwView As DrawingView Dim DrwTexts As DrawingTexts Dim Text 'as DrawingText Dim Textname As String Dim SelErg As String Set DrwDocument = CATIA.ActiveDocument Set DrwRoot = DrwDocument.DrawingRoot Set DrwSheets = DrwRoot.Sheets Set DrwSheet = DrwSheets.ActiveSheet Set Selection = DrwDocument.Selection Set DrwView = DrwSheet.Views.ActiveView Set DrwTexts = DrwView.Texts Set Selection = DrwDocument.Selection Selection.Clear Dim Auswahl() 'ohne Klammer dahinter ist das ein Variant, aber kein Array
ReDim Auswahl(0) 'ein Element reicht Auswahl(0) = "DrawingView" 'AnyObject' geht auch SelErg = Selection.SelectElement2(Auswahl, "Bitte die View auswählen", True) If SelErg <> "Normal" Then MsgBox "Auswahl wurde abgebrochen:" & SelErg Exit Sub End If Debug.Print Selection.Item2(1).Type Debug.Print Selection.Item2(1).Value.Name
End Sub
Ich hoffe, ich hab Dir den Nutzen von 'Option Explicit' hinreichend dargelegt. :-) Tschau, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 16. Aug. 2015 14:05 <-- editieren / zitieren --> Unities abgeben:
Hi Joe, vielen Dank. Deine Tips werde ich mir zu Herzen nehmen. Bin halt ein Goofy was das programmieren betrifft, und schlage mich mit Try and Error durch. Habe auch beim weiteren probieren gemerkt das was mit "Selection2" nicht richtig sein konnte, da sie im Catscript funktionierte. Du hast mir ja jetzt gesag warum. Eine Frage hätte ich da noch. Was haben die Zeilen:
Code: Debug.Print Selection.Item2(1).Type Debug.Print Selection.Item2(1).Value.Name
hier zu sagen? Sehe beim Makrolauf keine Auswirkung. Danke nochmal.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 16. Aug. 2015 14:15 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo Uwe, ich hab angenommen, dass Du in der VBA-IDE programmierst. Die zwei Zeilen dienen nur zur Kontrolle. Auswirkung auf's Makro haben sie nicht. Sie geben in diesem Fall die Werte für Type und Namen im Immediate-Fenster aus, also zB. Code:
DrawingView Top view
Debug.Print ist halt weniger mühsam als MsgBox und öfter auch einfacher als ein schrittweises Durchlaufen und Prüfen von Zwischenwerten. Meine Programme sind gespickt damit. Falls Du die IDE noch nicht verwendest: Ich kann's Dir nur empfehlen. Tschau, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 16. Aug. 2015 14:29 <-- editieren / zitieren --> Unities abgeben:
Hi Joe, VBA-IDE ? Ist das die VBA Umgebung die ich in Catia über Alt F11 starte? Wenn Nein. Wo bekomme ich diese her? Debug.Print habe ich verstanden. Danke Dir ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 16. Aug. 2015 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Noch eine kleine Anmerkung: Das Array 'Auswahl' muss nicht als dynamisch definiert werden. Code:
Dim Auswahl(0) Auswahl(0) = "DrawingView"
tut's auch. Oder ...
Code:
Dim Auswahl 'ohne Typisierung = 'Variant' Auswahl = Array("DrawingView") 'zuweisen zu einem Array
Nur bitte nicht mixen. Tschau, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 16. Aug. 2015 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 16. Aug. 2015 18:42 <-- editieren / zitieren --> Unities abgeben:
|