Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Formel prüfen ob bereits existiert

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:  Formel prüfen ob bereits existiert (575 mal gelesen)
SeeCa
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 28.01.2021

Hardware: HP ZBook 15u G3, i7, 16GB, AMD Firepro W4190M
Software: Diverse CATIA Versionen

erstellt am: 17. Jun. 2021 20:55    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 Gemeinde,
ich möchte mit einem Makro diverse Parameter und Formeln erstellen, sowie diese miteinander Verknüpfen. Das funktioniert auch soweit ganz gut, bis auf, dass der Haken beim "Update relation at global update command" nicht eingehakt ist. Vielleicht weiß jemand auch hier die Lösung.
Nun komme ich aber zu dem Punkt, dass ich bereits bestehende Formeln abprüfen möchte, damit diese nicht erneut erzeugt werden. Hier mein aktueller Stand. Dies funktioniert entsprechend bei den Parametern einwandfrei.
Code:

Function Createformular(Params As Parameters, boolIsPrt As Boolean, PrtDoc As PartDocument, ProdDoc As ProductDocument, Relas As Relations) As Integer
   
    Dim Param3DVol      As RealParam
    Dim Param3DSurf    As RealParam
    Dim Param3DCoSurf  As RealParam
    Dim Formu          As Formula
   
    If boolIsPrt Then
       
    'Create 3D Part Volume Formula
    If CheckExistsRela(Relas, "Volume_cm3") = False Then
        Set Param3DVol = PrtDoc.Part.Parameters.Item(PrtDoc.Part.Name & "\Properties\AD_WM_Volume_cm3")
        Set Formu = PrtDoc.Part.Relations.CreateFormula("Volume_cm3", "", Param3DVol, "round(smartVolume(`" & PrtDoc.Part.MainBody.Name & "`)," & """" & "cm3" & """" & ",2)/1cm3")
    End If

    'Create 3D Part Surface Formula
    If CheckExistsRela(Relas, "Surface_mm2") = False Then
        Set Param3DSurf = PrtDoc.Part.Parameters.Item(PrtDoc.Part.Name & "\Properties\AD_WM_Surface_mm2")
        Set Formu = PrtDoc.Part.Relations.CreateFormula("Surface_mm2", "", Param3DSurf, "round(smartWetarea(`" & PrtDoc.Part.MainBody.Name & "`)," & """" & "mm2" & """" & ",2)/1mm2")
    End If
    'Create 3D Part Coated Surface Formula
    If CheckExistsRela(Relas, "CoatedSurface_mm2") = False Then
        Set Param3DCoSurf = PrtDoc.Part.Parameters.Item(PrtDoc.Part.Name & "\Properties\AD_WM_CoatedSurface_mm2")
        Set Formu = PrtDoc.Part.Relations.CreateFormula("CoatedSurface_mm2", "", Param3DCoSurf, "round(1mm ," & """" & "mm2" & """" & ",2)/1mm2")
        Formu.Deactivate
        Param3DCoSurf.Value = 0#
    End If
    End If
End Function

Function CheckExistsRela(Relas As Relations, sName As String) As Boolean

    Dim iRelas          As Integer
   
    'check if relation already exist
    For iRelas = 1 To Relas.Count
   
        If Right(Relas.Item(iRelas).Name, Len(sName) + 1) = ("\" & sName) Then
       
            CheckExistsRela = True
            Exit Function
       
        End If
   
    Next
   
    CheckExistsRela = False
   
End Function


Vielen Dank schonmal für eure Hilfe 

Schöne Grüße

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

Lionel Hutz
Mitglied



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

Beiträge: 363
Registriert: 26.03.2014

CATIA V5 R20

erstellt am: 18. Jun. 2021 07: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 SeeCa 10 Unities + Antwort hilfreich

Habe ich die Frage verpasst?
Wo ist denn die Beschreibung des Problems?
Wenn du Probleme hast festzustellen, ob eine Formel existiert, könntest du andersherum prüfen, ob ein Parameter mit einer Formel verknüpft ist.

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

SeeCa
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 28.01.2021

Hardware: HP ZBook 15u G3, i7, 16GB, AMD Firepro W4190M
Software: Diverse CATIA Versionen

erstellt am: 18. Jun. 2021 09:44    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 Lionel,
das Problem ist, dass diese Vorgehensweise irgendwie nicht mit Formeln funktioniert. Trotz der Abfrage erstellt das Makro die Formeln als "deaktiviert". Vielleicht ist in dem Makro auch irgendwo ein Fehler, aber leider finde ich diesen nicht.
Die Parameter können bereits ohne Formel vorhanden sein, daher brauche die Abfrage auf die Formel.
Sonnige Grüße

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 18. Jun. 2021 11:57    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 SeeCa 10 Unities + Antwort hilfreich

Hallo SeeCa,

die Formel kannst du über  ".OptionalRelation" abfragen.

Code:

Set oFormula1 = strParam1.OptionalRelation 'Verknüpfte  Relation zu Parameter suchen
                orelations.Remove (oFormula1.Name) 'Verknüpfte  Relation zu Parameter löschen

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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