SolidWorks属性详解:提升设计效率的关键

如图所示,在Solidworks的模型,图纸文档中,都存在【自定义】【配置特定】属性,在这里可以给模型和图纸添加各种属性,以便属性数据反应在图纸上或提供下游生产制造使用。而当属性数量越来越多后,这些属性的写入与读取将会带来繁重的机械工作,人为地录入,不仅效率低下,还可能导致错误率的提升。本文将带领读者入门Solidworks中属性的自动添加与读取操作。

image.png

1.属性管理器对象获取

属性的写入与读取,需要使用到属性管理器对象CustomPropertyManager,该对象可由如下最常用的2种方式获取:

1)通过扩展文档对象获得(最为常用)

ModelDoc2 SwDoc;
ModelDocExtension SwDocExt=SwDoc.Extension;
CustomPropertyManager SwCusp=SwDocExt.CustomPropertyManager[ConfigName];

其中参数ConfigName,指操作的配置【配置特定】,如果为空,则表示操作【自定义】

image.png

2)通过配置对象获得

Configuration SwConfig;
CustomPropertyManager SwCusp=SwConfig.CustomPropertyManager;

2.属性的自动写入

自动写入属性,可以使用如下方法

CustomPropertyManager SwCusp;
value = SwCusp.Add3(FieldName, FieldType, FieldValue, OverwriteExisting)
image.png
image.png
image.png

实例讲解:

如下图,我们给模型自动写入如下属性

image.png
实例代码:
public static void WriteCusp(ModelDoc2 Doc)
{
    CustomPropertyManager SwCusp = Doc.Extension.CustomPropertyManager[""];
    string PartName = "长方体 \"D2@草图2@Solidworks属性学习.SLDPRT\"X\"D1@草图2@Solidworks属性学习.SLDPRT\"X\"D1@凸台-拉伸1@Solidworks属性学习.SLDPRT\"";
    SwCusp.Add3("零件名", (int)swCustomInfoType_e.swCustomInfoText, PartName, (int)swCustomPropertyAddOption_e.swCustomPropertyReplaceValue);
    SwCusp.Add3("代号", (int)swCustomInfoType_e.swCustomInfoText, "001", (int)swCustomPropertyAddOption_e.swCustomPropertyReplaceValue);
    SwCusp.Add3("重量", (int)swCustomInfoType_e.swCustomInfoText, "\"SW-质量@Solidworks属性学习.SLDPRT\"", (int)swCustomPropertyAddOption_e.swCustomPropertyReplaceValue);
    SwCusp.Add3("材料", (int)swCustomInfoType_e.swCustomInfoText, "\"SW-材质@Solidworks属性学习.SLDPRT\"", (int)swCustomPropertyAddOption_e.swCustomPropertyReplaceValue);
    System.Windows.MessageBox.Show("属性写入成功!");
}

3.属性的读取

自定读取属性,可以使用如下方法

CustomPropertyManager SwCusp;
SwCusp.Get5(FieldName, UseCached, ValOut, ResolvedValOut, WasResolved)
image.png
image.png

实例讲解:

同样,我们读取之前写入的属性,代码示例如下:


public static void ReadCusp(ModelDoc2 Doc)
{
     StringBuilder Sb = new StringBuilder("");
     CustomPropertyManager SwCusp = Doc.Extension.CustomPropertyManager[""];
     string outv = "";
     string outr = "";
     bool outresult = false;
     SwCusp.Get5("零件名", true, out outv, out outr, out outresult);
     Sb.Append("[零件名]:\r\n表达式:"+ outv+"\r\n评估值:"+ outr);
     Sb.Append("\r\n");
     SwCusp.Get5("代号", true, out outv, out outr, out outresult);
     Sb.Append("[代号]:\r\n表达式:" + outv + "\r\n评估值:" + outr);
     Sb.Append("\r\n");
     SwCusp.Get5("材料", true, out outv, out outr, out outresult);
     Sb.Append("[材料]:\r\n表达式:" + outv + "\r\n评估值:" + outr);
     System.Windows.MessageBox.Show(Sb.ToString().Trim());
}

运行效果图:

image.png

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

image.png
QR Code
微信扫一扫,欢迎咨询~

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

* 公司名称:

姓名不为空

手机不正确

公司不为空