myfreemind 发表于 2003-7-9 23:46:00

面积计算程序原代码!

Sub sarea() '计算多边形面积程序
On Error GoTo err
Dim areaobj As AcadLWPolyline
Dim sset As AcadSelectionSet
Dim minpnt As Variant
Dim maxpnt As Variant
Dim areains(0 To 2) As Double '
Dim txtarea As String
Dim txtins As String
Dim ms As String
Dim txtobj As AcadText


Dim us1 As Integer '比例尺
us1 = ThisDrawing.GetVariable("userr1") '取得比例尺

For i = 0 To ThisDrawing.SelectionSets.Count - 1
ThisDrawing.SelectionSets.Item(i).Clear
ThisDrawing.SelectionSets.Item(i).Delete
Next

Set sset = ThisDrawing.SelectionSets.Add("sarea")

sset.SelectOnScreen
If sset.Item(0).Closed = False Then
MsgBox "图形不闭合,请检查!"
Exit Sub
End If


sset.Item(0).GetBoundingBox minpnt, maxpnt

areains(0) = (minpnt(0) + maxpnt(0)) / 2
areains(1) = (minpnt(1) + maxpnt(1)) / 2
areains(2) = 0

Select Case us1
Case 500
txtarea = sset.Item(0).area / 4

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

End Select

ms = Format(txtarea / 666.6666, "#0.000")
txtarea = Format(txtarea, "#0.000")

txtins = "S=" & txtarea & "平方米=" & ms & "亩"

Set txtobj = ThisDrawing.ModelSpace.AddText(txtins, areains, 5)

txtobj.Color = acGreen
'*******************************

Dim hatchobj As AcadHatch
Dim pname As String '阴影名称
Dim pype As Long '阴影类型
pname = "ANSI31"
ptype = 0

Set hatchobj = ThisDrawing.ModelSpace.AddHatch(ptype, pname, True)
Dim outloop(0 To 0) As AcadEntity

Set outloop(0) = sset.Item(0)

hatchobj.AppendOuterLoop (outloop)
hatchobj.Evaluate


err:
Exit Sub
End Sub

xazhji 发表于 2003-7-10 09:56:00

为什么不用cad的查询命令?现成的呀,有时只不过要把封闭区域变成面域而已!

lihongyu2467 发表于 2003-7-10 12:38:00

非常感谢myfreemind老师,对于你的慷慨我很是感动,再次感谢。希望日后还能多多指点。
只是我不懂VBA,看来回去要研究一下了。

myfreemind 发表于 2003-7-10 23:15:00

不谢,一起提高!

myfreemind 发表于 2003-7-10 23:17:00

是的,可以实现!

目的是为了学习程序!

movie2003 发表于 2003-12-17 16:48:00

实在是感谢

lixy 发表于 2003-12-28 23:43:00

very good

chb801 发表于 2004-1-15 19:01:00

这是个好东西!送花一朵!

我研究研究!

chb801 发表于 2004-1-15 19:02:00

刚才忘记了!你怎么又变成蒙面侠了?

myfreemind 发表于 2004-1-15 19:45:00

chb801发表于2004-1-15 19:02:00static/image/common/back.gif刚才忘记了!你怎么又变成蒙面侠了?


升级了,呵呵
页: [1] 2
查看完整版本: 面积计算程序原代码!