Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  überprüfen und eventuelles anlegen von Geosets, wenn diese nicht vorhanden sind.

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:  überprüfen und eventuelles anlegen von Geosets, wenn diese nicht vorhanden sind. (1052 mal gelesen)
Beny
Mitglied
Konstrukteur - Standardisierung


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

Beiträge: 36
Registriert: 15.11.2010

erstellt am: 14. Mrz. 2011 10:20    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 Leute,


Sitz hier gerade vor einem kleinen problem,

Und zwar habe ich hier ein Startpartdocument von einem unserer OEM's. In diesem befinden sich Geometrische Sets.
Der User soll jetzt ein beliebiges geometrisches Set in der Struktur auswählen.

Das Makro soll nun prüfen ob sich innerhalb des Geometrischen Sets (vom User ausgewählt) z.b. an erster Stelle ein Geosets mit dem Namen "Test1" befinden.

der Hintergrund ist, dass das Makro erst prüfen soll ob ein bestimmtes Geoset (über dem Namen fix) an einer bestimmten Stelle innerhalb des vom User ausgewählten Geosets befindet. wenn es bereits vorhanden ist, soll das Makro dieses nehmen, wenn nicht muss man das anlegen lassen. (über eine If-Then Schleife)

momentan weiß ich leider nicht wie ich so etwas realisieren kann...

man kann ja über .Item einmal dem Namen abfragen und die Position innerhalb des Geometrischen Sets, aber kann man das auch irgendwie kombinieren? (bzw. wie müsste ich das dann einbinden?)


hab leider noch keine Codeschnibsel, da ich selbst noch am probieren bin.

soweit ich bischen was hab werd ichs hier nachtragen.

MFG

Beny

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 14. Mrz. 2011 14:52    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 Beny 10 Unities + Antwort hilfreich

Hallo,

ich sehe zwei Wege (Voraussetzung du hast den von User ausgewählten Set schon als Objekt):
1) Alle Item mit eine For-Schleife durchlaufen und die Name prüfen. Wenn du den gesuchten hast, mit Exit For aus der Schleife aussteigen
2) Set .... .Item("GesuchteName") in Fehlerprüfung packen (On Error Resume Next) und nach diesen auf Fehler prüfen. Ist der Set vorhanden, hast du es. Hast du den Fehler gefangen, kannst du den Set anlegen.
Letztere ist wahrscheinlich schneller und hat mir schon viel geholfen.
Erste ist etwas eleganter.

GeoSet ist ein HybridBody unter PartDocument.Part.Hybridbodies. .Count liefert dir, ob darunter etwas zu suchen gibt.

Beispiel für Fall 2:

Code:
          on error resume next
            Set hybridbodytemp = hybridBodies1.Item(sRob & "_" & sOP)
            if err.number <>0 then
                Err.Clear
                Set hybridbodytemp = hybridBodies1.Add()
                hybridbodytemp.name= sRob & "_" & sOP
            end if
            on error goto 0

Für Fall 1) habe ich nur ein Beispiel mit Parameter, der Prinzip ist aber erkennbar:

Code:
    Dim oParam As Parameter
    Dim oVersion As StrParam
    Dim blnVersionFound As Boolean
    blnVersionFound = False
    For Each oParam In oPart.Parameters.RootParameterSet.DirectParameters
        If EndsWith(oParam.Name, "Version") Then
            Set oVersion = oParam
            blnVersionFound = True
            Exit For
        End If
    Next   

Gruß,
Zoltan

[Diese Nachricht wurde von zoltan.bekesi am 14. Mrz. 2011 editiert.]

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

Beny
Mitglied
Konstrukteur - Standardisierung


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

Beiträge: 36
Registriert: 15.11.2010

erstellt am: 15. Mrz. 2011 09: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

Ohh das ist natürlich auch ne möglichkeit ^^

auf diese Lösung bin ich nich gekommen vielen lieben dank :-)

MFG beny

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