Object Render Wire
Closed, ArchivedPublic

Description

Project: Blender Extensions
Tracker: Py Scripts Contrib
Python: 3.2
Blender: 2.62
Dependencies: none
Author(s): Yorik van Havre, Alejandro Sierra, Liero
Script name: object_render_wireframe
Homepage: http://yorik.uncreated.net/guestblog.php?2011=73 (solid wire)
Wiki page: http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Modeling/Solidify_Wireframe to update
Category: Object
SVN Download: https://svn.blender.org/svnroot/bf-extensions/contrib/py/scripts/addons/object_render_wire.py
Status: Open

Features
Render Wire overlay materials
turn on wiewport wires
curve wire frame
mesh wire frame

This script takes the selected edges from a mesh, and produces a new object, which is a solidified version of the selected edges. The section of the "sticks" (solidified version of the original edges) is square. A pop-up will appear on launching the command to allow to set the size of the sticks.

The script is mostly useful for architectural modeling, where you often have a lot of square profiles to do (doorframes, windows, columns, etc...). You stay in edit mode after the script has run, so it's easy to generate several profiles from the same mesh, for example in a window frame, you typically need several profiles of different thickness.

ctrl/z to undo


Installation via standard preferences -> install add-on procedure, the script will then reside in objects menu

hi, thanks for the great update. :)
I'll upload an attatchment here also.
Then we should look at moving this script into contrib.
Thanks again. :)

hi, further testing.
using this script on Suzanne mesh, with a setting of 0.02 then subdividing causes black artifacts on the mesh.
could someone have a look at this issue please. :)

Hi metaandrocto,
Thanks for testing!
Indeed there are still some glitches, but most come from the original script and I'm not sure how far I'll be able to solve them.. But I'll have a look at this one.
Another point I'm in doubt now is that in blender 2.5X the favored way to interface with the user seems to be to put GUI stuff in the toolshelf... But this scripts still uses a 2.49-fashionned popup. Maybe would be good to change that point, what do you think?

hi again,
as for menu, I think the script would be at home in the W key specials menu.
Other than that, it could be made an Object script & appended to the Add menu.
(you could do an enter/exit edit mode on script execution)
So you could select the mesh in object mode & return to object mode with the new mesh.
I like how the script creates a new mesh & preserves the old mesh.
It could be done that there is an option to delete the mesh, which brings me to the pop up.
It's very cool, but if you look at the Bevel script, it's better to add any menu's buttons to the toolbar.
All of that said,
I need to retest the old solid wire scripts, I think there's three versions.
I did various tests in the past & fould one to be better than the others.
That said,
It would be nice to have some options to change the mesh to curve & bevel for making tubes,
The curve bevel options & well, some of the options from the Torus Knot + script would make this mpore user friendly.

Thanks for your time & work on this script, It's one of my favorites, so I an very interested to see your results.
Brendon

This is the latest 2.4x wire script, if your interested in seeing how that worked.
https://svn.blender.org/svnroot/bf-blender/branches/blender2.4/release/scripts/mesh_wire.py

Great, thanks! This script seems more robust than mine, I'll try to adapt...

hi Yorik,
I've been running a few tests on this script.
there's a few things that are really quite cool.
one thing I did was to test how subsurf worked on the mesh.
http://www.pasteall.org/pic/show.php?id=12063
I found with catmull-clark you get the black wire
with simple, the green.
also I used the solidify modifier.
I think possibly all that's needed is to run the algo at a 0.00 setting then add (not apply) the solidify & subsurf modifiers with the settings I used open.
I would lose the pop up & have a button in the toolshelf.
thanks.
what do you think?

I looked at this code and tried it out. I found that sometimes it made triangles on the cubes rather than quads, and the reason was that the faces have a 0 vertex index sometimes. The fix to this is to change the faces assignments to [ [0,3,2,1], [5,6,7,4], [0,1,5,4], [7,6,2,3], [2,6,5,1], [0,4,7,3] ]. But then there are additional problems, such as when it fixes up re-use of a cube face it doesn't exclude all of the already-used faces, and also the skinning can twist if an alternate face is chosen. I'm working on fixes to these.

I made some suggested changes to this script and attached it as mesh_solidify_wireframe_ht.py .

The changes fixed the bugs mentioned in my previous followup, as well as behaving better when there is no possible way to make an edge because all of the visible faces on one end's cube or the other are taken.
Also, it changes the interaction to be the Blender standard sequence of: Select, Action, Adjust. That means that instead of a popup to choose the thickness, it just makes the wireframe with the default thickness and puts a slider in the tool panel to allow you to adjust the thickness.

This is kind of a strange operator in that it starts in EDIT mode (at least, that's where the menu item appears), but it makes a completely new object. Most (all?) other edit operations just modify the mesh of the current object. This is almost more properly and Object operator (like Duplicate). Anyway, if you leave it as is, what mode/selections make sense for it to end up in? I made it end up in OBJECT mode with the new object selected and all others deselected.

Unfortunately, there is still one problem: if you select only a subset of the edges in the current object, then the initial new object has only those edges solidified, but if you adjust the slider, it then solidifies all of the edges. The problem is that the undo system does not properly undo to get back to the old selection of edges in the old object. I don't know why, but the strange mixed-mode operation of this operator may have confused some of the assumptions about when undo state is saved.

Hi all,
I began to port the original blender2.49 script that Campbell

oops... pressed the "save changes" button too soon by mistake.
The attached script already works, but has a lot of problems, maybe one of you would want to work on this too to make things go faster. The best way to test the script at this moment is to load it into the text editor, run it, then call bpy.ops.mesh.solidify_wireframe() from the console.
The things that need to be solved:
- It should make a panel appear in the Toolshelf. But for some reason that doesn't work
- The faces are not created correctly. Some indices problem probably. I couldn't really figure out how it differs from 2.49
- The various options (Sharp, solid, etc) are not implemented at the moment (the script provisorily uses default values)
- The new mesh creation process (adding verts, adding faces, etc) is still clumsily "translated" from 2.49 and doesn't make use of all the 2.57 mesh creation methods (like create from py data, etc)

Sorry to put here a script in such a bad state, but I'm having so few free time to work on this that I thought this would be better than nothing
Cheers
Yorik

Hi all,

I reversed the vapor and got back to the script that Howard Trickey submitted... It is the most efficient version at the moment. Campbell's original script is probably better, but I couldn't make it produce square sections. So the latest version I upload now is basically the same as Howard uploaded, with the following changes:

- the script can now be accessed from the toolshelf in editmode
- there you can set the thickness and choose if you want to stay in editmode or select the newly created mesh

As far as I tested the faces inversion problems are solved now, it begins to work great.
Cheers
Yorik

hi, in 2.58a I'm having trouble with the menu not showing up.
the script executes, but does not show the menu.
thanks :)

Hi,
Just a Reminder for people to Join the Mail List.
If you have not already, please visit this page:
http://lists.blender.org/mailman/listinfo/bf-extensions-cvs
& join the list.

Hi,
Due to changes to the api including the merging of bmesh, several addons are outdated.
Please, if you are the author of an addon check your script with blender revision 44256 or newer.
That is builds made After blender 2.62 official release.
I would ask that updates be made to your addon before the Blender 2.63 release.
6-8 weeks away.
This allows time for the api to become more exposed & bmesh to stablize furthur.
If you need help, drop into irc freenode #blenderpython or #blendercoders & feel welcome to ask questions.
At the time of 2.63 release, scripts that are not repaired or in active developement will have their tracker page marked "Closed"
this will not affect your links to the tracker, similar to closing scripts in 2.49b, the page will be still availible & can be re-opened.

Thanks for your understanding & patience during these Exciting Times.
Brendon.

Moved from Py Scripts Upload to Py Scripts Contrib

added svn link.
thanks to all involved for their hard work keeping this script alive.

Hi all,
attached is a fix for bmesh / blender 2.63
Cheers
Yorik

Yorik, thanks for the update :)
I updated svn with your new bmesh version,

hi Yorik,
I've merged this addon into a wireframe toolkit,
I like your methods & the per edge face wire creation.
The addon now does wireframe, wire materials & wire curve types.
feel free to update or make changes.
thanks.
Brendon

Only now I see this and tested the new script... Congrats Brendon, it's pretty complete now!

This task was automatically closed as archived as part of migration, because it was determined to be no longer active.

The authoritative list of addons is on the wiki, we no longer have a report for each addon to track bugs and updates. Bugs can be reported individually and assigned to the addon developers. See the Addons project page for more information on the workflow.

Nobody (None) closed this task as Archived.Apr 18 2011, 12:08 AM