从Solidworks获取自定义材料

11

首先请注意,我没有在我的计算机上安装Solidworks,但是使用该项目的文件。

Solidworks具有创建自定义选项卡到文件属性的功能。在此选项卡中,您可以找到在solidworks中制作的模型(零件)的各种信息。

我读取所有这些信息并将其存储在.txt文件中,请参阅下图。在这些信息中,您可以找到部件的材料类型,这就是我的问题所在。enter image description here

我知道材料类型,但是在solidworks中,用户还可以为自定义属性中定义的材料分配自定义材料。例如,材料只是普通木材,但用户希望这种木材是粉色的。

是否可能读取附加到自定义属性中材料的自定义材料


2
我建议使用文件中的文本而不是使用其图像。 - Rumbles
@Rumbles,你是什么意思? - Desutoroiya
你在帖子中使用了一个文本文件的图像,我建议直接使用文本会更好。 - Rumbles
2个回答

3

如果您没有安装SOLIDWORKS,您可以使用文档管理器(需要活跃的SOLIDWORKS订阅以获取密钥)来访问自定义属性:

String sLicenseKey = "Your key from SOLIDWORKS";
SwDmDocumentOpenError nRetVal = 0;
SwDmCustomInfoType customInfoType;
SwDMClassFactory swClassFact = new SwDMClassFactory();
SwDMApplication swDocMgr = (SwDMApplication)swClassFact.GetApplication(sLicenseKey);
SwDMDocument17 swDoc = (SwDMDocument17)swDocMgr.GetDocument("C:\Filepath", SwDmDocumentType.swDmDocumentPart, false, out nRetVal);
SwDMConfigurationMgr swCfgMgr = swDoc.ConfigurationManager;
SwDMConfiguration14 swCfg = (SwDMConfiguration14)swCfgMgr.GetConfigurationByName("Config Name");
String materialProperty = swCfg.GetCustomProperty2("Property Name", out customInfoType);

2
尝试阅读材料属性的方法:
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
PartDoc swPart = (PartDoc)swModel;
double[] propertyValues = swPart.MaterialPropertyValues;

根据SOLIDWORKS文档
材料数值包括颜色(R、G、B值)、反射率(环境、漫反射、镜面反射、光泽度)、透明度和发射度。
参数或返回值的格式是一个双精度数组,如下所示: [ R,G,B,Ambient,Diffuse,Specular,Shininess,Transparency,Emission ]
所有元素必须在0到1的范围内。

这个 DLL 在电脑上没有安装 SolidWorks 的情况下能否正常工作? - Desutoroiya
它需要SOLIDWORKS才能运行。除非您将自定义材料信息存储在自定义属性中(可以通过文档管理器API访问),否则您将无法在未安装SOLIDWORKS的情况下访问该信息。 - AndrewK
那么,这对我不起作用。就像我说的,我没有在我的系统上安装Solidworks,已经阅读了我的问题中的自定义属性。 - Desutoroiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接