• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    Autodesk Inventor Customization

    Reply
    Member
    rrdeveloper
    Posts: 5
    Registered: ‎07-13-2011
    Accepted Solution

    Turn off Translucent using VBA

    293 Views, 4 Replies
    11-10-2011 08:36 PM

    Hi All,

    I'm trying to make a translucent part file to a opaque part file by using the below code

        Dim oDocument As Document
        Set oDocument = ThisApplication.ActiveDocument
        oDocument.ActiveRenderStyle.Opacity = 1    'making the body opaque

     

    But it doesnot help.Can someone please let me know how to do it through code.

     

    PS: attached is the process of doing it manually

     

    Thank You

    Please use plain text.
    Valued Mentor
    Posts: 422
    Registered: ‎06-14-2005

    Re: Turn off Translucent using VBA

    11-12-2011 07:19 AM in reply to: rrdeveloper

    Like this?

     

    Public Sub TranslucentTest()
        Dim app As Inventor.Application
        Set app = ThisApplication
        Dim partDoc As PartDocument
        Set partDoc = app.ActiveDocument
        Dim oWorkSurface As WorkSurface
        Set oWorkSurface = partDoc.ComponentDefinition.WorkSurfaces.Item(1)
        oWorkSurface.Translucent = False
       
    End Sub

     

    -------------------------------------------------------------------------
    Inventor Professional 2012 SP1 (25 seats with subscription)
    Windows 7 64 bit
    Lenovo D20, 12 GB RAM, Intel Xeon X5687 3.6 GHz, SSD
    Quadro 4000, driver 8.17.12.9573, dual monitors
    SpacePilot, driver version 6.15.3 Firmware 3.12
    Please use plain text.
    Member
    rrdeveloper
    Posts: 5
    Registered: ‎07-13-2011

    Re: Turn off Translucent using VBA

    11-13-2011 07:40 PM in reply to: JohanLarsson

    Thank You.

    I works as expected :womanvery-happy:

    Please use plain text.
    Active Member
    Posts: 7
    Registered: ‎10-07-2008

    Re: Turn off Translucent using VBA

    03-14-2012 07:40 AM in reply to: JohanLarsson

    This works for part docs only, is there any way we can improve upon this to change all part surfaces in an assembly file instead of opening each part that has a surface individually?

    Please use plain text.
    Member
    rrdeveloper
    Posts: 5
    Registered: ‎07-13-2011

    Re: Turn off Translucent using VBA

    03-14-2012 08:47 PM in reply to: jalexander

    Public Sub TranslucentTest()
          Dim app As Inventor.Application
          Set app = ThisApplication
            Dim oModel As AssemblyDocument
            Set oModel = ThisApplication.ActiveDocument '.iam file
            'or open the assembly file as below
            'Set oModel = ThisApplication.Documents.Open("D:\TestAssm.iam", False)
           'then identify each part in the assembly & set the surface to opaque
          Dim partDoc As PartDocument
          For i = 1 To oModel.ComponentDefinition.Occurrences.Count
           Set partDoc = oModel.ComponentDefinition.Occurrences.Item(i).Definition.Document
            Dim oWorkSurface As WorkSurface
            Set oWorkSurface = partDoc.ComponentDefinition.WorkSurfaces.Item(1)
            oWorkSurface.Translucent = False
           Next
      
    End Sub

     

    ////////////////

    The above code identifies each part in the assembly & changes its surface

    Hope this helps

    Please use plain text.