请选择 进入手机版 | 继续访问电脑版

唐康林NX二次开发论坛

 找回密码
 立即注册
查看: 1639|回复: 2

[技术分享] 利用Python在NX中实现特征找边的方法-唐康林原创

[复制链接]

555

主题

743

帖子

3380

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3380
发表于 2018-2-5 10:19:52 | 显示全部楼层 |阅读模式
二次开发时,经常用到,特征找体,特征找边这之类的。
写了一个例子,创建一个块,再创建一个圆柱进行求差,再求第一个块特特征各边的标识,打印出来。
源代码如下:
  1. # NX 10.0.3.5
  2. # by TangKangLin QQ:125317589 2018.02.05
  3. import NXOpen
  4. import NXOpen.UF
  5. def main():
  6.         try:
  7.                 theSession = NXOpen.Session.GetSession()
  8.                 theUfSession = NXOpen.UF.UFSession.GetUFSession()
  9.                 theUI = NXOpen.UI.GetUI()
  10.                
  11.                 #创建立方体
  12.                 cornerPt = [0.0, 0.0, 0.0]
  13.                 edgeLen = ["100.0", "50.0", "25.0"]
  14.                 blockFeatTag = theUfSession.ModlFeatures.CreateBlock1(NXOpen.UF.Modl.FeatureSigns.NULLSIGN, cornerPt, edgeLen)

  15.                 #创建圆柱体并求差
  16.                 featSign = NXOpen.UF.Modl.FeatureSigns.NEGATIVE
  17.                 blockBodyTag = theUfSession.Modeling.AskFeatBody(blockFeatTag)
  18.                 cylOrigin = [50.0, 25.0, 0.0]
  19.                 cylHeight = "40.0"
  20.                 cylDiam = "25.0"
  21.                 cylDirection = [0.0, 0.0, 1.0]
  22.                 cylFeatTag = theUfSession.ModlFeatures.CreateCylinder(featSign, blockBodyTag, cylOrigin, cylHeight, cylDiam, cylDirection)
  23.                         
  24.                 #获取体上所有的边
  25.                 allEdgesList = theUfSession.Modeling.AskFeatEdges(blockFeatTag)
  26.                 listCount = theUfSession.ModlGeneral.AskListCount(allEdgesList)        
  27.                         
  28.                 #打印所有的边标识
  29.                 theSession.ListingWindow.Open()
  30.                 for index in range(0, listCount):
  31.                         edgeTag = theUfSession.ModlGeneral.AskListItem(allEdgesList, index)        
  32.                         tempStr = "第%d边的Tag为: %d"%(index, edgeTag)
  33.                         theSession.ListingWindow.WriteLine(tempStr)

  34.         except Exception as ex:
  35.                 theUI.NXMessageBox.Show("温馨提示", NXOpen.NXMessageBox.DialogType.Error, str(ex))
  36. if __name__ == '__main__':
  37.     main()
复制代码
python获取边方法.png

回复

使用道具 举报

2

主题

40

帖子

389

积分

终日乾乾

Rank: 3Rank: 3

积分
389
发表于 2018-2-5 10:58:29 | 显示全部楼层
唐工辛苦了 有NX的唐工真好!
回复 支持 反对

使用道具 举报

0

主题

10

帖子

79

积分

见龙在田

Rank: 2

积分
79
发表于 2018-3-14 20:48:19 | 显示全部楼层
谢谢分享~~~~坐等python教程
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( 蜀ICP备16014681号

GMT+8, 2018-10-17 18:19 , Processed in 0.088028 second(s), 27 queries .

Powered by www.nxopen.cn

© 2001-2013 nxopen.cn

快速回复 返回顶部 返回列表