Autor
|
Thema: Catia über Excel VBA starten (3039 mal gelesen)
|
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 23. Sep. 2004 11:38 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Ich habe mir eine Exceltabelle mit verschiedenen Punkten (Koordinaten x,y,z) die alle untereinander abhängig sind. Wie kann ich jetzt über VBA in Excel Catia V5 starten, und ein neues Part anlegen und die Punkte in einem geöffneten Körper einlesen? Danke für die Hilfe, fange erst an mich mit der Programmierung von Catia zu beschäftigen. Gruß Hugo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 25. Sep. 2004 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
Hallo Hugo, schau mal in die Excel Datei im Anhang (Excel 2003). Das VBA Makro startet Catia oder aktiviert es wenn bereits gestartet. Ein Part wird erzeugt. Ein offener Körper wird erzeugt. Die Punkte aus dem Excelsheet werden erzeugt. Die Schleife zum Erzeugen der Punkte muß auf deine Exceltabelle angepasst werden (hab ja keine Ahnung wie die aussieht) C4N Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 01. Okt. 2004 16:39 <-- editieren / zitieren --> Unities abgeben:
|
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 11. Okt. 2004 15:01 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
Hallo Hugo, kein Spezialist, Hobby Programmierer. Hab mit Excel VBA begonnen und nach und nach verschiedene Projekte verwirklicht. Hilfe zu Excel oder Word VBA findest du unter anderem im installationsordner von Office , z. B. C:\Programme\Microsoft Office\Office10. Hier befinden sich Dateien die mit .chm oder .hlp enden und im Dateinamen VBA beinhalten. C4N Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 17. Nov. 2004 09:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Das mit Excel klappt wunderbar. Nur wie kann nachdem ich Excel initialisiert habe auch weider beenden, denn es läuft so die ganze Zeit im Hintergrung weiter (ist in der Task List zu sehen!)? Irgendwie mit Excel.close oder so??? Gruß Hugo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 17. Nov. 2004 18:45 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
|
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 17. Nov. 2004 20:01 <-- editieren / zitieren --> Unities abgeben:
N Abend Befehl ohne Wirkung Setze ihn nach part1.update und excel ist dann immer noch activ Habe ein weiter Frage - über den Befehl ActiveWorksheet.copy kopiere ich mir eine einzeles Arbeitsbaltt in eine neue mappe und speichere diese. sobald ichdiese mappe dann öffen kommt die abfrage ob die verknüpfungen zur ursprungsdatei aktualisiert werden sollen (das ursprungsbaltt ist mit anderen blätter in der großen arbeitsmappe verknüpft. kann ich diese abfrage abschalten? Gruß Hugo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 18. Nov. 2004 11:10 <-- editieren / zitieren --> Unities abgeben:
und gleich noch eine frage, du hattest schon mal auf eine frage zur masse, volumen, etc. ermittlung in catia geschrieben. bekome ich das auch als excel datei und nicht als .txt hin, wenn ich die masse eines gesamten Produktes(!) herausbekommen möchte??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 18. Nov. 2004 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
Hallo Hugo, Frage: Wie startest du Excel? Über ein anderes Programm und dessen Programmierschnittstelle? Solte das der Fall sein mußt du das Objekt zurücksetzen mit set objektname = nothing Aktualisieren der Verknüpfungen lt. MS Hilfe: Aktualisieren der Verknüpfungen beim Öffnen von Arbeitsmappen nicht nachfragen, sondern diese automatisch aktualisieren Diese Option ist nur für den aktuellen Benutzer relevant und betrifft nur die geöffneten Arbeitsmappen. Andere Benutzer der Arbeitsmappe sind nicht betroffen. Diese Option wirkt sich auch auf Verknüpfungen zu anderen Programmen aus. Klicken Sie im Menü Extras auf Optionen und dann auf die Registerkarte Bearbeiten. Deaktivieren Sie das Kontrollkästchen Aktualisieren von automatischen Verknüpfungen bestätigen. Wenn das Kästchen deaktiviert ist, werden die Verknüpfungen automatisch aktualisiert und es wird keine Eingabeaufforderung angezeigt. C4N
Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 18. Nov. 2004 13:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Der Befehl funktioniert auch nicht: Excel läuft im Hintergrund weiter. Es ist eigentlich immer noch der gleiche Programmaufbau wie bei Dir im Beispielprogramm oben: Dim Excel As Object On Error Resume Next Set Excel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set Excel = CreateObject("Excel.Application") Excel.Visible = False 'Excel im Hintergrund auch bei true noch da End If Wie mache ich das mit der masse in catia
über analyze oder über inertias?? Gruß Hugo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 18. Nov. 2004 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
Hallo Hugo, in dem Beispielmakro von mir wird Catia von Excel aus gestartet und gesteuert. In dem Beispiel von dir wird Excel von Catia aus angesprochen. Du erstellst deinen Objektverweis mit: Set Excel = CreateObject("Excel.Application") zum beenden brauchst du dann:
Excel.quit Der Beitrag zur masse, volumen, etc. ermittlung in catia war nicht von mir. Da kann ich dir leider nicht weiterhelfen.
C4N
Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 18. Nov. 2004 14:36 <-- editieren / zitieren --> Unities abgeben:
|
commader_hugo Mitglied Student Mechatronik
Beiträge: 40 Registriert: 02.09.2004
|
erstellt am: 23. Nov. 2004 16:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Muss dich noch mal mit dem Excelproblem belästigen soe sieht es aus ... On Error GoTo Startfehler Dim Excel As Object On Error Resume Next Set Excel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set Excel = CreateObject("Excel.Application") Excel.Visible = False 'Excel im Hintergrund End If Workbooks.Open Pfad Sheets(1).Activate ... excel.quit end sub ist aber immer noch in der task list zu sehen??? was kann der fehler sein? Gruß Hugo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 70 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29
|
erstellt am: 23. Nov. 2004 22:23 <-- editieren / zitieren --> Unities abgeben: Nur für commader_hugo
Hallo Hugo, denke der Fehler liegt in der Fehlerbehandlungsroutine. Da On Error Resume Next das Makro anweist bei einem Fehler mit dem nächsten Befehl fortzufahren bekommst du nie eine Fehlermeldung bei fehlerhaftem Programmcode. Habe deinen Code umgeschrieben und getestet. Hat funktioniert. 'CUT HERE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Sub catmain() 'Wozu? 'On Error GoTo Startfehler Dim Excel As Object ' Versuchen ein evtl. bereits geöffnetes Excel zu aktivieren ' Sollte kein Excel geöffnet sein erzeugt dieser befehl einen Fehler ' deshalb mit On Error Resume Next im falle eines Fehlers mit dem nächsten Befehl fortfahren On Error Resume Next Set Excel = GetObject(, "Excel.Application") ' Wenn der vorhergehene Befehl einen Fehler erzeugt hat (err.Number <> 0) Excel starten If Err.Number <> 0 Then Set Excel = CreateObject("Excel.Application") Excel.Visible = True 'Excel im Hintergrund End If ' !!! Die Fehlerbehandlungsroutine zurücksetzen, ansonsten lösen folgende fehlerhafte Befehle keine Fehlermeldung aus On Error GoTo 0 ' Dieser Befehl ist fehlerhaft, da die Fehlerbehandlungsroutine aber lautete On Error Resume Next wurde der Befehl übersprungen: ' Workbooks.Open "c:\temp\test.xls" ' Das Objekt EXCEL muß angesprochen werden ' Richtiger Befehl: Excel.Workbooks.Open "c:\temp\test.xls" ' Ebenso falsch: ' Sheets(1).Activate ' Muss lauten: Excel.Sheets(1).Activate Excel.Quit End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |