Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Reihenfolge der Subelemente eines Geosets

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:  Reihenfolge der Subelemente eines Geosets (1785 mal gelesen)
N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 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

Hallo zusammen,

ich möchte eine Baumstruktur als Result exportieren. Hierbei soll die komplette Baumstruktur erhalten bleiben. Paste Special As Result übernimmt nur das oberste Geoset, deshalb möchte ich elementweise vorgehen.
Allerdings wie bekomme ich die richtige Reihenfolge der Subelemente eines Geoset in ein Objekt Array?
Catia zerlegt die einzelnen Elemente eines Geosets nach HybridBodies, HybridShapes und HybridSketches und somit geht die Reihenfolge verloren.
Hat jemand eine Idee?

Vielen Dank 

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

xam0560
Mitglied
Konstruktion / Administration


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

Beiträge: 445
Registriert: 11.08.2008

erstellt am: 11. Feb. 2014 09:45    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 N2high 10 Unities + Antwort hilfreich

Hi,


dies ist ganz einfach, klick auf dein gewünschtes GeoSet, RMT --> Objekt"XYZ" --> Kinder neu ordnen.


------------------
Gruß,


Maximilian

[Diese Nachricht wurde von xam0560 am 11. Feb. 2014 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 09: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 N2high 10 Unities + Antwort hilfreich

Moin,

also ich hab mir mal kurz irgendein Part erstellt. Im Partbody gibts nen Pad1 (sketch1) und ein Pocket1(sketch2). Parallel zum PartBody gibts ein Geoset mit nem Punkt1 und ner Linie1.
Jetzt hab ich mal geguckt, ob ich irgendwo die Reihenfolge finden kann.
Unter Part.Parameters scheint es die richtige Reihenfolge zu geben, ABER hier gibt es pro Element sehr viele Parameter.
Gefundene Reihenfolge:
Sketch1
Pad1
Sketch2
Pocket1
Punkt1
Linie1

Parameter-Liste hat eine angezeigte Länge von 56 Einträgen.
Vielleicht hilft es dir aber trotzdem.

Gruß
Hamlet

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 09:49    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

Autosort liefert mir leider nicht die gewünschte Reihenfolge.
Ich möchte das Makro für jede benutzerdefinierte Struktur nutzbar machen

@Hamlet
danke, habe das ganze probiert.
Die Struktur ist die richtige. Jedoch konnte den Geosetnamen der einzelnen Elemente nicht finden.
Die Items beinhalten nur die Subelemente bei mir.

Hat jemand noch eine Idee?

[Diese Nachricht wurde von N2high am 11. Feb. 2014 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 10:08    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 N2high 10 Unities + Antwort hilfreich

Den GeoSet-Namen findest du im Namenspfad des jeweiligen Elements.
z.B.:
Part1\GeoSet1\Line.1\xxx
Oder
Part1\PartBody\Sketch.1\xx

Den String musste dann nur abfragen und überprüfen.
Oder hab ich dich falsch verstanden?

Gruß
Hamlet

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 10:25    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


Unbenannt.JPG

 
ich habe versucht über Parent bzw. Parent.Parent an den Namen des Geosets zu kommen. Hier wird er nicht angezeigt.
Wo finde ich den Namenspfad?

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

xam0560
Mitglied
Konstruktion / Administration


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

Beiträge: 445
Registriert: 11.08.2008

erstellt am: 11. Feb. 2014 10:42    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 N2high 10 Unities + Antwort hilfreich

Spinn ich, oder steh ich auf dem Schlauch? Du willst doch nur dein Geoset sortieren oder? HÄ?  

------------------
Gruß,


Maximilian

[Diese Nachricht wurde von xam0560 am 11. Feb. 2014 editiert.]

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 10:50    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

ich möchte ein Geoset als Result in eine neues Part kopieren. Soweit kein Problem.
Die Struktur muss dabei die gleiche bleiben, deshalb muss ich elementweise vorgehen (as Result nimmt die Struktur nicht mit, wenn weiter Geosets enthalten sind)
Das Problem ist wie bekomme ich die korrekte Reihenfolge der Subelemente eines Geosets von verschiedenen Elementen, damit ich elementweise vorgehn kann.
Autosort scheidet aus.

[Diese Nachricht wurde von N2high am 11. Feb. 2014 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 11:12    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 N2high 10 Unities + Antwort hilfreich

Hi,

also wenn ich mir mein Part angucke, dann "Parameters" und anschließend z.B. Item 1 öffne,
dann steht als Name (von Item 1): "Part1\PartBody\Sketch.1\Activity"

Gruß
Hamlet

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 11:54    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 jetzt hab ichs gecheckt  

das auslesen der Reihenfolge ist ein wenig kompliziert, aber geht.
Hab mal einen Prototyp gebaut:

Code:
Sub testv3()

    Dim partDocument1 As PartDocument
    Dim part1 As Part
    Dim product1 As Product
    Dim parameters1 As Parameters
   
    Set partDocument1 = CATIA.ActiveDocument
    Set part1 = partDocument1.Part
    Set product1 = partDocument1.Product
    Set parameters1 = part1.Parameters
   
    Dim search_str As String
    search_str = "Geometrical Set.1"
   
    Dim name_current_item As String
    Dim name_subelem_unsort() As String
    Dim j As Integer
    j = 1 'Laufvariable des Array name_subelem_unsort
    Dim place_str_start As Integer
    Dim temp_str As String
   
    For i = 1 To parameters1.Count
   
        name_current_item = parameters1.Item(i).Name
        place_str_start = InStr(name_current_item, search_str)
       
        'Wenn search_str gefunden
        If place_str_start > 1 Then
            ReDim Preserve name_subelem_unsort(1 To j)
            temp_str = Mid(name_current_item, place_str_start + Len(search_str) + 1)
            name_subelem_unsort(j) = Left(temp_str, InStr(temp_str, "\") - 1)
            j = j + 1
        End If
   
    Next
   
    'Array name_subelem_unsort filtern --> jedes Element nur einmal
    Dim name_subelem() As String
    Dim m As Integer
    m = 1 'Laufvariable des Array name_subelem
   
    For n = 1 To UBound(name_subelem_unsort)
   
        If n = 1 Then
            ReDim Preserve name_subelem(1 To 1)
            name_subelem(n) = name_subelem_unsort(n)
        Else
            If name_subelem(m) <> name_subelem_unsort(n) Then
           
                ReDim Preserve name_subelem(1 To (m + 1))
                name_subelem(m + 1) = name_subelem_unsort(n)
                m = m + 1
            End If
        End If

    Next

End Sub


Im Array name_subelem stehen dann die Namen

[Diese Nachricht wurde von N2high am 11. Feb. 2014 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 13:04    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 N2high 10 Unities + Antwort hilfreich

Freut mich dass es geklappt hat! 

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 13:38    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

mhh das Makros funktioniert einwandfrei solange sich in dem zu untersuchenden Geoset nicht ausschließlich Results befinden.
Besteht ein Geoset nur aus Results findet das Makro es nicht, da es keine Parameters gibt.
Hat noch jemand einen Tipp?

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 13:46    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 N2high 10 Unities + Antwort hilfreich

Kannste mal ein Beispiel-Part hochladen bei dem es nicht klappt?

Gruß
Hamlet

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 11. Feb. 2014 14: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


Part4.CATPart

 
anbei die Datei.
Geometrical Set.1 & 2 sind absolut gleich, nur einmal Parametrisch und einmal als Result.
mit 1 funktioniert es, mit 2 nicht.

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 11. Feb. 2014 14:33    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 N2high 10 Unities + Antwort hilfreich

Hmmm,

also gefunden hab ich die Elemente unter "Parameters" schon. Nur leider steht in "name" nicht mehr der gesamte Pfad sondern nur noch der eigentliche Element-Name, wie z.B. Point.2. (es gibt auch nur noch einen parameters-eintrag pro result-element)
Wenn ich allerdings direkt in Catia auf die Properties von "Point.2" gehe, steht da unter "Current Selection" der korekte Namenspfad...
Leider weiß ich nicht, wie man da rankommt.
Möglicherweise musste du deine Produktstruktur rekursiv durchlaufen und immer wenn du auf der untersten Ebene angekommen bist, eine Selektion durchführen.
Möglicherweise gibt es bei der "Selection"-Funktion andere Möglichkeiten an den Pfad ranzukommen. (Kenn mich mit Selection leider nicht soooo gut aus)

Gruß
Hamlet

[Diese Nachricht wurde von Hamlet am 11. Feb. 2014 editiert.]

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 13. Feb. 2014 11: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

habe jetzt eine Lösung für mein erstes Problem gefunden:
Enthält ein Geoset nur Results erstelle ich in diesen einen Parametrischen Punkt. Somit taucht das Geoset in der Liste auf.
Diese Punkte lösche ich in meinem ZielPart am Ende wieder.

Jetzt habe ich ein neues Problem:
Ich muss meine Struktur komplett durchlaufen.
Hat das Master-Geoset noch weitere Sub-Geosets oder Sub-Sub-Geosets usw. muss ich die Logik auf dieses auch anwenden. Sprich meine Schleife erneut starten. Damit es für eine beliebige Struktur möglich ist.
Ist ein Geoset kopiert soll es zum nächsten Element springen. Das Programm muss also wissen wo es davor war.
Jetzt weiß ich nicht, wie ich das am dümmsten anstelle.

Hier mein erster Entwurf:

Code:
Sub test()

    Set partDocument1 = CATIA.ActiveDocument
    Set PartGrundmodell = partDocument1.Part
   
    Dim geoset_master As String
    geoset_master = "Geoset1"
    Dim subelements01() As String
    subelements01 = z_functions.subelements(Part1, geoset_master)
   
    Dim oCurrent As Object
    For i = 1 To UBound(subelements01)
        Set oCurrent = PartGrundmodell.FindObjectByName(subelements01(i))
        type_oCurrent = TypeName(oCurrent)
       
        If type_oCurrent = "HybridBody" Then
        'Fall Geoset
            If oCurrent.HybridBodies.Count > 0 Then
            'weitere Subgeosets enthalten
            'Schleife mit Sub-Subelements durchlaufen --> wie???
                subelements02 = z_functions.subelements(Part1, oCurrent.name)
            Else
            '-->Geoset as Result kopieren
           
            End If
        ElseIf type_oCurrent = "Sketch" Then
        'Fall Sketch
        '-->Disassemble & Copy
        Else
        'Sonstiger Typ
        '-->Copy as Result
       
        End If
    Next


End Sub



[Diese Nachricht wurde von N2high am 13. Feb. 2014 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 13. Feb. 2014 13:14    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 N2high 10 Unities + Antwort hilfreich

Ich würde eine extra-Funktion oder Sub schreiben.
Dann kannste dein Part rekursiv durchlaufen.

Deiner Funktion übergibst du beispielsweise ein Geoset.

Sub rekursiv (Dim oGeo as HybridBody)

Die Funktion fragt dann alle HybridShapes ab, welche im GeoSet sein.
Anschließend prüfst du, ob es noch einen HybridBody gibt, wenn ja wird dieser an durch Funktionsaufruf wieder übergeben.
Das Makro erstellt dann automatisch eine neue Instanz der Funktion und überprüft das GeoSet des nächsten Levels.
Bis es keine GeoSets mehr gibt und auch alle HybridShapes gefunden worden sind.

Hoffe ich hab mich nicht zu umständlich ausgedrückt. ^^'

Gruß
Hamlet

[Diese Nachricht wurde von Hamlet am 13. Feb. 2014 editiert.]

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 13. Feb. 2014 13:38    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

gute Idee. Der Punkt "Bis es keine GeoSets mehr gibt und auch alle HybridShapes gefunden worden sind." ist mir noch unklar.
Mein Problem ist das zurückspringen. Wenn eine Sub-Ebene erfolgreich abgearbeitet ist, muss das Makro wieder in die nächst höhere Ebene zurückspringen. Die Prozedur kann dann beim nächsten Element erneut beginnen. Aber woher weiß das Makro was es schon durchlaufen hat. Die Elemente sind ja nach wie vor da (Copy)
Ich steh grad auf dem Schlauch

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 13. Feb. 2014 13:54    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 N2high 10 Unities + Antwort hilfreich

Wenn ich Catia dahingehend richtig verstanden habe, funktioniert es wie folgt.

Sub rekursiv (Dim oGeo as HybridBody)

- Alle HybridShapes im GeoSet oGeo auslesen
- Gibt es Hybrid Bodies?
-> JA: Dann rekuriv (oGeo.Hybridbodies.Item(1))
-> NEIN: dann Ende

End Sub

Jetzt fängst du mit deinem Part an und rufst das erste mal die Sub "rekusiv" auf.
(Das ist die 1. Instanz -> alles darin enthaltenen Variablen [wie z.b. Laufvariablen für Schleifen] sind auf diese Instanz festgelegt)
Nun wird ein Unter-GeoSet gefunden, die if-Abfrage greift ein und startet wieder die Sub "rekursiv".
(Das ist dann die 2. Instanz)

PartBody                                         'Start Makro
     -> Geo1                                      'Sub "rekusiv" wird benutzt => 1. Instanz
          -> Punkt1                              'HybridShape wird gefunden
          -> Geo2                                 'Unter-GeoSet wird gefunden, also wieder rekursiv starten => 2. Instanz
               -> Punkt2                         'HybridShape wird gefunden, aber kein weiteres GeoSet, also ist die 2. Instanz beendet
                                                       'es geht also wieder in die 1. Instanz zurück
          -> Geo3                                 'In der 1. Instanz, wird ein zweites GeoSet gefunden und wieder startet Sub "rekursiv"
               -> Linie1                          'etc. pp.

Schlauch frei, bzw. Fuß weg?

Gruß
Hamlet

[Diese Nachricht wurde von Hamlet am 13. Feb. 2014 editiert.]

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

N2high
Mitglied



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

Beiträge: 44
Registriert: 09.09.2013

Catia V5R19 SP9

erstellt am: 17. Feb. 2014 15:10    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 habs zum laufen bekommen 

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