Macro Make Arc 3 Points/de

Bogen aus drei Punkten

Beschreibung
Erstellt einen Bogen aus drei ausgewählten Punkten.

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

Dieses Makro erstellt einen Bogen zwischen drei ausgewählten Punkten.

Das Makro starten, drei Punkte auswählen, der Bogen wird erstellt und die Koordinaten und die Länge des Bogens werden im Ausgabefenster angezeigt.

(P.S.: Es ist nicht notwendig die Strg-Taste zu drücken)

Das Symbol für die Werkzeugleiste

Macro_Make_Arc_3_Points.FCMacro

# -*- coding: utf-8 -*-
from FreeCAD import Base

__title__   = "Macro_Make_Arc_3_points"
__author__  = "Mario52"
__url__     = "https://freecad.org/index-fr.html"
__version__ = "00.02"
__date__    = "29/07/2019"

global selected; selected = []
App = FreeCAD

class SelObserver:
    print( "Create Arc to 3 points ...")
    def addSelection(self,doc,obj,sub,pnt):  # Selection 
        global selected
        selected.append(pnt)
        if len(selected) == 1:
            print( "Point 1 : ",FreeCAD.Vector(selected[0]))
        elif len(selected) == 2:
            print( "Point 2 : ",FreeCAD.Vector(selected[1]))
        elif len(selected) == 3:
            print( "Point 3 : ",FreeCAD.Vector(selected[2]))
            try:
                C1 = Part.Arc(FreeCAD.Vector(selected[0]),FreeCAD.Vector(selected[1]),FreeCAD.Vector(selected[2]))
                S1 = Part.Shape([C1])
                W = Part.Wire(S1.Edges)
                Part.show(W)
                App.ActiveDocument.ActiveObject.Label   = "Arc_3_Points"
                print( "Length  : ",W.Length)
            except Exception:
                print( "Three points are collinear or bad selection")
            del selected[:]
            FreeCADGui.Selection.removeObserver(s)
            print( "End Make_Arc_3_Points")
            print( "_____________________")

s=SelObserver()
FreeCADGui.Selection.addObserver(s)