跳到主要内容

编辑SOLIDWORKS宏特征定义

使用SwEx.MacroFeature框架编辑SOLIDWORKS宏特征的定义 toc-group-name: labs-solidworks-swex

编辑定义允许修改现有特征的参数。当从特征管理器树中点击“编辑特征”命令时,将调用编辑定义。

编辑特征命令{ width=250 }

编辑特征的典型工作流程如下:

using CodeStack.SwEx.MacroFeature;
using SolidWorks.Interop.sldworks;

namespace CodeStack.SwEx
{
public class EditMacroFeatureDefinitionParameters
{
//TODO: 添加属性
}

public class EditMacroFeatureDefinition:MacroFeatureEx<EditMacroFeatureDefinitionParameters>
{
protected override bool OnEditDefinition(ISldWorks app, IModelDoc2 model, IFeature feature)
{
var featData = feature.GetDefinition() as IMacroFeatureData;

//回滚特征
featData.AccessSelections(model, null);

//读取当前参数
var parameters = GetParameters(feature, featData, model);

var res = ShowPage(parameters);

if (res)
{
//设置参数并更新特征数据
SetParameters(model, feature, featData, parameters);
feature.ModifyDefinition(featData, model, null);
}
else
{
//取消修改
featData.ReleaseSelectionAccess();
}

return true;
}

private bool ShowPage(EditMacroFeatureDefinitionParameters parameters)
{
//TODO: 显示属性页面或其他用户界面
return true;
}
}
}

在调用IMacroFeatureData::AccessSelectionsGetParametersSetParametersIFeature::ModifyDefinitionIMacroFeatureData::ReleaseSelectionAccess方法时,重要的是使用相同的指针IMacroFeatureData