Macro Draw Parametric 2D Function/fr: Difference between revisions
m (Created page with "{{Macro/fr|Icon=Text-x-python|Name/fr=drawParametric2DFunction|Description=Dessin 2-dimensions, et éventuellement paramétrique avec une équation polaire .|Author=T4b}}") |
No edit summary |
||
(26 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
⚫ | |||
{{Macro/fr |
|||
|Name=Macro Draw Parametric 2D Function |
|||
|Icon=Macro_Draw_Parametric_2D_Function.png |
|||
⚫ | |||
|Author=T4b |
|||
|Version=2.0 |
|||
|Date=2012-08-30 |
|||
|FCVersion=Toutes versions |
|||
|Download=[https://www.freecadweb.org/wiki/images/0/03/Macro_Draw_Parametric_2D_Function.png Icône pour votre barre d'outils] |
|||
}} |
|||
==Description== |
|||
Draws 2-dimensional, paramétrique et optionnellement équation polaire |
|||
[[Image:Macro_drawParametric2Dfunction.png|480px]]{{Caption|DrawParametric2DFunction}} |
|||
==Limitations== |
|||
Possède encore quelques bugs et il manque certaines fonctionnalités. La documentation est dans le docstrings. |
|||
==Utilisation== |
|||
Type : |
|||
Exemple d'utilisation: |
|||
draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1) |
|||
==Script== |
|||
ToolBar Icon [[Image:Macro_Draw_Parametric_2D_Function.png]] |
|||
'''Macro_drawParametric2DFunction.FCMacro''' |
|||
Still has some bugs and misses some features. Documentation is in the docstrings. |
|||
{{MacroCode|code= |
|||
<syntaxhighlight> |
|||
import FreeCAD, FreeCADGui, Part |
import FreeCAD, FreeCADGui, Part |
||
Line 25: | Line 55: | ||
nStart=n |
nStart=n |
||
while math.fabs(n-nd)-1.0/step>0: |
while math.fabs(n-nd)-1.0/step>0: |
||
print "n: " + str(n) |
print( "n: " + str(n)) |
||
x=evalFunction(xFunction, n) |
x=evalFunction(xFunction, n) |
||
y=evalFunction(yFunction, n) |
y=evalFunction(yFunction, n) |
||
nNext=n+math.copysign(1,nd-n)/step |
nNext=n+math.copysign(1,nd-n)/step |
||
print "nNext: " + str(nNext) |
print( "nNext: " + str(nNext)) |
||
xNext=evalFunction(xFunction, nNext) |
xNext=evalFunction(xFunction, nNext) |
||
yNext=evalFunction(yFunction, nNext) |
yNext=evalFunction(yFunction, nNext) |
||
Line 36: | Line 66: | ||
else: |
else: |
||
nextSeg=(x*math.cos(y),x*math.sin(y),z),(xNext*math.cos(yNext),xNext*math.sin(yNext),z) |
nextSeg=(x*math.cos(y),x*math.sin(y),z),(xNext*math.cos(yNext),xNext*math.sin(yNext),z) |
||
print "nextSeg: " + str(nextSeg) |
print( "nextSeg: " + str(nextSeg)) |
||
nomme=Part.makeLine(*nextSeg) |
nomme=Part.makeLine(*nextSeg) |
||
if n==nStart: |
if n==nStart: |
||
Line 47: | Line 77: | ||
draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1) |
draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1) |
||
}} |
|||
</syntaxhighlight> |
|||
⚫ |
Latest revision as of 13:29, 23 May 2020
Description |
---|
Dessin 2-dimensions, et éventuellement paramétrique avec une équation polaire. Version macro : 2.0 Date dernière modification : 2012-08-30 Version FreeCAD : Toutes versions Téléchargement : Icône pour votre barre d'outils Auteur: T4b |
Auteur |
T4b |
Téléchargement |
Icône pour votre barre d'outils |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
2.0 |
Dernière modification |
2012-08-30 |
Version(s) FreeCAD |
Toutes versions |
Raccourci clavier |
None |
Voir aussi |
None |
Description
Draws 2-dimensional, paramétrique et optionnellement équation polaire
DrawParametric2DFunction
Limitations
Possède encore quelques bugs et il manque certaines fonctionnalités. La documentation est dans le docstrings.
Utilisation
Type :
Exemple d'utilisation:
draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1)
Script
Macro_drawParametric2DFunction.FCMacro
import FreeCAD, FreeCADGui, Part import math def evalFunction(suppliedFunction, n): """This function uses eval to evaluate suppliedFunction. It does in no way check whether suppliedFunction is evil, thus it is itself evil! """ return eval(suppliedFunction) def draw2Dfunction(xFunction="n", yFunction="n", n=-5, nd=10, step=10, z=0, pol=0): """Draws 2-dimensional mathemathical functions The function is drawn for n's between n and n+nd, in steps of 1/step, on the z-coordinate z. Equations for x and y can be given (xFunction and yFunction arguments), they default to n. If pol=1 then x is interpreted as r and y is interpreted as t. """ nStart=n while math.fabs(n-nd)-1.0/step>0: print( "n: " + str(n)) x=evalFunction(xFunction, n) y=evalFunction(yFunction, n) nNext=n+math.copysign(1,nd-n)/step print( "nNext: " + str(nNext)) xNext=evalFunction(xFunction, nNext) yNext=evalFunction(yFunction, nNext) if pol==0: nextSeg=(x,y,z),(xNext,yNext,z) else: nextSeg=(x*math.cos(y),x*math.sin(y),z),(xNext*math.cos(yNext),xNext*math.sin(yNext),z) print( "nextSeg: " + str(nextSeg)) nomme=Part.makeLine(*nextSeg) if n==nStart: WWire=Part.Wire([nomme]) else: WWire=Part.Wire([WWire,nomme]) n=nNext Part.show(WWire) #Example usage: draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1)