|
Description |
---|
Coupe un cercle ou un arc en nombre d'arcs pécifié. |
Auteur |
mario52 |
Liens |
Recettes macros Comment installer une macro Comment ajouter une barre d'outils |
Version |
00.02 |
Date dernière modification |
2015-03-09 |
Cette macro coupe un cercle(s) ou un arc(s) sélectionné(s) en plusieurs arcs contigus, les arcs sont colorés alternativement en rouge et blanc pour distinguer les différents arcs.
Copiez la macro dans la console Python de FreeCAD, sélectionnez les arcs et cercles concernés, tapez la commande cutCirle dans la console Python de FreeCAD:
cutCircle(5, 1) # here with 5 arcs and coloured cutCircle(4) #
pour voir les cercles et arcs découpés dans cet exemple cinq arcs contigus.
l'objet(s) original(aux) n'est pas éffacé.
Macro_Cut_Circle.FCMacro
__title__= "cutCircle" __author__= "Mario52" __date__= "09/03/2015" __version__= "00.02" # selection circle(s) (circles and arcs) # give number of cut, biColor 0/1 # cut the circle to x arcs # if biColor is <> 0 the arcs are colored alternately Red White Red White .... # import Draft global biscolor ; biscolor = 0 def cutCircle(number = 2, biColor = 0): global biscolor def defbiColor(objet): global biscolor if biscolor == 0: FreeCADGui.ActiveDocument.getObject(objet.Name).LineColor = (1.0,0.0,0.0) # 255 = 1 (10 = (1/255 * 10 )) biscolor = 1 else: FreeCADGui.ActiveDocument.getObject(objet.Name).LineColor = (1.0,1.0,1.0) # 255 = 1 (10 = (1/255 * 10 )) biscolor = 0 selection = FreeCADGui.Selection.getSelection() for piece in selection: nom = piece.Name if (nom[:6] == "Circle") or (nom[:8] == "Cylinder"): circonference = piece.Shape.Length rayon = piece.Radius placem = piece.Placement if (nom[:8] == "Cylinder"): pivot0 = float(piece.Angle/number) FreeCAD.Console.PrintMessage("Cylinder"+"\n") else: pivot0 = float(360/number) FreeCAD.Console.PrintMessage("Circle"+"\n") pivot1 = 0.0 for i in range(number): cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1),endangle=(pivot0+pivot1),support=None) if biColor != 0: defbiColor(cercle) pivot1 += pivot0 elif nom[:3] == "Arc": FreeCAD.Console.PrintMessage("Arc"+"\n") circonference = piece.Shape.Length rayon = piece.Radius placem = piece.Placement First = float(piece.FirstAngle) Last = float(piece.LastAngle) pivot0 = abs((First - Last) / number) pivot1 = 0.0 for i in range(number): cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1+First),endangle=(pivot0+pivot1+First),support=None) if biColor != 0: defbiColor(cercle) pivot1 += pivot0
Couper les cercles d'un cylindre.
ver 00.02 09/03/2015 : ajout de création des arcs colorés alternativement rouge et blanc ou non.
ver 00.01 24/02/2015 :