Move/Copy command

This is an old, old chestnut. Bear with.

Some people (like me) have been known to ask: why, oh why, does SU not have a dedicated Copy command like pretty much every other CAD system? And then some chip in to observe that the SU way, involving a modifier key is absolutely fine, muscle memory, etc.

My argument is that something you do over and over again in a single session should be made as easy as it can possibly be and that even an extra key press is significant when multiplied up.

So I asked AI to ride to the rescue and it came up with this:

CAD_Copy_1.0.0.rbz (30.8 KB)

I have only just started using it. I assigned it to a keystroke (one only!). It seems to work but I would be interested to know if anyone else who might find it useful comes across any glitches.

This may be Mac only at present.

Can you explain the exact steps you have to use with your extension to copy and then paste an entity?

You added “mac” as a keyword. Does this only work on Macs?

Hi Dave.

So you install in the usual way. Then the command appears in the Extensions Menu. You can invoke it from there. If you assign a keyboard key to it, you can invoke it that way.

I only have a Mac, so yes, it was designed for Mac. I daresay that I could ask AI to create one for PC too.

Once you have ity installed, you can either invoke the tool and then select an object or do it the other way around. And the modifier key for repeat copies works if you hit it once you see the plus sign.

So you invoke the command and then what?

You could put that in the first post so others know.

I was intrigued to see what it does but alas:

Can you explain briefly what it does?

It’s very simple. It conflates the Move Command with the modifier key required to turn it into a Copy Command. Otherwise it works (or should) exactly as it does when you use the two keystrokes required natively in SU.

I imagine anyone with AI could turn it into a PC version. I won’t bother because I don’t have a PC to test it on.

You’ve still not explained it clearly.

What two keystrokes? Once you’ve copied and entity, then what?

Could you post a video of it working. I’m genuinely intrigued to know what it does because I have never understood the various requests for a copy command when one already exists?

First thing to say is that I have already found some instability in the posted version so I had to go back to the drawingboard (as it were). The new version is here but I will admit straight away that I haven’t road tested it long enough to be confident about it. But then, that is part of the reason for posting it here and seeing if others have problems.

CAD_Copy_Minimal_v0_1_0.rbz (2.0 KB)

I will also upload a screen grab of it in action.

I have assigned a key to the tool but show it here using the menu selection.

If you want to make multiple copies, you have to hit Option twice.

@kevin58 Unless it is different on a PC, on a Mac, if I want to copy something, I have to use the Move tool and apply a modifier to turn it into a Copy tool. So if you are using shortcuts, you hit M (say), then Option, ie. two keystrokes. You cannot map a shortcut to that combination. Hence the attraction (to me) of a dedicated key to do the job. The SU way is fine for a lot of people, so I am not trying to convert anyone!

With the native move tool if you select an object, then type M to begin the move, then you type CTRL it will start the copy, and if you type CTRL twice you get stamp. Is this what you are trying to achieve with your tool. So it eliminates the typing M and the CTRL twice? It starts off in stamp mode?

No.

You have what I identify as the problem in a nutshell right there: “type M to begin the move, then you type CTRL it will start the copy”. In other words, two key strikes.

In CAD systems that have separate Move and Copy commands (most I imagine), you can map a shortcut to each. SU prevents you from doing that because Copy is a species of Move. Maybe it was easier to program it that way.

So until today, I had the Move command mapped to W on my keyboard (because it is easier to invoke quickly with my left hand than M when my right is on the mouse), then I had to hit Option (Ctrl in PC lingo). Now I have the new tool mapped to F1, still convenient to my left hand. I only have to strike Option if I want multiple copies (which I can live with).

can you still use x10, x24, /5 etc?

Good spot! No.

How about no keyboard shortcuts and the option to precisely place the copy?
copy

The thing that makes this Mac-only is its use of the cliclick executable, which is a utiility to simulate the user pressing keys or clicking buttons. I haven’t studied the rest of the code, but from this I deduce that it is almost certainly just generating the same sequence of keystrokes prior posts have noted that you could use. So yes, perhaps a timesaver for you, but nothing fundamental going on.

This thread has been useful as it has exposed the difficulties inherent in achieving what I wanted. When I put the defects to ChatGPT, this is what it suggested I wrote here:

One-key shortcut for native Move+Copy on macOS

I’m trying to create a very small Ruby extension for SketchUp (currently 2026 on macOS) whose only purpose is to replace the normal sequence:

Move tool → hold Option

with a single keyboard shortcut.

The intention is not to replace SketchUp’s Move tool or write a custom copy tool. I want to hand off to the native Move tool as quickly as possible and retain all native behaviour afterwards.

My ideal workflow is:

  1. Select any geometry (raw edges/faces, groups, components, mixed selections, etc.).

  2. Press my shortcut (e.g. F1).

  3. SketchUp enters the native Move tool already in Copy mode.

  4. Everything else behaves exactly as if I had manually pressed Option:

    • raw geometry works,

    • Groups and Components work,

    • inference is unchanged,

    • x5, x24, /7, etc. continue to work,

    • subsequent Option presses behave normally.

What I’ve tried

Using:

Sketchup.send_action("selectMoveTool:")

works, but only activates the native Move tool. It doesn’t enter Copy mode.

I also experimented with a macOS helper (cliclick) to simulate the Option key immediately after activating Move. It appeared to work initially but proved unstable, occasionally causing SketchUp to beachball, so I’ve abandoned that approach.

As an alternative, I wrote a Ruby command that duplicates the selected entities first and then invokes the native Move tool. That is stable, but it isn’t a true replacement because:

  • it originally only handled Groups/Components,

  • the Move tool no longer knows it’s in native Copy mode,

  • therefore native array commands (xN and /N) are lost.

My question

Is there any supported API (or other reliable mechanism) to activate the native Move tool already in Copy mode, without simulating keyboard input?

If not, is it fair to conclude that this simply isn’t possible with the current SketchUp API?

I realise Sketchup.send_action is now deprecated, so if there is a newer supported mechanism for activating native tools generally, I’d also be interested to know that.

IIRC I believe in the other thread on this topic that went round and round - no, you don’t have access to that.

I glad you are trying to make tools that fit your particular workflow, but you could just tell AI what you want and get rid of all shortcuts:

Of course you’ll have to type and argue to hopefully get what you want.

Having used Macs forever in design, plublishing, photo work and modeling I guess I always was used to the modifiers…

Ah, so its the M and single CTRL (Opt) click in a single step. Gotcha. You might add the Stamp feature as another command that can be assigned to a shortcut. Then you have both options: single or multi copy :slight_smile: