Copy/paste wish


My issue is the following:
I wish to copy paste an object from a file to another or from layout to model space.
At this point, the pasted object will be placed at the same location as it is in the other file (unknown yet to me when it is from layout to model space).
Question/wish - is it possible to have the option of choosing the displacement for the object? I am referring to have the object “sticked” to the mouse pointer.
It is very useful to copy/paste in the same location.
But it is also useful (in many cases) when copy/paste to have the selection (the object) right next to the mouse pointer. Thus I can place the copied object wherever I want, without searching it through the model.

I am asking this because I have very big drawings or models. When I am copying something from a different file, or from layout to the model space, I always have to make zoom/select then make a move command, then zoom/extend and then zoom to where I want to place it.

Can you please implement this in the future version? (I do not know if it is something already in the v5… )

Thank you,


The standard reply to this wish is to make a paste&move macro. You might want to throw in a zoom extend (or selected) and zoom previous around the move-from prompt.

Thanks for the reply,

I already made that, but I do not know how to make the objects to be selected automatically, without clicking the mouse.
At this moment, the macro is pasting and zooming, but I still have to click the mouse to select an insertion point. I need to pass this, so the selection is made without actual clicking…

I do not know if you understand :smiley:

Ok. In that case you need a script that gets the bounding box of the objects, picks one of them and uses that as the move-from point.

I do not know how to do these things. I am an engineer not a programmer.
If I knew how to do the programming, I’d probably would not write down here…

Thank you :slight_smile:

This is not logical. To move an object precisely in 3D space, you need a “from” point and a “to” point. Otherwise your move is still going to be arbitrary.


Yup. That is why I like the idea of wim:
I have the objects selected. It should be something that will make a bounding box and pick the centroid of it.

I think a command that allows you to pick both the copy from point on the object and the insertion point for the paste would be more useful, as the object’s bounding box center is not always a useful reference. --Mitch

Perhaps what you are looking to add to your makro after the paste is just a
_Zoom _Selected
Move 0,0,0 Pause
? Asuming the pasted parts are near origin…Michael VS

yes, that is an option too, but I have objects that are spread all over the modeling space.

thank you

well… that can be something useful :slight_smile:

What I have so far in Macro is this:

'_Paste _enter _zoom _s enter _move _select _pause _zoom _e

I have to pick the object / group of objects.
When you paste the objects, you will see that they are still selected.

it’s very simple
2 script are necesaire

**First script**

Option Explicit
'Script written by  xiaoyazi
'Script copyrighted by  SMC2 
'Script version mercredi 26 septembre 2012 18:36:48
'copier des objects avec l'origine
Call Main()

Sub Main()
    Dim objects,point,Shell,pt2
    objects = Rhino.SelectedObjects' si il n'y as pas d'objecs dasn la selection,
    If  isnull(objects) Then
        objects = rhino.GetObjects("selectionner les objects à copier")
        If isnull(objects) Then
            Exit Sub
        End If
    End If
    point = rhino.GetPoint("selectionner le point d'origine")
    If isnull(point) Then
        Exit Sub
    End If
    rhino.EnableRedraw False
    rhino.SelectObjects objects
    rhino.EnableRedraw True
    Set Shell = CreateObject("WScript.Shell") 
    Shell.RegWrite "HKEY_CURRENT_USER\Software\x", point(0), "REG_SZ" 
    Shell.RegWrite "HKEY_CURRENT_USER\Software\y", point(1), "REG_SZ" 
    Shell.RegWrite "HKEY_CURRENT_USER\Software\z", point(2), "REG_SZ" 
End Sub

**Second script**

Option Explicit
'Script written by xiaoyazi
'Script copyrighted by  SMC2
'Script version jeudi 27 septembre 2012 13:34:08

Call Main()
Sub Main()
    Dim Shell, x,y,z,objects,point,verif,a ,x2,y2,z2
    Set Shell = CreateObject("WScript.Shell") 
    x = Shell.RegRead("HKEY_CURRENT_USER\Software\x")
    y = Shell.RegRead("HKEY_CURRENT_USER\Software\y")
    z = Shell.RegRead("HKEY_CURRENT_USER\Software\z")
    'Exit Sub
    point = rhino.GetPoint("selectionner le point d'insertion")
    If isnull(point) Then
        Exit Sub
    End If
    x2 = split(x, ",")
    If ubound(x2) > 0 Then
        x = x2(0) + "." + x2(1)
        x = x2(0)
    End If
    y2 = split(y, ",")
    If ubound(y2) > 0 Then
        y = y2(0) + "." + y2(1)
        y = y2(0)
    End If
    z2 = split(z, ",")
    If ubound(z2) > 0 Then
        z = z2(0) + "." + z2(1)
        z = z2(0)
    End If
    rhino.enableredraw False
    rhino.Command " '_Paste"
    objects = Rhino.SelectedObjects
    verif = rhino.MoveObjects(objects, array(x, y, z), point)
    rhino.enableredraw True
End Sub

best regards

Hi there!
What about this… is there a command that copies to clipboard, and then pastes in the middle of the viewport, whichever one you’re in?

(Similar to a command in Adobe CS.)

No, copy uses the objects coordinate position and keeps it when pasting.