前言:

问题描述

在前面的文章里,我们发现可以把刀具的相关信息,还有其他一些信息在程序的中间显示出来,但是如果这些信息仅仅放在程序的中间的时候,可能会导致操作人员开机前确认较为麻烦,如果能把想要的信息全部提前到程序头开始,显然这个问题会有很大的改善,同样需要注意的是,此问题针对的并非是常规的往前面写入相关信息,那样操作很简单,直接插入字符串即可,而所作的是争对整个程序运行过程中产生的一些相关数据参数,在程序全部执行完后才能够提取,并前置的问题.

解决:

针对这个问题,基本思路就是在文件结尾的时候,对生成的NC程序文件进行读取,并写入相关的信息,重新生成问题。

后处理编程过程:

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

争对这个问题我们尝试用两种方式去解决,这两种方法分别来自网上的一些思路和前辈的经验,我们只是在此基础上做一个改进或者是复现。

TCL程序:

#=============================================================
proc PB_CMD_wjc_program_rewrite_toollist { } {#=============================================================global ptp_file_name temp_file_nameset temp_file_name  "${ptp_file_name}_1"if {[file exists $temp_file_name]} {MOM_remove_file $temp_file_name
}MOM_close_output_file $ptp_file_name
file rename $ptp_file_name $temp_file_nameset ifile [open $temp_file_name r]
set ofile [open $ptp_file_name w]#以下声明和输出自己想要的内容global mom_tool_numberglobal mom_tool_nameglobal custom_tool_numberglobal custom_tool_number_listglobal custom_tool_name_listglobal custom_tool_inf_listglobal custom_tool_data_listglobal custom_tool_number_defaultputs $ofile  "==============tool list========="foreach value $custom_tool_name_list {puts $ofile ";T$custom_tool_number_list($value), $custom_tool_inf_list($value)"}#endset buf ""while {[gets $ifile buf] > 0} {puts $ofile $buf
}close $ifile
close $ofileMOM_remove_file $temp_file_name
MOM_open_output_file $ptp_file_name}
#=============================================================
proc PB_wjc_tool_list_output { } {#=============================================================global mom_sequence_numberglobal mom_sequence_incrementglobal mom_sequence_frequencyglobal mom_sys_leaderglobal mom_sys_leader_2global ptp_file_nameglobal principal_axisglobal custom_tool_number_listglobal custom_tool_name_listglobal custom_tool_type_listglobal custom_tool_inf_listglobal custom_tool_data_listMOM_close_output_file $ptp_file_nameset ncfile [open $ptp_file_name r]set i 0foreach line [split [read $ncfile] \n] {set fileline($i) $lineincr i}close $ncfileif {[file exists $ptp_file_name]} {MOM_remove_file $ptp_file_nameMOM_open_output_file $ptp_file_name} else {return}SEQNO_RESET MOM_reset_sequence $mom_sequence_number $mom_sequence_increment $mom_sequence_frequencyMOM_set_seq_onset line_num $iset insert 0for {set i 0} {$i<$line_num} {incr i} {if {[string match "N*" $fileline($i)]} {if {![regexp {^N[0-9]+ ;} $fileline($i)] && $insert == 0} {MOM_output_literal "; TOOL LIST"foreach value $custom_tool_name_list {MOM_output_literal "; T$custom_tool_number_list($value): $custom_tool_inf_list($value)"}MOM_output_literal ";"set insert 1}regsub {^N[0-9]+ } $fileline($i) "" out_lineMOM_output_literal $out_line} else {MOM_output_text $fileline($i)}}MOM_set_seq_off}

编程验证结果

程序一:

程序二

结论:

显然两种方式都能实现我们想要的结果,并且在第二种方式种我们加入了序号,相对而言,第二种方式可以对文件种的任意一类进行判定处理,而程序一的方式较为简单,主要直接套用模板输出想要的内容。

思考:

在我们实现了这项功能以后,我们发现能把很多需要放在程序尾的信息前置到程序头,比如加工时间,刀具信息,走刀的一些行程等,加工信息等相对来说参考价值不大,而走刀的行程等对一部分机床具有很显著的参考意义,特别是一些卧式机床,所以在下一章的研究种,我们重点探讨刀具的运动行程问题.

同时在下面的学习中,为了测试程序的便捷性,我们研究指定文件夹输出,方便文件管理~

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

  1. UG后处理—刀具行程值的输出

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

  2. php http头设置相关信息

    HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...

  3. Java面向对象之创建和使用对象——定义学生/教师类并输出相关信息

    学生类 import java.util.Scanner;public class Student {String name = "张三";int age = 16;String ...

  4. 后处理安装_分享UG后处理出Excel程序单的方法

     提示:点击上方"NX网"↑ 免费订阅 关注老叶 目前有很多外挂出程序单,但是总感觉少了些什么,比如模板不是自己想要的,NX版本的更新,也是需要等待原作者的更新,我也购买了正版的外 ...

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

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

  6. matlab 基础 —— 输出相关信息(pause、fprintf)

    1. pause 的用法 for i=1:n...pause(3); % 暂停三秒继续向下执行:pause; % 手动按下回车(enter)才会继续执行.... end pause(n):暂停 n 秒 ...

  7. java表示学生信息的类Student,并输出相关信息

    定义一个表示学生信息的类Student,要求如下: (1)类student的成员变量: sNO学号,sName姓名,sSex表示性别,sAge年龄,sjava是Java的课程成绩 (2)类studen ...

  8. UG后处理—文件格式大小判断研究

    文件格式大小判断研究 前言: 问题描述: 最近看的东西比较多,所以就先水一篇.在数控加工中,有的设备对数控程序的大小有严格的限制,那么这个时候输出相关的数控程序大小,甚至进行报警提醒就很有必要的 解决 ...

  9. codeblocks printf函数打印不出来_最全C语言基本程序交互函数之输出到屏幕

    前言 上一栏目主要讲解了各种数据类型的知识,大家先闭眼回顾一下数据类型的知识哦.本章节主要内容是讲解程序的基本交互设计之程序的输出.程序和人交互无非就是通过外设进行输入信息,C语言中基本的交互的基本流 ...

最新文章

  1. 比Momentum更快:揭开Nesterov Accelerated Gradient的真面目NAG 梯度下降
  2. 自带数据线的迷你数显充电宝,旅途必备
  3. 清华大学唐杰教授:人工智能的十年总结
  4. python列表操作:追加元素到列表的代码
  5. 基于FPGA的直流电机
  6. CRM系统能否用好 究竟是谁说了算?
  7. 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机| 极客头条...
  8. web服务启动后mysql崩溃_让Web站点崩溃最常见的七大原因
  9. python : os.path 相关操作
  10. 论文阅读笔记——人脸网络:人脸识别和聚类的统一嵌入
  11. BlackBerry HTML5 WebWorks 平台下,让BB10应用连接上BBM
  12. “疫情当下”能做什么?PHP直播系统源码在行动
  13. 线程创建的三种方式及区别
  14. 【HTML 教程系列第 10 篇】什么是 HTML 中的水平线标签 hr
  15. Notion Avatar Maker - 一个简单有趣的 Notion 风格头像生成器,可生成百万个免费商用的头像
  16. 智安网络丨居安思危·洞见未来 —— 智安网络安全周报
  17. 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止
  18. 现代微型计算机的字长,计算机的字长
  19. 获得ios屏幕上的像素
  20. 解决浏览器突然上不了网的问题

热门文章

  1. “Linux之父”林纳斯•托瓦兹
  2. SonicwALL NSA-4600 防火墙基本介绍
  3. 网站被篡改 收录一些非本网站快照跳转如何解决
  4. Scrapy框架 -- crawlSpider爬虫
  5. ppt python 爬虫_python基础教程 PPT-python为什么叫爬虫
  6. vue的生命周期钩子是什么?
  7. python pyserial 无法识别VSPD创建的虚拟串口 windons 10
  8. tflearn教程_Tensorflow tflearn 编写RCNN
  9. 山东大学数据结构课程设计实验五(低风险出行系统)
  10. 六、 进程的三种基本状态