G代码解析研究
By
admin
at 2017-12-10 • 0人收藏 • 1346人看过
进行G代码分析,我已经将每一行的G代码都拆分为标准G指令和数据样式了,那么只需要写个数据表,把这些数据依次填写进去就可以了,
那么就可以利用table表的写入和读出属性来操作了.
于是,改造G_conv这个函数,我们将每一个输出到界面操作的下方添加table.push()就可以了
G_conv = function(str){ //定义一个表,全局的话表内容会一直增加不会自动销毁 var tab = {}; var tabI = 1; var delspace = string.replace(str," ",""); var letter = string.split(delspace); var num = ""; for(i=1;#letter;1){ //如果字符为空字符则不作处理继续循环 if(letter[i] == " "){ continue ; } //强制转换为数字格式,不是数字则返回null,是则返回数字 var k,v = tonumber(letter[i]); //判断是数字,或者是负号,或者是小数点? if( (k != null) || (letter[i] == "-")|| (letter[i] == ".")){ //连接这些数字 num = num ++ letter[i]; //如果字符串末尾是数字,则直接输出数字 if(i == #letter){ //console.log(num) mainForm.Motion_file.add(num); table.push(tab,num); num =""; } }else { //不是数字,直接输出 if(num != ""){ mainForm.Motion_file.add(num); table.push(tab,num); num = ""; } //console.log(num) mainForm.Motion_file.add(letter[i]); table.push(tab,letter[i]); //console.log(letter[i]) } } console.dump(tab) // console.log(tab[1],tab[2]) }
2 个回复 | 最后更新于 2017-12-10
消息回调,拖放文件处理,字符串处理后根据回车和换行符将每列数据写入items
mainForm.listbox.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0x233/*_WM_DROPFILES*/ { mainForm.listbox.clear(); var path = win.getDropFile(wParam)[1]; var filecontent = string.load(path); var linestr = string.split(filecontent,'<\r\n>') for(i=1;#linestr;1){ mainForm.listbox.add(linestr[i]); } } else { } } }
注意:
string.split(filecontent,'<\r\n>')
中的<>意思是得出的字符中不在包含改字符.
解决乱码问题,utf8,拖放asni编码的文件,显示乱码处理
mainForm.listbox.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0x233/*_WM_DROPFILES*/ { mainForm.listbox.clear(); var path = win.getDropFile(wParam)[1]; var filecontent = string.load(path); var linestr = string.split(filecontent,'<\r\n>') for(i=1;#linestr;1){ //增加编码转换,这样就不会显示乱码了 mainForm.listbox.add(string.fromto(linestr[i],0,65001)); } } else { } } }
这里用到了 编码转换函数
string.fromto("UTF8编码的字符串",0,65001);
登录后方可回帖
功能增加:打开文件操作 利用fsys.dlg库
其中,文件类型和标题设置需要记住。
NC文件|*.nc|Gcode文件|*.gcode这个这样理解的:
NC文件|*.nc这是一个文件类型,打开窗口的显示名和后缀用|分隔
更多的文件后缀也用|分隔。。。。