// ====== 添加倒斜角功能开始 ======
try {
// 创建撤销标记(参考代码中的必要操作)
NXOpen::Session::UndoMarkId markId = theSession->SetUndoMark(
NXOpen::Session::MarkVisibilityVisible,
"开始倒斜角"
);
// 创建倒斜角构建器
Features::ChamferBuilder* chamferBuilder = workPart->Features()->CreateChamferBuilder(nullptr);
// 关键修改1:必须设置角度参数(即使使用双偏置方式)
chamferBuilder->SetOption(Features::ChamferBuilder::ChamferOptionTwoOffsets);
chamferBuilder->SetMethod(Features::ChamferBuilder::OffsetMethodEdgesAlongFaces);
chamferBuilder->SetFirstOffset("0.5"); // 第一偏置值
chamferBuilder->SetSecondOffset("0.5"); // 第二偏置值
chamferBuilder->SetAngle("45"); // 关键添加:角度参数必须设置
// 关键修改2:使用相切边规则代替离散边规则
ScCollector* edgeCollector = workPart->ScCollectors()->CreateCollector();
std::vector<SelectionIntentRule*> rules;
// 获取第一条边作为种子边
if (!sectionCurves1.empty() && dynamic_cast<Edge*>(sectionCurves1[0])) {
Edge* seedEdge = dynamic_cast<Edge*>(sectionCurves1[0]);
// 创建相切边规则(连续边选择)
EdgeTangentRule* tangentRule = workPart->ScRuleFactory()->CreateRuleEdgeTangent(
seedEdge, // 种子边
nullptr, // 终止边(可选)
true, // 包含种子边
0.1, // 公差
true, // 自动链选择
false // 不反向
);
rules.push_back(tangentRule);
}
edgeCollector->ReplaceRules(rules, false);
chamferBuilder->SetSmartCollector(edgeCollector);
// 提交特征
NXOpen::Features::Feature* chamferFeature = chamferBuilder->CommitFeature();
// 清理资源
chamferBuilder->Destroy();
theSession->SetUndoMarkName(markId, "倒斜角特征");
}
catch (exception& ex) {
theUI->NXMessageBox()->Show("错误", NXMessageBox::DialogTypeError, ex.what());
}
// ====== 添加倒斜角功能结束 ======NX报错以下是日志:“&MACRO MENU, 0, UG_LWIN_FILE_EXIT ListingWindowMenuBar !
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO CURSOR_EVENT 1001 3,1,100,0 ! single_pt, mb1/0+0, , nn
&MACRO CPOS -16.8115453308046,117.651003948618,-68.8219915623444
&MACRO MENU, 0, UG_FILE_RUN_UFUN UG_GATEWAY_MAIN_MENUBAR <Ctrl U> ## !
&MACRO FILE_DIALOG_BEGIN 0, ! filebox with tools_data
&MACRO FILE_DIALOG_UPDATE 0 ! 可动态调用的库 (*.dll)
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO FILE_DIALOG_END
&MACRO FILE_BOX -2,@@@D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll@@@D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\*.DLL@@@ 0 ! Execute User Function
Missing resource block.
Validation failed but CPP author license exists - D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll loaded
Skipping UFUNC_EXECUTE check
Missing resource block.
Validation failed but CPP author license exists - D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll loaded
Native license authentication passed for D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll
Successfully loaded dynamic module D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll
Block Styler: Could not find the file at bianjieshunmian.dlx. The file will be searched in user directories
Block Styler: Found the file at D:\Program Files\Siemens\NX2212\MICHTOOLS\application\bianjieshunmian.dlx
UNDO_UG: Recyclable status of mark 18287 set to False
&MACRO ASK_ITEM 851968 (1 BOOL 0) = 1 ! 显示之前状态
&MACRO ASK_ITEM 851968 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO ASK_ITEM 1638400 (1 BOOL 0) = 1 ! 显示之前状态
&MACRO ASK_ITEM 1638400 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO EVENT FOCUS_IN 0 0, 327680, 0, 0, 0! Curve
&MACRO ASK_ITEM 327680 (1 BOOL 0) = 0 ! Curve
&MACRO DIALOG_BEGIN "边接顺" 0 ! DA2
&MACRO BEG_ITEM 327680 (1 BOOL 0) = 0 ! Curve
&MACRO BEG_ITEM 851968 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO BEG_ITEM 1114112 (1 BOOL 0) = 0 ! Face
&MACRO BEG_ITEM 1638400 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO BEG_ITEM 2162690 (1 BOOL 0) = 1 ! Preview
&MACRO ASK_ITEM 327680 (1 BOOL 0) = 0 ! Curve
&MACRO ASK_ITEM 327680 (1 BOOL 0) = 1 ! Curve
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO CURSOR_EVENT 1001 3,1,100,0 ! single_pt, mb1/0+0, , nn
&MACRO CPOS 142.402845155596,-17.9925410188466,-68.8219915623444
!!!&MACRO EVENT FOCUS_IN 0 0, 327680, 0, 0, 0! (Application CB Nested)
!!!&MACRO ASK_ITEM 327680 (1 BOOL 0) = 1 ! Curve
&MACRO CURSOR_EVENT 1001 106,0,221,0 ! motion_pb, mb0/0+0, , nn
&MACRO CPOS 141.958112221276,-28.666131442516,-68.8219915623444
&MACRO EVENT FOCUS_IN 0 0, 1114112, 0, 0, 0! Face
&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 0 ! Face
&MACRO EVENT VALUE_CHANGED 0 0, 1114112, 0, 0, 0! Face
&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 1 ! Face
&MACRO ASK_ITEM 327680 (1 BOOL 0) = 1 ! Curve
&MACRO ASK_ITEM 327680 (1 BOOL 0) = 0 ! Curve
&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 1 ! Face
&MACRO FOCUS CHANGE IN 1
&MACRO WINDOW RESIZE 1.000000 16.666667 8.375000 -1.000000 -0.502500 1.000000 0.502500
&MACRO CURSOR_EVENT 1001 3,1,100,0 ! single_pt, mb1/0+0, , nn
&MACRO CPOS 161.081628397017,-21.9951374277226,-68.8219915623444
!!!&MACRO EVENT FOCUS_IN 0 0, 1114112, 0, 0, 0! (Application CB Nested)
!!!&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 1 ! Face
&MACRO CURSOR_EVENT 1001 106,0,201,0 ! motion_pb, mb0/0+0, , nn
&MACRO CPOS 140.179180483998,-41.1186536034635,-68.8219915623444
&MACRO OK 0 0 ! OK Callback
&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 1 ! Face
&MACRO ASK_ITEM 1114112 (1 BOOL 0) = 0 ! Face
&MACRO MESSAGE_BOX -2 The chamfer cannot be created.
&MACRO MESSAGE_TEXT A parameter may be out of the acceptable range, or
&MACRO MESSAGE_TEXT the geometry may be such that all faces
&MACRO MESSAGE_TEXT could not be properly connected.
&MACRO END_ITEM 327680 (1 BOOL 0) = 0 ! Curve
&MACRO END_ITEM 851968 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO END_ITEM 1114112 (1 BOOL 0) = 0 ! Face
&MACRO END_ITEM 1638400 (1 BOOL 0) = 0 ! 显示之前状态
&MACRO END_ITEM 2162690 (1 BOOL 0) = 1 ! Preview
&MACRO DIALOG_END -2, 0 ! 边接顺: OK
UNDO_UG: Recyclable status of mark 18287 set to True
Unloading D:\NXopen\BaiduSyncdisk\studio\bianjieshunmian\x64\Debug\bianjieshunmian.dll
&MACRO MENU, 0, UG_HELP_SYSTEM_LOG UG_GATEWAY_MAIN_MENUBAR <TopBorderBar->MenuBar->UG_HELP> ## !
”