Macro Delta xyz/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Macro/de
{{Macro/de|Icon=Text-x-python|Name=Macro Delta xyz|Name/de=Macro Delta xyz|Description=Gives the Delta values and distance between 2 points.|Author=Mario52|Version=0.1|Date=2013-11-29}}
|Name=Macro Delta xyz
|Icon=Macro_Delta_xyz.png
|Translate=Macro Delta xyz
|Description=Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an.
|Author=Mario52
|Version=0.1
|Date=2013-11-29
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/f/f4/Macro_Delta_xyz.png ToolBar Icon]
|SeeAlso=[[Part_Measure_Toggle_Delta/de|Part Measure Toggle Delta]] [[File:Part_Measure_Toggle_Delta.svg|24px]]
}}


==Description==
==Beschreibung==
Gives the Delta values and distance between 2 points.
Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an.


==How to use==
==Wie verwende ich==


# Starten Sie das Makro
# Start the macro
# Wählen Sie den ersten Punkt in der 3D-Ansicht
# Select the first point in 3D view
# Wählen Sie den zweiten Punkt in der 3D-Ansicht
# Select the second point in 3D view
# Klicken Sie zum Beenden in ComboView
# Click in ComboView to quit


[[File:DeltaXYZ.png]]


==Skript==
[[File:DeltaXYZ.png|left]]
{{clear}}


ToolBar Icon [[Image:Macro_Delta_xyz.png]]
==Script==


'''Macro_Delta_xyz.FCMacro'''
'''Macro_Delta_xyz.FCMacro'''
Line 50: Line 61:


class SelObserver:
class SelObserver:
def addSelection(self,document, object, element, position): # Sélection
def addSelection(self,document, object, element, position): # Selection
global pas
global pas
global positionX1
global positionX1

Revision as of 16:01, 7 August 2019

Macro Delta xyz

Beschreibung
Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an.

Versionsmakro : 0.1
Datum der letzten Änderung : 2013-11-29
FreeCAD version : All
Herunterladen : ToolBar Icon
Autor: Mario52
Autor
Mario52
Herunterladen
ToolBar Icon
Links
Macro-Version
0.1
Datum der letzten Änderung
2013-11-29
FreeCAD-Version(s)
All
Standardverknüpfung
None
Siehe auch
Part Measure Toggle Delta

Beschreibung

Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an.

Wie verwende ich

  1. Starten Sie das Makro
  2. Wählen Sie den ersten Punkt in der 3D-Ansicht
  3. Wählen Sie den zweiten Punkt in der 3D-Ansicht
  4. Klicken Sie zum Beenden in ComboView

Skript

ToolBar Icon

Macro_Delta_xyz.FCMacro

# -*- coding: utf-8 -*-
#Delta x y z Click in ComboView to quit
import Draft, Part
import math,FreeCAD
from FreeCAD import Base

global positionX1 ;positionX1 = 0.0
global positionY1 ;positionY1 = 0.0
global positionZ1 ;positionZ1 = 0.0
global positionX2 ;positionX2 = 0.0
global positionY2 ;positionY2 = 0.0
global positionZ2 ;positionZ2 = 0.0
global pas        ;pas        = 0

def sub(first, other): 
	"sub(Vector,Vector) - subtracts second vector from first one"
	if isinstance(first,FreeCAD.Vector) and isinstance(other,FreeCAD.Vector):
		return FreeCAD.Vector(first.x-other.x, first.y-other.y, first.z-other.z)
def length(first):
	"lengh(Vector) - gives vector length"
	if isinstance(first,FreeCAD.Vector):
		return math.sqrt(first.x*first.x + first.y*first.y + first.z*first.z)
def dist(first, other):
	"dist(Vector,Vector) - returns the distance between both points/vectors"
	if isinstance(first,FreeCAD.Vector) and isinstance(other,FreeCAD.Vector):
		return length(sub(first,other))

class SelObserver:
    def addSelection(self,document, object, element, position):  # Selection
        global pas
        global positionX1
        global positionY1
        global positionZ1
        global positionX2
        global positionY2
        global positionZ2
        pas+=1
        if pas==1:
            positionX1 = position[0]
            positionY1 = position[1]
            positionZ1 = position[2]
            App.Console.PrintMessage("Begin    : X1 "+str(positionX1)+" Y1: "+str(positionY1)+" Z1: "+str(positionZ1)+"\n")    
        else:
            positionX2 = position[0]
            positionY2 = position[1]
            positionZ2 = position[2]
            App.Console.PrintMessage("End      : X2 "+str(positionX2)+" Y2: "+str(positionY2)+" Z2: "+str(positionZ2)+"\n")    
            App.Console.PrintMessage("Delta X  : "+str(abs(positionX1-positionX2))+"\n")    
            App.Console.PrintMessage("Delta Y  : "+str(abs(positionY1-positionY2))+"\n")    
            App.Console.PrintMessage("Delta Z  : "+str(abs(positionZ1-positionZ2))+"\n")    
            v1=FreeCAD.Vector(positionX1,positionY1,positionZ1)
            v2=FreeCAD.Vector(positionX2,positionY2,positionZ2)
            App.Console.PrintMessage("Distance : "+str(dist(v1,v2))+"\n")
            App.Console.PrintMessage("------------------------"+"\n")    
            pas=0

    def removeSelection(self,document, object, element): # Delete the selected object
        App.Console.PrintMessage("removeSelection"+"\n")
    def setSelection(self,document):                     # Selection in ComboView
        FreeCADGui.Selection.removeObserver(s)           # Uninstalls the resident function
        App.Console.PrintMessage("removeObserver"+"\n")

pas = 0
s=SelObserver()
FreeCADGui.Selection.addObserver(s)          # install the function mode resident