1、已将观测角度、起始边、终边方位角,边长输入到计算表格中,具体看查看我的其他几篇经验。
2、编写以下程序,计算角度闭合差并进行角度平差。Sub jisuan5f()Dim cfwj As DoubleDim fb As DoubleDim n As Integer n = ThisWorkbook.Worksheets("sheet1").Range("v8").ValueDim sf As String, rf As Range sf = ThisWorkbook.Worksheets("sheet1").Cells(5, 8).Value sf = Angle(sf)Dim ef As String ef = ThisWorkbook.Worksheets("sheet1").Cells(5 + n * 2, 8).Value ef = Angle(ef)Dim cjsum As String cjsum = ThisWorkbook.Worksheets("sheet1").Range("v10").Value cjsum = Angle(cjsum) cfwj = Val(sf) + Val(cjsum) - n * 180 If cfwj < 0 Then cfwj = cfwj + 360 End If ThisWorkbook.Worksheets("sheet1").Range("v12").Value = dfm2(cfwj) fb = cfwj - Val(ef) ThisWorkbook.Worksheets("sheet1").Range("v14").Value = fb '角度闭合差Dim a, b, c As IntegerDim pfb As Double pfb = Round(fb * 3600) '角度闭合差 a = pfb \ n '平分给各站 b = pfb - a * n '余数 If b Mod 2 = 0 Then c = b / 2 Else c = (b - 1) / 2 End IfDim d As Integer d = ThisWorkbook.Worksheets("sheet1").Range("v18").ValueDim i As IntegerDim nRow As Integer nRow = 6For i = 1 To n ThisWorkbook.Worksheets("sheet1").Cells(nRow, 4).Value = -a nRow = nRow + 2NextDim e As Integere = pfb - a * nDim f As Integer nRow = 6 For i = 1 To Abs(e) f = ThisWorkbook.Worksheets("sheet1").Cells(nRow, 4).Value ThisWorkbook.Worksheets("sheet1").Cells(nRow, 4).Value = f - e / Abs(e) nRow = nRow + 2 NextEnd Sub
3、计算角度闭合差,具体程序如下:
4、将角度闭合差分配给各个测站,如果不能平均分,计算出余数。
5、选出外业测量时边长最短的边,短边的测量误差较大,把余数分配给短边。
6、运行程序,程序计算出角度闭合差,并分配到各观测站进行平差,如图所示。
7、如果认为分配的不合适,可手动进行调整。