Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Regel ändern

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:  Regel ändern (703 mal gelesen)
tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Nov. 2018 07:28    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


screenshot.jpg

 
Moin, 
gibt es eine Möglichkeit, den Inhalt einer bestehenden Rule (Regel) mit Script zu ändern?
KWA Lizenz ist klar. Löschen und neu erstellen (....oPart.Relations.CreateProgram(".....") )
ist auch klar. Aber ändern?
Der ....oRule.Value ist ja nur ein String. Der sollte sich doch auch irgendwie durch String-Manipulation (Replace ...) verändern lassen.
Im VB-Objektkatalog wird mir für die Rule ein .Modify angezeigt (siehe Screenshot)

Ich bekomme es aber nicht hin. Hat das schon mal jemand gemacht

Gruß TomTom

------------------
tomtom1972

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: 06. Nov. 2018 09:37    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 tomtom1972 10 Unities + Antwort hilfreich

Servus TomTom

Ich hab mal was zusammengebastelt was bei mir funktioniert

Code:
Sub CATMain()

Dim part1 As Document
Set part1  = Catia.activeDocument
Dim mass As RealParam
Set lenght = part1.Part.Parameters.CreateDimension("lenght", "LENGTH", 5.)
Dim depth As RealParam
Set depth = part1.Part.Parameters.CreateDimension("depth", "LENGTH", 0.)
Dim selectdepth As Relation
Set selectdepth = part1.Part.Relations.CreateProgram("select_depth","Select depth", "if (lenght>10mm) { depth=2mm } else { depth=1mm }")

MsgBox selectdepth.value

selectdepth.modify("if (lenght>10mm) { depth=2mm } else { depth=10mm }")

MsgBox selectdepth.value

End Sub


Scheinbar ist die PartNumber beim Parameter in der Formel nicht erforderlich (funktionierte aber bei mir auch)

Gruß
Bernd

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

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Nov. 2018 11:19    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 Bernd,
danke dir für deine Antwort.
Mein Problem war scheinbar recht speziell.
Wenn ich einen Parameter erzeuge mach ich das normalerweise so:
Set oParam = oParams.CreateDimension.CreateDimension("", "LENGTH", 0)
und benenne ihn dann um mit
oParam.Rename = "Name"
Bei mir liegen die erzeugten Parameter zudem verschachtelt in ParameterSets.
Wenn ich einen Parameter manuell in einem Set anlege sieht der Name wie folgt aus:  Parameterset\Name.
Wenn ich die Parameter mit Script erzeuge und dann umbenenne sieht der Name anders aus: nur der Name, ohne das ParameterSet mit "\" davor.
Lege ich sie gleich im richtigen ParameterSet mit dem richtigen Namen an, so ist das Ergebnis wie beim manuellen vorgehen. Und nur so geht die Rule mit.
Gruß

------------------
tomtom1972

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: 06. Nov. 2018 11:34    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 tomtom1972 10 Unities + Antwort hilfreich

Servus

Wie ermittelst du den "Namen" des Parameters für die Formel/Rule?
Über GetNameToUseInRelation solltest du doch immer den richtigen String bekommen.

Gruß
Bernd

Edit: Siehe auch hier.

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

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Nov. 2018 11: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

Hallo,
ich hab' die Syntax aus der manuell erzeugten Rule übernommen und gar nicht mehr überprüft.
Das war wohl das Problem.
Gruß

------------------
tomtom1972

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