.skp to .vrscene conversion

I am trying to export .skp to .obj, .vrscene file and export camera details as well. But, my exported .vrscene file is just 11KB. And, the exported 11KB .vrscene file is not as expected when opened. I ran this script in the ruby console.

module TIG
    module Export
        def self.run(folder_path)
            # Validate folder path
            unless File.directory?(folder_path)
                puts "Error: Invalid folder path."
                return
            end

            folder_path.tr!("\\", "/")  # Normalize path
            puts "Processing SKP files in: #{folder_path}\n"

            pwd = Dir.pwd  # Store current directory
            Dir.chdir(folder_path)  # Change to target directory

            # Get all .skp files
            skp_files = Dir.entries(folder_path).select { |e| e =~ /\.skp$/ }

            if skp_files.empty?
                puts "No .skp files found in the specified folder."
                return
            end

            skp_files.each do |skp|
                obj_name = skp.gsub(/\.skp$/, ".obj")
                vrscene_name = skp.gsub(/\.skp$/, ".vrscene")

                puts "Processing: #{skp}"

                # Open the SketchUp file
                if Sketchup.open_file(skp)
                    model = Sketchup.active_model

                    # Define OBJ export settings
                    obj_options = {
                        "export_units" => "meters",
                        "triangulated_faces" => true,
                        "export_texture_maps" => true,
                        "swap_yz" => true
                    }

                    # Export OBJ file with options
                    obj_success = model.export(obj_name, obj_options)
                    puts obj_success ? "Exported: #{obj_name}" : "Failed to export #{obj_name}"

                    # Export VRScene file
                    context = VRay::Context.active
                    if context && context.renderer
                        vrscene_path = File.join(folder_path, vrscene_name)
                        begin
                            context.renderer.export(vrscene_path)
                            puts "Exported: #{vrscene_name}"
                        rescue => e
                            puts "Error exporting VRScene: #{e.message}"
                        end
                    else
                        puts "V-Ray context not found. Skipping VRScene export."
                    end
                else
                    puts "Error opening file: #{skp}"
                end
            end

            Dir.chdir(pwd)  # Restore original directory
            puts "\nExport process completed."
        end
    end
end

# Example Usage: Provide the absolute path to the folder
TIG::Export.run("C:\\Users\\kobid\Downloads\\skp files\\Pool House 2\\Pool House")

1 Like

I wrote that a loooong time ago.
So you’ll need to check the VRay API for changes.
It seems to take the SKP path as the vrscene_name…
Are there any error messages in the Ruby Console ?
Saying that the output is not as expected is not very helpful - more details please…

1 Like