python ug_一个python的UG二次开发简单例子(二)
UG API里面模型创建主要包括了两大类模块,一是NXOpen,二是NXOpen.UF(以下简称UF)。这两个里面都包含创建数字模型的函数,但使用方法有很大的不同。UG帮助文档介绍UF开发比较早,可能是为了兼容的原因依然保留吧,脚本录制生成的代码只有NXOpen的函数。没有脚本录制,学习UF真是纯靠运气和参照帮助文档。只能怪自己英语理解能力差,虽然帮助文档里面的函数写的明白明白需要哪些参数,就是不理解其中意思啊。以下的代码写的真是跌跌撞撞啊,功能很简单,还是画两个点,两点连成直线。两条直线中一条是没有关联的,一条是有关联特征的
# NX 10.0.0.24
import pydevd
pydevd.settrace()
import NXOpen
import NXOpen.UF
mysession=NXOpen.Session.GetSession()
myufsession=NXOpen.UF.UFSession.GetUFSession()
mylw=mysession.ListingWindow
workPart=mysession.Parts.Work
displayPart=mysession.Parts.Display
myui=NXOpen.UI.GetUI()
mylw.Open()
#
pt1=myufsession.Curve.CreatePoint([10.,10.,10.])
pt2=myufsession.Curve.CreatePoint([20.,20.,20.])
mylw.WriteLine('first point id is %s'%pt1)
#无关联特征的直线创建,帮助文档是如下介绍的
Curve.CreateLine()¶
Refer toUF_CURVE_create_linefor documentation.
Signature: CreateLine(lineCoords)
Parameters:lineCoords (NXOpen.UF.Curve.Line Refer toUF_CURVE_line_sfor documentation.) – Coordinates of line in absolute space
Returns:Object identifier Of new line
Return type:Tag
其中lineCoords (NXOpen.UF.Curve.Line Refer toUF_CURVE_line_sfor documentation.) – Coordinates of line in absolute space是告诉我们函数输入类型是NXOpen.UF.Curve.Line类型,一开始没理解对,直接上CreateLine([10.,10.,10.],[20.,20.,20.])起点+终点坐标
正确的做法是先要创建NXOpen.UF.Curve.Line的实例,如下
st=myufsession.Curve.Line([10.,10.,10.],[20.,20.,20.])
line1=myufsession.Curve.CreateLine(st)
#关联特征直线的创建,需要输入5个参数,limitP的参数是需要NXOpen.UF.Curve.Limit类型的list,其他4个参数都比较好理解。
Curve.CreateLinePointPoint()¶
Signature: CreateLinePointPoint(point1, point2, limitP, supportPlane, isAsso)
Parameters:point1 (Tag) – tag of start point
point2 (Tag) – tag of end point
limitP (list of NXOpen.UF.Curve.Limit Refer toUF_CURVE_limit_sfor documentation.) – extension limits
supportPlane (Tag) – tag of support plane of the line
isAsso (bool) – true - if associative, false - if not associative
Returns:if is_asso == TRUE - object identifier of new associative line feature if is_asso == FALSE - object identifier of new associative line
Return type:Tag
对于NXOpen.UF.Curve.Limit的理解只能继续查文档,文档内容如下,咋用啊,简单的不能再简单了啊。字面上基本可以理解,需要设置limittype,value,limitobj,helpdata,再接续查看帮助文档,也没有找到如何设置这些参数的方法。
NXOpen.UF.Curve.Limit is an alias for NXOpen.UF.CurveLimit_Struct
classNXOpen.UF.CurveLimit_Struct¶
Bases: object
Fields
尝试了N次,总算是让我试出来了,一开始我设置st1=myufsession.Curve.Limit没有加括号总是出错,我突然想起来Python里面类class实例化好像需要加上括号,于是加上了括号。Limit里面的参数我只理解了value,所以只设置了value值。实际上也可以采用默认值,就是什么都不用设置,只要实例化起点和终点limit类就可以。
st1=myufsession.Curve.Limit()
st1.Value=0.
en1=myufsession.Curve.Limit()
en1.Value=20.
#创建支持面
plane1=myufsession.ModlFeatures.CreateFixedDplane([0.,0.,10.],[0.,0.,1.])
#做了这么多,到此才开始创建关联直线
line2=myufsession.Curve.CreateLinePointPoint(pt1,pt2,[st1,en1],plane1,True)
没有脚本录制辅助,UF学起来真费劲,放弃UF的学习了
python ug_一个python的UG二次开发简单例子(二)相关推荐
- ABAQUS 二次开发 简单插件制作
本文主要使用python开发,为了让大家简单认识这个过程,通过介绍一个较为简单的插件制作过程,希望大家能对二次开发简单过程有个了解,当然我也是刚刚接触这个,很多地方还在摸索,只是记录这个过程,希望对后 ...
- pythoncad二次开发视频_revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档...
二次开发 revit二次开发|bim软件二次开发|revit二次开发教程|Revit二次开发技术文档2019-07-08赞( 0 ) 记录一下CAD二次开发的一些简单实例. 1.helloworld ...
- EPS二次开发简单整理(一)
EPS二次开发简单整理(一) 2020.1.3 一.添加命令函数 二.添加检查程序 三.EPS中字体大小判断 四.植被面中符号宽度 五.Cross_P函数返回值说明 六.图形外接矩形关键点序号 七.高 ...
- catia二维图坐标如何表示_【二次开发】CATIA二维图一键标注投影点信息
原标题:[二次开发]CATIA二维图一键标注投影点信息 CATIA软件不仅可以用来建立三维模型,用它来出二维图纸也是个不错的选择.且相对于传统的铅笔橡皮丁字尺和AutoCAD来说,CATIA二维图中的 ...
- tekla二次开发用C语言,Tekla能够进行哪些二次开发?Tekla二次开发功能详解
我们话不多说,这次小编来给你讲一些搜罗而来的Tekla软件二次开发的功能.虽然是科普,不过这些二次开发功能有的还真的是很好用的,帮了大忙. 一.桥梁功能 如果向Tekla插件中加入了桥梁模块的功能,通 ...
- lisp 圆柱螺旋线_Auto LISP对AutoCAD2002进行二次开发实例——绘制二维函数曲线
Auto LISP 对 AutoCAD 2002 进行二次开发实例 ---绘制二维函数曲线Ξ李旭荣 ,任奕玲 ,梁秀英 ,刘梅英 (华中农业大学 工程技术学院 ,湖南 武汉 430070) 摘 要:主 ...
- 用python做一个数据查询软件_Python实现功能简单的数据查询及可视化系统
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. image.png 前言 数据时代,数据的多源集成 ...
- python revit二次开发_Revit怎么二次开发?Revit开发问题汇总
现如今Revit软件还无法满足所有领域的工作需求,然而其二次开发技术能够适应用户个性化的定制要求,来扩展软件功能或对其功能进行修正. 为了更大程度上方便二次开发,开发商将集成的数据库函数封装到Revi ...
- python手机解释器_用Python实现一个Python解释器
Byterun是Ned Batchelder和我完成的,建立在Paul Swartz的工作之上.它的结构和主要的Python实现(CPython)差不多,所以理解Byterun会帮助你理解大多数解释器 ...
最新文章
- Dundas使用手册
- html div全屏遮罩层,Jquery全屏遮罩层DIV的实现代码
- 近20个绚丽实用的jQuery/CSS3侧边栏菜单
- 009_TreeSet对实现了Comparable接口的对象排序
- Android 面向切面编程-aspjectj应用
- Spring 入门学习二之IOC
- hdu-1728(贪心bfs的灵活运用吧)
- oc 画一个圆弧_UG建模一个蜗杆的方法,纯手工建模无插件
- 怎样一次性将一个word文档中所有图片保存
- Swagger中paramType
- python自动执行脚本
- 用ByteArrayOutputStream解决IO流乱码问题
- java hough_java – 如何实现Hough变换?
- MapReduce作业2
- 运算放大器应用汇总1
- win7添加一个计算机图标,Win7系统任务栏添加计算机图标的步骤图解
- 凛冬的寒风,吹开了电动车的遮羞布
- tf.executing_eagerly()
- ESP8266连接中国移动ONENET物联网平台TCP透传实现WIFI远程控制
- UOJ#748-[UNR #6]机器人表演【dp】
热门文章
- qnap plex安装_如何在Apple TV上安装Plex
- networker对mysql备份_【经验分享】EMC NetWorker数据库备份及异机恢复
- 最常用的 12 个物联网协议和标准
- python3 字体颜色_python3使用xlwt时写入文档字体颜色和边框样式
- Data - 数据思维
- 会话劫持后可以做什么操作_什么是会话劫持以及如何阻止它
- 基于java的售后服务管理系统
- 【2018年12月10日】A股最便宜的股票
- TCP Dump 抓包工具详解
- linux pci 网卡驱动,linux网络设备驱动_pci网卡