Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATIA friert ein während Makro läuft

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:  CATIA friert ein während Makro läuft (1185 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 16. Jul. 2008 12: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,

ich hab mir nen Makro gebastelt mit dem ich beliebige Elemente im Baum auf bequeme Art und Weise umbenennen kann. Das Makro hat bisher problemlos auf PC und Workstation funktioniert, sofern man keinen Exkurs mit CATIA ins Drawing gemacht hat.

Angenommen ich habe eine Reihe von 3D Punkten in einem geometrischen Set. Durch ein anderes Makro erzeuge ich mir eine Messpunkttabelle auf dem Drawing was auch noch funktioniert. Die Messpunkttabelle auf dem Drawing und die 3D Punkte im geometrischen Set haben keinerlei verbindungen was die aktualisierung angeht, denn wenn ich auf einen Messpunkt klicke und über die Eigenschaften den namen ändere kann ich das. Setze ich nun aber das makro zum umbenennen an dann frieren mir PC und Workstation immer ein.

Wenn ich aber jetzt vor dem Umbenenne alles abspeichere und das Part/Produkt in dem die 3D Punkte sind wieder neu lade kann ich mit meinem Makro alles wie gewohnt umbenennen.

Ist da im 3D noch irgendwo ne Variable die mein Makro zum Fall bringt?

Grüße

Tiberius

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 16. Jul. 2008 12:41    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 Tiberius 10 Unities + Antwort hilfreich

Servus
Wird durch dein makro nur das aktuelle Dokument bearbeitet, oder werden alle offenen Dokumente (somit auch deine Zeichung) abgearbeitet?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 16. Jul. 2008 12: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

Es werden nur die im aktiven Dokument vor Aufruf des Makros angewählte Punkte abgearbeitet.

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

SWX 2013 SP2 (unter anderen)
Windows 7 Prof. 64 Bit
Intel Xeon E5-2643
NVIDIA Quadro 4000
32 GB Ram

erstellt am: 16. Jul. 2008 13: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

Ich glaub ich hab nen Ansatzpunkt gefundnen.

Kurz bevor er mir einfriert benennt er nicht die 3D Punkte um sondern fängt mit dem geometrischen Set an. Dieses bezeichnet er noch richtig, aber da es ab da nicht mehr passt schmiert er sang und klanglos ab.

Das geometrische Set das umbenannt wird vor dem Absturz, wurde für die Selektion im vorhergehenden Makro benutzt. Es wäre doch dann sicher einen Versuch wert das Makro das zuvor gelaufen ist zum Schluss mit dem befehl zu versehen, dass alle Selektionen aufgehoben werden. Gibts sowas wie ein generelles Selection.clear das ich ganz an das Ende des Makros setze?

Grüße

Tiberius

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


Ex-Mitglied

erstellt am: 16. Jul. 2008 13:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Tiberius,
in der V5Automation.chm zu finden.

Clears the selection.
Example:
This example clears the selection. The selection is then empty.
CATIA.ActiveDocument.Selection.Clear()

Gruß Martin

------------------
mb 

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 16. Jul. 2008 14:17    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 Martin für die schnelle Antwort aber so richtig weiter gekommen bin ich damit leider nicht. Ich hab die Zeile einfach noch in die CATMain() ganz zu schluss gepackt. Leider ohne Erfolg.  Nachdem er mir immer anfängt das darüber liegende geometrische Set umzubenennen anstatt die Punkte hab ich einfach mit Selection.count die markierten Elemente gezählt. Leider stimmen die genau mit der von mir selektierten Punktanzahl überein.

Hab dann auch nochmal versucht noch ein zusätzliches geometrisches Set (welches leer ist) vor das besagte zu legen und in bearbeitung zu schalten. Hatte evtl. gedacht er schnappt sich das erst beste Set und fängt dort an. Aber meine Vermutung, dass es das geometrische Set aus der Auswahl vom vorhergehenden Makro nimmt hat sich bewahrheitet........

Wenn von Euch noch einer ne Idee hat bin ich dankbar dafür.

Grüße

Tiberius

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 17. Jul. 2008 00:20    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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

wenn ich das Ganze richtig verstehe, ist der Befehl "Selection.Clear" schon der richtige Ansatz.

Hier aus dem Forum geht hervor, das es nur eine Selektion gibt. Daher muss ich nach Operationen, die eine Selektion "hinterlassen", bei der nächsten Selektion diese erst "leeren", bevor ich weiterarbeite. Das ist Punkt Eins.

Punkt Zwei ist aus meiner Erfahrung genauso wichtig: Die Laufzeit! Ich habe es schon oft erlebt, dass in Skripten die Fortsetzung der Abarbeitung VOR der Ankunft des vorherigen Ergebnisse erfolgt. Vielleicht liegt hier Dein Problem.

Ich sehe erst einmal zwei Lösungsversuche:

1.) Im vorherigen Makro die Selektion so früh wie möglich löschen.
2.) Im aktuellen Makro die Selektion so früh wie möglich "deklarieren" und "löschen", weit bevor Du die Selektion nutzt.


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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: 17. Jul. 2008 11: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 Nur für Tiberius 10 Unities + Antwort hilfreich

Hallo,

ich gebe Lusilnie recht. Manchmal bearbeitet ein Script schon eine Sache bevor die andere zu 100% abgearbeitet ist (das sollte zwar nicht so sein aber das ist ein anderes Thema).

Es ist daher immer sinnvoll beim deklarieren der Selektion diese gleich zu leeren. Das sieht dann folgendermaßen aus:

Code:
' oSel as Selektion deklarieren
Dim oSel as Selection

' oSel dem aktiven Dokument zuweisen
Set oSel = CATIA.ActiveDocument.Selection

'Hier wird die Selektion geleert obwohl ihr noch nie ein Wert zugewiesen wurde. Aber falls aus irgendeinem 'Grund (anderes Makro, etc.) noch was in der Selektion steht wird diese gelöscht!
oSel.Clear



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

Die KATJA ist halt doch nur ne zickige Französin

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 17. Jul. 2008 11:32    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

Ich habs hinbekommen mit dem Hinweis auf den Laufzeitfehler.

Jetzt klappts super - Danke Euch für Eure Hilfe!

Gruß

Tiberius

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