Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  New from CATPart direkt in CATProduct einfügen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  New from CATPart direkt in CATProduct einfügen (7355 mal gelesen)
V5luebbi
Mitglied
V5'ler


Sehen Sie sich das Profil von V5luebbi an!   Senden Sie eine Private Message an V5luebbi  Schreiben Sie einen Gästebucheintrag für V5luebbi

Beiträge: 17
Registriert: 10.10.2007

versch. Systeme, versch. CV5 Umgebungen, Win XP

erstellt am: 27. Feb. 2008 15:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Feb. 2008 12:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

Servus TomTom
Ist hier "SaveAs" sinnvoll? Stichwort UUID.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

V5luebbi
Mitglied
V5'ler


Sehen Sie sich das Profil von V5luebbi an!   Senden Sie eine Private Message an V5luebbi  Schreiben Sie einen Gästebucheintrag für V5luebbi

Beiträge: 17
Registriert: 10.10.2007

versch. Systeme, versch. CV5 Umgebungen, Win XP

erstellt am: 28. Feb. 2008 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von V5luebbi an!   Senden Sie eine Private Message an V5luebbi  Schreiben Sie einen Gästebucheintrag für V5luebbi

Beiträge: 17
Registriert: 10.10.2007

versch. Systeme, versch. CV5 Umgebungen, Win XP

erstellt am: 03. Mrz. 2008 11:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Lusilnie an!   Senden Sie eine Private Message an Lusilnie  Schreiben Sie einen Gästebucheintrag für Lusilnie

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 03. Mrz. 2008 22:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von V5luebbi an!   Senden Sie eine Private Message an V5luebbi  Schreiben Sie einen Gästebucheintrag für V5luebbi

Beiträge: 17
Registriert: 10.10.2007

versch. Systeme, versch. CV5 Umgebungen, Win XP

erstellt am: 04. Mrz. 2008 10:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@ Lusilnie -> die Funktion kannte ich noch nicht, danke.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von imation1999 an!   Senden Sie eine Private Message an imation1999  Schreiben Sie einen Gästebucheintrag für imation1999

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Mai. 2019 20:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für V5luebbi 10 Unities + Antwort hilfreich

Servus

Schon mal nach dem NewFrom ein SaveAs mit dem gewünschten Dateinamen/pfad probiert?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz