Given a selected polygon, add the next 5 polygons to the selection. For example, if polygon 22 is selected, then add polygons 23,24,25,26, and 27 to the selection.
You can do this without using any loops, by using a string expression for the polygon components.
Here’s some JScript that shows two ways to do it. Method 1 uses a string expression. Method 2 is a loop, which can either use the Polygons collection or a string expression.
var o = Selection(0).SubComponent.Parent3DObject var p = Selection(0).SubComponent.ComponentCollection(0) var LAST = o.ActivePrimitive.Geometry.Polygons.Count; // Method 1 // SelectGeometryComponents("grid.poly[22-27]", null, null); var sPoly = ".poly["+p.Index+"-"+Math.min( p.Index+5,LAST-1 )+"]" //SelectGeometryComponents( o.FullName + sPoly ); //Selection.SetAsText( o.FullName + sPoly ); // Method 2 //for ( var i = p.Index+1 ; i < Math.min( p.Index+5,LAST ) ; i++ ) //{ // ToggleSelection( o.ActivePrimitive.Geometry.Polygons(i) ); // -or- // ToggleSelection( o.FullName + ".poly["+i+"]" ) //}
Here’s some Python that does something similar but different:
si = Application o = si.Selection(0).SubComponent.Parent3DObject p = si.Selection(0).SubComponent.ComponentCollection(0) LAST = o.ActivePrimitive.Geometry.Polygons.Count s = ".poly[%s-%s]" % ( p.Index, min( p.Index+5,LAST-1 ) ) si.SelectGeometryComponents( s )