跳到主要内容

SwEx.MacroFeature框架概述

宏特征和SwEx.MacroFeature框架的通用概述 toc-group-name: labs-solidworks-swex

该框架提供了3个主要的宏特征抽象类,这些类位于CodeStack.SwEx.MacroFeature命名空间中,可以继承这些类以注册新的宏特征。

  • MacroFeatureEx - 简单的宏特征。宏特征不需要任何参数,将执行简单的操作。
  • MacroFeatureEx{TParams} - 参数驱动的宏特征。所有必需的输入可以在TParams结构(数据模型)中定义。宏特征数据包括:
    • 字段值(命名参数)
    • 尺寸
    • 选择集
    • 编辑实体
  • MacroFeatureEx{TParams,THandler} - 具有按特征分配处理程序的参数驱动的宏特征,以跟踪生命周期。

宏特征类必须是COM可见的。

建议为宏特征明确指定GUID和Prog ID。

using CodeStack.SwEx.MacroFeature;
using CodeStack.SwEx.MacroFeature.Attributes;
using CodeStack.SwEx.Properties;
using SolidWorks.Interop.swconst;
using System;
using System.Runtime.InteropServices;

namespace CodeStack.SwEx
{
public class MySimplaeMacroFeatureParameters
{
public string Parameter1 { get; set; }
}

[ComVisible(true)]
[Guid("47827004-8897-49F5-9C65-5B845DC7F5AC")]
[ProgId("CodeStack.MyMacroFeature")]
[Options("MyMacroFeature", swMacroFeatureOptions_e.swMacroFeatureAlwaysAtEnd)]
[FeatureIcon(typeof(Resources), nameof(Resources.macro_feature_icon), "CodeStack\\MyMacroFeature\\Icons")]
public class MySimplaeMacroFeature : MacroFeatureEx<MySimplaeMacroFeatureParameters>
{
}
}

图标

可以通过IconAttribute指定自定义宏特征图标。图标可以从资源中加载,并支持透明度。默认情况下,图标文件将在%ProgramData%\CodeStack{MacroFeatureId}\Icons文件夹中创建,但可以通过在iconFolderName参数中指定此位置来更改。

选项

可以通过OptionsAttribute指定其他选项。

宏特征是一个COM对象,这意味着它需要注册才能运行。宏特征存储在模型中,但如果在未注册宏特征COM对象的环境中打开模型,则会显示重建错误。此外,这个“悬空”的宏特征无法删除或抑制。

用户可以通过OptionsAttributeprovider参数指定在“出了什么问题”对话框中显示的自定义消息。指定的消息将在预定义的“找不到加载项。请联系”之后显示。

using CodeStack.SwEx.MacroFeature;
using CodeStack.SwEx.MacroFeature.Attributes;
using System.Runtime.InteropServices;

namespace CodeStack.SwEx
{
[ComVisible(true)]
[Options("SwExMacroFeature", "CodeStack. Download the add-in")]
public class UnregisteredMacroFeature : MacroFeatureEx
{
}
}

未注册宏特征的重建错误消息{ width=650 }

要插入宏特征,请使用扩展方法:IFeatureManager::InsertComFeature