Hide Table of Contents

Remove Textures from Assembly Components Example (VBA)

This example shows how to remove all textures from all components in an assembly.

'-------------------------------------------------
' Preconditions:
' 1. Open an assembly with one or more components
'    with textures applied to them at the component (part)
'    level.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Removes all textures applied to all components.
' 2. Examine the Immediate window.
' 3. Click the graphics area and examine the assembly.
'--------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Function RemoveTexture(swDoc As SldWorks.ModelDoc2, configName As String) As Boolean
    Dim swDocExt As SldWorks.ModelDocExtension
    Dim swTexture As SldWorks.Texture
    Set swDocExt = swDoc.Extension
    Set swTexture = swDocExt.GetTexture(configName)
    If Not swTexture Is Nothing Then
        Debug.Print "   Texture removed: " & swTexture.MaterialName
        RemoveTexture = swDocExt.RemoveTexture2(configName)
        swDoc.SetSaveFlag
    End If
End Function
Function TraverseComponents(parentComp As SldWorks.Component2)
    Dim vChildComponents As Variant
    Dim vObj As Variant
    Dim childComp As SldWorks.Component2
    Dim childDoc As SldWorks.ModelDoc2
    Dim childConfigName As String
    vChildComponents = parentComp.GetChildren
    For Each vObj In vChildComponents
        Set childComp = vObj
        Set childDoc = childComp.GetModelDoc
        childConfigName = childComp.ReferencedConfiguration
        Debug.Print "Component name: " & childComp.Name2
        Debug.Print "  Configuration name: " & childConfigName
        boolstatus = RemoveTexture(childDoc, childConfigName)
        Call TraverseComponents(childComp)
    Next vObj
End Function
Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    Dim rootDoc As SldWorks.ModelDoc2
    Dim rootConfig As SldWorks.Configuration
    Dim rootComp As SldWorks.Component2
    Dim configMgr As SldWorks.ConfigurationManager    
    Set rootDoc = swApp.ActiveDoc
    Set configMgr = Part.ConfigurationManager
    Set rootConfig = configMgr.ActiveConfiguration
    Set rootComp = rootConfig.GetRootComponent3(True)    
    Call TraverseComponents(rootComp)
End Sub


Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Remove Textures from Assembly Components Example (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2019 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.