Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Anzahl der Dreiecke (Tesselierung) bestimme?!

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:  Anzahl der Dreiecke (Tesselierung) bestimme?! (1132 / mal gelesen)
Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 30. Aug. 2018 17:59    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 CAD Commmunity,

ich bin mal wieder auf ein Problem gestoßen. Und zwar, möchte ich automatisiert die Anzahl der Triangles ermitteln aus denen ein Surface besteht. Das ganze würde ich gerne auf Part ebene durchführen. Die ermittelten Werte werden anschließen in eine Exceltabelle eingetragen.
Das Problem ist, um den Triangles Count zu bestimmen kenne ich auf Part ebene nur den Befehl "c: triangles count" welchen man unten rechts in die Kommandozeile einträgt. Zudem  weiß ich leider auch nicht wie ich dies automatisieren kann, außer über send keys Methoden, bzw. wie ich aus der MsgBox den Ergebnisse auslesen kann.

Ich weiß, dass ich über Umwege mithilfe von CGR´s zum Ziel kommen würde, aber bei ein paar tausend Parts wird das ganze ziemlich Zeit intensiv werde.

Also für einen Lösungsansatz oder auch gerne ein paar Zeilen Code wäre ich sehr dankbar!

VG Rouven

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

Diesaster
Mitglied
Student


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

Beiträge: 61
Registriert: 05.11.2015

erstellt am: 04. Sep. 2018 09: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 Nur für Aitec 10 Unities + Antwort hilfreich

Hallo Aitec,

habe mal ein bisschen herum gespielt. Das einzige Problem, welches ich bei deinem Problem habe, ist es die Messagebox weg zu bekommen.

Aber mal von vorne.

Das "triangle count"-Feature kannst du im Makro mit dem Command

Catia.StartCommand "triangles count"

starten.

Danach erscheint, wie üblich, das Fenster mit den Werten.
Hier ist das Problem, bei dem ich dann nicht weiter weiß.

Mit Strg+C kann man den Messagebox-Inhalt in die Zwischenablage legen.

Leider habe ich keinen Weg gefunden, das Kopieren und das nachfolgende Schließen der Messagebox umzusetzen. SendKeys hat bei mir zumindest nicht funktioniert.

Vielleicht hat hier jemand anderes eine Lösung dazu.

Die Zwischenablage kannst du letztendlich mit VBA auslesen.
Hierzu gibt es von Microsoft selbst eine Beschreibung. Einfach nach "Lesen von Daten aus der Zwischenablage" googlen.

Ich hoffe ich konnte dir einen Ansatz geben, der dich oder jemand anderen zur Lösung führt.

Gruß
Diesaster

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 05. Sep. 2018 09: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

Hallo Desaster,

Danke für deine Antwort. Danke für den Tipp mit Strg+C ich wusste nicht das es auf diese Weise funktioniert. Kann man die MsgBox dann nicht einfach über Alt+F4 wieder schließen? Manuell funktioniert dies auf jeden Fall.
Ansonsten verwende ich ein Tool mit dem man sich die "wirklichen" Fensternamen sowie Schaltflächen etc. auslesen kann. Mit diesen Informationen ist es möglich  die Meldefenster über Windows handle befehle anzusprechen.

VG
Aitec

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

Diesaster
Mitglied
Student


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

Beiträge: 61
Registriert: 05.11.2015

erstellt am: 06. Sep. 2018 09:36    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 Aitec 10 Unities + Antwort hilfreich

Hallo Aitec,

habe mal ein bisschen in meiner Freizeit an einem Lösungsansatz gearbeitet.

Hier der Code, welcher soweit funktioniert.

Code:
Sub trianglesAuswerten()

Tabelle1.Hyperlinks(1).Follow

Application.Wait (Now + TimeValue("0:00:02"))

AppActivate "Triangles"

SendKeys "^C", 100

AppActivate "Triangles"
SendKeys "{ESC}", 100

End Sub


Zur Erklärung:

Habe es in Excel selbst umgesetzt. Erste Zeile Hyperlink ist der Link, in dem das CATScript Makro liegt. Wollte das Makro eigentlich in Excel mit einbinden, aber dann fährt das Makro nicht mehr fort. Auch das Aufrufen mit ExecuteScript hat Probleme bereitet. Aus diesem Grund habe ich den Hyperlink mit eingefügt. Du musst nur sicherstellen, dass der richtige Hyperlink angesprochen wird.

Die Wartezeit muss im Programm enthalten sein, da es sonst einen Laufzeitfehler verursacht.

In den folgenden Schritten wird dann das Messagebox-Fenster aktiv gesetzt, kopiert und geschlossen.

Ich denke das Einfügen in eine Excel Tabelle sollte dann für dich kein Problem sein.

Zu guter Letzt noch das CATScript, welches durch den Hyperlink aufgerufen wird.

Code:
Sub CATMain()
Catia.StartCommand "triangles count"
End Sub

Viel Spaß damit!

PS: Vielleicht haben andere auch noch eine Idee, wie man es besser machen könnte, aber für den Anfang sollte es reichen denke ich.

Gruß
Diesaster

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 17. Sep. 2018 08: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

Hi Diesaster,

danke für die Lösung, wirklich ein sehr interessanter Weg. Ich werde den Code gleich mal ausprobieren.
Ich hatte mir derweil einen anderen Lösungsweg aufgebaut, der aber nicht sehr performant ist. Dabei gehe ich wie folgt vor:
1. Neues Product anlegen und ein Part darin erzeugen
2. Das GeoSet welches die entsprechende Oberfläche enthält kopieren und in das neu erzeugt Product/Part einfügen.
3. Alle Geometrien etc. die nicht betrachtet werden sollen ins Hide
4. Mit der SendKeys Methode den Simplification befehl aufrufen
5. Triangles Count auslesen und in die Excel eintragen

Besten Dank für deine Lösung!

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