- 博客(117)
- 收藏
- 关注
原创 OCCT使用指南:Foundation Classes
本手册解释了如何使用Open CASCADE Technology (OCCT) Foundation Classes。它提供了关于基础类的基础文档。有关基础类及其应用的高级信息,请参阅我们的电子学习和培训产品。基础类提供各种通用服务,如自动动态内存管理(通过句柄操纵对象)、集合、异常处理、向下类型转换的泛型和插件创建。基础课程包括以下内容:根类是基本的数据类型和类,所有其他类都是基于它们构建的。
2024-07-25 16:29:41
818
原创 Gmsh的其他
列出了官方Gmsh发行版中捆绑的所有插件。插件在GUI(右键单击查看按钮,或单击查看按钮旁边的黑色箭头,然后选择“插件”子菜单)、脚本语言(请参阅后处理脚本命令)和API(请参阅命名空间gmsh/Plugin)中可用。有关如何使用插件的示例,请参阅t9。列出了所有Gmsh网格大小字段(请参见指定网格元素大小)。可以在脚本文件中指定字段(请参见网格元素大小)或使用API(请参见命名空间gmsh/model/Mesh/field)。有关如何使用字段的示例,请参阅t10。
2024-07-19 16:37:02
105
原创 Gmsh应用程序编程接口
几何数据由模型实体组成,称为点(0维实体)、曲线(1维实体)、曲面(2维实体)或体积(3维实体)。物理组是模型实体的集合,也通过它们的维度和标签进行标识。其他顶级命名空间包括gmsh/option(处理所有选项)、gmsh/plugin(处理对Gmsh核心功能的扩展)、gmsh/graphics(处理绘图)、gmsh/fltk(处理图形用户界面)、gmsh/parser(处理Gmsh解析器)、gmsh/onelab(处理ONELAB参数和与外部代码的通信)以及gmsh/logger(处理信息日志记录)。
2024-07-19 16:30:18
381
原创 Gmsh选项
选项可以在脚本文件中指定(参见“通用脚本命令”)或使用API指定(参见命名空间gmsh/option):参见示例t3。后处理选项:PostProcessing.DoubleClickedGraphPointCommand。几何选项:Geometry.DoubleClickedVolumeCommand。一般选项:General.BuildOptions。后处理视图选项:View.Attributes。打印选项:Print.Parameter。网格选项:Mesh.Algorithm。
2024-07-19 16:23:06
104
原创 Gmsh的概述和最新发展
Gmsh基于四个模块:几何(Geometry)、网格(Mesh)、求解器(Solver)和后处理(Post-processing)。Gmsh可以在三个层面上使用:通过图形用户界面(GUI)通过专用的.geo语言通过C++、C、Python、Julia和Fortran的应用程序接口(API)主要特点:所有算法都是基于抽象模型实体编写的,采用边界表示(Boundary REPresentation,BREP)方法。Gmsh从不从一种计算机辅助设计(CAD)格式转换为另一种格式;
2024-07-17 13:41:14
676
原创 Gmsh用户界面
几何模块分为基本实体和物理组两个部分,主要对几何体进行操作,并设置物理属性。网格模块主要定义了对网格的操作和对应的算法。主要指出几何、网格、求解三个模块.所有的界面操作都是基于这三个方法的。求解主要指出了网格求解方法。
2024-07-16 09:00:00
153
原创 Gmsh概述
Gmsh是一个内置CAD引擎和后处理器的三维有限元网格生成器。其设计目标是提供一个快速、轻量级且用户友好的网格划分工具,具有参数化输入和灵活的可视化功能。Gmsh围绕四个模块构建(几何、网格、求解器和后处理),这些模块可以通过图形用户界面(GUI;见Gmsh图形用户界面)、命令行界面(见Gmsh命令行界面)、使用Gmsh自己的脚本语言编写的文本文件(.geo文件;见Gmsh脚本语言)或通过C++、C、Python、Julia和Fortran应用程序编程接口(API;见Gmsh应用程序编程接口)进行控制。
2024-07-15 10:00:00
1924
原创 Netgen/NGSolve安装
1.1、准备1.2、目录在netgen下有三个文件夹分别是 src、build、install1.3、安装编译上一步是路径配置会生成三个路径PATH、 NETGENDIR 、PYTHONPATH,一定要是系统变量/如果PYTHONPATH没有一定会报错最好定义到netgen\build\BASEDIR\install\lib\site-packages文件夹。
2024-06-18 09:16:36
398
原创 2、FreeCAD模块与核心架构总结
FreeCAD作为一个开源的3D建模软件,其内部架构由多个模块组成,这些模块共同协作以支持软件的各种功能。本总结将基于提供的参考文档,对FreeCAD的核心模块、架构特性以及启动过程进行翻译和详细阐述。
2024-04-30 15:27:22
732
原创 4、FreeCAD GUI模块概述
FreeCAD的GUI模块提供了丰富的功能和工具,用于构建和交互用户界面,处理3D视图渲染,管理文档和选择,以及实现任务面板和命令框架等。重要类和功能:提供了访问和管理GUI应用的全局接口,如方法用于获取当前活动文档。:封装了与文档相关的GUI功能,但不直接继承自。GUI组件:包括视图(如BaseView)、属性视图(和)等,用于展示和管理对象属性。服务API:用于打开和关闭文档文件,控制多个文档。:处理3D场景中的选择,提供了C++和Python API。Command.h:支持脚本和撤销操作。
2024-04-30 15:22:54
579
原创 5、 Python在FreeCAD中的封装
C++到Python封装的工具列表:如果头文件可用,封装二进制库是可能的。这里列出了将C/C++封装到Python中的非详尽方法,并检查以获取最新的示例代码和CMake集成工作流。C代码/库接口:使用C-API和ctypes库。使用C++模板简化封装:如和pybind11。自动绑定生成:如cppyy和PyBindGen。特定项目的专用封装工具:如Qt5和GTK3。
2024-04-30 15:12:08
880
原创 6、FreeCAD的设计
额外的模块可以在FreeCAD的addons仓库中找到,这些模块扩展了FreeCAD的传统CAD功能,包括CAE相关的模块如Cfd、pcb等。FreeCAD采用了与Salome平台相似的模块化结构,后者是一个开源的CAE平台,包含几何建模、网格划分、FEM和CFD求解器模块。虽然FreeCAD主要使用C++编写,但纯Python模块也是可能的,如Plot模块。偏好设置存储在用户配置文件。FreeCAD提供了官方模板用于创建新模块,这些模板包括C++模板和纯Python模板,位于官方源码仓库中。
2024-04-30 15:02:29
619
原创 8、FEM模块功能详解
这些偏好设置页允许用户根据自己的习惯和需求调整软件界面的显示、布局和行为。FEM模块提供了强大的后处理功能,允许用户以图形化的方式展示和分析仿真结果。用户可以查看位移、应力、温度等物理量的分布情况,以及不同时刻的仿真动画。用户可以根据具体问题的需要选择合适的求解器,并进行相应的设置和配置。用户可以根据CAE问题的需要,应用不同类型的约束来模拟实际工程中的边界条件。FEM模块允许用户定义待求解的几何对象。这些几何对象可以是复杂的实体,通过网格划分技术被分解为更小的元素,以便进行精确的数值分析。
2024-04-30 14:58:18
235
原创 9、开发基于FemWorkbench的CFD模块
SolidWorks不仅提供了FEM功能,还具备CFD功能。为了使FreeCAD拥有类似的功能,考虑在现有的Fem Workbench上添加CFD功能,并重用大部分基础设施。:CFD模拟需要复杂的设置和专用的网格。在FreeCAD中,精确的模拟不是设计目标。对于严肃的研究,通常需要多次调整实验设置和将FreeCAD模型导入其他预处理工具进行网格划分。:OpenFoam是一个强大的免费开源CFD求解器,但缺少免费的GUI案例设置工具。
2024-04-30 14:51:43
682
原创 7、FreeCAD中的CAD模块介绍
OpenCASCADE Technology(OCCT)是唯一的功能全面、工业级、开源CAD内核,FreeCAD和Salome均基于此构建。OCCT自2013年起以LGPL发布,不再使用OCC许可。TopoDS_Shape定义了简单几何实体之间的关系,包括顶点、边、线框、面、壳、实体和组合实体。
2024-04-30 14:51:26
748
原创 2、FreeCAD源代码组织
此外,FreeCAD的文档包括由Doxygen从C++和Python源代码中的文档字符串自动生成的文档,这些文档提供了关于源代码的详细信息和说明。除了Doxygen生成的文档外,FreeCAD还有一个维基,提供了关于软件设计、特定模块等信息的额外文档。这个维基包含三个用户中心:用户中心、高级用户中心和开发者中心,分别针对不同层次的用户和开发者提供有用的资源和指导。总的来说,FreeCAD的源代码组织结构清晰,文档丰富,构建系统和持续集成工具完善,为开发者和用户提供了良好的支持和指导。
2024-04-30 14:19:10
1019
原创 1、FreeCAD概述与架构
FreeCAD的诞生:2002年10月29日,由上传了版本0.0.1的初始上传。FreeCAD的维基百科页面显示,FreeCAD基本上是由不同强大的库组成的集合,其中最重要的是openCascade,用于管理和构建几何体,Coin3D用于显示这些几何体,Qt用于将这些功能放入一个友好的图形用户界面,Python则提供完整的脚本/宏功能。FreeCAD是一个功能强大的开源CAD工具,它基于多种库和框架,如OpenCASCADE、Coin3D、Qt和Python,提供跨平台的支持、参数化建模、脚本和宏功能。
2024-04-30 14:05:15
1594
1
原创 FreeCAD的代码风格
总结:该指南确保了FreeCAD项目中代码的一致性和可读性,同时促进了项目合作与代码质量的提升。开发者需遵循这些规范进行编码。
2024-04-29 08:00:00
198
原创 10、FreeCAD的测试和调试
推荐使用带有语法高亮和集成QtDesigner的文本编辑器。QtDesigner便于生成和编辑Qt UI文件。另外,Spyder IDE(随Anaconda一起提供)是一个轻量级且功能完善的Python开发环境,支持调试功能。:对于C++开发,Visual Studio 2015是Windows环境下的重要工具,特别适合处理Cmake项目。此外,QtCreator支持Qt 4.x和5.x版本,同时也能很好地处理Cmake项目。
2024-04-24 15:27:54
369
原创 OpenInventor/Coin3D 学习指南
Coin3D是一个功能强大的开源3D可视化库,与OpenInventor兼容。它提供了丰富的类和功能,可用于构建复杂的3D场景图、处理用户交互、集成到不同的窗口系统中,并通过Qt的Quarter库与2D用户界面实现无缝集成。
2024-04-24 14:52:13
902
原创 CMake 速查手册总结
设置CMake最低版本要求,定义项目名称,并使用命令将源文件编译成可执行文件,是CMake的基本使用方式。推荐使用源外构建以保持源码树清洁,通过cmake命令指定顶级和生成器,再执行make进行构建。可以利用cmake-gui工具在界面中方便地开启或关闭构建选项。
2024-04-24 14:36:14
205
原创 VTK使用指南:介绍
本章讨论了开发大型和/或复杂软件系统的一些问题,并描述了面向对象设计如何解决其中的许多问题。本章定义了面向对象建模和设计中使用的关键术语,并通过一个真实世界的例子进行了工作。本章最后简要介绍了一些面向对象的语言以及与面向对象可视化相关的一些问题。
2024-02-19 07:00:00
2650
原创 CGAL的二维分段的Delaunay图
一组弱(左)和强(右)相交点的分段Voronoi图。CGAL的二维分段Delaunay图包设计用于计算平面上一组可能相交的分段的Delaunay图形。虽然我们计算Delaunay图,但我们经常会提到它的对偶,即分段Voronoi图,因为它更容易解释和理解。已经实现的算法是增量的。相应的CGAL类称为Segment_Dlaunay_graph_2<SegmentDelaunayGraphTraits_2,SegmentDelanayGraphStructure_2>,并将在后续部分中进行更详细的讨论。
2024-02-05 07:00:00
1002
原创 VTK的数据组装
设计基于三个类别:vtkPartitionedDataSet是数据集的集合(不要与vtkDataSet混淆)。vtkPartitionedDataSetCollection是vtkPaartitionedDataSet的集合。vtkDataAssembly定义vtkPartitionedDataSetCollection中项之间的层次关系。
2024-02-04 16:39:20
891
原创 CGAL的3D多面体的Minkowski和
机器人能进入房间吗?倒立机器人和障碍物的Minkowski和描述了机器人相对于障碍物的非法位置。由于Minkowski总和的边界描述了合法位置,因此机器人在外部区域和房间之间有一条路径。Minkowski和在几何学中是一个重要的概念,尤其在计算几何和计算机图形学中。对于两个点集P和Q,它们的Minkowski和被定义为P⊕Q={p+q∣p∈P,q∈Q}。这个概念的应用非常广泛,例如在机器人运动规划和计算机辅助设计中都有使用。在图2中,展示了一个使用Minkowski和规划机器人运动的例子。
2024-02-01 07:30:00
1040
原创 CGAL的多面体凸分解
对于许多非凸多面体的应用,有高效的解决方案,这些解决方案首先将多面体分解为凸块。例如,可以通过将两个多面体分解为凸块来计算两个多面体的Minkowski和,然后计算凸块的配对Minkowski和,并将配对和结合起来。虽然将多面体分解成尽可能少的部分是可取的,但这个问题是NP-hard的。我们的实现将Nef多面体N分解为O(r^2)个凸块,其中r是与多面体内部成大于180度的角的两个相邻面的边数。这些边也被称为反射边。O(r^2)个凸块的上界是最坏情况下的最优解。
2024-01-31 07:00:00
1021
原创 CGAL的表面网格分割
网格分割是将网格分解为更小、更有意义的子网格的过程。该过程用于建模、装配、纹理、形状检索、变形等应用。我们参考了关于网格分割的不同分割技术的综合调查。SDF是Shape Diameter Function的缩写,中文意思是形状直径函数。它是一种测量二维或三维几何形状局部直径的函数,广泛应用于计算机图形学、计算几何和几何计算等领域该软件包提供了一种依赖于形状直径函数的算法实现。给定一个包围三维实体物体的三角表面网格(以下简称网格),SDF为网格的每个面提供了一个局部物体直径的估计(SDF值)。
2024-01-30 15:25:24
1604
原创 CUDA的编程模式
本章介绍了CUDA编程模型背后的主要概念,概述了它们在C++中是如何公开的。在编程接口中对CUDA C++进行了详细的描述。本章和下一章中使用的矢量加法示例的完整代码可以在矢量加法CUDA示例中找到。
2024-01-08 11:19:48
920
原创 Embree使用指南(无SYCL)
Intel®Embree是由Intel开发的高性能光线跟踪库,以Apache 2.0许可证的开源形式发布。Intel®Embree支持Linux、macOS和Windows下的x86 CPU;Linux和macOS上的ARM CPU;以 英特尔®;Embree的目标是图形应用程序开发人员,以提高逼真照片渲染应用程序的性能。Embree针对生产渲染进行了优化,重点关注非相干光线性能、高质量的加速结构构建、丰富的特征集、准确的原始交集和低内存消耗。 Embree的特征集包括各
2024-01-05 07:00:00
1691
原创 CGAL的无限制的Delaunay图
如果一对分段站点有一个公共点,并且这个公共点不在两个站点的任何内部,则称它们为弱相交。如果一对分段站点相交,并且它们有一个以上的公共点,或者它们的公共点位于两个站点中的至少一个内部,则称它们为强相交。如果一组分段站点中的所有对都是弱相交(强相交)或不相交,则称其为弱相交(强相交)。见图。给定平面上的两点p=(px,py),q=(qx,qy),它们的L∞距离为不难看出,与定点c相距相等固定L∞距离r的点的几何轨迹是中心为c、边长为2r的轴平行正方形(L2中的类似物是中心为c、直径为2r的圆)。
2024-01-04 05:00:00
900
原创 CGAL的D维空间搜索(基于KD树)
空间搜索包通过提供支持以下算法的实现来实现精确和近似距离的实现最近和最远邻居搜索精确和近似搜索(近似)范围搜索(近似)k-最近邻和k-最远邻搜索(近似)增量最近邻和增量最远邻搜索表示点和空间对象的查询项。在这些搜索问题中,给定d维空间中的数据点集P。这些点可以用笛卡尔坐标或齐次坐标表示。这些点被预处理成树数据结构,这样给定任何查询项q,P中的点都可以被有效地浏览。近似空间搜索包是针对数据集设计的,这些数据集足够小,可以在主内存中存储搜索结构(与数据库中假设数据驻留在辅助存储中的方法相反)。
2024-01-03 05:45:00
1091
原创 CGAL的空间排序
许多在CGAL中实现的几何算法都是增量的,因此它们的速度取决于插入顺序。此软件包提供了排序算法,可以大大提高此类算法的运行时间。其基本原理是沿着空间填充曲线对对象进行排序,这样在插入顺序上,几何上接近的两个对象将很有可能接近。这样,在插入过程中将要查看的数据结构的一部分很可能已经在最近的插入中被查看过,因此很可能在缓存内存中而不是主内存中。作为另一个副作用,这些排序函数通常会提高增量算法产生的数据结构的内存局部性,有时会导致使用这些数据结构的其他算法的速度加快。
2024-01-02 06:00:00
1010
原创 CGAL的AABB tree
AABB树组件提供了一种静态数据结构和算法,用于对有限的三维几何对象集进行高效的交集和距离查询。可以查询数据结构中存储的几何对象集,以进行交集检测、交集计算和距离计算。交集查询可以是任何类型的,只要在traits类中实现了相应的交集谓词和构造函数。距离查询仅限于点查询。交集查询的例子包括针对三角形集的线对象(射线、线、线段),或针对线段集的平面对象(平面、三角形)。距离查询的一个例子包括从点查询中找到最接近三角形集的点。请注意,该组件不适合查找所有相交对象对的问题。
2024-01-01 06:00:00
2454
原创 CGAL的三角网格曲面脊线和脐点的近似计算(需要微分几何学的知识)
在光滑曲面上,脊线是一种特殊的曲线。沿着这条曲线,曲面的一个主曲率在其曲率线上达到极值(最大或最小)。这意味着脊线是那些曲率发生突变的区域,它们在形状感知、物体识别和计算机图形学中都有重要的应用。:脐点是光滑曲面上的一个特殊点,在该点上,曲面的两个主曲率相等。在脐点处,曲面的形状局部类似于一个球体或鞍点。脐点在曲面分析和计算机图形学中也很重要,因为它们代表了曲面形状的局部变化。模型的山脊线,由数字米开朗基罗项目提供的模型。本章描述了用于近似由三角形网格离散化的光滑曲面的脊线和脐点的CGAL包。
2023-12-31 06:00:00
1521
原创 CGAL的三角曲面网格变形
曲面网格变形系统由以下部分组成:三角表面网格(以下称为表面网格),一组定义要变形的区域的顶点(称为感兴趣区域,缩写为ROI),用户想要移动的ROI的顶点子集(称为控制顶点),每个控制顶点的目标位置(定义变形约束)。ROI中不是控制顶点的顶点称为无约束顶点。这些定义如图所示。ROI具有绿色顶点(不受约束的顶点)和红色顶点(控制顶点)。(左)初始曲面网格;(右)为每个控制顶点定义目标位置,通过变形算法更新不受约束的顶点的坐标。在这个包中,实现了三个算法: 尽可能刚性(ARAP)方法[6]
2023-12-30 06:30:00
1216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人