Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Prüfen ob Parameter vorhanden

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:  Prüfen ob Parameter vorhanden (1967 mal gelesen)
shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 28. Jan. 2015 17: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

Ich glaube dieses Thema gibt es schon aber ich finde es einfach nicht mehr oO.

Es geht um folgendes. Ich habe ein Makro geschrieben das parameter im Part und Produkt erstellt. In beiden Umgebungen soll geprüft werden ob der Parameter bereits vorhanden ist. Bei den Parts klappt das top. Problem ist nun wenn das Product Parts enthält in denen die Parameter drin sind, weil das makro alle Parameter prüft und nicht nur die direkt im Product. Wie kann ich NUR die Parameter im aktuel geöffneten Product prüfen ohne die enthaltenen Parts/Products mit zu prüfen?! Hier der bisherige Code:

'Prüfen ob ParameterSet bereits vorhanden ist (PART)
   If TypeName(oDocument) = "PartDocument" Then
       Set part = oDocument.Part
       Set Parameters = part.Parameters
          Parameter_exist = False

      For i = 1 To Parameters.Count
      Z = InStr(1, Parameters.Item(i).Name, "Pos_Nr.")
      If Z <> 0 Then
            Parameter_exist = True
        End If
      Next
  End If

'Prüfen ob ParameterSet bereits vorhanden ist (PRODUCT)
  If TypeName(oDocument) = "ProductDocument" Then
  Set product = oDocument.product
  Set Parameters = product.Parameters

    Parameter_exist = False

  For i = 1 To Parameters.Count
  Z = InStr(1, Parameters.Item(i).Name, "Pos_Nr.")
  If Z <> 0 Then
        Parameter_exist = True
      End If
    Next
  End If

          If Parameter_exist Then

    Box = MsgBox("Die Stücklistenparameter sind bereits vorhanden!" & vbLF & _
                  "---------------------------------------------------------"  & vbLF & _
                  "Makro wurde abgebrochen.", 16, "Parameter vorhanden!!!")
        Exit Sub
    End If
'----------------------------------------

'----------------------------------------
'RootParameterSet ansprechen und SubParameterSet erstellen (PART)
  If TypeName(oDocument) = "PartDocument" Then
  Set part = oDocument.Part

      Set RootParameterSet = part.Parameters.RootParameterSet.ParameterSets
      Set NewParameterSet = RootParameterSet.CreateSet("Stuecklistenparameter")

'RootParameterSet ansprechen und SubParameterSet erstellen (PRODUCT)
  ElseIf TypeName(oDocument) = "ProductDocument" Then
  Set product = oDocument.product

      Set RootParameterSet = product.Parameters.RootParameterSet.ParameterSets
      Set NewParameterSet = RootParameterSet.CreateSet("Stuecklistenparameter")

End If

[Diese Nachricht wurde von shoutz000 am 28. Jan. 2015 editiert.]

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. Jan. 2015 18:31    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Meinst du "normale" Parameter direkt im CATProduct-Baum?
Versuch mal:
Code:
dim MeinParameter as Parameter
Set MeinParameter = product.Parameters.RootParameterSet.DirectParameters.Item("NameMeinesParameters")
Gruß
Bernd

PS: ggf darfst du beim Suchen des Parameters über den Namen nur die letzten Zeichen auswerten (vergleiche auch hier)

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 30. Jan. 2015 07:47    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

Yea funzt :-)

Aber anders. Nach deinem Vorschlag sucht das makro direkt nach
Parametern im RootSet. Meine Parameter werden aber in untergeordneten
Sets abgelegt. Ich suche jetzt nach dem untergeordneten Set dann gehts.
Vielen Dank :-)

'Prüfen ob ParameterSet bereits vorhanden ist (PRODUCT)
  If TypeName(oDocument) = "ProductDocument" Then
      Set product = oDocument.product
      Set Parameters = product.Parameters.RootParameterSet.ParameterSets

  Parameter_exist = False

      For i = 1 To Parameters.Count
      Z = InStr(1, Parameters.Item(i).Name, "Stuecklistenparameter")
      If Z <> 0 Then

          Parameter_exist = True

    End If
  Next
End If

      If Parameter_exist Then

            Box = MsgBox("XY")

      Exit Sub
  End If

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