如何修改衍生零件

今天碰到一个客户问题,他想修改衍生零件的属性:UseColorOverridesFromSource, 该布尔值用来决定是否使用衍生源零件中的体,特征和面的颜色。他的代码是这样写的:

    Public Sub ModifyDerivedPartExample()

         Dim oDoc As PartDocument

        oDoc = _InvApplication.ActiveDocumen

         Dim oCompDef As PartComponentDefinition

        oCompDef = oDoc.ComponentDefinition

         Dim oDerivedPartComps As DerivedPartComponents

        oDerivedPartComps =oCompDef.ReferenceComponents.DerivedPartComponents

         Dim oDerivePart As DerivedPartComponent

        oDerivePart = oDerivedPartComps.Item(1)

        oDerivePart.Definition.IncludeAll()

       oDerivePart.Definition.UseColorOverridesFromSource = True

        oDoc.Rebuild()

     End Sub

编译和运行都 没有任何错误,但结果是衍生件的颜色并没有使用源零件的颜色。这是为何?
其实,这里有个小小的技巧。当需要修改衍生零件属性时,需要先创建一个临时的衍生定义DerivedPartDefinition。把该定义的属性按照希望的内容设定好,再覆盖衍生件的定义。

    Public Sub ModifyDerivedPartExample() 

        DimoDoc As PartDocument

        oDoc = _InvApplication.ActiveDocument 

        DimoCompDef As PartComponentDefinition

        oCompDef = oDoc.ComponentDefinition 

        DimoDerivedPartComps As DerivedPartComponents

        oDerivedPartComps =oCompDef.ReferenceComponents.DerivedPartComponents 

        DimoDerivePart As DerivedPartComponent

        oDerivePart = oDerivedPartComps.Item(1) 

        '定义一个临时的 DerivedPartDefinition变量

        '用旧的定义初始化。即复制一份

        DimoDerivedPartDef As DerivedPartDefinition

        oDerivedPartDef =oDerivePart.Definition 

        '对这个临时变量做你需要的修改

       oDerivedPartDef.UseColorOverridesFromSource = True 

        ' 覆盖衍生件旧的定义

        oDerivePart.Definition = oDerivedPartDef 

    End Sub

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值