一、代码
def create_measure
measure_rad=0.01
x_pos=0
y_incri=0.01
loop n(1,18)
y_pos=0.055+(n-1)*y_incri
command
measure create position @x_pos @y_pos ...
radius @measure_rad
endcommand
endloop
end
@create_measure
def get_stress
tb1=table.create("stress_y")
tb2=table.create("stress_x")
loop n(1,18)
mp=measure.find(n)
stress_yy=measure.stress.yy(mp)
stress_xx=measure.stress.xx(mp)
pos_y=measure.pos.y(mp)
table(tb1,-stress_yy)=pos_y
table(tb2,-stress_xx)=pos_y
endloop
end
@get_stress
二、存在问题
当用命令
plot create plot ‘plot name’
plot add table 1 2
发现距离-应力函数不对劲,如下图所示,对同一距离,不可能有两个及以上应力值。
测量圆我是1-18,距离递增或者递减,但table导出来的图并不是按距离递增或递减来的,而是打乱了顺序。我是导成CSV文件,然后利用EXCEL的排序和筛选功能重新排并画图的。
另外一种方法,代码如下
def get_stress
tb1=table.create("stress_y")
tb2=table.create("stress_x")
loop n(1,18)
mp=measure.find(n)
stress_yy=measure.stress.yy(mp)
stress_xx=measure.stress.xx(mp)
pos_y=measure.pos.y(mp)
table(tb1,pos_y)=-stress_yy
table(tb2,pos_y)=-stress_xx
endloop
end
@get_stress
具体来说,就是把table的x和y值对换一下,结果如下。
可以发现,结果对劲了。具体原因是什么呢,我查了table函数的介绍(下图),猜想可能是x插值(或排序)出的问题,就不细究了。