|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | 
|  |  | 
|  | KISTERS 3DViewStation: Multitalent für Branchen und Nischenmärkte, eine Pressemitteilung 
 | 
| Autor | Thema:  Part Im Produkt Selektieren (1592 mal gelesen) | 
 | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 12. Jan. 2007 18:23  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo an Alle, da ich ziemlich neu in der Makro umgebung bin hänge ich an einemWahrscheinlich relativ kleinem Problem.....
 Ich möchte in einem Produkt ein Makro nur ein Bestimmtes Part (das in dem Produkt vorhanden ist) anwenden über eine User Selction habe ich das bisher nicht hinbekommen vielleicht kann mir ja jemand hierbei helfen. Mfg Akrenz
         Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lusilnie Mitglied
 
 
     
 
      Beiträge: 1486Registriert: 13.07.2005
 |    erstellt am: 12. Jan. 2007 23:34  <-- editieren / zitieren -->    Unities abgeben:           Nur für akrenz   
  Hallo akrenz, ich hoffe, ich interpretiere Dich richtig!   Wenn du Dich vom Part-Dokument "herunter hangelst", sollten die nachfolgenden Befehle des Macros nur darauf Anwendung finden.
 Du müsstest also so starten:
 Code:Allerdings kann es noch Probleme geben, wenn das Part nicht im "DesignMode" geladen ist. Doch dazu gibt es schon einige Beiträge im Forum, Du kannst also dazu die Such-Funktion bemühen!Dim partDoc As PartDocument
 Set partDoc = CATIA.Documents.Item("Das_ist_der_PartName.CATPart")
 Dim usedPart As PartSet usedPart = partDoc.Part
 ... 
   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 | 
                        | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 15. Jan. 2007 09:17  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Lusilnie und alle anderen, der Ansatz ist schon nicht schlecht aber ich habe noch eine Farge.... Kann ich das Set partDoc = CATIA.Documents.Item("Das_ist_der_PartName.CATPart")
 nicht über eine Variable oder UserSelction vornehmen??Der Hintergrund ist das ich Makro auf verschiedene Parts im Product anwenden möchte...
 Vielen Dank für eure Hilfe..... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lusilnie Mitglied
 
 
     
 
      Beiträge: 1486Registriert: 13.07.2005
 |    erstellt am: 15. Jan. 2007 20:56  <-- editieren / zitieren -->    Unities abgeben:           Nur für akrenz   | 
                        | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 16. Jan. 2007 19:06  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Lusilnie und alle anderen.... Ich glaube ich bin echt zu ..... dafür habe jetzt den ganzen Tag dran Probiert und ich komme einfach nicht zurecht.... Kannst du oder Ihr mir vielleicht noch ein bischen unter die Arme greifen??? Das wäre echt nett Mfg AKrenz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lusilnie Mitglied
 
 
     
 
      Beiträge: 1486Registriert: 13.07.2005
 |    erstellt am: 16. Jan. 2007 20:43  <-- editieren / zitieren -->    Unities abgeben:           Nur für akrenz   
  Hallo akrenz, prinzipiell kann ich das schon, doch ich sperre mich dagegen, für andere zu programmieren! Also: Stell mal den Code rund um die Stelle, wo Du nicht weiter kommst, hier ein und beschreibe Dein Problem (Was hast Du. Was brauchst Du. Womit willst Du weitermachen...). Dann schau ich (oder ein anderer) mal, was falsch ist bzw. wie wir Dir weiterhelfen können. Aber: Du musst schon eine Vorleistung bringen! 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 | 
                        | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 17. Jan. 2007 16:07  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Lusilnie und alle anderen Sorry wenn da wohl ein Missverständniss vorlag. Ich wollte ja nicht das mir jemand ein Makro schreibt ich wollte mich nur auf meinen vorherigen Beitrag beziehen mit der übergabe der Variablen.... Aber hier habe ich jetzt ein Auszug von meinem bisherigen Script und eine Fehlermeldung angehängt... Dim Usersel1 As SelectionSet Usersel1 = CATIA.ActiveDocument.Selection
 Usersel1.Clear Dim E As AnyObjektE = Usersel1.SelectElement2(Was, "Part waehlen", True)
 If E = "Normal" Then 	Dim partdocucemt1 As PartDocumentSet partdocument1 = CATIA.Documents.Item(1)
 	Dim part1 As PartSet part1 = partdocument1.Part
 ich Hoffe das mir hier jemand weiterhelfen kann.... MfgAkrenz
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Proofin Mitglied
 Dpl.Ing
 
   
 
      Beiträge: 208Registriert: 24.11.2004
 |    erstellt am: 17. Jan. 2007 16:22  <-- editieren / zitieren -->    Unities abgeben:           Nur für akrenz   
  Hi Akrenz, wenn ich das richtig verstanden hab willst du ein Part in deinem Product auswählen lassen.Dazu solltest du nach der Selektion auch die Werte deiner Selektion verwenden und nicht die aus der Catia Dokumentliste.
 Deshalb sollte dein Code so aus sehen: Dim Usersel1 As SelectionSet Usersel1 = CATIA.ActiveDocument.Selection
 Dim Was(0)Was(0) = "Part"
 Dim part1 As Part Usersel1.Clear Dim EE = Usersel1.SelectElement2(Was, "Part waehlen", True)
 If E = "Normal" ThenSet part1 = Usersel1.Item(1).Value
 End If
 GrußProofin
 [Diese Nachricht wurde von Proofin am 17. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 17. Jan. 2007 18:33  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Nochmal erstmal vielen Dank für die Antwort.... aber ich bin wahrscheinlich nicht geeignet um ein Makro zu Schreiben. Jetzt habe dank eurer Hilfe die Selektion hinbekommen und stolpper schon wieder über das nächste Problem.... Wenn ich jetzt in meinem Selektiertem Part ein Element suchen lassen will dann sucht er trotzdem wieder in allen Parts die in dem Produkt geladen sind.... Hier mein Code:Dim Usersel1 As Selection
 Set Usersel1 = CATIA.ActiveDocument.Selection
 Dim Was(0) Was(0) = "Part"
 Dim part1 As Part Usersel1.Clear Dim E
 E = Usersel1.SelectElement2(Was, "Part waehlen", True)
 If E = "Normal" Then 	Set part1 = Usersel1.Item(1).Value     Dim selection1 As selectionSet selection1 = part1.Selection
 selection1.Search "Name=Material_Vector ,all"
 iaCount = selection1.Count
 Danke nochmal Mfg Akrenz
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lusilnie Mitglied
 
 
     
 
      Beiträge: 1486Registriert: 13.07.2005
 |    erstellt am: 17. Jan. 2007 19:52  <-- editieren / zitieren -->    Unities abgeben:           Nur für akrenz   
  Hallo akrenz, mit dem Code ist es kein Problem, Dir zu helfen. Zuvor noch eine Info: Wenn ich mich recht entsinne, ist die "Selektion" bloß pro "Active_Document", also "Fenster", möglich. Um nun in Deiner Selektion zu suchen, musst Du im "Search" anstelle von "..,all" nur "..,sel" (am Ende!) einsetzen, dann sucht CATIA innerhalb der bestehenden Selektion. 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 | 
                       
 | akrenz Mitglied
 CAD-Konstrukteur
 
  
 
      Beiträge: 15Registriert: 27.12.2006
 |    erstellt am: 18. Jan. 2007 09:58  <-- editieren / zitieren -->    Unities abgeben:            |