Draft CubicBezCurve/it: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(51 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav/it
{{Docnav/it|[[Draft BezCurve/it|Curva di Bézier]]|[[Draft_Label/it|Etichetta]]|[[Draft_Module/it|Draft]]|IconL=Draft BezCurve.svg |IconC=Workbench_Draft.svg|IconR=Draft_Label.svg }}
|[[Draft_BSpline/it|BSpline]]
|[[Draft_BezCurve/it|Curva di Bézier]]
|[[Draft_Workbench|Draft/it]]
|IconL=Draft_BSpline.svg
|IconR=Draft_BezCurve.svg
|IconC=Workbench_Draft.svg
}}


{{GuiCommand/it
{{GuiCommand/it
|Name=Draft CubicBezCurve
|Name=Draft CubicBezCurve
|Name/it=Curva di Bézier cubica
|Name/it=Curva di Bézier cubica
|MenuLocation=Drafting → Strumenti Bezier → Curva di Bézier cubica
|Workbenches=[[Draft Module/it|Draft]], [[Arch Module/it|Arch]]
|Workbenches=[[Draft_Workbench/it|Draft]], [[Arch_Workbench/it|Arch]]
|MenuLocation=Draft → Strumenti Bezier → Curva di Bézier cubica
|Version/it=0.19
|Shortcut=
|SeeAlso=[[Draft Wire/it|Polilinea]], [[Draft BSpline/it|B-spline]], [[Draft BezCurve/it|Curva di Bézier]]
|SeeAlso=[[Draft BezCurve/it|Curva di Bézier]], [[Draft BSpline/it|BSpline]]
}}
|Version/it=0.19}}


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


Lo strumento [[Draft CubicBezCurve/it|Curva di Bézier cubica]] crea una[http://en.wikipedia.org/wiki/Bezier_curve Curva di Bézier] di terzo grado (sono richiesti quattro punti). Questa è una delle curve di Bezier più usate nelle applicazioni di computer grafica. Questo strumento consente di creare una grande spline composta da diversi segmenti Bezier di 3° grado, in un modo simile allo strumento Bezier in Inkscape. Una curva generica di Bezier di qualsiasi grado può essere creata con lo strumento [[Draft BezCurve/it|Curva di Bézier]].
Il comando [[Image:Draft_CubicBezCurve.svg|24px]] '''Curva di Bézier cubica''' crea una [http://en.wikipedia.org/wiki/Bezier_curve curva di Bézier] di terzo grado (quattro punti richiesti).

La curva di Bézier è una delle curve più utilizzate nella computer grafica. Questo comando consente di creare una spline continua composta da diversi segmenti Bézier di 3° grado, in modo simile allo strumento Bézier in [https://inkscape.org/Inkscape]. Una curva di Bézier generale di qualsiasi grado può essere creata con il comando [[Draft_BezCurve/it|Curva di Bézier]].


Gli strumenti [[Draft BezCurve/it|Curva di Bézier]] e [[Draft CubicBezCurve/it|Curva di Bézier cubica]] utilizzano i {{Emphasis|punti di controllo}} per definire la posizione e la curvatura della spline; invece lo strumento [[Draft BSpline/it|B-spline]] specifica i punti esatti attraverso i quali passa la curva.
I comandi [[Draft_BezCurve/it|Curva di Bézier]] e Curva di Bézier cubica utilizzano {{Emphasis|punti di controllo}} per definire la posizione e la curvatura della spline. Il comando [[Draft_BSpline/it|BSpline]], invece, specifica i {{Emphasis|punti esatti}} attraverso i quali passerà la curva.


[[File:Draft_CubicBezCurve_example.png|600px]]
[[File:Draft_CubicBezCurve_example.png|500px]]
{{Caption|Spline composta da tre segmenti cubici di Bézier. Il primo segmento è definito da quattro punti. I segmenti successivi riutilizzano due punti del segmento precedente e pertanto richiedono solo due punti aggiuntivi.}}
{{Caption|Spline cubica di Bezier definita da tre segmenti. Ogni Bezier cubica è definita da quattro punti, ma quando lo strumento viene utilizzato graficamente, vengono posizionati solo tre di questi punti: 1-2-3 per il primo segmento, 3-4-5 per il secondo segmento e 5-6-7 per il terzo segmento; il quarto punto in ciascun segmento è definito implicitamente; l'ultimo punto 8 è necessario per completare l'operazione e farebbe parte di un quarto segmento di Bezier se l'operazione viene continuata.}}


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


Vedere anche: [[Draft_Tray/it|Barra di Draft]], [[Draft_Snap/it|Aggancio]] e [[Draft_Constrain/it|Vincolare]].
# Premere il pulsante {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] [[Draft CubicBezCurve/it|Curva di Bézier cubica]]}}.
# Fare clic su un primo punto nella vista 3D e tenere premuto il pulsante del mouse (1); questo è il primo punto finale..
# Trascinare il puntatore su un altro punto della vista 3D e rilasciare il pulsante del mouse (2); questo è il primo punto di controllo..
# Spostare il puntatore su un altro punto della vista 3D, fare clic e tenere premuto il pulsante del mouse su questo punto (3); questo è il secondo punto finale.
# Spostare il puntatore su un altro punto della vista 3D per regolare la curvatura finale della spline, quindi rilasciare il pulsante del mouse (4)
# A questo punto si ha già una curva di Bezier di terzo grado. Il comando può essere completato premendo {{KEY|Esc}} o il pulsante {{Button|Chiudi}}, oppure si può ripetere il processo facendo clic e tenendo premuto (5), trascinando e rilasciando (6) per aggiungere altri segmenti di Bezier di terzo grado.


# Esistono diversi modi per invocare il comando:
Note that with this workflow you need two click-hold-release sequences to create a single Bezier curve of third degree.
#* Premere il pulsante {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] [[Draft_CubicBezCurve|Curva di Bézier cubica]]}}.
* The first click-hold defines the first end point.
#* Selezionare l'opzione {{MenuCommand|Drafting → Strumenti Bézier → [[Image:Draft_CubicBezCurve.svg|16px]] Curva di Bézier cubica}} dal menu.
* The first release defines the first control point.
# Si apre il pannello delle attività {{MenuCommand|Curva di Bézier cubica}}. Vedere [[#Options|Opzioni]] per maggiori informazioni.
* The second click-hold defines the second end point, and the general direction of the spline.
# Non è possibile inserire i punti tramite il pannello delle attività.
* The second release defines the final curvature of the spline.
# Per i seguenti [[Mouse_navigation/it|Modelli di navigazione con mouse]] è necessario tenere premuto un tasto della tastiera:
* The second control point is not explicitly given, but is determined from the location of the pointer during the second release.
#* Se si sta utilizzando [[Mouse_navigation/it#Navigazione OpenInventor|Navigazione OpenInventor]], il tasto {{KEY|Ctrl}} deve essere tenuto premuto per tutta la durata del comando.
#* Se si sta utilizzando [[Mouse_navigation/it#Navigazione Gesture|Navigazione Gesture]] il tasto {{KEY|Alt}} deve essere tenuto premuto per ogni sequenza click-hold-release, ma è anche possibile tenere premuto questo tasto per tutta la durata del comando.
# Selezionare il primo punto nella [[3D_view/it|Vista 3D]] e tenere premuto il pulsante del mouse (1), questo è il primo punto finale.
# Trascinare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]] e rilasciare il pulsante del mouse (2), questo è il primo punto di controllo.
# Spostare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]], selezionare questo punto e tenere premuto il pulsante del mouse (3), questo è il secondo punto finale.
# Spostare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]] per regolare la curvatura finale del segmento e rilasciare il pulsante del mouse (4), questo è il secondo punto di controllo.
# Ora si ha una curva di Bézier di 3° grado.
# Facoltativamente ripetere il processo di clic e tenere premuto (5) e trascinare e rilasciare (6) per aggiungere più segmenti.
# Ogni segmento successivo utilizzerà rispettivamente il secondo punto finale e il secondo punto di controllo del segmento precedente come primo punto finale e primo punto di controllo.
# Premere {{KEY|Esc}} o il pulsante {{Button|Chiudi}} per terminare il comando.


<span id="Options"></span>
=== Note when creating many Bezier segments ===
== Opzioni ==

* The second release also correspond to the first control point of the subsequent Bezier curve.
* This means that the second click-hold was also the first end point of the second Bezier curve.
* A third click-hold would be the second end point.
* A third release would define the final curvature of the second curve, and it would also be the first control point of a third curve.

This means that for every two click-hold (c-h) and release (r) sequences, the second sequence is already part of a subsequent curve segment, as indicated in the following graphic:

<pre>
|c-h -- r -- c-h -- r| 1
|c-h -- r -- c-h -- r| 2
|c-h -- r -- c-h -- r| 3
|c-h -- r -- c-h -- r| 4
</pre>


Vedere [[Draft_BezCurve/it#Options|Curva di Bézier]].
=== How to place the control points exactly ===


<span id="Notes"></span>
The graphical operation of this tool only allows the user to specify the first control point of the curve when it is being drawn. The second control point can be adjusted after the object is created: double click on the curve object in tree view, or select it and press {{Button|[[File:Draft_Edit.svg|16px]] [[Draft Edit|Edit]]}}. Then drag the second control point to the desired position.
==Note==


* Una Curva di Bézier cubica può essere modificata con il comando [[Draft_Edit/it|Modifica]].
In order to choose exactly both end points and both control points, the Python command {{incode|Draft.makeBezCurve()}} must be used. See the [[#Scripting|Scripting]] section.

== Opzioni ==

See the options in [[Draft BezCurve|Draft BezCurve]].


<span id="Properties"></span>
== Proprietà ==
== Proprietà ==


Vedere [[Draft_BezCurve/it#Properietà|Curva di Bézier]].
See the properties in [[Draft BezCurve|Draft BezCurve]].


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


{{Emphasis|Vedere anche:}} [[Draft API/it|Draft API]] e [[FreeCAD Scripting Basics/it|Nozioni di base sugli script di FreeCAD]].
Vedere anche: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] e [[FreeCAD_Scripting_Basics/it|Script di base per FreeCAD]].


Per informazioni di carattere generale vedere [[Draft_BezCurve/it|Curva di Bézier]]. Una Bézier cubica viene creata passando l'opzione <code>degree=3</code> a {{incode|makeBezCurve()}}.
<div class="mw-translate-fuzzy">
Per informazioni di carattere generale vedere [[Draft BezCurve/it|Curva di Bézier]]. Una Bezier cubica viene creata passando l'opzione <code>degree=3</code> a {{incode|makeBezCurve()}}.
</div>


Per ogni segmento di Bézier cubica devono essere utilizzati quattro punti, di cui i due punti estremi indicano dove passa la spline e i due punti intermedi sono punti di controllo.
<div class="mw-translate-fuzzy">
Per ogni segmento di Bezier cubica devono essere utilizzati quattro punti, di cui i due punti intermedi sono i punti di controllo.
* Se vengono assegnati solo 3 punti, viene invece creata una Bézier quadratica, con un solo punto di controllo..
* Se vengono assegnati solo 3 punti, viene creata una Bezier quadratica.
* Se vengono assegnati solo 2 punti, viene creata una Bézier lineare, ovvero una linea retta.
* Se vengono assegnati solo 2 punti, viene creata una Bezier lineare, ovvero una linea retta.
* Se vengono assegnati 5 punti, i primi 4 creano un segmento di Béezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
* Se vengono assegnati 5 punti, i primi 4 creano un segmento di Bezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
* Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bézier.
* Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bezier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bezier.
* Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri tre punti sono usati per creare un secondo segmento cubico di Bézier.
* Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bezier; il quarto e gli altri tre sono usati per creare un secondo segmento cubico di Bezier.
* In generale, l'ultimo punto in un gruppo di quattro è condiviso al massimo con i seguenti tre punti per creare un altro segmento di Bézier.
* * Per avere curve morbide, senza segmenti diritti, il numero di punti dovrebbe essere {{incode|3n + 1}} o {{incode|3n}}, dove {{incode|n}} è il numero di segmenti, per <code>n >= 1</code>.
* Cioè, quando possibile, l'ultimo punto in una Bezier cubica è condiviso con i punti seguenti.
</div>


[[File:Draft_CubicBezCurve_API_example.png|600px]]
[[File:Draft_CubicBezCurve_API_example.png|600px]]


{{Caption|Examples of Bezier curves produced by using 2, 3, 4, 5, 6, 7, and 8 points. The solid lines indicate cubic Bezier segments; the other lines are quadratic or linear.}}
{{Caption|Esempi di curve di Bézier prodotte utilizzando 2, 3, 4, 5, 6, 7 e 8 punti. Le linee continue indicano segmenti cubici di Bézier; le altre linee sono quadratiche o lineari.}}


Esempio:
Esempio:

{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
import Draft
import Draft

doc = App.newDocument()


p1 = App.Vector(-3500, 0, 0)
p1 = App.Vector(-3500, 0, 0)
Line 105: Line 107:
rot = App.Rotation()
rot = App.Rotation()


c1 = Draft.makeCircle(100, placement=App.Placement(p1, rot), face=False)
c1 = Draft.make_circle(100, placement=App.Placement(p1, rot), face=False)
c1.Label = "B1_E1"
c1.Label = "B1_E1"
c2 = Draft.makeCircle(50, placement=App.Placement(p2, rot), face=True)
c2 = Draft.make_circle(50, placement=App.Placement(p2, rot), face=True)
c2.Label = "B1_c1"
c2.Label = "B1_c1"
c3 = Draft.makeCircle(50, placement=App.Placement(p3, rot), face=True)
c3 = Draft.make_circle(50, placement=App.Placement(p3, rot), face=True)
c3.Label = "B1_c2"
c3.Label = "B1_c2"
c4 = Draft.makeCircle(100, placement=App.Placement(p4, rot), face=False)
c4 = Draft.make_circle(100, placement=App.Placement(p4, rot), face=False)
c4.Label = "B1_E2"
c4.Label = "B1_E2"
c5 = Draft.makeCircle(50, placement=App.Placement(p5, rot), face=True)
c5 = Draft.make_circle(50, placement=App.Placement(p5, rot), face=True)
c5.Label = "B2_c3"
c5.Label = "B2_c3"
c6 = Draft.makeCircle(50, placement=App.Placement(p6, rot), face=True)
c6 = Draft.make_circle(50, placement=App.Placement(p6, rot), face=True)
c6.Label = "B2_c4"
c6.Label = "B2_c4"
c7 = Draft.makeCircle(100, placement=App.Placement(p7, rot), face=False)
c7 = Draft.make_circle(100, placement=App.Placement(p7, rot), face=False)
c7.Label = "B2_E3"
c7.Label = "B2_E3"
c8 = Draft.makeCircle(50, placement=App.Placement(p8, rot), face=True)
c8 = Draft.make_circle(50, placement=App.Placement(p8, rot), face=True)
c8.Label = "B3_c5"
c8.Label = "B3_c5"
App.ActiveDocument.recompute()


doc.recompute()
B1 = Draft.makeBezCurve([p1, p2], degree=3)

B1 = Draft.make_bezcurve([p1, p2], degree=3)
B1.Label = "B_lin"
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"
B1.ViewObject.DrawStyle = "Dashed"


B2 = Draft.makeBezCurve([p1, p2, p3], degree=3)
B2 = Draft.make_bezcurve([p1, p2, p3], degree=3)
B2.Label = "B_quad"
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"
B2.ViewObject.DrawStyle = "Dotted"


B3 = Draft.makeBezCurve([p1, p2, p3, p4], degree=3)
B3 = Draft.make_bezcurve([p1, p2, p3, p4], degree=3)
B3.Label = "B_cub"
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4
B3.ViewObject.LineWidth = 4


B4 = Draft.makeBezCurve([p1, p2, p3, p4, p5], degree=3)
B4 = Draft.make_bezcurve([p1, p2, p3, p4, p5], degree=3)
B4.Label = "B_cub+lin"
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"
B4.ViewObject.DrawStyle = "Dashed"


B5 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6], degree=3)
B5 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6], degree=3)
B5.Label = "B_cub+quad"
B5.Label = "B_cub+quad"
B5.ViewObject.DrawStyle = "Dotted"
B5.ViewObject.DrawStyle = "Dotted"


B6 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6.Label = "B_cub+cub"
B6.Label = "B_cub+cub"
B6.ViewObject.LineWidth = 2
B6.ViewObject.LineWidth = 2


B7 = Draft.makeBezCurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7.Label = "B_cub+cub+lin"
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"
B7.ViewObject.DrawStyle = "Dashed"

App.ActiveDocument.recompute()
doc.recompute()
}}
}}
{{Docnav/it|[[Draft BezCurve/it|Curva di Bézier]]|[[Draft_Label/it|Etichetta]]|[[Draft_Module/it|Draft]]|IconL=Draft BezCurve.svg |IconC=Workbench_Draft.svg|IconR=Draft_Label.svg}}


{{Draft Tools navi/it}}


{{Userdocnavi/it}}
{{Docnav/it
|[[Draft_BSpline/it|BSpline]]
|[[Draft_BezCurve/it|Curva di Bézier]]
|[[Draft_Workbench|Draft/it]]
|IconL=Draft_BSpline.svg
|IconR=Draft_BezCurve.svg
|IconC=Workbench_Draft.svg
}}


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

Latest revision as of 15:40, 8 December 2023

Curva di Bézier cubica

Posizione nel menu
Drafting → Strumenti Bezier → Curva di Bézier cubica
Ambiente
Draft, Arch
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Curva di Bézier, BSpline

Descrizione

Il comando Curva di Bézier cubica crea una curva di Bézier di terzo grado (quattro punti richiesti).

La curva di Bézier è una delle curve più utilizzate nella computer grafica. Questo comando consente di creare una spline continua composta da diversi segmenti Bézier di 3° grado, in modo simile allo strumento Bézier in [1]. Una curva di Bézier generale di qualsiasi grado può essere creata con il comando Curva di Bézier.

I comandi Curva di Bézier e Curva di Bézier cubica utilizzano punti di controllo per definire la posizione e la curvatura della spline. Il comando BSpline, invece, specifica i punti esatti attraverso i quali passerà la curva.

Spline composta da tre segmenti cubici di Bézier. Il primo segmento è definito da quattro punti. I segmenti successivi riutilizzano due punti del segmento precedente e pertanto richiedono solo due punti aggiuntivi.

Utilizzo

Vedere anche: Barra di Draft, Aggancio e Vincolare.

  1. Esistono diversi modi per invocare il comando:
    • Premere il pulsante Curva di Bézier cubica.
    • Selezionare l'opzione Drafting → Strumenti Bézier → Curva di Bézier cubica dal menu.
  2. Si apre il pannello delle attività Curva di Bézier cubica. Vedere Opzioni per maggiori informazioni.
  3. Non è possibile inserire i punti tramite il pannello delle attività.
  4. Per i seguenti Modelli di navigazione con mouse è necessario tenere premuto un tasto della tastiera:
    • Se si sta utilizzando Navigazione OpenInventor, il tasto Ctrl deve essere tenuto premuto per tutta la durata del comando.
    • Se si sta utilizzando Navigazione Gesture il tasto Alt deve essere tenuto premuto per ogni sequenza click-hold-release, ma è anche possibile tenere premuto questo tasto per tutta la durata del comando.
  5. Selezionare il primo punto nella Vista 3D e tenere premuto il pulsante del mouse (1), questo è il primo punto finale.
  6. Trascinare il puntatore su un altro punto nella Vista 3D e rilasciare il pulsante del mouse (2), questo è il primo punto di controllo.
  7. Spostare il puntatore su un altro punto nella Vista 3D, selezionare questo punto e tenere premuto il pulsante del mouse (3), questo è il secondo punto finale.
  8. Spostare il puntatore su un altro punto nella Vista 3D per regolare la curvatura finale del segmento e rilasciare il pulsante del mouse (4), questo è il secondo punto di controllo.
  9. Ora si ha una curva di Bézier di 3° grado.
  10. Facoltativamente ripetere il processo di clic e tenere premuto (5) e trascinare e rilasciare (6) per aggiungere più segmenti.
  11. Ogni segmento successivo utilizzerà rispettivamente il secondo punto finale e il secondo punto di controllo del segmento precedente come primo punto finale e primo punto di controllo.
  12. Premere Esc o il pulsante Chiudi per terminare il comando.

Opzioni

Vedere Curva di Bézier.

Note

  • Una Curva di Bézier cubica può essere modificata con il comando Modifica.

Proprietà

Vedere Curva di Bézier.

Script

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

Per informazioni di carattere generale vedere Curva di Bézier. Una Bézier cubica viene creata passando l'opzione degree=3 a makeBezCurve().

Per ogni segmento di Bézier cubica devono essere utilizzati quattro punti, di cui i due punti estremi indicano dove passa la spline e i due punti intermedi sono punti di controllo.

  • Se vengono assegnati solo 3 punti, viene invece creata una Bézier quadratica, con un solo punto di controllo..
  • Se vengono assegnati solo 2 punti, viene creata una Bézier lineare, ovvero una linea retta.
  • Se vengono assegnati 5 punti, i primi 4 creano un segmento di Béezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
  • Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bézier.
  • Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri tre punti sono usati per creare un secondo segmento cubico di Bézier.
  • In generale, l'ultimo punto in un gruppo di quattro è condiviso al massimo con i seguenti tre punti per creare un altro segmento di Bézier.
  • * Per avere curve morbide, senza segmenti diritti, il numero di punti dovrebbe essere 3n + 1 o 3n, dove n è il numero di segmenti, per n >= 1.

Esempi di curve di Bézier prodotte utilizzando 2, 3, 4, 5, 6, 7 e 8 punti. Le linee continue indicano segmenti cubici di Bézier; le altre linee sono quadratiche o lineari.

Esempio:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(-3500, 0, 0)
p2 = App.Vector(-3000, 2000, 0)
p3 = App.Vector(-1100, 2000, 0)
p4 = App.Vector(0, 0, 0)

p5 = App.Vector(1500, -2000, 0)
p6 = App.Vector(3000, -1500, 0)
p7 = App.Vector(5000, 0, 0)
p8 = App.Vector(6000, 1500, 0)
rot = App.Rotation()

c1 = Draft.make_circle(100, placement=App.Placement(p1, rot), face=False)
c1.Label = "B1_E1"
c2 = Draft.make_circle(50, placement=App.Placement(p2, rot), face=True)
c2.Label = "B1_c1"
c3 = Draft.make_circle(50, placement=App.Placement(p3, rot), face=True)
c3.Label = "B1_c2"
c4 = Draft.make_circle(100, placement=App.Placement(p4, rot), face=False)
c4.Label = "B1_E2"
c5 = Draft.make_circle(50, placement=App.Placement(p5, rot), face=True)
c5.Label = "B2_c3"
c6 = Draft.make_circle(50, placement=App.Placement(p6, rot), face=True)
c6.Label = "B2_c4"
c7 = Draft.make_circle(100, placement=App.Placement(p7, rot), face=False)
c7.Label = "B2_E3"
c8 = Draft.make_circle(50, placement=App.Placement(p8, rot), face=True)
c8.Label = "B3_c5"

doc.recompute()

B1 = Draft.make_bezcurve([p1, p2], degree=3)
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"

B2 = Draft.make_bezcurve([p1, p2, p3], degree=3)
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"

B3 = Draft.make_bezcurve([p1, p2, p3, p4], degree=3)
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4

B4 = Draft.make_bezcurve([p1, p2, p3, p4, p5], degree=3)
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"

B5 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6], degree=3)
B5.Label = "B_cub+quad"
B5.ViewObject.DrawStyle = "Dotted"

B6 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6.Label = "B_cub+cub"
B6.ViewObject.LineWidth = 2

B7 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"

doc.recompute()