呵呵,闲暇之余也做了一个,最近pcmdis的狗领不到,于是就用其他CNC软件做了一个,标准的DMIS4.0
这个程序思路是这样:需要操作者输入任意一个连续点段的首序号和尾序号,然后对这些点排序,并输出到文本文档。
考虑的不是很精巧,程序行也多呵呵,运行起倒没问题
$定义变量和输出设备--C:\123.txt
DECL/COMMON, CHAR,255,dafile
DECL/COMMON, CHAR,255,fname,Sname
DECL/COMMON, CHAR,255,fnameX
DECL/COMMON, DOUBLE,kkk
DECL/COMMON, DOUBLE,yyy
DECL/COMMON, DOUBLE,aaa
DECL/COMMON, DOUBLE,bbB
DECL/COMMON, DOUBLE,ccc
DECL/COMMON, DOUBLE,ddd
DECL/COMMON, DOUBLE,danum
DECL/COMMON, DOUBLE,ZS[1000]
DID(f1)=DEVICE/STOR,'C:\123.txt'
OPEN/DID(f1),DIRECT,OUTPUT
$$输入信息
dafile=PROMPT/'输入点名称?'
fname=ASSIGN/dafile
danum=PROMPT/'输入第一个点序号'
aaa=ASSIGN/danum
danum=PROMPT/'输入最后一个点序号?'
bbB=ASSIGN/danum
$$把每个点的Z值提取出来,赋到数组变量ZS里面
DO/kkk,aaa,bbb-aaa+1,1
Sname = ASSIGN/STR(KKK)
fnameX = ASSIGN/CONCAT(fname,Sname)
ZS[KKK]=OBTAIN/FA(@fnameX),5
kkk=ASSIGN/kkk+1
ENDDO
ddd=ASSIGN/aaa
$$排序
DO/kkk,1,bbb-ddd,1
DO/kkk,1,bbb-ddd,1
IF/(ZS[ddd].GT.ZS[ddd+1])
ccc=ASSIGN/ZS[ddd+1]
ZS[ddd+1]=ASSIGN/ZS[ddd]
ZS[ddd]=ASSIGN/ccc
ENDIF
ddd=ASSIGN/ddd+1
ENDDO
ddd=ASSIGN/aaa
ENDDO
$$输出到文本文档C:\123.txt
DO/kkk,1,bbb-ddd+1,1
WRITE/DID(f1),zs[kkk]
kkk=ASSIGN/kkk+1
ENDDO
[此贴子已经被作者于2007-9-5 17:19:46编辑过]