正如我们所看到的:
在基于OCCT的CAD助手中,用户可以通过鼠标在单个单元上获取它的详细信息并突出显示它,问题是?
1,Does OCCT itself support this operation?
2,If yes,any example or tips to pick a cell and retrieve it's information (such as cell id,cell color)?
-更新
发布于 2022-11-19 11:08:48
我们试着收集一些答案。
首先,您不会在OCCT中发现与屏幕截图中的形状完全相同的演示文稿。这种自定义表示很可能是基于AIS_ColoredShape
的,上面有额外的功能。
OCCT有一个用于显示网格结构(如MeshVS_Mesh
)的专用类。它支持从框中选择网格元素,尽管您必须实现一个特殊的数据源接口来将网格数据提供给它。
至于像AIS_Shape
/AIS_ColoredShape
这样的标准形状演示文稿,它们没有实现对单个三角形的突出显示。但是,您可以通过标准的选择机制(如Select3D_SensitiveTriangulation::LastDetectedTriangleIndex()
)检索关于最后检测到的三角形的信息。您可以找到代码示例,从vstate
命令src/ViewerTest/ViewerTest.cxx
的源代码中检索这些信息。以下Tcl脚本:
pload MODELING VISUALIZATION
box b 1 2 3
vinit View1
vdisplay -dispMode 1 b
vfit
vmoveto 250 200
vstate -entities
产生以下输出:
Detected entities:
b Depth: 1.34919 Distance: 1.46373 Point: 1 1.08384 1.74698 Normal: 1 0 0 (Select3D_SensitiveTriangulation)
Detected Shape: TopoDS_TSolid
Detected Triangle: 2
下列条款可能有助于学习如何使用自己的特性(如自定义动态突出显示)实现AIS
对象子类。在自定义对象中,您可以从检测到的Select3D_SensitiveTriangulation
中检索三角形信息,并在鼠标移动的动态高亮对象上将其绘制到查看器中。
https://stackoverflow.com/questions/74485345
复制相似问题