Sub Main() Dim CATIA As Object CATIA = GetObject(, "CATIA.Application") AppActivate("CATIA V5") Dim fileSystem1 As Object fileSystem1 = CATIA.FileSystem Dim Path As String Path = "d:\Temp\" Dim FileName As String FileName = "vvv1.txt" Dim Exists As Boolean Exists = fileSystem1.FileExists(Path & FileName) Dim FileNum As Integer FileNum = FreeFile() Dim file As Object file = fileSystem1.GetFile(Path & FileName) Dim TextStr As Object TextStr = file.OpenAsTextStream("ForReading") Dim readString As String readString = TextStr.ReadLine Dim zeichenfolge As Object zeichenfolge = Split(readString, " ", -1, vbTextCompare) Dim Radius As Single Radius = zeichenfolge(0) Dim Hoehe As Single Hoehe = zeichenfolge(1) Dim Produkt As Single Produkt = Radius * Hoehe 'Ab hier CATIA Dim documents1 As Object documents1 = CATIA.Documents Dim productDocument1 As Object productDocument1 = documents1.Add("Product") Dim product1 As Object product1 = productDocument1.product Dim products1 As Object products1 = product1.Products Dim product2 As Object product2 = products1.AddNewComponent("Part", "") Dim partDocument1 As Object partDocument1 = documents1.Item("Part1.CATPart") Dim part1 As Object 'As Part part1 = partDocument1.Part Dim bodies1 As Object 'As Bodies bodies1 = part1.Bodies Dim body1 As Object 'As Body body1 = bodies1.Item("Hauptkörper") Dim sketches1 As Object 'As Sketches sketches1 = body1.Sketches Dim originElements1 As Object 'As OriginElements originElements1 = part1.OriginElements Dim reference1 As Object 'As Reference reference1 = originElements1.PlaneXY Dim sketch1 As Object 'As Sketch sketch1 = sketches1.Add(reference1) Dim sketch1Variant As Object Dim arrayOfVariantOfDouble1(8) arrayOfVariantOfDouble1(0) = 0.0# arrayOfVariantOfDouble1(1) = 0.0# arrayOfVariantOfDouble1(2) = 0.0# arrayOfVariantOfDouble1(3) = 1.0# arrayOfVariantOfDouble1(4) = 0.0# arrayOfVariantOfDouble1(5) = 0.0# arrayOfVariantOfDouble1(6) = 0.0# arrayOfVariantOfDouble1(7) = 1.0# arrayOfVariantOfDouble1(8) = 0.0# sketch1Variant = sketch1 sketch1Variant.SetAbsoluteAxisData(arrayOfVariantOfDouble1) Dim factory2D1 As Object factory2D1 = sketch1.OpenEdition() Dim geometricElements1 As Object geometricElements1 = sketch1.GeometricElements Dim circle2D1 As Object circle2D1 = factory2D1.CreateClosedCircle(0.0#, 0.0#, Radius) sketch1.CloseEdition() part1.Update() Dim shapeFactory1 As Object shapeFactory1 = part1.ShapeFactory Dim pad1 pad1 = shapeFactory1.AddNewPad(sketch1, Hoehe) part1.Update() Dim LLB_CG_Sat_1_Coordinates(2) Dim Sats_Inertia As Object Sats_Inertia = product1.GetTechnologicalObject("Inertia") Sats_Inertia.GetCOGPosition(LLB_CG_Sat_1_Coordinates) Dim Volumen As Single Volumen = product1.Analyze.Volume 'Ab hier Ergebnisse ausgeben FileNum = FreeFile() FileOpen(FileNum, Path & "vvv1ergebnis.txt", OpenMode.Output) PrintLine(FileNum, "Radius: " & Radius & "mm") PrintLine(FileNum, "Höhe: " & Hoehe & "mm") PrintLine(FileNum, "Volumen: " & Volumen / 1000 ^ 3 & "m^3") PrintLine(FileNum, "X: " & LLB_CG_Sat_1_Coordinates(0) * 1000 & "mm , Y: " & LLB_CG_Sat_1_Coordinates(1) * 1000 & "mm, Z: " & LLB_CG_Sat_1_Coordinates(2) * 1000 & "mm") FileClose(FileNum) 'productDocument1.Close() MsgBox("Fertig!") End Sub