|
他和我说
//MyFUN %c% %h% &&r &&z &&a &&l
_SUB MyFUN
SET &c=%~1
SET &h=%~2
calc &&r=((%&c%/2)^2+%&h%^2)/(2*%&h%)
calc &&z=(%&c%/2)/%&r%
calc &&a=2*deg(arcsin(%&z%))
calc &&l=2*%&r%*pi*%&a%/360
ENVI-ret %~3=%&r%
ENVI-ret %~4=%&z%
ENVI-ret %~5=%&a%
ENVI-ret %~6=%&l%
_END
调用:
MyFUN %c% %h% &&r &&z &&a &&l
%&r% %&z% %&a% %&l% 里面的值就是需要的结果。
至于界面 怎么摆,自己看桌办。
我不懂!我问他他也不回复!后来想起来也可以写成
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
MYWINDOW1
_SUB MYWINDOW1,W960H440,
EDIT Edit1,L32T24W840H36,,,,,24
ITEM ITEM1,L32T68W30H34,=,CALL MyFUN
_END
_SUB MyFUN
LPOS W= ,1,%Edit1%
CALC K=%W%-1
LSTR &c=%K%,%Edit1%
CALC T=%W%+1
MSTR &h=%T%,10,%Edit1%
CALC &&r=((%&c%/2)^2+%&h%^2)/(2*%&h%)
CALC &&z=(%&c%/2)/%&r%
CALC &&a=2*deg(arcsin(%&z%))
CALC &&l=2*%&r%*pi*%&a%/360
ENVI @Edit1=r=%&r% a=%&a% l=%&l%
_END
来完成!这样在编辑框里输入弦长c和高h的值,中间有一个空格就好了!有点麻烦!也有点长!一个数值须要单独一个过程!如果要是加入此函数到CALC命令就简单多了!
你看看还有没有什么好方法!
|
|