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