Macro cutCircle/it

(Redirected from Macro cutCircle/it)

Text-x-python.png Taglia Cerchio

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


Descrizione

Questa macro suddivide un cerchio(i) o arco(i) in archi, gli archi possono essere di colori alternati per distinguerli.


CutCircle

Uso

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.

Script

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 

In progetto

Applicare la suddivisione a un cilindro

Versione

ver 00.02 09/03/2015 : adding create arcs coloured altenat alternately Red White Red White .... or not

ver 00.01 24/02/2015 :

Online version: "http://www.freecadweb.org/wiki/index.php?title=Macro_Cut_Circle/it&oldid=240672"

Navigation menu