Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Performance Makro

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:  Performance Makro (4042 mal gelesen)
richter2
Mitglied



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

Beiträge: 81
Registriert: 21.10.2009

erstellt am: 04. Aug. 2011 10:35    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 würde die Performance meiner Makros gerne steigern. Nun habe ich bereits rausgefunden, dass hierfür die Befehle Catia.RefreshDisplay = False und teilweise Catia.Interactive = False (Was immer dieser auch macht) verwendet werden.

Problem bei der Sache: Ich steuere mein Makro aus Excel VBA und damit zeigen diese Befehle keine Wirkung. Dieses Problem wird auch auf anderen Seiten bereits geschildert. Nur keine Lösung. Gibt es hierfür denn überhaupt eine? Ich habe auch versucht im VBA Code ein .catvbs Makro zu starten welches obige Befehle enthält. Das Makro wird zwar gestartert aber das Display wird dennoch stetig aktualisiert.

Wäre schön, wenn es hierfür doch noch eine Lösung gebe, weil gerade ein Makro, was z.B. sehr viele Körper oder auch nur Punkte oder dergleichen anlegt von der Laufzeit her völllig miserabel ist.

Vielen Dank und viele Grüße

Klaus

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: 04. Aug. 2011 10: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 richter2 10 Unities + Antwort hilfreich

Servus
Vielleicht kannst du dich mit "CATIA.visible = false" (am Ende oder im Fehlerfall wieder "true" setzen) behelfen (falls dies von Excel aus geht).
Hast du oft ein update des Parts im Code eingebaut. Viellicht kannst du dir einige sparen.

Gruß
Bernd

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

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

richter2
Mitglied



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

Beiträge: 81
Registriert: 21.10.2009

erstellt am: 04. Aug. 2011 11:10    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

CATIA.visible = false funktioniert zwar, bringt jedoch bzgl. der Performance nichts.

Die Update Befehle sind schon rar gesetzt, sind jedoch auch nicht in großen Umfang für die lange Laufzeit verantwortlich. Wie gesgat kostet vor allem das Anlegen von Körpern Zeit. Man kann dann sogar "zugucken" wie Catia bei jedem weiteren Körper langsamer wird...

Trotzdem Danke

Klaus

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: 04. Aug. 2011 11: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 richter2 10 Unities + Antwort hilfreich

Servus
arbeitest du mit vielen Selections? Dann könne ggf (ab R19??) CATIA.HSOSynchronized=false helfen.

Gruß
Bernd

PS: Bitte Systeminfo ausfüllen

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

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

richter2
Mitglied



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

Beiträge: 81
Registriert: 21.10.2009

erstellt am: 04. Aug. 2011 13:28    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 Bernd,

leider bringt dies auch keine Verbesserung. Was soll der Befehl überhaupt leisten?

Zum System: Ich arbeite mit CatiaV5 R19 SP Windows XP SP3

Danke und Gruß

Klaus

P.S.: Hat eigentlich überhaupt jemand ein Makro wo der Befehl Catia.RefreshDisplay funktioniert?

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: 04. Aug. 2011 15:45    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 richter2 10 Unities + Antwort hilfreich

Das RefreshDisplay benötigt nen modalen Dialog, den kannste von außen aber schlecht aufmachen.

Meist kann man aber auch mit anderen Mitteln seinen Code ordentlich aufmöbeln. ;-)

Hierzu gibt's jedoch keine pauschalen Antowrten, zumal Du ja auch nichts konkretes sagst, sondern nur Erfahrung.

Unter 64bit sind auf Grund der Architektur VBA's langsamer, das bitte ich auch zu bedenken und jeder Zugriff über die API-Schnittstelle kostet sehr viel Zeit, also die Aufrufe irgendwie vereinfachen.

Bei Excel mache ich das z.B. indem ich alles in ein Array schreibe und das Array einmal an's Excel sende, statt für jede Zelle einzeln.

Bei Dir scheint es aber einfach an der Datenmenge zu liegen, so dass CATIA allgemein langsam ist, weshalb das Makro viel warten muss, hier sollte jedoch ein Visbile = False und HSOSyncronise schon etwas bringen. Wie misst Du denn, ob es etwas bringt, oder nicht?

HSO = Highlighted Selected Objects, ist übrigens nicht das einzige Element in der Selection, gibt da noch so ein paar Trigramme. :-)

Was spricht dagegen, wenn es schon um Performance geht, das Makro aus CATIA zu starten, ohne CATIA zu arbeiten, oder als CAA zu verwenden?

------------------
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

richter2
Mitglied



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

Beiträge: 81
Registriert: 21.10.2009

erstellt am: 04. Aug. 2011 16: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

Hallo,

messen du ich das ganze einfach mit der Stoppuhr. Gleiche Aufgabe - gleiche Zeit.

Wie meinst du das Makro in Catia zu starten? Ich kann das Makro auch in der VBA Umgebung von Catia implementieren und ohne Excel arbeiten. Der Befehl Catia.RefreshDisplay = false funktioniert in "Catia VBA" aber auch nicht. Alle userformen werden dabei bereits modal geöffnet.

Um das ganze als caa zu verwenden braucht man ja wieder die caa Programierumgebung. Da habe ich weder die Lizenz noch Kenntnisse bzgl. caa.

Ich glaube auch, dass Catia an sich einfach zu langsam ist. Aber wie mache ich es schneller?

Wenn es hilft: Es werden bei meinem Makro in Catia sehr viele Grundkörper (Quader, Zylinder) modelliert. Die entsprechenden Maße werden dabei einer Textdatei entnommen. Aus Excel wird das ganze nur wegen des Nutzerkomforts gestartet. Und je mehr Grundkörper angelegt werden umso langsamer wird das Makro. Mit Selektionen wird daher gar nicht sehr viel gearbeitet weswegen wohl auch das HSOSyncronise nichts bringt.

Danke und Gruß

Klaus

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: 08. Aug. 2011 17:33    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 richter2 10 Unities + Antwort hilfreich

Also Catia.RefreshDisplay = false sollte mit einem modalen Dialog funktionieren. Das finde ich komisch.

CATIA kannst Du nicht schneller machen, das muss schon der Hersteller machen, oder wie stellst Du Dir das vor?

Wenn sehr viel Geometrie erzeugt wird, wird CATIA langsam, ich denke es wird bei Dir daran liegen und nicht am Makro.

Meiner Meinung nach hilft da nur entweder weniger Geometrie erzeugen oder das als CAA abzubilden, mehr bleibt da einfach nicht.

Ähnlich bin ich auch bei CreateGravure vorgegangen, die DXF-Texte hatten einfach zu viele Flächen und zu viele Tangentenunsteigkeiten und waren daher unbrauchbar, also die Flächenerzeugung auf ein gutes Minimum reduziert (mit eigenen ALgorithmen und ohne DXF) und die Tangentenunstätigkeiten geglättet. Als das immer noch zu langsam war das ganze als CAA in CADGlyph abgebildet. An CATIA kannste eben nix machen, es ist wie es ist. :-)

------------------
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

richter2
Mitglied



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

Beiträge: 81
Registriert: 21.10.2009

erstellt am: 15. Aug. 2011 13:35    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,

konnte ja sein, dass noch irgendwer Tricks kennt um Catia zu beschleunigen. Hat den noch jemand eine Idee warum Catia.RefreshDisplay = False nicht funktioniert? Wie gesagt, alle Interaktionen werden bereit im modalen Dialog durchgeführt.

@Lila: Derartige Makros einfach als caa abzubilden ist ohne entsprechende caa Entwicklungsumgebung nicht möglich oder?

Vielen Dank und viele Grüße

Klaus

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



Bauingenieur (m/w/d) Stahlbau
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden im Anlagenbau und arbeiten mit an anspruchsvollen Lösungen für die Industrie....
Anzeige ansehenBauwesen
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: 15. Aug. 2011 14:14    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 richter2 10 Unities + Antwort hilfreich

Servus
Schau mal hier gibt es einen Ansatz wie RefreshDisplay von VBA aus genutzt werden könnte. (obwohl es gemäß hier nicht viel bringt).

Gruß
Bernd

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

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