Autor
|
Thema: SelectElements (2001 mal gelesen)
|
rattlesnake Mitglied
Beiträge: 47 Registriert: 22.10.2007 Vb .NET CATIA V5R19
|
erstellt am: 05. Aug. 2008 13:54 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen, wie bekomme ich mit vba etwas ähnliches hin wie Selection.SelectElement2 in CATScript??? Ziel ist es eine UserForm aufzubauen, bei der während der Laufzeit Elemente ausgewählt werden können und z.B. in eine ListBox hinzugefügt werden und anschließend mit denen was passiert. Hat da jemand Erfahrung mit und kann mir ggf. weiterhelfen? ------------------ \\\\|//// \\ _ _ // ( o o ) ================oOOo-(_)-oOOo================== The next time you think you are perfect, try walking on water ========================Oooo=================== oooO ( ) ( ) ) / \ ( (_/ \_) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 05. Aug. 2008 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
ich habe denke ich mal relativ große und auch einige gute Erfahrungen damit und kann dir sagen, dass es in vba genauso funktioniert wie in catvbs und catscript ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing 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: 05. Aug. 2008 18:30 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
Hallo Henry, mich würde intressieren wie du ein ...SelectElement2 mit vba erzeugst. Bei mir sagt er immer das diese Funktion oder Schnittstelle nicht zur Verfügung steht. Muss man ev. noch Verweise hinzufügen die ich nicht habe. Schau dir mal meinen Screenshot von der Fehlermeldung an und sag mir bitte bescheid. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rattlesnake Mitglied
Beiträge: 47 Registriert: 22.10.2007 Vb .NET CATIA V5R19
|
erstellt am: 05. Aug. 2008 18:47 <-- editieren / zitieren --> Unities abgeben:
so gehts mir eben auch... mich würde interessieren wie das da funktioniert. Wenn es geht wäre auch ein beispiel hilfreich. Dürfte ja nicht so schwer sein, wenn es nicht so viele Unterschiede gibt. Danke schon einmal ------------------ \\\\|//// \\ _ _ // ( o o ) ================oOOo-(_)-oOOo================== The next time you think you are perfect, try walking on water ========================Oooo=================== oooO ( ) ( ) ) / \ ( (_/ \_) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 05. Aug. 2008 23:03 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
Hallo rattlesnake, hallo denyo_1, wenn Ihr die Definition der Selektion im "catvba" meint, dann ist die Fehlermeldung klar: Ihr dürft die Selektion nicht als "Selection" definieren, sondern als "Object" oder ohne Typ. Dann sollte es funktionieren! Bei reinem "vba" kenne ich mich allerdings nicht aus... mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern 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: 06. Aug. 2008 06:18 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
Hallo, ok das klingt verdammt einleuchtend. Mercy für den Tipp ich werds gleich mal versuchen mit dem Objekt. PS: Ich meinte CATvba EDIT rattlesnake hat recht. Habs gerade getestet. wenn die Selektion als Objekt definiert wird dann steht die SChnittstelle (...selectElemet2) zur Verfügung ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin [Diese Nachricht wurde von denyo_1 am 06. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 06. Aug. 2008 08:18 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
*g* Sorry das hatte ich vergessen zu sagen, da ich das an so vielen Stellen schon gepredigt habte... Wenn du ein Objekt ByRef an eine API-Methode übergeben möchtest, dann muss das Objekt, welches die Methode beinhaltet als Objekt- oder undefiniert sein. Dies liegt daran, dass VB sonst die Objekttypen nicht richtig auflösen kann. (Windows läd die eindeutig definierten Objekte zur Laufzeit [bei Programmstart] bereits in den RAM was einen Geschwindigkeitsvorteil bringt, VB kann dann hinterher aber eben nicht mehr ByRef arbeiten, da das nicht eingeplant war ^^) Also immer wenn du was in Klammern schreibst, wo du eine Rückgabe an die Variablen erwartest dann darfst du das Objekt auch nicht korrekt definieren. Beispiel wäre auch Point.GetCoordinates(dCoords) <--- Rückgabe erfolgt an die Koordinaten, also muss der Punkt vom Typ Object sein Beim nächsten mal also sagen, dass du eine Fehlermeldung bekommst und diese posten, dann helfe ich sofort und nicht fragen, ob es möglich ist eien Methode zu verwenden, die du bereits verwendest und die eine nFehler verursacht. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rattlesnake Mitglied
Beiträge: 47 Registriert: 22.10.2007 Vb .NET CATIA V5R19
|
erstellt am: 06. Aug. 2008 11:15 <-- editieren / zitieren --> Unities abgeben:
Der Verlauf hat jetzt ne ganz andere Richtung genommen. Mir ist klar, dass ich das als Objekt abspeichern muss. Aber ich hab allgemein ein Problem aus catvba das SelectElement aufzurufen. Es wäre immer noch hilfreich wenn ich etwas Beispielcode bekommen könnte, wenns bei euch funktioniert. Ich hab natürlich mir auch schon mal die Mühe gemacht und ein Beispiel geschrieben. Es kommt die Fehlermeldung: Object doesn't Support this Propert or Method Code aus Beispiel:
Code:
Dim selection Set selection = CATIA.ActiveDocument.selection Dim selectableElements(1) As String selectableElements(0) = "Plane" selectableElements(1) = "Face" selection.SelectElements2 selectableElements, "test", True
------------------ \\\\|//// \\ _ _ // ( o o ) ================oOOo-(_)-oOOo================== The next time you think you are perfect, try walking on water ========================Oooo=================== oooO ( ) ( ) ) / \ ( (_/ \_) 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: 06. Aug. 2008 11:20 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
Hallo, der Thraed beschreib doch genau dein Probelm. Hier nmal dein Code Code:
Dim selection Set selection = CATIA.ActiveDocument.selection Dim selectableElements(1) As String selectableElements(0) = "Plane" selectableElements(1) = "Face" selection.SelectElements2 selectableElements, "test", True
Jetzt der abgeänderte Code mit dem es Funktionieren sollte Code:
Dim selection as Object ' muss nicht gemacht werden Set selection = CATIA.ActiveDocument.selection Dim selectableElements(1) As String selectableElements(0) = "Plane" selectableElements(1) = "Face" Set mySel = selection.SelectElements2 selectableElements, "test", True 'Hier wird dem Objekt mySel die Selektion zugewiesen. Das Objekt kannst du ja dann beliebig abfragen!
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rattlesnake Mitglied
Beiträge: 47 Registriert: 22.10.2007 Vb .NET CATIA V5R19
|
erstellt am: 06. Aug. 2008 11:30 <-- editieren / zitieren --> Unities abgeben:
du hast dir ja sicherlich mein Beispiel angeschaut. Ich hab mal dein Vorschlag ausprobiert und er hat natürlich nicht funtkioniert. Ich hab kein Problem bei der Zuweisung, sondern dass er die Methode SelectElement2 erst gar nicht kennt! korrigierter Code:
Code:
Dim selection As Object ' muss nicht gemacht werden Set selection = CATIA.ActiveDocument.selection Dim selectableElements(1) As String selectableElements(0) = "Plane" selectableElements(1) = "Face" Set mySel = selection.SelectElements2(selectableElements, "test", True) 'Hier wird dem Objekt mySel die Selektion zugewiesen. Das Objekt kannst du ja dann beliebig abfragen!
Nochmal, ich versuche eine catvba-Anwendung mit eigener UserForm zu machen. ------------------ \\\\|//// \\ _ _ // ( o o ) ================oOOo-(_)-oOOo================== The next time you think you are perfect, try walking on water ========================Oooo=================== oooO ( ) ( ) ) / \ ( (_/ \_) [Diese Nachricht wurde von rattlesnake am 06. Aug. 2008 editiert.] 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: 06. Aug. 2008 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für rattlesnake
Hy, wenns nicht so läuft is es noch kein Grund so patzig zu werden. Ich versuche dir hier ja auch nur support zu geben. Das sollte man nicht als selbstverständlich vorraussetzen. Jetzt zum Thema. Ich denke in deinem Code ist nur ein Rechtschreibfehler (ich habe ihn dummerweise auch noch mitkopiert.) Code: Set mySel = selection.SelectElements2(selectableElements, "test", True)
sollte Code: Set mySel = selection.SelectElement2(selectableElements, "test", True)
heißen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin [Diese Nachricht wurde von denyo_1 am 06. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technische/r Zeichner:in / CAD Konstrukteur:in (m/w/d) | meplan, die Agentur für Markenräume und Messebau, hat als Tochter der Messe München sowie mac. brand spaces ihren Sitz auf dem Münchner Messegelände. Wir planen und realisieren Live Touchpoints auf Messen und Veranstaltungen. Physisch wie digital. Das Team besteht aus Expert:innen aller relevanten Disziplinen, von Architektur, Design bis hin zu Projektmanagement und Technik. Mit weltweit jährlich fast 4.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
rattlesnake Mitglied
Beiträge: 47 Registriert: 22.10.2007 Vb .NET CATIA V5R19
|
erstellt am: 11. Aug. 2008 16:42 <-- editieren / zitieren --> Unities abgeben:
hallo, wenn es pampig rüber kam, war das nicht meine Absicht. Es hat jetzt dann doch noch geklappt, nachdem ich noch einige Puntke abgeändert hatte. hier der Code: Code: Private Sub CommandButton1_Click() 'Dialog ausbleden userForm.Hide ' Auswahl festlegen ----------------------------------------------- Dim selectableElements(1) selectableElements(0) = "Pad" selectableElements(1) = "Line" ' Selektion definieren und leeren --------------------------------- Dim userSelection As Object Set userSelection = CATIA.ActiveDocument.selection userSelection.Clear ' Selektion vornehmen lassen -------------------------------------- Dim status As String status = userSelection.SelectElement2(selectableElements, "Pad oder Linie wählen.", True) If status = "Normal" Then Msgbox(userSelection.Item(1).Value.Name) Else Msgbox(Abbruch) End If ' Selektion freigeben -------------------------------------------- userSelection.Clear 'Dialog anzeigen userForm.Hide End Sub
10 Punkte ------------------ \\\\|//// \\ _ _ // ( o o ) ================oOOo-(_)-oOOo================== The next time you think you are perfect, try walking on water ========================Oooo=================== oooO ( ) ( ) ) / \ ( (_/ \_) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|