Autor
|
Thema: Regel erstellen (1269 mal gelesen)
|
hardy1312 Mitglied
Beiträge: 49 Registriert: 27.12.2005
|
erstellt am: 16. Jan. 2007 10:45 <-- editieren / zitieren --> Unities abgeben:
Hallo liebes Forum, ich habe ein kleines Problem. Ich möchte ähnlich wie im Bild ein Teil mit zwei Parametern erstellen. Es sind Parameter mit mehreren Werten. Wenn der Parameter "a" den Wert 50 übersteigt, darf Parameter "b" nur mit den Werte 400, 500, oder 600 ausgewählt werden. Wenn der Parameter "a" kleiner als 50 ist, darf Parameter "b" nur mit den Werte 100, 200, oder 300 ausgewählt werden. Es funktioniert leider nicht so, wie ich es mir gedacht habe. Hat jemand ,wenn möglich über den Regeleditor, eine alternative Lösung? Ich danke euch im voraus. Gruß Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SirKlabauter Mitglied cand. Ing.
Beiträge: 45 Registriert: 21.09.2006 CATIA: V5R16 Programmiersprache: VBA
|
erstellt am: 16. Jan. 2007 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für hardy1312
Ob der Code Funktioniert weiß ich nicht, aber du hast so wie ich das sehe schon beim schreiben fehler gemacht. If ( a>=50mm) { b= 400mm .....} Vielleicht funkt es ja jetzt.
------------------ Hinweise auf Rechtschreibfehler kann man sich bitte sparen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hardy1312 Mitglied
Beiträge: 49 Registriert: 27.12.2005
|
erstellt am: 16. Jan. 2007 13:13 <-- editieren / zitieren --> Unities abgeben:
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 17. Jan. 2007 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für hardy1312
Hallo, ich würde das ganze über ein Reaktion machen, wobei es sich da vielleicht auch als Schwierig erweisen würde. möchtest du das dann je nach wert in Parameter a auch nur die verschiedenen Werte in Parameter b verfügbar sind??? Das ist wichtig zu wissen. Wenn nein könnte es über Knowledgeware machbar sein. Wenn ja dann funktioniert das ganze nur über ein script ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 17. Jan. 2007 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für hardy1312
Also ich habe das jetzt mal getestet. Du hast zwei Lösungsmöglichkeiten: 1. Du machst es mit einer Reaktion, jedoch mit "VB Action" und nicht mit einer "Knowledgeware Action" 2. Du fügst den unten beschriebenen CODE in ein *.CATScript ein und speicherst dieses in das zugehörige Part ab. Danach erstellst du eine Regel welches das CATScript startet.
Code: Sub CATMain()Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim parameters1 As Parameters Set parameters1 = part1.Parameters Dim length1 As Parameter Dim length2 as Parameter Dim Paramliste(3) 'Length.1 (a) und Length.2 (b) müssen von Dir ersetzt werden, genauso wie das "Part460" Set length1 = parameters1.Item("Part460\Length.1") Set length2 = parameters1.Item("Part460\Length.2") length2.SuppressEnumerateValues If length1.Value >= 50 Then length2.Value = 400 paramliste(0) = 400 paramliste(1) = 500 paramliste(2) = 600 Else length2.Value = 100 paramliste(0) = 100 paramliste(1) = 200 paramliste(2) = 300 End If length2.SetEnumerateValues(paramliste) End sub
Falls es dazu noch fragen gibt. Einfach melden. Gruß Timber PS: Habe den Code getestet und er funktioniert definitiv
------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hardy1312 Mitglied
Beiträge: 49 Registriert: 27.12.2005
|
erstellt am: 17. Jan. 2007 12:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Timberwolve, so wie du es geschrieben hast, sollte das ganze funktionieren. Wenn der Paramter a zum Beispiel größer ist als 50, soll der Parameter b nur mit den Werten 400, 500, oder 600 auswählbar sein. Wenn der Paramter a zum Beispiel kleiner ist als 50, soll der Parameter b nur mit den Werten 100, 200, oder 300 auswählbar sein. B ist also ein Parameter mit mehreren vordefinierten Werten. SOllte ich dann ein Scribt schreiben, welches mir diese Paramter erstellt, oder wie würde deine Lösung aussehen? Hast du schonmal ein ähnliches Beispiel erstellt? Gruß Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 17. Jan. 2007 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für hardy1312
das was du soeben beschrieben hast funktioniert mit dem Script in meinem Vorherigen geposteten Beitrag. Versuchs einfach mal aus. Wie gesagt, gewisse Variablen musst du einfach mit deinen ersetzen. Aber ist oben eigentlich alles erklärt ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hardy1312 Mitglied
Beiträge: 49 Registriert: 27.12.2005
|
erstellt am: 19. Jan. 2007 12:49 <-- editieren / zitieren --> Unities abgeben:
|