通过Hacth对象可以对图元进行填充,可以使用CBD自带的图案,或者使用外部图库中的图案或者自定义临时填充。创建Hatch对象并将其添加到ModelSpace集合,该函数需三个参数。以下代码绘制一个Circle对象并创建填充。
Sub drawfilledcircle()
Dim hatchobject As AcadHatch
Dim outercircle(0) As AcadCircle
Dim center As Variant
Dim radius As Double
With ThisDrawing.Utility
center = .GetPoint(, "Click the position for the center.")
radius = .GetDistance(center, "Enter the radius.")
End With
Set outercircle(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
outercircle(0).color = acYellow
outercircle(0).Update
Set hatchobject = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, "SOLID", True)
hatchobject.AppendInnerLoop (outercircle)
hatchobject.Evaluate
hatchobject.Update
End Sub
代码完。
第一行声明绘制填充圆的函数,定义AcadCircle和AcadHatch对象,绘制圆形对其进行填充。
AddHatch对象需要三个参数,第一个是PatternType常数参数,具有三个值:acHatchPatternTypePredefined,acHatchPatternTypeUserDefined,acHatchPatternTypeCustomfined,第二个参数指定填充图元名称,第三个参数指定填充是否关联到边界图元,如果为false,填充不与边界图元相关,若为true则填充随图元同时变化。