ISOPenWidth Example

Using Programming Languages other than VBA

Sub Example_ISOPenWidth()
	' This example creates an associative hatch in model space.
	' The ISOPenWidth of the hatch pattern is then returned and changed.

	Dim hatchObj As AcadHatch
	Dim patternName As String, PatternType As Long
	Dim bAssociativity As Boolean
	Dim outerLoop(0 To 1) As Object
	Dim center(0 To 2) As Double
	Dim radius As Double, startAngle As Double, endAngle As Double
	Dim innerLoop1(0) As Object, innerLoop2(0) As Object
	Dim PatternScale As Double

	' 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.
	center(0) = 5: center(1) = 3: center(2) = 0
	radius = 3:  startAngle = 0:  endAngle = 3.141592

	Set outerLoop(0) = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)
	Set outerLoop(1) = ThisDrawing.ModelSpace.AddLine(outerLoop(0).startPoint, outerLoop(0).endPoint)
	' Append the outer loop to the hatch object
	hatchObj.AppendOuterLoop (outerLoop)

	' Append the first circle as one inner loop
	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
	radius = 0.5
	Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
	hatchObj.AppendInnerLoop (innerLoop2)

	' Evaluate and display the hatch
	ThisDrawing.Regen True

	' Find the ISO pen width of the hatch pattern
	MsgBox "The ISO pen width of the hatch pattern is: " & hatchObj.ISOPenWidth, vbInformation

	' Change the ISO pen width of the hatch pattern
	hatchObj.ISOPenWidth = acPenWidth050
	ThisDrawing.Regen True

	' Display new pen width for this hatch
	If hatchObj.ISOPenWidth = acPenWidthUnk Then
		' Non-Standard pen widths
		MsgBox "The ISO pen width of the hatch pattern is now: " & hatchObj.PatternScale, vbInformation
		' Standard pen widths
		MsgBox "The ISO pen width of the hatch pattern is now: " & hatchObj.ISOPenWidth, vbInformation
	End If

End Sub