iCAx开思网

标题: [原创]CNC程序单及制作 [打印本页]

作者: sjhxs    时间: 2005-12-28 09:19
标题: [原创]CNC程序单及制作
本帖最后由 sjhxs 于 2014-8-30 14:17 编辑

操作说明:选择所有程式一起用CNC后处理。

交互区约定说明:

Paettype        工件类型选择   类型说明:A=型腔 B=型芯 C=电极 D=其他
   TEL                编程者电话
  Fixed-X、Fixed-Y     工件定位数据
  Fixed-Z              对刀数据
  XY_plain       说明:A=按工件中心 B=按工件基准点
  Z_plain        对刀说明:A=工件顶面 B=工件底面

图示区说明:

在需要显示图档界面下,按Print/Screen/SysRq后(此为截屏键,键盘上有),打开画图板 按Ctrl+V 另存到D:\NC\零件名文件夹下命名为:零件名.JPG

默认文件位置:D:\NC\零件名文件夹

文件名称:零件名.htm  请在同一窗口中打开。



作者: cimatron13    时间: 2005-12-28 11:22
支持!!!
作者: cimatron13    时间: 2005-12-28 14:13
很好!但我觉得以刀为单位,只显示程式名就好了,没必要显示每一条刀路名称。因为操机员只看程式名.希望改善一下!!!
作者: 38520    时间: 2005-12-28 15:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风中的影子    时间: 2005-12-28 21:08
我们喜欢把同一把刀放到一个文件夹
但用CNC一起处理程序单时
是空的!
作者: 风中的影子    时间: 2005-12-28 21:46
能合并一起在一个文件夹就好了!!!
作者: sjhxs    时间: 2005-12-29 12:33
本帖最后由 sjhxs 于 2014-8-30 14:20 编辑

yuanmadagongkai~~!
作者: 13131    时间: 2005-12-29 15:39
sjhxs辛苦拉
作者: xj_05    时间: 2005-12-29 16:41
辛苦拉
作者: yhsean    时间: 2005-12-29 17:42
论坛是个百花齐放的地方,所以还是适当奉献的好,关于后处理,我于去年开始学习,到现在已经作了,三个版

本,一个基于exf + cmd  一个基于 exf +  sed   一个基于 EXF +  AWK

现将AWK最稳定之版本,分享给大家适用,我想稍候给大家第一个版本的源代码(exf + cmd  )

公布第一个版本的源代码(exf + cmd  )后,有问题的请跟贴,先介绍下 EXF +  AWK最新功能:

[ 本帖最后由 yhsean 于 2005-12-29 17:43 编辑 ]
作者: yhsean    时间: 2005-12-29 17:58
1.程序根据磁盘情况分析,如果是一样的NC程序覆盖,不一样的增加序号,
                                                           一样的工步,取一样的扩展名,不一样的增加扩展名序号
2.每NC程序都带时间 (而且前置)

3.一次扫描NC代码,处理时间比SED 和CMD版快70%
4.有的朋友喜欢一把刀具一个工步,那么你可以根据扩展名识别它,无论如何,它都会按照刀具自动分离
5.其实操作系统的资源管理器就象一张程序单,因为它已经排序,注释根据情况置于刀具名后现在可以更改后处理的名称(请勿更改GAWK.exe程序的名字)

[ 本帖最后由 yhsean 于 2006-1-13 11:25 编辑 ]
作者: sjhxs    时间: 2005-12-30 11:56
标题: 加工中心CNC程式单 源码大公开
加工中心CNC程式单 源码大公开

* 加工中心CNC程式单  
* CIMATRON post
* Last update :2005-12

********************************************************
* define private variables:

FORMAT (COORDINATES) Xhome Yhome Zhome ;
FORMAT (COORDINATES) maxz minz time downso timeso parttol id ;

********************************************************
INTERACTION (CHARACTER)    "Parttype"        Parttype      = "A"  ;
INTERACTION (CHARACTER)    "Tel"              Tel          = "135..." ;
INTERACTION (CHARACTER)    "Fixed-X"           XO          = "0"  ;
INTERACTION (CHARACTER)    "Fixed-Y"           YO          = "0"  ;
INTERACTION (CHARACTER)    "Fixed-Z"           ZO          = "0"  ;
INTERACTION (CHARACTER)    "XY_plain"          XOY         = "A"  ;
INTERACTION (CHARACTER)    "Z_plain"         Zplain        = "A"  ;
********************************************************
NON_MODAL  ALL_VAR;
MODAL      X_CURPOS Y_CURPOS Z_CURPOS ;

********************************************************

NEW_LINE_IS $ ;
         OUTPUT \J ;
**************************

BEGINNING OF TAPE:


      OUTPUT $  "<HTML>";
      OUTPUT $  "<body bgcolor=#fef4d9 return true>";
      OUTPUT $  "<B><FONT SIZE=5>< ALIGN=CENTER>加工中心CNC程式单</P></B></FONT>";
      OUTPUT $ "< ALIGN=CENTER>" ;
      OUTPUT   "<TABLE BORDER CELLSPACING=2 BORDERCOLOR=#000000 CELLPADDING=7 WIDTH=900 >" ;
      OUTPUT $ "<TR><TD WIDTH=60% VALIGN=MIDDLE ROWSPAN=2 HEIGHT=280>" ;
      OUTPUT $ "< ALIGN=CENTER><IMG SRC=\NC\" PART_NAME "\" PART_NAME ".jpg " ;
      OUTPUT    "WIDTH=500 HEIGHT=400></TD>" ;

      OUTPUT $  "<TD WIDTH=40% VALIGN=MIDDLE HEIGHT=140>";
      OUTPUT $  "<B>< ALIGN=LEFT>模具名称:"PART_NAME"</P>";     
      OUTPUT $  "<B><P ALIGN=LEFT>工件原点"XOY") X,Y = "XO","YO" 定位</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>说明:A=按工件中心 B=按工件基准点</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>对刀点"Zplain")Z坐标="ZO"毫米</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>对刀说明:A=工件顶面 B=工件底面</P>";
      OUTPUT $  "<B><P ALIGN=LEFT><FONT color=#FF0000>注意:请仔细核对各项定位数据并加以确认</P>";
      OUTPUT $  "<B></TD>";
      OUTPUT $  "<B></TR>";
      OUTPUT $  "<TR><TD WIDTH=40% VALIGN=MIDDLE HEIGHT=140>";
      OUTPUT $  "<B><P ALIGN=LEFT>图档名称:" PART_NAME ".pfm</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>程式路径:\NC\" PART_NAME"</P>";         
      OUTPUT $  "<B><P ALIGN=LEFT>工件类型:"Parttype"</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>类型说明:A=型腔 B=型芯 C=电极 D=其他</P>";
      OUTPUT $  "<B><P ALIGN=LEFT>编制日期:"DATE_SYY "-" DATE_SMM "-"DATE_SDD"</P>";
      OUTPUT $  "</TD>";
      OUTPUT $  "</TR>";
      OUTPUT $  "</TABLE>";

      OUTPUT $  "<TABLE BORDER CELLSPACING=2 BORDERCOLOR=#000000 CELLPADDING=7 WIDTH=900>";

      OUTPUT $  "<TD WIDTH=6.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>编号</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>刀名</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>刀径</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>R角</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>转速</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>进给</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>层降</TD>";
   
      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>最大Z</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>最小Z</TD>";

      OUTPUT $  "<TD WIDTH=8.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>余量</TD>";
      
      OUTPUT $  "<TD WIDTH=8.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>公差</TD>";      

      OUTPUT $  "<TD WIDTH=9% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>预计时间</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>注解</TD>";
      OUTPUT $  "</TR>";
   
      maxz             = -999.0 ;
      minz             = 999.0 ;
      time             = 0.001 ;
      id               = 1 ;

*-----Unit matrix (MUST be input in this order !!!)
      ROT_MAT1   = 1.0 ; ROT_MAT2   = 0.0 ; ROT_MAT3   = 0.0 ;
      ROT_MAT4   = 0.0 ; ROT_MAT5   = 1.0 ; ROT_MAT6   = 0.0 ;
      ROT_MAT7   = 0.0 ; ROT_MAT8   = 0.0 ; ROT_MAT9   = 1.0 ;

      
END OF PROC:
      
      downso = DOWN_STEP ;
      parttol = PART_TOL ;
      timeso = N_GEN_TIME ;

      
      OUTPUT $  "<TD WIDTH=6.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"id"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"CURR_NAME"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"DIAMETER_"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"TOOL_RAD"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"SPIN_SPEED"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"MCH_FEED"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"downso"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"maxz"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"minz"</TD>";

      OUTPUT $  "<TD WIDTH=8.5% VALIGN=TOP>";
      IF_SET ( PROC_NAME _NE_ "POCKET" )
         IF_SET ( PROC_NAME _NE_ "PROFILE" )
      OUTPUT $  "<B><P ALIGN=CENTER>"PART_OFST"</TD>";
          END_IF ;
      END_IF ;
        IF_SET ( PROC_NAME _EQ_ "POCKET" )
      OUTPUT $  "<B><P ALIGN=CENTER>"CONT_OFST"</TD>";
        END_IF ;
        IF_SET ( PROC_NAME _EQ_ "PROFILE" )
      OUTPUT $  "<B><P ALIGN=CENTER>"CONT_OFST"</TD>";
        END_IF ;

      OUTPUT $  "<TD WIDTH=8.5% VALIGN=TOP>";
      IF_SET ( PROC_NAME _NE_ "POCKET" )
         IF_SET ( PROC_NAME _NE_ "PROFILE" )
      OUTPUT $  "<B><P ALIGN=CENTER>"parttol"</TD>";
          END_IF ;
      END_IF ;
        IF_SET ( PROC_NAME _EQ_ "POCKET" )
      OUTPUT $  "<B><P ALIGN=CENTER>"CONT_TOL "</TD>";
        END_IF ;
        IF_SET ( PROC_NAME _EQ_ "PROFILE" )
      OUTPUT $  "<B><P ALIGN=CENTER>"CONT_TOL "</TD>";
        END_IF ;

      OUTPUT $  "<TD WIDTH=9% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"timeso"</TD>";

      OUTPUT $  "<TD WIDTH=7.5% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>"PROC_CMNT"</TD>";

      OUTPUT $  "</TR>";

     time=time+timeso ;
     id  =id + 1 ;
  

END OF FILE:


      OUTPUT $  "<TABLE BORDER CELLSPACING=2 BORDERCOLOR=#000000 CELLPADDING=7 WIDTH=900>";

      OUTPUT $  "<TD WIDTH=43% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=LEFT><FONT color=#FF0000>";
      OUTPUT    "备注: 相同刀具且注解相同者合并为同一刀路</TD>";

      OUTPUT $  "<TD WIDTH=30% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>若有疑问请致电:"tel"</TD>";


      OUTPUT $  "<TD WIDTH=27% VALIGN=TOP>";
      OUTPUT $  "<B><P ALIGN=CENTER>预计加工时间:"time"分钟</FONT></TD>";

      OUTPUT $ "<SCRIPT language=vbs>";
      OUTPUT $  "dim totalstr,aa";
      OUTPUT $  "aa=0.000";
      OUTPUT $  "for i=1 to table1.rows.length-2";
      OUTPUT $  "aa=aa+eval(table1.rows(i).cells(13).innerText) ";
      OUTPUT $  "next ";

      OUTPUT $  "table1.rows(i).cells(13).innerText=aa/120 ";
      OUTPUT $  "</SCRIPT>";

*-----user define batch file------

PRINT0 \J "@ECHO OFF" ;
PRINT0 \J "MD D:\NC\" PART_NAME "\" ;
PRINT0 \J "COPY " PART_NAME "." TP_NAME ".CNC  D:\NC\" PART_NAME "\" PART_NAME ".htm " ;
*PRINT0 \J "TYPE " PART_NAME "." TP_NAME ".TOOLS >>D:\NC\" PART_NAME "\" PART_NAME ".NC" ;
PRINT0 \J "DEL " PART_NAME "." TP_NAME ".CNC" ;
*PRINT0 \J "DEL " PART_NAME "." TP_NAME ".TOOLS" ;

********************************************************

TOOL CHANGE: FIRST:
      SET_ON  SPIN_SPEED ;

TOOL CHANGE:
      SET_ON  SPIN_SPEED ;

TOOL CHANGE: LAST:
      SET_ON  SPIN_SPEED ;

********************************************************
LINEAR MOTION: FAST:
         SET_ON SPIN_SPEED ;

LINEAR MOTION:
          SET_ON SPIN_SPEED SPIN_DIR ;
      IF_SET (maxz _LT_ Z_CURPOS)
      maxz = Z_CURPOS ;
      END_IF ;
      IF_SET (minz _GT_ Z_CURPOS)
      minz = Z_CURPOS ;
      END_IF ;


********************************************************
CIRCULAR MOTION:
          SET_ON SPIN_SPEED ;

[ 本帖最后由 sjhxs 于 2005-12-31 08:48 编辑 ]
作者: sjhxs    时间: 2005-12-30 12:21
注意:每行输出内容不能过长,否则将无法编译
例:
     OUTPUT $  "< ALIGN=CENTER><TABLE BORDER CELLSPACING=2 BORDERCOLOR=#000000 CELLPADDING=7 WIDTH=900 >" ;
必须分两行  
      OUTPUT $ "< ALIGN=CENTER>" ;
      OUTPUT   "<TABLE BORDER CELLSPACING=2 BORDERCOLOR=#000000 CELLPADDING=7 WIDTH=900 >" ;

   由于实际输出中发现数据有丢失现象,所以代码中有部分没直接使用变量,而在前面重新定义进行“缓冲”,如:
      downso = DOWN_STEP ;
      parttol = PART_TOL ;
      timeso = N_GEN_TIME ;
特出说明。

[ 本帖最后由 sjhxs 于 2005-12-30 12:22 编辑 ]
作者: ligangnet    时间: 2005-12-30 13:07
好晕~~
作者: wrg1975@163.com    时间: 2005-12-30 19:42
哈哈 一个比一个厉害....
作者: dasha    时间: 2005-12-31 19:14
历害!
作者: NHYSL    时间: 2005-12-31 19:51
2位都是好样的,无私奉献,提名2005优秀会员。
作者: 星球大战    时间: 2006-1-2 22:25
谢谢
作者: 4673430    时间: 2006-1-8 13:59
原帖由 风中的影子 于 2005-12-28 13:46 发表
能合并一起在一个文件夹就好了!!!



这个方法不错!
请问楼主如何该!谢谢
作者: cjcamcad    时间: 2006-1-8 16:24
谢谢
作者: 星球大战    时间: 2006-1-8 16:54
A4打不下,还是谢谢
作者: 星球大战    时间: 2006-1-8 19:56
谢谢,看看我的程式单
作者: sjhxs    时间: 2006-1-9 10:00
原帖由 星球大战 于 2006-1-8 16:54 发表
A4打不下,还是谢谢


  兄弟:你的NC代码难道也用A4打印的吗?虽然发布的代码稍加修改就可以了,但在无纸化的时代,舍便利而求复杂就让人

[ 本帖最后由 sjhxs 于 2006-1-9 10:06 编辑 ]
作者: 星球大战    时间: 2006-1-19 22:47
源码中怎么没有,公差太大告警的部分
作者: sjhxs    时间: 2006-1-20 09:38
原帖由 星球大战 于 2006-1-19 22:47 发表
源码中怎么没有,公差太大告警的部分

增加此内容即可:  
   if_set (part_tol _gt_ 公差值)
print0 \ j "net send 计算机名 警告内容“;
   end_if;
作者: 星球大战    时间: 2006-1-22 14:13
原帖由 sjhxs 于 2006-1-20 09:38 发表

增加此内容即可:  
   if_set (part_tol _gt_ 公差值)
print0 \ j "net send 计算机名 警告内容“;
   end_if;



谢谢,已经ok了,再请教几个错误报警问题:
1、刀具形状设定错误报警;
2、刀具直径设置错误报警;
3、刀号设置错误报警;
4、两把不同的刀具,刀号设定成一样,使用用刀库加工;
以上的错误判断格式要如何设定,期待中。
作者: tantiduo    时间: 2006-9-3 20:17
今天才发现原来有这样好的贴。我又可以自己搞程式单了。感谢楼主的无私。
作者: tantiduo    时间: 2006-9-6 21:09
敢问楼主能否同一把刀同余量的程式如何可以合并成一条程序后处理。还有如何显示程式名字。是后处理里给的那个。如A0011、A0012、A0013这样。不要只显示程序名跟序号。
作者: peterxieai    时间: 2007-2-24 13:32
xiexie
作者: stl19850407    时间: 2007-7-16 16:17
,按在需要显示图档界面下,按Print/Screen/SysRq后,打开画图板 按Ctrl+V 另存到D:\NC\零件名文件夹下命名为:零件名.JPG


Print/Screen/SysRq命令在哪里找。我怎么没发现
作者: lxhlufcnc    时间: 2007-7-16 18:05
谢谢sjhxs的无私奉献.使我等后进者受益匪浅.好人啊!
作者: LSG7890    时间: 2007-9-14 15:37
哈哈 一个比一个厉害....
作者: fhd2007    时间: 2007-9-15 00:02
今天才发现原来有这样好的贴。
作者: fhd2007    时间: 2007-9-15 00:04
顶///
作者: hehaijun0217    时间: 2007-9-15 11:42
好像用E版不能用呢,请赐教!
作者: fhd2007    时间: 2007-9-16 01:14
LZ啊,我下了年的宝贝了啊。可是不是JPG的图形文件啊。是一个IE网业文件啊。没你那效果,上面又不会该源文件,嘛访帮我一下??
我不会上图片。谢谢
作者: goyod    时间: 2011-10-19 10:08
怎样用啊吗,代码??
作者: gaboriau    时间: 2011-10-20 15:34
學習一下,謝謝


作者: jsxiayan    时间: 2015-11-13 20:04
sjhxs辛苦拉  
作者: 173540291    时间: 2017-1-6 16:09
qqqqqqqqqqqqqqq




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3