Files
OnebotCatalog/sample-data/tools/check-master.vb

70 lines
2.6 KiB
VB.net

' 检查母模: 特征数 / 实体数 / 表达式值
Option Strict Off
Imports System
Imports System.IO
Imports System.Text
Imports NXOpen
Imports NXOpen.UF
Module CheckMaster
Sub Main()
Dim sb As New StringBuilder()
Dim outPath As String = Path.Combine(Directory.GetCurrentDirectory(), "KC_master.prt")
Dim partLoadStatus1 As NXOpen.PartLoadStatus = Nothing
Session.GetSession().Parts.OpenBaseDisplay(outPath, partLoadStatus1)
Dim w As Part = Session.GetSession().Parts.Work
If w Is Nothing Then
sb.AppendLine("Work=NULL")
Else
Dim featCount As Integer = 0
Try
For Each f As NXOpen.Features.Feature In w.Features.GetFeatures()
featCount += 1
Next
Catch
End Try
sb.AppendLine("特征数=" & featCount)
Dim bodyCount As Integer = 0
Try
For Each b As NXOpen.Body In w.Bodies
bodyCount += 1
Next
Catch
End Try
sb.AppendLine("实体数=" & bodyCount)
Dim bi As Integer = 0
Try
For Each b As NXOpen.Body In w.Bodies
Dim fc As Integer = 0
Try
For Each f As NXOpen.Face In b.GetFaces()
fc += 1
Next
Catch
End Try
bi += 1
Try
For Each f As NXOpen.Face In b.GetFaces()
fc += 1
Next
Catch
End Try
sb.AppendLine("实体" & bi & " 面数=" & fc)
Next
Catch ex As Exception
sb.AppendLine("实体检查异常: " & ex.Message)
End Try
For Each nm As String In New String() {"bore", "stroke", "magOn", "mountIdx"}
Try
Dim e As NXOpen.Expression = w.Expressions.FindObject(nm)
sb.AppendLine("表达式 " & nm & "=" & (If(e Is Nothing, "(未找到)", e.Value)))
Catch ex As Exception
sb.AppendLine("表达式 " & nm & " 异常: " & ex.Message)
End Try
Next
sb.AppendLine("IsModified=" & w.IsModified)
End If
File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), "check-master.txt"), sb.ToString(), Encoding.UTF8)
End Sub
End Module