利用AddSolid方法可以創建實心面,Solid為3或4條變組成的實心面,應用該方法需要4個三維頂點作為參數,當系統變量FILLMODE的值為0時,實心面不填充,為1時填充。語法getval=objcect.AddSolid(point1,point2,point3,point4)。getval新創建的實心面對象,object模型空間、圖紙空間或塊對象,point雙精度型定點坐標。
利用AddHatch方法可以創建圖案填充,語法格式如下。
getval=object.AddHatch(PatternType,PatternName,Associativity)
geval新創建的圖案填充對象,object模型空間、圖紙空間或塊對象,PatternType表示圖案填充類型的索引,它有三個可選值,acHatchPatternTypePreDefined用AutoCAD標注圖案文件Acad.Pat定義的圖案進行填充。acHatchPatternTypeDefined用當前線型定義的填充線填充,acHatchPatternTypeCustomDefined用用戶自定義的圖案文件進行填充。PatternName圖案填充名稱,Associativity表示圖案填充是否與邊界關聯,如果為true則填充關聯邊界,邊界改變則填充也改變,如果為false則填充不關聯邊界。
如下代碼給兩個同心圓組成的圓環進行填充,并將填充關聯邊界。
Private Sub Command1_Click()
Dim hatchobj As AcadHatch
Dim patternname As String
Dim patterntype As Long
Dim bassociativity As Boolean
patterntype = 0
patternname = "ANSI31"
bassociativity = True
Set hatchobj = acadapp.ActiveDocument.ModelSpace.AddHatch(patterntype, patternname, bassociativity)
Dim outerloop(0 To 0) As AcadEntity
Dim innerloop(0 To 0) As AcadEntity
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 3: center(1) = 3: center(2) = 0
radius = 20
Set outerloop(0) = acadapp.ActiveDocument.ModelSpace.AddCircle(center, radius)
Set innerloop(0) = acadapp.ActiveDocument.ModelSpace.AddCircle(center, radius / 2)
hatchobj.AppendInnerLoop (outerloop)
hatchobj.AppendInnerLoop (innerloop)
hatchobj.Evaluate
acadapp.ActiveDocument.Regen True
ZoomExtents
End Sub