当前位置: 首页 > news >正文

FreeCAD集成gmsh源码分析

目录

  • gmsh模块界面
  • 获取gmsh的版本
  • 执行gmsh网格划分

gmsh模块界面

在这里插入图片描述
这个界面是用PySide来写的,PySide是QT的python绑定,具体代码在task_mesh_gmsh.py文件中。目前这个界面非常的简陋,没有对接gmsh稍微高级一点的功能。界面对应的事件处理是在gmshtools.py中。这里只分析“Gmsh version”与“Apply”运行gmsh功能。gmsh task面板界面代码如下:

class _TaskPanel(base_femmeshtaskpanel._BaseMeshTaskPanel):"""The TaskPanel for editing References property ofMeshGmsh objects and creation of new FEM mesh /home/yundao/freecad/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py"""def __init__(self, obj):super().__init__(obj, gmshtools.GmshTools(obj))self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGmsh.ui" # QT界面文件位置)self.text_log = self.form.te_outputself.text_time = self.form.l_timeself.setup_connections()def setup_connections(self):super().setup_connections()# 绑定界面事件与处理函数QtCore.QObject.connect(self.form.qsb_max_size, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.max_changed)QtCore.QObject.connect(self.form.qsb_min_size, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.min_changed)QtCore.QObject.connect(self.form.cb_dimension, QtCore.SIGNAL("activated(int)"), self.choose_dimension)QtCore.QObject.connect(self.form.cb_order, QtCore.SIGNAL("activated(int)"), self.choose_order)self.form.cb_dimension.addItems(self.obj.getEnumerationsOfProperty("ElementDimension"))self.form.cb_order.addItems(self.obj.getEnumerationsOfProperty("ElementOrder"))# 绑定“Gmsh Version”按钮事件QtCore.QObject.connect(self.form.pb_get_gmsh_version, QtCore.SIGNAL("clicked()"), self.get_version)self.get_mesh_params()self.set_widgets()def get_mesh_params(self):self.clmax = self.obj.CharacteristicLengthMaxself.clmin = self.obj.CharacteristicLengthMinself.dimension = self.obj.ElementDimensionself.order = self.obj.ElementOrderdef set_mesh_params(self):self.obj.CharacteristicLengthMax = self.clmaxself.obj.CharacteristicLengthMin = self.clminself.obj.ElementDimension = self.dimensionself.obj.ElementOrder = self.orderdef set_widgets(self):
http://www.lryc.cn/news/520551.html

相关文章:

  • K8s 集群 IP 地址管理指南(K8s Cluster IP Address Management Guide)
  • Debye-Einstein-模型拟合比热容Python脚本
  • OpenCV的图像分割
  • 【源码+文档+调试讲解】农产品研究报告管理系统
  • 【STM32-学习笔记-7-】USART串口通信
  • 高可用虚拟IP-keepalived
  • AI多模态技术介绍:视觉语言模型(VLMs)指南
  • 高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
  • uniApp通过xgplayer(西瓜播放器)接入视频实时监控
  • ws 配置 IngressRoute 和 http一样
  • IMX6ULL的IOMUXC寄存器和SNVS复用寄存器似乎都是对引脚指定复用功能的,那二者有何区别?
  • LabVIEW实现动态水球图的方法
  • 【江协STM32】11-2/3 W25Q64简介、软件SPI读写W25Q64
  • 《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识
  • 算法日记2:洛谷p3853路标设置(二分答案)
  • 浅谈云计算06 | 云管理系统架构
  • Blender常规设置
  • c++ 中的容器 vector、deque 和 list 的区别
  • 【物流管理系统 - IDEAJavaSwingMySQL】基于Java实现的物流管理系统导入IDEA教程
  • 数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall
  • VUE3 自定义指令的介绍
  • HTML学习笔记记录---速预CSS(2) 复合属性、盒子模型、边框线、浮动、定位
  • 二 RK3568 固件中打开 ADB 调试
  • centos9设置静态ip
  • 【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!
  • 内网服务器添加共享文件夹功能并设置端口映射
  • 第三十六章 Spring之假如让你来写MVC——拦截器篇
  • TypeScript语言的学习路线
  • Python爬虫-汽车之家各车系周销量榜数据
  • C#格式化输出