|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 21.05.2010 um 20:33 Uhr (0)
Hallo zusammen,bin auf der Suche nach einem VBA-Skript, welches mir erlaubt aus Excel heraus die Stückliste eines geöffneten Catia-product in Excel einzulesen. Später soll dann diese Stückliste noch erweitert werden, wie z.B. mit Gewicht, Volumen oder Material der Teile. Da ich noch neu im Umgang mit Catia bin, wäre ich über jede Hilfe sehr dankbar.viele Grüße,catiavba
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 22.05.2010 um 10:50 Uhr (0)
Danke für die schnelle Antwort. Die Systeminfo habe ich gleich eingestellt Dann werde ich mich mal einlesen...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 11:49 Uhr (0)
Habe es nun getestet. Sieht ganz gut aus, die Textdatei wird erstellt. So wie ich das bisher sehe kann ich jedoch mit der Funktion nur eine Datei erstellen und diese anschließend wieder in Excel einlesen. Gibt es keine Möglichkeit, mit der ich auf die BOM wie auf ein Array zugreifen kann?
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 12:32 Uhr (0)
Habe es jetzt auch mal per Skript gelöst. Hier mal ein Excel-VBA Beispiel, welches die Namen der Teile die sich im aktiven Dokument befinden in eine Tabelle schreibt:Set CATIA = GetObject(, "CATIA.APPLICATION")Set activedoc = CATIA.ActiveDocument.ProductAnzahlProducts = activedoc.Products.Counti = 1For Y = 1 To AnzahlProductstabelle1.Cells(Y, 1).Value = activedoc.Products.Item(i).Namei = i + 1Next Y
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 12:56 Uhr (0)
Eine Frage doch noch: Das Produkt besteht je meist aus mehreren Baugruppen. Diese haben wieder weitere Unterbaugruppen etc.... Um die BOM nachzubauen, muss das Skript bei jedem Item wieder in die Products-Hierarchie abtauchen und nach weiteren Items suchen und dann in der BOM die Menge erhöhen. Gibt es da eventuell schon etwas fertiges? Falls nicht werde ich das Skript weiter ausbauen müssen...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 13:44 Uhr (0)
Auf dem Weg bin ich schon. Habe folgendes Skript in dem Buch "Catia V5 - Makroprogrammierung mit VB" gefunden und die erste sub (wohl falsch) angepasst:------------------------------------Sub CATmain() Set CATIA = GetObject(, "CATIA.APPLICATION") Set activedoc = CATIA.ActiveDocument.Product Analysieren (activedoc) End SubPublic Function Analysieren(P As Product) Name ausgeben MsgBox (P.PartNumber) Liste analysieren Dim PP As Products Dim I As Integer Set PP = P.Pro ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 17:28 Uhr (0)
Der Einzige Hinweis den ich finden konnte ist die Fehlermeldung.Mit Zeile 4 beziehe ich mich auf den Aufruf der 2. Sub: "Analysieren (activedoc)"Danke für die Unterstützung.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 17:37 Uhr (0)
So aber jetzt geht es. Man muss "call" vor den Aufruf der sub setzten. Das Skript aus dem Buch taugt jedoch wirklich nichts. Werde mir mal die 2 genannten Links ansehen.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Aus Excel mit VBA eine Stückliste erstellen
catiavba am 29.05.2010 um 19:07 Uhr (0)
Habe den Code jetzt fertig. Danke bgrittmann . Falls es jemanden interessiert, hier der fertige Code:Dim y As Integer ZeilenzählerDim xMenge Salte MengeDim xName SPalte NameDim xPartNumber Spalte PartNumber Sub CATMain() y = 1 xMenge = 1 xName = 2 xPartNumber = 3 Set CATIA = GetObject(, "CATIA.APPLICATION") Set oRoot = CATIA.ActiveDocument Set oProducts = oRoot.Product.Products Call SUB_ProdScan(oProducts) End SubSub SUB_ProdScan(oProducts)ySuche = 1 For I = 1 To oProducts.Count ...
|
In das Form CATIA V5 Programmierung wechseln |