2016-03-23 131 views
12

第一条注意事项我没有在我的计算机上安装solidworks,但使用这些文件作为项目。从solidworks获取定制材料

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

我读出所有这些信息,并将其存储在.txt文件中查看图片。在此信息中,您可以找到零件的材料类型,其中出现问题的位置。enter image description here

我知道材料类型,但在solidworks中,用户也可以将custom materials分配给定制属性中定义的材料。例如,材料只是普通的木材,但用户希望这种木材是粉红色的。

是否可以读出附加到自定义属性中材料的custom materials

+2

我会建议使用文件中的文本而不是使用它的图像 – Rumbles

+0

@Rumbles,你是什么意思? – Desutoroiya

+0

你已经在你的文章中使用了一个文本文件的图像,我建议使用文本本身更好 – Rumbles

回答

2

要阅读的材料性质尝试:

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

根据SOLIDWORKS documentation

的材料的值包括色彩(R,G,B值),反射率(环境,漫反射,镜面反射,反光),透明度和排放。

参数的格式或返回值是double数组如下: [R,G,B,环境,漫反射,镜面,反光度,透明度,发射]

所有元素必须在范围0到1

+0

这个DLL没有在计算机上安装SolidWorks时是否工作? – Desutoroiya

+0

它需要SOLIDWORKS运行。除非您将自定义材料信息存储在自定义属性中(可以通过文档管理器API访问),否则未安装SOLIDWORKS就无法访问该信息。 – AndrewK

+0

然后,这不适合我。就像我说过的,我的系统中没有安装Solidworks,并且已经在我的问题中得到了自定义属性 – Desutoroiya

2

如果您没有安装SOLIDWORKS,则可以使用document manager(需要激活的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);