Macro Triangle AH/fr: Difference between revisions

From FreeCAD Documentation
m (FuzzyBot moved page Macro triangleAH/fr to Macro Triangle AH/fr without leaving a redirect: Part of translatable page "Macro triangleAH".)
No edit summary
Line 1: Line 1:
{{Macro/fr|Icon=Text-x-python|Name=Macro triangleAH|Name/fr=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.|Author=mario52}}
{{Macro|Icon=Text-x-python|Name=Macro Triangle AH|Description=This macro create one triangle creates a triangle by giving the head angle and the height of the triangle.|Author=mario52}}


==Description==
==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.
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==
==Use==
Copiez la macro '''triangleAH''' complète dans la console Python de FreeCAD et tapez :
Copy the macro '''Triangle AH''' complete in the Python console FreeCAD and type:
<syntaxhighlight>
<syntaxhighlight>
triangleAH(angle=90, height=10)
triangleAH(angle=90, height=10)

Revision as of 20:06, 26 June 2016

File:Text-x-python Macro Triangle AH

Description
This macro create one triangle creates a triangle by giving the head angle and the height of the triangle.

Author: mario52
Author
mario52
Download
None
Links
Macro Version
1.0
Date last modified
None
FreeCAD Version(s)
None
Default shortcut
None
See also
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.

Use

Copy the macro Triangle AH complete in the Python console FreeCAD and type:

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 :


Other languages: