![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二次开发NXOPEN
MarcoPro
人生就像一列前进的火车,青春的道路上风景无限,我们需要停下来用心感受
展开
-
浅谈UG二次开发中使用的FindObject
一般我们在业务逻辑里想查找一个的时候,会调用不管是上述哪种实现,都是在内存中找东西,找到了就返回对象,否则返回null,但不会触发加载。这里我分别从建模、装配和制图三种工作模式整理了FindObject的用法。原创 2023-02-20 15:12:49 · 1310 阅读 · 1 评论 -
UG二次开发装配篇 添加/拖动/删除组件方法的实现
我们在UG装配的过程中,经常会遇到需要调整组件目录位置,在软件设计过程中可以通过在目录树里面拖动组件来完成。那么,如果要用程序实现组件的移动/拖动,我们要怎么做呢?本节就完成了添加/拖动/删除组件方法的实现,先看效果图:根节点test下,有SHCS_01、SHCS_02、SHCS_03、SHCS_04这四个组件。下面分别给出了添加组件、移动组件和删除组件的方法。原创 2023-02-14 20:42:58 · 3238 阅读 · 0 评论 -
UG二次开发 创建圆柱和简单孔UF_MODL_create_simple_hole
本实例主要实现了通过ufun创建圆柱和简单孔,主要使用了一下几个ufun函数:theUFSession.Modl.CreateCyl1 创建圆柱theUFSession.Modl.AskFeatFaces 获取面列表theUFSession.Modl.CreateSimpleHole 创建简单孔。原创 2023-02-08 09:00:00 · 1667 阅读 · 1 评论 -
UG二次开发 创建平行关联直线
本节主要讲如何创建直线的平行关联直线,UG命令:插入 —> 曲线 —> 直线和圆弧(关联)—>直线(点-平行)。theUFSession.Curve.CreateLineUF_CURVE_create_line_arc UF_CURVE_create_line原创 2023-02-07 09:35:13 · 630 阅读 · 2 评论 -
NX二开ufun函数创建块/基准平面/凸台/垫块/腔体
本节主要讲述通过ufun函数直接创建块、基准平面、凸台、垫块、腔体,涉及ufun函数如下:1、创建块 UF_MODL_create_block2、创建基准平面 UF_MODL_create_fixed_dplane3、创建凸台 UF_MODL_create_boss4、创建垫块 UF_MODL_create_rect_pad55、创建腔体 UF_MODL_create_rect_pocket。原创 2023-02-01 15:03:03 · 854 阅读 · 0 评论 -
NX二开ufun函数UF_MODL_ask_curve_points(获取曲线信息)
根据曲线tag,返回曲线相关信息:弦宽容、弧度、最大步长、点数组的点。原创 2023-01-21 09:00:00 · 2116 阅读 · 0 评论 -
NX二开ufun函数UF_MODL_ask_bsurf (获取B平面信息)
这个ufun函数用来返回与输入面或正文(带单面)标记关联的B表面数据。1、创建B平面UF_MODL_create_bsurf_thru_pts。3、释放B平面信息UF_MODL_free_bsurf_data。2、获取B平面信息UF_MODL_ask_bsurf。原创 2023-01-20 10:00:00 · 267 阅读 · 1 评论 -
NX二开ufun函数UF_MODL_ask_bounding_box(获取边界坐标)
返回线框和实体类型对象的边界框。线框对象包括直线,圆弧,样条曲线和圆锥曲线。实体类型对象包括实体 ,面和边。根据零件文件中对象的位置,以绝对坐标值返回 边界框值。原创 2023-01-19 09:00:00 · 779 阅读 · 0 评论 -
UG/NX二次开发Siemens官方NXOPEN实例解析—3.3 TitleBlock(添加图纸Title)
通过程序自动添加图纸的Title,在我以为图纸的title一般会直接做到模板里,然后通过调用模板输出,官方之所以专门出了这样一个实例,我想是为了给自动出图纸做铺垫吧。原创 2023-01-13 10:00:00 · 673 阅读 · 0 评论 -
UG/NX 二次开发(C#)自动出2D零件图思路
项目需要自动出2D零件图,可是我之前没做过这方面的内容,没有一点思路。然后我就做了下面几件事,以上只是一个不完整的思路和实现方案,希望有懂的大佬给一些建议,后续我会继续完善这一块内容并无偿分享给大家。原创 2023-01-10 17:20:31 · 2306 阅读 · 0 评论 -
UG/NX 二次开发(C#) 创建跟随鼠标可预览动态直线
在二次开发的过程中,经常会遇到动态创建对象的需求,因为动态创建对象更直观方便,但是这类问题网上讲解很少,这里做一次简单的尝试。theUFSession.Ui.SpecifyScreenPosition //跟随鼠标,返回位置和视图。theUFSession.Disp.DisplayOgpLine //在指定视图里创建直线。先看一个UG自身跟随鼠标动态预览的例子,插入文本的时候,有动态文本跟随鼠标运动。主函数直接调用do_ugopen_api()方法,即可实现动态创建直线的操作。原创 2022-12-12 11:10:17 · 1217 阅读 · 1 评论 -
2022程序员定制版3D世界杯足球
今年的世界杯依旧是那样的火爆,全世界78亿双眼睛都在关注,或者说不止是体育,更多的是一种精神、文化、励志和宣传。 作为一名程序猿,熬夜写代码和熬夜看球都是必不可少的,今天特意送来来自程序猿定制版的世界杯足球制作方法,希望广大博友喜欢。 为了制作这个足球,特意学了一下UG软件,跟着网上的教程做了足球的黑块和白块作为标准件,然后根据一定的角度和方位调整自动合成足球,整个制作过程包括了标准件设计和工业软件自动化的元素。先看主程序:制作过程主要分一下几步:第一步:制原创 2022-12-07 14:11:36 · 369 阅读 · 0 评论 -
UG/NX 二次开发(C#) 特征与体的区别与关联
对于二次开发初学者,特征和体的概率往往比较模糊,特征和体对应于同一个对象,又应用在不同的场景。在不同的情况下,两者之间相辅相成如何转换,这些问题是初学者绕不开又必须经历的。 这里,按照我的理解对特征和体进行了一次系统化的梳理,希望能对初学者有一点帮助。首先引入教材上特征和体的基本概念: 我的理解体就是针对长方体、圆柱体、圆锥体和球这四个基本对象,然后所有的操作都会有相应的特征。换句话说就是体一定会有对应的特征,但是不是说有对象都有体。 我的验证如下,新建一个prt,原创 2022-12-06 11:50:33 · 1327 阅读 · 3 评论 -
UG/NX 二次开发(C#) C#调用C++ 非托管dll的实现
说白了,就是 完全由.NET托管代码实现的DLL,完全依赖于 .NET 平台的 CLR 运行。托管DLL,受.NET CLR管控,支持内存自动回收等的,对于.NET平台是安全DLL。,是指完全或者部分 不是用.NET代码实现,不依赖于.NET平台即可运行,例如 COM方式 的DLL,不支持自动回收内存,对于.NET平台而言,也是非安全可控的。1、首先解决C++非托管动态链接库的问题,需要VS版本2017以上,因为低版本VS创建的DLL都是32位,调用的时候会报错。第二步:导入Dll方法。原创 2022-12-01 16:20:10 · 1255 阅读 · 0 评论 -
UG/NX 二次开发(C#) 自动刻字三部曲3-布尔求差
自动刻字功能是建模过程中必须用到的,但是网上没有找到完整的刻字功能实现,所以我花了一些时间写了一套简易程序,希望能给初学者带来一点帮助。从方法的参数就能发现,求布尔值得三要素:待处理的对象,目标对象,处理方式。原创 2022-12-01 15:13:58 · 581 阅读 · 0 评论 -
UG/NX 二次开发(C#) 自动刻字三部曲2-拉伸功能
自动刻字功能是建模过程中必须用到的,但是网上没有找到完整的刻字功能实现,所以我花了一些时间写了一套简易程序,希望能给初学者带来一点帮助。2、设置限制,开始结束距离。原创 2022-12-01 15:02:00 · 701 阅读 · 0 评论 -
UG/NX 二次开发(C#) 自动刻字三部曲1-打印文本
3、这里还有一个大大坑,就是创建的文本没有返回Tag,所以我这里通过在Commit()方法前后分别获取所有的特征对象的方式,才获取到创建的文本。自动刻字功能是建模过程中必须用到的,但是网上没有找到完整的刻字功能实现,所以我花了一些时间写了一套简易程序,希望能给初学者带来一点帮助。打印文本的源码是经过录制修改而来,所以有部分源码我也还没完全整明白;2、文本在面上之后,怎么摆正文本又是一个问题,所以用到了笛卡尔坐标系。1、要确保文本打印在面上,这里实现了一个智能点。原创 2022-12-01 14:53:02 · 1185 阅读 · 0 评论 -
UG/NX 二次开发(C#) 创建线到平面的投影曲线ufun
上篇讲了NXOPEN获取投影曲线,这篇主要讲一下通过ufun来获取线到面的投影曲线,1、ufun获取的是线到面的投影曲线,目前发现圆锥的低边投影会报错。NXOPEN这种情况不会报错,会投影到面的外面。原创 2022-11-24 14:22:57 · 608 阅读 · 0 评论 -
UG/NX 二次开发(C#) 创建边到平面的投影曲线
通过创建边到平面的投影曲线,可以获取产品的最大外形,在模具设计的过程中经常会用到。这个方法通过录制修改得来,具体细节可能还不是很完善,但是可以使用。原创 2022-11-24 14:22:04 · 519 阅读 · 0 评论 -
UG/NX 二次开发(C#) 程序自动切换制图模式
就拿自动切换制图模式来说,C++可以直接调用内部函数 UI_APP_change_application,还在网上找到有人推荐使用 ::PostMessage切换模块。2、使用theUI.MenuBarManager.ApplicationSwitchRequest("UG_APP_DRAFTING")作为C#语言的铁粉,在做二次开发的时候,发现西门子在C#语言下的支持还是不够完善。个人推荐第二种方法,因为我使用的NX8.0,网上也发现高版本的方法。1、使用图纸页的Open方法,具体使用见代码。原创 2022-11-24 14:21:15 · 900 阅读 · 0 评论 -
UG/NX 二次开发(C#) 获取组件表达式的2种方式
1、有了组件文件路径,加载组件并获取表达式。2、有了组件的tag,获取组件表达式。原创 2022-11-24 14:20:28 · 644 阅读 · 0 评论 -
UG/NX 二次开发(C#) Access数据库表的操作
一次获取所有表数据,如果db比较小跑起来还是没问题的,万一db数据量比较大,内存瞬间崩溃。所以我推荐他用下面的方法,需要哪张表数据,根据表名去拿就好。本人是资深C# Web开发从业者,今天同事跟我提了一个小小的需求,因为他是设计出身半路出家做二次开发,业务很熟但是开发基础薄弱。2、写一个方法,传入表名返回表数据datatable(这个需求可能是因为同事不会写sql语句)三、个人建议,还是用sql比较方便,灵活,也把基本代码贴出来供大家参考。3)把表数据塞进dataset,并返回需要的数据。原创 2022-11-24 14:14:21 · 494 阅读 · 0 评论 -
UG/NX 二次开发(C#) 通过反射原理修正表达式的方法
UG二次开发,难免会有大量的修正表达式的需求,因为二开人员大都是设计人员半路出家,所以C#语言的精华大多不会用。这里通过C#的反射原理实现一个通用的修正表达式的方法。第二步:利用反射原理修正表达式,自动完全匹配。第一步:定义表达式实体。原创 2022-11-24 14:11:40 · 311 阅读 · 0 评论 -
UG/NX 二次开发(C#) 获取两个体的相交体
【代码】UG/NX 二次开发(C#) 获取两个体的相交体。原创 2022-11-24 14:09:22 · 421 阅读 · 0 评论 -
UG/NX 二次开发(C#) 获取曲面的中心点坐标
二开过程中,需要用到曲面的中心点坐标,没有直接的获取方法,找了一些群友问,大佬甩我一句0.5uv,完全没看明白什么意思,没有设计基础做二开的是尴尬。经过多方查阅资料终于明白大佬的意思,顺便整理出来与大家分享。原创 2022-11-24 14:07:47 · 1609 阅读 · 1 评论 -
UG/NX二次开发(C#) 获取组件里面的部件实体
部件一旦装配之后,UG会对部件进行封装,并生成新的tag,那我们如何去查找装配后的部件呢?2、通过NXOPEN遍历部件;1、通过ufun函数获取;原创 2022-11-24 14:05:46 · 1743 阅读 · 0 评论 -
UG/NX二次开发(C#) 一个方法遍历部件的体、面、边属性
初学UG/NX, 对体的各种tag还不熟悉,更别说各种面、边、点的操作,感觉就像一口锅里面的饺子,根本分不清哪个是哪个。1、先定义体、面、边模型。2、加载体的方法如下。原创 2022-11-23 10:20:33 · 1710 阅读 · 0 评论 -
UG/NX二次开发(C#) 创建体的最小包容块
体的最小包容体用途很多,能将一个复杂的实体简化成一个长方体。原创 2022-11-23 10:15:45 · 1204 阅读 · 0 评论 -
UG/NX 二开开发(C#) Tag,Handle在不同场景下的分析(一)
对于NX二开的初学者来说,Tag,TaggedObject,Handle这三个基本对象是解决问题经常会遇到的。//tag 转 TaggedObject, TaggedObject可以强制转换成Bogy/Face/Edge。这时,我们需要从组件里面找到block,直接上代码(这里只对比tag和hand,获取过程可以参考我的另一篇文章。先引用西门子官方解释,如下。原创 2022-11-23 10:10:21 · 820 阅读 · 0 评论 -
UG/NX 二开开发(C#) Tag,Handle在不同场景下的分析(二)
在制图模式下,目前我还没有发现直接获取组件和部件的方法,后续会持续更新,目前是用了唐康林老师的通过手动命名,然后根据name通过ufun来获取tag,theUFSession.Obj.CycleByName。他们有2个Tag,2个Hand,个人验证过,通过theUFSession.Obj.CycleByName获取的tag在制图模式可以正常使用,相反另外一套tag在制图模式下无法正常使用。从运行结果来看,同样的两条边:EDGESTART、EDGEEND。原创 2022-11-23 10:11:46 · 519 阅读 · 0 评论