PCB论坛网

 找回密码
 注册
查看: 1258|回复: 3

[已解决]关于浮点运算错误

[复制链接]
发表于 2008-4-18 08:59:00 | 显示全部楼层 |阅读模式


VOF
COM open_entity,job=$JOB,type=step,name=panel,iconic=no 
COM clear_layers
COM affected_layer,name=gtl,mode=all,affected=no 
COM display_layer,name=gtl,display=yes,number=1
COM work_layer,name=gtl              
COM affected_layer,name=gts,mode=single,affected=yes
COM affected_layer,name=l2,mode=single,affected=yes   
VON


COM units,type=inch

DO_INFO -t step -e $job/panel -d exists
    if ( $gEXISTS == yes ) then

DO_INFO -t step -e $job/panel,units=inch
    set pnl_x = `echo "scale=6; $gPROF_LIMITSxmax" | bc`     
    set pnl_y = `echo "scale=6; $gPROF_LIMITSymax" | bc` 


 set adjust_hole_x1 = 0.1377953
   set adjust_hole_y1 =  0.1377953
   set adjust_hole_x2 = `echo "scale=6; $pnl_x - 0.1377953 " | bc` 
   set adjust_hole_y2 =  0.1377953
   set adjust_hole_x3 = `echo "scale=6; $pnl_x - 0.1377953 " | bc` 
   set adjust_hole_y3 = `echo "scale=6; $pnl_y - 0.1377953 " | bc` 
   set adjust_hole_x4 =  0.1377953
   set adjust_hole_y4 = `echo "scale=6; $pnl_y - 0.1377953 " | bc` 
   set adjust_hole_x5 = `echo "scale=6; $pnl_x - 0.4530709 " | bc`          
   set adjust_hole_y5 = `echo "scale=6; $pnl_y -0.1377953 " | bc`   


set xw_hole=xw
   COM add_pad,attributes=no,x=$adjust_hole_x1,y=$adjust_hole_y1,symbol=$xw_hole,polarity=positive,\
   angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1
   COM add_pad,attributes=no,x=$adjust_hole_x2,y=$adjust_hole_y2,symbol=$xw_hole,polarity=positive,\
   angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1
   COM add_pad,attributes=no,x=$adjust_hole_x3,y=$adjust_hole_y3,symbol=$xw_hole,polarity=positive,\
   angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1
   COM add_pad,attributes=no,x=$adjust_hole_x4,y=$adjust_hole_y4,symbol=$xw_hole,polarity=positive,\
   angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1
   COM add_pad,attributes=no,x=$adjust_hole_x5,y=$adjust_hole_y5,symbol=$xw_hole,polarity=positive,\
   angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,yscale=1

不知道是哪里错误,每次新开GEN,第一次执行浮点运算相关的程式都会出现图片里的错误,如上图中X坐标是空的,提示浮点运算错误,接着在执行一次就没问题了,如此反复,请哪个大侠指点一下,上面的程式就是使用的其中一例.

[此贴子已经被作者于2008-4-22 14:32:13编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2008-4-19 12:00:00 | 显示全部楼层

genesis8.02以上的版本中都有同样的一个BUG,就是在计算时出错你这种情况!!

解决的方法很简单,就是在你第一次运用BC或者MATH计算时,先计算一下无用的变量,

尽量让你的计算,出现在第二次,比如你上面的问题可以这样解决:

 在 set adjust_hole_x2 = `echo "scale=6; $pnl_x - 0.1377953 " | bc` 前面加

set a = `echo "scale=6; $pnl_x - 0.1377953 " | bc`加上这样一句,哪样就计算的a是一个错误,

下次计算时就不会出现你的这种现像了,

回复 支持 反对

使用道具 举报

发表于 2008-4-19 12:00:00 | 显示全部楼层

如有问题,请联系QQ:76480515

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-19 23:24:00 | 显示全部楼层

非常感谢你的回复~太谢谢了~虽然不能解决根本问题~但是还是解决了眼前的问题.

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|手机版|PCB设计论坛|EDA论坛|PCB论坛网 ( 沪ICP备05006956号-1 )

GMT+8, 2024-5-3 06:13 , Processed in 0.140883 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表