Получение нестандартных материалов из Solidworks
Первое замечание: на моем компьютере не установлена SolidWorks, но я использую файлы для проекта.
Solidworks имеет возможность сделать пользовательскую вкладку для свойств файла. На этой вкладке вы можете найти все виды информации о модели (детали), выполненной в SolidWorks.
Я прочитал всю эту информацию и храню ее в .txt
Файл см. изображение. В этой информации вы можете найти тип материала той части, в которой возникает мой вопрос.
Я знаю тип материала, однако в SolidWorks пользователь также может назначить custom materials
к материалу, который определен в пользовательских свойствах. Например, материал - это обычное дерево, но пользователь хочет, чтобы оно было розовым.
Можно ли зачитать custom materials
которые прикреплены к материалу в пользовательских свойствах?
2 ответа
Если у вас не установлен 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);
Чтобы прочитать свойства материала, попробуйте:
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
PartDoc swPart = (PartDoc)swModel;
double[] propertyValues = swPart.MaterialPropertyValues;
Согласно документации SOLIDWORKS:
Материальные значения включают цвет (значения R,G,B), отражательную способность (окружающее, рассеянное, зеркальное, блеск), прозрачность и излучение.
Формат параметров или возвращаемых значений представляет собой массив значений типа double: [ R, G, B, Ambient, Diffuse, Specular, Shininess, Transparency, Emission ]
Все элементы должны быть в диапазоне от 0 до 1.