Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro bei Ergeignis starten

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:  Makro bei Ergeignis starten (1444 mal gelesen)
cading12
Mitglied


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

Beiträge: 4
Registriert: 17.06.2009

erstellt am: 17. Jun. 2009 22:16    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 Forum,

ich habe folgendes Problem: ich möchte ein Makro bei geöffnetem Catia automatisch starten lassen, wenn eine Bedingung erfüllt ist. Also konkret, wenn von einem externen skript (Perl) ein File geschrieben wird (Bedingung 'if File exist' oder so ähnlich), soll ein Makro gestartet werden das die Werte im File einliest. Die Werte sind Levels im Strukturbaum die mit dem Makro eingeblendet werden sollen.

Das File einlesen und die entsprechenden Levels ins Show zu stellen, das kriege ich hin. Ich kann mir auch vorstellen, bei Catia start ein Makro zu starten, dass dann mit einer "endlos" Schleife immer nach dem File sucht und wenn es gefunden ist, in ein sub springt, dass das eigentliche Makro ausführt. Solche Endlosschleifen  sind halt nicht die "feine Programmierart". Hat jemand eine schauere Lösung?????

vielen Dank schonmal für euer Hilfe,
cading12

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

DanielFr.
Moderator
Manager


Sehen Sie sich das Profil von DanielFr. 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: 18. Jun. 2009 06:30    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 cading12 10 Unities + Antwort hilfreich

Hallo,

also das mit dem Endlosscript würde ich auf GAR KEINEN FALL MACHEN. Was passiert wenn ein zweites Script ausgeführt wird, Ressourcenmanagement....!

Aber ich hab auch eine andere Lösung für dich:

Vorraussetzungen:
Ein kompiliertes (*.exe) VB Programm das dir in CATIA die Levels in Show stellt. Mit VB.NET Express geht das ganz einfach da du dort ganz einfach CATIA instanzieren kannst und dann programmiert es sich wie der interen Vb Editor von CATIA.


1. Du startest die Perl -> die schreibst den Pfad und ruft im Anschluss die kompilierte *.exe -Datei mitsamt Übergabenwerten (z.B. den Pfad) auf

FERTIG 

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

Die KATJA ist halt doch nur ne zickige Französin

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

cading12
Mitglied


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

Beiträge: 4
Registriert: 17.06.2009

erstellt am: 18. Jun. 2009 08:25    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 Daniel,
vielen Dank für deine schnelle Antwort!!! Das ist ja echt super hier!

Bei der Endlosschleife habe ich mir schon gedacht, dass mir das jeder Programmierprofi an die Gurgel springt....

Hmm also mit vb.net habe ich leider noch keine Erfahrung. Habe bisher nur mit CATScript oder dem internen vb editor bisschen "rumgewurstelt" 

Also das heißt ich muss mit sowas wie

"CATIA = GetObject(, "CATIA.Application")

von außen auf das bereits laufende Catia zugreifen und da die Parameter bzw. Levels zum einblenden übergeben. Das muss ich dann nicht unbedingt compilieren, oder? Muss ich dazu noch was runterladen? oder ist da standardmässig auf xp alles nötige drauf? Mit "runterladen" ist es immer so eine Sache auf dem Firmenrechner.

Danke und Gruß,
Kathrin


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

DanielFr.
Moderator
Manager


Sehen Sie sich das Profil von DanielFr. 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: 18. Jun. 2009 08:34    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 cading12 10 Unities + Antwort hilfreich

Hallo Kathrin,

also erst mal würde ich dir das Visual Basic Express 2005 SDK ans Herz legen da dieses Microsoft .NET 2.5 verwendet was heute auf den meisten Rechnern schon installiert ist. Das SDK musst du dir aber runterladen (direkt bei Microsoft...sollte also für eure Admins keine Gefahr darstellen  )

Die Programmiersprach ansich ist die selbe wie im internen VB Editor von CATIA. Du wirst dich also extrem schnell damit zurechtfinden.

In dem VB.NET Programm erzeugst du dir das Objekt (bzw. wie du schon sagtest du musst auf eine laufende Instanz zugreifen) mit dem du dann genauso arbeiten kannst wie mit dem CATIA-Objekt aus dem internen VB Editor (natürlich nur wenn auch der Namespace von CATIA importiert wurde bzw. der Verweis auf das CATIA Objekt existiert)

Kompilieren musst du es auf jeden Fall denn du brauchst ja eine vom Computer ausführbare Instanz des Programms (die *.exe).

Ich würde jetzt an deiner Stelle erst mal abklären ob du das SDK installieren darfst (bwz. ob es dir ein Admin installiert). Dann kann ich dir mal ein Beispiel schicken 

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

Die KATJA ist halt doch nur ne zickige Französin

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

cading12
Mitglied


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

Beiträge: 4
Registriert: 17.06.2009

erstellt am: 18. Jun. 2009 08:47    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

Sehr gut, dann werde ich das mal abklären. Leider weiss ich, dass es bei uns mit der Genehmigung der anscheinend sichersten Sachen schon Probleme geben kann (ist halt ein grösserer Laden...) Jedenfalls haben wir .Net Framework 3.5 drauf. Das habe ich erst kürzlich für eine andere Anwendung installieren lassen (auch das war nicht einfach)  Ansonsten lade ich mir das ganze auf meinen privaten Rechner, compiliere es da zu .exe und kopiere es auf den Firmenrechner.

Wenn du mir ein kleines Beispiel hättest, wäre das super!!!!

Danke Dir!
Kathrin

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

DanielFr.
Moderator
Manager


Sehen Sie sich das Profil von DanielFr. 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: 18. Jun. 2009 09:05    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 cading12 10 Unities + Antwort hilfreich

Hi,

folgendes Problem:

Wenn du mit VB.NET 2008 entwickelst brauchst du das .NET Framework 3.5 auf ALLLEN Rechner auf denen dein kompiliertes Programm ausgeführt wird, den dieses brauchst .NET 3.5.
Wenn du mit VB.NET 2005 entwickelst brauchst du "nur" das Framework 2.5 und hier ist die Wahrscheinlichkeit höher das es auf allen Rechnern installiert ist. Ggf. Kannst du das ja mal mit den Admins abklären und fragen ob alle Rechner .NET 3.5 haben (dann würde ich es mit VB.NET 2008 entwickeln)

Das Beispiel muss ich daheim noch schnell schreiben  . Habe hier gerade kein CATIA und auch kein VB.NET 2005 (das hab ich daheim auch nicht kann ich aber runterladen  )

Denke ich werde heute Abend dazukommen und dir ein Beispiel anhängen 

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

Die KATJA ist halt doch nur ne zickige Französin

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

cading12
Mitglied


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

Beiträge: 4
Registriert: 17.06.2009

erstellt am: 18. Jun. 2009 18: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,

also ich hab jetzt eine scheinbar ganz einfache Lösung für mein Problem und musste dazu nicht mal was runterladen.

Habe ein vb Script geschrieben, dem ich die Argumente der Levles übergebe und das Argument show=0 oder 1, jenachdem ob ich das angegebne Level auf Hide oder Show setzen will. Das Ganze funktioniert dann mit einem geöffneten CatPart.

Code:
on error resume next

'##### Argumente einlesen
set Arg = WScript.Arguments

'##### Da die Levels von Perl mit 0 beginnen, muss ich +1 dazu addieren und in Integer umwandeln

p=CInt(Arg(0))+1 'Part Level, bei mir standardm. auf 1, da ich nur ein CATParrt habe
s=CInt(Arg(1))+1 'Set Level
e=CInt(Arg(2))+1 'Element Level
show=CInt(Arg(3)) '[1, 0]

Set CATIA = GetObject(, "CATIA.Application")

Set DOKUMENT = CATIA.ActiveDocument
Set AUSWAHL = DOKUMENT.Selection
Set visPropertySet1 = AUSWAHL.VisProperties
Set TEIL = DOKUMENT.Part
Set GS = Teil.HybridBodies

AUSWAHL.Add GS.Item(s)
Set SHOWHIDE = visPropertySet1.Parent
SHOWHIDE.SetShow show

Set GE = GS.Item(s).HybridShapes
AUSWAHL.Add GE.Item(e)
Set SHOWHIDE = visPropertySet1.Parent
SHOWHIDE.SetShow show

AUSWAHL.Clear


und dann einfach z.B showlevels.vbs 1 2 4 0

... vielleicht kann es ja auch jemand brauchen...

Gruß,
Kathrin

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 18. Jun. 2009 20:56    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 cading12 10 Unities + Antwort hilfreich

Hallo Daniel,

ich muss dir wiedersprechen: man kann sehr wohl aus VB2008 für .NET Framework 2.0 entwickeln. Alles was man braucht ist, unter My Project - Compile - Advanced compile options... ganz unten "Target framework" auf die benötigte umzustellen. Ich verwende es, um für .NET 3.0 aus VB Express 2008 zu entwickeln und funktioniert einwandfrei.

Gruß,
Zoltan

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

DanielFr.
Moderator
Manager


Sehen Sie sich das Profil von DanielFr. 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: 19. Jun. 2009 06: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 cading12 10 Unities + Antwort hilfreich

Hi Zoltan,

ah ok das hab ich nicht gewusst ist aber eine schöne Info  .

Danke dir

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

Die KATJA ist halt doch nur ne zickige Französin

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