Catia CAA二次开发源码分享:3D 投影到制图步骤
提示:要关联的Doc必须是当前Doc
CATFrmEditor *pCurrFrmEditor = GetEditor();
CATPathElement oUIActPathElem = pCurrFrmEditor->GetUIActiveObject();
CATBaseUnknown* pCurrElemBase = oUIActPathElem.CurrentElement();
CATILinkableObject_var spLink(pCurrElemBase);
1。首先要生成一个新的Drawing, 在interactive mode的话,
从session QI 得到一个CATIIniInteractiveSession,
用CATIIniInteractiveSession::New("Drawing", opMyEditor)
来生成一个新Drawing。(batch的话用CATDocumentServices)
2.从这个新Drawing的Doc QI 一个CATIDftDocumentServices,
用CATIDftDocumentServices::GetDrawing()莱得到CATIDrawing,
CATIDrawing QI CATIDftDrawingFormats,
CATIDftDrawingFormats::GetAvailableFormats()
得到可用的Format先放着,以后从这里面取一个自己想用的设置上去
3。从3D生成Drawing要用到CATIDftViewMakeUp。
先从Container QI CATIDrwFactory,
用CATIDrwFactory::CreateViewWithMakeUp()
生成一个CATIDftViewMakeUp。
4。从CATIDftViewMakeUp::GetView()得到一个CATIView,
这是才能用CATIView::SetDoc()把3D的Part的linkableObject设
上去,还要用CATIView::SetViewType(FrontView)来指定前视图。
5。还没完,从3D生成2D视图需要指定一个投影平面,
由CATIView QI 一个CATIGenerSpec,
用CATIGenerSpec::SetProjPlane()设定。
6。最后,对Drawing的Sheet设定Format(前面得到的),
指定CATIDftViewMakeUp在Sheet中的位置
(CATIDftViewMakeUp::SetPosition), 再最后,
把CATIDftViewMakeUp加到Sheet上(CATISheet::AddView)
7。嗯,别忘了还要Save文件。
页:
[1]