- 博客(111)
- 问答 (4)
- 收藏
- 关注
原创 opencascade源码学习之HLRAlgo包 -HLRAlgo
在给定的投影中,为了达到工业设计、图纸需要的精度,可以删除隐藏的线条。为此,隐藏线路移除组件提供两个算法:HLRBRep_Algo和HLRBRep_PolyAlgo。这些算法删除或指示线条,被表面所掩盖。对于给定的投影,他们,计算一组线特征对象被表示。它们也被使用, 与提取工具结合使用,从a重建一个新的简化形状,计算结果的选择。这个新形状由代表线条的边组成, 平面中的可视化形状。这个平面是投影平面。HLRBRep_Algo考虑了形状本身。
2024-09-09 18:31:51 402
原创 dwg、dxf文件多行文字转单行文字
使用Express Tools中的功能:如果CAD软件中安装了Express Tools,可以通过Express Tools的文字选项卡中的“Convert to Mtxext”选项,选择要转换的数个单行文本后单击确定来完成转换。然后,使用netDxf.DxfDocument.Load加载DXF文件,遍历其中的MText对象,应用ExplodeMText函数,将分解后的单行文字添加到DXF文档中,并移除原来的多行文字。在C++中,你可以使用DXFlib来读取DXF文件,并将多行文字分解为单行文字。
2024-09-07 14:26:58 657
原创 c# 笔记 winform添加右键菜单,获取文件大小 ,多条件排序OrderBy、ThenBy,list<double>截取前5个
将ContextMenuStrip控件绑定到需要显示右键菜单的控件上,如Panel、DataGridView等。在Form的构造函数或加载事件中,创建ContextMenuStrip控件的实例,并为其添加菜单项。要在C# Winform应用程序中添加右键菜单,你可以按照以下步骤操作:。为每个菜单项编写点击事件,以实现所需的功能。### C# Winform右键菜单。#### 3.编写菜单项事件。#### 1.创建菜单项。#### 2.绑定到控件。
2024-08-31 13:28:22 733
原创 opencascade Bnd_Range源码学习区间计算
这个类描述了由两个实数值限定的 1D 空间中的区间。一个区间可以是无效的,这表示区间中不包含任何点。
2024-08-15 20:28:54 1139
原创 opencascade Adaptor3d_CurveOnSurface源码学习
用于连接由Geom包中表面上的曲线提供的服务,以及使用这条曲线的算法所要求的服务。该曲线被定义为一个二维曲线,来自Geom2d包,位于表面的参数空间中。
2024-08-15 18:29:38 607
原创 opencascade Adaptor3d_Curve源码学习
用于几何算法工作的3D曲线的根类。适配曲线是曲线提供的服务与使用该曲线的算法所需服务之间的接口。GeomAdaptor_Curve,用于Geom包中的曲线Adaptor3d_CurveOnSurface,用于Geom包中表面上的曲线。用于评估BSpline曲线的多项式系数会被缓存以提高性能。因此,这些评估不是线程安全的,需要防止并行评估。
2024-08-15 18:15:58 1402
原创 opencascade Bnd_OBB源码学习 OBB包围盒
类描述了定向包围盒(OBB),比轴对齐包围盒(AABB)更紧密地包围形状的体积。OBB由盒子的中心、轴以及三个维度的一半定义。与AABB相比,OBB在作为非干扰物体的排斥机制时可以更有效地使用。//!使用所有定义参数的构造函数Standard_ASSERT_VOID(theHXSize >= 0.0, "X尺寸的负值");Standard_ASSERT_VOID(theHYSize >= 0.0, "Y尺寸的负值");
2024-08-13 08:15:00 737
原创 opencascade Bnd_Box源码学习 包围盒
一个包围盒与坐标系的轴线平行。一个包围盒在一个或多个方向上可能是无限的(即开放的)。OpenXmin如果它在“X方向”的负方向上是无限的;OpenXmax如果它在“X方向”的正方向上是无限的;OpenYmin如果它在“Y方向”的负方向上是无限的;OpenYmax如果它在“Y方向”的正方向上是无限的;OpenZmin如果它在“Z方向”的负方向上是无限的;OpenZmax如果它在“Z方向”的正方向上是无限的;WholeSpace如果它在所有六个方向上都是无限的。
2024-08-13 08:00:00 1113
原创 opencascade Bnd_BoundSortBox源码学习 包围盒
一个工具,用于将一个包围盒或一个平面与一组包围盒进行比较。它会对这组包围盒进行排序,生成与被比较元素相交的盒子的列表。这些被排序的盒子通常包围着一组形状,而被比较的盒子则包围了一个需要比较的形状。因此,最终得到的相交盒子列表就提供了一个可能与需要比较的形状相交的项目列表。
2024-08-12 08:15:00 923
原创 opencascade Bnd_B3f源码学习 包围盒
你必须确保盒子不是空的(参见 IsVoid()),否则方法会返回无效结果。你必须确保盒子不是空的(参见 IsVoid()),否则方法会返回无效结果。如果盒子是空的(参见 IsVoid()),则返回一个非常大的实数值。如果盒子完全在球体内,则返回 True,表示没有相交(否则该方法会报告相交)。如果限制发生,则返回 True,否则返回 False,表示盒子不相交。检查通过给定变换定向的给定盒子是否与当前盒子相交。如果盒子是空的(未初始化),则返回 True。如果盒子不相交,则返回 True。
2024-08-12 08:00:00 777
原创 opencascade TopoDS_Iterator源码学习拓扑迭代器
遍历给定 TopoDS_Shape 对象的底层形状,提供对其组件子形状的访问。每个组件形状作为带有方向的 TopoDS_Shape 返回,并且由原始值和相对值组成的复合体。
2024-08-10 18:28:44 827
原创 opencascade TopoDS_TShape源码学习
TShape 是描述二维或三维空间中一组点的拓扑结构。拓扑形状是由其他形状组成的结构。这是一个延迟类,用于支持拓扑对象。TShape 由其可选的域(几何)和组件(带有位置和方向的其他 TShape)定义。这些组件存储在形状列表中。Free : 自由或冻结。Modified : 已修改。Checked : 已检查。Orientable : 可定向。Closed : 已闭合(注意只有线和壳可以是闭合的)。Infinite : 无限的。
2024-08-08 08:30:00 967
原创 opencascade TopoDS_Shape源码学习【重中之重】
描述了一个形状,它 引用了一个基础形状,该基础形状有可能被赋予一个位置和方向 为基础形状提供了一个位置,定义了它在本地坐标系中的位置为基础形状提供了一个方向,这是从几何学的角度(而不是相对于其他形状的方向)来定义的。注意:如果一个形状引用的基础形状的形状列表为空,则该形状被视为空。
2024-08-08 08:00:00 1352
原创 c# 排序、强转枚举
在C#中,将一个int值转换为一个enum(枚举)类型是一个常见的操作。在C#中,如果你有一个List类型的集合mm,并且你想要根据Tuple中的double值(即第一个元素)从小到大进行排序,同时希望这个排序能够反映到mm本身(即原地排序),你可以使用List的Sort方法,并传入一个自定义的比较器。在C# 7.3及更高版本中,Tuple类支持比较操作,但如果你使用的是旧版本的C#或者想要更明确地控制比较逻辑,定义一个比较器总是一个好选择。
2024-08-07 22:34:25 1170
原创 opencascade TopoDS_AlertWithShape源码学习
一种特定的对象(我们称之为Alert对象),该对象在其内部字段中存储了一个TopoDS形状。
2024-08-07 08:00:00 1577
原创 opencascade TopoDS_Builder 源码学习
构建器(Builder)用于创建拓扑数据结构。它是构建器类层次结构的根。Make 方法用于创建形状(Shapes)。Add 方法用于将一个形状包含到另一个形状中。Remove 方法用于从一个形状中移除另一个形状。构建器中的方法不是静态的,它们可以在继承的构建器中被重新定义。此构建器不提供用于创建顶点(Vertices)、边(Edges)、面(Faces)、壳(Shells)或实体(Solids)的 Make 方法。这些方法在继承的构建器中提供,因为它们必须提供几何形状信息。
2024-08-06 22:55:43 1004
原创 opencascade TopoDS、TopoDS_Vertex、TopoDS_Edge、TopoDS_Wire、源码学习
opencascade TopoDS转TopoDS_Vertexopencascade TopoDS转TopoDS_Edgeopencascade TopoDS转TopoDS_Wireopencascade TopoDS转TopoDS_Faceopencascade TopoDS转TopoDS_Shellopencascade TopoDS转TopoDS_Solidopencascade TopoDS转TopoDS_Compound。
2024-08-06 22:51:27 1259
原创 opencascade AIS_ViewController源码学习 视图控制、包含鼠标事件等
用于在GUI和渲染线程之间处理视图器事件的辅助结构。该类实现了以下功能:缓存存储用户输入状态(鼠标、触摸和键盘)。将鼠标/多点触控输入映射到视图相机操作(平移、旋转、缩放)。输入事件不会立即应用,而是排队等待两个工作线程单独处理:UI线程接收用户输入,渲染线程用于OCCT 3D视图绘制。
2024-08-05 22:39:12 1299
原创 opencascade AIS_TypeFilter AIS_XRTrackedDevice源码学习
通过它们的类型选择交互对象。该过滤器会对本地上下文中的每个交互对象提出问题,以确定它是否具有非空的所有者,并且如果是,则检查它是否是所需类型。如果对象在每种情况下都返回 true,则保留该对象。否则,将其拒绝。默认情况下,交互对象的类型为 None,签名为 0。类型过滤器指定了一个类型的选择范围,可以在任何级别上枚举类型或种类。这个选择可以是交互对象的种类、维度、单位,或者轴、平面或属性的类型。
2024-08-05 22:08:45 635
原创 vs 路径配置笔记
SolutionDir在Visual Studio(VS)中是一个常用的环境变量或宏定义,它代表了解决方案(Solution)目录的路径,即.sln文件所在的目录。这个路径通常以驱动器号加路径的形式表示,并且路径的末尾会包含一个反斜杠(\),以便于在路径后直接添加文件名。环境变量/宏定义:SolutionDir是一个在VS中预定义的宏,用于在项目的各种配置和属性中引用解决方案目录的路径。项目依赖:当项目依赖于解决方案目录中的其他文件或目录时,可以使用SolutionDir来指定这些依赖的路径。
2024-08-04 15:04:41 808
原创 计算几何 点乘 两点间距离 两向量夹角
点乘(也称为内积、标量积或数量积)是线性代数中两个向量之间的一种运算,其结果是一个标量(即一个单一的数,而不是向量)。点乘在物理和工程中有广泛的应用,例如,在力学中,力向量与位移向量的点乘给出了力所做的功;在电学中,电场强度向量与电荷移动向量的点乘给出了电场力对电荷所做的功。与标量的乘法:k(a⋅b)=(ka)⋅b=a⋅(kb),其中k是标量。零向量:任何向量与零向量的点乘都是0,即a⋅0=0。,其中∣a∣和∣b∣分别是向量a和b的模(长度)。分配律:a⋅(b+c)=a⋅b+a⋅c。
2024-08-04 08:45:00 700
原创 opencascade AIS_Trihedron源码学习 绘制三轴坐标系
/!创建一个可选择的三轴坐标系//!该三轴坐标系包括一个原点,三个轴线和三个标签。//!标签的默认文本为 “X”, “Y”, “Z”。//!可以更改原点和任意轴线的颜色,箭头和标签的颜色也可以改变。//!可视化呈现可能显示为两种模式:着色模式和线框模式(默认为线框模式)。//!有四种选择模式://!- AIS_TrihedronSelectionMode_EntireObject 完整选择三轴坐标系,优先级 = 1//!
2024-08-03 09:28:48 1061
原创 opencascade AIS_ViewCube源码学习小方块
用于显示视图操控立方体的交互对象。视图立方体由多个部分组成,负责不同的相机操作:立方体的各个面代表主视图:顶部、底部、左侧、右侧、前侧和后侧。边表示主视图之一的旋转45度。顶点表示主视图之一的两个方向的旋转。该对象的行为类似于视图角落的三轴坐标系,因此其位置应该使用转换持久性标志进行定义:视图立方体的各部分对于检测或动态高亮显示是敏感的(但不是选择),并且每个其所有者 AIS_ViewCubeOwner 对应于相机的变换。… // 更新应用程序窗口。
2024-08-03 09:28:26 786
原创 opencascade AIS_TrihedronOwner源码学习对象的实体所有者用于选择管理
AIS_Trihedron对象的实体所有者用于选择管理。在OpenCascade的AIS(交互对象框架)中,管理类似AIS_Trihedron的对象的选择涉及理解如何处理实体(或所有者)以进行选择。
2024-08-02 22:11:53 1018
原创 opencascade AIS_Triangulation源码学习 每个三角形顶点关联颜色
交互对象,从 Poly_Triangulation 绘制数据,可选择性地带有与每个三角形顶点关联的颜色。为了最大效率,颜色以32位整数表示,而不是传统的 Quantity_Color 值。目前尚未实现三角形和顶点的交互选择功能。
2024-08-02 08:45:00 917
原创 opencascade AIS_TexturedShape源码学习 贴纹理
/!该类允许在形状上映射纹理。//!显示模式 AIS_WireFrame (0) 和 AIS_Shaded (1) 的行为与 AIS_Shape 中的行为相同,//!而新模式 2 (包围盒) 和 3 (纹理映射) 扩展了其功能。//!//!纹理本身在 (0,1)x(0,1) 的参数空间内进行参数化。//!形状的每个位于 UV 空间中的面都具有以下参数://!- Umin - U 方向的起始位置//!- Umax - U 方向的结束位置//!
2024-08-01 19:55:10 933
原创 opencascade AIS_SignatureFilter源码学习
/!通过它们的类型和签名选择交互对象。签名为对象的类型提供了额外的特征描述,采用索引的形式。过滤器在本地上下文中查询每个交互对象,以确定其是否具有非空的所有者,并且如果有的话,是否具有所需的签名。如果对象在每种情况下返回true,则保留该对象。否则,将其拒绝。//!默认情况下,交互对象具有None类型和签名0。如果您想要为您的交互对象指定特定的类型和签名,必须重新定义两个虚拟方法:Type和Signature。//!此过滤器仅在开放的本地上下文中使用。
2024-08-01 09:00:00 805
原创 opencascade AIS_Shape源码学习【重中之重】
/!一个用于管理形状展示和选择的框架。//!AIS_Shape是交互对象,大多数应用程序都会使用它。//!提供了标准函数,允许您在开放的局部上下文中准备选择形状的组成元素 -//!顶点、边、面等。这些特定于“Shape”类型对象的选择模式被称为标准激活模式。//!这些模式仅在开放的局部上下文中考虑,并且仅对重新定义虚拟方法//!AcceptShapeDecomposition并返回true的交互对象起作用。//!还提供了多个高级函数。
2024-08-01 08:45:00 1267
原创 opencascade AIS_InteractiveObject源码学习【重中之重】
/!定义一个具有显示和选择服务的对象类。//!被可视化和选择的实体是交互式对象。//!实体的特定属性,如尺寸中箭头的外观,必须在 Prs3d_Drawer 中加载。//!//!您可以利用已经编写好所有必要方法的标准交互式对象类,//!或者您可以实现自己的交互式对象类。//!每个交互式对象需要实现的关键接口方法://!* 可呈现对象 (PrsMgr_PresentableObject)//!考虑为特定交互式对象或交互式对象类定义支持的显示模式索引的枚举。//!
2024-07-31 08:45:00 1190
原创 c# string记录
回车键对应的字符在不同操作系统中有所不同,主要是由于历史和技术原因造成的。在Windows系统中是“\r\n”,在Unix/Linux和现代的MacOS系统中是“\n”。了解这些差异对于跨平台开发和文件交换非常重要,以确保文本和代码的正确处理和显示。
2024-07-30 09:15:00 658
原创 opencascade AIS_RubberBand AIS_RotationMode源码学习
/!用于绘制橡皮筋选择区域的演示。//!它支持矩形和多边形选择。//!它是在二维覆盖层上构建的。//!默认配置是不填充的。//!对于矩形选择,使用 SetRectangle() 方法。//!对于多边形选择,使用 AddPoint() 和 GetPoints() 方法。
2024-07-30 09:00:00 1887
原创 opencascade AIS_PointCloudOwner源码学习
为了在 OpenCascade 中实现自定义的选中点高亮功能,可以创建一个自定义的 Entity Owner 类,用于处理点的选择和高亮显示。首先,创建一个自定义的 Entity Owner 类,继承自public:private:然后,在创建和显示点云对象时,使用自定义的// 创建点云对象// 创建点数组// 设置点云对象的点// 设置点云对象的颜色// 将点云对象添加到上下文中// 为每个点创建自定义的 Entity Owner++i)
2024-07-29 09:15:00 728
原创 opencascade AIS_PlaneTrihedron 源码学习
构建一个可选择的2D轴系在3D绘图中。这个轴系可以放置在3D系统中的任何位置,提供一个用于在平面中绘制曲线和形状的坐标系。有三种选择模式:模式0 选择整个平面“trihedron”模式1 选择平面“trihedron”的原点模式2 选择轴。注意对于平面和三角形的表示,毫米是默认的长度单位,100是轴表示的默认值。如果修改这些尺寸,必须临时恢复Drawer对象。从内部获取用于存储长度值的Aspects,例如,平面的PlaneAspect和三角形的LineAspect。
2024-07-29 09:00:00 607
原创 opencascade AIS_PointCloud源码学习
交互对象用于一组点。表示支持两种显示模式:点。用于高亮显示的边界框。表示通过边界框提供选择。选择和高亮显示可以通过将默认选择模式设置为 -1 来禁用。这样在交互视图中将无法选择对象。任何调用AIS_InteractiveContext::AddOrRemoveSelected 的操作也应被禁止,以避免程序化高亮显示(解决方法是设置不支持的高亮模式,例如 100)。
2024-07-28 19:32:35 1117
原创 opencascade AIS_Point 源码学习
构造用于组合形状构建的点基准。该基准以加号标记(+)显示。AIS_Point是一个强大的工具,可以在交互式 3D 场景中显示和操作几何点。通过设置适当的属性和变换,可以实现对点的各种操作,从而增强用户的交互体验。如果需要更详细的示例和高级用法,建议查阅 OpenCascade 的官方文档和示例代码。参考。
2024-07-28 19:20:55 687
AIS-ColorScale示例 可以显示多颜色
2024-05-26
opencascade 如何实现全选
2022-08-11
如何编写代码打开dwg文件
2022-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人