Macro Triangle AH/fr: Difference between revisions
(Updating to match new version of source page) |
m (FuzzyBot moved page Macro triangleAH/fr to Macro Triangle AH/fr without leaving a redirect: Part of translatable page "Macro triangleAH".) |
(No difference)
|
Revision as of 21:16, 24 June 2016
File:Text-x-python Macro triangleAH |
Description |
---|
Cette macro crée un triangle isocèle en donnant comme argument , l'angle de tête et la hauteur du triangle. Auteur: mario52 |
Auteur |
mario52 |
Téléchargement |
None |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.0 |
Dernière modification |
None |
Version(s) FreeCAD |
None |
Raccourci clavier |
None |
Voir aussi |
None |
Description
Cette macro crée un triangle isocèle en donnant comme argument , l'angle de tête et la hauteur du triangle. La tête du triangle est positionnée aux coordonnées XYZ 0,0,0.
Utilisation
Copiez la macro triangleAH complète dans la console Python de FreeCAD et tapez :
triangleAH(angle=90, height=10)
# or
triangleAH(90, 10)
# or
triangleAH(45, hypo=10)
# or
triangleAH(90, base=10)
Script
Macro_triangleAH.FCMacro
__title__ = "triangleAH"
__author__ = "Mario52"
__version__ = "00.02"
__date__ = "03/05/2015"
# Give angle and on choice : height or base or hypo
from math import cos, sin, tan, degrees, radians, sqrt
import Draft, Part
def triangleAH(angle, height=0.0, base=0.0, hypo=0.0):
def line_length(x1 = 0.0, y1 = 0.0, z1 = 0.0, length = 10.0, angle2 = 0.0): # search coordinates
x2 = x1 + (length * cos(radians(angle2)))
y2 = y1 + (length * sin(radians(angle2)))
z2 = z1 #+ ()
return x2,y2,z2 # return coordinates (xyz) to point
x0 = y0 = z0 = 0.0
angle = float(angle)
height = float(height)
base = float(base)
if base != 0:
height = ( (base/2) / (tan(radians(angle/2))) ) # imposing base and calculate height
if hypo != 0:
height = hypo * (cos(radians(angle/2))) # imposing hypo and calculate height
else:
hypo = height / cos(radians(angle/2)) # calculate hypotenuse
if base==0: # base of triangle
base = (tan(radians(angle/2) ) * height) * 2 # calculate base
a0 = line_length(x1=x0,y1=y0,z1=z0,length=height,angle2=0 ) # coord height of triangle
a0 = line_length(x1=x0,y1=y0,z1=z0,length=0, angle2 = angle ) # point 0 (begin vertex)
a = line_length(x1=a0[0],y1=a0[1],z1=a0[2],length= hypo, angle2=-(angle/2)) #
b = line_length(a[0],a[1],a[2],length= (abs(a[1])*2), angle2=90.0) # base of triangle = (abs(a[1])*2)
print "angle theet : ", angle
print "angles base : (", (180-angle)/2,"),(",(180-angle)/2,")"
print "height : ", height
print "base : ", base
print "hypotenuse : ", hypo
print "surface : ", (base * height) / 2
print "_________________________"
return Draft.makeWire([FreeCAD.Vector(a0),FreeCAD.Vector(a),FreeCAD.Vector(b)],closed=True,face=True,support=None) # create triangle
Version
ver 00.02 03/05/2015 : adding "base=0.0", "hypo=0.0" and print data of triangle
ver 00.01 20/03/2015 :