Hello,
Could someone explain why block transformation data is not read by “Block Info” component?
Also, is it possible to bake a block to rhino and then read transformation data of the block? (eg. block scale).
Thanks,
Harri
Hello,
Could someone explain why block transformation data is not read by “Block Info” component?
Also, is it possible to bake a block to rhino and then read transformation data of the block? (eg. block scale).
Thanks,
Harri
Hi, the transformation is indeed maintained:
What you are seeing is how that Transform is described in a text panel. The reason for this is that you can combine multiple transformations:
As you can see, the Split Transformation remembers the operations.
However, (to my knowledge) this is only possible in Grasshopper, because it has its own way of handling Transforms. Rhino does not maintain a history of the various steps that went into a Transformation, only the final result.
eleFront assumes the generic case that objects could have been made in Rhino or Grasshopper, so it has to default to the more generic Rhino version, which is what you see there. So, it says “Generic”, but it still represents the final complete Transformation.
That means that if you have a block in Rhino, and you move, scale, rotate, etc., eleFront will return the same Transformation, but you won’t be able to split it into the discrete operations because Rhino itself does not track that.
You can see here that eleFront extracts the correct Transformation, even it does not know the individual Move and Scale operations. The same is true with the new DataTypes in Rhino 8, because Rhino itself does not retain the individual operations.
Just to add a bit more - a transformation is essentially a matrix operation, but that’s not particularly easy to express as a string, so it says the word “Generic”, but if you look at the actual transformation matrix, the “Generic” version coming out of the eleFront component matches the mathematical operation that comes from the Grasshopper component:
But, if what you are after is the individual, discrete transformations, then once the object is in Rhino, you could do something like what is described here:
https://discourse.mcneel.com/t/multi-transform-an-object/187798/3?u=krahimzadeh
That would at least get you the component translate, rotate, scale. But, if, for example you did a move, rotate, move, scale, move, rotate, it won’t give you that history.