本帖最后由 leven50 于 2024-10-31 14:59 编辑
一、抽壳
概念:抽壳 命令构造具有有限厚度的抽壳实体零件,该零件可具有或也可不具有开放面。
API:
- ThinwallPtr Add(
- enum FeaturePropertyConstants ThicknessSide,//FeaturePropertyConstants常量集的成员,该常量集指定偏移边(内部、外部或对称)。
- double CommonThickness,//指定没有唯一厚度的所有面的厚度。该值必须大于零。
- const _variant_t& OpenFaces = vtMissing,//指定要删除或打开的面
- const _variant_t& NumberOfUniqueThicknesses = vtMissing,
- const _variant_t& UniqueThicknessesArray = vtMissing,
- const _variant_t& UniqueThicknessFaceListArray = vtMissing);
复制代码 示例代码:
- void AddThinWalls()
- {
- Application* application = TGAddinApp::GetTGApp()->GetApplication();
- TGPart::PartDocumentPtr pDoc = application->GetActiveDocument();
- // 新建草图
- TGPart::SketchPtr pSketch = pDoc->Sketches->Add();
- //参考平面
- TGPart::RefPlanePtr pRefplane = pDoc->GetRefPlanes()->Item(3);
- // 轮廓
- TGPart::ProfilePtr pProfile = pSketch->GetProfiles()->Add(pRefplane);
- // 创建一个中线点为(0.0,0.0),长度为0.1,宽度为0.08的矩形
- CreateRectangle(pProfile);
- CComSafeArray<IDispatch*> aProfiles(1);
- aProfiles[0] = pProfile;
- // 基于矩形去进行拉伸,右侧拉伸、长度为0.05
- TGPart::ModelPtr model = pDoc->Models->AddFiniteExtrudedProtrusion(
- 1,
- aProfiles.GetSafeArrayPtr(),
- TGPart::FeaturePropertyConstants::igRight,
- 0.05);
- TGGeometry::FacesPtr pSideFaces = (TGGeometry::FacesPtr)(model->GetExtrudedProtrusions()->Item(1)->GetSideFaces());
- // 需要开放的面
- IDispatchPtr s = pSideFaces->Item(1);
- _variant_t OpenFaces(static_cast<IDispatch*>(s));
- // 抽壳操作,开放一个面,厚度为0.01
- ThinwallsPtr pThinwalls = pDoc->Models->Item(1)->GetThinwalls();
- ThinwallPtr pThinwall = pThinwalls->Add(FeaturePropertyConstants::igOutside, 0.01, OpenFaces);
- }
复制代码 示例效果:
|
|