尺寸对象Dimension:精确设计的关键

在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
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空