Code:
' NX 12.0.1.7
' Journal created by rb on Fri Dec 21 14:35:20 2018 Mitteleuropäische Zeit'
Option Strict Off
Imports System
Imports NXOpen
Imports NXOpenUI
Imports System.Windows.Forms
Module NXJournal
Sub Main (ByVal args() As String)
Dim theSession As NXOpen.Session = NXOpen.Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
Dim theUISession As UI = UI.GetUI
Dim partnr As String = ""
Dim findpart As String = ""
'Main.Controls(args & "Main").Visible = true
'input box: prompt, title, and initial text
partnr = NXInputBox.GetInputString("PosNr des zu spiegelnden Parts angeben: (01.02.005)", "Parts spiegeln", "")
partnr = partnr.Replace(".","_")
findpart = COMPONENT + partnr
'echo the input
MsgBox("PartNr: """ & partnr & """")
Dim displayPart As NXOpen.Part = theSession.Parts.Display
' ----------------------------------------------
' Menu: Insert->Associative Copy->WAVE Geometry Linker...
' ----------------------------------------------
Dim markId1 As NXOpen.Session.UndoMarkId = Nothing
markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Start")
Dim nullNXOpen_Features_Feature As NXOpen.Features.Feature = Nothing
Dim waveLinkBuilder1 As NXOpen.Features.WaveLinkBuilder = Nothing
waveLinkBuilder1 = workPart.BaseFeatures.CreateWaveLinkBuilder(nullNXOpen_Features_Feature)
Dim waveDatumBuilder1 As NXOpen.Features.WaveDatumBuilder = Nothing
waveDatumBuilder1 = waveLinkBuilder1.WaveDatumBuilder
Dim compositeCurveBuilder1 As NXOpen.Features.CompositeCurveBuilder = Nothing
compositeCurveBuilder1 = waveLinkBuilder1.CompositeCurveBuilder
Dim waveSketchBuilder1 As NXOpen.Features.WaveSketchBuilder = Nothing
waveSketchBuilder1 = waveLinkBuilder1.WaveSketchBuilder
Dim waveRoutingBuilder1 As NXOpen.Features.WaveRoutingBuilder = Nothing
waveRoutingBuilder1 = waveLinkBuilder1.WaveRoutingBuilder
Dim wavePointBuilder1 As NXOpen.Features.WavePointBuilder = Nothing
wavePointBuilder1 = waveLinkBuilder1.WavePointBuilder
Dim extractFaceBuilder1 As NXOpen.Features.ExtractFaceBuilder = Nothing
extractFaceBuilder1 = waveLinkBuilder1.ExtractFaceBuilder
Dim mirrorBodyBuilder1 As NXOpen.Features.MirrorBodyBuilder = Nothing
mirrorBodyBuilder1 = waveLinkBuilder1.MirrorBodyBuilder
Dim curveFitData1 As NXOpen.GeometricUtilities.CurveFitData = Nothing
curveFitData1 = compositeCurveBuilder1.CurveFitData
curveFitData1.Tolerance = 0.01
curveFitData1.AngleTolerance = 0.5
extractFaceBuilder1.FaceOption = NXOpen.Features.ExtractFaceBuilder.FaceOptionType.FaceChain
waveLinkBuilder1.Type = NXOpen.Features.WaveLinkBuilder.Types.MirrorBodyLink
extractFaceBuilder1.FaceOption = NXOpen.Features.ExtractFaceBuilder.FaceOptionType.FaceChain
extractFaceBuilder1.AngleTolerance = 45.0
waveDatumBuilder1.DisplayScale = 2.0
extractFaceBuilder1.ParentPart = NXOpen.Features.ExtractFaceBuilder.ParentPartType.OtherPart
mirrorBodyBuilder1.ParentPartType = NXOpen.Features.MirrorBodyBuilder.ParentPart.OtherPart
theSession.SetUndoMarkName(markId1, "WAVE Geometry Linker Dialog")
compositeCurveBuilder1.Section.DistanceTolerance = 0.01
compositeCurveBuilder1.Section.ChainingTolerance = 0.0094999999999999998
compositeCurveBuilder1.Section.AngleTolerance = 0.5
compositeCurveBuilder1.Section.DistanceTolerance = 0.01
compositeCurveBuilder1.Section.ChainingTolerance = 0.0094999999999999998
mirrorBodyBuilder1.Associative = True
mirrorBodyBuilder1.MakePositionIndependent = False
mirrorBodyBuilder1.FixAtCurrentTimestamp = False
mirrorBodyBuilder1.InheritDisplayProperties = False
Dim scCollector1 As NXOpen.ScCollector = Nothing
scCollector1 = mirrorBodyBuilder1.MirrorBodyCollector
mirrorBodyBuilder1.CopyThreads = True
mirrorBodyBuilder1.FeatureOption = NXOpen.Features.MirrorBodyBuilder.FeatureOptionType.OneFeatureForAllBodies
' ----------------------------------------------
' Dialog Begin Find Component
' ----------------------------------------------
Dim rotMatrix1 As NXOpen.Matrix3x3 = Nothing
rotMatrix1.Xx = -0.86737089712805193
rotMatrix1.Xy = -0.24910341688861962
rotMatrix1.Xz = 0.4308308421059206
rotMatrix1.Yx = 0.18879575276592278
rotMatrix1.Yy = 0.63628972211310852
rotMatrix1.Yz = 0.74799167994755966
rotMatrix1.Zx = -0.46046052008052807
rotMatrix1.Zy = 0.73012524763059428
rotMatrix1.Zz = -0.50486951999455432
Dim translation1 As NXOpen.Point3d = New NXOpen.Point3d(-345.87527669145163, -356.71138832921025, 1378.5799999999999)
displayPart.ModelingViews.WorkView.SetRotationTranslationScale(rotMatrix1, translation1, 0.29136406091137773)
Dim component1 As NXOpen.Assemblies.Component = CType(displayPart.ComponentAssembly.RootComponent.FindObject(findpart), NXOpen.Assemblies.Component)
Dim component2 As NXOpen.Assemblies.Component = CType(component1.FindObject(findpart), NXOpen.Assemblies.Component)
Dim component3 As NXOpen.Assemblies.Component = CType(component2.FindObject(findpart), NXOpen.Assemblies.Component)
Dim component4 As NXOpen.Assemblies.Component = CType(component3.FindObject(findpart), NXOpen.Assemblies.Component)
Dim datumPlane1 As NXOpen.DatumPlane = CType(component4.FindObject("NC_Achse"), NXOpen.DatumPlane)
mirrorBodyBuilder1.Plane.Value = datumPlane1
Dim markId2 As NXOpen.Session.UndoMarkId = Nothing
markId2 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "WAVE Geometry Linker")
theSession.DeleteUndoMark(markId2, Nothing)
Dim markId3 As NXOpen.Session.UndoMarkId = Nothing
markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "WAVE Geometry Linker")
Dim sourcepartoccurrences1(0) As NXOpen.TaggedObject
Dim component5 As NXOpen.Assemblies.Component = CType(component3.FindObject(), NXOpen.Assemblies.Component)
sourcepartoccurrences1(0) = component5
mirrorBodyBuilder1.SetSourcePartOccurrences(sourcepartoccurrences1)
Dim selectedobjects1(0) As NXOpen.Assemblies.ProductInterface.InterfaceObject
Dim part1 As NXOpen.Part = CType(theSession.Parts.FindObject("02_10_005__MESSER__123456"), NXOpen.Part)
Dim interfaceObject1 As NXOpen.Assemblies.ProductInterface.InterfaceObject
interfaceObject1 = CType(part1.ProductInterface.FindObject("EXTRACTED_BASE_BODY(192)"), NXOpen.Assemblies.ProductInterface.InterfaceObject)
selectedobjects1(0) = interfaceObject1
mirrorBodyBuilder1.SetProductInterfaceObjects(selectedobjects1)
Dim nXObject1 As NXOpen.NXObject = Nothing
nXObject1 = waveLinkBuilder1.Commit()
theSession.DeleteUndoMark(markId3, Nothing)
theSession.SetUndoMarkName(markId1, "WAVE Geometry Linker")
waveLinkBuilder1.Destroy()
theSession.CleanUpFacetedFacesAndEdges()
Dim rotMatrix2 As NXOpen.Matrix3x3 = Nothing
rotMatrix2.Xx = -0.85805544272999634
rotMatrix2.Xy = -0.25601399244375744
rotMatrix2.Xz = 0.44519399465226484
rotMatrix2.Yx = 0.1957743428353885
rotMatrix2.Yy = 0.63835891410912327
rotMatrix2.Yz = 0.74442615716052929
rotMatrix2.Zx = -0.47477706756835325
rotMatrix2.Zy = 0.72591647759947386
rotMatrix2.Zz = -0.49762636953920181
Dim translation2 As NXOpen.Point3d = New NXOpen.Point3d(-342.45569857612941, -356.71138832921025, 1378.5799999999999)
displayPart.ModelingViews.WorkView.SetRotationTranslationScale(rotMatrix2, translation2, 0.29308577238598571)
' ----------------------------------------------
' Menu: Tools->Journal->Stop Recording
' ----------------------------------------------
Dim rotMatrix3 As NXOpen.Matrix3x3 = Nothing
rotMatrix3.Xx = -0.8560378779220611
rotMatrix3.Xy = -0.25413853109246953
rotMatrix3.Xz = 0.45012526987146484
rotMatrix3.Yx = 0.19784843384180226
rotMatrix3.Yy = 0.6433983717773113
rotMatrix3.Yz = 0.73952317909626808
rotMatrix3.Zx = -0.47755120017548147
rotMatrix3.Zy = 0.72211643258443126
rotMatrix3.Zz = -0.50049246647925705
Dim translation3 As NXOpen.Point3d = New NXOpen.Point3d(-348.53074531105369, -355.97404757205697, 1378.5799999999999)
displayPart.ModelingViews.WorkView.SetRotationTranslationScale(rotMatrix3, translation3, 0.29676540779546212)
End Sub
End Module