C# 从solidworks获取自定义材质

C# 从solidworks获取自定义材质,c#,solidworks,C#,Solidworks,首先请注意,我的计算机上没有安装solidworks,但将这些文件用于项目 Solidworks能够为文件属性创建自定义选项卡。在此选项卡中,您可以找到有关在solidworks中制作的模型(零件)的所有信息 我读出所有这些信息并将其存储在.txt文件中,如图所示。在这些信息中,您可以找到零件的材料类型,我的问题就在这里 我知道材料类型,但是在solidworks中,用户还可以将自定义材料指定给自定义特性中定义的材料。例如,材质只是普通木材,但用户希望此木材为粉红色 是否可以读取“自定义特性”中

首先请注意,我的计算机上没有安装solidworks,但将这些文件用于项目

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

我读出所有这些信息并将其存储在
.txt
文件中,如图所示。在这些信息中,您可以找到零件的材料类型,我的问题就在这里

我知道材料类型,但是在solidworks中,用户还可以将
自定义材料
指定给自定义特性中定义的材料。例如,材质只是普通木材,但用户希望此木材为粉红色


是否可以读取“自定义特性”中附着到材料的
自定义材料

要读取材质属性,请尝试:

ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
PartDoc swPart = (PartDoc)swModel;
double[] propertyValues = swPart.MaterialPropertyValues;
根据:

材质值包括颜色(R、G、B值)、反射率(环境光、漫反射、镜面反射、光泽度)、透明度和发射

参数或返回值的格式为双精度数组,如下所示: [R、G、B、环境光、漫反射、镜面反射、光泽度、透明度、发射]


所有元素必须在0到1之间。

如果未安装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);

在计算机上未安装solidworks的情况下,此DLL是否工作?它需要运行solidworks。除非您将自定义材质信息存储在自定义属性中(可通过document manager api访问),否则在未安装SOLIDWORKS的情况下,您将无法访问该信息。因此,这对我不起作用。就像我说的,我的系统上没有安装Solidworks,并且已经读取了自定义属性,我建议使用文件中的文本,而不是使用it@Rumbles,你是什么意思?你在帖子中使用了文本文件的图像,我建议使用文本本身会更好