[Plugin] triangulateFaces.rb v1.2 20101120
-
Cheers Tig...nice one.
-
Here is the method I use:
def triangulateFace(face) ents=Sketchup.active_model.active_entities faces=face.mesh.polygons verts=face.mesh.points faces.each{|f| ents.add_line(verts[f[0].abs-1],verts[f[1].abs-1]) ents.add_line(verts[f[1].abs-1],verts[f[2].abs-1]) ents.add_line(verts[f[2].abs-1],verts[f[0].abs-1]) } end
The nice thing is it cant fail to triangulate regardless of the shape or number of holes. But it unfortunately adds faces to the "holes". Or rather Sketchup does. Does anyone a way to add an edge without Sketchup attempting the "heal" the face?
-
I thought of that approach but abandoned it because of that facing hole problem...
-
Thank you TIG for this plugin.
Do we still need to add those extra lines in the ruby console to get the plugin in a menu?
I couldn't find it in the Plugins/Tools menu, thus my question... -
@kwistenbiebel said:
Thank you TIG for this plugin.
Do we still need to add those extra lines in the ruby console to get a menu?
I couldn't find it in the Plugins/Tools menu, thus my question...'Triangulate Faces in Selection' should be in the Plugins menu...
-
Strange, I can't find it anywhere in my long long plugin list .
Maybe it clashes with some other plugin? (I do have WxSU installed which caused me trouble with other plugins in the past).
By the way, I am on SU6 Pro. -
@kwistenbiebel said:
Strange, I can't find it anywhere in my long long plugin list .
Maybe it clashes with some other plugin? (I do have WxSU installed which caused me trouble with other plugins in the past).
By the way, I am on SU6 Pro.If you have 2.1 open it in a text editor and read the last bit it should define the menu...
-
I finally figured out how to triangulate any face without the side effect of filling holes.
def triangulateFace(face) mesh=face.mesh(1) faces=mesh.polygons verts=mesh.points uvs=mesh.uvs(true) outmesh = Geom;;PolygonMesh.new faces.each{|f| outmesh.add_polygon(verts[f[0].abs-1],verts[f[1].abs-1],verts[f[2].abs-1]) } ents=Sketchup.active_model.active_entities mat=face.material face.erase! grp = ents.add_group grp.entities.add_faces_from_mesh(outmesh) grp.entities.each{|e| if(e.class==Sketchup;;Edge) e.smooth=false e.soft=false elsif(e.class==Sketchup;;Face && mat!=nil) #handle materials and uvs. uva=verts.index(e.vertices[0].position) uvb=verts.index(e.vertices[1].position) uvc=verts.index(e.vertices[2].position) e.material=mat e.position_material(mat,[verts[uva],uvs[uva],verts[uvb],uvs[uvb],verts[uvc],uvs[uvc]],true) end } grp.explode end
-
Could you please clarify for a 3D newie the purpose of triangulation in this case?
Does it means the model will be correct or will work better or is merely a way of get more detail? -
@coronel said:
Could you please clarify for a 3D newie the purpose of triangulation in this case?
Does it means the model will be correct or will work better or is merely a way of get more detail?If you have a mesh that's rectangular it won't deform consistently. If you triangulate the faces they will... etc.
-
I needed the triangulation to prepare a model for export.
Thanks for incorporating it into your script TIG! Why is it that back facing UV's didn't work?
-
@tig said:
@cphillips said:
I needed the triangulation to prepare a model for export.
Thanks for incorporating it into your script TIG! Why is it that back facing UV's didn't work?
There is only a method to 'place material textures on a face' - and that assumes a 'front_face' - there's no 'back_face' method...
Do you mean position_material? It takes a bool for front or back material
http://code.google.com/apis/sketchup/docs/ourdoc/face.html#position_material
-
Thanx really useful!
where download?
-
@ideas_arte said:
where download?
That's a valid question; it is not clear which version is the latest, and it is harder than necessary to locate the download.
The download is about 5 posts before this one.
-
@cphillips said:
I needed the triangulation to prepare a model for export.
Thanks for incorporating it into your script TIG! Why is it that back facing UV's didn't work?
There is only a method to 'position material textures on a face' - and that assumes a 'front_face' - there's no 'back_face' method ? ...
-
@cphillips said:
@tig said:
@cphillips said:
I needed the triangulation to prepare a model for export.
Thanks for incorporating it into your script TIG! Why is it that back facing UV's didn't work?
There is only a method to 'place material textures on a face' - and that assumes a 'front_face' - there's no 'back_face' method...
Do you mean position_material? It takes a bool for front or back material
http://code.google.com/apis/sketchup/docs/ourdoc/face.html#position_material
Duh! I'll adjust the code and re-post...
-
There's something afoot... What I posted before worked - on keeping the front face texture mapping but not on the back_face... Now when I try it it fails to map both faces ? Any ideas - CPhillips's idea worked fine in tests but now seems to fail...
-
Post the code and I'll have a look. It might be the face.mesh(1). I think you need to use a different number when you want back uv's as well.
-
-
@honoluludesktop said:
Hi TIG, Any way to convert this kind of mesh into its component triangles?
I wrote an example script a few weeks ago to do something like this... http://forums.sketchucation.com/viewtopic.php?p=186068#p186068
Advertisement