Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Abfragen ob das Part oder Produkt gefunden bzw. geladen wurde

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:  Abfragen ob das Part oder Produkt gefunden bzw. geladen wurde (1473 mal gelesen)
Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 24. Mrz. 2006 19: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

Hallo, ich stecke wiedereinmal fest, vielleicht kann mir jemand helfen.

Ich durchlaufe den Strukturbaum von oben nach unten und lasse mir mit folgender Zeile die Teilnamen der Dateien im Baum (Part/Produkt/Exemplar) ausgeben
(Die folgende Beispielzeile gibt des erste Part/Produkt aus, welches im Baum unter dem Hauptprodukt (CATIA.ActiveDocument..Product) auftaucht):

MsgBox CATIA.ActiveDocument..Product.Products.Item(1).Partnumber

Taucht im Baum jedoch ein Part oder Produkt auf, welches nicht gefunden und dementsprechend nicht geladen wurde (Im Exploerer umbenannt, Datei gelöscht etc.) so produziert mein Script mit obiger Befehlszeile logischerweise
eine Fehlermeldung.
Mit CATIA.ActiveDocument..Product.Products.Item(1).HasAMasterShapeRepresentation kann ich des net machen weil da FALSE ausgegeben wird wenn ein Teil nicht gefunden wurde, aber auch wenn es sich um ein stinknormales Exemplar handelt.

Kann ich irgendwie abfragen ob mein Part oder Produkt (z.B. CATIA.ActiveDocument..Product.Products.Item(1)) gefunden bzw. geladen wurde oder nicht?

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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: 26. Mrz. 2006 17: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 Nur für Florian.Held 10 Unities + Antwort hilfreich

Hallo,

die Antwort auf deine Frage hast du dir im Prinzip schon slbst gegeben:
Wenn Parts oder Products nicht gefunden oder geladen wurden (also im Desk schwarz oder rot dargestellt werden) kommst du im Tree nur an die Instance, also das
oProduct.Products.Item(n)
nicht aber an das zugehörige PartDocument, PartNumber ect.

Demnach also wie folgt vorgehen:

Sub CATMain()

Set oProducts = CATIA.ActiveDocument.Product.Products

For n = 1 to oProducts.Count
On Error Resume Next
Err.Clear
sPartNumber = oProducts.Item(n).PartNumber
If Err.Number = 0 Then
  MsgBox oProduct.Products.Item(n).PartNumber & " wurde geladen", 64, "Info"
Else
  MsgBox oProduct.Products.Item(n).Name & " wurde nicht geladen / gefunden", 64, "Info"
End if
On Error Goto 0
Next

End Sub

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

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 01. Apr. 2006 15:11    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

Hi,

erstmal danke für deinen Beitrag.

Über eine Lösung mit err.number habe ich auch schon nachgedacht, jedoch hatte ich da bisher so meine Probleme weil die Scripte unter unix und Windows funktionieren müssen.

Vielleicht bin ich auch wiederinmal einfach zu blöd dafür weshalb ich mir deinen Code mal in die Firma schicke, es Anfang nächster Woche probiere und mich dann wieder melde.

Kurze frage noch:
on error resume next ist klar, bei fehler mach weiter aber
On Error Goto 0 bewirkt was? Kann es sein dass dies on error resume next wieder aufhebt?

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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: 02. Apr. 2006 16:53    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 Florian.Held 10 Unities + Antwort hilfreich

Hi Florian,

ganz genau.
On Error Resume Next bewirkt, das das Script event. auftretende Fehler ignoriert und in die nächste Zeile springt und dort weiter macht. Mit Hilfe der Err.Number kannst du abfragen, ob ein Fehler aufgetreten ist (Err.Number <> 0) und welcher.
On Error Goto 0 deaktiviert sozusagen den On Error Resume Next wieder und stellt die Err.Number auf 0, bei einem Fehler bleibt das Script dann wieder stehen (geht also auf "0", zum Anfang).
Weiterhin kannst du Sprungmarken setzten und beim auftreten eines Fehlers in diese Sprungmarke springen und z.B. eine MsgBox aufrufen oder die Err.Number analysieren. Der Befehl ist dann On Error Goto Sprungmarke. Die Sprungmarke ist irgendein String (muss nicht "Sprungmarke" sein) die im Script mit : gekennzeichet wird.

Also z.B.

Sub CATMain()
.....
On Error Goto Irgendwas
.....
Exit Sub
Irgendwas:
Msgbox "Err.Number " & Err.Number & " ist aufgetreten.  ", 48, "Error"
End Sub 

Das ganze läuft meines Wissens nach nur unter Windows und (zumindest die Sprungmarke) auch nicht im CATScript.

Gruss

TomTom

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

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

Florian.Held
Mitglied
Konstruktiver Spritzer (Konstruktion Spritzguss)


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

Beiträge: 35
Registriert: 13.07.2005

CATIA R14 SP5 unter WinXP64 und Unix (vbscript)

erstellt am: 06. Apr. 2006 23:15    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

Hihi,

richtig, goto funzt nur im Windows.

On Error Resume Next und On Error goto 0 läuft auch in VBscript unter Unix.

Aber was soll ich sagen, dein Tip war die Lösung meines Problems.

Vielen Dank für deine Hilfe, endlich läuft des dumme Makro so wie es soll ;-)

Danke nochmal!

------------------
Es gibt nichts langweiligeres als ein vollständiges, stabil laufendes Catia...

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