Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter Loop

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:  Parameter Loop (2076 mal gelesen)
Gaucho
Mitglied
Konstrukteur


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

Beiträge: 52
Registriert: 07.05.2008

CATIA V5 R16 Sp5
CATIA V5 R17 SP5
CATIA V5 R19 SP3 64

erstellt am: 15. Jun. 2009 17: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

Servus beinand,

ich frage in CATIA Längen Parameter ab und gebe eine Information (KWA) wenn ein bestimmter Wert überschritten wird. Was mich nun stört,  dass in der KWA Umgebung ständig der Wert kontrolliert wird, egal ob ich die Werte mit einer Rule, Reaction oder mit einem Check kontrolliere.

Jetzt habe ich mir gedacht, ich könnte dies mit VB realisieren, dass ich den Parameter Wert erst dann abfrage, wenn die Eingabe innerhalb der Funktion mit "OK" abgeschlossen wurde.

Da meine VB Kenntnisse leider noch mau sind, weiß ich leider nicht, wie ich genau dies aussehen muss. Ich komme an das "ok" innerhalb der Funktion nicht ran, selbst wenn ich ein Makro aufzeichnen lasse erscheint der "ok" Button nicht.

Kann mir jemand helfen?

------------------
mfg Gaucho

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 16. Jun. 2009 06: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 Nur für Gaucho 10 Unities + Antwort hilfreich

Hallo Gaucho,

mit einem VB-Script wirst du die Sache auch nicht zufriedenstellend lösen können und ich erklär dir auch warum.

Das VB-Script deckt zwar voll und ganz die Funktionalität ab von dem was du machen möchtest nur musst du es ja irgendwann auch auslösen. Das ganze soll der Anwender aber nicht per Hand machen (also Makro starten) sondern das Script soll ausgelöst werden wenn du „OK“ klickst. Dieses Ereignis (so wird das genannt wenn man auf ein bestimmtes Ereignis reagieren möchte), gibt es in CATIA aber nicht.

Je nach Anwendungsfall gibt es aber schon Lösungen. Die Frage ist hier auf was beziehen sich die Parameter bzw. welche Maße hängen an den Parameter. WARUM?

-> Das Problem bei den Parameter ist, das es nur ein ChangeValue-Ereignis (in einer Reaction) gibt. Dies zeigt aber dasselbe Verhalten wie eine ganz normale Rule.
Wenn du die Reaktion auf ein Constraint (also z.B. direkt auf das Teil im Sketch anwendest) dann gibt es das Ereignis "Update". Diese wird erst ausgelöst wenn das Maß ein Update erfährt.

Wenn jetzt der Parameter mit dem Maß verknüpft ist und er wird geändert, erfährt das Maß ERST das Update wenn beim Parameter auf OK geklickt wird. So hast du dein gewünschtes Verhalten erzielt.

ANMERKUNG:
Das wird dann aber nur einmal z.B. als MsgBox im Script angezeigt. D.h. man sollte dann zusätzlich noch eine Rule definieren, die wiederrum von der Reaction abhängt die dem Anwender anzeigt das sein Maß zu groß ist 

Leider hast du nur R16 sonst hätte ich dir das ganze Part mal zur Verfügung gestellt (R19). Ansonsten hoffe ich, hilft die Erklärung.

Nochmal in Kurzform:

1. Das unten aufgeführte Script kopieren
2. KWA-Reaction definieren
3. Als Quelle klickst du auf das Maß (im Konstruktionsbaum) und zwar auf das Maß das von dem Parameter gesteuert wird den du kontrollieren möchtest (z.B. hier in meinem Fall Sketch.2 -> Lenght.5)
Bei „available events“ stellst du „update“ ein.
4. Jetzt stellst du auf VB Action um
5. Jetzt kopierst du mein Script rein und passt es ggf. an deine Bedürfnisse an

Fertig 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Gaucho
Mitglied
Konstrukteur


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

Beiträge: 52
Registriert: 07.05.2008

CATIA V5 R16 Sp5
CATIA V5 R17 SP5
CATIA V5 R19 SP3 64

erstellt am: 16. Jun. 2009 09:02    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 Daniel,

erstmal vielen Dank für Deine Antwort.
Ich habe früher mal ein bisschen mit VB "gespielt" und Eingabefelder erstellt. Dort konnte ich auf das Ereignis "OK" reagieren, ich hatte gehofft, dass ich dies nun auch bei Längen Parametern verwenden kann, deswegen meine Frage.

Deine Idee mit dem Update ist gut, aber ich checke die Längenparameter aus dem 3D, und da habe ich, wie von Dir schon erwähnt, nur den ValueChange zur Auswahl. 

Wo finde ich denn Dein Beispiel Script? 

------------------
mfg Gaucho

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 16. Jun. 2009 12:06    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 Gaucho 10 Unities + Antwort hilfreich

Hallo,

upps mein Fehler tut mir leid  ich habs nicht mit angehängt. Hab jetzt gerade keinen Zugriff drauf weil ich in der Arbeit bin aber sobald ich daheim bin werde ich dir das Script nochmal reinstellen.

Ja das mit den 3D Parametern war mir klar, aber die müssen ja irgendwelche Kinder haben. z.B. die Höhe eines Blocks ist mit dem Parameter verknüpft. Dann musst du direkt die Höhe des Blocks nehmen und nicht den Parameter.

Kannst du mir ev. mal eine Beispieldatei von deiner Konstruktion anhängen dann schau ich´s mir mal an und sag dir dann wie man es in deinem Fall lösen könnte.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 17. Jun. 2009 06: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 Gaucho 10 Unities + Antwort hilfreich


Parametersteuerung_nach_update.jpg


Parametersteuerung_nach_update.zip

 
Hallo Gaucho,

hatte ja gestern gesagt ich reiche das Beispeilscript noch nach und hier kommt es.

Anbei ist auch ein Screenshot von dem Baum und die Reaction. In meinen Baum gibt es noch einen Check. Dieser wird gesteuert von dem "Steuerungsparameter Kontrollmaß" und soll dem Anwender lediglich visualisieren das sein Kontrollmaß nicht io ist. Gesteuert wird der Parameter von dem Script in der Reaction.

Des weiteren habe ich auch die komplette *.catpart Datei angehängt falls es sich jemand "Live" anschauen will (CATIA V5 R19!!!)

Hier nun das Script (bevor ich´s wieder vergesse  )

Code:

Sub main

    'Deklarationen
    Dim oDoc As PartDocument
    Dim oPart As Part
    Dim oBodies As Bodies
    Dim oBody As Body
    Dim oShapes As Shapes
    Dim myPad As Pad
    Dim oParas As Parameters
    Dim myPara As BoolParam
    Dim myPadLenght As Double
    Dim myParaVal As Boolean
   
    'Instanz auf das Pad erstellen / Instanz auf den Kontrollparamter erstellen
    Set oDoc = CATIA.ActiveDocument
    Set oPart = oDoc.Part
    Set oBodies = oPart.Bodies
    Set oBody = oBodies.Item("Hauptkoerper")
    Set oShapes = oBody.Shapes
    Set myPad = oShapes.Item("Testvolumen")
    Set oParas = oPart.Parameters
    Set myPara = oParas.Item("Steuerungsparameter Konstrollmaß")
   
   
    'Wert für den Body auslesen
    myPadLenght = myPad.FirstLimit.Dimension.Value
   
    'Fallunterscheidung
    If myPadLenght > 100 Then
        Box = MsgBox("ACHTUNG das Kontrollmaß für das " + Chr(34) + "Testvolumen" + Chr(34) + " wurde überschritten", _
                    vbCritical + vbOKOnly, "Konbstrollmaß überschritten")
        myPara.Value = False
        Exit Sub
    Else
        myPara.Value = True
    End If

End sub



------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Gaucho
Mitglied
Konstrukteur


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

Beiträge: 52
Registriert: 07.05.2008

CATIA V5 R16 Sp5
CATIA V5 R17 SP5
CATIA V5 R19 SP3 64

erstellt am: 17. Jun. 2009 09:50    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 Daniel,

vielen Dank für Dein Beispiel, hab es getestet, funktioniert einwandfrei. 10 U´s nochmal für Dich!! 

Dann bis zum nächsten Problem 

------------------
mfg Gaucho

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