Macro FlattenWire3Points/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
{{Macro/it|Icon=Text-x-python|Name=FlattenWire3Points|Name/it=FlattenWire3Points|Description=Appiattisce contorni non planari su un piano definito da 3 punti|Author=Yorik}}
{{Macro/it
|Name=FlattenWire3Points
|Icon=Macro_FlattenWire3Points.png
|Translate=Wire appiattita su piano da 3 punti
|Description=Appiattisce contorni non planari su un piano definito da 3 punti
|Author=Yorik
|Version=1.0
|Date=2016-02-06
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/1/1e/Macro_FlattenWire3Points.png ToolBar Icon]
}}

==Descrizione==


Questa macro appiattisce i contorni non planari su un piano definito da 3 punti.
Questa macro appiattisce i contorni non planari su un piano definito da 3 punti.
Per utilizzare questa macro, selezionare primi 3 vertici da una unica [[Draft Wire/it|polilinea di Draft]].
Per utilizzare questa macro, selezionare primi 3 vertici da una unica [[Draft Wire/it|polilinea di Draft]].


==Script==
{{Code|code=

ToolBar icon [[Image:Macro_FlattenWire3Points.png]]

'''Macro_FlattenWire3Points.FCMacro'''

{{MacroCode|code=


import FreeCAD,FreeCADGui,Draft
import FreeCAD,FreeCADGui,Draft
Line 39: Line 58:
sel.Object.Points = points
sel.Object.Points = points
}}
}}
<languages/>

Revision as of 10:47, 23 May 2020

Other languages:

Wire appiattita su piano da 3 punti

Descrizione
Appiattisce contorni non planari su un piano definito da 3 punti

Versione macro: 1.0
Ultima modifica: 2016-02-06
Versione FreeCAD: All
Download: ToolBar Icon
Autore: Yorik
Autore
Yorik
Download
ToolBar Icon
Link
Versione macro
1.0
Data ultima modifica
2016-02-06
Versioni di FreeCAD
All
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro appiattisce i contorni non planari su un piano definito da 3 punti. Per utilizzare questa macro, selezionare primi 3 vertici da una unica polilinea di Draft.

Script

ToolBar icon

Macro_FlattenWire3Points.FCMacro

import FreeCAD,FreeCADGui,Draft
 
 # check selection
 sel = FreeCADGui.Selection.getSelectionEx()
 ok = True
 if len(sel) != 1:
    FreeCAD.Console.PrintError("Please select 3 vertices from one Draft wire\n")
    ok = False
 sel = sel[0]
 if Draft.getType(sel.Object) not in ["Wire","BSpline"]:
    FreeCAD.Console.PrintError("Please select 3 vertices from one Draft wire\n")
    ok = False
 if len(sel.SubElementNames) != 3:
    FreeCAD.Console.PrintError("Please select 3 vertices from one Draft wire\n")
    ok = False
 for e in sel.SubElementNames:
    if not "Vertex" in e:
        FreeCAD.Console.PrintError("Please select 3 vertices from one Draft wire\n")
        ok = False
 
 if ok:
    # define a plane
    p1 = getattr(sel.Object.Shape,sel.SubElementNames[0]).Point
    p2 = getattr(sel.Object.Shape,sel.SubElementNames[1]).Point
    p3 = getattr(sel.Object.Shape,sel.SubElementNames[2]).Point
    p4 = p2.sub(p1).cross(p3.sub(p1))
    
    # project wire points
    points = []
    for p in sel.Object.Points:
        points.append(p.projectToPlane(p1,p4))
    sel.Object.Points = points