Select flat, face selection to edge
All  1-7  8-12

Previous
Next
 From:  Michael Gibson
10085.8 In reply to 10085.1 
Hi rolnxyz,

re:
> 1. Is there a way / script to convert a face selection to its corresponding curve line outline?

It looks like you found this one already? There is another version here too:
http://moi3d.com/forum/index.php?webtag=MOI&msg=5922.37


> 2. Is there a way to select all continuous faces in of object within an angle threshold? Many
> polymodeling programs have this, like cinema4d phong break selection, or RizomUV wand selection,
> or blender select linked faces. I'm trying to quickly select faces without having to click too much.

Right but MoI is not a poly modeling program and isn't designed to work on faceted model geometry like you have here. You're much better off doing this type of poly modeling in a program that's designed to do that type of work like cinema4d, blender, etc... like you mention.

For the Window selection method, drag the window in a view where you're looking straight down on the face, that will make it easier to capture them all in one window:



It should be possible though to make a script that will grow selection to adjacent faces that are coplanar. I'll see about cooking one up for that.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
10085.9 In reply to 10085.1 
Hi rolnxyz, here are some scripts that might help.

First one - grow face selection to one neighboring face that is coplanar with the current face selection:

script: /* Grow face selection to neighboring coplanar faces */ var faces = moi.geometryDatabase.getSelectedObjects().getFaces(); for ( var i = 0; i < faces.length; ++i ) { var f = faces.item(i); var edges = f.getEdges(); for ( var j = 0; j < edges.length; ++j ) { var e = edges.item(j); var faces2 = e.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( f2.id != f.id && f2.isPlanar && f.isPlanar && f.isOnPlane( f2.planarFrame ) ) f2.selected = true; } } }

Second one - grow face selection to all neighboring faces that are coplanar with the current face selection:

script: /* Grow face selection to multiple neighboring coplanar faces */ while ( true ) { var did_one = false; var faces = moi.geometryDatabase.getSelectedObjects().getFaces(); for ( var i = 0; i < faces.length; ++i ) { var f = faces.item(i); var edges = f.getEdges(); for ( var j = 0; j < edges.length; ++j ) { var e = edges.item(j); var faces2 = e.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( f2.id != f.id && f2.isPlanar && f.isPlanar && f.isOnPlane( f2.planarFrame ) ) if ( !f2.selected ) { f2.selected = true; did_one = true; } } } } if ( !did_one ) break; }

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  rolnxyz
10085.10 In reply to 10085.9 
That's awesome Michael, thanks for the scripts!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Chris (CHRISTOPHER021)
10085.11 In reply to 10085.9 
thx you for these !!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Frenchy Pilou (PILOU)
10085.12 
BY Max SMirnov
Increase selection

script: function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',1);}} var so = moi.geometryDatabase.getSelectedObjects(), sf=so.getFaces(), i; for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges()); es(so.getEdges());

Decrease sélection
script: function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',0);}} var gd = moi.geometryDatabase; gd.invertSelection(); var so = gd.getSelectedObjects(), sf=so.getFaces(), i; gd.invertSelection(); for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges());
---
Pilou
Is beautiful that please without concept!
My Moi French Site My Gallery My MagicaVoxel Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
 
Show messages: All  1-7  8-12