Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro für Groups (DMU Navigator)

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:  Makro für Groups (DMU Navigator) (2358 mal gelesen)
Jannis1988
Mitglied



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

Beiträge: 27
Registriert: 19.07.2012

Intel(R) Xeon(R) CPU
X5575 @ 3.07 GHz
15.9 GB RAM
Catia B19SP06HF57

erstellt am: 19. Jul. 2012 14:59    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

Seit längerem versuche ich ein Makro in dem Workbench "DMU Navigator"  zu erstellen.
Leider finde ich nicht viele Befehle zu diesem Bereich.

Ich wär euch sehr dankbar wenn jemand evtl. eine Methodik weiß wie man mit einem Befehl/Funktion,
alle Objekte innerhalb einer Gruppe anwählen kann? (die Anzahl der Parts variert, d.h. es ist eine dynamische Gruppe, es kommen immer wieder neue Parts hinzu und alte werden entfernt)

Ich bin mir nicht sicher ob das möglich ist, da die Group-Applications nur Verlinkungen zu den jeweiligen Parts beinhalten und ich jeweils immer nur die momentan vorhanden Parts erfassen kann.

Zur Vollständigkeit:
Das weitere Vorgehen wäre die angewählten Objekte zu kopieren und in ein neues Product einzufügen. Dieser Schritt ist mir verständlich.

Danke!

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

DasDon
Mitglied
Konstruktuer


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

Beiträge: 169
Registriert: 25.07.2011

R18 SP2. WIN

erstellt am: 19. Jul. 2012 20:11    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 Jannis1988 10 Unities + Antwort hilfreich

Moin Moin,

oGroup.FillSelWithExtract
Fills the selection with all products which can be extracted from the group.

Damit müsste es gehen...

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

Jannis1988
Mitglied



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

Beiträge: 27
Registriert: 19.07.2012

Intel(R) Xeon(R) CPU
X5575 @ 3.07 GHz
15.9 GB RAM
Catia B19SP06HF57

erstellt am: 20. Jul. 2012 13:23    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 Antwort!

Wenn ich unterschiedliche Gruppen habe, wähle ich diese mit einem Makro erst an und lass den Befehl dann erst laufen?
Wie schaut so ein Text ungefähr aus?

Grüße

[Diese Nachricht wurde von Jannis1988 am 20. Jul. 2012 editiert.]

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

DanielFr.
Moderator
Manager


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

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. Jul. 2012 15:26    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 Jannis1988 10 Unities + Antwort hilfreich

Hallo,

Code:

'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------
'-------------------------------------------------Activate Component------------------------------------------------------------------------------------------------------
'Author:    Daniel Frauenrath
'Mail:      daniel.frauenrath@gmail.com
'Release:  20.07.2012
'Version:  1.1
'
'*************************************************************************************************************************************************************************
'<<<<<<<<<<<<<<<<Beschreibung / Discription>>>>>>>>>>>>>>>>>>>>
'**************************************************************************************************************************************************************************
'
'DE: Komponenten Aktivieren (Gruppen (Group) werden direkt unterstuetzt)
'
'
'*************************************************************************************************************************************************************************
'<<<<<<<<<<<<<<<<Veränderungen / Change log>>>>>>>>>>>>>>>>>>>>
'**************************************************************************************************************************************************************************
'Autor:                Datum:          Zeile/Line:          Modul / UserForm:            Anmerkung/Remark:
'--------------------------------------------------------------------------------------------------------------------------
'Daniel Frauenrath      20.07.12            alle                alle                        Änderung für CAD.de
'
'****************************************************************************************************************************************************
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Hauptfunktion>>>>>>>>&g t;>>>>>>>>>>>>>>>>>>>>>>>>
'****************************************************************************************************************************************************

Sub CATMain()

    '***DEKLARATIONEN
    Dim objProdDoc As ProductDocument
    Dim objSel As Object
    Dim strSelFilter(0)
    Dim strSelState As String
    Dim i As Long
    Dim objSelObject As Object
    Dim strSelObjName As String
    Dim objProductCol As New Collection
    Dim objGroupCol As New Collection
    Dim objProdSel As Object
    Dim objSelGroup As Object
    Dim objMsgBoxRes As VbMsgBoxResult
    Dim objRefProduct As Product
   
    '***FEHLERBAHANDLUNG
    On Error GoTo ErrHandler
   
    '***OBJKETE INSTANZIEREN
    Set objProdDoc = CATIA.ActiveDocument
    Set objSel = objProdDoc.Selection
   
    '***KEINE PRESELEKTION VORHANDEN
    If objSel.Count = 0 Then
        strSelFilter(0) = "Product"
        strSelState = objSel.SelectElement3(strSelFilter, "Select an Component / Group | ESC to Cancel", False, CATMultiSelTriggWhenUserValidatesSelection, True)
        If strSelState <> "Normal" Then
            Exit Sub
        Else
            For i = 1 To objSel.Count
                If CATIA.ActiveDocument.Product Is objSel.Item(i).Value And strModus <> "deaktivieren" Then
                    objMsgBoxRes = MsgBox("Das Root-Product wurde selektiert!" + vbNewLine + "Die kann zu einem Absturz der Software führen" + vbNewLine + vbNewLine + _
                                            "Wollen Sie mit der Aktivierung / Deaktivierung fortfahren?", vbQuestion + vbYesNo + vbDefaultButton2, "ACHTUNG!")
                    If objMsgBoxRes = vbNo Then
                        Exit Sub
                    End If
                End If
            Next
        End If
    End If
   
    '***SELEKTION IN ARRAY VERSCHIEBEN
    For i = 1 To objSel.Count
        On Error Resume Next
        Set objSelObject = objSel.Item(i).Value
        If Err.Number <> 91 Then 'Kein TypeName aus Variable auslesbar
            On Error GoTo ErrHandler
            If TypeName(objSelObject) = "Group" Then
                CATIA.StartCommand "Load"
                objGroupCol.Add objSelObject
            ElseIf TypeName(objSelObject) = "Product" Then
                If objSelObject.Products.Count > 0 Then
                    On Error Resume Next
                    Set objRefProduct = objSelObject.ReferenceProduct
                    If Err.Number <> 0 Then
                        CATIA.StartCommand "Load"
                        GoTo ErrHandler
                    Else
                        On Error GoTo ErrHandler
                    End If
                End If
                objProductCol.Add objSelObject
            End If
        Else
            On Error GoTo ErrHandler
            Err.Clear
        End If
    Next
   
    '***SELEKTION LEEREN
    Set objSelObject = Nothing
    objSel.Clear
   
    '***AKTIVIEREN / DEAKTIVIEREN (OHNE GRUPPEN)
    For Each objProdSel In objProductCol
        objSel.Add objProdSel
    Next
    If objSel.Count > 0 Then
        ExecuteFunc strModus
    End If
   
    '***SELEKTION LEEREN
    Set objSelObject = objProductCol
    objSel.Clear
   
    '***ARRAY DURCHLAUFEN UND NACH GRUPPEN SUCHEN
    For Each objSelGroup In objGroupCol
        objSelGroup.FillSelWithExtract
        ExecuteFunc "aktivieren"
    Next
   
'***LAUFZEITFEHLER UND BEENDIGUNG DES SKRIPTES
ErrHandler:
    CATIA.StartCommand "Select objects"
    Exit Sub
   
End Sub

'***FUNKTION ZUM AKTIVIEREN DER GRUPPE
Private Function ExecuteFunc(ByVal strModus As String)

    Select Case strModus
        Case "aktivieren"
            CATIA.StartCommand "Activate Terminal Node"
    End Select

End Function


Das ist ein VBA-Code. Hiermit es es möglich entweder über ein Vorselektion bzw. über eine interaktive Selektion (Während der Makro Laufzeit) entweder Produkte (im Assembly-Kontext werden Parts so benannt) oder eben Gruppen (Group) zu aktivieren. Es werden dabei nur die Bauteile welche in den Gruppen sind aktiviert!

HTH 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Jannis1988
Mitglied



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

Beiträge: 27
Registriert: 19.07.2012

Intel(R) Xeon(R) CPU
X5575 @ 3.07 GHz
15.9 GB RAM
Catia B19SP06HF57

erstellt am: 23. Jul. 2012 09:32    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

Dankeschön, hat mir sehr weitergeholfen!

Viele Grüße Jannis

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