Incredibly Slow Saving and Copy Paste Files

Hello All, been a while.

I am having an issue with a work computer. It takes immense amounts of time to copy and paste objects within the window, upwards of 15 minutes in some instances. Is there any way to resolve this? I have the drivers optimized and am running a Quadro, which makes me think this isnt a hardware issue. Do you know of any tactics or strategies to alleviate this sort of pipeline? Yes the file is big, but its not THAT big, its 227 MB. Do you this this could be resolved by clearing the clipboard?

Thanks

What version of Rhino are you running?

I am running Rhino 7

The CopyToClipboard and Paste commands are file I/O operations. The video card you have will has no impact on this.

When you CopyToClipboard, Rhino writes a temporary .3dm file that contains the objects you selected, to disk. The Paste command essentially imports this temporary file. Thus, what you select (objects with materials, textures, other extra data) and how many you select will dictate how fast or slow the operations perform.

For fun, launch Rhino and make a new file. Create something, a circle for example, and CopyToClipboard and Paste. Is is slow?

If the speed of CopyToClipboard and Paste are a hinder, consider using the plain old Copy command.

Hope this helps.

– Dale

try comand PURGE. unused materials or legacy materials might be problem.

Killed my File 30minutes lost, don’t try this trick without saving :face_with_peeking_eye:

CopyToClipboard continues to be extremely slow (sometimes like 5min for a simple circle) in large files with lots of materials mapped.

Second this

@dale

”If the speed of CopyToClipboard and Paste are a hinder, consider using the plain old Copy command”

often we use it to copy between files.

Its much faster to export to a file, and then import it into another file, but this means several commands and an annoying workflow.

Its faster to export, but means more dialogue boxes etc., so feels like it would take longer.

Yes, this is common.

Can you provide a file we can test with? If so, please indicate what object(s) should be copied and pasted.

Thanks,

– Dale

@dale

Just try to use any file with lots of materials mapped.

Also try to have some of the materials texture file saved on a server.

You will get the same problem as we all do.

Thanks for the response Dale, and all who participated here. I did some testing of my own, and the conclusion is, it seems to be an issue with the OS (Windows in my case) than with the hardware, or Rhino.

I ran a complex Rhino file in Rhino SR22 (updated to the same versions as of today) off two similar computers running Win11, and also tested if working off a cloud drive was the issue. Oddly enough the computer which had higher specs (RTX4080 versus a RTX4070, faster SSD) took about 20 times as long to make the CopyToClipboard command (62 seconds versus 3 seconds). There was no perceivable difference between using the file in a local drive versus a cloud drive.

The higher spec computer was previously used in the same session for other work that involved Revit, V-Ray, Lumion, etc - so I restarted it and ran the test again. This time it took 3 seconds to run the CopyToClipboard command off the same test file.

Not entirely sure what happened here.

Hi @dale

Yes it happens on any file, is easily reproducible, we understand it is an issue to do with materials, for example copying this simple curve takes 20 seconds:

So it could be handy to have a setting in copy and paste, in advanced options where we can exclude items, this could then be assigned a shortcut, or hotkey macro, so for example:

ctrl+c = copy only geometry (no materials)

ctrl+shift+c = copy with geometry with materials

only other point here is that i will be handy to copy everything except materials, line styles etc.

I can only repeat the following…

-wim

Hi @wim

I wrote a workaround, its not ideal, but for small objects such as curves it runs instantly:

mapped each one to ctrl+c, ctrl+x, ctrl+v

ctrl+c / copy = export.py:

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino

export_path = r"C:\Users\******\Desktop\temp\temp_export.3dm"

def export_selected():
ids = rs.GetObjects(“Select objects to export”, preselect=True)
if not ids:
print(“Nothing selected.”)
return

# Select only those objects
rs.UnselectAllObjects()
rs.SelectObjects(ids)

# Use Rhino's Export command
result = rs.Command('_-Export "{}" _Enter'.format(export_path), False)

if result:
    print("Exported {} object(s) to: {}".format(len(ids), export_path))
else:
    print("Export failed.")

export_selected()

ctrl+x / cut - export_cut.py

import rhinoscriptsyntax as rs

export_path = r"C:\Users\******\Desktop\temp\temp_export.3dm"

def export_and_delete():
ids = rs.GetObjects(“Select objects to export”, preselect=True)
if not ids:
print(“Nothing selected.”)
return

rs.UnselectAllObjects()
rs.SelectObjects(ids)

result = rs.Command('_-Export "{}" _Enter'.format(export_path), False)

if result:
    print("Exported {} object(s) to: {}".format(len(ids), export_path))
    rs.DeleteObjects(ids)
    print("Deleted original objects.")
else:
    print("Export failed. Objects not deleted.")

export_and_delete()

ctrl+v / paste = import.py:

import rhinoscriptsyntax as rs

import_path = r"C:\Users\******\Desktop\temp\temp_export.3dm"

def import_geometry():
result = rs.Command(‘_-Import “{}” _Enter’.format(import_path), False)

if result:
    print("Imported from: {}".format(import_path))
else:
    print("Import failed.")

import_geometry()