Draft WireToBSpline/it: Difference between revisions

From FreeCAD Documentation
(Created page with "* se l'oggetto attivo è una linea bspline")
No edit summary
 
(67 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
{{GuiCommand/it|Name=Draft_WireToBSpline|Name/it=Wire in Spline|Workbenches=[[Draft Module/it|Draft]], [[Arch Module/it|Architettura]]|MenuLocation=Draft → Wire in Spline}}

{{Docnav/it
|[[Draft_Downgrade/it|Declassa]]
|[[Draft_Draft2Sketch/it|Draft a Sketch]]
|[[Draft_Workbench/it|Draft]]
|IconL=Draft_Downgrade.svg
|IconR=Draft_Draft2Sketch.svg
|IconC=Workbench_Draft.svg
}}

{{GuiCommand/it
|Name=Draft WireToBSpline
|Name/it=Polilinea in B-spline
|MenuLocation=Modifiche → Polilinea in B-spline
|Workbenches=[[Draft_Workbench/it|Draft]], [[Arch_Workbench/it|Arch]]
|SeeAlso=[[Draft_Wire/it|Polilinea]], [[Draft_BSpline/it|B-spline]]
}}


<span id="Description"></span>
==Descrizione==
==Descrizione==


Il comando [[Image:Draft_WireToBSpline.svg|24px]] '''Draft Polilinea in B-spline''' converte [[Draft_Wire/it|Draft Polilinee]] in [[Draft_BSpline/it|Draft B-splines]] e viceversa.
Questo strumento converte i segmenti di una linea spezzata, quì definita [[Draft Wire/it|DWire]], in curve di tipo [[Draft BSpline/it|BSpline]], e viceversa.


[[Image:Draft Wire2BSpline example.jpg|400px]]
[[Image:Draft_Wire2BSpline_example.jpg|400px]]
{{Caption|Conversione di un Draft Polilinea in un Draft B-spline e di una Draft B-spline chiusa in una Draft Polilinea chiusa}}


<span id="Usage"></span>
== Utilizzo ==
==Utilizzo==


# Selezionare una linea [[Draft Wire/it|Wire]] o una [[Draft BSpline/it|BSpline]]
# Selezionare una [[Draft_Wire/it|Draft Polilinea]] o una [[Draft_BSpline/it|Draft B-spline]].
# Ci sono diversi modi per invocare il comando:
# Premere il pulsante {{KEY/it|[[Image:Draft WireToBSpline.png|16px]] Da Wire a BSpline}}
#* Premere il pulsante {{Button|[[Image:Draft_WireToBSpline.svg|16px]] [[Draft_WireToBSpline/it|Polilinea in B-spline]]}}.
#* Selezionare l'opzione {{MenuCommand|Modifiche → [[Image:Draft_WireToBSpline.svg|16px]] Polilinea in B-spline}} dal menu.
# Viene creato un nuovo oggetto.


<span id="Notes"></span>
== Opzioni ==
==Note==


* Il comando potrebbe far risultare una [[Draft_Wire/it|Draft Polilinea]] o [[Draft_BSpline/it|Draft B-spline]] autointersecante con una faccia. Tale oggetto non verrà visualizzato correttamente nella [[3D_view/it|Vista 3D]]. La sua proprietà {{PropertyData|Make Face}}, o la sua proprietà {{PropertyData|Closed}}, deve essere impostata su {{FALSE}}.
* L'oggetto originale non viene eliminato dopo l'operazione, è necessario eliminarlo manualmente, se lo si desidera.


<span id="Scripting"></span>
== Script ==
==Script==


Vedere anche: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] e [[FreeCAD_Scripting_Basics/it|Script di base per FreeCAD]].
Non è disponibile, ma è facile creare un nuovo oggetto usando i punti di un altro oggetto, per esempio:


Per convertire una Polilinea in una B-spline, o viceversa, passare la proprietà {{incode|Points}} dell'oggetto sorgente al metodo {{incode|[[Draft_BSpline/it#Script|make_bspline]]}}, o rispettivamente al metodo {{ incode|[[Draft_Wire/it#Script|make_wire]]}}, del modulo Draft.
* se l'oggetto attivo è una linea wire


Esempio:
<syntaxhighlight>
import FreeCAD,Draft
points = FreeCAD.ActiveDocument.ActiveObject.Points
Draft.makeBSpline(points)
</syntaxhighlight>


{{Code|code=
* se l'oggetto attivo è una linea bspline
import FreeCAD as App
import Draft


doc = App.newDocument()
<syntaxhighlight>
import FreeCAD,Draft
points = FreeCAD.ActiveDocument.ActiveObject.Points
Draft.makeWire(points)
</syntaxhighlight>


p1 = App.Vector(1000, 1000, 0)
<languages/>
p2 = App.Vector(2000, 1000, 0)
p3 = App.Vector(2500, -1000, 0)
p4 = App.Vector(3500, -500, 0)

base_wire = Draft.make_wire([p1, p2, p3, p4])
base_spline = Draft.make_bspline([-p1, -1.3*p2, -1.2*p3, -2.1*p4])

points1 = base_wire.Points
spline_from_wire = Draft.make_bspline(points1)

points2 = base_spline.Points
wire_from_spline = Draft.make_wire(points2)

doc.recompute()
}}


{{Docnav/it
|[[Draft_Downgrade/it|Declassa]]
|[[Draft_Draft2Sketch/it|Draft a Sketch]]
|[[Draft_Workbench/it|Draft]]
|IconL=Draft_Downgrade.svg
|IconR=Draft_Draft2Sketch.svg
|IconC=Workbench_Draft.svg
}}

{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 17:10, 8 December 2023

Polilinea in B-spline

Posizione nel menu
Modifiche → Polilinea in B-spline
Ambiente
Draft, Arch
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Polilinea, B-spline

Descrizione

Il comando Draft Polilinea in B-spline converte Draft Polilinee in Draft B-splines e viceversa.

Conversione di un Draft Polilinea in un Draft B-spline e di una Draft B-spline chiusa in una Draft Polilinea chiusa

Utilizzo

  1. Selezionare una Draft Polilinea o una Draft B-spline.
  2. Ci sono diversi modi per invocare il comando:
    • Premere il pulsante Polilinea in B-spline.
    • Selezionare l'opzione Modifiche → Polilinea in B-spline dal menu.
  3. Viene creato un nuovo oggetto.

Note

  • Il comando potrebbe far risultare una Draft Polilinea o Draft B-spline autointersecante con una faccia. Tale oggetto non verrà visualizzato correttamente nella Vista 3D. La sua proprietà DatiMake Face, o la sua proprietà DatiClosed, deve essere impostata su false.

Script

Vedere anche: Autogenerated API documentation e Script di base per FreeCAD.

Per convertire una Polilinea in una B-spline, o viceversa, passare la proprietà Points dell'oggetto sorgente al metodo make_bspline, o rispettivamente al metodo make_wire, del modulo Draft.

Esempio:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(1000, 1000, 0)
p2 = App.Vector(2000, 1000, 0)
p3 = App.Vector(2500, -1000, 0)
p4 = App.Vector(3500, -500, 0)

base_wire = Draft.make_wire([p1, p2, p3, p4])
base_spline = Draft.make_bspline([-p1, -1.3*p2, -1.2*p3, -2.1*p4])

points1 = base_wire.Points
spline_from_wire = Draft.make_bspline(points1)

points2 = base_spline.Points
wire_from_spline = Draft.make_wire(points2)

doc.recompute()