Not visualizing .shp files from QGIS to Blender

Hello there,

I’ve committed some shapefiles from QGIS to the Speckle server. Thereafter, I imported the files in Blender, and they were correctly received, but if I try to zoom to a layer I don’t see anything.

Does someone have any suggestions?

Thank you.

Hi @nick_tolio
I’m not quite sure exactly what you’re describing.
Perhaps you could share a speckle commit or blend file with me to reproduce the issue?

I have seen Blender incorrectly display geometry that’s super far from the origin.
Which potentially is what you are running into.

Dear @Jedd ,

Thank you for your reply.

This is the link to the Speckle commit:

This is a shapefile sent from QGIS. In Blender, I can receive it correctly, but I can’t see it.

Ciao Nick

To follow on from @Jedd’s suggestion, within the QGIS Connector, you can set the proxy origin as a custom CRS.

This assumes you select a Lat/Lng value from a Geocentric CRS. Speckle Connector will then centre a Projected CS at the coordinate you specify, which will bring data in at the Blender origin relative to that coordinate.

If you have difficulty working out your current projection or coordinate system, follow @Kateryna’s suggestion here: CRS and project center in QGIS - #6 by Kateryna

Ah good catch, It seems the issue is nothing to do with large coordinates.
It seems our Blender connector doesn’t correctly traverse QGIS commits.
We get the parent object data through, but none of the geometry :cry:

I’ll get back to you when I have a fix ready!


Oh, so that’s the point! Thank you Jedd for your supply. Let me know!

1 Like

Hi @nick_tolio

I’ve just given this a test in our latest 2.14.0 version of the Blender connector.
And we now correctly traverse and convert your polylines :raised_hands:

However, I noticed that Blender has a hard time displaying such large coordinates, so I had to manually scale these objects by a factor of 0.01 to get them visible in the viewport.

Please give 2.14.0 it a try, and let us know how you get on.

If you were interested, You can automatically scale your received objects by using a receive script

sf = 0.01
def execute_for_each(context, converted_blender_object, speckle_object):
    converted_blender_object.scale = (sf, sf, sf)
    return converted_blender_object

1 Like