Imports System Imports NXOpen Imports NXOpen.UF Imports NXOpen.Utilities Module Module1 Dim sess As Session Dim ufs As UFSession Dim lw As ListingWindow Dim wp As Part Dim tol As Double = 0.5 Sub Main() sess = Session.GetSession ufs = UFSession.GetUFSession lw = sess.ListingWindow wp = sess.Parts.Work lw.Open() Dim udm As Session.UndoMarkId = sess.SetUndoMark(Session.MarkVisibility.Visible, "Simplify") Dim curves() As NXObject = get_visible_curves() lw.WriteLine("found " & curves.Length & " Curves in View " & wp.Views.WorkView.Name) simplify(curves) sess.UpdateManager.DoUpdate(udm) End Sub Private Function get_visible_curves() As NXObject() Dim nv, nc, i As Integer Dim vis(-1), cl(-1) As Tag ufs.View.AskVisibleObjects(wp.Views.WorkView.Tag, nv, vis, nc, cl) Dim crvs(vis.Length - 1) As NXObject i = 0 For Each ct As Tag In vis Dim nxo As NXObject = CType(NXObjectManager.Get(ct), NXObject) If TypeOf nxo Is Spline Or TypeOf nxo Is Ellipse Then crvs(i) = nxo i += 1 End If Next ReDim Preserve crvs(i - 1) Return crvs End Function Private Sub simplify(ByVal crvs() As NXObject) Dim sc As Integer Dim segm(-1), ct(0) As Tag For Each crv As NXObject In crvs ct(0) = crv.Tag ufs.Curve.CreateSimplifiedCurve(1, ct, tol, sc, segm) lw.WriteLine("created " & sc & " Segments from " & crv.ToString) Next End Sub Public Function GetUnloadOption(ByVal dummy As String) As Integer GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Explicitly End Function End Module