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。
运行结果(内存访问违例,不知道为什!!!):
相关文章:
Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206]
Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206] 1.python uf函数1.1 NXOpen.UF.Part.Open1.2 NXOpen.UF.Part.LoadStatus1.3 NXOpen.UF.Part.Close1.4 NXOpen.UF.Part.AskUnits 2.示例代码3.运行结果3.1 内部模式3.2 外部模式 1.python uf函数 1.1 NXOpen.UF.P…...
2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序
2015年五一杯数学建模 C题 生态文明建设评价问题 原题再现 随着我国经济的迅速发展,生态文明越来越重要,生态文明建设被提到了一个前所未有的高度。党的十八大报告明确提出要大力推进生态文明建设,报告指出“建设生态文明,是关系…...
java:slf4j、log4j、log4j2、logback日志框架的区别与示例
文章目录 背景SLF4J - 简单日志门面:Log4j - 强大而古老的日志框架:Log4j2 - Log4j的升级版:Logback - Log4j的继任者:比较Springboot集成slf4j、log4j2参考 背景 在Java开发中,日志记录是一个不可或缺的组成部分。为了满足不同的需求,Java社区涌现出多…...
Mysql学习查缺补漏----02 mysql之DCL 数据控制语言
查看数据库里都有哪些用户。 使用root任何一个用户都可以登录。 本机登录。 也可以这样登录其他的机器。 、 修改user表。 刷新权限: 现在我们看到了只有本机才能登陆。 我们这样就可以限制这个mysql指定某台服务器登录。 详解忘记密码以及如何修改用户密码 我们…...
【Flink基础】-- 延迟数据的处理
目录 一、关于延迟的一些概念 1、什么是延迟? 2、什么导致互联网延迟?...
通过keepalived+nginx实现 k8s apiserver节点高可用
一、环境准备 K8s 主机配置: 配置: 4Gib 内存/4vCPU/60G 硬盘 网络:机器相互可以通信 k8s 实验环境网络规划: podSubnet(pod 网段) 10.244.0.0/16 serviceSubnet(service 网段): 1…...
JavaScript 数组
JavaScript 数组 用来存储一系列相关数据的一种数据类型 创建数组 字面量方式 ----- [1,2,3,4,5,6];实例化构造函数 ----- new Array(1,2,3,4,5,6);组成数组的元素可以是任意的数据类型包括数组本身; new Array(n): n 表示数组的长度 内容操作 获取(查…...
【数据结构】二叉树的实现
目录 1. 前言2. 二叉树的实现2.1 创建一棵树2.2 前序遍历2.2.1 分析2.2.2 代码实现2.2.3 递归展开图 2.3 中序遍历2.3.1 分析2.3.2 代码实现2.3.3 递归展开图 2.4 后序遍历2.4.1 分析2.4.2 代码实现2.4.3 递归展开图 2.5 求节点个数2.5.1 分析2.5.2 代码实现 2.6 求叶子节点个数…...
振弦采集仪在土体与岩体监测中的可靠性与精度分析
振弦采集仪在土体与岩体监测中的可靠性与精度分析 振弦采集仪是一种用于土体和岩体监测的重要设备,它可以通过测量振动信号来获取土体或岩体的力学参数,如应力、应变、弹性模量等。而振弦采集仪的可靠性和精度是影响其应用效果的关键因素。 首先&#x…...
C语言进阶之路-指针、数组等混合小boss篇
目录 一、学习目标: 二、指针、数组的组合技能 引言 指针数组 语法 数组指针 三、勇士闯关秘籍 四、大杂脍 总结 一、学习目标: 知识点: 明确指针数组的用法和特点掌握数组指针的用法和特点回顾循环等小怪用法和特点 二、指针、数…...
【矩阵论】Chapter 7—Hermite矩阵与正定矩阵知识点总结复习
文章目录 1 Hermite矩阵2 Hermite二次型3 Hermite正定(非负定矩阵)4 矩阵不等式 1 Hermite矩阵 定义 设 A A A为 n n n阶方阵,如果称 A A A为Hermite矩阵,则需满足 A H A A^HA AHA,其中 A H A^H AH表示 A A A的共轭转…...
Golang语言基础之切片
概述 数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性 func arraySum(x [3]int) int{sum : 0for _, v : range x{sum sum v}return sum } 这个求和函数只能接受 [3]int 类型,其他的都不支持。 切片 切片(Slic…...
SpringCloud-服务消费者Fegin调用时无法获取异常信息
一、前言 假设有以下需求: 服务消费者A调用服务提供者B往MySQL新增一条人员信息服务提供者做了一个逻辑判断:若无该人员信息则新增,若已存在该人员信息,则返回给消费者异常状态码及异常信息:“请勿添加重复数据” 问…...
re:invent 2023 Amazon Q 初体验
授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre,知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 前言 亚马逊云科技在2023 re:Invent全球大会上宣布推出 Amazon…...
认知觉醒(四)
认知觉醒(四) 第三节 耐心:得耐心者得天下 20世纪八九十年代,金庸的武侠小说风靡全国。如今,虽然几十年过去了,金庸先生也已与世长辞,但他留下的作品依然广受欢迎,被奉为经典。如此成就,自然…...
AI模型部署 | onnxruntime部署YOLOv8分割模型详细教程
本文首发于公众号【DeepDriving】,欢迎关注。 0. 引言 我之前写的文章《基于YOLOv8分割模型实现垃圾识别》介绍了如何使用YOLOv8分割模型来实现垃圾识别,主要是介绍如何用自定义的数据集来训练YOLOv8分割模型。那么训练好的模型该如何部署呢?…...
模拟电路学习笔记(一)之芯片篇(持续更新)
模拟电路学习笔记(一)之芯片篇(持续更新) 1.CD4047BE芯片 CD4047是一种包含高电压的多谐振荡器,该器件的操作可以在两种模式下完成,分别是单稳态和非稳态。CD4047需要一个外部电阻器和电容器来决定单稳态…...
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码下载地址🍅 👇🏻 精彩专栏推荐订阅👇🏻…...
qt 5.15.2 主窗体事件及绘制功能
qt 5.15.2 主窗体事件及绘制功能 显示主窗体效果图如下所示: main.cpp #include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.setFixedWidth(600);w.setFixedHeight(6…...
(2)(2.4) TerraRanger Tower/Tower EVO(360度)
文章目录 前言 1 安装传感器并连接 2 通过地面站进行配置 3 参数说明 前言 TeraRanger Tower 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用距离约为 4.5m。 TeraRanger Tower EVO 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用…...
Redis_主从复制、哨兵模式、集群模式详解
Redis的主从复制 为什么Redis要引入主从复制?what? 在这里博主为小伙伴们简单的做下解释,可以了解一下 实际生产环境下,单机的redis服务器是无法满足实际的生产需求的。 第一,单机的redis服务器很容易发生单点故障&am…...
关于神舟-战神TA5NS系统重装问题
加装固态卡在log处无法开机问题 下面是我的步骤 1.按f7选择pe安装系统,然后发现卡在战神log处不转动 2.下载驱动 TA5NS驱动地址 下载RAID驱动(如果没有私信我,我网盘里有),拷到u盘中,然后进入pe系统里面…...
前端大文件上传webuploader(react + umi)
使用WebUploader还可以批量上传文件、支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件。 分片上传 1.什么是分片上传 分片上传,就是将所要上传的文件,按照一定的大小,将…...
人大金仓(kingbase)数据库常用sql命令
一. 字段 1. 添加 alter table book add column book_id varchar not null, book_title varchar(10) default ;2. 删除 alter table book drop book_id, book_title;// 外键时 alter table book drop book_id, book_title cascade;3. 修改类型 alter table book alter colu…...
HashMap相关专题
前置知识:异或运算 异或运算介绍 异或有什么神奇之处(应用)? (1)快速比较两个值 (2)我们可以使用异或来使某些特定的位翻转,因为不管是0或者是1与1做异或将得到原值的相…...
threejs WebGLRenderer 像素比对画布大小的影响
官方文档 - WebGLRenderer .setPixelRatio ( value : number ) : undefined 设置设备像素比。通常用于避免HiDPI设备上绘图模糊 .setSize ( width : Integer, height : Integer, updateStyle : Boolean ) : undefined 将输出canvas的大小调整为(width, height)并考虑设备像素比…...
RocketMQTemplate.send() 与 RocketMQTemplate.syncSend() 方法详解
Apache RocketMQ 是一款强大的分布式消息中间件,与 Spring Boot 集成后,通过 RocketMQTemplate 提供了多种方法来发送消息。其中,send() 和 syncSend() 是两个常用的发送消息方法,本文将深入探讨它们的区别以及详细解释这两个方法…...
波奇学C++:类型转换和IO流
隐式类型转换 int i0; double pi; 强制类型转换 int* pnullptr; int a(int)p; 单参数构造函数支持隐式类型转换 class A { public:A(string a):_a(a){} private:string _a; }; A a("xxxx"); //"xxx" const char* 隐式转换为string 多参数也可以通过{…...
集成开发环境 PyCharm 的安装【侯小啾python基础领航计划 系列(二)】
集成开发环境PyCharm的安装【侯小啾python基础领航计划 系列(二)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…...
Java核心知识点整理大全27-笔记(已完结)
目录 30. 云计算 30.1.1. SaaS 30.1.2. PaaS 30.1.3. IaaS 30.1.4. Docker 30.1.4.1. 概念 30.1.4.2. Namespaces 30.1.4.3. 进程(CLONE_NEWPID 实现的进程隔离) 30.1.4.4. Libnetwork 与网络隔离 30.1.4.5. 资源隔离与 CGroups 30.1.4.6. 镜像与 UnionFS 30.1.4.7.…...
代理登录网站/uc信息流广告投放
利用matlab将位图转为SVG矢量图0 前言1 算法思路1.1 读取图片1.2 中值滤波1.3 中值滤波1.4 去除孤立的像素1.5 提取单独的颜色1.6 找出二值图像中所有的连接体1.7 将提取出来的每个多边形膨胀1.8 输出为SVG格式2 最终结果展示3 完整的Matlab代码惯例声明:本人没有相…...
wordpress当前文章tags/自动的网站设计制作
危言 对金融危机最普遍的官方解释是次贷问题,然而次贷总共不过几千亿,而美国政府救市资金早已到了万亿以上,为什么危机还是看不到头?有文章指出危机的根源是 金融机构采用“杠杆”交易;另一些专家指出金融危机的背后是…...
蚌埠做网站/农产品品牌推广方案
控制台程序。 定义监听器类有许多方式。下面把监听器类定义为单独的类MouseHandler: 1 // Mouse event handler for a selection button2 import java.awt.Cursor;3 import java.awt.event.*;4 5 public class MouseHandler extends MouseAdapter {6 Cursor handCursor new …...
wordpress底部链接修改/网站怎么建设
本来是准备安装Maatkit的,不过Maatkit已经成为了percona-toolkit的一部分,所以干脆直接安装percona-toolkit。准备安装环境(非常重要),由于percona-toolkit需要perl环境,所以你懂得,它需要什么我…...
浙江网站建设报价/成都seo技术
摘要:创建并设置一个WebViewClient子类,回调对应的方法改变网页内容的呈现方式,比如:网页加载错误回调onReceivedError(),提交表单错误回调onFormResubmission(),拦截URL加载回调shouldOverrideUrlLoading(…...
浙江省建设局网站/seopc流量排行榜企业
class Test{ /// <summary>/// 抽象工厂模式将具体产品的创建延迟到具体工厂的子类中,这样将对象的创建封装起来,/// 可以减少客户端与具体产品类之间的依赖,从而使系统耦合度低,这样更有利于后期的维护和扩展ÿ…...