找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

[原创] [原创]CNC程序单及制作

[复制链接]
11
发表于 2005-12-29 17:58:28 | 只看该作者
1.程序根据磁盘情况分析,如果是一样的NC程序覆盖,不一样的增加序号,
                                                           一样的工步,取一样的扩展名,不一样的增加扩展名序号
2.每NC程序都带时间 (而且前置)

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

[ 本帖最后由 yhsean 于 2006-1-13 11:25 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1技术 +1 收起 理由
dearbabyer + 1

查看全部评分

12
发表于 2005-12-30 11:56:45 | 只看该作者

加工中心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 编辑 ]

评分

参与人数 1技术 +1 收起 理由
dearbabyer + 1

查看全部评分

13
发表于 2005-12-30 12:21:34 | 只看该作者
注意:每行输出内容不能过长,否则将无法编译
例:
     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 编辑 ]
14
发表于 2005-12-30 13:07:00 | 只看该作者
好晕~~
15
发表于 2005-12-30 19:42:37 | 只看该作者
哈哈 一个比一个厉害....
16
发表于 2005-12-31 19:14:16 | 只看该作者
历害!
17
发表于 2005-12-31 19:51:39 | 只看该作者
2位都是好样的,无私奉献,提名2005优秀会员。
18
发表于 2006-1-2 22:25:23 | 只看该作者
谢谢
19
发表于 2006-1-8 13:59:29 | 只看该作者
原帖由 风中的影子 于 2005-12-28 13:46 发表
能合并一起在一个文件夹就好了!!!



这个方法不错!
请问楼主如何该!谢谢
20
发表于 2006-1-8 16:24:07 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-23 22:01 , Processed in 0.025122 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表