70 lines
3.0 KiB
VB.net
70 lines
3.0 KiB
VB.net
' 调试: 单步 STEP 导出定位 "File already exists" 来源
|
|
Option Strict Off
|
|
Imports System
|
|
Imports System.IO
|
|
Imports System.Text
|
|
Imports NXOpen
|
|
Imports NXOpen.UF
|
|
|
|
Module DebugExport
|
|
Sub Main()
|
|
Dim sb As New StringBuilder()
|
|
Dim cur As String = Directory.GetCurrentDirectory()
|
|
Dim masterPath As String = Path.Combine(cur, "KC_master.prt")
|
|
sb.AppendLine("CWD=" & cur & " masterExists=" & File.Exists(masterPath))
|
|
Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing
|
|
Session.GetSession().Parts.OpenBaseDisplay(masterPath, partLoadStatus1)
|
|
Dim w As Part = Session.GetSession().Parts.Work
|
|
sb.AppendLine("Work=" & (If(w Is Nothing, "NULL", w.FullPath)))
|
|
If w IsNot Nothing Then
|
|
Dim ufs As UFSession = UFSession.GetUFSession()
|
|
Try
|
|
ufs.Modl.EditExp("stroke=87")
|
|
ufs.Modl.Update()
|
|
sb.AppendLine("EditExp+Update OK")
|
|
Catch ex As Exception
|
|
sb.AppendLine("EditExp/Update 失败: " & ex.Message)
|
|
End Try
|
|
' 诊断: 实体数与引用集
|
|
Dim bodyCount As Integer = 0
|
|
Try
|
|
For Each b As NXOpen.Body In w.Bodies
|
|
bodyCount += 1
|
|
Next
|
|
Catch
|
|
End Try
|
|
sb.AppendLine("实体数=" & bodyCount)
|
|
Try
|
|
For Each rs As NXOpen.ReferenceSet In w.GetAllReferenceSets()
|
|
sb.AppendLine("引用集: " & rs.Name)
|
|
Next
|
|
Catch ex As Exception
|
|
sb.AppendLine("引用集枚举失败: " & ex.Message)
|
|
End Try
|
|
Dim outDir As String = Path.Combine(cur, "dbg_out")
|
|
Directory.CreateDirectory(outDir)
|
|
Dim stpPath As String = Path.Combine(outDir, "DBG.stp")
|
|
If File.Exists(stpPath) Then File.Delete(stpPath)
|
|
Try
|
|
Dim sc As NXOpen.StepCreator = Session.GetSession().DexManager.CreateStepCreator()
|
|
sc.ExportFrom = NXOpen.StepCreator.ExportFromOption.ExistingPart ' 批处理无显示部件 → 直接处理部件文件
|
|
sc.InputFile = masterPath
|
|
sc.ExportAs = NXOpen.StepCreator.ExportAsOption.Ap214
|
|
sc.OutputFile = stpPath
|
|
sc.ColorAndLayers = True
|
|
sc.Commit()
|
|
sc.Destroy()
|
|
sb.AppendLine("STEP 导出成功: " & stpPath & " size=" & (New FileInfo(stpPath)).Length)
|
|
Catch ex As Exception
|
|
sb.AppendLine("STEP 导出失败: " & ex.GetType().Name & " / " & ex.Message)
|
|
Dim inner As Exception = ex.InnerException
|
|
While inner IsNot Nothing
|
|
sb.AppendLine(" inner: " & inner.Message)
|
|
inner = inner.InnerException
|
|
End While
|
|
End Try
|
|
End If
|
|
File.WriteAllText(Path.Combine(cur, "debug-export.txt"), sb.ToString(), Encoding.UTF8)
|
|
End Sub
|
|
End Module
|