Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Ansicht in 2D sperren

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:  Ansicht in 2D sperren (3474 mal gelesen)
ACC_kw
Mitglied



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

Beiträge: 67
Registriert: 16.03.2006

erstellt am: 27. Mai. 2008 19:16    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


Unbenannt.JPG

 
Hallo Leute!

Ich weiß, daß ich vor kurzer Zeit eine ähnliche Frage gestellt habe.
Ich habe aber nicht die Antwort erhalten die ich benötigt hätte.
Daher habe ich meine Ansprüche gesenkt und möchte meine Frage neu formulieren.

Ich habe bei einem Bauteil 2 Bearbeitungszustände:
1. Unbearbeitet
2. Gebohrt

Diese Parameter lassen sich im 2D leicht einfügen. (siehe Bild)

Wenn die Zeichenfolge.1=Unbearbeitet eingestellt ist springt die Bearbeitung auf "Unwahr".
Wenn die Zeichenfolge.1=Gebohrt eingestellt ist springt die Bearbeitung auf "Wahr".

Ich möchte eine Ansicht automatisch sperren wenn die Bearbeitung "Wahr" ist.

Wie ist das am einfachsten möglich?

Ich verwende die R17 service pack 3 Deutsch
KWA - Lizenz (Knowledge Advisor 2 Product) wenn nötig vorhanden, weiß aber nicht wie man damit umgeht.

Bitte um Hilfe!

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 27. Mai. 2008 20:58    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 ACC_kw 10 Unities + Antwort hilfreich


DrawingmitKnowledgeAdvisor20080528.zip

 
Hallo ACC_kw,

also zuerst einmal musst du dir zwei Parameter erstellen (das hast du ja schon gemacht). Der erste Parameter ist ein Parameter des Typs String und hat einen MultiValue (1. Gebohrt, 2. Ungebohrt).
Der zweite ist ein Parameter des Typs Boolean (Wahr, Falsch).

Jetzt musst du in den Knowledge Advisor wechseln und dir dort eine Rule erstellen (das verknüpft die beiden Parameter miteinander.)

CODE KNOWLEDGE ADVISOR

Code:

If Zeichenfolge.1  == "Gebohrt"
{
Bearbeitung = true '(bzw. Wahr)
}

If Zeichenfolge.1 == "Ungebohrt"
{
Bearbeitung = false ' (bzw. Falsch)
}


Jetzt musst du im Knowledge Advisor eine Reaktion definieren. Und zwar wenn sich der Wert des Parameters Bearbeitung ändert, soll er folgende VB Code ausführen

CODE Makro


Code:

Sub Main

Set oDraw = CATIA.ActiveDocument

Set oPara = oDraw.Parameters

Set activePara = oPara.Item("TEST")

Set oSheets = oDraw.Sheets

Set oSheet = oSheets.Item("BLATT001")

Set oViews = oSheet.Views

Set oView = oViews.Item("Front view")

If activePara.Value = "Wahr" Then
    oView.LockStatus = True
ElseIf activePara.Value = "Falsch" Then
    oView.LockStatus = False
End If

End Sub


So funktioniert es einwandfrei und sehr sauber und stabil. Du kannst auch zusätzlich noch einen Check definieren der dem USER mitteilt, das der Lock.Status der View geändert wurde.

PS: Den VB Qeulltext musst du noch auf deine Drawinbg anpassen. Die Zeile Set oSheet = oSheets.Item("BLATT001") kann man auch durch ...Item(1) ersetzen dadurch ist es egal welchen Namen das Blatt hat. Zusätzlich könnte man anstatt den View Name explizit anzugeben den USER die View selektieren lassen die CATIA locken soll....ABER dazu ist es schon zu spät und nach 12 Stunden arbeit und min. 10 CLICK OK TO TERMINATE heute ist bei mir der Akku leer  

EDIT:
Nach einem weitern Versuch heute früh ist mir aufgefallen, das man die Sache mit der Selektion der View durch den User nicht durchführen kann. Das Problem an der Sache ist, das CATIA den Status = mySel.SelectElement2.... Befehl innerhalb einer Reaction nicht akzeptiert 
Ich hab dir auch mal ein kleines Beispiel zur Verdeutlichung angehängt

DATEN SIND MIR R18 ERSTELLT WORDEN!!!

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

Die KATJA ist halt doch nur ne zickige Französin

[Diese Nachricht wurde von denyo_1 am 28. Mai. 2008 editiert.]

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

ACC_kw
Mitglied



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

Beiträge: 67
Registriert: 16.03.2006

erstellt am: 28. Mai. 2008 14:43    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


Reaktion.JPG


Reaktion01.JPG

 
Hallo Daniel!

Vielen Dank für deine Mühe!
Leider funktioniert es noch nicht. Ich habe wie du beschrieben hast den Quelltext auf meine Zeichnung geändert.


Sub main

Set Drawing2 = CATIA.ActiveDocument

Set Bearbeitung = Drawing2.Parameters

Set activePara = Bearbeitung.Item("Bearbeitung")

Set oSheets = Drawing2.Sheets

Set Blatt = oSheets.Item("Blatt")

Set oViews = Blatt.Views

Set Vorderansicht = oViews.Item("Vorderansicht")

If activePara.Value = "Wahr" Then
      Vorderansicht.LockStatus = true
ElseIf activePara.Value = "Unwahr" Then
      Vorderansicht.LockStatus = false
End If

End sub

Habe ich etwas falsch verstanden, oder habe ich ein Sprachenproblem.
z.B.: Heißt Vorderansicht.LockStatus in der deutschen CATIA- Version anders? Der Haken von Hand ist, wie im Anhang ersichtlich, bei Ansicht sperren zu setzen.

Die angehängte Zeichnung wäre sicher hilfreich gewesen, kann ich aber in der R17 nicht öffnen.

Bitte um erneute Hilfe!

mfg

Willi

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 28. Mai. 2008 15: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 Nur für ACC_kw 10 Unities + Antwort hilfreich

Hallo,

kannst du mir die Zeichnung mal zur verfügung stellen? Ev. liegt das Probelm in dieser Zeile

Code:

If activePara.Value = "Wahr" Then
      Vorderansicht.LockStatus = true
ElseIf activePara.Value = "Unwahr" Then
      Vorderansicht.LockStatus = false
End If

Ich habe nur die englische Umgebung da, und deswegen programmier ich eigentlich nur mit true und false und nicht mit wahr und falsch. Stell mal das true auf wahr und das false auf falsch um und versuchs dann mal.

Eine weitere Lösung bietet der Microsoft Visual Editor. Hier kannst du das Makro Schritt für Schritt ablaufen lassen. Hierbei kannst du schaun warum er dir die View nicht sperrt. Ich habs bei mir versucht und es läuft einwandfrei. Hab sagor noch das mit den zwei Checks versucht das den USER über den Lockstatus der View informiert und das geht auch.

Also am besten einfach mal die aktuelle Zeichnung (von der du den Screenshot gemacht hast) reinstellen dann guck ich mal drüber und sagt dir bescheid.

Sorry wegen der R18 aber hab keine andere Version installiert 

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

Die KATJA ist halt doch nur ne zickige Französin

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

ACC_kw
Mitglied



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

Beiträge: 67
Registriert: 16.03.2006

erstellt am: 28. Mai. 2008 16:30    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


RegelundReaktion.rar

 
Hallo Daniel!

Die Regel mit der ich die Bearbeitung auf wahr und unwahr setze funktioniert mit true and false.

Die Zeichnung im Anhang:
Der Inhalt des Parts ist nur ein Würfel mit einer Ansicht im 2D um die Reaktion zu testen.
Die Screenshots wurden von dieser Zeichnung gemacht.

P.S. Gibt es eine Art Wörterbuch in dem erklärt ist wie ich zu den Begriffen wie z.B. *.LockStatus oder ähnliches komme?

Wie kann ich mit dem Microsoft Visual Editor das Makro Schritt für Schritt ablaufen lassen?

mfg

Willi

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 28. Mai. 2008 19:38    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 ACC_kw 10 Unities + Antwort hilfreich


Microsoft_Visual_Editor.jpg


Reaktion_1.jpg

 
Zum Wörterbuch:
Ein Wörterbuch gibt es dazu nicht. Aber die Automation.chm Datei in deinem Installationverzeichniss (dort wo auch die CNEXT.exe liegt). Dort sind alle Refernzen von CATIA V5 Objekten angegeben (Hilfedatei für Programmierer).

Zum Microsoft Visual Basic Editor:
Den Editor starten über Tools -> Macros -> Microsft Visual Editor. Anschließend das Script in ein leeres Modul kopieren (ev. ein neues über Einfügen -> Modul einfügen). ACHTUNG, das Script in VBE muss mit Sub CATMain() anfangen und nicht mit Sub main.
Jetzt brauchst du die Symbolleiste Debuggen. (Microsoft_Visual_Editor). Dort kann man dann mit dem 6ten Button das Makro Schritt für Schritt ablaufen lassen. Wenn du einen Rechtsklick auf eine Variable zB auf oView (etc.) machst und dort eine Überwachung einstellst, siehst du die Eigenschaften die für das entsprechende Objekt verfügbar sind (unter anderem auch den .LockStatus)

Zum Problem mit der Drawing:
Du hast quasi alles richtig gamcht bis auf eins. Ein deiner Reaction hast du keine Quelle angegeben sondern nur das VB Macro. CATIA weiß jetzt nicht wann er die Action (VB Macrp) ausführen muss. Schau dir mal mein Bild (Reaktion_1) an. Im oberen Teil (Sources) steht bei dir nichts...

Lösung:
Einfach einen Doppelklick auf die Reaktion. Anschließend im Strukturbaum den Parameter Bearbeitung auswählen. Dieser wird nun unter Sources aufgeführt. Wenn sich nun der Wert des Paramters von True auf False bzw. von False auf True ändert wird das Makro ausgeführt.

WICHTIG:
Du darfst das Makro nicht umschreiben (habe gesehen das du überall die oView, oDraw, oSheets, etc. geändert hast). Das darfst du nicht. Das funktioniert egal welchen Namen deinen Zeichnung bzw. die View hat.
Ein ganz kurze Erklärung wie das funktioniert.
Zuerst wird dem Objekt oDraw das aktive Dokument zugewiesen. Anschließend wie die Kollektion alles Blätter zugänglich gemacht. Dann wird das dem Object Sheet das Drawing Sheet mit dem Namen Blatt zugewiesen. Das wiederrrum enthält eine Kollektion Views. Diese wiederrum enthält die Vorderansicht.

ALSO:

Kopiere dieses Makro und ändere nur den fett makrierten Text von Front view in Vorderansicht und dann funst alles ;-)

Code:

Sub main

Set oDraw = CATIA.ActiveDocument
Set Parameters = oDraw.Parameters
Set activePara = Parameters.Item("Bearbeitung")
Set oSheets = oDraw.Sheets
Set oSheet = oSheets.Item("Blatt")
Set oViews = oSheet.Views
Set oView = oViews.Item("Front view")

If activePara.Value = "Wahr" Then
      oView.LockStatus = true
ElseIf activePara.Value = "Falsch" Then
      oView.LockStatus = false
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

ACC_kw
Mitglied



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

Beiträge: 67
Registriert: 16.03.2006

erstellt am: 28. Mai. 2008 20:54    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!

Hat super funktioniert!!!

Die Ansicht hat sich am Anfang nur gesperrt und nicht wieder entsperrt. Ich habe die Wörter "Wahr" und "Unwahr" verwendet, statt "Wahr" und "Falsch"

Toller Hinweis, daß ein Makro mit einem Befehl erst gestartet werden muß.

Ich bin mit dieser Lösung und Wissenszuwachs sehr glücklich!
DANKE für die Geduld und der genauen Beschreibung!

mfg

Willi

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 29. Mai. 2008 07:07    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 ACC_kw 10 Unities + Antwort hilfreich

Hallo Willi,

kein Problem, dafür ist ja dieser Forum da ("Hier werden sie geholfen!") 

Das mit dem Unfahr und Falsch ist mir gestern auch noch aufgefallen, habs aber dann wieder vergessen. 

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

Die KATJA ist halt doch nur ne zickige Französin

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