Elevation Example

Using Programming Languages other than VBA

Sub Example_Elevation()
	' This example creates an associative hatch in model space.
	' The elevation for that hatch is then changed.

	Dim hatchObj As AcadHatch
	Dim patternName As String
	Dim PatternType As Long
	Dim bAssociativity As Boolean

	' Define the hatch
	patternName = "ANSI31"
	PatternType = 0
	bAssociativity = True

	' Create the associative Hatch object
	Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)

	' Create the outer loop for the hatch.
	' An arc and a line are used to create a closed loop.

	Dim arcObj As AcadArc
	Dim lineObj As AcadLine
	Dim outerLoop(0 To 1) As AcadEntity
	Dim center(0 To 2) As Double
	Dim radius As Double
	Dim startAngle As Double
	Dim endAngle As Double
	center(0) = 5: center(1) = 3: center(2) = 0
	radius = 3
	startAngle = 0
	endAngle = 3.141592
	Set arcObj = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)
	Set lineObj = ThisDrawing.ModelSpace.AddLine(arcObj.startPoint, arcObj.endPoint)

	Set outerLoop(0) = arcObj
	Set outerLoop(1) = lineObj
	
	' Append the outer loop to the hatch object
	hatchObj.AppendOuterLoop (outerLoop)

	' Append the first circle as one inner loop
	Dim innerLoop1(0) As AcadEntity
	center(0) = 5: center(1) = 4.5: center(2) = 0
	radius = 1
	Set innerLoop1(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
	hatchObj.AppendInnerLoop (innerLoop1)

	' Append the second circle as the other inner loop
	Dim innerLoop2(0) As AcadEntity
	radius = 0.5
	Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
	hatchObj.AppendInnerLoop (innerLoop2)

	' Change the viewing direction of the viewport to better see the elevation
	Dim NewDirection(0 To 2) As Double
	NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
	ThisDrawing.ActiveViewport.direction = NewDirection
	ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
	ZoomAll

	' Find the current elevation for the hatch
	Dim currElevation As Double
	currElevation = hatchObj.Elevation
	MsgBox "The current elevation is " & hatchObj.Elevation, , "Elevation Example"

	' Set the hatch elevation to 3
	hatchObj.Elevation = 3#
	hatchObj.Evaluate
	ZoomAll
	MsgBox "The elevation is now " & hatchObj.Elevation, , "Elevation Example"
				 
End Sub

 

   Comments?