问题标签 [opencascade]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何将 OpenCascade Pixmap 转换为 OpenCV Mat 格式?
我正在使用 OpenCascade 示例项目,我需要提取 3DViewer 场景的 2D 快照并将其转换为 Opencv Mat 格式。我尝试了下面的代码,如果我使用 imshow 显示快照,我将得到一个完整的黑色视图。默认情况下,PixMap 是 3 通道 RGB 图像。
c# - 如何在 OpenCascade 中用颜色显示侧面?
我有一个 .step 文件,我需要从侧面为项目制作图像。现在我的问题是两边都是白色的。
为了获得侧面,我改变了观点,现在我改变了一点以显示颜色,但这通常不起作用并且对象仍然是白色的。我还尝试添加 PositionalLight 和 DirectionalLight,它们充其量只能提供稍微多一点的灰白色。但我可能会忽略一些简单的事情。
更改视图的代码
我试过的示例光源
我试图获得像 FreeCad 软件那样的侧视图,其中显示了对象的颜色。
python - 如何使用 PythonOCC 导入参数引用?
出于数据交换比较的原因,我需要从 CAD 文件中提取几何/参数参考。为此,我PythonOCC
在 conda 环境中使用库。
到目前为止,我能够绘制提取的文件(在我的情况下是一个 STEP 文件),但我找不到关于这个库的任何进一步的文档(除了它拥有的所有函数 API 的列表,但它对我没有帮助,因为有很多功能,但并没有真正解释它是如何工作的)。我的目标是从 NURBS/Splines 描述中提取参数参考以捕获表面的一些精确点(没有数据转换,这就是我不想通过 CAD 环境的原因)。
有谁知道我应该如何探索 pythonOCC 的哪些功能或知道任何可以提供帮助的文档?
到目前为止,我的代码只能显示实体:
mesh - OpenCascade:如何细分细长的三角形?
我正在使用OpenCascade将 STEP/IGES 作为网格导入到我的软件中。效果很好。
但是我需要小三角形,而我得到的三角形有时非常大(在平坦区域),或者非常细长(例如,在啮合圆柱体时)。最好的办法是分割三角形的边缘大于某个绝对值。也避免 T 顶点。
我无法在谷歌上搜索任何关于它的内容......所以,目前,我将网格传递给OpenMesh,应用OpenMesh::Subdivider::Uniform::LongestEdgeT
运算符,然后将其传递回我的软件。当我管理几个 M 三角形时,既繁琐又昂贵……
问题:
- OpenCascade中是否有等价物?
- 或者一个简单的代码片段来实现我自己的循环来做到这一点?
谢谢 !
mesh - 在 PyGmsh / Gmsh 中添加内部边界或裂缝
我正在尝试使用以下代码使用 PyGmsh 生成有限元网格:
我可以生成以下网格:
但是,我想在网格上添加一个裂缝,例如:
这里的裂缝只是一个例子,它需要在网格划分之前定义。我尝试创建 2 个点 ( geom.add_point()
) 和一条线 ( geom.add_line()
),然后
geom.boolean_difference()
在最终的几何图形和线/裂缝之间做一个,但这不起作用。
任何帮助将不胜感激。
编辑
这种类型的网格生成的目的是模拟身体中的物理裂缝。在网格划分过程中,可以通过网格的元素连通性对裂纹进行建模(即元素必须具有不同的节点才能创建裂纹面)。例如,在施加任何载荷之前,裂缝是闭合的:
施加载荷后,裂缝打开,因为单元连通性允许这样做:
opencascade - OpenCASCADE 教程中 `BRepLib::BuildCurves3d` 调用的目的是什么?
作为一个 OpenCASCADE 新手,我正在阅读 OpenCASCADE 教程:
https://www.opencascade.com/doc/occt-7.4.0/overview/html/occt__tutorial.html
有以下两个奇怪的调用:
本教程以这种方式解释了这两个调用的必要性:
请记住,这些线是由曲面和 2D 曲线构建的。就这些线而言,缺少一个重要的数据项:没有关于 3D 曲线的信息。幸运的是,您不需要自己计算,这可能是一项艰巨的任务,因为数学可能非常复杂。当一个形状包含除 3D 曲线之外的所有必要信息时,Open CASCADE Technology 提供了一种自动构建它们的工具。在
BRepLib
工具包中,您可以使用该BuildCurves3d
方法计算形状所有边缘的 3D 曲线。
我没有完全清楚。
想象一下,我已经构造了一些TopoDS_Shape
对象。
一般来说,我怎样才能确定是否BRepLib::BuildCurves3d
需要调用?
c++ - C++11:我修补了一个段错误,但我不知道是什么修复了它
我改变了这个源代码:
对此:
这解决了它。但我仍然有点不明白为什么。这是 GeomAPI_ExtremaCurveCurve 对象的文档:
我仍然不是指针最棒的,但看起来参数需要一个不可变的指针,但是指针指向的数据可以改变吗?
然后是 BRep_Tool::Curve 方法:
现在,当我偶尔使用不同的语言进行编程时,C++ 中的静态说明符令人困惑,但这里它与链接和持续时间有关,cppref:
我必须补充一点,这个函数是线程应用程序的一部分,并且 static 和 thread_local 在某些方面在线程存储方面可以互换。
任何人都可以阐明为什么此修复程序有效吗?
谢谢你,S
geometry-surface - OpenCascade:带边界线的圆柱面
我想使用边界边缘(两条垂直线和两条 180° 弧)制作半个圆柱体的面。我知道有更简单的方法可以做到这一点,但我真正的问题要复杂得多,而且我拥有的边缘主要是样条曲线。所以,我试着做一个非常简单的例子,希望有人能帮助我。
使用我的真实输入数据,我不知道边界边缘的顺序和方向。我所拥有的只是“圆柱面”和“形成闭合环的边缘桶”。那么,如果我的方向不好,我该如何自动修复呢?
这是我的示例代码:
opencascade - 在 opencascade 中对 TopoDS_Edge 对象进行分类
我遇到了一些 IGES/STEP 模型的挑战,我的代码无法根据边缘的基础分类对面进行分类,即边缘是直线(非有理 B 样条曲线)还是弧(有理 B 样条曲线)。我一直在使用下面的代码(适用于某些模型):
,其中边缘是 TopoDS_Edge 而 edgex 是自定义边缘对象。我也尝试了以下代码,但它在第二行使程序崩溃:
请您提供更好的方法或解决我的解决方案。先感谢您。