Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia Script aus Excel 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:  Catia Script aus Excel starten (6450 mal gelesen)
x.race
Mitglied


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

Beiträge: 4
Registriert: 02.02.2010

erstellt am: 02. Feb. 2010 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

Guten Morgen,

ich habe ein Problem, mit dem ich mich jetzt seit ca. 2Tagen herumärgere.
Ich bin ziemlicher vba und absoluter catia script Neuling.
Mein Problem ist:

Ich habe ein Makro in Catia erzeugt (*.catscript), dass ich gerne über excel vba starten möchte. Catia ist hierbei bereits geöffnet, es soll nur das Catia Makro gestartet werden.
Kann mir da jemand helfen?

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 02. Feb. 2010 11:01    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 x.race 10 Unities + Antwort hilfreich

Hallo,
was macht das Makro denn? Wäre es ggf. nicht einfach direkt ein Excel-VBA-makro zu machen und direkt von Excel auf V5 zuzugreifen?

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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: 02. Feb. 2010 14: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 Nur für x.race 10 Unities + Antwort hilfreich

ExecuteProcessus()
oder
ExecuteScript()

könnten die System-Funktionen sein, die du suchst.

In der OnlineDoc steht z.B.:

Dim params()
CATIA.SystemService.ExecuteScript"Part1.CATPart", catScriptLibraryTypeDocument, "Macro1.catvbs", "CATMain", params

ich halte es aber auch für besser, das Ganze aus Excel zu machen.

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

x.race
Mitglied


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

Beiträge: 4
Registriert: 02.02.2010

erstellt am: 03. Feb. 2010 09:52    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

Erst mal vielen Dank für die schnellen Antworten.
Das Makro soll im Prinzip nur zwei bestimmte Parts in einem Product öffnen und den Namen des einen Parts liest das Makro aus Excel aus.In CatScript sieht das Makro folgendermaßen aus:

Dim xl As Object
Dim Wert As  String
Sub CATMain()

    set xl = getobject("C:\Test.xls")
Wert = xl.Worksheets("Sheet1").Range("G2").Value
Name = xl.Worksheets("Kodaten").Range("G3").Value
Set documents1 = CATIA.Documents
Set productDocument1 = documents1.Add("Product")
Set specsAndGeomWindow1 = CATIA.ActiveWindow
Set viewer3D1 = specsAndGeomWindow1.ActiveViewer
Set viewpoint3D1 = viewer3D1.Viewpoint3D
Set product1 = productDocument1.Product
Set products1 = product1.Products
Dim arrayOfVariantOfBSTR1(0)
arrayOfVariantOfBSTR1(0) = "C:\"&wert&".model"
products1.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All"
Dim arrayOfVariantOfBSTR2(0)
arrayOfVariantOfBSTR2(0) = "C:\Bla.CATPart"
products1.AddComponentsFromFiles arrayOfVariantOfBSTR2, "All"
set xl = nothing

End sub

Aber wenn das direkt mit Excel VBA "befohlen" werden könnte, wäre das natürlich noch praktischer. Das Problem ist, dass ich mit den Hilfen, die ich im Internet gefunden habe, nicht großartig weiterkam.

CATIA.SystemService.ExecuteScript... gebe ich den Befehl nicht in einem CatiaVBA Makro ein?


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

x.race
Mitglied


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

Beiträge: 4
Registriert: 02.02.2010

erstellt am: 03. Feb. 2010 14: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

Okay, dass man im Prinzip den Code übernehmen kann, bis auf kleine Änderungen, war mir nicht klar.
Ich habe zwar noch das Problem, dass wenn ich jetzt den Befehl
Set productDocument1 = documents1.Add("Product")
und dann
Set specsAndGeomWindow1 = CATIA.ActiveWindow
eingebe, was funktioniert, wenn ich es in Catia laufen lasse, Excel Problemmeldungen anzeigt. Kommt daher, dass Catia vorher noch einen PartNamen für das Product erfragt, ich allerdings über record die passende Funktion nicht angezeigt bekomme.
Naja, umgangen habe ich das Ganze jetzt, indem ich einfach ein leeres Product ablege, dass immer geöffnet wird und dann unter anderem Namen abgespeichert wird.
Oder kennt vll doch jemand die passende Funktion um einfach ein
neues Product mithilfe eines Vba codes aus Excel heraus zu öffnen?
Der Code sieht mittlerweile so aus:
Code:

Sub CATMain()
    Dim xl As Object
    Dim Wert As String
    Set catia = GetObject(, "CATIA.Application")
    Wert = Sheets("Sheet2").Range("G2").Value
    Name = Sheets("Sheet2").Range("G3").Value
    sDatei = "H:\Test\Product1.Catproduct"
    F = ShellExecute(hwnd, "open", sDatei, vbNullString, vbNullString, 1)
    Set productDocument1 = catia.ActiveDocument
    Set product1 = productDocument1.Product
    Set products1 = product1.Products
    Dim bstr(0)
    bstr(0) = ThisWorkbook.Path & "\" & Wert & ".model"
    products1.AddComponentsFromFiles bstr, "All"
    Dim bstr2(0)
    bstr2(0) = "H:\Test\Part1.CATPart"
    products1.AddComponentsFromFiles bstr2, "All"
    Set xl = Nothing
    product1.PartNumber = Name
    catia.StartCommand ("Fit all in")
    catia.StartCommand ("Update All")
    product1.Update
    productDocument1.SaveAs "H:\Test\" & Name & ".CATProduct"
End Sub

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 03. Feb. 2010 17:52    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 x.race 10 Unities + Antwort hilfreich

Hallo,
super dass du es hin bekomme hast

Um ein neues Product anzulegen müsste der Code folgt lauten (ohne zu testen):
Set ProductDoc = CATIA.Documents.Add("Product")

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren

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

x.race
Mitglied


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

Beiträge: 4
Registriert: 02.02.2010

erstellt am: 04. Feb. 2010 09: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

Ja, der Befehl war mir schon bekannt, allerdings hat er mir ständig eine Fehlermeldung gebracht.
Kam daher, dass er eigentlich danach immer noch eine manuelle Partnummereingabe verlangt hat
und das Makro aber schon weiterlief. Ich habe das ganze jetzt einfach umgangen, indem ich in den
Options unter Product Structure die Option Part Number -> Manual input deaktiviert habe.
Also, vielen Dank nochmal für die Hilfen!

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

schurik01
Mitglied
Student


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

Beiträge: 12
Registriert: 09.12.2008

erstellt am: 13. Mrz. 2012 12:49    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 x.race 10 Unities + Antwort hilfreich

Grüß Gott,

ich habe ein ähnliches Problem. Der folgende Makro ruft ein Makro in CATIA auf:

Sub CATMain()
Dim SysServ
Dim myScript
Dim Params()
Set SysServ = CATIA.SystemService
myScript = SysServ.ExecuteScript("H:\CATIAMAKRO\VBA-Projekt1.catvba", catScriptLibraryTypeVBAProject, "Viereck", "CATMain", Params)
End Sub

Ich möchte aber, dass der Aufruf des CATVBA aus EXCEL geschieht. Dazu habe ich folgendes ohne Erfolg hinzugefügt (Obwohl ich mir sicher bin, dass es eigentlich funktionieren müsste):

Sub Main()

Dim params()
Dim SysServ
Dim myScript
Dim CATIA As Object

LibPath = "H:\CATIAMAKRO\VBA-Projekt1.catvba"
ScriptName = "Viereck"
FunctionName = "CATMain"

Set CATIA = GetObject(, "Catia.Application")
Set SysServ = CATIA.SystemService

myScript = SysServ.ExecuteScript(LibPath, catScriptLibraryTypeVBAProject, ScriptName, FunctionName, params)

End Sub


Für jede Hilfe bin ich euch dankbar

[Diese Nachricht wurde von schurik01 am 13. Mrz. 2012 editiert.]

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 13. Mrz. 2012 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 x.race 10 Unities + Antwort hilfreich

ich mache fogendes:

1.Butten in Excel erstellen
2.Modul zuweisen
3.in modul diesen Code:

Code:
Shell "Explorer.exe \\Server\CatiaV5\S4Manage\macros\Excel\_1_Auftrag Speichern-mit-Excel.CATScript", vbNormalFocus

Pfad natürlich anpassen

4.fertig


------------------
Sei Schlau bleib Dumm !!?!!

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

schurik01
Mitglied
Student


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

Beiträge: 12
Registriert: 09.12.2008

erstellt am: 13. Mrz. 2012 16:06    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 x.race 10 Unities + Antwort hilfreich

Danke für deine Antwort. Bei mir handelt es sich aber um catvba-Format. Ich hatte auch auf catvbs verändert gehabt. Excel hat es nicht geschluckt. Meine Button-Eingabe:

Private Sub CommandButton2_Click()
Shell "H:\CATIAMAKRO\Makro2.catvbs", vbNormalFocus
End Sub

Hat es vielleicht was damit zu tun, wie ich mein Pfad angebe?? Du hast zum Beispiel gar kein ":" sondern //

[Diese Nachricht wurde von schurik01 am 13. Mrz. 2012 editiert.]

[Diese Nachricht wurde von schurik01 am 13. Mrz. 2012 editiert.]

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 13. Mrz. 2012 16:51    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 x.race 10 Unities + Antwort hilfreich

Hallo,
das hat nur was damit zu tun das der Pfad von einen Server stammt.

füge mal noch Explorer.exe dan weiter H:\CATIAMAKRO........ ein.

das ist als würdest du Doppelklick auf die datei machen.


------------------
Sei Schlau bleib Dumm !!?!!

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

schurik01
Mitglied
Student


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

Beiträge: 12
Registriert: 09.12.2008

erstellt am: 13. Mrz. 2012 17:03    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 x.race 10 Unities + Antwort hilfreich


fehlermeldung.JPG

 
Brr. Jetzt kommt ein neues Problem?

Ich habe den Quellcode einfach kopiert, in txt eingefügt und als catscript gespeichert. Immerhin es öffnet das Makro, aber siehe Bild:

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 13. Mrz. 2012 17: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 Nur für x.race 10 Unities + Antwort hilfreich

Ohhhhh je

Ich will dir jetzt nicht denn Abend verderben.
Leider ist es so das bei CATScript eine Nacharbeit erforderlich ist
Wenn du jetzt ja sagt markiert er dir eine Zeile vor dieser muss dann die Anwendung geschrieben werden.
Siehe Fehlermeldung (Anweisung: Dim documents1 As Dokuments)

Aber warum legst du dir das Makro nicht auf einen Butten in Catia

oder legst dir eine Makrobibliothek
Bei Tools > Makros......
Drücke in Catia einfach "ALT+F8"

Lege eine neue Makrobibliothek an  > Vorhandene Bibliothek hinzufügen > Pfad wählen > ok
Dann noch den Pfad im ersten Fenster als du "Alt+F8" gedrückt hattest oben auswählen
Makro markieren >rechts auf ausführen


Jetzt kannst du es zumindest Testen

------------------
Sei Schlau bleib Dumm !!?!!

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



Landschaftsplaner/in - Umweltplaner/in Landschaftsarchitekt/in - Landschaftsökologe/in (m/w/d)

Wir sind ein etabliertes Planungsbüro mit Tätigkeitsschwerpunkt am Unteren Niederrhein, das seit vier Jahrzehnten für regionale und internationale Unternehmen, Behörden und private Auftraggeber umweltfachliche Planungsbeiträge zu verschiedensten Vorhaben erstellt. Im Bereich der Wasserwirtschaft und der Rohstoffgewinnung werden zudem Zulassungs- und Genehmigungsplanungen erarbeitet sowie die Verfahrensbegleitung und die Projektsteuerung übernommen....

Anzeige ansehenGeowissenschaften
schurik01
Mitglied
Student


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

Beiträge: 12
Registriert: 09.12.2008

erstellt am: 15. Mrz. 2012 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 x.race 10 Unities + Antwort hilfreich

Ich habe nun das Problem so gelöst, dass ich das Makro in Excel geschrieben habe und über Excel Catia steure.

Gruß

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