/*录制:创建桥接面*/
bool CreateBridgeSurface(tag_t EdgeTag1, tag_t EdgeTag2, tag_t& BridgeSurfaceFeatureTag)
{
try
{
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
Features::BridgeSurface* nullFeatures_BridgeSurface(NULL);
if (!workPart->Preferences()->Modeling()->GetHistoryMode())
{
throw NXException::Create("Create or edit of a Feature was recorded in History Mode but playback is in History-Free Mode.");
}
Features::BridgeSurfaceBuilder* bridgeSurfaceBuilder1;
bridgeSurfaceBuilder1 = workPart->Features()->CreateBridgeSurfaceBuilder(nullFeatures_BridgeSurface);
bridgeSurfaceBuilder1->FirstEdgeContinuity()->SetContinuityType(GeometricUtilities::Continuity::ContinuityTypesG1);
bridgeSurfaceBuilder1->SecondEdgeContinuity()->SetContinuityType(GeometricUtilities::Continuity::ContinuityTypesG1);
bridgeSurfaceBuilder1->FirstEdgeOffset()->SetParameterUsed(true);
bridgeSurfaceBuilder1->SecondEdgeOffset()->SetParameterUsed(true);
bridgeSurfaceBuilder1->FirstEdgeRange()->Start()->Update(GeometricUtilities::OnPathDimensionBuilder::UpdateReasonPath);
bridgeSurfaceBuilder1->FirstEdgeRange()->End()->Update(GeometricUtilities::OnPathDimensionBuilder::UpdateReasonPath);
bridgeSurfaceBuilder1->SecondEdgeRange()->Start()->Update(GeometricUtilities::OnPathDimensionBuilder::UpdateReasonPath);
bridgeSurfaceBuilder1->SecondEdgeRange()->End()->Update(GeometricUtilities::OnPathDimensionBuilder::UpdateReasonPath);
Edge* edge1(dynamic_cast<Edge*>(NXObjectManager::Get(EdgeTag1)));
Point3d point1(0.0, 0.0, 0.0);
bridgeSurfaceBuilder1->FirstEdgeSelection()->SetValue(edge1, workPart->ModelingViews()->WorkView(), point1);
Edge* edge2(dynamic_cast<Edge*>(NXObjectManager::Get(EdgeTag2)));
Point3d point2(0.0, 0.0, 0.0);
bridgeSurfaceBuilder1->SecondEdgeSelection()->SetValue(edge2, workPart->ModelingViews()->WorkView(), point2);
NXObject* nXObject1;
nXObject1 = bridgeSurfaceBuilder1->Commit();
UF_MODL_ask_current_feature(UF_ASSEM_ask_work_part(), &BridgeSurfaceFeatureTag);
bridgeSurfaceBuilder1->Destroy();
}
catch (exception& ex)
{
UF_UI_open_listing_window();
UF_UI_write_listing_window("创建桥接面失败\n");
return 1;
}
return 0;
}
【UG\NX二次开发】NXOpen 桥接面(bridgeSurfaceBuilder)
于 2023-11-09 15:21:02 首次发布