普通螺纹基本牙型尺寸及拧紧力矩.exe

news2024/11/20 23:28:13

一、概要

在这里插入图片描述

在这里插入图片描述

  本软件功能主要是通过输入螺纹原始三角形高度P,螺栓规格(公称直径)d,材料的屈服应力σs,计算出公称应力截面积As、外螺纹小径d1、外螺纹小径d2、拧紧力矩T等参数。

  开发本软件的原因主要有以下几点:

  1. 提高设计效率:通过这款软件,工程师可以快速计算螺纹的基本牙型尺寸和拧紧力矩,减少繁琐的手动计算,提高设计效率。
  2. 增强设计准确性:该软件基于严谨的数学模型和算法进行计算,避免了手动计算可能出现的错误,提高了设计的准确性。
  3. 方便易用:该软件具备友好的用户界面,使得用户可以便捷地进行操作,输入参数即可得到结果,省去了繁琐的手动计算过程。

二、技术细节

  这段代码中主要完成的任务有:

  1. 读取用户输入的一些参数(例如螺纹的原始三角形高度P,螺栓规格(公称直径)d,材料的屈服应力σs等)。
  2. 计算螺纹的原始三角形高度P,外螺纹的小径d1,中径d2,以及螺栓的公称应力截面积As。
  3. 根据这些计算结果,进一步计算拧紧力矩T。
  4. 将所有的计算结果以特定格式(保留指定位数的小数)显示给用户。

  代码技术细节:

  • self.significant_digit_lineEdit.text():从用户界面获取需要保留的有效数字位数。
  • float(self.P_lineEdit.text())float(self.d_lineEdit.text())float(self.s_lineEdit.text()):从用户界面读取输入的参数值,转换为浮点数。
  • math.sqrt(3):开平方根运算。
  • "{:.{}f}".format(H, int(self.significant_digit_lineEdit.text())):格式化输出,保留指定位数的小数。例如,如果用户输入要保留的位数为3,那么P会被格式化为类似"3.142"这样的形式。
  • self.d1_lineEdit.setText(...)self.d2_lineEdit.setText(...)self.A_lineEdit.setText(...)self.T_lineEdit.setText(...)等:将这些计算结果显示给用户。

三、完整代码

软件开发所用到的excel表和icon图标均已打包:statics

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023-10-14 14:57
# @Author : Leuanghing Chen
# @Blog : https://blog.csdn.net/weixin_46153372?spm=1010.2135.3001.5421
# @File : 普通螺纹基本牙型尺寸及拧紧力矩.py
# @Software : PyCharm
# pyinstaller --clean -y -w --icon D:\python_demo\2、普通螺纹基本牙型尺寸及拧紧力矩\螺丝大图标.ico D:\python_demo\2、普通螺纹基本牙型尺寸及拧紧力矩\screw.py
# 打包好程序后将icon和statics文件夹复制到程序所在文件夹中

import math
import multiprocessing
import sys
from html import unescape
from openpyxl import load_workbook
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QVBoxLayout, QTableWidget, QTableWidgetItem


# 主界面
class Ui_MainWindow(QMainWindow):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(680, 310)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(680, 310))
        MainWindow.setMaximumSize(QtCore.QSize(680, 310))
        font = QtGui.QFont()
        font.setFamily("微软雅黑")
        font.setPointSize(12)
        MainWindow.setFont(font)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("./icon/螺丝小图标.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setStyleSheet("background-color: rgb(255, 255, 255);\n"
                                 "color: rgb(0, 0, 0);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.d1_unit_label = QtWidgets.QLabel(self.centralwidget)
        self.d1_unit_label.setGeometry(QtCore.QRect(306, 57, 40, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.d1_unit_label.sizePolicy().hasHeightForWidth())
        self.d1_unit_label.setSizePolicy(sizePolicy)
        self.d1_unit_label.setMinimumSize(QtCore.QSize(40, 30))
        self.d1_unit_label.setMaximumSize(QtCore.QSize(40, 30))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        self.d1_unit_label.setFont(font)
        self.d1_unit_label.setObjectName("d1_unit_label")
        self.Units_textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.Units_textEdit.setEnabled(False)
        self.Units_textEdit.setGeometry(QtCore.QRect(380, 25, 265, 50))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Units_textEdit.sizePolicy().hasHeightForWidth())
        self.Units_textEdit.setSizePolicy(sizePolicy)
        self.Units_textEdit.setMinimumSize(QtCore.QSize(265, 50))
        self.Units_textEdit.setMaximumSize(QtCore.QSize(265, 50))
        self.Units_textEdit.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.Units_textEdit.setStyleSheet("background-color: rgb(255, 255, 127);")
        self.Units_textEdit.setObjectName("Units_textEdit")
        self.A_unit_label = QtWidgets.QLabel(self.centralwidget)
        self.A_unit_label.setGeometry(QtCore.QRect(306, 21, 40, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.A_unit_label.sizePolicy().hasHeightForWidth())
        self.A_unit_label.setSizePolicy(sizePolicy)
        self.A_unit_label.setMinimumSize(QtCore.QSize(40, 30))
        self.A_unit_label.setMaximumSize(QtCore.QSize(40, 30))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        self.A_unit_label.setFont(font)
        self.A_unit_label.setObjectName("A_unit_label")
        self.A_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.A_lineEdit.setEnabled(False)
        self.A_lineEdit.setGeometry(QtCore.QRect(200, 21, 100, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.A_lineEdit.sizePolicy().hasHeightForWidth())
        self.A_lineEdit.setSizePolicy(sizePolicy)
        self.A_lineEdit.setMinimumSize(QtCore.QSize(90, 30))
        self.A_lineEdit.setMaximumSize(QtCore.QSize(100, 30))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        self.A_lineEdit.setFont(font)
        self.A_lineEdit.setStyleSheet("background-color: rgb(85, 255, 255);")
        self.A_lineEdit.setText("")
        self.A_lineEdit.setAlignment(QtCore.Qt.AlignCenter)
        self.A_lineEdit.setObjectName("A_lineEdit")
        self.Vertical_line = QtWidgets.QFrame(self.centralwidget)
        self.Vertical_line.setGeometry(QtCore.QRect(352, 10, 16, 223))
        self.Vertical_line.setFrameShape(QtWidgets.QFrame.VLine)
        self.Vertical_line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.Vertical_line.setObjectName("Vertical_line")
        self.A_label = QtWidgets.QLabel(self.centralwidget)
        self.A_label.setGeometry(QtCore.QRect(10, 21, 190, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.A_label.sizePolicy().hasHeightForWidth())
        self.A_label.setSizePolicy(sizePolicy)
        self.A_label.setMinimumSize(QtCore.QSize(190, 30))
        self.A_label.setMaximumSize(QtCore.QSize(180, 30))
        font = QtGui.QFont()
        font.setFamily("楷体")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.A_label.setFont(font)
        self.A_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
        self.A_label.setObjectName("A_label")
        self.horizontal_line_1 = QtWidgets.QFrame(self.centralwidget)
        self.horizontal_line_1.setGeometry(QtCore.QRect(5, 5, 670, 10))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.horizontal_line_1.sizePolicy().hasHeightForWidth())
        self.horizontal_line_1.setSizePolicy(sizePolicy)
        self.horizontal_line_1.setMinimumSize(QtCore.QSize(670, 10))
        self.horizontal_line_1.setMaximumSize(QtCore.QSize(670, 10))
        self.horizontal_line_1.setFrameShape(QtWidgets.QFrame.HLine)
        self.horizontal_line_1.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.horizontal_line_1.setObjectName("horizontal_line_1")
        self.H_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.H_lineEdit.setEnabled(False)
        self.H_lineEdit.setGeometry(QtCore.QRect(200, 122, 100, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.H_lineEdit.sizePolicy().hasHeightForWidth())
        self.H_lineEdit.setSizePolicy(sizePolicy)
        self.H_lineEdit.setMinimumSize(QtCore.QSize(90, 30))
        self.H_lineEdit.setMaximumSize(QtCore.QSize(100, 30))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        self.H_lineEdit.setFont(font)
        self.H_lineEdit.setStyleSheet("background-color: rgb(85, 255, 255);")
        self.H_lineEdit.setText("")
        self.H_lineEdit.setAlignment(QtCore.Qt.AlignCenter)
        self.H_lineEdit.setObjectName("H_lineEdit")
        self.H_label = QtWidgets.QLabel(self.centralwidget)
        self.H_label.setGeometry(QtCore.QRect(10, 122, 190, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.H_label.sizePolicy().hasHeightForWidth())
        self.H_label.setSizePolicy(sizePolicy)
        self.H_label.setMinimumSize(QtCore.QSize(190, 30))
        self.H_label.setMaximumSize(QtCore.QSize(180, 30))
        font = QtGui.QFont()
        font.setFamily("楷体")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.H_label.setFont(font)
        self.H_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
        self.H_label.setObjectName("H_label")
        self.d2_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.d2_lineEdit.setEnabled(False)
        self.d2_lineEdit.setGeometry(QtCore.QRect(200, 89, 100, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.

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

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

相关文章

转行网络安全是否可行?

一、前言 其实很多的IT大佬之前也不是专门学计算机的,都是后期转行的。而且大学学什么专业,对后期的工作真的没有太大关系,这也是现在高校的教育现状。有80%的学生都是通过临时抱佛脚,考前冲刺拿到毕业证书的。下面就带大家详细分…

2023年淘宝天猫双11红包领取活时间什么时候开始领天猫淘宝双十一红包优惠券?

2023年淘宝天猫双11红包领取活动开始与结束时间 2023年10月24日20:00开始领取至11月11日23:59结束; 2023年淘宝天猫双11红包活动使用开始与结束时间 第一波:2023年10月31日20:00开始使用至11月3日23:59 第二波:2023年11月10日20:00开始使用…

服务安全-应用协议rsync未授权ssh漏洞复现

目录 服务攻防-应用协议rsync&ssh漏洞复现漏洞复现配置不当-未授权访问-rsync文件备份OpenSSH 用户名枚举漏洞libssh身份验证绕过漏洞 服务攻防-应用协议rsync&ssh漏洞复现 漏洞复现 配置不当-未授权访问-rsync文件备份 rsync默认端口:873 rsync是Linux下…

代码随想录Day20 回溯算法 LeetCode77 组合问题

以下内容更详细解释来自于:代码随想录 (programmercarl.com) 1.回溯算法理论基础 回溯法也叫回溯搜索法,是搜索法的一种,我们之前在二叉树中也经常使用到回溯来解决问题,其实有递归就有回溯,有的时候回溯隐藏在递归之下,我们不容易发觉,今天我们来详细介绍一下什么是回溯,它能…

深圳寄包裹到德国

深圳,作为全球最发达的城市之一,以其高效的物流服务在全球范围内享有盛名。如果你正在寻找一种方式将包裹从深圳寄送到德国,那么本文将为你提供详细的步骤和建议。 第一步:了解国际邮寄的基本信息 首先,你需要了解包裹…

10.16课上

煎饼排序 第一步找剩余数组里的最大值&#xff0c;然后从头到这里翻转一次&#xff0c;这样最大值就到了开头&#xff0c;再把开头从当前结尾翻转一次&#xff0c;就把当前的最大值翻转到了最后 class Solution { public:vector<int> pancakeSort(vector<int>&am…

吃瓜教程-模型的评估与选择

在训练集上的误差称为训练误差&#xff08;training error&#xff09;或经验误差&#xff08;empirical error&#xff09;。在测试集上的误差称为测试误差&#xff08;test error&#xff09;。学习器在所有新样本上的误差称为泛化误差&#xff08;generalization error&…

Apipost一键压测已支持导入CSV文件

最近更新中Apipost对UI页面进行了一些调整&#xff0c;另外一键压测功能支持参数化&#xff01;本篇文章将详细介绍这些改动&#xff01; API调试页面的细节改动 在请求区填入请求参数或脚本时会有相应的标识 如在Query中填入多个参数时上方会展示数量 在预、后执行脚本中写…

Vue3.0 项目结构及组件

main.js文件 // vue中main.js的作用 // main.js是项目的入口文件&#xff0c;项目中所有的页面都会加载main.js,所以main.js,主要有三个作用&#xff1a; // 1.实例化Vue。 // 2.放置项目中经常会用到的插件和CSS样式。例如&#xff1a; 网络请求插件:axios和vue-resource、图…

vue小写数字转大写-例如:11转为十一

vue小写数字转大写-例如&#xff1a;11转为十一 在Vue中&#xff0c;可以使用自定义过滤器&#xff08;Custom Filter&#xff09;来将数字转换为大写的形式。 下面是一个示例&#xff1a; // main.js import Vue from vue;Vue.filter(toChineseNumber, function (value) {c…

2.3 初探Hadoop世界

文章目录 零、学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;Hadoop的前世今生1、Google处理大数据三大技术2、Hadoop如何诞生3、Hadoop主要发展历程 &#xff08;二&#xff09;Hadoop的优势1、扩容能力强2、成本低3、高效率4、可靠性5、高容错性 &#xff08;三…

Bitquiz重塑Learn to Earn热潮,用户零投入让学习创造价值

Axie 带来的暴富效应、StepN 带来的出圈效应&#xff0c;近期Bigtime 在熊市中的大火&#xff0c;为加密参与者带来的赚取效应&#xff0c;X to Earn 重新成为整个市场关注的重点&#xff0c;GameFi 再次站在了风口浪尖。 大家开始寻找下一个Bigtime&#xff0c;希望能够抓住一…

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型&#xff1a;关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合&#xff1a;使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 &#xff0c;使用相同的代码 问题堆积在哪里解决办法不同…

在IE浏览器下fixed定位容器随着滚动条出现抖动问题(实测有效)

在ie浏览器下使用fixed定位的容器随着滚动条滚动出现晃动&#xff0c;这种问题比较常见&#xff0c;以下我们给两个解决方案。 方案一 把滑动滚动取消 方案二 在vue组件的created生命周期中添加此代码 document.addEventListener(wheel,function(event) {event.preventDefa…

大模型引发“暴力计算”,巨头加速推进液冷“降温”

点击关注 文&#xff5c;姚悦 编&#xff5c;王一粟 一进入部署了液冷服务器的数据中心&#xff0c;不仅没有嘈杂的风扇声&#xff0c;甚至在不开空调的夏日也完全没有闷热感。 在大模型引发“暴力计算”的热潮下&#xff0c;数据中心的上下游&#xff0c;正在加紧推进液冷“…

超越10倍开发者

软件开发领域素来有10倍开发者的说法&#xff0c;但对于有理想的开发人员来说&#xff0c;在提升开发、架构能力的基础上&#xff0c;训练自己站在产品的角度考虑问题&#xff0c;将产品打造得更为符合客户和运维的需求&#xff0c;可能比10倍效能的个人开发者能够产生的价值更…

私有化部署AI智能客服,解放企业成本,提升服务效率

在信息时代&#xff0c;企业面临着服务效率提升和成本压力的双重挑战。作为一个领先品牌&#xff0c;WorkPlus致力于为企业提供私有化部署的AI智能客服解决方案。本文将深入探讨WorkPlus AI智能客服如何帮助企业解放成本、提升服务效率以及打造个性化的卓越客户体验。 AI智能客…

RabbitMQ的5种模式——再探RabbitMQ的模式,简单、工作,发布订阅(广播),路由、主题 页面分析

前言 RabbitMQ作为一款常用的消息中间件&#xff0c;在微服务项目中得到大量应用&#xff0c;其本身是微服务中的重点和难点&#xff0c;有不少概念我自己的也是一知半解&#xff0c;本系列博客尝试结合实际应用场景阐述RabbitMQ的应用&#xff0c;分析其为什么使用&#xff0…

AUTOSAR组织发布20周年纪念册,东软睿驰NeuSAR列入成功案例

近日&#xff0c;AUTOSAR组织在成立20周年之际发布20周年官方纪念册&#xff08;20th Anniversary Brochure&#xff09;&#xff0c;记录了AUTOSAR组织从成立到今天的故事、汽车行业当前和未来的发展以及AUTOSAR 伙伴关系和合作在重塑汽车方面的作用。东软睿驰提报的基于AUTOS…

JOSEF约瑟 漏电继电器 JD1-200 工作电压:380V 孔径:45mm 50~500mA

JD1系列漏电继电器 系列型号 JD1-100漏电继电器 JD1-200漏电继电器 JD1-250漏电继电器 JD1系列漏电继电器原为分体式固定式安装&#xff0c;为适应现行安装场合需要&#xff0c;上海约瑟继电器厂在产品原JD1一体式漏电继电器基础上进行产品升级&#xff0c;开发出现在较为…