AnsweredAssumed Answered

remove floor shades

Question asked by maurizio bearzatto on Dec 3, 2016

I'm trying develop a macro that runs renders and saves them automattically. The parts/files (with path) are listed in, and extracted from an excel file, then opened etc.

This works fine, but now i would like to remove the floor shades (and floor reflections) preferably within the vba code. I tried to record a macro, while turning off the floor shades in a random solid works file... but solidworks unforunately doesn't record this particular part.

Does any one has a sollution for this?

Turning of shadows by default could be an alternative, bottom line i want to render a few 100 files but don't want to turn of the floor shadows manually for each single part.

I'll past my current code below. (Which works fine by the way... except it doesn't removes the floor shades/reflections). Perhaps it can be usefull by finding a sollution or in case someone else wants to use parts of my code.

 

Thanks in advance,

 

Sub main()

Dim swApp As Object

 

Dim Part As Object

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Dim status As Boolean

Set swApp = Application.SldWorks

Dim i As String

Dim j As String

Dim y As Integer

Dim z As String

Dim n As Integer

Dim m As Integer

Dim swModel As SldWorks.ModelDoc2

Dim swRayTraceRenderer As SldWorks.RayTraceRenderer

Dim swRayTraceRenderOptions As SldWorks.RayTraceRendererOptions

Dim errors As Long

Dim warnings As Long

Dim filePath As String

'Dim xlApp As Object, xlWB As Object

'Set xlApp = CreateObject("Excel.Application")

 

 

'i = file name

'j = file extention

 

 

'i = "bp01p0006" example

'j = "simbeton - Solidworks\bp - betonplaten\bp01 - simvlak\" example

 

'Set xlWB = xlApp.Workbooks.Open(“C:\Users\Omar\Desktop\Renders Rob\Lijst.xlsx”)

 

y = 0

n = 0

 

Do While n < 5

Dim xlApp As Excel.Application

Dim xlWB As Excel.Workbook

Set xlApp = New Excel.Application

Set xlWB = xlApp.Workbooks.Open("C:\Users\Omar\Desktop\Renders Rob\Lijst.xlsx")

    If xlWB.Worksheets(1).Range("A1").offset(y, 0) = "" Then

        y = y + 1

        n = n + 1

        Else

            j = xlWB.Worksheets(1).Range("A1").offset(y, 0).Value

            i = xlWB.Worksheets(1).Range("A1").offset(y, 1).Value

            z = xlWB.Worksheets(1).Range("A1").offset(y, 2).Value

            xlWB.Worksheets(1).Range("A1").offset(y, 0) = ""

            y = y + 1

    End If

 

Set xlWB = Nothing

Set xlApp = Nothing

 

filePath = "" & j & "\" & i & ".SLDPRT"

Set swModel = swApp.OpenDoc6(filePath, swDocPART, swOpenDocOptions_Silent, "", errors, warnings)

 

Set Part = swApp.ActiveDoc

 

Set swApp = _

Application.SldWorks

 

Dim myModelView As Object

Set myModelView = Part.ActiveView

myModelView.AddPerspective

Part.ViewZoomtofit2

Part.ViewZoomtofit2

Part.ViewZoomtofit2

Part.ViewZoomtofit2

Part.ViewZoomtofit2

Part.ShowNamedView2 "*Isometric", 7

Part.ViewZoomtofit2

 

Part.ViewDisplayShaded

Dim activeModelView As Object

Set activeModelView = Part.ActiveView

activeModelView.DisplayMode = swViewDisplayMode_e.swViewDisplayMode_ShadedWithEdges

Part.ClearSelection2 True

boolstatus = Part.Extension.SketchBoxSelect("0.000000", "0.000000", "0.000000", "0.000000", "0.000000", "0.000000")

Part.ViewDisplayShaded

 

' Access PhotoView 360

Set swRayTraceRenderer = swApp.GetRayTraceRenderer(swPhotoView)

' Get and set rendering options

Set swRayTraceRenderOptions = swRayTraceRenderer.RayTraceRendererOptions

'Get current rendering values

Debug.Print "Current rendering values"

Debug.Print "  ImageHeight          = " & swRayTraceRenderOptions.ImageHeight

Debug.Print "  ImageWidth           = " & swRayTraceRenderOptions.ImageWidth

Debug.Print "  ImageFormat          = " & swRayTraceRenderOptions.ImageFormat

Debug.Print "  PreviewRenderQuality = " & swRayTraceRenderOptions.PreviewRenderQuality

Debug.Print "  FinalRenderQuality   = " & swRayTraceRenderOptions.FinalRenderQuality

Debug.Print "  BloomEnabled         = " & swRayTraceRenderOptions.BloomEnabled

Debug.Print "  BloomThreshold       = " & swRayTraceRenderOptions.BloomThreshold

Debug.Print "  BloomRadius          = " & swRayTraceRenderOptions.BloomRadius

Debug.Print "  ContourEnabled       = " & swRayTraceRenderOptions.ContourEnabled

Debug.Print "  ShadedContour        = " & swRayTraceRenderOptions.ShadedContour

Debug.Print "  ContourLineThickness = " & swRayTraceRenderOptions.ContourLineThickness

Debug.Print "  ContourLineColor     = " & swRayTraceRenderOptions.ContourLineColor

Debug.Print " "

'Change rendering values

Debug.Print "New rendering values"

swRayTraceRenderOptions.ImageHeight = 405

Debug.Print "  ImageHeight          = " & swRayTraceRenderOptions.ImageHeight

swRayTraceRenderOptions.ImageWidth = 720

Debug.Print "  ImageWidth           = " & swRayTraceRenderOptions.ImageWidth

swRayTraceRenderOptions.ImageFormat = swImageFormat_PNG

Debug.Print "  ImageFormat          = " & swRayTraceRenderOptions.ImageFormat

swRayTraceRenderOptions.PreviewRenderQuality = swRenderQuality_Better

Debug.Print "  PreviewRenderQuality = " & swRayTraceRenderOptions.PreviewRenderQuality

swRayTraceRenderOptions.FinalRenderQuality = swRenderQuality_Best

Debug.Print "  FinalRenderQuality   = " & swRayTraceRenderOptions.FinalRenderQuality

swRayTraceRenderOptions.BloomEnabled = False

Debug.Print "  BloomEnabled         = " & swRayTraceRenderOptions.BloomEnabled

swRayTraceRenderOptions.BloomThreshold = 0

Debug.Print "  BloomThreshold       = " & swRayTraceRenderOptions.BloomThreshold

swRayTraceRenderOptions.BloomRadius = 0

Debug.Print "  BloomRadius          = " & swRayTraceRenderOptions.BloomRadius

swRayTraceRenderOptions.ContourEnabled = False

Debug.Print "  ContourEnabled       = " & swRayTraceRenderOptions.ContourEnabled

swRayTraceRenderOptions.ShadedContour = False

Debug.Print "  ShadedContour        = " & swRayTraceRenderOptions.ShadedContour

swRayTraceRenderOptions.ContourLineThickness = 0

Debug.Print "  ContourLineThickness = " & swRayTraceRenderOptions.ContourLineThickness

swRayTraceRenderOptions.ContourLineColor = 255

Debug.Print "  ContourLineColor     = " & swRayTraceRenderOptions.ContourLineColor

' Display the preview window

status = swRayTraceRenderer.DisplayPreviewWindow

' Close render

status = swRayTraceRenderer.CloseRayTraceRender

' Invoke final render window

status = swRayTraceRenderer.InvokeFinalRender

' Abort final render window

status = swRayTraceRenderer.AbortFinalRender

' Render to Windows Bitmap format

status = swRayTraceRenderer.RenderToFile("C:\Users\Omar\Desktop\Renders Rob\" & i & z & ".png", 0, 0)

swRayTraceRenderOptions.FinalRenderQuality = swRenderQuality_Good

' Render to HDR format (format extension omitted)

status = swRayTraceRenderer.RenderToFile("C:\Users\Omar\Desktop\Renders Rob\" & i & z, 0, 0)

Set swRayTraceRenderOptions = Nothing

' Close render

status = swRayTraceRenderer.CloseRayTraceRender

 

swApp.QuitDoc i

 

Loop

 

End Sub

Outcomes