OpenCASCADE基本建模环境

OpenCASCADE 是一套开放源代码的CAD/CAM/CAE几何模型核心,这一套函数库系统原来是著名的CADCAM软体EUCLID的开发平台,源自于法国的Matra Datavision公司。OpenCASCADE是一个真正工业级的3D建模工具,基于OpenCASCADE可以快速的开发其他CAD系统,能够处理2D或3D建模的各种问题,比如建立实体模型、提供布尔操作、面角操作(倒角、圆角)、计算实体属性、可视化操作、数据格式转换等。

本文基于eryar大神的提供了示例接着进行了扩展,补充了视方体、三视图、模型线框与实体的切换,线框视图遮挡线的消隐、导入导出IGES、STEP、Brep、STL文件等功能,以期提供更为完备的CAD开发基础环境。

演示示例:

0416-01

0416-02

 给出相关代码:

线框模式和实体模式的切换:

void OccView::onWireframe(void)
{
	QApplication::setOverrideCursor(Qt::WaitCursor);
	//如果在扫描所选对象列表时发现了另一个对象,则返回true。  
	for (myContext->InitCurrent(); myContext->MoreCurrent(); myContext->NextCurrent())
		myContext->SetDisplayMode(myContext->Current(),0,false);
	myContext->UpdateCurrentViewer();
	//getApplication()->onSelectionChanged();
	QApplication::restoreOverrideCursor();
}

void OccView::onShading(void)
{
	QApplication::setOverrideCursor(Qt::WaitCursor);
	for (myContext->InitSelected(); myContext->MoreSelected(); myContext->NextSelected())
		myContext->SetDisplayMode(myContext->Current(), 1, false);
	myContext->UpdateCurrentViewer();
	//getApplication()->onSelectionChanged();
	QApplication::restoreOverrideCursor();
}

线框图的消隐

void OccView::hlrOn(void)
{
	QApplication::setOverrideCursor(Qt::WaitCursor);
	myHlrModeIsOn = Standard_True;
	myView->SetComputedMode(myHlrModeIsOn);
	myView->Redraw();
	QApplication::restoreOverrideCursor();
}

void OccView::hlrOff(void)
{
	QApplication::setOverrideCursor(Qt::WaitCursor);
	myHlrModeIsOn = Standard_False;
	myView->SetComputedMode(myHlrModeIsOn);
	myView->Redraw();
	QApplication::restoreOverrideCursor();
}

视方体:

void OccView::displayCube()
{
	//视图立方体
	Handle(AIS_ViewCube) H_AisViewCube = new AIS_ViewCube();
	//myContext->SetDisplayMode(AIS_Shaded, true);   //设置显示模式为阴影
	H_AisViewCube->SetBoxSideLabel(V3d_Xpos, "Right");
	H_AisViewCube->SetBoxSideLabel(V3d_Ypos, "Back");
	H_AisViewCube->SetBoxSideLabel(V3d_Zpos, "Top");
	H_AisViewCube->SetBoxSideLabel(V3d_Xneg, "Left");
	H_AisViewCube->SetBoxSideLabel(V3d_Yneg, "Front");
	H_AisViewCube->SetBoxSideLabel(V3d_Zneg, "Bottoom");
	H_AisViewCube->SetTransparency(0.8);
	H_AisViewCube->SetTextColor(Quantity_Color(Quantity_NOC_MATRABLUE));
	H_AisViewCube->SetFontHeight(20);
	H_AisViewCube->SetMaterial(Graphic3d_MaterialAspect(Graphic3d_NOM_ALUMINIUM));
	H_AisViewCube->SetTransformPersistence(
		new Graphic3d_TransformPers(
			Graphic3d_TMF_TriedronPers,
			Aspect_TOTP_RIGHT_UPPER,
			Graphic3d_Vec2i(100, 100)));
	myContext->Display(H_AisViewCube, Standard_True);
}

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值