I defined a block in Rhino and then exported it to SU. It seems fine at first glance, but actually the block in SU has been applied a 25x scale. When I reset the scale, it becomes 25 times the original. I didn’t perform any scaling operation on the block in Rhino. Why is this happening, and is there a way to fix it?
I just created a block in Rhino and exported as a SketchUp file. It came into SU at the correct size, no scaling.
If you could run _SystemInfo and paste the complete text here and also post an original Rhino .3dm file with the block that rescales we might have a better chance to understand what is happening on your system.
If you right click & choose Reset Scale, Su will change a component that was imported and initially appeared correctly at an original size of 10 mm from 10 mm to 10 inches.
To stop Su from doing that, select the component, right click and choose Scale Definition before doing anything else. Having done that, Reset Scale will correctly reset the component to the imported size of 10mm whenever you use it.
It may be worth asking Trimble tech support about this - the initial resize might be a Su bug or it might be because there is some hidden rule about defining the Scale Definition that McNeel won’t have been aware of (coupled with a bizarre Su data model, but that’s another story).
Note: the .skp file format is proprietary to Trimble and is not publicly documented, so I have no insight into its internal workings.
When Opened in SketchUp, the 10mm object in the Saved file rescales to 254mm on running Reset Scale.
When Imported into a file in Sketchup, the 10mm object from the Exported file also rescales to 254mm on running Reset Scale.
In both cases, running Scale Definition immediately on the 10mm object sets that as the base size and Reset Scale after any subsequent resizing will return the objects to 10mm.
Choice of units in SketchUp has no bearing on this.
I only have access to the free version of SketchUp so I can’t save you files as they are after SketchUp processing.
My suspicion is that there may well be data in the skp file that records the scale baseline size distinct from the current size of the component and Rhino should set that to the same value as the current size (or perhaps the unscaled size of a block definition if the imported instance was scaled in Rhino) but that is either not being set or is set with the wrong, or no, units.
I guess the answer might be found by creating an equivalent component part in Sketchup and reverse engineering the skp file differences.
Yes, scale definition can fix it, but it is not the most direct solution because you need one by one to fix it. I think it may be a Su bug if you export the block as 3ds file, it works well.
I do another test, create a block in rhino use the inch template, and export to su, it works well. So I think the sketchUp’s native unit system maybe based on the imperial system, and the bug happenned during import
Side note: I’ve logged quite a few Sketchup related issues about two years ago. @tim managed to fix some of them. Others ended up being hard or impossible because of their api.
Given that .skp is SketchUp’s native format it would be pretty unlikely that such a bug would go unreported by the SketchUp community when importing their natively made components.
Indeed, if I make a 10mm cube in SketchUp, save it and import it into a new file it comes in at 10mm. More interestingly from a Rhino export perspective, with an imported SketchUp-made object the Reset Scale option is unavailable and remains so until you resize the object. This implies that SketchUp is putting information into the .skp file that Rhino is omitting.
Whether the boffins can work out what that data is and where it goes, given the unpublished file format, remains to be seen…