Autor
|
Thema: Auswahl bei Dokumentenwechsel von Drawing zu Produkt (679 mal gelesen)
|
MarkusK Mitglied
Beiträge: 130 Registriert: 09.08.2002 Dell Precision T5500 Intel Xenon X5560 4x 2,8 GHz 12 GB Ram NVIDIA Quadro FX 3800 Win XP Catia V5R19 SP3
|
erstellt am: 27. Jul. 2009 15:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, wenn man nach "Auswahl" oder "Selection" im Forum sucht findet man zwar sehr viel, aber zu meinem Problem habe ich noch nichts gefunden. Wenn ich mein Makro starte befinde ich mich in einer Zeichnung. Nun möchte ich jedoch eine Auswahl in dem entsprechendem Produkt/Part zu der Zeichnung mache. So bald ich aber das Dokument wechsel, egal ob über Menü->Fenster, oder die beiden Dokumente nebeneinander sichtbar sind, wird meine Auswahl mit "Status=Cancel" abgebrochen. Ich könnte jetzt natürlich das erste "Cancel" abfangen, und der User müsste dann halt 2 mal ESC drücken, aber die feine Art finde ich das nicht. Daher die Frage hat dieses Problem schon mal jemand gehabt, und eine Lösung, oder ein Ratschlag? ------------------ Gruss Markus 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: 27. Jul. 2009 15:59 <-- editieren / zitieren --> Unities abgeben: Nur für MarkusK
Hallo Markus, du brauchst ein selectedElement4 (schau hierzu mal in der Hilfe nach). Runs an interactive selection command, enabling the selection in a non active document. Hiermit kannst du zur Selektion in ein nicht aktives Dokument wechseln OHNE das die Selektion dadurch gecancelt wird. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarkusK Mitglied
Beiträge: 130 Registriert: 09.08.2002 Dell Precision T5500 Intel Xenon X5560 4x 2,8 GHz 12 GB Ram NVIDIA Quadro FX 3800 Win XP Catia V5R19 SP3
|
erstellt am: 27. Jul. 2009 16:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, vieln Danke, jetzt weis ich auch warum es SelectElement2 gibt, weil es auch noch ein SelectElement3/4 gibt. Ich hab mir das mal kurz angeschaut, aber ich glaub, dass muss ich mir noch mal in Ruhe zu Gemüte führen. Der größte Unterschied scheint mir zu sein, dass das Ergebnis nicht in der ursrünglichn Selction ist, sondern das Produkt zurückgegeben wird, und in dessen Selection die Auswahl ist. Werde es mal demnächst testen.
------------------ Gruss Markus 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: 27. Jul. 2009 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für MarkusK
Hallo Markus, genau so ist es. Es wird die Selektion der Quelldatei durch die interaktive Selektion gefüllt (also nicht die des aktiven Dokuments). Dies ist auch der Grund weswegen du den Status "Normal" erhälst und nicht "Cancel". Ich hab dir hier mal ein kleines Beispiel gebaut. Das Script wird in einer Zeichnung ausgeführt und es kann eine Fläche in einem x-beliebigen Part (muss natürlich geöffnet sein) selektiert werden. Es wird dann im Anschluss der Namen der selektierten Ebene/Fläche ausgegeben sowie der Namen der Datei. Code:
Sub CATMain() Dim Status As String Dim oType(0) Dim oDoc As DrawingDocument Dim mySelDoc As Document Dim mySelName As String Dim myDocName As String Dim mySelObject As Object 'Diese Zeile MUSS in VB auskommentiert werden sonst bekommst du einen Fehler 'Dim oSel As Selection On Error Resume Next Set oDoc = CATIA.ActiveDocument If Err.Number <> 0 Then Box = MsgBox("Das aktive Dokument ist KEINE Zeichnung!", vbCritical, "ABBRUCH") Exit Sub Else Set oSel = oDoc.Selection End If On Error GoTo 0 oType(0) = "BiDimInfinite" Box = MsgBox("Jetzt kann in einem nicht aktiven Dokument selektiert werden!", vbInformation, "Hinweis") Status = oSel.SelectElement4(oType, "Bitte selektieren Sie eine Ebene / ESC zum Abbrechen", _ "Ebene selektieren", False, mySelDoc) If Status = "Normal" Then Set mySelObject = mySelDoc.Selection.Item(1).Value mySelName = mySelObject.Name myDocName = mySelObject.Parent.Parent.Name Box = MsgBox("Sie haben folgendes Element selektiert:" + Chr(10) + Chr(10) + mySelName + Chr(10) + Chr(10) + _ "Die Selektion wurde in folendem Dokument getätigt:" + Chr(10) + Chr(10) + myDocName, vbInformation, "Hinweis") Else Exit Sub End If 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 |
MarkusK Mitglied
Beiträge: 130 Registriert: 09.08.2002 Dell Precision T5500 Intel Xenon X5560 4x 2,8 GHz 12 GB Ram NVIDIA Quadro FX 3800 Win XP Catia V5R19 SP3
|
erstellt am: 29. Jul. 2009 16:23 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|