Macro Draw 2D Function: Difference between revisions

From FreeCAD Documentation
(Vertical {{Macro}}; fixed icon)
m (icon)
Line 4: Line 4:
{{Macro
{{Macro
|Name=Draw 2D Function
|Name=Draw 2D Function
|Icon=Macro_Draw_2D_Function.png
|Description=Use it to draw a function described by a "equation" [z=F(x)] (Z-X plane)
|Description=Use it to draw a function described by a "equation" [z=F(x)] (Z-X plane)
|Author=unknown
|Author=unknown
|Version=1.0
|Version=1.0
|Date=2011-08-01
|Date=2011-08-01
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/3/36/Macro_Draw_2D_Function.png ToolBar Icon]
}}
}}


Line 44: Line 47:
ZZ=XX*XX/(4*F)
ZZ=XX*XX/(4*F)
if I==0:
if I==0:
print "Le test est vrai !"
print( "Le test est vrai !")
nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))
nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))
WWire=Part.Wire([nomme])
WWire=Part.Wire([nomme])
else :
else :
print "Le test est 2 !"
print( "Le test est 2 !")
nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))
nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))
WWire=Part.Wire([WWire,nomme])
WWire=Part.Wire([WWire,nomme])

Revision as of 19:47, 15 June 2019

Draw 2D Function

Description
Use it to draw a function described by a "equation" [z=F(x)] (Z-X plane)

Macro version: 1.0
Last modified: 2011-08-01
FreeCAD version: All
Download: ToolBar Icon
Author: unknown
Author
unknown
Download
ToolBar Icon
Links
Macro Version
1.0
Date last modified
2011-08-01
FreeCAD Version(s)
All
Default shortcut
None
See also
None

Description

Use it to draw a function described by a "equation" [z=F(x)] (Z-X plane) The example done here generate a parabol. Has no dialog. Needs to be defined:

F = variable used in the function,
X = initial value of x,
Nb = Number of step,
Z = function express with x
ZZ = function express with xx

Script

Macro_Draw_2D_Function.FCMacro

# F = variable used in the function,
# X = initial value of x,
# Nb = Number of step,
# Z = function express with x
# ZZ = function express with xx

import FreeCAD, FreeCADGui, Part
import math
F=800
X=-500
Nb=10
Step=1000/Nb
Y=0
for I in range(Nb):
	XX=X+Step 
 	Z=X*X/(4*F)
 	ZZ=XX*XX/(4*F)
 	if I==0:
 		print( "Le test est vrai !")
 		nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))
 		WWire=Part.Wire([nomme])
 	else :
 		print( "Le test est 2 !")
 		nomme=Part.makeLine((X,Y,Z),(XX,Y,ZZ))		
 		WWire=Part.Wire([WWire,nomme])
 	X=XX 
 
Part.show(WWire)