smpoy 发表于 2005-7-1 12:52:00

面积计算VBA代码myfreemind 问题

能不能没有比例尺的限制啊Subsarea()'计算多边形面积程序
OnErrorGoToerr
DimareaobjAsAcadLWPolyline
DimssetAsAcadSelectionSet
DimminpntAsVariant
DimmaxpntAsVariant
Dimareains(0To2)AsDouble'
DimtxtareaAsString
DimtxtinsAsString
DimmsAsString
DimtxtobjAsAcadText
Dimus1AsInteger'比例尺
us1=ThisDrawing.GetVariable("userr1")'取得比例尺Fori=0ToThisDrawing.SelectionSets.Count-1
ThisDrawing.SelectionSets.Item(i).Clear
ThisDrawing.SelectionSets.Item(i).Delete
NextSetsset=ThisDrawing.SelectionSets.Add("sarea")sset.SelectOnScreen
Ifsset.Item(0).Closed=FalseThen
MsgBox"图形不闭合,请检查!"
ExitSub
EndIf
sset.Item(0).GetBoundingBoxminpnt,maxpntareains(0)=(minpnt(0)+maxpnt(0))/2
areains(1)=(minpnt(1)+maxpnt(1))/2
areains(2)=0SelectCaseus1
Case500
txtarea=sset.Item(0).area/4Case1000
txtarea=sset.Item(0).area
Case2000
txtarea=sset.Item(0).area*2
CaseElse
MsgBox"你的比例尺不在可计算之列,请检查你的比例尺"
ExitSubEndSelectms=Format(txtarea/666.6666,"#0.000")
txtarea=Format(txtarea,"#0.000")txtins="S="&txtarea&"平方米="&ms&"亩"Settxtobj=ThisDrawing.ModelSpace.AddText(txtins,areains,5)txtobj.Color=acGreen
'*******************************DimhatchobjAsAcadHatch
DimpnameAsString'阴影名称
DimpypeAsLong'阴影类型
pname="ANSI31"
ptype=0Sethatchobj=ThisDrawing.ModelSpace.AddHatch(ptype,pname,True)
Dimoutloop(0To0)AsAcadEntitySetoutloop(0)=sset.Item(0)hatchobj.AppendOuterLoop(outloop)
hatchobj.Evaluate
err:
ExitSub
EndSub

smpoy 发表于 2005-7-1 13:00:00

为什么非要加比例尺呢。


Case        1000<BR>txtarea        =        sset.Item(0).area<BR>Case        2000<BR>txtarea        =        sset.Item(0).area        *        2<BR>        Case        Else<BR>'''MsgBox        "你的比例尺不在可计算之列,请检查你的比例尺"


txtarea        =        sset.Item(0).area <BR>''Exit        Sub


end sub


是不是这样就行了啊

smpoy 发表于 2005-7-1 15:55:00

能不能点他区域内就能得出面积啊。
页: [1]
查看完整版本: 面积计算VBA代码myfreemind 问题