| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung
|
Autor
|
Thema: Element von Part zu Part kopieren (2531 mal gelesen)
|
geekv5 Mitglied Konstrukteur
 
 Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 25. Mai. 2012 11:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo allerseits, habe mir eine kleine Prozedur geschrieben um ein Element von einem Part zum anderen zu kopieren, leider funktioniert sie nur wenn die Parts in eigenständigen Fenstern geöffnet sind, ist ein Part nur im Produkt geöffnet bringt er mir die Meldung, dass kein CSO Element übrig bleibt.. Ich bin mir ziemlich sicher, dass ich die Selektion als Selektion des Obersten ProductDocuments setzen muss, allerdings weiß ich nicht wie ich vom Part oder Partdocument dahin komme.. ActiveDocument.Selection geht nicht, da das Fenster im Hintergrund ist.. Eine andere Variante, die mir einfällt, ist das Fenster hervorzuholen, dazu müsste ich allerdings wissen, wie ich herausfinde, in welchem Fenster das Part steckt.. Hier mal meine Prozedur: Code:
Public Sub CopyPaste2(PartQuelle As Part, PartZiel As Part, Element As Object, PTyp As String) Dim part1 As Part Dim partDocument1 As PartDocument Dim selection1 As Selection Select Case TypeName(Element) Case "Body" If Element.Shapes.Count = 0 Then Call HilfsGeometrie2(PartQuelle, Element) End If End Select Set part1 = PartQuelle Set partDocument1 = part1.Parent.Product.ReferenceProduct.Parent Set selection1 = partDocument1.Selection selection1.Clear selection1.Add Element CATIA.StartCommand "Lokale Aktualisierung" selection1.Copy Set part1 = PartZiel Set partDocument1 = part1.Parent.Product.ReferenceProduct.Parent Set selection1 = partDocument1.Selection selection1.Clear selection1.Add part1 selection1.PasteSpecial PTyp End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Mai. 2012 14:38 <-- editieren / zitieren --> Unities abgeben:          Nur für geekv5
|
geekv5 Mitglied Konstrukteur
 
 Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 25. Mai. 2012 15:15 <-- editieren / zitieren --> Unities abgeben:         
Hm, habe den Thread gelesen, allerdings komme ich damit glaube ich nicht weiter.. Mein Problem ist ja, dass das QuellPart in einem Produkt steckt, welches nicht das aktive Dokument ist, in meinem Fall ist das ZielPart das aktive Dokument.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Mai. 2012 15:40 <-- editieren / zitieren --> Unities abgeben:          Nur für geekv5
Servus AFAIR kann per Makro nicht direkt feststellen, welches Part innerhalb ein Products aktiv ist. Das aktive Dokument ist immer das Product. Das heißt auch, du hast nur eine Selection hast. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
geekv5 Mitglied Konstrukteur
 
 Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 25. Mai. 2012 15:49 <-- editieren / zitieren --> Unities abgeben:         
Hm glaube ich habe mich undeutlich ausgedrückt  - Im CATIA sind zwei Fenster geöffnet - Fenster1: Produkt mit QuellPart - Fenster2: ZielPart - Fenster2 ist im Vordergrund ActiveDocument.Selection ist ja dann die Selektion des ZielParts.. Meine Idee war jetzt, dass Fenster1 in den Vordergrund zu holen, allerdings weiß ich nicht, wie ich vom QuellPart auf den Namen des Fensters komme, in dem es Steckt.. BTW . das aktive Part kann man doch so feststellen: CATIA.ActiveDocument.Selection.Search ("'Part Design'.Teil, in") Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Mai. 2012 17:08 <-- editieren / zitieren --> Unities abgeben:          Nur für geekv5
Servus Wenn du den Namen des Parts kennst (des Dokumentes) kannst du direkt über die Documents-Collection darauf zugreifen (Catia.Documents.Item("MeinZielPart.CATPart")) Oder benutzt die Windows-Collection um das andere Fenster in den Vordergrund zu holen. (zB Catia.Windows.Item("MeinFenster").Activate oder ggf auch .ActivateNext) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
 
 Beiträge: 415 Registriert: 19.05.2007
|
erstellt am: 25. Mai. 2012 17:22 <-- editieren / zitieren --> Unities abgeben:          Nur für geekv5
Hallo, so hatte ich das mal Gelöst: du könntest die Fenster abfragen, danach minimieren. Und dann die Fenster wieder Ansprechen, wenn du sie brauchst (wieder maximieren). Code habe leider nicht Griffbereit. (Hatte den Recorder benutzt) Edit: bgrittmann war wieder schneller ------------------ Sei Schlau bleib Dumm !!?!! [Diese Nachricht wurde von K.Siebert am 25. Mai. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |