Macro Draw Parametric 2D Function/es: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Updating to match new version of source page)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
{{Macro/es|Icon=Text-x-python|Name=Macro Draw Parametric 2D Function|Name/es=Macro Draw Parametric 2D Function|Description=Dibuja ecuaciones 2D paramétricas y opcionalmente polares.|Author=T4b|Version=1.0|Date=2012-08-30}}
{{Macro/es

|Name=Macro Draw Parametric 2D Function
[[Image:Macro_drawParametric2Dfunction.png|480px|DrawParametric2DFunction]]
|Icon=Macro_Draw_Parametric_2D_Function.png
|Translate=Macro Dibujar Parametrico 2D Función
|Description=Dibuja ecuaciones 2D paramétricas y opcionalmente polares.
|Author=T4b
|Version=1.0
|Date=2012-08-30
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/0/03/Macro_Draw_Parametric_2D_Function.png ToolBar Icon]
}}


==Descriptivo==
Aún tiene algunos errores y faltan algunas caracteristicas. La documentación está en el docstrings.
Aún tiene algunos errores y faltan algunas caracteristicas. La documentación está en el docstrings.


[[Image:Macro_drawParametric2Dfunction.png|480px]]{{Caption|DrawParametric2DFunction}}
==Limitations==
Still has some bugs and misses some features. Documentation is in the docstrings.


==Limitativos==
Aún tiene algunos errores y faltan algunas caracteristicas. La documentación está en el docstrings.

<div class="mw-translate-fuzzy">
==Use==
==Use==
Type :
Type :
</div>
{{Code|code=

#Example usage:

Ejemplo de uso:

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)


==Guión==
}}


ToolBar Icon [[Image:Macro_Draw_Parametric_2D_Function.png]]
==Script==


'''Macro_drawParametric2DFunction.FCMacro'''
'''Macro_drawParametric2DFunction.FCMacro'''

{{Code|code=
{{MacroCode|code=


import FreeCAD, FreeCADGui, Part
import FreeCAD, FreeCADGui, Part
Line 41: Line 58:
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 52: Line 69:
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 64: Line 81:


}}
}}

<languages/>

Latest revision as of 10:16, 23 May 2020

Macro Dibujar Parametrico 2D Función

Descripción
Dibuja ecuaciones 2D paramétricas y opcionalmente polares.

Versión macro : 1.0
Fecha última modificación : 2012-08-30
Versión FreeCAD : All
Descargar : ToolBar Icon
Autor : T4b
Autor
T4b
Descargar
ToolBar Icon
Enlace
Versión Macro
1.0
Fecha última modificación
2012-08-30
Versión(es) FreeCAD
All
Acceso directo predeterminado
None
Ver también
None

Descriptivo

Aún tiene algunos errores y faltan algunas caracteristicas. La documentación está en el docstrings.

DrawParametric2DFunction

Limitativos

Aún tiene algunos errores y faltan algunas caracteristicas. La documentación está en el docstrings.

Use

Type :


Ejemplo de uso:

draw2Dfunction(xFunction="0.5*n", yFunction="-0.75*n", n=0, nd=-math.pi, step=50, pol=1)

Guión

ToolBar Icon

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)