0 Replies Latest reply on Dec 3, 2016 4:06 AM by maurizio bearzatto

    remove floor shades

    maurizio bearzatto

      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