Autor
|
Thema: Anfängerfrage (991 mal gelesen)
|
Speedway04 Mitglied Konstrukteur
Beiträge: 30 Registriert: 16.07.2007
|
erstellt am: 20. Jan. 2009 13:23 <-- editieren / zitieren --> Unities abgeben:
Hallo an die welt der vbaler, ich fane gerade an vba zu erlernen. Mein momentanes Problem ist wahrscheinlich ziemlich einfach zu lösen aber ich finde nicht das richtige. Ich möchte mit sel.search einen bestimmten Namen suchen lassen. Funktioniert auch soweit. Ich möchte aber das er nur die Explarnamen durchsucht. Gibt es dafür eine bestimmte Anweisung? Über jeden schubs der mich in die richtige Richtung bringt bin ich dankbar. mfg Speedway ------------------ mfg U.Müller 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: 20. Jan. 2009 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
|
Speedway04 Mitglied Konstrukteur
Beiträge: 30 Registriert: 16.07.2007
|
erstellt am: 20. Jan. 2009 13:32 <-- editieren / zitieren --> Unities abgeben:
|
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: 20. Jan. 2009 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
Hi, ok dann dann hol dir doch erst mal über ein selection.Search alle Parts bzw. Produkte in deine Selektion. Anschließend durchläufst du die Selektion mit einer Schleife und suchst halt den Namen. Hab gerade kein CATIA hier aber ich versuchs mal (Quelltext ohne Gewähr ) Code:
Set oSel = CATIA.ActiveDocuemnt.Selection oSel.search "Part"... For i = 1 to oSel.Count Set oPart = oSel.Item(i) 'Hier weiß ich die Methode leider nicht auswendig. Kannst aj mit einem Watch mal das oPart Objekt überwachen If oPart.Name = "test" Box = MsgBox("Ein Part mit dem Namen test wurde gefunden",,"Hinweis") End If Next oSel.Clear
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin [Diese Nachricht wurde von denyo_1 am 20. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Speedway04 Mitglied Konstrukteur
Beiträge: 30 Registriert: 16.07.2007
|
erstellt am: 20. Jan. 2009 14:04 <-- editieren / zitieren --> Unities abgeben:
|
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: 20. Jan. 2009 14:04 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
Via VB kann auf die Exemplarnamen glaube ich nicht zugegriffen werden. Habe das Problem nämlich in den Stücklisten... ------------------ 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 |
Speedway04 Mitglied Konstrukteur
Beiträge: 30 Registriert: 16.07.2007
|
erstellt am: 20. Jan. 2009 14:06 <-- editieren / zitieren --> Unities abgeben:
Hi HoBLila, wie ich schon rausgefunden habe gibt es extra Libs für den Exemplarnamen. In vba ist das glaube ich die Nomenclature. Habe halt noch nicht rausgefunden wie ich explizit danach suchen kann. ------------------ mfg Udo 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: 20. Jan. 2009 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
Hallo, ich habe einen Vorschlag. Starte mal die Makroaufzeichnung innerhalb deines Produkts. Wenn sie gestartet wurde klicke Strg+F. Jetzt klickst du oben in den Reitern auf die erweiterte Suche und versuchst mal dort die Parameter so zu bestimmen das er nur nach Exemplarnamen sucht (weiß nicht genau ob´s geht). Falls das nicht hinhaut kannst du ja immer noch die Schleife nutzen. @Henry: Soweit ich weiß gibt es nur Probleme sobald ein Anwender mit dem Cache-Modus arbeitet. Ansonsten kannst du doch über die Schleife die Exemplarnamen auslesen und in ne Collection repektive Array schreiben. Und kuck mal du hast einen neuen Xing-Kontakt ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 20. Jan. 2009 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
|
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: 20. Jan. 2009 17:44 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
*g* steh ich irgendwie auf dem Schlauch? Also meiner Meinung nach geht ihr doch alle auf den PartName und nicht aufden Exemplarnamen, oder sehe ich das falsch? Sind das nicht unterschiedliche Attribute? Habe ich da was falsch in Errinung? Sorry, dass ich das frage, aber habe schon ne Weile kein VB mehr entwickelt. ------------------ 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 |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 20. Jan. 2009 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
@HoBLila Bei dem Link den ich Gepostet habe wird der Exemplarname an den Partnamen angepasst Da wird also auf beide zugegriffen. Da könnte man sich doch die passenden Code Zeilen raussuchen ------------------ Sei Schlau bleib Dumm !!?!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Speedway04 Mitglied Konstrukteur
Beiträge: 30 Registriert: 16.07.2007
|
erstellt am: 26. Jan. 2009 14:51 <-- editieren / zitieren --> Unities abgeben:
Erstmal danke für die Ideen und Lösungsvorschläge. Leider bin ich nicht wirklich weiter gekommen mit. Jetzt habe ich wieder eine neue Vision. Ist es möglich nach "broken Links" zu suchen bzw. irgendwie eine Produktstruktur danach zu durchsuchen? ------------------ mfg Udo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 28. Jan. 2009 20:37 <-- editieren / zitieren --> Unities abgeben: Nur für Speedway04
Hallo vielleicht hilft dir das weiter, hab ich aus einem Beitrag von tomtom72. Du kannst irgendein Part anklicken und das Makro liefert Dir den Instanznamen. Der Instanzname ist der Name, der in der Klammer angezeigt wird. '***************************************************************** Sub CatMain() '---------------PART AUS PRODUKT AUSWAEHLEN Set Document = CATIA.ActiveDocument Set Documents = CATIA.Documents Dim iSel, iStatus, sFilter(0) set iSel = CATIA.ActiveDocument.Selection sFilter(0) = "Part" iStatus = iSel.SelectElement3(sFilter, "Part selektieren / ESC bei keine Auswahl",_ False, CATMultiSelTriggWhenSelPerf, False) If iStatus = "Normal" Then Else MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, " Abbruch " Exit Sub End If '------------------Komponente in der sich der Part befindet Set oProd = Document.Selection.FindObject("CATIAProduct") msgbox oProd.Name 'liefert den Instanznamen des Parts
End Sub '************************************************************** Viele Grüsse HaWu
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |