Of course it is far more effective to store an object by saving the .blend file and reuse it afterward but the purpose of this add-on is to get access to mesh data in a form that can easily be used in other add-ons, for example as the basis of some parameterized object, where creating lists of vertex coordinates by hand is very tedious and error prone. It therefore produces Python definitions for
- a list of vertex coordinates
- a list of edges
- a list of faces
- a dictionary with edge seams
- a dictionary with edge creases
verts = [ (-1.0, -1.0, -1.0), (-1.0, -1.0, 1.0), ... (1.0, 1.0, 1.0), ] faces = [ (1, 3, 2, 0), (3, 7, 6, 2), ... (5, 7, 3, 1), ] edges = [ (0, 1), (1, 3), ... (0, 4), ] seams = { 0: True, 1: True, ... 11: False, } crease = { 0: 0.0, 1: 1.0, ... 11: 0.0, }By default it also produces code for an operator that recreates a mesh object based on the values in the lists and dictionaries mentioned above.
The latter may sound a bit strange, an add-on that produces code for an add-on, but this way it is very simple to verify that the dumped data indeed produces the desired object when used. Your work flow may look like this:
- Select the object to dump in the 3D view,
- Select
Object -> DumpMesh
, the code will show up in the text editor, - Run the script in the text editor by clicking
Run script
, it will create a new menu entry - Select
Add -> Mesh -> CreateMesh
, and a duplicate mesh should be added to your scene.
Availability
The code for DumpMesh is available on GitHub. Just download the file and useFile -> User preferences -> Add-ons -> Install from file
in the usual manner. In the code I have embedded the code for the CreateMesh operator as base64 encoded strings. This is in my opinion the simplest way to store a chunk of Python in antother Python program without bothering about quotes of all kinds. The original non-encoded version is on GitHub as well.
No comments:
Post a Comment