Macro Delta xyz/cs: Difference between revisions

From FreeCAD Documentation
(Created page with "{{Macro|Icon=Text-x-python|Name=Macro_Delta_xyz|Description=dává hodnotu Delta mezi 2 body.|Author=Mario52}}")
 
(Updating to match new version of source page)
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
{{Macro|Icon=Text-x-python|Name=Macro_Delta_xyz|Description=dává hodnotu Delta mezi 2 body.|Author=Mario52}}
{{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.

==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

[[File:DeltaXYZ.png]]

==Skript==

ToolBar Icon [[Image:Macro_Delta_xyz.png]]


'''Macro_Delta_xyz.FCMacro'''
Gives the Delta values between 2 points. Click in ComboView to quit


{{Code|code=
===Script===
Macro_Delta_xyz.py


<syntaxhighlight>
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#Delta x y z Click in ComboView to quit
#Delta x y z Click in ComboView to quit
Line 35: 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
Line 73: Line 99:
FreeCADGui.Selection.addObserver(s) # install the function mode resident
FreeCADGui.Selection.addObserver(s) # install the function mode resident


}}
</syntaxhighlight>
{{clear}}
{{clear}}
<languages/>

Revision as of 16:01, 7 August 2019

Other languages:

Macro Delta xyz

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
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

  1. Spusťte makro
  2. Vyberte první bod ve 3D zobrazení
  3. Vyberte druhý bod v 3D pohledu
  4. Klepnutím na tlačítko ComboView ukončete práci

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