一个excle模板的制作
在当今社会,excle的使用已经是越来越来频繁了,几乎涉及所有的行业,路桥施工也不例外。我在某路桥公司曾经负责过某项目部的测量工作。大家都知道,测量最主要的就是计算了,如坐标、高程、横坡度等。我现在给大家推荐一款我自己编制的关于测量计算的excel模板.
首先我会跟大家介绍一下模板的作用,然后再一一讲解此模板的制作过程.
首先给大家看一下此模板的界面如下:
也许大家咋一看,切~ 这算啥,我也会做这张表格,实在是太简单了.不错,如果仅仅是靠手动输入这样子的数字,也许只要懂一点点excle的人都会制作出这张表格吧。不过,这张表格并不是你表面所看到的仅仅是几个数字而已,其内在的公式才是它的亮点。也许这样讲大家还不是很清楚,我继续给大家截个图,看看它里面的公式是什么。
大家注意到上面的公式了吗,并不是仅仅是输入数字就完事的,它是一个自定义函数zbx(),那么后面的都是一样吗?完全正确,后面的都是自定义函数,它们分别是zby()、sqx()、hpz()、hpy()。也许大家会问,恩,是不错,但是有什么用呢?那让我先给大家简述一下这个自定义函数的用法。竟然是一个函数,那么它就必须要有一个自变量,这几个函数的自变量又是什么呢?其实这个模板里面所有函数的自变量只有一个,就是桩号。什么意思?就是只要你给出任意一个桩号,都能得到其对应的坐标、中桩高程和横坡度.假设我们
要K38+000~K38+200段落内每隔20M一个断面所有点的坐标、中桩高程、以及左右横坡。我就用这个模板给大家演示一下(此模板暂时数据只针对黄祁高速公路六标项目部)。
先在桩号那一列把K38+000~K38+200输入进去,可不要真的把字母“K”和加号 “+”给输进去,只用输入纯数字就行了,否则计算会出错,之所以在模板里显示的是那样子,只不过是自定义的单元格式而已。
第二步剩下的仅仅就是拖动公式了,后面的都是公式,所以可以一起拖下来,先选定后面的所有单元格,然后向下直接拖动至最后,那么你需要的数据就全部出来了。
呵呵,是不是很神奇!并不是只能计算整数桩号数据的,是任意桩号的,也就是说桩号K38+000和K38+111。232计算出来的结果的精度是一样的。这个模板可以让你计算任意你想要的坐标,比如其演化计算出来的桥梁墩柱坐标,涵洞坐标等等。
给大家示范一下计算涵洞的坐标。假设某涵洞桩号是K38+433。245,左边据中桩距离是23。45M,右边距中桩距离是33.56M,基础宽度是6M,那么我要用这个模板计算出涵洞基础4个拐点的坐标.在这里我用此模板的一个空白的工作表来给大家演示一下。
上面这张表格现在大家都会做了吧,只不过多了一个自定义函数jfw(),它也是以桩号为自变量的一个函数,其得出的值是所在路线的某桩号的方位角。好了,有了中桩坐标和方位角,而且距离我们已经知道了,那么各边桩的坐标就可以计算出来了,x左=中桩坐标x+距离左X(乘号)cos(方位角—pi/2),y左=中桩坐标y+距离左X(乘号)sin(方位角—pi/2).至于右边坐标公式仅仅是把那里面角度的减号改成加号而已。那么就可以得出来下面的表格了,离那4个拐点坐标也就越来越近了。
好了,我们计算出了涵洞轴线的两个坐标,宽度我们又是知道的,而且我们方位角也知道,那么左边两个的拐点坐标就是轴线左边的坐标分别利用三角函数就能计算出来了,只是距离变成了宽度的一半,而另外一个拐点的方位角要加上一个pi,如下表:
以上就是拐点的4个坐标.至于边桩高程就不做介绍,竟然有了中桩高程,而且有了左边和右边的横坡度,那么自然的边桩高程也是很容易计算出来的了。
讲了这么多其实只是介绍了这个模板是怎么操作和有什么用处,可是有那么多用处又有什么用呢,它只是针对你黄祁六标项目部才能用,我们项目部又不能用.没关系,我马上给大家详细讲解此模板的制作流程。
还回到这个模板里面来,打开这个模板,然后进入vb编辑器里面,直接按Alt+F11可以进入,也可以从以下界面进入:
工具 宏 vb编辑器(不好意思了,怎么都截不了那个图,还是直接按Alt+F11来的快)
接下来就进入此界面了,注意旁边的模块,之所以可以能用自定义函数全部是它们的功劳,我一个一个的模块给大家讲解,先讲模块1:
模块1
Function zbx(zh As Double) As Double
Dim x As Double '交点横坐标
Dim y As Double '交点纵坐标
Dim zhjd As Double ’交点桩号
Dim jzj As Double ’转角(右转为正,左转为负)
Dim r As Double '圆曲线半径
Dim ls As Double ’缓和曲线长
Dim jzh As Double ’起始直线方位角
Dim pi As Double ’pi=3.14159265358979
Dim m As Double ’切垂差
Dim p As Double ’内移距
Dim t As Double '切线长
Dim lc As Double ’外矢距
Dim j0 As Double ’缓圆点切线方位角
Dim zhzh As Double '直缓点桩号
Dim zhhy As Double
Dim zhyh As Double
Dim zhhz As Double
Dim zbzh As Double ’直缓点坐标
Dim zbhy As Double
Dim zbyh As Double
Dim zbhz As Double
Dim li As Double
Dim xe As Double
Dim ye As Double
Dim ds As Double '弦长
Dim ji As Double ’转角
高速走到一半了才免费怎么算Dim i As Double ’转角正负号
If zh >= 35290 And zh < 36571。636 Then '从这里开始
x = 3302618.225
y = 515805。714
zhjd = 36087.224
jzj = —1 * dzh(46。3735)
r = 1096.226
ls = 130
jzh = dzh(299.1304)
ElseIf zh 〈 37683.43 Then
x = 3302286。5
y = 514747.726
zhjd = 37142。734
jzj = dzh(34.263)
r = 1600
ls = 150
jzh = dzh(252。353)
ElseIf zh 〈 38850.118 Then
x = 3302680.931
y = 513460.274
zhjd = 38458.851
jzj = —1 * dzh(28。2945)
r = 1300
ls = 150
jzh = dzh(287.0159)
ElseIf zh 〈= 40400 Then
x = 3302433.987
y = 512242。43
zhjd = 39687。464
jzj = dzh(28.4725)
r = 1700
ls = 150
jzh = dzh(258。3215)
Else
zbx = Null
Exit Function
End If ’到这里结束
pi = 3。14159265358979
i = Sgn(jzj)
j0 = ls / r / 2
m = ls / 2 — ls ^ 3 / r ^ 2 / 240
p = ls ^ 2 / r / 24
t = m + (r + p) * Tan(Abs(jzj) / 2)
e = (r + p) / Cos(Abs(jzj)) — r
lc = r * (Abs(jzj) — 2 * j0)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论