Wish: Copy/Move to a target CPlane

I there a way to be able to either copy or move selected object(s) from the active CPlane to another saved Cplane, or from a reference planar surface to a target planar surface, while keeping the orientation of the copied object(s) relative to the coordinates of both CPlanes or planar surfaces? Here is a picture that shows how I imagine the way it could work:

Currently, that operation requires to use the ! _Orient3Pt couple of times (6 mouse clicks total), along with changing two CPlanes (adding a few more clicks); or snapping from 3 reference points to 3 target points (6 mouse clicks), which usually requires several extra mouse clicks to navigate the camera in case that the reference and target positions are located too far away or are located in a too populated area with plenty of other parts that make the snapping difficult to use and eventually force the use of Isolate on top of all mouse clicks so far. This all could be simplified by using a dedicated command with an automated process of orienting the copied object based on the XYZ coordinates of both CPlanes or the UV coordinates of the planar surfaces. This way, multiple objects could be easily copied (or moved) to another position with a couple of mouse clicks.

Note: Copying to another saved CPlane should keep the current CPlane active. The target CPlane is only used to orient the copied object to its coordinates.

An alternative to this command could be a command called “Paste to CPlane”. Example. If an object is being copied in the clipboard, then another CPlane is being set as current, the “Paste to CPlane” command should place the copied object relative to the current CPlane’s orientation instead of the World coordinates.
Another way to do that is by running the “Paste to CPlane” command, then the Command line will show an option called “Saved CPlane” so that upon clicking it the “Named CPlanes” pop-up window will appear to pick a target CPlane WITHOUT switching to it. As already mentioned above, the target CPlane is only used to set the orientation of the copied object, but the active CPlane should remain unchanged to avoid any accidental mistakes with the modeling process afterwards.

It would be even better if History could be implemented so that any subsequent change of orientation of the target CPlane or target planar surface will also affect the orientation of the copied object.



I believe that RemapCPlane command solved this problem

I tried that, but it’s extremely user-unfriendly to use. For example, the Command line prompt “Name of CPlane to map to” asks me to write the exact name of the target saved CPlane, which is both, slow and hard to remember.
Also, when I try to write the CPlane’s name that consists a space between words or the number, the “RemapCPlane” command cancels after pressing the Space key. For example, I have a CPlane named “Door hinge base”, however, once I write “Door” in the Command line and then press the space key, I’m unable to write the second word “hinge”. Instead, it returns the following error message: “Door does not exist.”.

If I run the “RemapCPlane” command and click on the “CPlane” option in the Command line, nothing happens. I can’t evoke the “Named CPlanes” pop-up window upon clicking there. Something is wrong. It forces me to open the “Named Cplanes” window preliminary, then select the object and then run the “RemapCPlane” command. :slight_smile:
It would be much, much better if the “CPlane” option actually showed the “Named CPlanes” window and/or the tiny planes that appear with the _-NamedCPlane _Visible _Visible _Toggle _Enter _Enter command.

“RemapCPlane” only works nicely in cases where the intent is to orient an object from one view to another view, but it’s difficult to use directly in the Perspective viewport with saved CPlanes. It also requires the user to minimize the window, which further makes the process slow and complicated. :slight_smile:


Is there some progress to implement this extremely important function in Rhino 7? :slight_smile: Thanks!

As a general rule, when having to write texts containig spaces in Rhino’s command area, we must wrap that text between double quotes.
I hope this also work for RemapCPlane … :slight_smile:


( I asked for coordinate system objects in Rhino (objects belonging to a layer that you can click, hide, show, delete etc. ) more than 20 years ago, when I started using Rhino. )

I wouldn’t hold my breath for that … :wink:

“RemapCPlane” does not work properly. When I run it, the Command prompts says “Click on CPlane to map to” and it will not let me click on any CPlane. Also, there are two options (“Copy”, “CPlane” and “View”) and when I click on the “CPlane” one, it asks me to write the exact name of the CPlane, which is extremely annoying and slow. Not to mention that one misspelled letter simply removes those option from the Command line and starts to ask me to click on a CPlane (which, as I said above, is impossible). In my opinion, the “Click on CPlane to map to” prompt should activate showing of all the XYZ gizmos of the saved CPlanes in a similar fashion as the _-NamedCplane _Select command does. :slight_smile:

A proper way to benefit from such an important tool is to let the user choose a CPlane from a list (just like the one of the “Named CPlane” panel) upon clicking on the “Cplane” option or add another option called “CPlane list”.
Also, while the “Named CPlane” panel supports some basic RMB functionality (“Restore CPlane”, “Rename named CPlane” etc), it lacks a “Remap CPlane” option that would make it so much easier to orient (and optionally copy) the selected objects to the desired CPlane. Not to mention that this could be a powerful tool to quickly orient copies of the selected object on multiple other custom saved CPlanes via right-clicking on each one of them directly in the list of the “Named CPlane” panel. :wink:

Here is an example:

Dear Bobi - i agree that _remapCplane does not have the best interface.
I use it a lot.
please notice, that if you use the “cplane”-option, next dialog asks “Name of Cplane to map To”
for this option, you don t need to type the name - just click on the name of the cplane in the namedcplane Panel.

it s a pity - that nobody comment on my topic / wish:
named transformations
which could include some of your wishes

kind regards - tom

1 Like

It works extremely unreliably and non-intuitive. I tried it, but it does not operate as expected most of the time. Also, upon running the ! _RemapCPlane command nothing tells the user that the “Named CPlane” panel must be preliminary opened in order for the “Cplane” option of “RemapCPlane” to work. It requires a double-click on the saved named SPlane, but that also doubles as an activation for the same CPlane, which confuses Rhino. Once I orient the object for the first time, the next time I try to apply the same command does nothing. Here is a video showing the issue.

Hi Bobi - hm - I do not think the command is designed to work with that panel - it seems like it could and should be but I do not think it is, at least there is no sign of it here. The command greatly predates that panel and in fact the prompt to click on a CPlane is a legacy of the olden days I beieve - I have added a bugtrack item to change the prompt, well as some other tuneups. Working directly off of the Cplane panel seems like a good thing to investigate.
RH-67636 RemapCPlane: prompt tune up



Hi @pascal , thanks for adding this to the pile. Looks like it will not be implemented in Rhino 7, as I see it referenced to Rhino 8.
I believe that the image I posted above with a proposal to include a right-click option “Remap selected to CPlane” directly inside the “Named CPlanes” panel would work wonderfully and will be both quick and convenient, especially if the goal is to orient copies of the selected object(s) on multiple CPlanes.

Good morning Tom
Could you explain me how this is supposed to work…

I am looking for an easy way to automate the following steps

1 - Pick a BlockInstance located somewhere in space
2 - Define a local Cplane ( From Object ) to manage the XY & origin as wanted before relocating the object.
3 - Relocate the selected object on a target NamedCplane that need to be displayed it in the viewport.
a. by typing its name in the Cmd Line
b. or by picking it in the viewport using _NamedCplane +option _Select

Actually I don’t see how to nest all operations within a single Macro to simplify this process ?
I am able to automate steps 1 and 2 but when I want to _remap in the same process…

Thanks fo any advise

Dear @RodolfoSantos it sound s more like a case for a script then a macro.
macro s are very limited when it comes to reselect something, that got create in a first step - to use it in a second step…
it might be possible as there is previous c plane… but it s a bit of bricolage…

Hi Rodolfo - something like this maybe?

! _CPLane 3Point Pause Pause Pause RemapCplane Pause CPlane Top Cplane Undo

! _CPLane 3Point Pause Pause Pause RemapCplane Pause CPlane "My named CPlane" Cplane Undo


Thank you for your reply

You are probably right, but when possible, I better stick to native Rhino features.


is it always the same block ?
if yes include some simple, planar Polyline to define the cplane.

but also check:
a good alternative to remapcplane is Orient3Pt.
not tested:
_orient3Pt _pause _pause _pause w0, wr1,0,0 wr0,1,0

Thank you very much for your script, Pascal, I was out of this forum for a while but I am back now.

Well, the From is not my big problem here ( I use the Gumball option btw )
! _CPLane 3Point Pause Pause Pause RemapCplane Pause CPlane Top Cplane Undo
This is working well here

The automation for the selection of the target NamedCPlane is what I don’t get here.
you suggest : … RemapCplane Pause CPlane “My named CPlane” Cplane Undo

This part of the script is WORKING after a semantic correction ( my bad )

**Would it be possible to make this part more flexible :CPlane “My named CPlane” **
My Named CPlanes listed in the Command Line for example to swith from one to another…

Here’s a visual description of the steps I want to automate.

In fact I was hoping to solve this including _NamedCPlane _Select in the script ( and pick in the viewport ), but that seems not possible, right?


No, various blocks.
The From CPlane is not really a problem, it is the way to call the target one that is not easy to nest in a Macro ( if possible… )

Thank you for the workaround, but for the indented purpose, I need to deal with NamedCPlanes.


instead of picking the viewport, just pick the named cplane (?) in the panel:

this is how i use remap cplane a lot: use the namedCplane Palette to input the cplanes…
not sure if the but is solved - a duplicate of world top is (was?) needed.

So, the hangup here is that you need to know the exact name of the plane and type it correctly, correct?
Does Tom’s suggestion of using the named CPLanes list work for you? It does work but seems a little fiddly sometimes - but that seems like the answer.


That does not work in the Windows 10 version of Rhino 7 consistently. Sometimes it does, but most times it does nothing; just switches to the other CPlane. It is extremely unreliable. Recently I had to do that sort of repositioning of models from one CPlane to another. Rhino 7 did that in the first two times, then every next try it refused to do so.
This is why, I created this topic with a request to make this tool work properly and in a more convenient way.