Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Part.New
    • 1.2 NXOpen.UF.Part.Save
    • 1.3 NXOpen.UF.Ui.OpenListingWindow
    • 1.4 NXOpen.UF.Ui.IsListingWindowOpen
    • 1.5 NXOpen.UF.Ui.WriteListingWindow
    • 1.6 NXOpen.UF.Ui.SaveListingWindow
    • 1.7 NXOpen.UF.Ui.ExitListingWindow
  • 2.示例代码
  • 3.运行结果
    • 3.1 内部模式
    • 3.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Part.New

# 内部和外部模式可用
"""
官方文档翻译:在当前任务中创建一个新的NX零件,并使其成为工作零件。
part_name(str)新部件的名称。此部件名称对于会话必须是唯一的。同一会话中两个部分的叶名称不能相同。
units(int)指定英制或公制单位。1=公制2=英制
"""
def NXOpen.UF.Part.New(self, part_name, units)

1.2 NXOpen.UF.Part.Save

# 内部和外部模式可用
"""
官方文档翻译:将当前工作零件及其所有修改的子零件(如果是部件)保存到磁盘。
"""
def NXOpen.UF.Part.Save(self)

1.3 NXOpen.UF.Ui.OpenListingWindow

# 内部和外部模式可用
"""
官方文档翻译:如果处于内部打开API模式,则打开并管理(显示)主题样式的信息窗口。第一次打开此窗口时,它将是空的。进一步的调用将显示先前在窗口中显示的信息。
如果处于外部打开API模式,则将列表窗口标志设置为打开。
"""
def NXOpen.UF.Ui.OpenListingWindow(self)

1.4 NXOpen.UF.Ui.IsListingWindowOpen

# 内部和外部模式可用
"""
官方文档翻译:查询“信息”窗口是打开还是关闭。如果“信息”窗口从未打开,已通过“文件-->退出”、“文件-->关闭”关闭,或已通过调用UF_UI_Close_listing_window或选择“信息”按钮关闭,则此函数返回值FALSE。
"""
def NXOpen.UF.Ui.IsListingWindowOpen(self)

1.5 NXOpen.UF.Ui.WriteListingWindow

# 内部和外部模式可用
"""
官方文档翻译:将字符串写入“信息”窗口。您应该在放置字符串后添加自己的新行。
如果在内部Open API中,文本将显示在信息窗口中。如果在外部Open API中,文本将打印为标准输出。
必须先打开“信息”窗口,然后才能对其进行写入。
一旦在外部程序中完成UF_terminate,就不能再向控制台窗口写入。必须使用系统调用对其进行重新初始化。
注意:当运行内部Open API程序(例如带有预定义入口点的dll,而不是主可执行文件)时,代码不知道启动用户功能程序的应用程序或进程。
因此,所有内部API都被视为内部NX程序,并将标准输出设置为列表窗口。任何对UF_UI_write_listing_window的调用都将尝试写入列表窗口。
因此,如果GRIP批处理程序调用使用UF_UI_write_listing_window的内部Open应用程序,它将无法找到列表窗口,并将引发错误。
如果GRIP批处理将调用内部程序,请使用UF_print_syslog将输出写入系统日志。
"""
def NXOpen.UF.Ui.WriteListingWindow(self, string)

1.6 NXOpen.UF.Ui.SaveListingWindow

# 内部和外部模式可用
"""
官方文档翻译:将“信息”窗口的内容保存到参数指定的文件中。
注意:保存的列表窗口信息限制为每行256个字符。如果一行的长度超过256个字符,它将被换行到保存文件中的多行。
"""
def NXOpen.UF.Ui.SaveListingWindow(self, filename)

1.7 NXOpen.UF.Ui.ExitListingWindow

# 内部和外部模式可用
"""
官方文档翻译:关闭并清除列表窗口。如果在内部Open API中,则窗口将关闭并清除。如果在外部Open API中,则设备设置为关闭
"""
def NXOpen.UF.Ui.ExitListingWindow(self)

2.示例代码

import NXOpen.UF as UFdef get_uf_session():# 获取当前UF会话return UF.UFSession.GetUFSession()def pyuf_new_prt(the_pyuf_session, new_prt_file_name, units = 1):"""功能:创建一个指定文件路径和文件名的.prt文件,默认单位制是米(m)"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# New方法位于Part类对象中new_prt_file_tag = pyuf_part_instance.New(new_prt_file_name, units)def pyuf_save_prt(the_pyuf_session):"""功能:保存当前工作part"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Save方法位于Part类对象中return pyuf_part_instance.Save()if __name__ == '__main__':# 获取uf sessionthe_pyuf_session = get_uf_session()# 新prt文件路径与名称new_prt_file_name = 'D:\\pyuf_new_prt_test.prt'# 在D盘根目录下创建一个示例.prt文件,并成为工作prt(work part)# 如果是在内部模式运行,则会在NX/UG界面创建一个名为pyuf_new_prt_test.prt的文件窗口# 如果是外部模式运行,则运行过后不会有任何文件存在,因为没有执行保存操作new_prt_file_tag = pyuf_new_prt(the_pyuf_session, new_prt_file_name)# 保存当前工作partpyuf_save_prt(the_pyuf_session)# 外部模式或内部模式运行标识flag = 'internal'# 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据if flag == 'external':print('\nnew_prt_file_tag type is:{}, new_prt_file_tag value is:{}'.format(type(new_prt_file_tag), new_prt_file_tag))elif flag == 'internal':# 由于与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('\nnew_prt_file_name is:{}'.format(new_prt_file_name))pyuf_ui_instance.WriteListingWindow('\nnew_prt_file_tag type is:{}'.format(type(new_prt_file_tag)))pyuf_ui_instance.WriteListingWindow('\nnew_prt_file_tag type is:{}'.format(new_prt_file_tag))# 将信息窗口的内容保存到指定文件中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_new_prt.py
powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_new_prt.py

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

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

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

相关文章

电气间隙和爬电距离的算法

电气间隙和爬电距离 一、定义 1、电气间隙:不同电位的两个导电部件间最短的空间直线距离。 2、爬电距离:不同电位的两个导电部件之间沿绝缘材料表面的最短距离。 3、隔离距离(机械式开关电器一个极的):满足对隔离器…

华为手环关闭智能适时测量

问题 使用华为手环并使用华为创新研究APP后,会自动打开智能适时测量开关,此开关开启后,手环会在睡眠时间自动测量血氧,增加手环功耗从而影响续航,用户可根据自身需求决定是否开启,下文介绍如何找到此开关。…

Stable Diffusion 系列教程 - 1 基础准备(针对新手)

使用SD有两种方式: 本地: 显卡要求:硬件环境推荐NVIDIA的具有8G显存的独立显卡,这个显存勉勉强强能摸到门槛。再往下的4G可能面临各种炸显存、炼丹失败、无法生成图片等各种问题。对于8G显存,1.0模型就不行&#xff0…

洛谷 P9516 color C++代码

目录 前言 思路点拨 AC代码 结尾 前言 今天我们来做洛谷上的一道题目。 网址:color - 洛谷 题目: 思路点拨 这题就是if-else判断输入的五个数据和不就OK了? 在这里我的估值是183(截止2023.12.3),热…

【力扣】56. 合并区间

【力扣】56. 合并区间 文章目录 【力扣】56. 合并区间1. 题目介绍2. 解法2.1 方法一:标志位2.2 方法二:排序 遍历 3. Danger参考 1. 题目介绍 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合…

Linux系统配置深度学习环境之cudnn安装

前言 一个针对深度学习应用优化的 GPU 加速库。它提供了高性能、高可靠性的加速算法,旨在加速深度神经网络模型的训练和推理过程。 cuDNN 提供了一系列优化的基本算法和函数,包括卷积、池化、规范化、激活函数等,以及针对深度学习任务的高级功…

移动平均滤波的原理和C代码

移动平均滤波是一种简单有效的平滑信号的方法,它通过计算一系列数据点的平均值来减小信号中的波动。基本的移动平均滤波方法有两种:简单移动平均(SMA)和指数加权移动平均(EWMA)。 简单移动平均滤波&#xf…

Go读取yaml文件,struct返回,json输出

程序模块中,缺少不了一些配置定义,这时定义yaml是个很好的选择 先定义yaml文件内容,文件名为:task_status_config.yaml confs:#阅读类任务,即提醒任务read:name: readawait: #待开始任务status_id: 0ing: #进行中任务…

53.redis分布式缓存

目录 一、单机安装Redis。 二、Redis主从集群。 2.1.集群结构 2.2.准备实例和配置 2.3.启动 2.4.开启主从关系 2.5.测试 三、搭建哨兵集群。 3.1.集群结构 3.2.准备实例和配置 3.3.启动 3.4.测试 四、搭建分片集群。 4.1.集群结构 4.2.准备实例和配置 4.3.启动…

监控之Spring Boot Admin

目录 一、Spring Boot Admin 简介 官方网址 简介 二、Spring Boot Admin的使用 启动SBA server 微服务端配置SBA server地址 查看监控信息 一、Spring Boot Admin 简介 官方网址 GitHup网址:GitHub - codecentric/spring-boot-admin: Admin UI for administ…

Linux下Redis安装及配置

首先下载redis安装包:地址 这里我使用的是7.0版本的! 将文件上传至linux上,此处不再多叙述,不会操作的,建议使用ftp! 第一步:解压压缩包 tar -zxvf redis-7.0.14.tar.gz第二步:移…

网络安全--网络环境构成,系统的安全

2. 网络攻防环境 目标 了解攻防环境构成了解入侵检测系统(平台)的部署位置 2.1. 环境构成 2.1.1. 环境框图 一个基本的网络攻防实验环境包括:靶机、攻击机、入侵检测分析系统、网络连接四部分组成。 一个基础的网络攻防实验环境需要如下…

使用 Kettle 完成数据 ETL

文章目录 使用 Kettle 完成数据 ETL数据清洗数据处理 使用 Kettle 完成数据 ETL 现在我们有一份网站的日志数据集,准备使用Kettle进行数据ETL。先将数据集加载到Hadoop集群中,然后对数据进行清洗,最后加载到Hive中。 在本地新建一个数据集文…

RocketMQ-RocketMQ集群实践

搭建RocketMQ可视化管理服务 下载可视化客户端源码下载 | RocketMQ 这里只提供了源码,并没有提供直接运行的jar包。将源码下载下来后,需要解压并进入对应的目录,使用maven进行编译。(需要提前安装maven客户端) mvn clean package -Dmaven.t…

RPC和REST对比

RPC和REST对比 参考学习 RPC 和 REST 之间有什么区别? 当我们对比RPC和REST时,其实是在对比RPC风格的API和REST风格的API,后者通常成为RESTful API。 远程过程调用(RPC)和 REST 是 API 设计中的两种架构风格。API …

「Swift」取消UITableView起始位置在状态栏下方开始

前言:在写页面UI时发现,当隐藏了NavigationBar时,即使UITableView是从(0,0)进行布局,也会一直在手机状态栏下方进行展示布局,而我的想法是希望UITableView可以从状态栏处就进行展示布局 当前页面展示: 问题…

qt-C++笔记之QStringList

qt-C笔记之QStringList —— 杭州 2023-12-03 code review! 文章目录 qt-C笔记之QStringList1.1.《Qt官方文档》第一部分翻译&#xff1a;继承自QList\<QString\>-初始化-添加字符串1.2.迭代字符串1.3.join()和split()1.4.filter()1.5.lastIndexOf()1.6.indexOf()1.7.…

【Delphi】实现彩色日志显示框(TRichEdit Helper)

目录 一、前言 二、实现方法 1. 第一步 2. 第二步 3. 第三步 三、主程序代码 四、下载 1. 可执行程序 2. 程序源代码 一、前言 在用Delphi做日常开发的时候&#xff0c;经常需要显示程序运行的日志&#xff0c;一般我们会使用TMemo&#xff0c;使用起来简单&#xff0c…

简单3D姿态基线模型网络架构与验证【SIM】

在这篇文章中&#xff0c;我们将回顾 ICCV’17 上提出的 Simple 3D Pose Baseline &#xff0c;即用于 3d 人体姿势估计的简单而有效的基线&#xff0c;也称为 SIM。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…

基础组件总结(以Element UI组件库为例)

一般对一个组件的使用方式&#xff1a; 每一个组件都有被绑定的数据&#xff0c; &#xff08;1&#xff09;首先会对组件的数据初始化&#xff08;a.data中赋初值 b. 在生命周期函数created或mounted中为变量赋予初值&#xff09; &#xff08;2&#xff09;由于不同组件的…