Macro JointWire/es: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
{{Macro/es|Icon=Text-x-python|Name=JointWire|Name/es=JointWire|Description=Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas.
{{VeryImportantMessage|!!! This macro needs to be corrected. !!!}}
Toma como argumento una matriz de formas ([shape1,shape2,...])|Author=Tremblou}}


{{Macro/es
|Name=JointWire
|Translate=JointWire
|Icon=Macro_JointWire.png
|Description={{ColoredText|#ff0000|!!! This macro needs to be corrected. !!!}}<br/>Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas.
Toma como argumento una matriz de formas ([shape1,shape2,...])
|Author=Tremblou
|Version=0.1
|Date=2011-08-24
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/b/bb/Macro_JointWire.png ToolBar Icon]
}}

==Descripción==
Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas.
Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas.
Toma como argumento una matriz de formas ([shape1,shape2,...])
Toma como argumento una matriz de formas ([shape1,shape2,...])


==Script==

ToolBar Icon [[Image:Macro_JointWire.png]]

'''Macro_JointWire.FCMacro'''


{{Code|code=
{{MacroCode|code=


def findWires(edges):
def findWires(edges):
Line 72: Line 91:
}}
}}
{{clear}}
{{clear}}
<languages/>

Latest revision as of 10:20, 2 July 2021

!!! This macro needs to be corrected. !!!

JointWire

Descripción
!!! This macro needs to be corrected. !!!
Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas.

Toma como argumento una matriz de formas ([shape1,shape2,...])

Versión macro : 0.1
Fecha última modificación : 2011-08-24
Versión FreeCAD : All
Descargar : ToolBar Icon
Autor : Tremblou

Autor
Tremblou
Descargar
ToolBar Icon
Enlace
Versión Macro
0.1
Fecha última modificación
2011-08-24
Versión(es) FreeCAD
All
Acceso directo predeterminado
None
Ver también
None

Descripción

Esta macro permite encontrar y juntar todas las aristas con la respectiva arista más cercana no conectada utilizando líneas. Toma como argumento una matriz de formas ([shape1,shape2,...])

Script

ToolBar Icon

Macro_JointWire.FCMacro

def findWires(edges):
    def verts(shape):
                return [shape.Vertexes[0].Point,shape.Vertexes[-1].Point]
        def group(shapes):
                shapesIn = shapes[:]
                pointTst = []
        pointOut =[]
        for s in shapesIn :
            pointTst=pointTst+[s.Vertexes[0].Point]
            pointTst=pointTst+[s.Vertexes[-1].Point]
        print pointTst               
        changed = False
                for s in shapesIn:
                        if len(s.Vertexes) < 2:
                print "one vertex, its a circle, just add"
                        else:                             
                                for v in verts(s):
                    twoDot=0
                                        for vv in pointTst:
                                                if v == vv:
                            twoDot=twoDot+1                           
                        if v==vv and twoDot==2 :                   
                            changed = True
                            print "found matching vert"
                            break
                                    if twoDot<2:
                        print "didn't find any matching vert..."
                        pointOut.append(v)
         print "Dots non connected", pointOut
                return(changed,pointOut)
    def joint(point):
        for p in range(len(point)/2) :
            print point
            deltI=Part.Vertex(100,100,100).Point
            pos=1
            for pp in range(len(point)-1) :
                print "position:",pp+1
                if len(point)-1>1:
                    deltN=(point[0]-point[pp+1])
                    if deltN.Length<deltI.Length:
                        deltI=deltN
                        pos=pp+1
                        print "changement",pos
                else:
                    pos=1   
            print "points a joindre",point[0],point[pos]
            if point[0]!=point[pos]:
                Part.show(Part.makePolygon([point[0],point[pos]]))
            else:
                print "WARNING les points ont la meme valeurs "
            point.pop(0)
            point.pop(pos-1)
        point=0 #to have a return normally void
        return(point)
    working = True
        edgeSet = edges
    result = group(edgeSet)
        working = result[0]
        edgeSet = result[1]
    joint(result[1])
        return result[1]