Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206]

Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Part.Open
    • 1.2 NXOpen.UF.Part.LoadStatus
    • 1.3 NXOpen.UF.Part.Close
    • 1.4 NXOpen.UF.Part.AskUnits
  • 2.示例代码
  • 3.运行结果
    • 3.1 内部模式
    • 3.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Part.Open

# 内部和外部模式可用
"""
官方文档翻译:将现有NX part或Solid Edge part检索到会话中,并使其成为工作和显示part。
通过从Solid Edge part中提取Parasolids数据,然后将该数据导入到扩展名为.prt的新NX part中,可以打开Solid Edge部件(.par、.psm、.pwd或.asm文件扩展名)。
新NX part的文件名具有Solid Edge part名和“.prt”文件扩展名。
如果存在与Solid Edge part同名的现有NX part,则此函数将返回错误。
通过打开Solid Edge part文件创建的NX part文件包含一个或多个未参数化的实体。
可以通过此调用打开其他文件。
以下扩展名有效-.udf、.bkm、.xpk和.jt。
具有以下扩展名的外来文件也可以使用UF_PART_open打开-.igs、.stp、.dxf、.dwg和.model。
返回值:一个元素,0位置元素为打开part的tag(python语言的int类型),1位置元素为NXOpen.UF.Part.LoadStatus类对象
"""
def NXOpen.UF.Part.Open(self, part_name)

1.2 NXOpen.UF.Part.LoadStatus

# 内部和外部模式可用
类:NXOpen.UF.Part.LoadStatus(在NXOpen C API中是struct UF_PART_load_status_s)
对象方法:
# 如果加载失败并回滚,则为True
def NXOpen.UF.Part.LoadStatus.Failed(sel)	
def NXOpen.UF.Part.LoadStatus.Failed(self, value)# (len:n_parts,free:UF_free_string_array)分配的文件名数组
def NXOpen.UF.Part.LoadStatus.FileNames(self)	
def NXOpen.UF.Part.LoadStatus.FileNames(self, value)# 以下两个已分配数组的长度。加载时出现错误或警告的part数目,这是file_names和status数组中的元素个数(范围)。
def NXOpen.UF.Part.LoadStatus.NParts(self)	
def NXOpen.UF.Part.LoadStatus.NParts(self, value)# (len:n_parts)为每个文件名分配的相关状态代码数组。对数组中的每个状态代码使用UF_get_fail_message来获取关联的消息字符串,必须释放已分配的数组
def NXOpen.UF.Part.LoadStatus.Statuses(self)	
def NXOpen.UF.Part.LoadStatus.Statuses(self, value)	# 如果唯一的“失败”是用户中止,则为True	
def NXOpen.UF.Part.LoadStatus.UserAbort(self)	
def NXOpen.UF.Part.LoadStatus.UserAbort(self, value)	

1.3 NXOpen.UF.Part.Close

# 内部和外部模式可用
"""
官方文档翻译:关闭部件树中选定的零件以及它下面的所有零件(可选)。如果您在内部模式下运行此程序,系统会显示一个确认窗口,询问您是否应该关闭修改后的part。如果在外部模式下运行此程序,系统会认为该part应该关闭。
使用UF_part_close关闭part不会删除NX中的撤消标记。因此,如果使用此函数,可能会消耗大量内存。要释放此内存,请在调用UF_PART_close之后调用UF_UNDO_delete_all_marks。
scope指定要关闭的多少part:
0=仅指定部分;
1=part和所有子组件。
mode:
0=询问是否修改了零件(仅限内部,外部假设回答“是,删除”);
1=卸载part,即使已修改
2=仅在未修改的情况下卸载part
"""
def NXOpen.UF.Part.Close(self, part_tag, scope, mode)

1.4 NXOpen.UF.Part.AskUnits

# 内部和外部模式可用
"""
官方文档翻译:返回一个值,该值指示part的单位是英制还是公制。
返回值:
(NXOpen C API宏定义值)UF_PART_METRIC(NXOpen Python UF API:NXOpen.UF.UFConstants.UF_PART_METRIC);
(NXOpen C API宏定义值)UF_PART_ENGLISH(NXOpen Python UF API:NXOpen.UF.UFConstants.UF_PART_ENGLISH)。
"""
def NXOpen.UF.Part.AskUnits(self, part_tag)	

2.示例代码

import NXOpen.UF as UFdef get_uf_session():# 获取当前UF会话return UF.UFSession.GetUFSession()def pyuf_open_prt(the_pyuf_session, open_prt_file_name):"""功能:打开一个指定文件路径和文件名的.prt文件"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Open方法位于Part类对象中return pyuf_part_instance.Open(open_prt_file_name)def pyuf_close_prt(the_pyuf_session, part_tag, scope, mode):"""功能:关闭当前工作part"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Close方法位于Part类对象中return pyuf_part_instance.Close(part_tag, scope, mode)def pyuf_get_prt_units(the_pyuf_session, part_tag):"""功能:查询某prt的单位制"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# AskUnits方法位于Part类对象中return pyuf_part_instance.AskUnits(part_tag)if __name__ == '__main__':# 获取uf sessionthe_pyuf_session = get_uf_session()# 打开prt文件路径与名称open_prt_file_name = 'D:\\pyuf_open_prt_test.prt'# 打开D盘根目录下的示例.prt文件,并成为工作prt(work part)# 如果是在内部模式运行,则会在NX/UG界面打开一个名为pyuf_open_prt_test.prt的文件窗口# 如果是外部模式运行,则运行时不会有启动ug界面open_prt_file_data = pyuf_open_prt(the_pyuf_session, open_prt_file_name)# 查询prt的单位制unit_type = pyuf_get_prt_units(the_pyuf_session, open_prt_file_data[0])prt_unit_string = ""if unit_type == UF.UFConstants.UF_PART_METRIC:prt_unit_string = "metric"elif unit_type == UF.UFConstants.UF_PART_ENGLISH:prt_unit_string = "english"# 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据# 由于与NX/UG界面UI操作的方法都在UI类中,因此先获取UF.UI示例对象pyuf_ui_instance = the_pyuf_session.Ui# 判断信息窗口是否打开if pyuf_ui_instance.IsListingWindowOpen() == False:# 信息窗口未打开,先要将其打开# 打开信息窗口pyuf_ui_instance.OpenListingWindow()# 向信息窗口写入内容pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_name is:' + str(open_prt_file_name))pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_tag type is:' + str(type(open_prt_file_data)))pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_tag is:{}'.format(open_prt_file_data))pyuf_ui_instance.WriteListingWindow('\nunit_type type is:{}'.format(type(unit_type)))pyuf_ui_instance.WriteListingWindow('\nunit_type is:{}'.format(unit_type))pyuf_ui_instance.WriteListingWindow('\nprt_unit_string is:{}'.format(prt_unit_string))# 将信息窗口的内容保存到指定文件中pyuf_ui_instance.SaveListingWindow('D:\\pyuf_listingwindow_content_test.txt')# 关闭信息窗口#pyuf_ui_instance.ExitListingWindow()

3.运行结果

3.1 内部模式

选中要运行的.py文件后,点击“管道通路”即可。

运行结果:
在这里插入图片描述

3.2 外部模式

cmd命令:“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_open_prt.py
powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_open_prt.py

运行结果(内存访问违例,不知道为什!!!):
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/210941.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA简介——Grid和Block内Thread索引

1. 引言 前序博客: CUDA简介——基本概念CUDA简介——编程模式CUDA简介——For循环并行化 Thread Index: 每个Thread都有其thread index。 在Kernel中,可通过内置的threadIdx变量来获取其thread index。threadIdx为三维的,有相…

一. 初识数据结构和算法

数据结构与算法是一个达到高级程序员的敲门砖。当你脱离了语言的应用层面,去思考他的设计层面时,你就依旧已经开始初识数据结构与算法了 数据结构 什么是数据结构 对于数据结构的定义官方并没有统一的解释,在各个百科以及算法的书中&#xf…

MicroPython标准库

MicroPython标准库 arraybinascii(二进制/ASCII转换)builtins – 内置函数和异常cmath – 复数的数学函数collections – 集合和容器类型errno – 系统错误代码gc – 控制垃圾收集器hashlib – 散列算法heapq – 堆队列算法io – 输入/输出流json – JSON 编码和解码math – 数…

《微信小程序开发从入门到实战》学习四十一

4.3 云开发文件存储 文件存储功能支持将任意数量和格式的文件(如图片和视频)保存在云端,支持 以文件夹的形式将文件归类。 在云开发控制台中,可以对云端保存的文件进行管理。 也可以通过文件存储API对文件进行上传、删除、移动…

SA与NSA网络架构的区别

SA与NSA网络架构的区别 1. 三大运营商网络制式:2. 5G组网方式及业务特性3. NSA-3系列4. NSA—4系列5. NSA-7系列6. 5G SA网络架构7. 运营商策略 1. 三大运营商网络制式: 联通:3G(WCDMA)\4G(FDD-LTE/TD-LTE)\5G(SA/NSA)移动:2G(GS…

如何购买华为云服务器

华为云是华为推出的云计算服务平台,旨在为企业和个人提供全面的云端解决方案。它提供了包括计算、存储、数据库、人工智能、大数据、安全等多种云服务,覆盖了基础设施、平台和软件级别的需求。华为云致力于构建安全可信赖的云计算基础设施,以…

数据库Delete的多种用法

数据库的Delete操作是用来删除数据库中的数据记录的,它是数据库操作中的一种重要操作,能够帮助用户删除不需要的数据,以便保持数据库的整洁和高效。在使用Delete操作时,需要注意确保操作的准确性和安全性,以免误删重要…

AI助力智慧农业,基于YOLOv3开发构建农田场景下的庄稼作物、田间杂草智能检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义,在前面的系列博文中,我们从一些现实世界里面的所见所想所感进行了很多对应的实践,感兴趣的话可以自行移步阅读即可: 《自建数据集,基于YOLOv7开发构建农田场景下杂草…

数电笔记之寄存器

数电 1 数字电路基础 1.2 二进制数据表达 1.2.1 二进制简介 1.2.2 用二进制表达文字 常用的中文字符集:GBK,UTF8 1.2.3 用二进制表达图片 图片像素化,像素数字化 1.2.4 用二进制表达声音 1.2.5 用二进制表达视频 1.3 数字电路 1.3…

Python与PHP:编写大型爬虫的适用性比较

目录 一、引言 二、Python编写爬虫的优势 1、强大的数据处理能力 2、丰富的网络库和框架 3、良好的可读性和易维护性 4、社区支持和生态系统 三、PHP编写爬虫的优势 1、简单易学 2、广泛的应用领域 3、高效的性能 4、灵活的请求处理方式 四、大型爬虫的编写实例&am…

JavaScript <md5加密的两种不同输出结果分析>--案例(二点一)

前言: 问题是这样的,在浏览器中看到这段代码 然后在控制台进行输出.得到: 紧接着,就在,js文件里面进行转译: 可是,得到的结果是: 这是问题!!! 正题: 为什么相同的js代码,在 .js 文件中的输出与 Chrome 控制台中的输出不一样? 环境差异:不同的JavaScript环境&…

Linux使用root用户安装完MySQL软件后,配置MySQL这个普通用户登录

在 Linux 系统中,当您使用 root 用户安装 MySQL 后,系统会自动创建一个名为 mysql 的系统用户。这个 mysql 用户主要用于管理 MySQL 服务的运行,通常是没有登录系统的权限的。如果您希望使这个 mysql 用户能够登录到系统,您需要设…

Android 12.0 Folder文件夹全屏后文件夹图标列表居中时拖拽app到桌面的优化

1.概述 在12.0的系统rom产品开发中,在Launcher3中在目前的产品需求开发中,对于Launcher3中的文件夹Folder的布局UI 进行了定制化的需求要求把Folder修改为全屏,然后在中间显示文件夹图标的列表,这时候如果Folder是全屏的话,如果拖拽文件夹列表中的app图标,只有拖拽 到屏…

【数据结构实验】树(一)构建二叉查找树(BST)

文章目录 1. 引言2. 二叉查找树3. 实验内容3.1 实验题目(一)输入要求(二)输出要求 3.2 算法实现1. 数据结构2. 全局变量3. 中序遍历函数InOrder4. 二叉查找树的构建函数T5. 主函数 3.3 代码整合 4. 实验结果 1. 引言 二叉查找树&a…

ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性

来源:艾特保IT 虹科干货 | ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性 欢迎关注虹科,为您提供最新资讯! ntopng为人所知的“身份”是被动流量监控。然而,如今的ntopng6.0也进化出主动监控功能来&#xf…

Mybatis XML 配置文件

我们刚开始就有说Mybatis 的开发有两种方式: 1.注释 2.XML 注解和 XML 的方式是可以共存的 我们前面说的都是注释的方式,接下来是XML方式 XML的方式分为三步 : 1.配置数据库(配在 application.yml 里面) 这个跟注释的配置是一样的,username应该都是一样的,password记得写…

java小工具util系列3:JSON转实体类对象工具

文章目录 准备工作1.JSONObject获取所有的key2.集合中实体对象转换 list中Enrey转Dto3.字符串转List<BusyTimeIndicatorAlarmThreshold>4.json字符串转JSONObject5.list根据ids数组过滤list6.json字符串转JavaBean对象7.json对象转javabean8.jsonObject转map9.List\<U…

RPG项目01_层级设置

基于“RPG项目01_UI面板Game”&#xff0c; 找到狼人 添加组件&#xff0c;让狼人一定区域自动跟随主角进行攻击 解释&#xff1a;【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态&#xff0c;则不为蓝色 烘培&…

JSON 语法详解:轻松掌握数据结构(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…