首次提交: OnebotCatalog 项目代码与文档(含 NX 按需生成服务二期、后台、一键启动)
This commit is contained in:
91
sample-data/tools/debug-export-all.vb
Normal file
91
sample-data/tools/debug-export-all.vb
Normal file
@@ -0,0 +1,91 @@
|
||||
' 调试: 四格式导出交叉测试 (STEP/Parasolid/IGES/STL) — 判断是几何问题还是翻译器配置问题
|
||||
Option Strict Off
|
||||
Imports System
|
||||
Imports System.IO
|
||||
Imports System.Text
|
||||
Imports NXOpen
|
||||
Imports NXOpen.UF
|
||||
|
||||
Module DebugExportAll
|
||||
Sub Main()
|
||||
Dim sb As New StringBuilder()
|
||||
Dim cur As String = Directory.GetCurrentDirectory()
|
||||
Dim masterPath As String = Path.Combine(cur, "KC_master.prt")
|
||||
Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing
|
||||
Session.GetSession().Parts.OpenBaseDisplay(masterPath, partLoadStatus1)
|
||||
Dim w As Part = Session.GetSession().Parts.Work
|
||||
Dim outDir As String = Path.Combine(cur, "dbg_out")
|
||||
Directory.CreateDirectory(outDir)
|
||||
For Each f As String In Directory.GetFiles(outDir)
|
||||
File.Delete(f)
|
||||
Next
|
||||
|
||||
' 保存工作部件 (导出器可能读文件; 也验证 Save 后实体仍在)
|
||||
Try
|
||||
Dim pss As NXOpen.PartSaveStatus = w.Save(NXOpen.BasePart.SaveComponents.True, NXOpen.BasePart.CloseAfterSave.False)
|
||||
If pss IsNot Nothing Then pss.Dispose()
|
||||
sb.AppendLine("Save OK")
|
||||
Catch ex As Exception
|
||||
sb.AppendLine("Save 失败: " & ex.Message)
|
||||
End Try
|
||||
|
||||
' 1) STL (显示几何三角化; 若此也不出网格 → 几何本身有问题)
|
||||
Try
|
||||
Dim stc As NXOpen.STLCreator = Session.GetSession().DexManager.CreateStlCreator()
|
||||
stc.OutputType = NXOpen.STLCreator.OutputTypeEnum.Binary
|
||||
stc.ChordalTol = 0.5
|
||||
stc.AdjacencyTol = 0.1
|
||||
stc.AutoNormalGen = True
|
||||
stc.OutputFile = Path.Combine(outDir, "T.stl")
|
||||
stc.Commit()
|
||||
stc.Destroy()
|
||||
sb.AppendLine("STL: " & (New FileInfo(Path.Combine(outDir, "T.stl"))).Length & " 字节")
|
||||
Catch ex As Exception
|
||||
sb.AppendLine("STL 失败: " & ex.Message)
|
||||
End Try
|
||||
|
||||
' 2) Parasolid (文件方式)
|
||||
Try
|
||||
Dim pe As NXOpen.ParasolidExporter = Session.GetSession().DexManager.CreateParasolidExporter()
|
||||
pe.ExportFrom = NXOpen.ParasolidExporter.ExportFromOption.DisplayedPart
|
||||
pe.ParasolidVersion = NXOpen.ParasolidExporter.ParasolidVersionOption.Current
|
||||
pe.OutputFile = Path.Combine(outDir, "T.x_t")
|
||||
pe.Commit()
|
||||
pe.Destroy()
|
||||
sb.AppendLine("Parasolid: " & (New FileInfo(Path.Combine(outDir, "T.x_t"))).Length & " 字节")
|
||||
Catch ex As Exception
|
||||
sb.AppendLine("Parasolid 失败: " & ex.Message)
|
||||
End Try
|
||||
|
||||
' 3) IGES (文件方式 ExistingPart)
|
||||
Try
|
||||
Dim ic As NXOpen.IgesCreator = Session.GetSession().DexManager.CreateIgesCreator()
|
||||
ic.ExportFrom = NXOpen.IgesCreator.ExportFromOption.ExistingPart
|
||||
ic.InputFile = masterPath
|
||||
ic.ExportModelData = True
|
||||
ic.OutputFile = Path.Combine(outDir, "T.igs")
|
||||
ic.Commit()
|
||||
ic.Destroy()
|
||||
sb.AppendLine("IGES: " & (New FileInfo(Path.Combine(outDir, "T.igs"))).Length & " 字节")
|
||||
Catch ex As Exception
|
||||
sb.AppendLine("IGES 失败: " & ex.Message)
|
||||
End Try
|
||||
|
||||
' 4) STEP (文件方式 ExistingPart)
|
||||
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 = Path.Combine(outDir, "T.stp")
|
||||
sc.ColorAndLayers = True
|
||||
sc.Commit()
|
||||
sc.Destroy()
|
||||
sb.AppendLine("STEP: " & (New FileInfo(Path.Combine(outDir, "T.stp"))).Length & " 字节")
|
||||
Catch ex As Exception
|
||||
sb.AppendLine("STEP 失败: " & ex.Message)
|
||||
End Try
|
||||
|
||||
File.WriteAllText(Path.Combine(cur, "debug-export-all.txt"), sb.ToString(), Encoding.UTF8)
|
||||
End Sub
|
||||
End Module
|
||||
Reference in New Issue
Block a user