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

一、概要

在这里插入图片描述

在这里插入图片描述

  本软件功能主要是通过输入螺纹原始三角形高度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.rhkb.cn/news/159782.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java学习之道】网络编程的基本概念

引言 这一章我们将一同进入网络编程的世界。在开始学习网络编程之前,我们需要先了解一些基本概念。那么,我们就从“什么是网络编程”这个问题开始吧。 一、网络编程的基本概念 1.1 什么是网络编程 网络编程,顾名思义,就是利用…

05_51单片机led流水线的实现

1:step创建一个新的项目并将程序烧录进入51单片机 以下是51单片机流水线代码的具体实现 #include <REGX52.H>void Delay500ms() //11.0592MHz {unsigned char i, j, k;i 4;j 129;k 119;do{do{while (--k);} while (--j);} while (--i); }void main(){while(1){P1 0…

智慧水利:山海鲸数字孪生的革新之路

一、概念 什么是港口&#xff1f; "港口"通常指的是一个水域或岸边的设施&#xff0c;用于装载、卸载、储存和处理货物、以及提供与海上、河流或湖泊交通相关的服务。港口可以包括各种类型的码头、码头设备、仓库、货物运输设施、以及各种管理和物流设施。 什么是数…

LinkedHashMap与LRU缓存

序、慢慢来才是最快的方法。 背景 LinkedHashMap 是继承于 HashMap 实现的哈希链表&#xff0c;它同时具备双向链表和散列表的特点。事实上&#xff0c;LinkedHashMap 继承了 HashMap 的主要功能&#xff0c;并通过 HashMap 预留的 Hook 点维护双向链表的逻辑。 1.缓存淘汰算法…

车辆车型识别系统python+TensorFlow+Django网页界面+算法模型

一、介绍 车辆车型识别系统。本系统使用Python作为主要开发编程语言&#xff0c;通过TensorFlow搭建算法模型网络对收集到的多种车辆车型图片数据集进行训练&#xff0c;最后得到一个识别精度较高的模型文件。并基于该模型搭建Django框架的WEB网页端可视化操作界面。实现用户上…

【Unity基础】6.动画状态机

【Unity基础】6.动画状态机 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;Animator Controller组件 &#xff08;1&#xff09;创建组件 Animator Controller组件是unity用于控制管…

机器学习-无监督算法之降维

降维&#xff1a;将训练数据中的样本从高维空间转换到低维空间&#xff0c;降维是对原始数据线性变换实现的。为什么要降维&#xff1f;高维计算难&#xff0c;泛化能力差&#xff0c;防止维数灾难优点&#xff1a;减少冗余特征&#xff0c;方便数据可视化&#xff0c;减少内存…

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文档&#xff1a; A New Model for Resilient Distribution Systems by Microgrids Formation&#xff1b; 主动配电网故障恢复的重构与孤岛划分统一模型&#xff1b; 同时考虑孤岛与重构的配电网故障…

嵌入式开发学习之STM32F407串口(USART)收发数据(三)

嵌入式开发学习之STM32F407串口&#xff08;USART&#xff09;收发数据&#xff08;三&#xff09; 开发涉及工具一、选定所使用的串口二、配置串口1.配置串口的I/O2.配置串口参数属性3.配置串口中断4.串口中断在哪里处理5.串口如何发送字符串 三、封装串口配置库文件1.创建头文…

低代码技术这么香,如何把它的开发特点发挥到极致?

前言 什么是低代码技术&#xff1f; 低代码是一种可视化软件开发方法&#xff0c;通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化&#xff0c;消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选&#xff1f;用友Yonbu…

2024上海国际智慧城市展览会(世亚智博会)智慧城市,数字中国

在数字化、智能化的时代背景下&#xff0c;智慧城市成为了全球瞩目的焦点。而作为智慧城市领域的重要盛会&#xff0c;2024上海国际智慧城市展览会&#xff08;简称&#xff1a;世亚智博会&#xff09;则将再次汇聚全球目光。此次展览将于2024年3月26日至28日在上海跨国采购会展…

Java项目调用Python脚本(基于idea)

前期准备 1.首先需要在本地环境中安装配置python环境 Python(含PyCharm及配置)下载安装以及简单使用(Idea) 博主本次使用python版本为py3.7.3 2.idea安装python插件 位置&#xff1a;File->Settings->Plugins->python->安装后重启即可 3.引入jython依赖 &l…

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

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

Jenkins发布失败记录

Exception when publishing, exception message [Exec exit status not zero. Status [127]] 见链接&#xff1a;Jenkins发布时常见异常&#xff08;持续更新...&#xff09;_exception when publishing, exception message [exec_码农StayUp的博客-CSDN博客 The remote end hu…

华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)

华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践系列&#xff1a; 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

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

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

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

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

Seata入门系列【7】Seata之TCC模式入门案例

1 前言 Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 TCC 与 Seata AT 事务一样都是两阶段事务&#xff0c;它与 AT 事务的主要区别为&#xff1a; TCC 对业务代码侵入严重&#xff1a;每个阶段的数据操作都要自己进行…

最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强

越来越多的人开始选择蓝牙耳机作为他们的音频解决方案。蓝牙耳机市场提供了各式各样的选择&#xff0c;不仅有常见的头戴式、耳塞式和半入耳式&#xff0c;还有一种备受欢迎的"开放式耳机"。今天&#xff0c;我将向大家介绍一些优秀的开放式蓝牙耳机款式&#xff0c;…

网站如何有效防止网络攻击

互联网上的网站和应用程序受到各种威胁&#xff0c;如黑客、恶意软件和数据泄漏。因此&#xff0c;了解如何解决网站被攻击的问题至关重要。本文将介绍一些简单的步骤&#xff0c;帮助您提高您的网站的安全性。 确认攻击 要解决网站被攻击的问题&#xff0c;首先需要识别是否遭…