Macro Draw 2D Function/cs: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro|Icon=Text-x-python|Name=draw2DFunction|Description=Use it to draw a function described by a "equation" [z=F(x)] (Z-X plane)|Author=unknown}} |
|||
{{Macro/cs |
|||
|Name=Draw 2D Function |
|||
|Translate=Vykresli 2D funkci |
|||
|Icon=Macro_Draw_2D_Function.png |
|||
⚫ | |||
|Author=unknown |
|||
|Version=1.0 |
|||
|Date=2011-08-01 |
|||
|FCVersion=All |
|||
|Download=[https://www.freecadweb.org/wiki/images/3/36/Macro_Draw_2D_Function.png ToolBar Icon] |
|||
}} |
|||
==Description== |
|||
⚫ | |||
Použijete k nakreslení funkce popsané "rovnicí" [z=F(x)] (Z-X rovina). Příklad ukázaný zde generuje parabolu.<br /> |
|||
Je potřeba definovat : |
|||
Nemá žádné dialogové okno. Je potřeba definovat :<br /> |
|||
F = proměnná použitá ve funkci, |
F = proměnná použitá ve funkci,<br /> |
||
X = iniciační hodnota x, |
X = iniciační hodnota x,<br /> |
||
Nb = počet kroků, |
Nb = počet kroků,<br /> |
||
⚫ | |||
Z = funkce vyjádřená x <br /> |
|||
⚫ | |||
==Skript== |
|||
ToolBar Icon [[Image:Macro_Draw_2D_Function.png]] |
|||
<syntaxhighlight> |
|||
⚫ | |||
'''Macro_Draw_2D_Function.FCMacro''' |
|||
⚫ | |||
⚫ | |||
{{Code|code= |
|||
⚫ | |||
⚫ | |||
# 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 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Z=X*X/(4*F) |
Z=X*X/(4*F) |
||
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]) |
||
X=XX |
X=XX |
||
Part.show(WWire) |
|||
}} |
|||
</syntaxhighlight> |
|||
⚫ |
Revision as of 17:53, 7 August 2019
Popis |
---|
Použijete k nakreslení funkce popsané "rovnicí" [z=F(x)] (Z-X rovina) Version macro : 1.0 Date last modification : 2011-08-01 FreeCAD version : All Download : ToolBar Icon Autor: unknown |
Autor |
unknown |
Download |
ToolBar Icon |
Odkazy |
Makro recepty| Jak nainstalovat makra Jak přizpůsobit panely nástrojů |
Verze |
1.0 |
Datum poslední úpravy |
2011-08-01 |
Verze FreeCAD |
All |
Výchozí zástupce |
None |
Viz též |
None |
Description
Použijete k nakreslení funkce popsané "rovnicí" [z=F(x)] (Z-X rovina). Příklad ukázaný zde generuje parabolu.
Nemá žádné dialogové okno. Je potřeba definovat :
F = proměnná použitá ve funkci,
X = iniciační hodnota x,
Nb = počet kroků,
Z = funkce vyjádřená x
ZZ = funkce vyjádřená xx
Skript
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)