首页 > 编程语言 >UG二次开发NXOpen-Python(十三)内螺纹滚道干涉磨砂轮截形计算

UG二次开发NXOpen-Python(十三)内螺纹滚道干涉磨砂轮截形计算

时间:2023-06-13 13:11:21浏览次数:45  
标签:内螺纹 螺旋 Python 砂轮 NXOpen result 二次开发 截形 SrfPos

  滚珠螺母内螺纹滚道在加工时,砂轮接杆偏摆角度为滚道螺旋升角,砂轮截形为滚道法向截形。当螺母导程较大时,比如说1616、2020等规格,螺旋升角较大,若按螺旋升角的大小调整砂轮接杆角度,则砂轮接杆会和螺母内孔产生干涉,此时就需要采用其它加工方法,比如说“以车代磨”、“软轴磨”、“干涉磨”等等。

  所谓的干涉磨,指的是以小于螺旋升角的角度调整砂轮接杆角度,来对滚道进行磨削,此时,砂轮的截形就不能以滚道的法向截形来修整,需要通过计算来确定。螺纹滚道的螺旋铣也是这个道理(相当于砂轮角度为0°的干涉磨)。

  常规磨削时,砂轮角度与滚道螺旋升角相同,砂轮与螺母滚道的接触线为滚道法向截面,该接触线在绕机床主轴旋转的同时Z向进给,从而形成了螺旋滚道面。对于干涉磨来讲,由于砂轮偏摆的角度与螺旋升角不同,所以砂轮与滚道的接触线不是滚道法向截面,但可以确定的是,螺旋滚道面也是由该接触线在绕机床主轴旋转的同时Z向进给形成的,所以,我们只要求出了接触线(或者说接触线上的多个点)就能求出砂轮截形。

  内螺纹滚道面和砂轮回转面在接触线处相切,切点的公法线必然通过砂轮的回转轴线,所以,螺旋滚道曲面上法线通过刀具轴线的点就是接触线上的点,只要找到这些点可以了。

import NXOpen
import NXOpen_UF

theSession: NXOpen.Session = NXOpen.Session.GetSession()
theUFSession: NXOpen_UF.UFSession = NXOpen_UF.UFSession.GetUFSession()
modling: NXOpen_UF.Modeling = theUFSession.Modeling
v3: NXOpen_UF.Vec3 = theUFSession.Vec3
workPart: NXOpen.Part = theSession.Parts.Work
lw: NXOpen.ListingWindow = theSession.ListingWindow
lw.Open()


# 计算空间两直线的距离,用于判定公法线是否在砂轮轴线上
def getDis(p1, v1, p2, v2):
    mn = [p1[0] - p2[0], p1[1] - p2[1], p1[2] - p2[2]]
    return abs(v3.Dot(v3.Cross(v1, v2), mn) / v3.Mag(v3.Cross(v1, v2)))


# 砂轮轴线位置
t = 11
for body in workPart.Bodies:
    for face in body.GetFaces():
        # 遍历螺旋曲面u参数
        for i in range(50):
            u = 0.02 * i
            # 遍历v参数,正常情况这里用迭代法,为了简单起见,这里直接暴力循环
            for j in range(100000):
                v = 0.00001 * j
                # 获取[u,v]下的点和法向量
                result = modling.EvaluateFace(face.Tag, 10, [u, v])
                # 求法向量和砂轮轴线的距离
                dis_1 = getDis(result.SrfPos, result.SrfUnormal, [t, 0.0, 0.0],
                               [0.0, 0.0, 1.0])
                # 设置距离精度,如果<此精度,则认为法向量穿过砂轮轴线
                if dis_1 < 0.0001:
                    lw.WriteLine(str([result.SrfPos[0] - t, result.SrfPos[1],
                                      result.SrfPos[2]]))
                    lw.WriteLine(
                        f"u={u};v={v}:{result.SrfPos},{result.SrfUnormal},{dis_1}")
                    point = workPart.Points.CreatePoint(
                        NXOpen.Point3d(result.SrfPos[0], result.SrfPos[1],
                                       result.SrfPos[2]))
                    point.SetVisibility(
                        NXOpen.SmartObjectVisibilityOption.Visible)
                    workPart.Datums.CreateFixedDatumAxis(
                        NXOpen.Point3d(*result.SrfPos),
                        NXOpen.Point3d(result.SrfPos[0] + result.SrfUnormal[0],
                                       result.SrfPos[1] + result.SrfUnormal[1],
                                       result.SrfPos[2] + result.SrfUnormal[2]))
                    break

  如上图,可以求出各个接触点的坐标和该点的法向量,测量法向量和砂轮轴线的距离,可以看到<0.0001,也就是可以认为该法向量通过砂轮轴线。然后在砂轮坐标系中对接触点进行处理,就可以求的砂轮截形,在此不再赘述。

 

标签:内螺纹,螺旋,Python,砂轮,NXOpen,result,二次开发,截形,SrfPos
From: https://www.cnblogs.com/hustmse0510/p/17476928.html

相关文章

  • Python实验课7
    实验任务1classAccount:'''一个模拟银行账户的简单类'''def__init__(self,name,account_number,initial_amount=10):'''构造新账户'''self._name=nameself._card_no=account_numb......
  • Python如何把字符串中形如'\uXXXX'的Unicode字符转换为原始字符
    jsonpickle保存的文本有形如"\u6211\u7684"的字符,看起来很不方便,怎么转换为原始字符呢?参考如下代码:importjsonpickle#定义一个包含Unicode编码字符的字符串text="我的名字是\u674e\u5b87\u5b87"#将字符串保存为JSON格式json_string=jsonpickle.encode(text)......
  • ​关于深度学习、NLP和计算机视觉的30个顶级Python库
    正文字数:2214 阅读时长:3分钟再次感谢艾哈迈德·阿尼斯(AhmedAnis)为收集这些数据做出的贡献,并感谢KDnuggets的其他工作人员的意见,见解和建议。作者/ MatthewMayo原文链接/https://www.kdnuggets.com/2020/11/top-python-libraries-deep-learning-natural-language-processing......
  • python入门笔记
     pip批量安装#安装和卸载pipwheel-wpackage_tmp_dir-rrequirement.txtpipdownload-dpackage_tmp_dir-rrequirement.txt#离线下载pipinstall-rrequirement.txtpipuninstallpackage#安装源:pipinstall-ihttps://pypi.douban.com/simple/package_name......
  • 语音情感识别之谱图特征提取(python)
    谱图: 注:FFT(快速傅里叶变换);DFT(离散傅里叶变换);DCT(离散余弦变换);VMD(变分模态分解)MEDC:张钰莎,蒋盛益.基于MFCC特征提取和改进SVM的语音情感数据挖掘分类识别方法研究[J].计算机应用与软件,2020,37(08):160-165+212.VGFCC:刘雨柔,张雪英,陈桂军,黄丽霞,张静.VMD改进GFCC的情......
  • CentOS 升级 Python版本
    1、先到https://www.python.org/downloads/release/python-3114/找到Python的最新版本,tar包,复制下载链接;2、执行命令:wgethttps://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz3、下载完成后执行命令:tar-xzvfPython-3.11.4.tgz4、进入目录Python-3.11.4,执行......
  • Python正则表达式完全指南
    本篇文章将深入探讨python的一项强大工具:正则表达式。正则表达式是一个强大的文本处理工具,可以用来匹配,搜索,替换和解析文本。我们将逐步展示如何在Python中使用正则表达式,包括其基本语法,常见用法和一些高级技巧。而在最后的“onemorething”部分,我们将探索一个不为人知但又非常......
  • Python实现同时支持带调用和不调用带装饰器
    一般来说,不带参数装饰器,再使用时不加括号,带参数的装饰器使用时必须加括号。例如不带参装饰器definfo(func):#装饰器,参数接收一个函数,返回一个函数@functools.wraps(func)defwrapper(*args,**kwargs):#与原函数功能一致,支持任意参数print(f'调用......
  • appium2+Python3+红米手机k40 无法启动APP
    在网上一直找不到解决的方法,困扰了很久。OEM解锁权限和USB调试安全设置也打开试过了,还是不行。有懂的大佬吗!Python报错提示:Message:Anunknownserver-sideerroroccurredwhileprocessingthecommand.Originalerror:ErrorexecutingadbExec.Originalerror:'Command......
  • pip安装python包
    1.国内源:1)http://mirrors.aliyun.com/pypi/simple/阿里云2)https://pypi.mirrors.ustc.edu.cn/simple/中国科技大学 3)https://pypi.tuna.tsinghua.edu.cn/simple 清华大学2.指定源pip3install-ihttp://mirrors.aliyun.com/pypi/simple/--trusted-hostmirrors.aliyun......