OpenCASCADE(OCC)读取STEP模型文件到XDE中

运行结果图》》

首先:

XDE使用TDocStd_Documents作为起点。XDE的一般用途是:

检查现有文档是否适合XDE;
获取应用程序和初始化文件;

初始化文档以适合XDE;

添加、设置和查找数据;

查询和管理形状;

将属性附加到形状。
XDE使用的Document通常以TDocStd_Document开头。

前期检查:

在处理形状、属性和其他类型的信息之前,要确定现有文档是否实际上是为与XDE一起使用而构建的。
就是要确定现有的TDocStd_Document是否适合XDE:

Handle(TDocStd_Document) doc;
if ( XCAFDoc_DocumentTool::IsXCAFDocument (doc) ) 
{ 
    //进行下面的操作

} 

如果文档适用于XDE,可以直接执行上述操作。但是,如果一个Document不是或者不完全是为XDE构建的,则必须对其进行初始化。

具体初始化如下:

//创建文档
	Handle(TDocStd_Document) doc;
	XCAFApp_Application::GetApplication()->NewDocument("MDTV-XCAF", doc);

下面进行STEP文件的完整读取:

void COCCmfcMDIDoc::ReadSTEP()
{
	
	//创建文档
	Handle(TDocStd_Document) doc;
	XCAFApp_Application::GetApplication()->NewDocument("MDTV-XCAF", doc);

	//装载文件(.step)
	STEPCAFControl_Reader myReader;
	myReader.ReadFile("hezi.STEP");
	myReader.SetColorMode(true);
	myReader.SetNameMode(true);
	myReader.SetLayerMode(true);

	myReader.Transfer(doc);

	TDF_Label mainLabel = doc->Main();
	//要从XDE结构获取被视为程序集的节点,可以使用节点的Label(shape)
	Handle(XCAFDoc_ShapeTool) myShapeTool = XCAFDoc_DocumentTool::ShapeTool(mainLabel);
	//查询、编辑或初始化文档以处理XCAF的颜色(OCCT不再使用此方法渲染模型)
	Handle(XCAFDoc_ColorTool) myColors = XCAFDoc_DocumentTool::ColorTool(mainLabel);
	TDF_LabelSequence FreeShape;
	myShapeTool->GetFreeShapes(FreeShape);//使用GetFreeShapes解决装配体和组件显示错乱问题
	//myShapeTool->GetShapes(FreeShape);  //获取装配体和组件对应名称(不适用)
	int Roots = FreeShape.Length();
	for (int index = 1; index <= Roots; index++)
	{
		TDF_Label label = FreeShape.Value(index);

		// 用XCAFPrs_AISObject 来显示
		Handle(XCAFPrs_AISObject) displayedShape = new XCAFPrs_AISObject(label);
		myAISContext->Display(displayedShape, true);

	}
}

调用函数,点击运行》》

!!!!!!!!!

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值