'---Flip Edge--- '---Machinery Contents--- '---Create by Praying Spider--- '---Release 2007/10/30---- '---Optimization Fales---- Option Explicit Dim SelComCol,SelObj,SubCon1,SubCon2,Con,TgtSub,Tgt_Eg_1,Tgt_Pt_1,Tgt_Pt_2 Dim RemPt,RemOP,i,DefComCnt,AftComCnt Set SelComCol = Selection(0).SubComponent.ComponentCollection ToggleObjectComponentSelectionFilter Set SelObj = Selection(0) Set SubCon1 = CreateObject("XSI.Collection") Set SubCon2 = CreateObject("XSI.Collection") For each Con in SelComCol If Con.SubComponent = SelObj&".edge[LAST]" Then SubCon1.Add Con Else SubCon2.Add Con End if Next If SubCon1.Count = 1 Then For each Con in SubCon1 Set Tgt_Eg_1 = CreateObject("XSI.Collection") Set Tgt_Pt_1 = CreateObject("XSI.Collection") SelectObj Con SelectAdjacent , "Point", False Set RemPt = Selection(0) SelectObj Con SelectAdjacent , "Polygon", False SelectAdjacent , "Point", False RemoveFromSelection RemPt Set TgtSub = Selection(0).SubComponent.ComponentCollection For i = 0 to 0 Tgt_Pt_1.Add TgtSub(i).SubComponent.ComponentCollection Next RemoveFromSelection Tgt_Pt_1 Set Tgt_Pt_2 = Selection(0) SelectAdjacent , "Edge", False Set TgtSub = Selection(0).SubComponent.ComponentCollection For i = 0 to 0 Tgt_Eg_1.Add TgtSub(i).SubComponent.ComponentCollection Next ApplyTopoOp "DissolveComponent",Con , siUnspecified, siPersistentOperation SelectObj SelObj&".edge[*]" Set DefComCnt = Selection(0).SubComponent.ComponentCollection Set RemOP = AddEdge (Tgt_Pt_1&";"&Tgt_Eg_1&";", 0, siPersistentOperation) SelectObj SelObj&".edge[*]" Set AftComCnt = Selection(0).SubComponent.ComponentCollection If AftComCnt.Count = DefComCnt.Count Then DeleteObj RemOP AddEdge Tgt_Pt_1&";"&Tgt_Eg_1&";", 100, siPersistentOperation Else logmessage "Added Edge.." End if Next Else logmessage "No Item..." End if For each Con in SubCon2 Set Tgt_Eg_1 = CreateObject("XSI.Collection") Set Tgt_Pt_1 = CreateObject("XSI.Collection") SelectObj Con SelectAdjacent , "Point", False Set RemPt = Selection(0) SelectObj Con SelectAdjacent , "Polygon", False SelectAdjacent , "Point", False RemoveFromSelection RemPt Set TgtSub = Selection(0).SubComponent.ComponentCollection For i = 0 to 0 Tgt_Pt_1.Add TgtSub(i).SubComponent.ComponentCollection Next RemoveFromSelection Tgt_Pt_1 Set Tgt_Pt_2 = Selection(0) SelectAdjacent , "Edge", False Set TgtSub = Selection(0).SubComponent.ComponentCollection For i = 0 to 0 Tgt_Eg_1.Add TgtSub(i).SubComponent.ComponentCollection Next ApplyTopoOp "DissolveComponent",Con , siUnspecified, siPersistentOperation SelectObj SelObj&".edge[*]" Set DefComCnt = Selection(0).SubComponent.ComponentCollection Set RemOP = AddEdge (Tgt_Pt_1&";"&Tgt_Eg_1&";", 0, siPersistentOperation) SelectObj SelObj&".edge[*]" Set AftComCnt = Selection(0).SubComponent.ComponentCollection If AftComCnt.Count = DefComCnt.Count Then DeleteObj RemOP AddEdge Tgt_Pt_1&";"&Tgt_Eg_1&";", 100, siPersistentOperation Else logmessage "Added Edge.." End if Next DeselectAll