文章作者:代工
来源网站:NX CAM二次开发专栏
简介
本专栏将发布至少200篇关于加工的博客内容,由我和代工合作编写,主要作者"代工"具有多年CNC一线加工与编程经验,对NX二次开发也颇有研究。欢迎订阅!
目录
1.加工环境
序号 |
标题 |
文章链接 |
01 |
创建加工环境 |
链接 |
02 |
获取加工模块 |
链接 |
03 |
切换到加工模块 |
链接 |
2.加工导航器
序号 |
标题 |
文章链接 |
01 |
返回当前加工导航器选中的对象数量和TAG |
链接 |
02 |
查询当前加工导航器所在的视图 |
链接 |
03 |
折叠当前加工导视器中所有节点 |
链接 |
04 |
展开当前加工导视器中所有节点 |
链接 |
05 |
刷新当前加工导视器 |
链接 |
06 |
切换当前加工导视器到指定的视图 |
链接 |
07 |
编辑CAM加工对象 |
链接 |
3.程序视图
序号 |
标题 |
文章链接 |
01 |
获得程序组视图的根节点 |
链接 |
02 |
创建程序组 |
链接 |
03 |
移动程序组 |
链接 |
04 |
遍历程序组 |
链接 |
4.机床视图
序号 |
标题 |
文章链接 |
01 |
获得机床(刀具)视图的根节点 |
链接 |
02 |
创建刀具 |
链接 |
03 |
设置刀具参效 |
链接 |
04 |
遍历刀具组 |
链接 |
5.几何视图
序号 |
标题 |
文章链接 |
01 |
获行加工几何视图的根节点 |
链接 |
02 |
创建几何体 |
链接 |
03 |
遍历几何组 |
链接 |
6.方法视图
序号 |
标题 |
文章链接 |
01 |
获得加工方法视图的根节点 |
链接 |
02 |
创建方法 |
链接 |
7.工序
序号 |
标题 |
文章链接 |
01 |
插入工序 |
链接 |
02 |
获取工序的状态 |
链接 |
03 |
查询工序所在的刀具组TAG |
链接 |
04 |
查询工序所在的几何组TAG |
链接 |
05 |
查询工序所在的程序组TAG |
链接 |
06 |
查询工序所在的方法组TAG |
链接 |
07 |
遍历组中的工序 |
链接 |
08 |
判断是不是组 |
链接 |
09 |
工序类型 |
链接 |
10 |
加工对象的类型 |
链接 |
11 |
设置工序的部件 |
链接 |
12 |
设置工序的毛坯 |
链接 |
13 |
设置自动毛坯块 |
链接 |
14 |
设置安全平面的起点和法向 |
链接 |
15 |
设置工序的切削区域 |
链接 |
16 |
设置工序的检查体 |
链接 |
17 |
设置工序的修剪边界 |
链接 |
18 |
设置工序的检查边界 |
链接 |
19 |
设置2D平面铣的部件边界 |
链接 |
20 |
设置2D平面铣毛坯边界 |
链接 |
21 |
设置2D平面铣的底面 |
链接 |
22 |
设置面铣的面边界 |
链接 |
23 |
孔工序指定孔 |
链接 |
24 |
孔工序指定顶面 |
链接 |
25 |
孔工序参数控制 |
链接 |
26 |
设置文本几何列表到工序 |
链接 |
27 |
通过名称获得指定组中对象tag |
链接 |
28 |
移动工序和刀具到指定对象组下 |
链接 |
29 |
生成刀路 |
链接 |
30 |
重播刀路 |
链接 |
31 |
后处理 |
链接 |
32 |
卸载刀路 |
链接 |
33 |
过切检查 |
链接 |
34 |
加工坐标系(MCS)的原点与矩阵方向值的获取 |
链接 |
35 |
复制与移动加工对象 |
链接 |
36 |
调用自己的模版文件并创建操作 |
链接 |
37 |
获得一个组内所有操作的总时间 |
链接 |
38 |
刀路转曲线 |
链接 |
39 |
获取加工操作的最低z深度值方法 |
链接 |
40 |
查看工序的参考刀具 |
链接 |
41 |
设置工序的参考刀具 |
链接 |
42 |
平面铣设置参考刀 |
链接 |
8.边界控制
序号 |
标题 |
文章链接 |
01 |
获取工序边界 |
链接 |
01 |
查询边界应用数据 |
链接 |
01 |
查询边界所有的数据 |
链接 |
01 |
查询边界成员 |
链接 |
01 |
获取成员的应用缴据 |
链接 |
01 |
获取边界成员的几何tag |
链接 |
01 |
查询用户定义事件的边界成员 |
链接 |
01 |
从对象删除几何类型的边界 |
链接 |
01 |
删除工序所有边界 |
链接 |
01 |
设置边界应用数据 |
链接 |
01 |
设置边界平面 |
链接 |
01 |
设置成员的应用数据 |
链接 |
9.进刀点控制
序号 |
标题 |
文章链接 |
01 |
新建进刀点 头文件 |
链接 |
02 |
新建进刀点 封装库文件 |
链接 |
03 |
附加自定义点列表数据到操作 |
链接 |
04 |
获取操作自定义点和应用数据的列表 |
链接 |
05 |
删除工序的所有进刀点 |
链接 |
10.切削层控制
序号 |
标题 |
文章链接 |
01 |
获取切削层层数 |
链接 |
02 |
查询切削层数据 |
链接 |
03 |
创建切削层 |
链接 |
04 |
以面点方式创建切削层 |
链接 |
05 |
编辑指定切削层 |
链接 |
06 |
以面点方式编辑切削层 |
链接 |
07 |
删除指定切削层 |
链接 |
08 |
查询工序的所有切削层 |
链接 |
09 |
修改工序的所有切削层切削深度 |
链接 |
11.几何项目控制
序号 |
标题 |
文章链接 |
01 |
获取工序几何项 |
链接 |
02 |
查询几何项应用效据 |
链接 |
03 |
获取几何项的几何实体 |
链接 |
04 |
删除所有指定类型的的几何项 |
链接 |
05 |
删除指定类型几何项列表 |
链接 |
06 |
设置项目的应用数据 |
链接 |
07 |
获取切削区域面tag |
链接 |
12.文本注释控制
序号 |
标题 |
文章链接 |
01 |
从对象中获取所有的文本几何项 |
链接 |
02 |
获取项目的文本几何实体 |
链接 |
03 |
从对象中删除所有的文本几何项 |
链接 |
04 |
从对象中删除一个文本几何项 |
链接 |
13.参数控制
序号 |
标题 |
文章链接 |
01 |
通用刀具参数 |
链接 |
02 |
通用机床拉制参数 |
链接 |
03 |
通用切削参数余量参数 |
链接 |
04 |
通用进给率参数 |
链接 |
05 |
通用刀具补偿参数 |
链接 |
06 |
拐角处进给减速 |
链接 |
07 |
平面铣余量控制 |
链接 |
08 |
平面铣切削模式参数 |
链接 |
09 |
平面铣切削深度参数 |
链接 |
10 |
面铣壁清理参缴 |
链接 |
11 |
深度轮廓铣切削层控制 |
链接 |
12 |
面铣刀具延展量 |
链接 |
13 |
型腔铣刀具步距 |
链接 |
14 |
深度轮廓铣控制 |
链接 |
15 |
面铣控制 |
链接 |
16 |
文本深度 |
链接 |
14.进刀控制
进刀封闭区域
进刀类型
序号 |
标题 |
文章链接 |
01 |
设置与开发区域相同 |
链接 |
01 |
设置螺旋下刀 |
链接 |
01 |
设置延斜下刀 |
链接 |
01 |
设置插销下刀 |
链接 |
01 |
设置无 |
链接 |
01 |
获取进刀类型 |
链接 |
直径
序号 |
标题 |
文章链接 |
01 |
获取直径 |
链接 |
01 |
公差百分比 |
链接 |
01 |
设置公差MMP |
链接 |
01 |
获取直径公差枚举 |
链接 |
斜坡角
序号 |
标题 |
文章链接 |
01 |
读斜坡角度 |
链接 |
01 |
设置斜坡角度 |
链接 |
01 |
斜坡角度头文件 |
链接 |
高度
序号 |
标题 |
文章链接 |
01 |
设置高度 |
链接 |
01 |
获取高度 |
链接 |
01 |
公差百分比 |
链接 |
01 |
设置公差MMP |
链接 |
01 |
获取直径公差枚举 |
链接 |
高度起点
序号 |
标题 |
文章链接 |
01 |
设置前一层 |
链接 |
01 |
设置当前层 |
链接 |
01 |
获取高度起点类型 |
链接 |
最大宽度
序号 |
标题 |
文章链接 |
01 |
设置距离 |
链接 |
01 |
读取距离 |
链接 |
01 |
公差百分比 |
链接 |
01 |
设置公差MMP |
链接 |
01 |
获取直径公差枚举 |
链接 |
01 |
设置类型为无 |
链接 |
01 |
获取最大宽度类型 |
链接 |
最小安全距离
序号 |
标题 |
文章链接 |
01 |
读取封闭区域最小安全距离 |
链接 |
01 |
设置封闭区域最小安全距离 |
链接 |
01 |
公差百分比 |
链接 |
01 |
设置公差MMP |
链接 |
01 |
获取直径公差枚举 |
链接 |
最小斜坡长度
序号 |
标题 |
文章链接 |
01 |
读取封闭区域最小斜坡长度 |
链接 |
01 |
设置封闭区域最小斜坡长度 |
链接 |
01 |
公差百分比 |
链接 |
01 |
设置公差MMP |
链接 |
01 |
获取直径公差枚举 |
链接 |
如果进刀不合适
序号 |
标题 |
文章链接 |
01 |
跳过 |
链接 |
01 |
插销 |
链接 |
01 |
获取进刀不合适的类型 |
链接 |
进刀开放区域
进刀类型
线性
序号 |
标题 |
文章链接 |
01 |
进刀开放区域,线性,开放区域线性长度 |
链接 |
01 |
进刀开放区域,线性,长度公差百分比 |
链接 |
01 |
进刀开放区域,线性,长度公差MMP |
链接 |
01 |
进刀开放区域,线性,获取直径公差枚举 |
链接 |
01 |
进刀开放区域,线性,获取旋转角度 |
链接 |
01 |
进刀开放区域,线性,获取斜坡角度 |
链接 |
01 |
进刀开放区域,线性,获取高度 |
链接 |
01 |
进刀开放区域,线性,设置最小安全距离枚举,无 |
链接 |
01 |
进刀开放区域,线性,设置最小安全距离枚举,修剪延伸 |
链接 |
01 |
进刀开放区域,线性,设置最小安全距离枚举,仅延伸 |
链接 |
01 |
进刀开放区域,线性,获取最小安全距离枚举值 |
链接 |
01 |
进刀开放区域,线性,获取忽略修剪侧的毛坯 |
链接 |
圆弧
序号 |
标题 |
文章链接 |
01 |
进刀开放区域,圆弧,开放区域圆弧半径 |
链接 |
01 |
进刀开放区域,圆弧,设置圆弧角度 |
链接 |
01 |
进刀开放区域,圆弧,获取圆弧角度 |
链接 |
01 |
进刀开放区域,圆弧,高度 |
链接 |
01 |
进刀开放区域,圆弧,开放区域最小安全距离 |
链接 |
01 |
进刀开放区域,圆弧,在圆弧中心开始 |
链接 |
其他
序号 |
标题 |
文章链接 |
01 |
进刀控制,获取进刀类型 |
链接 |
15.退刀控制
线性
序号 |
标题 |
文章链接 |
01 |
退刀控制,线性,获取长度 |
链接 |
01 |
退刀控制,线性,获取旋转角度 |
链接 |
01 |
退刀控制,线性,获取斜坡角度 |
链接 |
01 |
退刀控制,线性,获取高度值 |
链接 |
01 |
退刀控制,线性,最小安全距离枚举,无 |
链接 |
01 |
退刀控制,线性,最小安全距离枚举,修剪延伸 |
链接 |
01 |
退刀控制,线性,最小安全距离枚举,仅延伸 |
链接 |
01 |
退刀控制,线性,获取最小安全距离枚举值 |
链接 |
01 |
退刀控制,线性,获取最小安全距离值 |
链接 |
圆弧
序号 |
标题 |
文章链接 |
01 |
退刀控制,圆弧,获取半径值 |
链接 |
01 |
退刀控制,圆弧,获取圆弧角度值 |
链接 |
01 |
退刀控制,圆弧,获取高度值 |
链接 |
01 |
退刀控制,圆弧,最小安全距离枚举,无 |
链接 |
01 |
退刀控制,圆弧,最小安全距离枚举,修剪延伸 |
链接 |
01 |
退刀控制,圆弧,最小安全距离枚举,仅延伸 |
链接 |
01 |
退刀控制,圆弧,最安全距离值 |
链接 |
其他
序号 |
标题 |
文章链接 |
01 |
退刀控制,获取退刀类型 |
链接 |
C++语言在UG二次开发中的应用及综合分析
- C++是C语言的扩展,它既可以执行C语言的过程化程序设计,也可以进行以抽象数据类型为特点的基于对象的设计,以及面向对象的程序设计。C++ 在处理问题规模上具有很大的适应性。
- C++不仅具有计算机高效运行的实用性特征,并且致力于提升大规模程序的编程质量以及程序设计语言的问题描述能力。
在UG二次开发中,C++语言具有以下特点:
- C++语言支持多种程序设计风格
- C++的许多特性以库的形式存在,保证了语言的简洁和开发运行的效率
- 与C语言相比,C++引入了面向对象的概念,使得UG二次开发的人机交互界面更加简洁
- 通过借助UG自带的2000多种API函数,结合高级语言C++以及编程软件Visual Studio,可以对UG进行二次开发
- 需要注意的是,市场上的Visual Studio和UG版本众多,并非所有版本都能兼容
C++语言在UG二次开发中的应用:
- 在UG二次开发中应用C++语言需要掌握C++语言的基础知识
- 创建NX Open Wizard时,需注意Visual Studio和UG的版本配置问题
- 在Visual Studio环境中创建程序,链接UG/NX,进行编译和测试,生成后缀名为dll的文件(必须启动UG Gateway才能运行)
- 在UG界面NX Open中运行后缀名为dll的文件,实现UG界面的二次开发
- 通常会使用UG/OpenMenuscript和UG/Open UI-Styler两种辅助开发工具,让开发更加容易,并可以得到更美观的UG界面
综合分析:
- C++是最广泛使用的开发语言之一,也是最早应用的工程类语言,比较完善
- 通过实际创建可以看出,C++语言的逻辑性很强,结构比较完整
- 然而,在开发过程中,由于该语言本身的复杂性,甚至有的开发人员难以理解其语义,加上C++编译系统自身的复杂性,编写难度较大,因此复杂C++程序的正确性难以保证,即使能够编写,编译器也可能存在一些问题
- 目前,各软件的外部接口并非十分完善,对C++编程软件的接口要求较高,在配置方面还存在一些技术性问题
- 如果要开发具有一定风格且具有一定难度系数的UG界面,选择C++语言作为开发方式更能满足开发者的需求
程序设计过程通常包括以下步骤:
- 问题分析:对要解决的问题进行深入的分析,理解问题的具体需求和限制。
- 需求定义:明确程序的目标和功能,包括用户需求、系统需求等。
- 设计:根据需求进行设计,包括算法设计、数据结构设计、界面设计等。
- 编码:根据设计的结果,使用一种编程语言将程序代码实现出来。
- 测试:通过各种测试方法来确保程序的正确性,包括单元测试、集成测试、系统测试等。
- 维护:对程序进行修改和完善,以解决可能出现的问题或满足新的需求。
- 文档编写:编写程序文档,描述程序的功能、操作方法、注意事项等。