Imports System Imports NXOpen Imports System.Windows.Forms Imports System.IO Module NXJournal Sub Main(ByVal args() As String) Dim excelFile, directoryName, fileName, Description, Number As String Dim openFileDialog1 As New OpenFileDialog() openFileDialog1.Filter = "Excel files (*.xls,*.xlsx)|*.xls;*.xlsx|All files (*.*)|*.*" openFileDialog1.FilterIndex = 1 openFileDialog1.RestoreDirectory = False If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then Try Dim EXCEL = CreateObject("Excel.Application") EXCEL.Visible = False EXCEL.DisplayAlerts = False excelFile = openFileDialog1.Filename() directoryName = Path.GetDirectoryName(excelFile) Dim Doc = EXCEL.Workbooks.Open(excelFile, ReadOnly:=True) Dim Sheets = EXCEL.Sheets Dim Sheet = Doc.Sheets.Item(1) Dim rowCounter As Integer For rowCounter = 1 To Sheet.UsedRange.Rows.Count - 1 fileName = Sheet.Cells((rowCounter + 1), 1).Value Description = Sheet.Cells((rowCounter + 1), 2).Value Number = Sheet.Cells((rowCounter + 1), 3).Value Dim theSession As NXOpen.Session = NXOpen.Session.GetSession() Dim fileNew1 As NXOpen.FileNew = Nothing fileNew1 = theSession.Parts.FileNew() fileNew1.TemplateFileName = "model-plain-1-mm-template.prt" fileNew1.UseBlankTemplate = False fileNew1.ApplicationName = "ModelTemplate" fileNew1.Units = NXOpen.Part.Units.Millimeters fileNew1.TemplateType = NXOpen.FileNewTemplateType.Item fileNew1.TemplatePresentationName = "Model" fileNew1.SetCanCreateAltrep(False) fileNew1.NewFileName = directoryName & "\" & fileName & ".prt" fileNew1.Commit() Dim workPart As NXOpen.Part = theSession.Parts.Work fileNew1.Destroy() Dim attributePropertiesBuilder1 As NXOpen.AttributePropertiesBuilder = Nothing attributePropertiesBuilder1 = theSession.AttributeManager.CreateAttributePropertiesBuilder(workPart, objects1, NXOpen.AttributePropertiesBuilder.OperationType.None) attributePropertiesBuilder1.IsArray = False attributePropertiesBuilder1.Title = "Description" attributePropertiesBuilder1.StringValue = Description attributePropertiesBuilder1.CreateAttribute() attributePropertiesBuilder1.IsArray = False attributePropertiesBuilder1.Title = "Number" attributePropertiesBuilder1.DataType = NXOpen.AttributePropertiesBaseBuilder.DataTypeOptions.Number attributePropertiesBuilder1.Units = "" attributePropertiesBuilder1.NumberValue = Number attributePropertiesBuilder1.CreateAttribute() Dim partSaveStatus1 As NXOpen.PartSaveStatus = Nothing partSaveStatus1 = workPart.Save(NXOpen.BasePart.SaveComponents.True, NXOpen.BasePart.CloseAfterSave.True) Next EXCEL.Quit() Catch Ex As Exception MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message) Finally If (excelFile IsNot Nothing) Then EXCEL.Quit() End If End Try End If End Sub End Module