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")