【问题标题】:Getting custom materials from solidworks从 Solidworks 获取自定义材料
【发布时间】:2016-04-04 22:31:42
【问题描述】:

首先说明我的计算机上没有安装solidworks,但将文件用于项目。

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

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

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

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

【问题讨论】:

  • 我建议使用文件中的文本而不是使用它的图像
  • @Rumbles,你是什么意思?
  • 您在帖子中使用了文本文件的图像,我建议使用文本本身更好

标签: c# solidworks


【解决方案1】:

如果您没有安装 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);

【讨论】:

    【解决方案2】:

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

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

    根据SOLIDWORKS documentation

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

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

    所有元素都必须在 0 到 1 的范围内。

    【讨论】:

    • 如果计算机上没有安装solidworks,这个DLL 是否可以工作?
    • 它需要 SOLIDWORKS 才能运行。除非您将自定义材料信息存储在自定义属性中(可以通过文档管理器 api 访问),否则您将无法在未安装 SOLIDWORKS 的情况下访问该信息。
    • 那么,这对我不起作用。就像我说的我的系统上没有安装 Solidworks,并且已经像我的问题一样读出了自定义属性
    猜你喜欢
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2021-05-27
    • 2020-02-29
    相关资源
    最近更新 更多