利用AddSolid方法可以創(chuàng)建實(shí)心面,Solid為3或4條變組成的實(shí)心面,應(yīng)用該方法需要4個(gè)三維頂點(diǎn)作為參數(shù),當(dāng)系統(tǒng)變量FILLMODE的值為0時(shí),實(shí)心面不填充,為1時(shí)填充。語(yǔ)法getval=objcect.AddSolid(point1,point2,point3,point4)。getval新創(chuàng)建的實(shí)心面對(duì)象,object模型空間、圖紙空間或塊對(duì)象,point雙精度型定點(diǎn)坐標(biāo)。
利用AddHatch方法可以創(chuàng)建圖案填充,語(yǔ)法格式如下。
getval=object.AddHatch(PatternType,PatternName,Associativity)
geval新創(chuàng)建的圖案填充對(duì)象,object模型空間、圖紙空間或塊對(duì)象,PatternType表示圖案填充類型的索引,它有三個(gè)可選值,acHatchPatternTypePreDefined用AutoCAD標(biāo)注圖案文件Acad.Pat定義的圖案進(jìn)行填充。acHatchPatternTypeDefined用當(dāng)前線型定義的填充線填充,acHatchPatternTypeCustomDefined用用戶自定義的圖案文件進(jìn)行填充。PatternName圖案填充名稱,Associativity表示圖案填充是否與邊界關(guān)聯(lián),如果為true則填充關(guān)聯(lián)邊界,邊界改變則填充也改變,如果為false則填充不關(guān)聯(lián)邊界。
如下代碼給兩個(gè)同心圓組成的圓環(huán)進(jìn)行填充,并將填充關(guān)聯(lián)邊界。
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