Autor
|
Thema: Identifikation von Bodies (402 mal gelesen)
|
CrazyEx Mitglied Student
Beiträge: 2 Registriert: 03.04.2009
|
erstellt am: 03. Apr. 2009 16:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich schreibe gerade an einem Makro und stecke gerade etwas fest. Über userselection wird dabei der Body ausgewählt, in dem das Marko arbeiten soll. Set Usel = CATIA.ActiveDocument.Selection Part = Usel.Item(1).Value.Name Set SF = ActiveDocument.Part.Bodies.Item(Part) Wenn jetzt allerdings mehrere Bodies mit dem selben Namen existieren führt dass zu Problemen. Gibt es hier die Möglichkeit eienen Body über ein anderes attribute zu identifizieren, als "name"? Ich hab leider nix dazu gefunden bzw. weiß nicht wie man zum Beispiel die Item-nummer ausließt. Wäre super wenn mir jemand helfen könnte. clemens
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: 04. Apr. 2009 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für CrazyEx
Hallo Clemens, ja sicher, du kannst doch direkt über die Selektion gehen und nicht indirekt erst mal den Namen auslesen um sich dann über GetItem bzw. Item durchzuhangeln. Hier mal ein kurzes Beispiel:
Code:
Sub CATMain() Dim oDoc As Document Dim Abfrage As String Dim otype(0) otype(0) = "Body" Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection oSel.Clear Box = MsgBox("Bitte wählen Sie den Body aus", vbInformation + vbOKOnly, "Hinweis") Abfrage = oSel.SelectElement2(otype, "Bitte Body auswählen", False) If Abfrage = "Normal" Then 'Hier wird dann der Variable "myBody" der Wert zugewiesen. Mit dem kannst du weiter arbeiten, da das den 'vom User selektieren Body darstellt Set myBody = oSel.Item(1).Value 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 |
CrazyEx Mitglied Student
Beiträge: 2 Registriert: 03.04.2009
|
erstellt am: 06. Apr. 2009 11:18 <-- editieren / zitieren --> Unities abgeben:
Super und Danke für den Beispiel Code. Läuft jetzt sehr viel stabiler. Das heißt also item(1) ist immer das erste ausgewählte Objekt. Super dann hab ich schonmal ein Problem weniger und das Programm verrennt sich nicht mehr ständig. es grüßt
Clemens
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: 07. Apr. 2009 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für CrazyEx
Hallo Clemens, so ganz pauschal kann man das nicht sagen. Das "Item(1)" ist immer das Objekt das als erstes in der Selektion steht (in der Regel das das auch als erstes ausgewählt wurde). Aber wenn du z.B. über eine Selection.Search gehst, weißt du ja nicht welches als erstes von CATIA ausgewählt wurde du kannst nur vermuten, das CATIA von unten nach oben arbeitet aber bei den Franzosen weiß ma ja nie Bei einem SelectElement2 gibt es immer nur [1][/b] Item in der Selektion, da die Funktion nur EINE Auswahl zulässt. Es gibt noch ein SelectElement3 (mit CATMultiSelTriggWhenUserValidatesSelection) bei der der Anwender mehrere Teile selektieren kann. Hier stimmt dann deine Aussage. Der zuerst selektierte Objekt steht in der Slektion an Stelle 1. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|