Opencascad(C++)

编程入门 行业动态 更新时间:2024-10-23 01:40:50

Opencascad(C++)

Opencascad(C++)

文章目录

  • 1、前言
  • 2、在Opencascad中显示小的坐标系
  • 3、在Opencascad中创建自定义的坐标系


1、前言

在Opencascad开发时,在view中可以显示小的坐标系,但是有时我们需要在建模时创建基准坐标系,当然可以作为工件坐标系也可以作为基准坐标系。本文以一个实际的例子讲述一下自定义坐标系的创建,当然,我们默认是显示框架已经做好了。


2、在Opencascad中显示小的坐标系

首先看到效果如下图所示:

这个是通过

Handle(V3d_View) myView;  //这里需要初始化
myView->TriedronDisplay(Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.1, V3d_ZBUFFER);//这是显示小坐标系的代码

当然可以设置这个坐标系的样式,其可以设置为cube形式,其代码为:

myView->TriedronDisplay(Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.1, V3d_ZBUFFER);//这是显示小坐标系的代码//myView->TriedronErase(); 隐藏坐标系viewCube = new AIS_ViewCube();myContext->Display(viewCube, Standard_True);

其效果为:

这里就多了一个坐标系,所有打开上面代码中注释的

	//myView->TriedronErase(); 隐藏坐标系

即可。
如下图:

完整的代码为:

myView->TriedronDisplay(Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.1, V3d_ZBUFFER);//这是显示小坐标系的代码myView->TriedronErase(); 隐藏坐标系viewCube = new AIS_ViewCube();myContext->Display(viewCube, Standard_True);

但是,对于我这种人来说,出现这个cube反而感觉很不舒服,毕竟感觉很丑,所以我一般都不会用cube样式的,喜欢干净整洁的。

3、在Opencascad中创建自定义的坐标系

创建自定义的坐标系需要用的类是AIS_Trihedron,
其完整的代码为:

//创建工件坐标系gp_Pnt origionPnt(0, 0, 0);//原点gp_Pnt xAxisPnt(1, 0, 0); gp_Vec vectorX(origionPnt, xAxisPnt);          //X轴矢量gp_Dir aixX(vectorX / vectorX.Magnitude());// X轴gp_Vec vectorY = vectorX.Rotated(gp_Ax1(origionPnt, gp_Dir(0, 0, 1)), M_PI_2);	//获取Y轴矢量gp_Vec vectorZ = vectorX.Crossed(vectorY); //Z轴矢量gp_Dir aixZ = (vectorZ / vectorZ.Magnitude());//Z轴gp_Ax2 ax2 = gp_Ax2(origionPnt, aixZ, aixX);Handle(Geom_Axis2Placement) TrihedronAxis = new Geom_Axis2Placement(ax2);partTrihedron = new AIS_Trihedron(TrihedronAxis);partTrihedron->SetTypeOfPresentation(PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_AllView);   //设置显示样式,所有视图有效partTrihedron->SetDatumDisplayMode(Prs3d_DatumMode::Prs3d_DM_Shaded);							//设置基准形状样式//设置轴向标签partTrihedron->SetLabel(Prs3d_DatumParts::Prs3d_DP_Origin, "OC");		partTrihedron->SetLabel(Prs3d_DatumParts::Prs3d_DP_XAxis, "XC");partTrihedron->SetLabel(Prs3d_DatumParts::Prs3d_DP_YAxis, "YC");partTrihedron->SetLabel(Prs3d_DatumParts::Prs3d_DP_ZAxis, "ZC");	//设置轴向颜色partTrihedron->SetColor(Quantity_NOC_BLUE);partTrihedron->SetXAxisColor(Quantity_NOC_RED);partTrihedron->SetYAxisColor(Quantity_NOC_GREEN);//设置轴值,默认是100mm,可以修改partTrihedron->SetSize(WCSVALUE);myContext->Display(partTrihedron, true);

其效果为:

更多推荐

Opencascad(C++)

本文发布于:2023-11-16 23:04:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635180.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Opencascad

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!