Macro Cut Circle: Difference between revisions
(modify order example) |
(Marked this version for translation) |
||
Line 90: | Line 90: | ||
}} |
}} |
||
<translate> |
<translate> |
||
==Example== |
==Example== <!--T:11--> |
||
</translate> |
</translate> |
||
Revision as of 21:03, 3 August 2018
File:Text-x-python Macro Cut Circle |
Description |
---|
Cut a circle or arc in x arcs. Macro version: 00.02 Last modified: 2015-03-09 Author: mario52 |
Author |
mario52 |
Download |
None |
Links |
Macros recipes How to install macros How to customize toolbars |
Macro Version |
00.02 |
Date last modified |
2015-03-09 |
FreeCAD Version(s) |
None |
Default shortcut |
None |
See also |
None |
Description
This macro cut a circle(s) or arc(s) in multiple arcs, the arcs can be coloured alternately to distinguish.
Use
Copy the macro cutCirle complete in the Python console FreeCAD select the circle(s) and (or) arc(s) type in the console:
to see the circles and arcs cut here in the example 5 contiguous arcs.
The original object is not deleted.
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
Example
cutCircle(5, 1) # here with 5 arcs and coloured
cutCircle(4) #
Project
Cut circle to cylinder
Version
ver 00.02 09/03/2015 : adding create arcs coloured altenat alternately Red White Red White .... or not
ver 00.01 24/02/2015 :