Macro Triangle AH/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "==Versions==")
(Created page with "ver 00.02 03/05/2015 : ajout "base=0.0", "hypo=0.0" affichage des données du triangle")
Line 70: Line 70:
==Versions==
==Versions==


ver 00.02 03/05/2015 : adding "base=0.0", "hypo=0.0" and print data of triangle
ver 00.02 03/05/2015 : ajout "base=0.0", "hypo=0.0" affichage des données du triangle


ver 00.01 20/03/2015 :
ver 00.01 20/03/2015 :

Revision as of 21:09, 3 August 2018

File:Text-x-python Macro Triangle AH

Description
Cette macro crée un triangle isocèle en donnant comme argument , l'angle de tête et la hauteur du triangle.

Version macro : 00.02
Date dernière modification : 2015-05-03
Auteur: mario52
Auteur
mario52
Téléchargement
None
Liens
Version Macro
00.02
Dernière modification
2015-05-03
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 Triangle AH complète dans la console Python de FreeCAD

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

Exemples

triangleAH(angle=90, height=10)
# or
triangleAH(90, 10)
# or
triangleAH(45, hypo=10)
# or
triangleAH(90, base=10)

Versions

ver 00.02 03/05/2015 : ajout "base=0.0", "hypo=0.0" affichage des données du triangle

ver 00.01 20/03/2015 :

Other languages: