From BlenderWiki

Jump to: navigation, search
MeshLint
Like Spell-checking for your Meshes
UI location Object Data properties > MeshLint
Usage Check objects for: Tris / Ngons / Nonmanifoldness / etc
Version 1.0 Author(s) rking
Blender 2.6.5 License GPL
Category Mesh Distribution Extern


Executable information
File name meshlint.py
Current version download https://raw.github.com/rking/meshlint/master/meshlint.py or git clone https://github.com/rking/meshlint.git



The default Monkey has 32 Tris, 42 Nonmanifold Elements, and 9 6+-Edge Poles.

A Blender Addon to help you keep your meshes clean and lint-free, like a spell-checker for your meshes.

Found some Issues.
Results with Suzanne

Can check for:

  • Tris: Evil.
  • Ngons: Also pretty bad.
  • Nonmanifold Elements: Stray Verts and Edges that have < or > than 2 faces.
  • Interior Faces: Faces spanning inside the mesh that cause confusing effects with Subsurf and Edge Loops. By the Blender definition, this is only true for a face if absolutely none of its edges are connected to <= 2 faces.
  • 6+-Poles: Verts with 6 or more edges (check disabled by default, because some meshes legitimately have these).
  • Default Names (like Cube.002)
  • Unapplied Scale (remember that Ctrl+a,s This causes so many problems I don't even plan on making it an optional warning. If you have a selection that includes an object with an Unapplied Scale, you'll hear about it from MeshLint)
  • ...can you think of more? We'll add them!

So if you click Select Lint, in Object or Edit Modes, it will set your current selection to all elements that fail the enabled checks. A good thing to do if you are having trouble finding pieces is to hit Numpad '.', which will center the 3D Viewport on the problems. You might have to do this iteratively with border selects and Middle Mouse Button to deselect the elements you already know about.

Live update screnshot.
Live Update Screenshot

Also, you can enable Continuous Check, which is a huge aspect to this. It is good for cases where you think you won't be creating any new problem geometry. Whenever something goes wrong, the Info Bar at the top will display a message describing what MeshLint found. Also, you will notice the counts are updated.

Furthermore, it works on the whole selection (but starting with the Active Object). So you can quickly check your entire scene with a to Select All and then click Select Lint. The checker will stop on the first found bit of lint, and throw you into Edit Mode so you can see it.

And finally, it now has a Deselect all Lint-free Objects button. This is a process improvement for the "whole scene" checks, allowing you to see a better overview.

Getting

Best way is to:

git clone https://github.com/rking/meshlint

That way, you can git pull later on and it will automatically refresh to the latest (theoretically-)good version.

But I realize that not everyone has git or an operating system capable of symlinking.

So, for those that can't: You can simply download the meshlint.py script directly. (And re-visit that URL for the newest version, later on.)

Installing

The super-awesome way is to directly symlink meshlint.py into your Blender Addons Dir. The advantage is that the previous section's git pull will download the newest version automatically. But not everyone can be expected to be superawesome all the time, so continue on:

`Install Addon...` screen.
Installing Addon

Hit Ctrl+Alt+u to load up the User Preferences (I always use the keystroke for this because of the occasional time where you miss, using the File menu, and click Save User Settings. Click the Install Addon... button at the bottom, then navigate to your meshlint.py script.

The Enable checkbox.
The Enable Checkbox

Next, and this is a tricky bit, if you're not used to installing Addons: you have to follow up by checking this little box on the right of the Addon entry in the list. If, for some reason, you have a hard time finding it, you can search for MeshLint or click on the Mesh button on the left. Hopefully, though, it comes right up when you do Install Addon....

If you want to keep MeshLint available (and who wouldn't?), follow the above steps on a fresh .blend (one you Ctrl+nd), then hit Ctrl+u at this point. The next time you run Blender you won't have to repeat the above.

Object Data properties
Where is it? -> In the Object Data properties

When installed, it will add a new Subpanel to the bottom of the Object Data properties (the button in the Properties Editor that looks like the inverted triangle).

The Name

It comes from programming tools that do similar things, but for code Wikipedia Link. If you program, you might want to Google about and see if such a thing exists for your language.

Going Further

We really want to make this a top-grade Addon. This will take a bit of debugging and brainstorming, both. There's a spot right below this text for a "Thanks", for users who give such feedback.

rking@panoptic.com

Thanks

  • taniwha / Bill Currie - For being part of the original idea and for Alpha and Beta testing.
  • endikos / William Knechtel - For also being an idea guy and tester, and for being a great Brother in the Lord, anyway.
  • lsmft / Kevin Wood - For being a premeir Beta tester, complete with a UI improvement mockup, and also for providing the hardware that was used to write it. (!)
  • moth3r / Ivan Šantić - For being one of the most enthusiastic Blenderers I ever met, and for testing/feedback, too.
  • encn - For the idea about "Deselect all Lint-free Objects", plus others.