Macro Circle/fr: Difference between revisions

From FreeCAD Documentation
m (Created page with "==Utilisation== Copiez le code et collez le dans la console Python de FreeCAD, la fonction sera disponible tout le temps de votre cession (vous pouvez aussi utiliser ce code d...")
m (Created page with "* '''x y z''' : coordonnées du cercle s'il n'y apas de coordonnées, le cercle est créé aux coordonnées 0,0,0 *'''radius''' : rayon du cercle *'''diameter''' : diamètre d...")
Line 10: Line 10:
Donnez les paramètres au choix :
Donnez les paramètres au choix :


* '''x y z''' : coordinates of circle if not coordinates the circle is created on point 0,0,0
* '''x y z''' : coordonnées du cercle s'il n'y apas de coordonnées, le cercle est créé aux coordonnées 0,0,0
*'''radius''' : radius of cicle
*'''radius''' : rayon du cercle
*'''diameter''' : diameter of circle
*'''diameter''' : diamètre du cercle
*'''circumference''' : circumference of circle
*'''circumference''' : circonférence du cercle
*'''area''' : area of circle
*'''area''' : surface du cercle
*'''startangle''' : start angle for arc
*'''startangle''' : début d'angle de l'arc à créer
*'''endangle''' : end angle for arc
*'''endangle''' : fin d'angle de l'arc
*'''arc''' and '''anglecenter''' : arc in combination with anglecenter
*'''arc''' and '''anglecenter''' : longueur de l'arc arc en combinaison avec angle central
** '''arc''' = length of arc
** '''arc''' = longueur de l'arc
** '''anglecenter''' = angle of center circle to extremities of arc
** '''anglecenter''' = angle central à partir du centre du cercle jusqu'aux deux extrémités de l'arc (l'angle est donné en degrés)
*'''cord''' and '''arrow''' : cord in combination with arrow of circle
*'''cord''' and '''arrow''' : longueur de la corde en combinaison avec la longueur de la flèche
** '''cord''' : length of cord of circle
** '''cord''' : longueur de la corde du cercle
** '''arrow''' : length of arrow of circle
** '''arrow''' : longueur de la flèche du cercle
*'''center''' : if center as different 0 one point is created on center of circle
*'''center''' : si "center" est différent de 0 un point sera créé au centre du cercle


if there is no parameter "'''circle()'''" a list of functions is displayed in the report view
if there is no parameter "'''circle()'''" a list of functions is displayed in the report view

Revision as of 10:22, 6 February 2015

File:Text-x-python Macro circle

Description
Crée un cercle en donnant différents paramètres.

Author: mario52
Author
mario52
Download
None
Links
Macro Version
1.0
Date last modified
None
FreeCAD Version(s)
None
Default shortcut
None
See also
None

Description

Cette petite macro vous permet de créer un cercle en donnant comme argument différents paramètres comme le rayon, le diamètre, la circonférence, la surface, début d'angle, fin d'angle, arc, angle central, corde, flèche, point au centre du cercle au choix.

Le cercle fait toujours face à l'écran (avec la commande getCameraOrientation)

Utilisation

Copiez le code et collez le dans la console Python de FreeCAD, la fonction sera disponible tout le temps de votre cession (vous pouvez aussi utiliser ce code dans une macro). Donnez les paramètres au choix :

  • x y z : coordonnées du cercle s'il n'y apas de coordonnées, le cercle est créé aux coordonnées 0,0,0
  • radius : rayon du cercle
  • diameter : diamètre du cercle
  • circumference : circonférence du cercle
  • area : surface du cercle
  • startangle : début d'angle de l'arc à créer
  • endangle : fin d'angle de l'arc
  • arc and anglecenter : longueur de l'arc arc en combinaison avec angle central
    • arc = longueur de l'arc
    • anglecenter = angle central à partir du centre du cercle jusqu'aux deux extrémités de l'arc (l'angle est donné en degrés)
  • cord and arrow : longueur de la corde en combinaison avec la longueur de la flèche
    • cord : longueur de la corde du cercle
    • arrow : longueur de la flèche du cercle
  • center : si "center" est différent de 0 un point sera créé au centre du cercle

if there is no parameter "circle()" a list of functions is displayed in the report view

Example entrance :

circle(arc=50,anglecenter=20,center=1)
circle(cord = 100,arrow = 20,center=1)
circle(circumference = 100,center=1)

Script

Macro_circle.FCMacro

# -*- coding: utf-8 -*-
# creer un cercle ou un arc entierement parametrabel en utilisant :
# create a circle or arc fully parametrabel using:
# x y z coordinates
#with radius
#with diameter
#with circumference
#with area
#with startangle
#with endangle
#with [arc and anglecenter]      in combination
#with [cord and arrow]           in combination
#with center (if center as different 0 one point is created on center of circle)
# s'il n'y a pas de parametre "circle()" une liste des fonctions s'affiche dans la Vue rapport
# if there is no parameter "circle()" a list of functions is displayed in the report view

__title__   = "circle"
__author__  = "Mario52"
__date__    = "31/01/2015"

import Draft #, Part
def circle(x=0.0,y=0.0,z=0.0,radius=0.0,diameter=0.0,circumference=0.0,area=0.0,startangle=0.0,endangle=0.0,arc=0.0,anglecenter=0.0,cord=0.0,arrow=0.0,center=0):
    from math import sqrt, pi
    pl = FreeCAD.Placement()
    pl.Rotation = FreeCADGui.ActiveDocument.ActiveView.getCameraOrientation()   
    pl.Base=FreeCAD.Vector(x,y,z)

    if diameter != 0:                                      # with diameter
        radius = diameter / 2
    elif circumference != 0:                               # with circumference
        radius = (circumference / pi) / 2
    elif area != 0:                                        # with area
        radius =  sqrt((area / pi))
    elif (cord != 0) and (arrow != 0):                     # with cord and arrow
        radius = ((arrow**2) + (cord**2) / 4) / (arrow*2) 
    elif (arc != 0) and (anglecenter != 0):                # with arc and anglecenter central
        radius = ((360/anglecenter)*arc) / pi/2
        if endangle != 0:
            startangle  = endangle - anglecenter
        endangle   = anglecenter + startangle
        startangle  = endangle - anglecenter

    if radius != 0:
        Draft.makeCircle(radius,placement=pl,face=False,startangle=startangle,endangle=endangle,support=None)
        if center != 0:
            Draft.makePoint(x,y,z)
    else:
        App.Console.PrintMessage("unexpected keyword argument" + "\n")
        App.Console.PrintMessage("circle(x,y,z,radius,diameter,circumference,area,startangle,endangle,[arc,anglecenter],[cord,arrow],center)" + "\n")

#example
#circle(arc=50,anglecenter=20,center=1)

Memo of circle

Examples codes

circle(radius=10)
circle(x=15,diameter=20)
circle(y=45,circumference=100)
examples
examples
circle(y=-15,area=100)
circle(y=-15,x=15,startangle=60,endangle=-20,center=1)
circle(y=-15,x=45,cord=9,arrow=3,center=1)
circle(x=65,y=-15,arc=3.5,anglecenter=40,startangle=20,center=1)
examples
examples
Other languages: