关于后处理
更新时间:2024-04-19 10:26:01 阅读量: 综合文库 文档下载
Mastercam后置处理文件及设定方法详解
Mastercam后置处理文件及设定方法详解
Mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出
适应某一数控机床的专用后置处理程序。
Mastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削加工参数、NC程序
格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:
1. 注解
程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如:
# mi2-Absolute, or Incremental positioning
0=absolute
1=incremental
表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。
在这一部分里,定义了数控系统编程的所有准备功能G代码格式和辅助功能M代码格式。
2. 程序纠错
程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如:
# Error messages (错误信息)
psuberror # Arc output not allowed
\
如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。
3. 定义变量的数据类型、使用格式和常量赋值
如规定G代码和M代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是A、B和C,
圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。
4. 定义问题
可以根据机床加工需要,插入一个问题给后置处理程序执行。
如定义NC程序的目录,定义启动和退出后置处理程序时的C-Hook程序名。
5. 字符串列表
字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。
字符串sg17,表示指定XY加工平面,NC程序中出现的是G17,scc1表示刀具半径左补偿,NC程
序中出现的是G41,字符串sccomp代表刀具半径补偿建立或取消。
6. 自定义单节
可以让使用者将一个或多个NC码作有组织的排列。
自定义单可以是公式、变量、特殊字符串等:
pwcs # G54+ coordinate setting at toolchange
if mil >1, pwcs_g54
表示用pwcs单节指代#G54+在换刀时坐标设定值,mil定义为工件坐标系(G54~G59)
7. 预先定义的单节
使用者可按照数控程序规定的格式将一个或多个NC代码作有组织的排列,编排成一条程序段。
8. 系统问答
后置处理软件提出了五组问题,供使用者回答,可按照注解文字、赋值变量、字符串等内容,根
据使用的机床、数控系统进行回答。
设计后置处理文件,一般是按照NC程序的结构模块来进行。根据NC程序的功能,后置处理文件
分成六个模块如下:
1. 文件头
文件头部分设定程序名称和编号,此外,SINUMERIK 810D系统还必须指定NC程序存放路径,并
按照以下格式输出:
“%_N_(程序名及编号)_(路径)”。
NC程序可存放在主程序、子程序和工作程序目录下,扩展名分别为:MPF、SPF、WPD,一般放在
工作程序目录下。因此经修改的Pst文件格式为:
Pheader # Start of file
\(程序名、存放目录)
2. 程序起始
在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿、主轴转速控制、
冷却液控制等,并可显示编程者、编程日期、时间等注解。
修改后的有刀具号Pst文件开头格式如下:
# Start of file for non-zero tool number
......
pspindle (主轴转速计算)
pcom_movbtl (移动设备)
ptoolcomment (刀具参数注解)
......
pbld, n, *sgcode, *sgplane, \
(快进、XY加工平面、取消刀补、取消固定循环、绝对方式编程)
if mil <=one, pg92_rtrnz, pg92_rtrn, pg92_g92 (返回参考点)
......
pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, pcan1
(快进至某位置、坐标系编置、主轴转速等)
pbld, n, pfzout, *tlngno, scoolant, [ if stagetool=one, *next_tool]
(安全高度、刀长补偿、开冷却液)
pcom_movea (加工过程)
3. 刀具交换
刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具长度补偿、安全
设定、主轴转速控制。
Pst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:
Ptlchg # Tool change
......
ptoolcomment (新刀参数注解)
comment (插入注解)
if stagetool <> two, pbld, n, *t, e (判断、选刀)
n, \(换刀)
pindex (输出地址)
pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, pcan1
(快进至某位置、坐标系偏置、主轴转速等)
pbld, n, pfzout, *tlngno, \
(安全高度、刀长补偿号、开冷却液)
pcom_movea (加工过程)
4. 加工过程
这一过程是快速移动、直线插补、圆弧插补、刀具半径补偿等基本加工动作。
对于几乎所有系统,这些加工动作的程序指令基本相同。只是注意SINUMERIK 810D系统的刀具长度补偿值由字母D后加两位数字调用,不需要G43/G44指令;而半径补偿值则由G41/G42调用,
不需要再接地址代码。用G40取消刀具长度和刀具半径补偿。
5. 切削循环
Mastercam软件提供了6种内定的孔加工固定循环方式:一般钻削(Drill/Cbore)、深孔啄钻(Peck Drill)、断屑钻(Chip Break)、右攻丝(Tap)、精镗孔(Bore#1)、粗镗孔(Bore #2),通过杂项选项(Misc #1/Misc #2)可设定左攻丝、背镗孔、盲孔镗孔、盲孔铰孔等循环,并采用
G73~G89代码来表示。
如对于深孔钻削固定循环,Mastercam采用的格式为:G83 X_Y_Z_R_Q_F;而SINUMERIK 810D系
统用CYCLE83指代深孔钻削循环,其NC程序要求给出循环加工所有参数,输出格式为:
CYCLE83(RTP,RFP,SDIS,DP,DPR,FDEP,FDPR,DAM,DTB,DTS,FRF,VARI)
在pst文件中需按SINUMERIK 810D系统格式进行定义、修改和编写。
6. 程序结尾
程序结尾一般情况下是取消刀补、关冷却液、主轴停止、执行回参考点,程序停止等动作。下面
是修改后的pst程序结尾:
Ptoolend_t #End of tool path, toolchange
......
pbld, n, sccomp, \(取消刀补、主轴停止、关冷却液)
pbld, n, *sg74, \(返回参考点)
if mi2=one, pbld, n, *sg74, \
else, protretabs (程序结束)
例子中文说明:[转贴]
# POST 名称 : wgkG54
# 类型 : MILL
# 机床名称 : GENERIC FANUC
# 控制器名称 : GENERIC FANUC
# 描述 : GENERIC FANUC 3 AXIS MILL POST
# Associated Post : NONE
# 车/铣复合 : NO
# 4-axis/Axis subs. : NO
# 五轴 : NO
# 子程序支持 : NO
# 自动换刀 : NO
# 工作坐标系 : G54
# Executable : MP 8.00
# # #
# 这个POST支持FANUC控制器普通三轴铣床的的G 代码输出,
# 不支持自动换刀,有最大圆弧报警
# 它来源于MP-EZ.PST
# 是针对Mastercam Mill V8的特征而设计的
# #
# --------------------------------------------------------------------------
# 修改日志:
# --------------------------------------------------------------------------
# Programmers Note:
# CNC 05/01/00 - Initial post setup, jce
# 2002-10-11 - 去掉自动换刀,xxx
# 2002-10-12 - 增加中文注释,xxx
# 2002-10-21 - 增加最大圆弧警告,xxx
# 2002-11-05 - 修改坐标系为G54,xxx
# --------------------------------------------------------------------------
# 特征:
# --------------------------------------------------------------------------
# #
# 下列 Misc.(杂项) 必须使用整数:
#
# mi2 - 绝对或增量坐标 at top level
# 0 = 绝对
# 1 = 增量
#
# mi3 - 选择G28或G30来执行参考点回归.
# 0 = G28, 1 = G30
#
# Canned text:
# 在轮廓点里插入\以允许/禁止 下列Mastercam里许可的功能,
# Entering cantext on a contour point from within Mastercam allows the
# following functions to enable/disable.
# Cantext 值:
# 1 = Stop = 输出 \停止码
# 2 = Ostop = 输出 \选择停止码
# 3 = Bld on = 在 NC 单节打开 单节删除码()
# 4 = bLd off = 在 NC 单节关闭 单节删除码()
# # # 钻孔:
# 在这个 POST 里支持所有的钻孔方法.
#
# 附加注意事项:
# 1) G54 calls are generated where the work offset entry of 0 = G54,
# 1 = G55, etc.
# 2) 由NCI变量\决定是否使用米制
#
# 3) 以增量方式从换刀起始位置计算运动量.
# 起始位置通常定义为所有换刀时刀具所处的最后位置
# Incremental mode calculates motion from home position at toolchanges.
# The home position is used to define the last position of the tool
# for all toolchanges.
# 4) 变量 'absinc' 现已被预先定义, 设定 mi2 (杂项整数)以定义
# 绝对/增量程序输出.
#
# --------------------------------------------------------------------------
# Debugging and Factory Set Program Switches 调试和加工设置程序切换
# --------------------------------------------------------------------------
m_one : -1 #定义常数
zero : 0 #定义常数
one : 1 #定义常数
two : 2 #定义常数
three : 3 #定义常数
four : 4 #定义常数
five : 5 #定义常数
c9k : 9999 #定义常数
fastmode : 1 #Posting 速度最佳化
bug1 : 2 #0=不显示, 1=普通列表框, 2=编辑器
bug2 : -30 #Append postline labels, non-zero is column position?
bug3 : 0 #Append whatline no. to each NC line?
bug4 : 1 #Append NCI line no. to each NC line?
whatno : yes #不执行 whatline branches(分枝)? (leave as yes)
get_1004 : 1 #Find gcode 1004 with getnextop?
rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
strtool_v7 : 2 #Use Version 7+ toolname?
tlchng_aft : 2 #Delay call to toolchange until move line
cant_tlchng : 1 #忽视 cantext 入口 on move with tlchng_aft
newglobal : 1 #全局变量错误检测
getnextop : 0 #建立下一个变量表
# --------------------------------------------------------------------------
# 一般输出设置
# --------------------------------------------------------------------------
sub_level : 1 #允许自动子程序支持
breakarcs : no #在各象限分割圆弧
arcoutput : 0 #0= IJK,1= R不带符号,2= R (超过180度时带负号)
arctype : 2 #圆弧中心 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
arccheck : 1 #检测小圆弧,转化为直线
atol : .01 #arccheck=2时的角度公差
ltol : .002 #arccheck=1时的长度公差
vtol : .0001 #系统公差
maxfeedpm : 500 #进给速度极限 (英寸/分钟)
ltol_m : .05 #arccheck=1时的长度公差,米制
vtol_m : .0025 #系统公差,米制
maxfeedpm_m : 10000 #进给速度极限 毫米/分钟
force_wcs : yes #每次换刀时强制输出WCS
spaces : 1 #各指令之间插入的空格数
omitseq : no #省略序号
seqmax : 9999 #最大序号
stagetool : 0 #0 = 无预先备刀, 1 = 预备刀具
use_gear : 0 #输出齿轮交换代码,0=no,1=yes
max_speed : 6000 #最大主轴转速
min_speed : 1 #最小主轴转速
nobrk : no #Omit breakup of x, y & z rapid moves
progname : 1 #使用大写字母表示程序名
max_arc : 50000 #机床允许的最大圆弧半径
# --------------------------------------------------------------------------
# 旋转轴设定
# --------------------------------------------------------------------------
vmc : 1 # 0 = 卧式 , 1 = 立式
# --------------------------------------------------------------------------
# 允许钻孔固定循环功能
# --------------------------------------------------------------------------
usecandrill : yes #使用普通钻孔固定循环
usecanpeck : yes #使用啄式钻孔固定循环
usecanchip : yes #使用断屑钻孔固定循环
usecantap : yes #使用攻螺纹固定循环
usecanbore1 : yes #使用镗孔固定循环1
usecanbore2 : yes #使用镗孔固定循环2
usecanmisc1 : yes #使用杂项固定循环1
usecanmisc2 : yes #使用杂项固定循环2
# --------------------------------------------------------------------------
# 通用自定义变量初始化(不能改变!)
# --------------------------------------------------------------------------
xia : 0 #Formated absolute value for X incremental calculations
yia : 0 #Formated absolute value for Y incremental calculations
zia : 0 #Formated absolute value for Z incremental calculations
bld : 0 #单节删除激活
result : 0 #Return value for functions
sav_spc : 0 #Save spaces
sav_gcode : 0 #Gcode saved
sav_absinc : 0 #Absolute/Incremental Saved Value
sav_coolant : 0 #Coolant saved
toolchng : 1 #On a toolchange flag
spdir2 : 1 #Copy for safe spindle direction calculation
#Drill variables
drlgsel : -1 #Drill Select Initialize
drillref : 0 #Select drill reference
peckacel : 0 #Fractional percent to reduce peck2 when usecan.. : no
drlgcode : 0 #Save Gcode in drill
sav_dgcode : 0 #Drill gcode saved
# --------------------------------------------------------------------------
# 格式列表 - n=nonmodal, l=leading, t=trailing, i=inc, d=delta
#
# --------------------------------------------------------------------------
#定义 英制/米制 坐标格式列表
fs2 1 0.7 0.6 #小数, absolute, 7 place, default for initialize (
fs2 2 0.4 l1.3 #小数, absolute, 4/3 place (x,y,z)
fs2 3 0.4 l1.3d #小数, delta, 4/3 place (i,j,k)
#Common format statements
fs2 4 1 0 1 0 #整数, 无前缀
fs2 5 2 0 2 0l #整数, 强制两位前缀
fs2 6 3 0 3 0l #整数, 强制三位前缀
fs2 7 4 0 4 0l #整数, 强制四位前缀
fs2 9 0.1 0.1 #小数, absolute, 1 place
fs2 10 0.2 0.2 #小数, absolute, 2 place
fs2 11 0.3 0.3 #小数, absolute, 3 place
fs2 12 0.4 0.4 #小数, absolute, 4 place
fs2 13 0.5 0.5 #小数, absolute, 5 place
fs2 14 0.3 0.3d #小数, delta, 3 place
fs2 15 0.2 0.1 #小数, absolute, 2/1 place
fs2 16 1 0 1 0n #整数, 强制输出
# 输出加工类型字符串定义
# --------------------------------------------------------------------------
# 字符串 - 字符串标签必须由 's' 开头,它们没有预先指派
# --------------------------------------------------------------------------
#Select operation note
sop00 \
sop01 \
sop02 \
sop03 \
sop04 \
sop05 \
sop06 \
sop07 \
sop08 \
sop09 \
sop10 \
sop11 \
sop12 \
sop13 \
sop14 \
sop15 \
sop16 \
sop17 \
sop18 \
sop19 \
sop20 \
sopnote # Target string
fstrsel sop00 opcode sopnote
# --------------------------------------------------------------------------
# NC 输出的字符串和字符串选择定义
# --------------------------------------------------------------------------
#Address string definitions 位址串定义
strm \
strn \
stro \
strp \
srad \
srminus \
sblank
#Cantext 字符串定义 (spaces must be padded here)
sm00 \
sm01 \
strtextno
strcantext
# --------------------------------------------------------------------------
# 错误信息
# --------------------------------------------------------------------------
saxiswarn \
# --------------------------------------------------------------------------
# 一般的 G 和 M 代码串选择表 General G and M Code String select tables
# --------------------------------------------------------------------------
# 运动 G 代码选择
sg00 G00 #快速定位
sg01 G01 #直线进给
sg02 G02 #圆弧插补 CW
sg03 G03 #圆弧插补 CCW
sg04 G04 #暂停
sgcode #Target for string
fstrsel sg00 gcode sgcode
# --------------------------------------------------------------------------
# 选择工作平面 G 字串
sg17 G17 #XY 平面代码
sg19 G19 #YZ 平面代码
sg18 G18 #XZ 平面代码
sgplane #Target string
fstrsel sg17 plane sgplane
# --------------------------------------------------------------------------
#选择 英制/米制 字串
sg20 G20 #英制代码
sg21 G21 #米制代码
smetric #Target string
fstrsel sg20 met_tool smetric
# --------------------------------------------------------------------------
#选择参考点回归字串
sg28 G28 #第一参考点回归
sg30 G30 #第二参考点回归
sg28ref #Target string
fstrsel sg28 mi3 sg28ref
# --------------------------------------------------------------------------
# 切削补偿 G 字串选择
scc0 G40 #切削补偿取消
scc1 G41 #切削左补偿
scc2 G42 #切削右补偿
sccomp #Target for string
fstrsel scc0 cc_pos sccomp
# --------------------------------------------------------------------------
# 钻孔固定循环字符串选择
sg81 G81 #钻孔 - 无暂停
sg81d G82 #钻孔 - 有暂停
sg83 G83 #啄式钻孔 - 无暂停
sg83d G83 #啄式钻孔 - 有暂停
sg73 G73 #断屑 - 无暂停
sg73d G73 #断屑 - 有暂停
sg84 G84 #攻螺纹 - 右手
sg84d G74 #攻螺纹 - 左手
sg85 G85 #镗孔 #1 - 无暂停
sg85d G89 #镗孔 #1 - 有暂停
sg86 G86 #镗孔 #2 - 无暂停
sg86d G86 #镗孔 #2 - 有暂停
sgm1 G76 #misc #1 - 无暂停
sgm1d G76 #misc #1 - 有暂停
sgm2 G81 #misc #2 - 无暂停
sgm2d G82 #misc #2 - 有暂停
sgdrill #Target for string
fstrsel sg81 drlgsel sgdrill
# --------------------------------------------------------------------------
# 选择增量或绝对 G字符串
sg90 G90 #绝对代码
sg91 G91 #增量代码
sgabsinc #Target string
fstrsel sg90 absinc sgabsinc
# --------------------------------------------------------------------------
#钻孔固定循环参考高度
sg98 G98 #Z轴回到起始高度
sg99 G99 #Z轴回到参考高度
sgdrlref #Target for string
fstrsel sg98 drillref sgdrlref # Drill cycle G string select
# --------------------------------------------------------------------------
# Generate string for spindle
sm04 M04 #主轴反转
sm05 M05 #主轴停止
sm03 M03 #主轴正转
spindle #Target for string
fstrsel sm04 spdir2 spindle
# --------------------------------------------------------------------------
# 冷却 M 字符串选择
sm09 M09 #冷却液 Off
sm08 M08 #冷却液 喷射
sm08_1 M08 #冷却液 喷雾
sm08_2 M08 #Coolant Tool
scoolant #Target for string
fstrsel sm09 coolant scoolant
# --------------------------------------------------------------------------
# 定义齿轮选择代码
flktbl 1 3 #Lookup table definition - table no. - no. entries
40 0 #底速齿轮档
41 400 #中速齿轮档
42 2250 #高速齿轮档
# --------------------------------------------------------------------------
# 刀具交换 / NC输出变量格式
# --------------------------------------------------------------------------
fmt T 4 t #刀具号
fmt T 4 first_tool #第一把使用的刀具
fmt T 4 next_tool #下一把使用的刀具
fmt D 4 tloffno #直径偏移号
fmt H 4 tlngno #长度偏移号
fmt G 4 g_wcs #WCS G address
fmt P 4 p_wcs #WCS P address
fmt S 4 speed #主轴转速
fmt M 4 gear #Gear range
# --------------------------------------------------------------------------
fmt N 4 n #序号
fmt X 2 xabs #X 坐标输出
fmt Y 2 yabs #Y 坐标输出
fmt Z 2 zabs #Z 坐标输出
fmt X 3 xinc #X 坐标输出
fmt Y 3 yinc #Y 坐标输出
fmt Z 3 zinc #Z 坐标输出
fmt I 3 i #x 轴方向上的圆弧中心描述
fmt J 3 j #y 轴方向上的圆弧中心描述
fmt K 3 k #z 轴方向上的圆弧中心描述
fmt R 2 arcrad #圆弧半径
fmt F 15 feed #进给率
fmt P 11 dwell #暂停
fmt M 5 cantext #Canned text
# --------------------------------------------------------------------------
#Move comment (pound) to output colon with program numbers
fmt O 7 progno #Program number
#fmt \
# --------------------------------------------------------------------------
fmt Q 2 peck1 #First peck increment (positive)
fmt Q 2 shftdrl #Fine bore tool shift
fmt R 2 refht_a #Reference height
fmt R 2 refht_i #Reference height
# --------------------------------------------------------------------------
fmt \注释格式
fmt \注释格式
fmt \注释格式
fmt \注释格式
# --------------------------------------------------------------------------
# Tool Comment / Manual Entry Section 刀具注释/手工输入部分
# --------------------------------------------------------------------------
ptoolcomment #Comment for tool
tnote = t
toffnote = tloffno
tlngnote = tlngno
\
pstrtool #Comment for tool
if strtool <> sblank,
[
strtool = ucase(strtool)
*strtool, \
]
pcomment #Comment from manual entry (must call pcomment2 if booleans)
pcomment2
pcomment2 #Comment from manual entry
scomm = ucase (scomm)
if gcode = 1007, \
else, \
# --------------------------------------------------------------------------
# 文件起始和刀具交换设置
# --------------------------------------------------------------------------
psof0 #Start of file for tool zero
psof
psof #Start of file for non-zero tool number
toolchng = one
if ntools = one,
[
#skip single tool outputs, stagetool must be on
stagetool = m_one
!next_tool
] \
*progno, e
\
\
ptoolcomment
pbld, n, *sgcode, *sgplane, \
sav_absinc = absinc
pcom_moveb
absinc = zero
pcan1, pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, *zr,
*speed, *spindle, pgear, strcantext, e
pe_inc_calc
ps_inc_calc
absinc = sav_absinc
pbld, n, sgabsinc, e
pretract #刀具路径末尾,换刀
sav_absinc = absinc
absinc = one
sav_coolant = coolant
coolant = zero
#cc_pos is reset in the toolchange here
cc_pos = zero
gcode = zero
pbld, n, sccomp, *sm05, e
absinc = sav_absinc
coolant = sav_coolant
peof0 #End of file for tool zero
peof
peof #End of file for non-zero tool
pretract
comment
#Remove pound character to output first tool with staged tools
# #if stagetool = one, pbld, n, *first_tool, e
n, \
\
pwcs #G54+ coordinate setting at toolchange
if workofs <> prv_workofs | (force_wcs & toolchng),
[
if workofs < 6,
[
g_wcs = workofs + 54
*g_wcs
]
else,
[
p_wcs = workofs - five
\
]
]
!workofs
pgear #Find spindle gear from lookup table
if use_gear = one,
[
gear = frange (one, speed)
*gear
] #换刀设置
pspindle #主轴转速计算 for RPM
speed = abs(ss)
if maxss = zero | maxss > max_speed, maxss = max_speed
if speed > max_speed, speed = maxss
if speed < min_speed, speed = min_speed
spdir2 = fsg3(spdir)
pq #Setup post based on switch settings
if stagetool = one, bldnxtool = one
if arctype = one | arctype = four,
[
result = newfs(two, i)
result = newfs(two, j)
result = newfs(two, k)
] else,
[
result = newfs(three, i)
result = newfs(three, j)
result = newfs(three, k)
]
pheader #文件开始前调用
if met_tool = one, #米制常量和变量调整
[
ltol = ltol_m
vtol = vtol_m
maxfeedpm = maxfeedpm_m
]
ptoolend #刀具路径末尾,读取新刀具资料之前
!speed, !spdir2
ptlchg1002 #Call at actual toolchange, end last path here
pspindle
if gcode = 1000,
[
#Null toolchange
] else,
[
#Toolchange and Start of file
if gcode = 1002,
[
#Actual toolchange
pretract
]
if stagetool = one, prv_next_tool = m_one
prv_xia = vequ(xh)
prv_feed = c9k
]
# --------------------------------------------------------------------------
# Motion NC output 运动 NC 输出
# --------------------------------------------------------------------------
#绝对方式输出的变量为 xabs, yabs, zabs.
#增量方式输出的变量为 xinc, yinc, zinc.
# --------------------------------------------------------------------------
prapidout #输出直线运动的NC指令 - 快速
pcan1, pbld, n, sgplane, `sgcode, sgabsinc, pccdia,
pxout, pyout, pzout, strcantext, scoolant, e
plinout #输出直线运动的NC指令 - 进给
pcan1, pbld, n, sgplane, `sgcode, sgabsinc, pccdia,
pxout, pyout, pzout, feed, strcantext, scoolant, e
pcirout #输出圆弧插补的NC指令
if arcrad >= max_arc, result = mprint(saxiswarn)
pcan1, pbld, n, sgplane, sgcode, sgabsinc, pccdia,
pxout, pyout, pzout, parc, feed, strcantext, scoolant, e
pcom_moveb #Common motion preparation routines, before
pxyzcout
ps_inc_calc
pncoutput #Movement output
pcom_moveb
comment
pcan
if gcode = zero, prapidout
if gcode = one, plinout
if gcode > one & gcode < four, pcirout
pcom_movea
pcom_movea #Common motion preparation routines, after
pcan2
pe_inc_calc
pdwl_spd #Call from NCI gcode 4
pspindle
comment
if prv_spdir2 <> spdir2, pbld, n, *sm05, e
if prv_speed <> speed | prv_spdir2 <> spdir2,
pbld, n, *speed, *spindle, pgear, e
pcan
if fmtrnd(dwell), pcan1, pbld, n, *sgcode, *dwell, strcantext, e
else, pcan1, pbld, n, strcantext, e
pcan2
prapid #输出直线运动的NC指令 - 快速
pncoutput
pzrapid #输出直线运动的NC指令 - 快速 Z only
pncoutput
plin #输出直线运动的NC指令 - 进给
pncoutput
pz #输出直线运动的NC指令 - 进给 Z only
pncoutput
pmx #输出NCI向量的NC指令
pncoutput
pcir #输出圆弧插补的NC指令
pncoutput
# --------------------------------------------------------------------------
# Motion output components 运动输出组成
# --------------------------------------------------------------------------
pbld #Canned text - 单节删除
if bld, '/'
pfbld #强制 - 单节删除
\
pccdia #切削补偿
#Force Dxx#
if prv_cc_pos <> cc_pos & cc_pos, prv_tloffno = c9k
sccomp
if cc_pos, tloffno
pfxout #Force X axis output
if absinc = zero, *xabs, !xinc
else, *xinc, !xabs
pxout #X output
if absinc = zero, xabs, !xinc
else, xinc, !xabs
pfyout #Force Y axis output
if absinc = zero, *yabs, !yinc
else, *yinc, !yabs
pyout #Y output
if absinc = zero, yabs, !yinc
else, yinc, !yabs
pfzout #Force Z axis output
if absinc = zero, *zabs, !zinc
else, *zinc, !zabs
pzout #Z output
if absinc = zero, zabs, !zinc
else, zinc, !zabs
parc #选择圆弧输出格式
if arcoutput = zero,
[
#圆弧输出为 IJK
i, j, k
] else,
[
#圆弧输出为 R
if abs(sweep)<=180 | arcoutput=one, result = nwadrs(srad, arcrad)
else, result = nwadrs(srminus, arcrad)
*arcrad
]
# --------------------------------------------------------------------------
# Drilling 钻孔
# --------------------------------------------------------------------------
pdrlcommonb #Canned Drill Cycle common call, before
if gcode = 81,
[
result = newfs (two, zinc)
if drillcyc = three, drlgsel = fsg1(-ss) + drillcyc * two
else, drlgsel = fsg2(dwell) + drillcyc * two
if initht <> refht, drillref = zero
else, drillref = one
prv_refht_a = c9k
prv_refht_i = c9k
]
z = depth
prv_zia = initht
feed = fr_pos
prv_dwell = zero
@dwell
pcom_moveb
comment
pcan
prdrlout #R drill position
refht_a = refht
refht_i = refht - initht
if absinc = zero, refht_a, !refht_i
else, refht_i, !refht_a
pdrill #钻孔固定循环
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, dwell, *feed, strcantext, e
pcom_movea
ppeck #啄式钻孔固定循环
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, *peck1, *feed, strcantext, e
pcom_movea
pchpbrk #断屑固定循环
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, *peck1, *feed, strcantext, e
pcom_movea
ptap #攻螺纹固定循环
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, *feed, strcantext, e
pcom_movea
pbore1 #镗孔固定循环 #1
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, dwell, *feed, strcantext, e
pcom_movea
pbore2 #镗孔固定循环 #2
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, *feed, strcantext, e
pcom_movea
pmisc1 #Canned Misc #1 Cycle
pdrlcommonb
pcan1, pbld, n, *sgdrlref, *sgdrill, pxout, pyout, pfzout,
prdrlout, shftdrl, dwell, *feed, strcantext, e
pcom_movea
pmisc2 #Canned Misc #2 Cycle (User Option)
pdrill
pdrill_2 #Canned Drill Cycle, additional points
pdrlcommonb
pcan1, pbld, n, pxout, pyout, pzout, prdrlout, dwell,
feed, strcantext, e
pcom_movea
ppeck_2 #Canned Peck Drill Cycle
pdrill_2
pchpbrk_2 #Canned Chip Break Cycle
pdrill_2
ptap_2 #Canned Tap Cycle
pdrill_2
pbore1_2 #Canned Bore #1 Cycle
pdrill_2
pbore2_2 #Canned Bore #2 Cycle
pdrill_2
pmisc1_2 #Canned Misc #1 Cycle
pdrill_2
pmisc2_2 #Canned Misc #2 Cycle
pdrill_2
pdrlcst #自定义钻孔循环 8 - 19 (user option)
#Use this postblock to customize drilling cycles 8 - 19
pdrlcommonb
\
pcom_movea
pdrlcst_2 #自定义钻孔循环 8 - 19, additional points (user option)
#Use this postblock to customize drilling cycles 8 - 19
pdrlcommonb
\
pcom_movea
pcanceldc #Cancel canned drill cycle
result = newfs (three, zinc)
z = initht
prv_zia = initht
pxyzcout
!zabs, !zinc
prv_gcode = zero
pbld, n, \
# --------------------------------------------------------------------------
# Canned Text
# --------------------------------------------------------------------------
pcan #Canned text - before output call
strcantext = sblank
if cant_no > zero,
[
if cant_pos1 = zero, pcant_1
if cant_pos2 = zero, pcant_2
if cant_pos3 = zero, pcant_3
if cant_pos4 = zero, pcant_4
if cant_pos5 = zero, pcant_5
if cant_pos6 = zero, pcant_6
if cant_pos7 = zero, pcant_7
if cant_pos8 = zero, pcant_8
if cant_pos9 = zero, pcant_9
if cant_pos10 = zero, pcant_10
pbld, n, strcantext, e
strcantext = sblank
]
pcan1 #Canned text - with move
strcantext = sblank
if cant_no > zero,
[
if cant_pos1 = one, pcant_1
if cant_pos2 = one, pcant_2
if cant_pos3 = one, pcant_3
if cant_pos4 = one, pcant_4
if cant_pos5 = one, pcant_5
if cant_pos6 = one, pcant_6
if cant_pos7 = one, pcant_7
if cant_pos8 = one, pcant_8
if cant_pos9 = one, pcant_9
if cant_pos10 = one, pcant_10
]
if cstop, strcantext = strcantext + sm00
if cgstop, strcantext = strcantext + sm01
#Output of strcantext occurs at the end of the output line
pcan2 #Canned text - after output call
strcantext = sblank
if cant_no > zero,
[
if cant_pos1 = two, pcant_1
if cant_pos2 = two, pcant_2
if cant_pos3 = two, pcant_3
if cant_pos4 = two, pcant_4
if cant_pos5 = two, pcant_5
if cant_pos6 = two, pcant_6
if cant_pos7 = two, pcant_7
if cant_pos8 = two, pcant_8
if cant_pos9 = two, pcant_9
if cant_pos10 = two, pcant_10
pbld, n, strcantext, e
strcantext = sblank
]
pcant_1 #Canned text - output call
cantext = cant_val1
pcant_out
pcant_2 #Canned text - output call
cantext = cant_val2
pcant_out
pcant_3 #Canned text - output call
cantext = cant_val3
pcant_out
pcant_4 #Canned text - output call
cantext = cant_val4
pcant_out
pcant_5 #Canned text - output call
cantext = cant_val5
pcant_out
pcant_6 #Canned text - output call
cantext = cant_val6
pcant_out
pcant_7 #Canned text - output call
cantext = cant_val7
pcant_out
pcant_8 #Canned text - output call
cantext = cant_val8
pcant_out
pcant_9 #Canned text - output call
cantext = cant_val9
pcant_out
pcant_10 #Canned text - output call
cantext = cant_val10
pcant_out
pcant_out #Canned text - build the string for output
#Assign string select type outputs
if cantext = three, bld = one
if cantext = four, bld = zero
正在阅读:
关于后处理04-19
面向对象编程技术2010试卷A++(安徽工业大学) - 图文03-20
2023年小学数学教师个人述职报告范文03-22
2018企业员工入党申请书3000字范文09-08
构造填空判断名词解释09-23
第四章_种内与种间关系06-12
小学休学申请书格式【优秀10篇】03-27
煤焦油加氢工艺说明10-27
这狗真怪作文500字07-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 处理
- 关于
- 2016年冀教版六年级语文上册期中测试卷及答案
- 湖南省党政机关公文处理工作细则(湘办发2012)
- 2009年1月-2月底完成环境影响报告书(表)评估项目的统计表
- 横峰县特色小镇投资建设研究报告(目录) - 图文
- 校本课程《自然灾害》教案 精品 - 图文
- 基础会计实训教程- 辽宁商贸职业学院
- 电力机务员(高级)配电题库
- 五邑地区发展史
- 华锐风电财务舞弊剖析
- 2018年高中数学北师大版必修三:第1章 5 §3 统计图表含解析
- 数学教学中引导学生有效提问之策略的研究
- 福州土地利用总体规划大纲(2006~2020年) - 图文
- ISO20000体系文件--可用性流程管理办法
- 《如何提高课堂的有效性的思考》
- 会计核算试题
- 盾构过铁路施工组织设计 - 图文
- 客户关系管理 星巴克
- 苏州金螳螂财务报表分析
- 安徽省亳州市涡阳一中、蒙城一中、利辛一中联考2017-2018学年高
- 中国科协全国五项学科竞赛条例