蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

Inventor插件之装配体零部件随机颜色

看到一个可以在Inventor装配体上随机颜色的一段ilogic代码,代码付在文末。

这个想法应该是从Solidworks那边来的。Inventor默认的颜色确实也是单调了点。随机颜色,装配体瞬间花花绿绿的,也是好看了些。大致看了一下实现的ilogic/vba代码,ilogic是阉割版的VBA,VBA是阉割版的VB,而VB已经过时,那么就用相对现代的Vb.NET(其实VB.net也是土的)来重写吧。写完测试运行了一下,还行。不过发现了一些问题:

1、在装配体中如果有被压缩的子件或者装配体有未解析的零部件,比如少螺栓或者文件丢失之类。这种情况,代码会报错。

2、另外,这个随机颜色对每一个 ComponentOccurrence都进行改色,这点不合理,正常应该相同的 ComponentOccurrence赋相同的颜色。

3、有时候用户会重复点这个随机颜色,因为每次运行都会不停的创建新的颜色,而装配体又包含很多子件,所以用户点一次就会生成子件数量的外观,不停的增加,污染文档。

uAppearance = topAsm.Assets.Add(kAssetTypeAppearance, "Generic", "appearances")

4、当然有时候,花花绿绿的看厌倦了,想返璞归真回到Inventor默认色,一个一个子件清除替代色是要命的。

所以根据以上缺点,我重写这个随机颜色的功能,点击随机颜色按钮时,跳过被抑制和未被解析的零部件。相同的零部件会有相同的颜色。并且每次点击随机颜色的时候会删除之前创建过的颜色。减少对文档的污染。

另外增加了一个恢复默认颜色的按钮。一键回到过去。

如果你对这个插件感兴趣,有需求,可以到LnvTools下载

附:剽窃来的ilogic/vba代码,供参考,不建议使用这个有缺陷的代码。

Sub Main()
    Dim topAsm As AssemblyDocument
    topAsm = ThisApplication.ActiveDocument
    
    Dim trans As Transaction
    trans = ThisApplication.TransactionManager.StartTransaction(topAsm, "随机色")
    
    Dim ucRep As DesignViewRepresentation
    
    On Error GoTo CreateDV
    ucRep = topAsm.ComponentDefinition.RepresentationsManager.DesignViewRepresentations("随机色")
    On Error GoTo 0
    
    ucRep.Activate
	
    Dim compOcc As ComponentOccurrence
    For Each compOcc In topAsm.ComponentDefinition.Occurrences
        Dim uAppearance As Asset
        uAppearance = topAsm.Assets.Add(kAssetTypeAppearance, "Generic", "appearances")
		        
        Dim uColor As ColorAssetValue
        uColor = uAppearance.Item("generic_diffuse")
		RNG = Round(Rnd * 255)
		RNG1 = Round(Rnd * 255)
		RNG2 = Round(Rnd * 255)

        uColor.Value = ThisApplication.TransientObjects.CreateColor(RNG, RNG1, RNG2)
        
        compOcc.Appearance = uAppearance
    Next
    
    trans.End
    Exit Sub
    
CreateDV:
    ucRep = topAsm.ComponentDefinition.RepresentationsManager.DesignViewRepresentations.Add("随机色")
    Resume Next
End Sub
赞(0) 打赏
未经允许不得转载:酷居科技 » Inventor插件之装配体零部件随机颜色

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏