QUINDOS基本程序——ELE
ELE(元素)是QUINDOS中最重要的数据,因此对ELE的理解和运用至关重要,下面分别讲解。
1   ELE基础
1)ELE是指面,线,圆,点等基本元素。
2)从属类型:NOM,ACT,NPT,APT,EVA,这里只讲重要的NPT、ACT和EVA
3)扩展名 :参见帮助NEX_INFO,
技巧:
LISHLP  (NAM=ALL_INFO)列出QUINDOS所有的帮助目录,如SCA_INFO等
2   元素的操作技巧
1)、NPT
名义点NPT是探针将要探测的点。名义点掩码:X,Y,Z(点的坐标);U,V,W(点的方向),H(I)探针名称,T(点的类型)。
技巧:下面的代码转换NPT掩码为TXT文本
CVMSKTXT (MSK=PM$NPTTT,TXT=TXT)
EDTTXT TXT
名义点的操作一般为点的初始化,点的坐标、方向的拷贝,探针号码的改变以及点的类型的改变等。
初始化:
名义点的初始化是预先初始名义为n行
如下面的代码初始化NPT为四行:
DFNELE(NAM=CIR1,TYP=CIR)
CRSUBTYP(NAM=CIR1,LIN=4,TYP=ELE,STY=NPT)//初始化CIR为四行
LISNPT(NAM=CIR1)
指令CRSUBTYP初始化一个子类型。
当然,用键盘也可以实现。
单点的拷贝和和名义点的合并
元素CIR1有四个名义点,CIR2有六个点,要将CIR2的第二个点放在CIR1的第五行(名义点的合并),下面的代码可以实现:
DFNELE(NAM=PNT)
COLNPT(NAM=PNT,PTS=CIR2,FTS=2,LST=2)//单点的拷贝
COLNPT(NAM=CIR1,DEL=N,PTS=PNT)//名义点合并
LISNPT(NAM=CIR1)
单点坐标(或方向)的拷贝
元素CIR1有四个名义点,CIR2有六个点,要将CIR2的第二个点的坐标值(X,Y,Z)或方向(U,V,W)拷贝到CIR1第一个点的坐标(或方向),下面的程序可以实现
DFNVEC(NAM=VEC1)
VEC1=:VEC:CIR2.NOM.PTS(2).PT
CIR1.NOM.PTS(1).PT=:VEC:VEC1
或
CIR1.NOM.PTS(1).PT=:VEC:CIR2.NOM.PTS(2).PT
方向的拷贝:
CIR1.NOM.PTS(1).DI=:VEC:CIR2.NOM.PTS(2).DI
LISNPT CIR1
单个坐标的拷贝
有时只需要拷贝单个坐标如X,或X,Y等,指令GETVAL,GETVALS,PUTVAL,PUTVALS,GETSTR,PUTSTR等可以实现。下面的代码实现CIR1和CIR2的数据交换
DO(NAM=I,BGN=1,END=4,DLT=1)
 GETVAL(NAM=X$VAL,OBJ= CIR.NOM.PTS(I),DSC=X)
 GETVALS(OBJ= CIR.NOM.PTS(I),RDS=(Y,Z,U,V,W),REA=(Y$VAL,Z$VAL,U$DI,V$DI,W$VAL),CDS=T,CHS=~T)
PUTVAL(…………)
PUTVALS(…………)
ENDDO
单点的拷贝(只有坐标和方向AXI)
有时需要拷贝坐标和方向(PT和DI)这时定义AXI型变量可以实现,如下面的代码:
DFNAXI(NAM=AXI1)
AXI1==CIR2.NOM.PTS(1).AXI
CIR1.NOM.PTS(1).AXI==AXI1
或CIR1.NOM.PTS(1).AXI== CIR2.NOM.PTS(1).AXI
名义点探针号码的改变
指令EXCHPRB可以改变全部名义点探针号码,如果要改变某些点的探针号码,就应该改变名义点探针缩引(I),如果探针直径不一样,
例:
用四根探针生成一圆柱,相邻探针之间相互正交且在同一平面圆柱长度为-20,探针数据必须存储在GDB中(DELPRBS,CPYPRB),程序列表
DFNELE(NAM=CY80,TYP=CYL)
DFNELE(NAM=CI40,TYP=CIR)
CVNAMCHS(CHS=~CY80,NAM=CY80)
~CI40=CI40
CRSUBTYP=~CY80,LIN=8,TYP=ELE。STY=NPT)
GENCIR(NAM=~CI40,ZC0=-10,DIA=80,INO=O,PDI=3,ZVL=0)
EDTNPT ~CI40
DO(NAM=I,BGN=1,END=4,DLT=1)
CONCAT(NAM=~CI40(1),STR=(~CI40,’.NOM.PTS(I)’),LMG=1)
PUTVAL(NAM=~CI40(1),DSC=I,TYP=ELE,VAL=I)
ENDDO
CLP$DIS1=20
CLP$DIS3=FSQR(2*FX_2(80+15))/2
GENCLP(NAM=~CI40,DIS=(CLP$DIS1,5,CLP$DIS3),POS=Y,PRB=GDBPRB:*())
COLNPT(NAM=~CY80,DEL=Y,PTS=~CI40)
TRAOBJ(NAM=~CI40,OLD=~CI40,SHZ=-20)
CRSUBTYP=~CI40,LIN=0,TYP=ELE,STY=NPT,REA=NUM$CI40)
CVSTRTXT(TXT=PRC$REV,LIN=1,STR=’DO  I,NUM$CI40-1,1,-1)'
CVSTRTXT(TXT=PRC$REV,LIN=2,STR=’COLNPT  ~CY80,,N,~CI40,I,I)'
CVSTRTXT (TXT=PRC$REV,LIN=3,STR=’ENDDO’)
INDPRC PRC$REV
MECYL ~CY80
DELCHS(NAM=(~CI40,CI80),CNF=N)
DELREA (NAM=(CLP$DIS1,CLP$DIS3),CNF=N)
2).ACT
未完待续.
错误已经修改,敬请谅解
Edited by - 刘彬 on 2004/07/08  21:32:07