iamarunner 发表于 2019-2-16 08:55:00

UG工程图所有尺寸导出excel

想把UG工程图中所有已标注的尺寸(含公差),形位公差等所有内容导出到excel中,大神有方法做到吗?

binya2000 发表于 2019-2-16 09:42:27

iamarunner 发表于 2019-2-18 22:33:03

代码如下:

Option Strict Off
Imports System
Imports NXOpen
Imports NXOpenUI

Module Module1

    Sub Main()

      Dim theSession As Session = Session.GetSession()
      Dim theUISession As UI = UI.GetUI
      Dim workPart As Part = theSession.Parts.Work

      Dim lw As ListingWindow = theSession.ListingWindow
      lw.Open()

      Dim markId1 As Session.UndoMarkId
      markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "journal")

      'change excelFileName to meet your needs
      Const excelFileName As String = "C:\Temp\part_dimensions.xlsm"
      Dim row As Long = 1
      Dim column As Long = 1

      'create Excel object
      Dim objExcel = CreateObject("Excel.Application")
      If objExcel Is Nothing Then
            theUISession.NXMessageBox.Show("Error", NXMessageBox.DialogType.Error, "Could not start Excel, journal exiting")
            theSession.UndoToMark(markId1, "journal")
            Exit Sub
      End If

      'open Excel file
      Dim objWorkbook = objExcel.Workbooks.Open(excelFileName)
      If objWorkbook Is Nothing Then
            theUISession.NXMessageBox.Show("Error", NXMessageBox.DialogType.Error, "Could not open Excel file: " & excelFileName & ControlChars.NewLine & "journal exiting.")
            theSession.UndoToMark(markId1, "journal")
            Exit Sub
      End If

      objExcel.visible = True

      objExcel.Cells(row, 1) = workPart.FullPath

      Dim myDimText() As String
      Dim myDimDualText() As String
      For Each myDimension As Annotations.Dimension In workPart.Dimensions
            row += 1
            myDimension.GetDimensionText(myDimText, myDimDualText)
            objExcel.Cells(row, column) = myDimText(0)
      Next

      'objExcel.Quit()
      objWorkbook = Nothing
      objExcel = Nothing

      lw.Close()

    End Sub


    Public Function GetUnloadOption(ByVal dummy As String) As Integer

      'Unloads the image when the NX session terminates
      GetUnloadOption = NXOpen.Session.LibraryUnloadOption.AtTermination

      '----Other unload options-------
      'Unloads the image immediately after execution within NX
      'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately

      'Unloads the image explicitly, via an unload dialog
      'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Explicitly
      '-------------------------------

    End Function

End Module


运行后弹出错误:System.Runtime.InteropService.COMException:
头大

miay_miay* 发表于 2024-8-18 15:05:15

iamarunner 发表于 2019-2-18 22:33
代码如下:

Option Strict Off


这解决了吗,可以分享下吗?
页: [1]
查看完整版本: UG工程图所有尺寸导出excel