组件的材质发生了变化 - Component Modeling - visual compents 疑难解答

subsun 5个月前 (04-03) visual Component 203 0

组件建模

在使用 visual Components Premium 4.10 时,导入 SolidWorks 3D 文件并保存为组件后,我遇到了重新加载组件时材质被更改的问题。具体来说,大多数模型显示为相同的颜色,如图所示。





我尝试调整导入设置,例如修改曲面细分质量、包含材质、点和纹理的标记以及材质创建规则,但这些都没有解决问题。目前,我只能通过使用软件材质库为所有组件手动重新分配材质来临时解决。然而,对于一个完整的生产线或车间项目,这种方法工作量巨大、极其耗时且容易遗漏。未重新定义材质的特征在重新打开时会显示为红色、紫色、黄色等,与整个场景的配色方案严重冲突。请问有人对此问题有可行的解决方案吗?

你的材质名称中是否包含英文字符以外的字符?

@idkfa 如果 SW 中的组件使用英语以外的语言,导入并保存到 VC 后再次打开,材质会丢失吗?

是的,尝试将材质名称重命名为英文,应该可以解决问题。

@idkfa 我觉得如果是一个大项目,更改材质名称应该是一个非常繁重的工作量。我们能优化这个问题吗?我经常遇到这个问题。

我尝试提取其中一个设备并保存为组件。然后,我将所有中文内容(如组件名称和特征)更改为英文或数字,并另存为一个新组件。清空布局后分别加载这两个组件,我发现两者都出现了颜色变化。因此,颜色变化可能与字符无关。

你的操作系统是否加密?

文件未加密。我把其中一个设备放在这里,图片显示的是该设备的原始材质。



GLOBAL PLUS 10.12.08-玻璃房-1.vcmx(1.5 MB)

重命名材质名称,而不是组件名称。

首次导入 CAD 文件时运行此脚本。

from vcScript import *
import string
import random

app = getApplication()
ALLOWED_CHARS = string.printable[:-5]

def only_english_keyboard_chars(s):    
  return all(c in ALLOWED_CHARS for c in s)

def short_id(length=8):
  chars = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"
  return ''.join(random.choice(chars) for _ in range(length))

for material in app.Materials:
  if not only_english_keyboard_chars(material.Name):
    old_material_name = material.Name
    material.Name = "Material_%s" % short_id(8)
    print "%s -> %s" % (old_material_name, material.Name)



1 个赞

太棒了,困扰我很久的问题终于解决了。非常感谢您的帮助!

1 个赞
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

网友评论

  • (*)

最新评论

用户管理

您好,欢迎到访网站!
    用户注册

您是本站第1656646名访客 今日有0篇新文章/评论