Autor
|
Thema: New from CATPart direkt in CATProduct einfügen (7355 mal gelesen)
|
V5luebbi Mitglied V5'ler
Beiträge: 17 Registriert: 10.10.2007 versch. Systeme, versch. CV5 Umgebungen, Win XP
|
erstellt am: 27. Feb. 2008 15:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, es geht darum ein Startpart mit New from zu erzeugen und in ein bereits vorhandenes Produkt einzufügen. Beim normalen New from wird es mir in einem neuen Fenster geöffnet und man muss es von Hand (Copy/Paste) in das richtige Product kopieren. Das Macro soll mir das Teil aber direkt in ein vom User selektiertes Product einfügen. Macrosprache VBA, CATIA V5 R16 SP06 geplantes Vorgehen: - Macrostart - Selection des Zielproducts durch User - New from von vorgegebenem Startpart - Kopieren des neuen Teils - Einfügen in selektiertem CATProduct (hier gibts die Probleme) - Schließen des Einzelteils Ich habe leider nicht viel Ahnung (und deshalb Probleme) vom Umgang mit Selections. Ich weiß nicht wie ich das vom User selektierte Produkt der Selection fürs Einfügen zuordne. Hier mein bisheriger Code: Code: '*** Macrosprache VBA Sub CATMain() Dim UserSelektion As Object Dim Auswahl(0) Auswahl(0) = "Product" Set UserSelektion = CATIA.ActiveDocument.Selection Ergebnis = UserSelektion.SelectElement2(Auswahl, "Baugruppe wählen!", True) 'VBA.MsgBox "Selektierte Elemente: " & UserSelektion.Count, vbCritical, "Info" If UserSelektion.Count = 1 Then If Ergebnis = "Normal" Then Set oMainProduct = UserSelektion.Item(1) UserSelektion.Clear '*** New from... vom Startpart Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.NewFrom("Pfad zu Startpart.CATPart") '*** Kopieren des neuen CATParts Dim selection1 As Selection Set selection1 = partDocument1.Selection selection1.Clear Dim part1 As Part Set part1 = partDocument1.Part selection1.Add part1 selection1.Copy '*** Einfügen in selektiertes CATProduct Dim selection2 As Selection Set selection2 = CATIA.ActiveDocument.Selection selection2.Clear Dim productDocument1 As Document Set productDocument1 = oMainProduct Dim product1 As Product Set product1 = productDocument1.Product selection2.Add product1 selection2.Paste Else VBA.MsgBox "Abbruch", vbCritical, "Abbruch" End If Else VBA.MsgBox "Bitte genau 1 Element selektieren", vbCritical, "Abbruch" End If End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 28. Feb. 2008 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
Hallo, du benötigst keine Selection. Gehe einfach so vor, wie du es auch manuell machen würdest: * new From (alternativ: Startmodell öffnen, SaveAs Neuer name, Startmodell zu) * neues Modell speichern, schließen * Add as existing Componet * CATProduct speichern * fertig Diese Schritte zeichnet dir sogar der Makro-Recorder auf, sodass du einen Überblick bekommst. Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Feb. 2008 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
|
V5luebbi Mitglied V5'ler
Beiträge: 17 Registriert: 10.10.2007 versch. Systeme, versch. CV5 Umgebungen, Win XP
|
erstellt am: 28. Feb. 2008 13:37 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antworten (da habt Ihr wohl die Mittagspause geopfert), TomTom Dein Vorschlag sollte funktionieren, wenn ich nicht rausfinde wo mein Problem mit der Selection liegt, werde ich versuchen das umzusetzen. Vielleicht hat ja doch noch einer ne Idee zur Selection??? Ich hab es geschafft die User Selektion zu starten
Code: Ergebnis = UserSelektion.SelectElement2(Auswahl, "Baugruppe wählen!", True)
Jetzt fehlt eigendlich nur noch die Weiterverarbeitung der Selection.Gruß V5luebbi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5luebbi Mitglied V5'ler
Beiträge: 17 Registriert: 10.10.2007 versch. Systeme, versch. CV5 Umgebungen, Win XP
|
erstellt am: 03. Mrz. 2008 11:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab die Lösung gefunden. An das selektierte Product kommt man ran mit der Zeile Code: Set oMainProduct = UserSelektion.Item(1).Value
Weiß jemand welchen Objekttyp nun oMainProduct hat? (vorausgesetzt es wurde ein CATProduct ausgewählt) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 03. Mrz. 2008 22:17 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
Hallo V5luebbi, teste es doch selbst mit: Code: MsgBox TypeName(oMainProduct)
Falls Du mit VBA-Editor arbeitest, kannst Du das Script auch nach Deiner Zuweisungs-Zeile stoppen und Dir den Wert von "TypeName(oMainProduct)" anzeigen lassen. 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 |
V5luebbi Mitglied V5'ler
Beiträge: 17 Registriert: 10.10.2007 versch. Systeme, versch. CV5 Umgebungen, Win XP
|
erstellt am: 04. Mrz. 2008 10:53 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 05. Mrz. 2008 06:24 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
Hallo bgrittmann, zum Stichwort UUID: das kommt darauf an, was du vor hast. Ein SaveAs verändert die UUID nicht. Das ist (zumindest bei uns) methodisch so gewollt / vorgeschrieben, d.h. da alle Modelle aus einem Startmodell abgeleitet sind (und die selbe UUID besitzen) kann man grundsätzlich ersteinmal jeden ViewLink (einer CATDrawing auf ein CATPart/CATProduct) umbiegen, ohne das die Zuweisung von CATIA verweigert wird. In welcher Hinsicht siehst du bzgl. der UUID ein Problem? Beim Arbeiten mit einer Datenbank? Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 17. Mai. 2019 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
Hallo Zusammen, wenn ich ein "NewFrom..." mit Makro erstelle, dann kann ich das neue CATPart nicht umbenennen. Kann man die Name irgendwie vorher angeben? Ich möchte mehrere Datei mit "NewFrom..." erstellen, dann letztendlich alles abspeichern. Danke im Voraus! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 17. Mai. 2019 20:48 <-- editieren / zitieren --> Unities abgeben: Nur für V5luebbi
|