Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Update-Fehler bei UDF-VB Script

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:  Update-Fehler bei UDF-VB Script (2583 mal gelesen)
gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 31. Okt. 2011 11:13    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

Guten Tag,

ich versuche gerade ein Makro als UDF umzusetzen, damit dies automatisch ausgeführt wird, wenn es benötigt wird (Update der Geometrie). Leider stört mich eine Fehlermeldung, dessen Sinn mir leider Schleierhaft ist und ich es nicht schaffe diese zu entfernen.
Vorab - Die Fehlermeldung erscheint nur bei automatischem Update! Stellt man auf Manuelles Update um und betätigt manuell den "Update All" Button erscheint der fehler nicht! Genausowenig wenn man lokal update auf das Auslösende Element macht.

Ich habe in der Hilfe mal geschaut und unter Knowledge Advisor - Useful Tips (vielleicht) etwas gefunden, dass das Problem beschreiben könnte... Jedoch auch dies nicht in meinen Kopf geht, da mein löschen das Update nicht im geringsten stört... Läuft ja auch!
"When creating reactions that react to updates, do not delete or add features which impact the update therefore it may lead to an update error."

Ich hoffe mir kann jemand von euch weiterhelfen.

System:
Catia v5R19SP9 (auch erfolglos unter v5R20SP0 getestet) - Englische GUI
Windows XP 64Bit


Fehlermeldung:
Titel: Update Error
Nachricht: Cycle detected involving:
Part2 (ist halt der Partname...)
Please correct by editing these elements.

Folgend der Aufbau des Parts, inklusive der Reaction und des VB Script

-Input
--Boundary.2 (von einer Toten Fläche in einem anderen Geoset - nicht relevant)
--Extremum.2 (von Boundary.2 in X-Richtung)
-Work
--Curve.1
--Curve.2
--...
-Relations
--VB Scripts.1
---CleanUp
--Reaction


Reaction:
SourceType: Selection
Sources: Extremum.2
Event: Update
Action: KwaAction

`Relations.1\VB Scripts.1\CleanUp`  ->Run(`Input\Boundary.2`  ,`Work` )


Vb Script:
2 Argumente: bound, hb_work


dim osel
set osel = catia.activedocument.selection
osel.clear
for i = 1 to hb_work.hybridshapes.count
    osel.add hb_work.hybridshapes.item(i)
next

if osel.count > 0 then
'msgbox "Debug"
osel.Delete    'FEHLERMELDUNG BEIM LÖSCHEN!!! Danach gehts normal weiter und Löschen ist auch erfolgreich!
osel.clear
end if

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 31. Okt. 2011 11: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 gladly 10 Unities + Antwort hilfreich

Problem ist hier, dass Du auf Update reagieren möchtest, durch das Löschen aber ein Update provozierst, dadurch hat man ene Endlosschleife, da das neue Update die Reaction ja wieder starten müsste. Dies sagt Dir zumindest die Fehlermeldung. :-)

In wie weit das alles sinnvoll ist, kann ich leider nicht bewerten.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 31. Okt. 2011 12:21    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

Danke erst einmal für die Antwort.
Eine Schleife kommt meiner Meinung nach aber nicht zustande, ich reagiere ja auf ein Update es bestimmten elements. Und das löschen erzeugt ein Globales Update(wie auch immer, das habe ich sowieso noch nie verstanden...)
Zum anderen verstehe ich nicht wieso es dann nicht bei einem manuellen "Update All" passiert, wonach ja auch das ganze part updated ist.

Was würdet Ihr denn vorschlagen, wie man es machen könnte?

Ich probiere mal nur einen Parameter bei der ersten (auf Update prüfende) Reaction zu ändern und diese änderung in einer anderen Reaction abzufragen... Melde mich wieder!

mfg

gladly


Also Weg über 2 Parameter wie oben beschrieben geht auch nicht. Der erste Updatedurchgang ist wohl nicht nach der ersten reaction abgeschlossen, da die ja direkt das nächste ereignis abfeuert.
Vielleich muss man einfach mit der Meldung leben... Schaue erst einmal weiter

[Diese Nachricht wurde von gladly am 31. Okt. 2011 editiert.]

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 31. Okt. 2011 13:22    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

Vorab, entschuldigt das Doppelposting, aber da dies nun die Lösung zu sein scheint, wollte ich diese hervorheben.

Also... Mit folgendem Code habe ich es hinbekommen. Mir kam in den Sinn, dass man ja auch anders, als nur mit der Selection löschen kann. Diese möglichkeit erzeugt anscheinend kein erneutes Update!

Folgend das korregierte VB Script

Code:

set mPart = Catia.ActiveDocument.Part
Set mHybridShapeFactory = mPart.HybridShapeFactory
for i =  hb_work.hybridshapes.count to 1  Step -1
    Set ref_mCrv = mPart.CreateReferenceFromObject(hb_work.hybridshapes.item(i))
    mHybridShapeFactory.DeleteObjectForDatum(ref_mCrv)
next

Trotzdem vielen Dank für die Anregunden, ohne die ich nicht so schnell auf die (vermeintliche) Lösung gestoßen wäre. Hoffe nur das mich später keine anderen Überraschungen überwältigen...

mfg

gladly

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