前言:

问题描述

在机床加工中,往往需要对刀具的行程值进行提前的了解,以便于确认装卡和加工,而对于一些卧式机床来说,由于机床特性,可能机床刀具的行程位移有所限制,那么机床的刀具行程信息对编程同样很重要。

解决:

针对这个问题,可以在生成的刀轨文件中,利用后置处理程序对行程的XYZ值进行判定,得到刀具的极限行程

后处理编程过程:

虽然不同数控厂商的变量设置形式不同,当后处理程序段逻辑思路类似,以下我们以西门子840D系统为例,进行编程验证:

TCL程序:

#=============================================================
proc PB_CMD_wjc_travel_limits { } {#=============================================================
#先定义变量及得到极值
#完成后在重写文件中,输出相关参数值global mom_motion_type mom_current_motionglobal tmp_motion_typeglobal mom_pos mom_cycle_feed_to_posglobal tmp_posglobal wjc_X_min_list wjc_X_max_listglobal wjc_Y_min_list wjc_Y_max_listglobal wjc_Z_min_list wjc_Z_max_listglobal wjc_X_min_iniglobal wjc_X_max_iniglobal wjc_Y_min_lni global wjc_Y_max_lniglobal wjc_Z_min_lni global wjc_Z_max_lniglobal Wjc_X_min_list Wjc_X_max_listglobal Wjc_Y_min_list Wjc_Y_max_listglobal Wjc_Z_min_list Wjc_Z_max_listglobal wjc_tool_name_listglobal mom_tool_name mom_tool_numberglobal custom_tool_numberglobal custom_tool_name_listglobal current_tool_nameglobal wjc_X_max_ini            global wjc_X_min_ini              global wjc_Y_max_ini               global wjc_Y_min_ini       global wjc_Z_max_ini          global wjc_Z_min_ini               #放置于开始变量
#    set wjc_X_max_ini               "-9999.999"
#   set wjc_X_min_ini               "9999.999"
#   set wjc_Y_max_ini               "-9999.999"
#   set wjc_Y_min_ini               "9999.999"
#   set wjc_Z_max_ini               "-9999.999"
#   set wjc_Z_min_ini               "9999.999"set current_tool_name  ${mom_tool_name}_$mom_tool_number#定义VAR_set wjc_X_min_list($current_tool_name) wjc_X_min_iniVAR_set wjc_X_max_list($current_tool_name) wjc_X_max_iniVAR_set wjc_Y_min_list($current_tool_name) wjc_Y_min_iniVAR_set wjc_Y_max_list($current_tool_name) wjc_Y_max_iniVAR_set wjc_Z_min_list($current_tool_name) wjc_Z_min_iniVAR_set wjc_Z_max_list($current_tool_name) wjc_Z_max_ini#获取比较值if {[info exist mom_current_motion]} {set tmp_motion_type [string toupper $mom_motion_type]if {$tmp_motion_type == "CYCLE"} {if {![info exists mom_cycle_feed_to_pos(0)]} {set tmp_pos(0) $mom_pos(0)} else {set tmp_pos(0) $mom_cycle_feed_to_pos(0)}if {![info exists mom_cycle_feed_to_pos(1)]} {set tmp_pos(1) $mom_pos(1)} else {set tmp_pos(1) $mom_cycle_feed_to_pos(1)}if {![info exists mom_cycle_feed_to_pos(2)]} {set tmp_pos(2) $mom_pos(2)} else {set tmp_pos(2) $mom_cycle_feed_to_pos(2)}} else {set tmp_pos(0) $mom_pos(0)set tmp_pos(1) $mom_pos(1)set tmp_pos(2) $mom_pos(2)}    }
#计算极值MIN $tmp_pos(0) $wjc_X_min_list($current_tool_name) wjc_X_min_list($current_tool_name)MAX $tmp_pos(0) $wjc_X_max_list($current_tool_name) wjc_X_max_list($current_tool_name)MIN $tmp_pos(1) $wjc_Y_min_list($current_tool_name) wjc_Y_min_list($current_tool_name)MAX $tmp_pos(1) $wjc_Y_max_list($current_tool_name) wjc_Y_max_list($current_tool_name)MIN $tmp_pos(2) $wjc_Z_min_list($current_tool_name) wjc_Z_min_list($current_tool_name)MAX $tmp_pos(2) $wjc_Z_max_list($current_tool_name) wjc_Z_max_list($current_tool_name)#取整值foreach tool_name $custom_tool_name_list {set wjc_X_min_list{$tool_name} [format %.3f $wjc_X_min_list($tool_name)]set wjc_X_max_list{$tool_name} [format %.3f $wjc_X_max_list($tool_name)]set wjc_Y_min_list{$tool_name} [format %.3f $wjc_Y_min_list($tool_name)]set wjc_Y_max_list{$tool_name} [format %.3f $wjc_Y_max_list($tool_name)]set wjc_Z_min_list{$tool_name} [format %.3f $wjc_Z_min_list($tool_name)]set wjc_Z_max_list{$tool_name} [format %.3f $wjc_Z_max_list($tool_name)]}
}
#=============================================================
proc VAR_set {a b} {#=============================================================
#将初始参数值覆盖相关变量upvar $a a1 ; upvar $b b1if {![info exists a1]} {set a1 $b1 }}#=============================================================
proc MAX {a b c} {#=============================================================
#获取最大值
upvar $c c1
if { $a > $b } {set c1 $a
} else {set c1 $b
}
return $c1}#=============================================================
proc MIN {a b c} {#=============================================================
#获取最小值
upvar $c c1
if { $a < $b } {set c1 $a
} else {set c1 $b
}return $c1}

完成以上工作后,同样需要将相关信息放置到文件头

编程验证结果

结论:

结论:以上tool travel命令为直接引用后置处理总行程控制命令,tool list行程为自定义命令,通过分析可以看出来,两者的极限值一致,而且同实际编程去对比,也符合实际编程情况。

UG后处理—刀具行程值的输出相关推荐

  1. UG后处理—刀具编号及信息输出研究

    前言: 问题描述 在数控加工中,除了必须有的数控加工轨迹信息外,刀具也是一个重要的内容,而刀具的编号可以在编程过程中写入,但往往有时候编程人员会忘记进行刀具编号,那么这个时候,如果通过后处理的判断可以 ...

  2. UG后处理—进给速度R模式输出研究

    进给速度F之R模式输出 前言: 问题描述: 在机床加工过程中,通过UG CAM生成的数控程序段中可能存在多个进给速度,比如切削进给速度,逼近速度,进刀速度,第一刀切削速度,步进速度,退刀速度等等,如果 ...

  3. UG后处理—程序重写程序头输出相关信息

    前言: 问题描述 在前面的文章里,我们发现可以把刀具的相关信息,还有其他一些信息在程序的中间显示出来,但是如果这些信息仅仅放在程序的中间的时候,可能会导致操作人员开机前确认较为麻烦,如果能把想要的信息 ...

  4. UG后处理 三菱 法兰克三轴带刀库备刀通用后处理

    UG后处理 三菱 法兰克三轴带刀库备刀通用后处理 ====================== 功能说明: 1.在程序头输出NC文件名称.加工时间.后处理日期 2.在程序头输出加工刀具总数.刀具清单. ...

  5. ug后处理如何加密_制作一份自己的UG后处理,再也不会因为没有后处理发愁了...

    UG是一个综合性的CAD/CAM软件,有很多模块,其中加工模块也是很强大的,但是UG的后处理总是令人发愁,自带的没法用,去网上又找不到合适的后处理.不过UG可以制作自己的后处理,这一点挺好的,制作一份 ...

  6. opencv cv2.LUT()(使用查找表中的值填充输出数组)

    from cv2.__init__.py def LUT(src, lut, dst=None): # real signature unknown; restored from __doc__&qu ...

  7. C语言学习之编写一个C程序,运行时输人abc三个值,输出其中值最大者。

    编写一个C程序,运行时输人abc三个值,输出其中值最大者. #include <stdio.h> void main(){int a,b,c,max;printf("请输入三个数 ...

  8. ug后处理如何加密_UG在NX加工中如何添加后处理文件?

    在使用UG加工中,往往使用的机床不一样就要特定后处理文件,那么如何在UG中添加之前制定好的后处理文件呢? 下面以UG8.5为例来说明. 1.首先确认UG后处理文件是否完整. 完整的后处理文件包括后缀为 ...

  9. 东北大学OJ-1208: 实验2-7 :计算ASCII码值并输出

    东北大学OJ-1208: 实验2-7 :计算ASCII码值并输出   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 ...

最新文章

  1. 电脑画画软件_手绘、板绘、还有用pad画画都有啥区别?
  2. 在UIWindow上加类似于“回到顶部”的按钮
  3. 为什么阿里不允许用Executors创建线程池
  4. ASP删除黑客建立的只读文件夹和文件
  5. 关于intellij的配置安装
  6. fcn网络结构代码_FCN实现2-模型结构及实现
  7. 计算机网络-基本概念(4)【网络层】-IPv4向IPv6过渡
  8. 心电图计算心率公式_心电图到底能反应啥问题,看过之后你也能当“医生”
  9. 安装MySql卡在Start Service的问题
  10. 水平方向的算子检测竖直边缘理解
  11. JAVA设计模式之抽象工厂模式
  12. 像素级复制!荣威R品牌“撞车”小鹏P7剪刀门,还是手动的?
  13. 移动端软件测试要点,移动端测试用例设计总结
  14. 为什么前端工程师的工作很难找?
  15. Atitit.嵌入式web 服务器 java android最佳实践
  16. 华为交换机常见VLAN操作
  17. C语言学习书籍推荐《明解C语言》下载
  18. mac 访问局域网服务器地址
  19. [Java] Receipt 简易超市小票
  20. 7-7 图像抽丝 (10分)

热门文章

  1. 美国政府正在亲手扼杀互联网创新
  2. ThickBox 3.1参数详细解释
  3. 留给百度AI证明自己的时间不多了
  4. 社群运营5招激活杀手锏、5个沟通技巧、5大目的
  5. jd-gui.exe反编译工具百度网盘下载
  6. msys2及MinGW工具使用学习笔记
  7. c语言编程模拟机械钟表行走,C语言模拟时钟转动课设报告-附代码
  8. 谈我的算法工程师校招经历
  9. 基于router模式的会议实现
  10. Android OKHttp3的使用和下载/上传图片