|
Descrizione |
---|
Suddivide un cerchio o un arco nel numero richiesto di archi. |
Autore |
mario52 |
Link |
Esempi di macro Come installare le Macro Personalizzare la barra degli strumenti |
Versione |
00.02 |
Data ultima modifica |
2015-03-09 |
Questa macro suddivide un cerchio(i) o arco(i) in archi, gli archi possono essere di colori alternati per distinguerli.
Copiare la macro cutCirle completa nella console Python di FreeCAD, selezionare il cerchio(i) e/o l'arco(i) poi digitare nella console:
cutCircle(5, 1) # here with 5 arcs and coloured cutCircle(4) #
per vedere i cerchi e gli archi tagliati, come in questo esempio, in 5 archi contigui.
Gli oggetti originali non vengono eliminati.
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
Applicare la suddivisione a un cilindro
ver 00.02 09/03/2015 : adding create arcs coloured altenat alternately Red White Red White .... or not
ver 00.01 24/02/2015 :