📄 中桩大地坐标.frm
字号:
frmMain.Text1 = frmMain.Text1 & vbCrLf & " QZ= " + Str(Int(qz * 1000 + 0.5) / 1000)
frmMain.Text1 = frmMain.Text1 & vbCrLf & " YH= " + Str(Int(yh * 1000 + 0.5) / 1000)
frmMain.Text1 = frmMain.Text1 & vbCrLf & " HZ= " + Str(Int(hz * 1000 + 0.5) / 1000)
frmMain.Text1 = frmMain.Text1 & vbCrLf & ""
frmMain.Text1 = frmMain.Text1 & vbCrLf & " -------加桩坐标-------"
For i = 0 To VSFlexGrid1.Rows - 2
If i = 0 Then frmMain.Text1 = frmMain.Text1 & vbCrLf & " " + VSFlexGrid1.TextMatrix(i, 0) + " " + VSFlexGrid1.TextMatrix(i, 1) + " " + VSFlexGrid1.TextMatrix(i, 2) + " " + VSFlexGrid1.TextMatrix(i, 3) + " " + VSFlexGrid1.TextMatrix(i, 4) + " " + VSFlexGrid1.TextMatrix(i, 5) + " " + VSFlexGrid1.TextMatrix(i, 6) + " " + VSFlexGrid1.TextMatrix(i, 7) + " " + VSFlexGrid1.TextMatrix(i, 8) + " " + VSFlexGrid1.TextMatrix(i, 9) + " " + VSFlexGrid1.TextMatrix(i, 10) + " " + VSFlexGrid1.TextMatrix(i, 11) + " " + VSFlexGrid1.TextMatrix(i, 12)
wbbb = " "
If i <> 0 Then
For j = 0 To VSFlexGrid1.Cols - 1
wbbb = wbbb + VSFlexGrid1.TextMatrix(i, j)
If Len(VSFlexGrid1.TextMatrix(i, j)) = 0 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 1 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 2 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 3 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 4 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 5 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 6 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 7 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 8 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 9 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 10 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 11 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 12 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 13 Then kgg = ""
wbbb = wbbb + kgg
Next j
End If
frmMain.Text1 = frmMain.Text1 & vbCrLf & wbbb
Next i
frmMain.Text1 = frmMain.Text1 & vbCrLf & " --------------------------------------"
End If
Unload Me
Exit Sub
handlerror:
End Sub
Private Sub Form_DblClick()
xianshi = MsgBox("欢迎你使用本程序,有问题请联系我" & vbCrLf & "电子邮箱:shimf@mail.nbptt.zj.cn", vbInformation, "提示")
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
'Esc键退出,VbEscape可以用27代替
On Error GoTo handlerror
If KeyAscii = 27 Then
Unload Me
End If
Exit Sub
handlerror:
End Sub
Private Sub Form_Load()
'启动窗体
On Error GoTo handlerror
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
Text14.Text = ""
Text15.Text = ""
Text16.Text = ""
Text17.Text = ""
Text18.Text = ""
Text19.Text = ""
Text20.Text = ""
Text21.Text = ""
Text22.Text = Trim$(Str(10))
Text9.Visible = False
Command4.Enabled = False
VSFlexGrid1.ColWidth(0) = 500
VSFlexGrid1.ColWidth(1) = 1000
VSFlexGrid1.ColWidth(2) = 800
VSFlexGrid1.ColWidth(3) = 800
VSFlexGrid1.ColWidth(4) = 1200
VSFlexGrid1.ColWidth(5) = 1200
VSFlexGrid1.ColWidth(6) = 1200
VSFlexGrid1.ColWidth(7) = 1200
VSFlexGrid1.ColWidth(8) = 1200
VSFlexGrid1.ColWidth(9) = 1200
VSFlexGrid1.ColWidth(10) = 1200
VSFlexGrid1.ColWidth(11) = 1200
VSFlexGrid1.ColWidth(12) = 1200
VSFlexGrid1.TextMatrix(0, 0) = "序号"
VSFlexGrid1.TextMatrix(0, 1) = "桩号"
VSFlexGrid1.TextMatrix(0, 2) = "支距X"
VSFlexGrid1.TextMatrix(0, 3) = "支距Y"
VSFlexGrid1.TextMatrix(0, 4) = "偏角(°′″)"
VSFlexGrid1.TextMatrix(0, 5) = "左侧距离Yz"
VSFlexGrid1.TextMatrix(0, 6) = "左侧坐标X"
VSFlexGrid1.TextMatrix(0, 7) = "左侧坐标Y"
VSFlexGrid1.TextMatrix(0, 8) = "中桩坐标X"
VSFlexGrid1.TextMatrix(0, 9) = "中桩坐标Y"
VSFlexGrid1.TextMatrix(0, 10) = "右侧距离Lz"
VSFlexGrid1.TextMatrix(0, 11) = "右侧坐标X"
VSFlexGrid1.TextMatrix(0, 12) = "右侧坐标Y"
VSFlexGrid1.ColAlignment(0) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(1) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(2) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(3) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(4) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(5) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(6) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(7) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(8) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(9) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(10) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(11) = flexAlignCenterCenter
VSFlexGrid1.ColAlignment(12) = flexAlignCenterCenter
Exit Sub
handlerror:
End Sub
Public Sub zbzh()
'坐标转换(将局部坐标系转化为大地坐标系)
xm = xzh + x1 * Cos(fw) - cp * y1 * Sin(fw)
ym = yzh + x1 * Sin(fw) + cp * y1 * Cos(fw)
End Sub
Public Sub jzjsu()
'加桩计算
If jz <= zh Then
x = zh - jz
y = 0
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
If Option1.Value = True Then '左偏
x1 = -x
y1 = -y
y11 = d1
y12 = -d2
End If
If Option2.Value = True Then '右偏
x1 = -x
y1 = y
y11 = -d1
y12 = d2
End If
x11 = -x
x12 = -x
End If
If zh < jz And jz <= hy Then
l = jz - zh
x = l - l ^ 5 / 40 / r / r / ls1 / ls1
y = l ^ 3 / 6 / r / ls1 - l ^ 7 / 336 / r ^ 3 / ls1 ^ 3
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
btt = l * l / 2 / r / ls1
If Option1.Value = True Then '左偏
x1 = x
y1 = -y
x11 = x + d1 * Cos(btt + pi / 2) '左侧
x12 = x + d2 * Cos(btt - pi / 2) '右侧
y11 = (y + d1 * Sin(btt + pi / 2)) '左侧
y12 = (y + d2 * Sin(btt - pi / 2)) '右侧
End If
If Option2.Value = True Then '右偏
x1 = x
y1 = y
x11 = x + d1 * Cos(btt - pi / 2) '左侧
x12 = x + d2 * Cos(btt + pi / 2) '右侧
y11 = (y + d1 * Sin(btt - pi / 2)) '左侧
y12 = (y + d2 * Sin(btt + pi / 2)) '右侧
End If
End If
If hy <= jz And jz <= qz Then
l = jz - hy
gm = l / r + bt1
x = r * Sin(gm) + q1
y = r * (1 - Cos(gm)) + p1
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
btt = gm
If Option1.Value = True Then '左偏
x1 = x
y1 = -y
x11 = x + d1 * Cos(btt + pi / 2) '左侧
x12 = x + d2 * Cos(btt - pi / 2) '右侧
y11 = (y + d1 * Sin(btt + pi / 2)) '左侧
y12 = (y + d2 * Sin(btt - pi / 2)) '右侧
End If
If Option2.Value = True Then '右偏
x1 = x
y1 = y
x11 = x + d1 * Cos(btt - pi / 2) '左侧
x12 = x + d2 * Cos(btt + pi / 2) '右侧
y11 = (y + d1 * Sin(btt - pi / 2)) '左侧
y12 = (y + d2 * Sin(btt + pi / 2)) '右侧
End If
End If
If qz < jz And jz <= yh Then
l = yh - jz
gm = l / r + bt2
x = r * Sin(gm) + q2
y = r * (1 - Cos(gm)) + p2
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
x1 = Cos(pm) * (-x) + y * (-Sin(pm)) + th1 + th2 * Cos(pm)
y1 = Sin(pm) * (-x) + y * Cos(pm) + th2 * Sin(pm)
btt = gm
If Option1.Value = True Then '左偏
x1 = x1
y1 = -y1
x11 = x + d1 * Cos(btt + pi / 2) '左侧
x12 = x + d2 * Cos(btt - pi / 2) '右侧
y11 = (y + d1 * Sin(btt + pi / 2)) '左侧
y12 = (y + d2 * Sin(btt - pi / 2)) '右侧
End If
If Option2.Value = True Then '右偏
x1 = x1
y1 = y1
x11 = x + d1 * Cos(btt - pi / 2) '左侧
x12 = x + d2 * Cos(btt + pi / 2) '右侧
y11 = (y + d1 * Sin(btt - pi / 2)) '左侧
y12 = (y + d2 * Sin(btt + pi / 2)) '右侧
End If
End If
If yh <= jz And jz < hz Then
l = hz - jz
x = l - l ^ 5 / 40 / r / r / ls2 / ls2
y = l ^ 3 / 6 / r / ls2 - l ^ 7 / 336 / r ^ 3 / ls2 ^ 3
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
x1 = Cos(pm) * (-x) + y * (-Sin(pm)) + th1 + th2 * Cos(pm)
y1 = Sin(pm) * (-x) + y * Cos(pm) + th2 * Sin(pm)
btt = l * l / 2 / r / ls2
If Option1.Value = True Then '左偏
x1 = x1
y1 = -y1
x11 = x + d1 * Cos(btt + pi / 2) '左侧
x12 = x + d2 * Cos(btt - pi / 2) '右侧
y11 = (y + d1 * Sin(btt + pi / 2)) '左侧
y12 = (y + d2 * Sin(btt - pi / 2)) '右侧
End If
If Option2.Value = True Then '右偏
x1 = x1
y1 = y1
x11 = x + d1 * Cos(btt - pi / 2) '左侧
x12 = x + d2 * Cos(btt + pi / 2) '右侧
y11 = (y + d1 * Sin(btt - pi / 2)) '左侧
y12 = (y + d2 * Sin(btt + pi / 2)) '右侧
End If
End If
If jz >= hz Then
x = jz - hz
y = 0
If x <> 0 Then
ct = Atn(y / x)
End If
If x = 0 Then ct = 0
x1 = Cos(pm) * (x) + y * (-Sin(pm)) + th1 + th2 * Cos(pm)
y1 = Sin(pm) * (x) + y * Cos(pm) + th2 * Sin(pm)
If Option1.Value = True Then '左偏
x1 = x1
y1 = -y1
y11 = d1
y12 = -d2
End If
If Option2.Value = True Then '右偏
x1 = x1
y1 = y1
y11 = -d1
y12 = d2
End If
x11 = x
x12 = x
End If
ct = ct * 180 / pi
ia = Int(ct)
ib = Int((ct - ia) * 60)
ic = ((ct - ia) * 60 - ib) * 60
id = ia + ib / 100 + ic / 10000
End Sub
Public Sub bzjs()
'边桩x,y值计算
If jz <= qz Then
xbm = xb
ybm = yb
End If
If qz < jz And jz <= hz Then
xbm = Cos(pm) * (-xb) + yb * (-Sin(pm)) + th1 + th2 * Cos(pm)
ybm = Sin(pm) * (-xb) + yb * Cos(pm) + th2 * Sin(pm)
End If
If jz > hz Then
xbm = Cos(pm) * (xb) + yb * (-Sin(pm)) + th1 + th2 * Cos(pm)
ybm = Sin(pm) * (xb) + yb * Cos(pm) + th2 * Sin(pm)
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -