Sacrilegious question - move the world origin/coordinate system?

Scott, if I am reading all this correctly, the world is simply transformed to a user specified plane, just like RemapCPlane, it should all be pretty straightforward. The user tells the machinery what the target plane is- that is all that’s needed UI wise…?


1 Like

Yep, that’s about it… as far as I’m concerned.

Sure, I can use Remap to Cplane, but is this what you want?

How is the user specifying a plane to start any different then Orient3Point command? Is the difference that I specify my 3 points exactly like Orient3point, then specify one of the default Named Cplanes as a target? Then I get the result in the previous replies. The bottom corner of the facade at 0,0,0.

I don’t follow - the starting plane is always WorldXY, there is no input for that, the target plane is user defined - however planes are defined, including existing cplanes.


I get the intent, but the details are blurry. And so is the goal in specifics.

  1. What is the prompting that needs to be done? And what input collected specifically? On screen by picking?
  2. What is the desired output? Specific 3dm example of that model…
  3. Does the user tell target plane by specifying Top, Right, Front? Or do they pick any name Cplane? Or do they pick 3 points?
  4. Is this Facade meant to be rotated up into 3d space? Or is it it meant just to be aligned in the top view only Orienting in 2d space from its imported location?

Something like

Command: RemapWorldCoordinateSystem
Prompt: TargetPlane=CurrentCPlane (WorldZXPlane WorldYZPlane 3Point PickPoint)

The facade was just an example. I am looking for a general case. However, to answer the question, I was looking for it to stay flat on the XY plane (it will be laser cut) but be able to rotate/translate to the world origin with the principal lines parallel to X. To do that I would first set a CPlane aligned to the object - origin where I want - then Remap the World coordinate system to that.

This kind of operation would probably not go into the Undo stack.

Just keep exploring this issue. If I use Universal Cplane, I get everything to lock into the Plane I set on the objects.


Then after setting is set, simply set what plane you want to be the new world. All the viewports update. Is that closer to the behavior you are looking for. You can draw and specify in those coordinates. Everything you unhide or unlock will also be in the correct space?

Top, front and right all are correct?

Yeah, but Universal CPlanes suck because as soon as you change the local CPlane in say the Perspective viewport all the other viewports update their view and CPlane to that. I do not want (or like) that. I just want to remap the world coordinate system and be done with it - then have Rhino behave like before with Standard planes.

So, it would be

  1. _Cplane
  2. Set the Plane as you want (3point or whatever you want)
  3. Then run “SynchronizeViews”

While this would not be all the prompting, is that the behavior you would expect?

If you used Rhino normally after that, does it act like you would need.

Sure there are ways to break it, but is that generally right?

The underlying mechanics seem potentially more problematic than any UI or behavior expectations - that all seems pretty straightforward to my three remaining brain cells, but I can imagine that implementation behind the scenes might involve constant application of transforms from Rhino’s ‘real-world’ - I dunno - but I could see how that might bog things down. Probably we should ask a real dev… @Dale, any thoughts on this one…?


Well, in my mind it was pretty simple - it just transforms all the geometry (once) from the current (chosen) plane (CPlane) to world. Finito. There is no constant transformation, the geometry gets moved exactly once. I imagine on a big/complex file this might actually take some time and the user will have to wait. The only difference between this and doing it with RemapCPlane is that it acts on all the hidden/locked objects, not just the ones the user has selected as in that or ExportWithOrigin.

For me, the complexity involves figuring out how to deal with all the non-geometry issues I mentioned above - named views and CPlanes, layouts, etc.

1 Like

hi @Helvetosaur Did this ever get figured out?

I’ll add something that I don’t think was mentioned, just complicate matters! :innocent:

When the WorldOrigin is moved, you also get the option to have layouts adjust with it. :hot_face:

As as as I know nothing has been don in this regard. I don’t think it was added to the future wishlist either.


How do we get this on the list? “This” being defined as appearing tot he user as resetting the origin and orientation of the world coordinate system for everything in a file.

I could use it for relocating a boat model. My curent method is to Show everything, make all layers visible, check that all layers are unlocked, SelAll and then use Move, Rotate, Rotate3D or Orient3Pt. Then I have to go back and Hide what needs to be hidden, turn off the layers which don’t need to be on, and lock the layers which need to be locked. A single command would be very useful.

You poke me one more time… Let me get it straight though - once done, any input, file import, etc would assume this new world, correct?

RH-64278 CPlane: Set as new world

@Helvetosaur - what I meant, above, is that all input would need to be transformed, block instances would need an added transform, I suppose; CreateUVCrv, ApplyCrv would need to take into account a transform, as would UnrollSrf, all the worldXY based stuff would need to be handled. Maybe that is fine, but that is the sort of complication I, in my underinformed caution, foresee could be a problem.


Yes. Everything uses the new world coordinate system.

I started a new thread in Serengati as this would probably be a V8 addition.

@pascal It could be as simple as SetWorldCoordinateSystem which sets the World Coordinate System to the CPlane coordinate system in the current active window…

Before running the SetWorldCoordinateSystem command the user can use the existing methods for defining the Cplane where they want it and oriented how they want, and see what it looks like. No need for a complicated interface in SetWorldCoordinateSystem command.

@pascal Another poke for this to be entered into the “system”.

Hi David - it’s there - see my post above.