📄 level worknet.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "levelnet"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Dim xishuB() As Double '系数矩阵
Dim L() As Double '常数矩阵
Private Type ShuizhunNode '定义水准点的结构
ID As String '定义水准点号
'a() As Integer '定义与之相连的点数
' B() As String '定义与之相连的点号
'ceduanH() As ceduanH '定义测段的高差
IDH As Double '存储高程
End Type
Private Type ceduanH '定义测段结构,存储大小和方向
H As Double '测段高差大小
'Obool As Boolean '用来表明测段高差方向性
ID1 As ShuizhunNode 'ID1用来存储测段两边点号,高程大的为ID1
ID2 As ShuizhunNode 'ID2用来存储测段两边点号,高程小的为ID1
End Type
Public Sub xshuB() '构造系数矩阵B以及l''''
Dim i As Integer
Dim k0 As Integer, k1 As Integer, k2 As Integer 'k0,k1,k2为for循环计数器
ReDim xishuB(1 To i1, 1 To i2) 'i2 为所选必要观测参数个数,还没定义
ReDim L(1 To i1)
For i = 1 To i1
If Mid(a1(i).ID1, 1, 4) = "Para" And Mid(a1(i).ID2, 1, 4) = "Para" Then
xishuB(i, Val(Right(a1(i).ID1, 2))) = 1
xishuB(i, Val(Right(a1(i).ID2, 2))) = -1
For k0 = 1 To i2
If Val(Right(a1(i).ID1, 2)) <> i0 Or Val(Right(a1(i).ID2, 2)) <> i0 Then
xishuB(i, k0) = 0
End If
Next i2
L(i) = (-1) * (a1(i).ID1.IDH - a1(i).ID2.IDH - a1(i).H) '构建常量矩阵L
i = 1 + 1
Else
Select Case Mid(a1(i).ID1, 1, 4)
Case Mid(a1.ID1, 1, 4) = "Para"
'If Mid(a1.ID1, 1, 4) = "Para" Then
xishuB(i, Val(Right(a1(i).ID1, 2))) = 1
For k1 = 1 To i1
If k1 <> Val(Right(a1(i).ID1, 2)) Then
xishuB(i, k1) = 0
End If
Next k1
L(i) = (-1) * (a1(i).ID1.IDH - a1(i).ID2.IDH - a1(i).H) '构建常量矩阵L
i = i + 1
Case Mid(a1(i).ID2, 1, 4) = "Para"
xishuB(i, Val(Right(a1(i).ID2, 2))) = -1
For k2 = 1 To i1
If k2 <> Val(Right(a1(i).ID2, 2)) Then
xishuB(i, k2) = 0
End If
Next k2
L(i) = (-1) * (a1(i).ID1.IDH - a1(i).ID2.IDH - a1(i).H) '构建常量矩阵L
i = i + 1
End Select
End If
' L(i) = (-1) * (a1(i).ID1.IDH - a1(i).ID2.IDH - a1(i).H) '构建常量矩阵L
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -