Macro JointWire/de: Difference between revisions
(Created page with "{{VeryImportantMessage|!!! Dieses Makro muss korrigiert werden. !!!}}") |
(Created page with "Werkzeugleistensymbol Image:Macro_JointWire.png") |
||
Line 18: | Line 18: | ||
==Skript== |
==Skript== |
||
Werkzeugleistensymbol [[Image:Macro_JointWire.png]] |
|||
'''Macro_JointWire.FCMacro''' |
'''Macro_JointWire.FCMacro''' |
Latest revision as of 18:39, 19 August 2021
!!! Dieses Makro muss korrigiert werden. !!!
Beschreibung |
---|
!!! This macro needs to be corrected. !!! Mit diesem Makro können Sie alle nicht verbundenen Kanten über eine Linie mit der nächsten nicht verbundenen Kante suchen und verknüpfen. Es nimmt eine Formmatrix im Eintrag ([Shape1, Shape2, ...]) Versionsmakro : 1.0 Datum der letzten Änderung : 2011-08-24 FreeCAD version : All Herunterladen : ToolBar Icon Autor: Tremblou |
Autor |
Tremblou |
Herunterladen |
ToolBar Icon |
Links |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
Macro-Version |
1.0 |
Datum der letzten Änderung |
2011-08-24 |
FreeCAD-Version(s) |
All |
Standardverknüpfung |
None |
Siehe auch |
None |
Beschreibung
Mit diesem Makro können Sie alle nicht verbundenen Kanten über eine Linie mit der nächsten nicht verbundenen Kante suchen und verknüpfen. Es nimmt eine Formmatrix im Eintrag ([Shape1, Shape2, ...])
Skript
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]