Macro Cut Circle/fr: Difference between revisions
m (Created page with "==Projet== Couper les cercles d'un cylindre.") |
(Updating to match new version of source page) |
||
Line 7: | Line 7: | ||
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: |
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: |
||
<syntaxhighlight> |
<syntaxhighlight> |
||
cutCircle(5) |
cutCircle(5, 1) # here with 5 arcs and coloured |
||
⚫ | |||
</syntaxhighlight> |
</syntaxhighlight> |
||
pour voir les cercles et arcs découpés dans cet exemple cinq arcs contigus. |
pour voir les cercles et arcs découpés dans cet exemple cinq arcs contigus. |
||
Line 17: | Line 18: | ||
<syntaxhighlight> |
<syntaxhighlight> |
||
# selection circle(s) ( |
# selection circle(s) (circles and arcs) |
||
# give number of cut |
# give number of cut, biColor 0/1 |
||
# cut the circle to x |
# cut the circle to x arcs |
||
# if biColor is <> 0 the arcs are colored alternately Red White Red White .... |
|||
# |
# |
||
# |
|||
__title__ = "cutCircle" |
__title__ = "cutCircle" |
||
__author__ = "Mario52" |
__author__ = "Mario52" |
||
__date__ = " |
__date__ = "09/03/2015" |
||
__version__ = "00.02" |
|||
import Draft |
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() |
selection = FreeCADGui.Selection.getSelection() |
||
for piece in selection: |
for piece in selection: |
||
Line 36: | Line 48: | ||
rayon = piece.Radius |
rayon = piece.Radius |
||
placem = piece.Placement |
placem = piece.Placement |
||
if (nom[:8] == "Cylinder"): |
if (nom[:8] == "Cylinder"): |
||
pivot0 = float(piece.Angle/number) |
pivot0 = float(piece.Angle/number) |
||
FreeCAD.Console.PrintMessage("Cylinder"+"\n") |
|||
else: |
else: |
||
pivot0 = float(360/number) |
pivot0 = float(360/number) |
||
FreeCAD.Console.PrintMessage("Circle"+"\n") |
|||
pivot1 = 0.0 |
pivot1 = 0.0 |
||
for i in range(number): |
for i in range(number): |
||
Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1),endangle=(pivot0+pivot1),support=None) |
cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1),endangle=(pivot0+pivot1),support=None) |
||
if biColor != 0: |
|||
# circle(radius=rayon,arc=(circonference/number),startangle=(pivot1), endangle=(pivot0+pivot1),placemObject=placem) # with "macro circle" |
|||
defbiColor(cercle) |
|||
pivot1 += pivot0 |
pivot1 += pivot0 |
||
elif nom[:3] == "Arc": |
elif nom[:3] == "Arc": |
||
FreeCAD.Console.PrintMessage("Arc"+"\n") |
|||
circonference = piece.Shape.Length |
circonference = piece.Shape.Length |
||
rayon = piece.Radius |
rayon = piece.Radius |
||
Line 58: | Line 71: | ||
pivot1 = 0.0 |
pivot1 = 0.0 |
||
for i in range(number): |
for i in range(number): |
||
Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1+First),endangle=(pivot0+pivot1+First),support=None) |
cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1+First),endangle=(pivot0+pivot1+First),support=None) |
||
if biColor != 0: |
|||
# circle(radius=rayon,arc=(circonference/number),startangle=(pivot1+First), endangle=(pivot0+pivot1+First),placemObject=placem) # with "macro circle" |
|||
defbiColor(cercle) |
|||
pivot1 += pivot0 |
pivot1 += pivot0 |
||
Line 70: | Line 84: | ||
==Version== |
==Version== |
||
ver 0.1 24/02/2015 : |
ver 0.1 24/02/2015 : |
||
ver 00.02 09/03/2015 : adding create arcs coloured altenat alternately Red White Red White .... or not |
|||
ver 00.01 24/02/2015 : |
|||
{{clear}} |
{{clear}} |
Revision as of 18:05, 9 March 2015
File:Text-x-python Macro cutCircle |
Description |
---|
Coupe un cercle ou un arc en nombre d'arcs pécifié. Author: mario52 |
Author |
mario52 |
Download |
None |
Links |
Macros recipes How to install macros How to customize toolbars |
Macro Version |
1.0 |
Date last modified |
None |
FreeCAD Version(s) |
None |
Default shortcut |
None |
See also |
None |
Description
Cette macro coupe un cercle(s) ou un arc(s) sélectionné(s) en plusieurs arcs contigus.
Utilisation
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é.
Script
Macro_cutCircle.FCMacro
# 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 ....
#
__title__ = "cutCircle"
__author__ = "Mario52"
__date__ = "09/03/2015"
__version__ = "00.02"
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
Projet
Couper les cercles d'un cylindre.
Version
ver 0.1 24/02/2015 :
ver 00.02 09/03/2015 : adding create arcs coloured altenat alternately Red White Red White .... or not
ver 00.01 24/02/2015 :