在Solidworks的参数化建模中,经常需要获取与设置尺寸。本文将带大家初步了解Solidworks中的尺寸对象Dimension。
Dimension对象的获得方式:

image.png
如下图所示,模型有2个配置,我们需要获取与设置图中的尺寸。

image.png
实例分析1:获得模型中尺寸的相关信息
实例代码:
GetDim(Doc, "L@草图1");
public static void GetDim(ModelDoc2 Doc,string DimName)
{
Dimension SwDim = Doc.Parameter(DimName);
StringBuilder sb = new StringBuilder("");
sb.Append("尺寸名:"+ SwDim.Name+"\r\n");
sb.Append("完整尺寸名:" + SwDim.FullName + "\r\n");
sb.Append("选择名:" + SwDim.GetNameForSelection() + "\r\n");
double[] aa = SwDim.GetValue3((int)swInConfigurationOpts_e.swSpecifyConfiguration,new string[] { "Default" ,"cfg2"});
sb.Append("Default配置-尺寸值:" + aa[0] + "\r\n");
sb.Append("cfg2配置-尺寸值:" + aa[1] + "\r\n");
System.Windows.MessageBox.Show(sb.ToString().Trim());
}
实例效果:

image.png
实例分析:
通过Dimension对象的GetValue3方法可以获得不同配置下对应的尺寸值。
Dimension.GetValue3(WhichConfigurations, Config_names)
参数WhichConfigurations为枚举类型swInConfigurationOpts_e:

image.png
参数Config_names为一个字符串数组,记录需要获取的每个配置名称,方法的输出结果尺寸值的排序也是根据Config_names中配置名称的顺序对应。Config_names仅在WhichConfigurations为swSpecifyConfiguration(即指定配置)时才有效。
实例分析2:设置模型中的尺寸
本例中,我们将对模型中的长度尺寸进行不同配置下的赋值
实例代码
Dictionary<string, double> Vals = new Dictionary<string, double>();
Vals.Add("Default", 66);
Vals.Add("cfg2", 77);
SetDim(Doc, "L@草图1", Vals)
public static void SetDim(ModelDoc2 Doc, string DimName,Dictionary<string,double> Vals)
{
Dimension SwDim = Doc.Parameter(DimName);
foreach (string cfg in Vals.Keys)
{
SwDim.SetValue3(Vals[cfg], (int)swSetValueInConfiguration_e.swSetValue_InSpecificConfigurations, new string[] { cfg });
}
Doc.EditRebuild3();
}
实例效果:
可以看到尺寸L在2个配置中的值都发生了变化。

image.png
如下图为本文的示例程序,源码可上我的Github下载。操作步骤可见文章《公众号源码Github分享库》 , 实例序号13

image.png