Macro Triangle AH/de

Dreieck AH

Beschreibung
Dieses Makro erstellt ein Dreieck, indem es den Kopfwinkel und die Höhe des Dreiecks angibt. Das neue Dreieck wird in der realen Koordinate erstellt.
(Befehlszeile, fügen Sie dieses vollständige Makro in die Python-Konsole ein).

Versionsmakro : 00.03
Datum der letzten Änderung : 2019/07/02
FreeCAD version : Alle
Herunterladen : Werkzeugleisten-Symbol
Autor: mario52
Autor
mario52
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
00.03
Datum der letzten Änderung
2019/07/02
FreeCAD-Version(s)
Alle
Standardverknüpfung
None
Siehe auch
None

Beschreibung

Dieses Makro erstellt ein gleichschenkliges Dreieck, indem es den Kopfwinkel und die Höhe des Dreiecks angibt. Das Dreieck des Kopfes wird an den XYZ-Koordinaten 0,0,0 positioniert.

Anwendung

Kopiere das Makro Dreieck AH vollständig in die Python-Konsole von FreeCAD.

Skript

Werkzeugleisten-Symbol

Macro_triangleAH.FCMacro

__title__   = "triangleAH"
__author__  = "Mario52"
__version__ = "00.03"
__date__    = "2019/07/02"
# 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()
    print("angle theet : ", angle)
    print("angles base : (", (180.0-angle)/2.0,"),(",(180-angle)/2.0,")")
    print("height      : ", height)
    print("base        : ", base)
    print("hypotenuse  : ", hypo)
    print("surface     : ", (base * height) / 2.0)
    print("_________________________")
    Draft.makeWire([FreeCAD.Vector(a0),FreeCAD.Vector(a),FreeCAD.Vector(b)],closed=True,face=True,support=None) # create triangle
    App.ActiveDocument.recompute()

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

Beispiel

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

Version

ver 00.03 2019/07/02 "App.ActiveDocument.recompute()" und convert Py3 hinzugefügt

ver 00.02 03/05/2015 : "base=0.0", "hypo=0.0" und Druckdaten des Dreiecks hinzugefügt

ver 00.01 20/03/2015 :