Macro Delta xyz/de: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 16: | Line 16: | ||
Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an. |
Gibt die Delta-Werte und den Abstand zwischen zwei Punkten an. |
||
<div class="mw-translate-fuzzy"> |
|||
==Wie verwende ich== |
==Wie verwende ich== |
||
</div> |
|||
# Starten Sie das Makro |
# Starten Sie das Makro |
||
Line 31: | Line 33: | ||
'''Macro_Delta_xyz.FCMacro''' |
'''Macro_Delta_xyz.FCMacro''' |
||
{{ |
{{MacroCode|code= |
||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
Revision as of 09:58, 23 May 2020
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 |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
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
- Starten Sie das Makro
- Wählen Sie den ersten Punkt in der 3D-Ansicht
- Wählen Sie den zweiten Punkt in der 3D-Ansicht
- Klicken Sie zum Beenden in ComboView
Skript
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