首次提交: OnebotCatalog 项目代码与文档(含 NX 按需生成服务二期、后台、一键启动)

This commit is contained in:
wangruiguo
2026-09-03 17:55:45 +08:00
commit fafa86d3a6
241 changed files with 78656 additions and 0 deletions

View 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