hermit945 发表于 2023-3-7 10:50:25

GRIP二次开发 如何编辑表达式来更新实体

有没有大佬帮忙看一下下面的代码哪里有问题,运行之后表达式没有变化,但是读取文本的反馈框显示参数已经更改了
ENTITY/blk
string/file1(132),str1(132),strLb(10),strVl(20)
string/strL1(20),strL2(20),strD1(20),strD2(20),strR1(20),strR2(20)
NUMBER/L1,L2,D1,D2,R1,R2

XSPAWN/PROG,'D:\ZhuanJieRTest\nc\nc\bin\Debug\nc.exe'
file1='nc.para'
fetch/txt,1,'D:\ZhuanJieRTest\nc\nc\bin\Debug\nc.para',iferr,ier1:
reset/1
i=0
ij30:
   read/1,ifend,j50:,iferr,er2:,str1
   i=i+1
   lng=LENF(str1)
   print/i,lng,str1
   eq=FNDSTR(str1,'=',1)
   ifthen/eq>1
      strLb=SUBSTR(str1,1,eq-1)
      strVl=SUBSTR(str1,eq+1,lng)
      print/'lable',strLb
      print/'value',strVl
      ifthen/CMPSTR(strLb,'L1')==0
         L1=VALF(strVl)
      endif
      ifthen/CMPSTR(strLb,'L2')==0
         L2=VALF(strVl)
      endif
      ifthen/CMPSTR(strLb,'D1')==0
         D1=VALF(strVl)
      endif
      ifthen/CMPSTR(strLb,'D2')==0
         D2=VALF(strVl)
      endif
      ifthen/CMPSTR(strLb,'R1')==0
         R1=VALF(strVl)
      endif
      ifthen/CMPSTR(strLb,'R2')==0
         R2=VALF(strVl)
      endif
   endif
   jump/ij30:

j50:
      ifthen/L1>0 and L2>0 and D1>0 and D2>0 and R1>0 and R2>0
               EXPEDT/'p0=L1'
                EXPEDT/'p3=1.2*L1'
                EXPEDT/'p4=L2'
            EXPEDT/'p1=D1'
            EXPEDT/'p6=D2'
            EXPEDT/'p5=R2'
         else
                      messg/'参数错误 无法生成块'
         endif
trm:

HALT

ier1:
   messg/'打开文件出错 检查文件'+file1
   jump/trm:
er2:
   messg/'读文件出错 检查文件'+file1
   jump/trm:


aj450413278 发表于 2023-3-7 11:01:24

进来学习学习
页: [1]
查看完整版本: GRIP二次开发 如何编辑表达式来更新实体