Quantcast
Channel: NX Journaling - Journaling / NXOpen API
Viewing all articles
Browse latest Browse all 783

Start / End Hole Position

$
0
0

Below is code showing START hole coordinate (x,y,z). Is it possible to find END hole coordinate(x,y,z) when the depth limit of hole is Through Body?

Option Strict Off
Imports System
Imports NXOpen
Imports System.Collections.GenericImports NXOpen.FeaturesImports NXOpen.UF 
 
Module Start_End_Hole_Position
 
    Sub Main() 
        Dim theSession As Session = Session.GetSession()Dim workPart As Part = theSession.Parts.WorkDim displayPart As Part = theSession.Parts.DisplayDim theUFSession As UFSession = UFSession.GetUFSessionDim lw As ListingWindow = theSession.ListingWindow 
        Dim featArray()As Feature = workPart.Features.GetFeatures() 
	Dim markId1 As Session.UndoMarkId
	markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start / End Hole Position") 
	theUfSession.Ui.ExitListingWindow()
	lw.Open() 
        ForEach myFeature As Feature In featArray
	'lw.writeline(myFeature.FeatureType & " - " & myFeature.GetFeatureName)If myFeature.FeatureType="HOLE PACKAGE"Then 
		Dim holeFeature As HolePackage = myFeature
		'lw.writeline(myFeature.GetFeatureName) 
		Dim holeDir()As Vector3d
		holeFeature.GetDirections(holeDir) 
		Dim holeBuilder As HolePackageBuilder
		holeBuilder = workPart.Features.CreateHolePackageBuilder(holeFeature) 
		'lw.WriteLine("hole type: " & holeBuilder.Type.ToString) 
		If holeBuilder.Type= HolePackageBuilder.Types.GeneralHoleThen
		lw.WriteLine("general hole form: "& holeBuilder.GeneralHoleForm.ToString) 
		    If holeBuilder.GeneralHoleForm= HolePackageBuilder.HoleForms.SimpleThen
		    lw.WriteLine("hole diameter: "& holeBuilder.GeneralSimpleHoleDiameter.Value.ToString) 
			if holeBuilder.HoleDepthLimitOption= holeBuilder.HoleDepthLimitOption.ThroughBodythen
			        lw.WriteLine("hole depth: "& holeBuilder.HoleDepthLimitOption.ToString)else
				lw.WriteLine("hole depth: "& holeBuilder.GeneralSimpleHoleDepth.Value.ToString)endif 
			lw.WriteLine("Start Location X: "& holeFeature.Location.X.ToString)
			lw.WriteLine("Start Location Y: "& holeFeature.Location.Y.ToString)
			lw.WriteLine("Start Location Z: "& holeFeature.Location.Z.ToString) 
		    EndIf 
		    If holeBuilder.GeneralHoleForm= HolePackageBuilder.HoleForms.CounterboredThen
			lw.WriteLine("hole diameter: "& holeBuilder.GeneralCounterboreHoleDiameter.Value.ToString) 
			if holeBuilder.HoleDepthLimitOption= holeBuilder.HoleDepthLimitOption.ThroughBodythen
				lw.WriteLine("hole depth: "& holeBuilder.HoleDepthLimitOption.ToString)else
				lw.WriteLine("hole depth: "& holeBuilder.GeneralCounterboreHoleDepth.Value.ToString)endif 
			lw.WriteLine("counterbore diameter: "& holeBuilder.GeneralCounterboreDiameter.Value.ToString)
			lw.WriteLine("counterbore depth: "& holeBuilder.GeneralCounterboreDepth.Value.ToString) 
			lw.WriteLine("Start Location X: "& holeFeature.Location.X.ToString)
			lw.WriteLine("Start Location Y: "& holeFeature.Location.Y.ToString)
			lw.WriteLine("Start Location Z: "& holeFeature.Location.Z.ToString) 
		    EndIf 
		    If holeBuilder.GeneralHoleForm= HolePackageBuilder.HoleForms.CountersinkThen
			lw.WriteLine("hole diameter: "& holeBuilder.GeneralCountersinkHoleDiameter.Value.ToString) 
			if holeBuilder.HoleDepthLimitOption= holeBuilder.HoleDepthLimitOption.ThroughBodythen
				lw.WriteLine("hole depth: "& holeBuilder.HoleDepthLimitOption.ToString)else
				lw.WriteLine("hole depth: "& holeBuilder.GeneralCountersinkHoleDepth.Value.ToString)endif 
		        lw.WriteLine("countersink diameter: "& holeBuilder.GeneralCountersinkDiameter.Value.ToString)
			lw.WriteLine("countersink angle: "& holeBuilder.GeneralCountersinkAngle.Value.ToString) 
			lw.WriteLine("Start Location X: "& holeFeature.Location.X.ToString)
			lw.WriteLine("Start Location Y: "& holeFeature.Location.Y.ToString)
			lw.WriteLine("Start Location Z: "& holeFeature.Location.Z.ToString) 
		     EndIf 
		EndIf
		lw.writeline("")
		holeBuilder.Destroy() 
	    EndIf 
        Next 
	lw.Close() 
    EndSub 
EndModule

Thanks


Viewing all articles
Browse latest Browse all 783

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>