Import Rhinoceros 3D files into Blender

Keeping this up to date, I installed the Import addon today and unlike earlier versions it works without additional libraries, right off.
Installed on Blender 2.90 for Windows (10 X64).
I installed addon version 0.0.8, downloaded from Github, which works well.

Edit: there is no preinstalled version, the earlier version in my case, must have originated from an earlier attempt to install the Rhino Importer addon then within Blender 2.8x, that carried through to newer Blender installations.
The addon version packaged with 2.90 is 0.0.6, which did not work, did not run at all, only a screen of errors.

I removed it and installed addon version 0.0.8, downloaded from Github, which works well.
(Note that the geometry from Rhino is not how one would model in Blender, faces of one mesh are usually not linked, only coplanar ones are, lots of triangles, etc. It is what it is, the importer works)

2 Likes

I guess it is time to give this a try again…

I believe, it would help migration if the meshes from Rhino were “welded”, linked. Apparently, I am quoting because I have no first hand experience in Rhino, hard edges are “unwelded” when Rhino interprets meshes.

Unlinked (unwelded) geometry is not ideal for continuing work in Blender. A few quick examples:

  • No loop manipulations - modeling
  • Poor behavior with transformation modifiers, like bevel, subdivide etc - modeling
  • Does not behave like a solid, so boolean operations will be wrong - modeling
  • Cannot be properly UV unwrapped - texturing
  • I assume, but need to verify, no mass properties - physics

So imho, it would be best if there is guide of Rhino actions to weld sharp edges, before the import to Blender or even better an option for welding in the addon, if that is possible.
Anyone with Rhino experience care to suggest a workflow, in clear steps?
I was told in the Rhino forum that there is a QuadRemesher action in Rhino, how does that fit into a preparation workflow?

1 Like

I suppose to get a quad-based mesh instead of the triangle-mess you generally get with the default Rhino mesher (:

1 Like

Happy 2021!
About the unwelded edges, do you have a suggestion, how to get welded during Rhino export?

HI Jester,
I there any new development on this (Pretty Cool) Addon?
I read in the rhino Forum, that you are working on a second one?
Any details on that?
Thanks for your work, v008 is already quite usefull for my workflow, but i have high hopes for a new one based on Rhino7

Hey, just yesterday I was testing the add-on on my live stream https://youtu.be/_XZrBtr2dRA and found that it works in Blender 3.0

I made one tiny fix, released 0.0.9 today. I verified it works on Blender 2.93.6 and daily Blender 3.0 build, both Windows.

I will be doing more live streams where I will address issues with the add-on. More frequent love from me for the project (:

1 Like

Hi @jesterKing

I have taken your addon and refactored it a bit to support reloading (right now in a very clunky way).
Just wanted to share the rep link https://codeberg.org/oeykmiih/bpy_io_3dm

By no means I want to take credit of you, and being a non dev I do not know what is the proper etiquette. So if I’m missing something let me know so I can do it!

Thanks for the hard work!

Edit: fix broken link, fix typos
Edit2: moved code from github to codeberg (why?)

1 Like

Hey Joao,

Been following your updates closely, as i love using this addon!, unfortunately i’ve been unable to get the latest git loaded since version 0.6.0? Any advice to get it working? the module says it installs, however it doesnt appear in the addon section…It does however correctly seem to unpack the add in the AppData folder. i’ve tried in both blender 4.0 and 4.1 with no luck.

Hey Jesse,

I didn’t expect anyone to have looked at the code, and since I’ve moved from Github to Codeberg I’ve also cut down a portion of the history (the way I was handling depencies was bloating the git repository, things you learn only after you do it).

I’ve recently fixed some issues with reimporting, but since I didn’t know there’s was anyone else using it, I have yet to reimplement “Block Instancing as objects” (only available as collections instances for now).

Tomorrow I’ll upload the zip files and leave the link here.

Sorry for the trouble, cheers

1 Like

Don’t apologise!

That would be amazing. I saw on the McNeel forum that @jesterking was working on an update as well that carried across UVW mapping from the rhino objects. This is the final hurdle for my process as I’m finding myself having to build some UV mapping on objects- but risk it being wiped on a force reload.

Thanks again for the great work on the add on. Such a game changer

Here they are. I’ve split the windows and macos versions, but once 4.2 rolls out and there’s a proper system to bundle wheels that will change.

Not sure which platform you are on, I can only test the Windows version.

I also saw it! Tried to play around it but right now rhino3dm doesn’t seem to be able to read the UV data from 3dm. I think he mentioned a script to save that data to UserStrings and get it from there afterwards. I will be on the look out to add it.

Ultimately I also want to backport (or at least propose) all the changes to the original addon, it just happened that this was my first time touching code, so slow incremental changes were too difficult for me to lear, better to rerwrite the whole thing and think about the consequences later

One other thing I’m hoping to have time to is to integrate with the Quick Instances addon when block instancing is set to collection instances.

One thing that I’m using for mostly automatic UVs is this amazing nodegroup.

Another cool thing that could be added is “post import actions” (eg. appending custom nodegroups to the imported objects).

1 Like

thanks for this! ill check it out… A good example I was dealing with was a strip drain on an archviz project where the u and v need to be flipped in order for me to be able to orient the texture in my shader node setup correctly.

Im still after texture mapping to get implemented into the new grasshopper model object components as well, so hopefully it gets implemented on that side soon too.

Thanks again for the quick upload! (yes im on windows too)

@Jesse_Gould I have just now updated import_3dm to work with Blender 3.3, 3.6, 4.0 and 4.1.

This release supports Rhino 8 files.

Also supported now is the first iteration of material and texture import.

Unfortunately I still haven’t been able to get this to work properly on Linux. I’ve built rhino3dm on my Linux Mint laptop, but the add-on fails to properly import in Blender 4.1 due to some library conflict that I have not yet been able to solve.

Other than that it works on Windows and MacOS (universal binary, so should work on both Intel Mac and Apple Silicon Mac)

5 Likes

amazing! I am just an interested onlooker with not much coding ability, so apoligies for any comments that might be more difficult to fix than i give credit for…

It seems to be grabbing some UV coordinates from the objects, however they seem to still be unrelated to the any particular object texture mapping? ie if i have box mapping setup on 2 objects with the same material, these UV’s dont seem to carry?

I also had a weird issue whereby UV’s where being read on standard meshes and the render meshes of nurbs polysrf, however on a mesh that i had run through a quadremesh, the UV’s didnt appear in blender at all?

Edit: with material import - it appears a double material is being applied to objects on import?

UV mapping isn’t always transporting properly at the moment, I am aware of it.

There were some changes in the UV mapping code in Rhino that also affect these bits. My collegue is responsible for that code and I’m working with him to figure out a better approach.

I’m not setting any special flags on materials. They are whatever happens when you add a new material in Blender.

2 Likes

I made a short demo on v0.0.11 installation and usage

4 Likes

Thanks for this video. I seem to have a good handle on how the UV mapping is working…not sure if its a bug somewhere but it seems to be able to get the UV mapping on an object to update you need to go into the UV editor and un-tick/retick “Automatic re-unwrapping” otherwise the UV’s dont seem to transfer on reimport in blender.

I’m still definitely finding 2 materials are assigned on import in the material stack into blender even though theres only the 1 material on the rhino object.

the other question i had was on reimport are orphaned objects supposed to delete otu of the blender file? This was something really neat in @oeykmiih add-on, as it meant you could essentially live link with a quick save and reimport which i had setup as an action.

Yes, this happens due to new logic in preparation for block instance importing. I’ll revisit that when working on that part. Right now I’m wrapping necessary API to be able to import annotations.

Last week I pretty much finalized curve import, but I need to work on some final touches before I release v0.0.12

I will check that when I get around to it.

2 Likes