Impossible to modify bloc occurences of which the scale is not uniform

Hello. I use Rhino in french, here is the original version for this warning message : “Impossible de modifier des occurences de bloc dont l’échelle n’est pas uniforme”.

This is the result of a dwg file exported as dxf from autocad 2012, imported into rhino 5 - 64 bits. The inital dwg contained blocs which are problematic to edit in rhino.

Thank you in advance ^-^

Yes, I have never really understood why this limit is there. A warning I can understand, but I am sure they have some reasons.

The workaround is to insert a new block and edit that one, that will update the un uniformely scaled block too, then you can delete the “new” block.

I see. Ok thank you Holo.

A block instance is (basically) made up of a collection of geometry, which is shared by other block instances, and a transformation.

There are certain 4x4 transformations that require the underlying geometry to be significantly modified in order for the transformation to be successful. Generally, this involves convert non-NURBS geometry into NURBS geometry. Modifying the underlying geometry of block instances is frowned upon. Thus, you get the message with is the basis of this thread.

Hope this helps.

1 Like

Suppose I have a box as a block.
Now I transform an instance of that block to be completely flat in one direction.
That is a valid transformation but what to do when entering block edit mode?
If I add a curve to the flat box; how is it going to be positioned in a “untransformed” block?
Transformations can be such that they are a one-way operation, this will make it impossible to edit that block-instance in a unambiguous way.

-Willem

I see, the “unconverted” geometry makes sense, and the flattening a 3D block is one thing I would never have thought of doing. So that makes sense too. Thanks both of you!

That said, I would like to see a “Do you want to edit a 1:1 block instance?” question for V6 then.

Yes, that limitation is super painful in some scenes.

We can understand that it’s impossible to do in-place editing of block instance, with some kind of transformation.

However, there should be a way to edit the un-transformed original block definition. It could be accessible in the Block Manager, with a “Edit Definition” button. This way, the edit would not be related to a specific instance.

On a large scene, having to copy and reset transformation on every block that needs to be modified, is really painful.

Hello - you can always insert a new instance of the block, and BlockEdit that, and then delete it.

-Pascal

1 Like

I have this problem with imported blocks from autocad. The blocks are suppost to be uniformly scaled but are not by a very small tolerance.
How can i recognice a transformation matrix that is almost uniform and then change it to be uniform?

I guess I then have to delete the block and reinsert it with that new matrix.
(using python)

Hello - you can check using

x = obj.InstanceXform.IsSimilarity(tolerance)

if x is NonSimilarity then you can, I gather, assume it is not uniform.

-Pascal

Hi Pascal,
I still having problem editing non-uniformly scaled block instances. This is a totally non sense to me, sorry… I only need to assign a new materials to the block and i can’t! and of course i have hundreds instances , so i can’t insert new instances (and sorry again, but this is another one non sense to me…i create a block to have instances and then instead of managing the block t i need to replace the instances?).
Last question: it seems to me that any times users asking something OBVIOUS the answer is trying to explain that is not so necessary…but sorry for the third time :)…we are the users, so we need what we need…
Thank you,
Roy

Hello lopez,
I just noticed when importing form sketchup (i have got thousands of instances of blocks, which appeared to be non-editable due to bad scaling), the solution was just to explode block two times (when exploded first block there was second same-geometry block inside, which was perfectly editable).

Maybe this is your case too.
Mark

Hi - For what it’s worth and not necessarily 100% related - Rhino 7 now has a BlockResetScale command that allows you to convert non-uniformly scaled blocks to either the closest uniformly scaled version or the non-scaled version of the block definition.
-wim

1 Like

Hi @wim,

the new command is nice helper, but I miss a function. I would like to keep the current scale. It is needed for embed blocks.

I got a scene from my client and I want to change materials of the block. I would like to select a block and to define the current scale as the new uniform scale. I can manually do it by explode and make a block again, but than it is not linked to the other instances.

But much better would be if non-uniform scaled blocks could be simple edited. I don’t understand why it shouldn’t be possible since it is theoretical possible to reset the scale, edit the block and apply the non uniform scale again.

For example I have a oak tree and would like to add a few instances of them in different non-uniform scales for more variation at the scene. It should be possible to edit the block.

Could it not be possible that if block edit is started the scale is temporary back to scale 1,1,1 and after edit is done the previous scale is applied again?