Macro Delta xyz/cs: Difference between revisions
mNo edit summary |
(Updating to match new version of source page) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro/cs|Icon=Text-x-python|Name=Macro_Delta_xyz|Name/cs=Macro Delta xyz|Description=dává hodnotu Delta mezi 2 body.|Author=Mario52|Version=0.1|Date=2013-11-29}} |
|||
{{Macro/cs |
|||
|Name=Macro_Delta_xyz |
|||
|Icon=Macro_Delta_xyz.png |
|||
|Translate=Macro Delta xyz |
|||
|Description=dává hodnotu Delta mezi 2 body. |
|||
|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/cs|Part Measure Toggle Delta]] [[File:Part_Measure_Toggle_Delta.svg|24px]] |
|||
}} |
|||
==Description== |
|||
Dává hodnotu Delta a vzdálenost mezi 2 body. |
Dává hodnotu Delta a vzdálenost mezi 2 body. |
||
== |
==Jak používat== |
||
# Spusťte makro |
|||
# Start the macro |
|||
# Vyberte první bod ve 3D zobrazení |
|||
# Select the first point in 3D view |
|||
# |
# Vyberte druhý bod v 3D pohledu |
||
# |
# Klepnutím na tlačítko ComboView ukončete práci |
||
⚫ | |||
⚫ | |||
⚫ | |||
{{clear}} |
|||
ToolBar Icon [[Image:Macro_Delta_xyz.png]] |
|||
'''Macro_Delta_xyz.FCMacro''' |
|||
⚫ | |||
Makro_Delta_xyz.py |
|||
{{Code|code= |
{{Code|code= |
||
Line 47: | Line 61: | ||
class SelObserver: |
class SelObserver: |
||
def addSelection(self,document, object, element, position): # |
def addSelection(self,document, object, element, position): # Selection |
||
global pas |
global pas |
||
global positionX1 |
global positionX1 |
||
Line 87: | Line 101: | ||
}} |
}} |
||
{{clear}} |
{{clear}} |
||
⚫ |
Revision as of 16:01, 7 August 2019
Popis |
---|
dává hodnotu Delta mezi 2 body. Version macro : 0.1 Date last modification : 2013-11-29 FreeCAD version : All Download : ToolBar Icon Autor: Mario52 |
Autor |
Mario52 |
Download |
ToolBar Icon |
Odkazy |
Makro recepty| Jak nainstalovat makra Jak přizpůsobit panely nástrojů |
Verze |
0.1 |
Datum poslední úpravy |
2013-11-29 |
Verze FreeCAD |
All |
Výchozí zástupce |
None |
Viz též |
Part Measure Toggle Delta |
Description
Dává hodnotu Delta a vzdálenost mezi 2 body.
Jak používat
- Spusťte makro
- Vyberte první bod ve 3D zobrazení
- Vyberte druhý bod v 3D pohledu
- Klepnutím na tlačítko ComboView ukončete práci
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