Draft BezCurve/cs: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
{{Docnav
|[[Draft_CubicBezCurve|CubicBezCurve]]
|[[Draft_Facebinder|Facebinder]]
|[[Draft_Point|Point]]
|[[Draft CubicBezCurve|CubicBezCurve]]
|[[Draft_Module|Draft]]
|[[Draft_Module|Draft]]
|IconL=Draft_Facebinder.svg
|IconL=Draft_CubicBezCurve.svg
|IconR=Draft_CubicBezCurve.svg
|IconR=Draft_Point.svg
|IconC=Workbench_Draft.svg
|IconC=Workbench_Draft.svg
}}
}}
Line 19: Line 20:
</div>
</div>


The command creates a single Bézier curve with a {{PropertyData|Degree}} that is {{incode|number_of_points - 1}}. It can be transformed into a piecewise Bézier curve by reducing this property.
The BezCurve tool curve uses {{Emphasis|control points}} to define the direction of the curve; on the other hand the [[Draft_BSpline|Draft BSpline]] tool specifies the exact points through which the curve will go. To create exact circular or elliptical curves, use [[Draft_Arc|Draft Arc]] and [[Draft_Ellipse|Draft Ellipse]].

The Draft BezCurve and the [[Draft_CubicBezCurve|Draft CubicBezCurve]] commands use {{Emphasis|control points}} to define the position and curvature of the spline. The [[Draft BSpline|Draft BSpline]] command, on the other hand, specifies the {{Emphasis|exact points}} through which the curve will pass.


[[Image:Draft_BezCurve_Example.png|400px]]
[[Image:Draft_BezCurve_Example.png|400px]]
{{Caption|Bezier curve defined by multiple control points}}
{{Caption|Bézier curve defined by multiple points}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 28: Line 31:
</div>
</div>


See also: [[Draft_Tray|Draft Tray]], [[Draft_Snap|Draft Snap]] and [[Draft_Constrain|Draft Constrain]].
# Invoke the Draft BezCurve command several ways:
#* Press the {{Button|[[Image:Draft_BezCurve.svg|16px]] [[Draft BezCurve|Draft BezCurve]]}} button in Draft toolbar
#* Press the {{KEY|B}} then {{KEY|Z}} keyboard keys
#* Use the {{MenuCommand|Draft → Bezier tools → BezCurve}} entry in the Draft menu
# Click a first point on the [[3D view]], or type a [[Draft_Coordinates|coordinate]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button.
# Click additional points on the [[3D view]], or type a [[Draft_Coordinates|coordinate]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} button.
# Press {{KEY|Esc}} or the {{Button|Close}} button, or double-click the last point to complete the edition.


# There are several ways to invoke the command:
The object is created as a single Bezier curve of degree {{incode|number_of_points - 1}}. It can be transformed to a piecewise wire made of curves of a specified degree by changing its properties.
#* Press the {{Button|[[Image:Draft_BezCurve.svg|16px]] [[Draft_BezCurve|Draft BezCurve]]}} button.

#* Select the {{MenuCommand|Drafting → Bézier tools → [[Image:Draft_BezCurve.svg|16px]] Bézier curve}} option from the menu.
The curve can be edited by double clicking on the element in the tree view, or by pressing the {{Button|[[Image:Draft Edit.svg|16px]] [[Draft Edit|Draft Edit]]}} button. Then you can move the points to a new position, or click {{Button|[[Image:Draft_AddPoint.svg|16px]] [[Draft_AddPoint|add point]]}} or {{Button|[[Image:Draft_DelPoint.svg|16px]] [[Draft_DelPoint|remove point]]}} and then click on the curve to add or remove points. You can also change the constraint type of each point.
# The {{MenuCommand|Bézier curve}} task panel opens. See [[#Options|Options]] for more information.

# Pick the first point in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.
=== Node constraints ===
# Pick additional points in the [[3D_view|3D view]], or type [[Draft_Coordinates|coordinates]] and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.

# Press {{KEY|Esc}} or the {{Button|Close}} button to finish the command.
The segment endpoints can be constrained such that adjacent control points are tangent or symmetric to the segments at the endpoint.
First, start editing the curve, then pick one of the tools and then pick a point. Click again on the tool to deactivate it, so you can move the point.
* {{Button|[[Image:Draft_BezSharpNode.svg|32px]] sharp}} remove constraints on the points so the curve can have sharp corners.
* {{Button|[[Image:Draft_BezTanNode.svg|32px]] tangent}} force adjacent control points to be tangent.
* {{Button|[[Image:Draft_BezSymNode.svg|32px]] symmetric}} force adjacent control points to be tangent and equidistant.

<div class="mw-translate-fuzzy">
==Omezení==
* Tento nástroj je dostupný až od verze FreeCADu 0.14
* Vlastnost Body se zatím nezaobrazuje v seznamu vlastností.
* OpenCascade nepodporuje Bezierovy křivky se stupněm < 25. V praxi by to neměl být problém.
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 63: Line 49:
==Volby==
==Volby==
</div>
</div>

The single character keyboard shortcuts available in the task panel can be changed. See [[Draft_Preferences|Draft Preferences]]. The shortcuts mentioned here are the default shortcuts.


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 76: Line 64:
* Stiskněte klávesy {{KEY|CTRL}}+{{KEY|Z}} nebo tlačítko {{KEY|[[Image:Draft UndoLine.png|12px]] '''[[Draft_UndoLine|Undo]]'''}} pro vrácení k předchozímu bodu.
* Stiskněte klávesy {{KEY|CTRL}}+{{KEY|Z}} nebo tlačítko {{KEY|[[Image:Draft UndoLine.png|12px]] '''[[Draft_UndoLine|Undo]]'''}} pro vrácení k předchozímu bodu.
* Stiskněte klávesu {{KEY|ESC}} nebo tlačítko {{KEY|'''Zrušit'''}} k ukončení aktuálního příkazu pro Bezierovu křivku.
* Stiskněte klávesu {{KEY|ESC}} nebo tlačítko {{KEY|'''Zrušit'''}} k ukončení aktuálního příkazu pro Bezierovu křivku.
</div>

==Notes==

<div class="mw-translate-fuzzy">
==Omezení==
* Tento nástroj je dostupný až od verze FreeCADu 0.14
* Vlastnost Body se zatím nezaobrazuje v seznamu vlastností.
* OpenCascade nepodporuje Bezierovy křivky se stupněm < 25. V praxi by to neměl být problém.
</div>
</div>


==Vlastnosti==
==Vlastnosti==

See also: [[property_editor|Property editor]].

A Draft BezCurve object is derived from a [[Part_Part2DObject|Part Part2DObject]] and inherits all its properties. It also has the following additional properties:


=== Data ===
=== Data ===

* {{PropertyData|Degree}}: specifies the degree of the Bezier curve or the individual segments.
{{TitleProperty|Draft}}
* {{PropertyData|Closed}}: specifies if the curve is closed or not. If the curve is initially open, this value is {{FALSE}}; setting it to {{TRUE}} will draw a segment to close the curve. If the curve is initially closed, this value is {{TRUE}}; setting it to {{FALSE}} will remove the last segment, and make the curve open.

* {{PropertyData|Make Face}}: specifies if the curve makes a face or not. If it is {{TRUE}} a face is created, otherwise only the perimeter is considered part of the object. This property only works if {{PropertyData|Closed}} is {{TRUE}}.
:{{Emphasis|Note:}} do not set {{PropertyData|Make Face}} to {{TRUE}} if the curve intersects itself, as it won't create a proper face.
* {{PropertyData|Area|Area}}: (read-only) specifies the area of the face of the curve. The value will be {{value|0.0}} if {{PropertyData|Make Face}} if {{FALSE}} or the face cannot be created.
* {{PropertyData|Continuity}}: (read-only) when the curve is closed, indicates the continuity of the curve {{incode|[0]}}, or {{incode|[0,0]}}. Otherwise it's {{incode|[]}}.
* {{PropertyData|Closed|Bool}}: specifies if the curve is closed or not. If the curve is initially open this value is {{FALSE}}, setting it to {{TRUE}} will draw a segment to close the curve. If the curve is initially closed this value is {{TRUE}}, setting it to {{FALSE}} will remove the last segment and make the curve open.
* {{PropertyData|Continuity|IntegerList}}: (read-only) specifies the continuity of the curve.
* {{PropertyData|Degree|Integer}}: specifies the degree of the curve.
* {{PropertyData|Length|Length}}: (read-only) specifies the total length of the curve.
* {{PropertyData|Make Face|Bool}}: specifies if the curve makes a face or not. If it is {{TRUE}} a face is created, otherwise only the perimeter is considered part of the object. This property only works if {{PropertyData|Closed}} is {{TRUE}} and if the curve does not self-intersect.
* {{PropertyData|Points|VectorList}}: specifies the control points of the curve in its local coordinate system.


=== View ===
=== View ===

* {{PropertyView|Arrow Size}}: specifies the size of the symbol displayed at the end of the curve.
{{TitleProperty|Draft}}
* {{PropertyView|Arrow Type}}: specifies the type of symbol displayed at the end of the curve, which can be dot, circle, arrow, and tick.

* {{PropertyView|End Arrow}}: specifies whether to show a symbol at the last point of the curve, so it can be used as an annotation line.
* {{PropertyView|Pattern}}: specifies a [[Draft Pattern|Draft Pattern]] with which to fill the face of the closed curve. This property only works if {{PropertyData|Make Face}} is {{TRUE}}, and if {{PropertyView|Display Mode}} is "Flat Lines".
* {{PropertyView|Arrow Size|Length}}: specifies the size of the symbol displayed at the end of the curve.
* {{PropertyView|Pattern Size}}: specifies the size of the [[Draft Pattern|Draft Pattern]].
* {{PropertyView|Arrow Type|Enumeration}}: specifies the type of symbol displayed at the end of the curve, which can be {{value|Dot}}, {{value|Circle}}, {{value|Arrow}}, {{value|Tick}} or {{value|Tick-2}}.
* {{PropertyView|End Arrow|Bool}}: specifies whether to show a symbol at the end of the curve, so it can be used as an annotation line.
* {{PropertyView|Pattern|Enumeration}}: specifies the [[Draft_Pattern|Draft Pattern]] with which to fill the face of the closed curve. This property only works if {{PropertyData|Make Face}} is {{TRUE}} and if {{PropertyView|Display Mode}} is {{value|Flat Lines}}.
* {{PropertyView|Pattern Size|Float}}: specifies the size of the [[Draft_Pattern|Draft Pattern]].

==Scripting==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 101: Line 112:
Nástroj Bezierova křivka může být využit v [[macros|makrech]] a z konzoly Pythonu použitím následující funkce:
Nástroj Bezierova křivka může být využit v [[macros|makrech]] a z konzoly Pythonu použitím následující funkce:
</div>
</div>

{{Code|code=
{{Code|code=
BezCurve = makeBezCurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None)
bezcurve = make_bezcurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None)
BezCurve = makeBezCurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None)
bezcurve = make_bezcurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None)
}}
}}


Line 111: Line 123:


Example:
Example:

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


doc = App.newDocument()
p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(1000, 1000, 0)
p3 = FreeCAD.Vector(2000, 0, 0)
p4 = FreeCAD.Vector(1500, -2000, 0)


p1 = App.Vector(0, 0, 0)
BezCurve1 = Draft.makeBezCurve([p1, p2, p3, p4], closed=True)
p2 = App.Vector(1000, 1000, 0)
BezCurve2 = Draft.makeBezCurve([p4, 1.3*p2, p1, 4.1*p3], closed=True)
p3 = App.Vector(2000, 0, 0)
BezCurve3 = Draft.makeBezCurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True)
p4 = App.Vector(1500, -2000, 0)

bezcurve1 = Draft.make_bezcurve([p1, p2, p3, p4], closed=True)
bezcurve2 = Draft.make_bezcurve([p4, 1.3*p2, p1, 4.1*p3], closed=True)
bezcurve3 = Draft.make_bezcurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True)

doc.recompute()
}}
}}



{{Docnav
{{Docnav
|[[Draft_CubicBezCurve|CubicBezCurve]]
|[[Draft_Facebinder|Facebinder]]
|[[Draft_Point|Point]]
|[[Draft CubicBezCurve|CubicBezCurve]]
|[[Draft_Module|Draft]]
|[[Draft_Module|Draft]]
|IconL=Draft_Facebinder.svg
|IconL=Draft_CubicBezCurve.svg
|IconR=Draft_CubicBezCurve.svg
|IconR=Draft_Point.svg
|IconC=Workbench_Draft.svg
|IconC=Workbench_Draft.svg
}}
}}
Line 135: Line 154:
{{Draft Tools navi{{#translation:}}}}
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Revision as of 11:21, 4 May 2021

Draft BezCurve

Umístění Menu
Draft -> BezCurve
Pracovní stoly
Draft, Arch
Výchozí zástupce
B Z
Představen ve verzi
-
Viz také
Nikdo

Popis

Nástroj Bezierova křivka vytváří Bezierovu křivku (nebo Bezierovu křivku po částech) z několika bodů v aktuální pracovní rovině. Přebírá tloušťku čáry a barvu předem nastavenou v záložce Nástroje.

The command creates a single Bézier curve with a ÚdajeDegree that is number_of_points - 1. It can be transformed into a piecewise Bézier curve by reducing this property.

The Draft BezCurve and the Draft CubicBezCurve commands use control points to define the position and curvature of the spline. The Draft BSpline command, on the other hand, specifies the exact points through which the curve will pass.

Bézier curve defined by multiple points

See also: Draft Tray, Draft Snap and Draft Constrain.

  1. There are several ways to invoke the command:
    • Press the Draft BezCurve button.
    • Select the Drafting → Bézier tools → Bézier curve option from the menu.
  2. The Bézier curve task panel opens. See Options for more information.
  3. Pick the first point in the 3D view, or type coordinates and press the Enter point button.
  4. Pick additional points in the 3D view, or type coordinates and press the Enter point button.
  5. Press Esc or the Close button to finish the command.

Použití

  1. Stiskněte tlačítko Bezierova křivka nebo klávesy B potom Z
  2. Klikněte na první bod ve 3D pohledu nebo zadejte jeho souřadnice
  3. Klikněte na další bod ve 3D pohledu nebo zadejte jeho souřadnice
  4. Stiskněte klávesu F nebo C nebo dvojklikněte na poslední bod pro ukončení nebo na počáteční bod pro uzavření křivky.

Volby

The single character keyboard shortcuts available in the task panel can be changed. See Draft Preferences. The shortcuts mentioned here are the default shortcuts.

  • Stiskněte tlačítko F nebo Dokončit pro ukončení křivky bez uzavření
  • Stiskněte tlačítko C nebo Uzavřít nebo klikněte na první bod pro dokončení křivky s tím, že bude uzavřena a eventuálně bude přdán poslední segment do počátečního bodu.
  • Stiskněte tlačítko X, Y nebo Z po vybrání bodu a pak bude další výběr proveden v dané ose.
  • Pro ruční zadání souřadnic jednoduše vložte číslo a stiskněte ENTER mezi každou z komponent X, Y a Z.
  • Stiskněte tlačítko R nebo zaklikněte/odklikněte políčko Relativně. Je-li zapnut relativní mód souřadnice následujícího bodu bodou relativní k předchozímu bodu, jinak budou absolutní k počátku (0,0,0).
  • Stiskněte tlačítko T nebo zaklikněte/odklikněte políčko Pokračovat. Je-li zapnut pokračovací mód, bude nástroj Bezierova křivka po ukončení nebo uzavření křivky restartován a můžete hned kreslit další bez klikání na tlačítko pro Bezierovu křivku.
  • Stiskněte při kreslení tlačítko CTRL chcete-li přichytit Váš bod k nejbližšímu uchopovacímu místu, nezávisle na tom jak je daleko.
  • Stiskněte při kreslení tlačítko SHIFT pro nastavení vazby dalšího bodu svisle nebo vodorovně v relaci k poslednímu bodu.
  • Stiskněte klávesu W nebo tlačítko Smazat pro smazání existujících segmentů a spuštění křivky od posledního bodu.
  • Stiskněte klávesy CTRL+Z nebo tlačítko Undo pro vrácení k předchozímu bodu.
  • Stiskněte klávesu ESC nebo tlačítko Zrušit k ukončení aktuálního příkazu pro Bezierovu křivku.

Notes

Omezení

  • Tento nástroj je dostupný až od verze FreeCADu 0.14
  • Vlastnost Body se zatím nezaobrazuje v seznamu vlastností.
  • OpenCascade nepodporuje Bezierovy křivky se stupněm < 25. V praxi by to neměl být problém.

Vlastnosti

See also: Property editor.

A Draft BezCurve object is derived from a Part Part2DObject and inherits all its properties. It also has the following additional properties:

Data

Draft

  • ÚdajeArea (Area): (read-only) specifies the area of the face of the curve. The value will be 0.0 if ÚdajeMake Face if false or the face cannot be created.
  • ÚdajeClosed (Bool): specifies if the curve is closed or not. If the curve is initially open this value is false, setting it to true will draw a segment to close the curve. If the curve is initially closed this value is true, setting it to false will remove the last segment and make the curve open.
  • ÚdajeContinuity (IntegerList): (read-only) specifies the continuity of the curve.
  • ÚdajeDegree (Integer): specifies the degree of the curve.
  • ÚdajeLength (Length): (read-only) specifies the total length of the curve.
  • ÚdajeMake Face (Bool): specifies if the curve makes a face or not. If it is true a face is created, otherwise only the perimeter is considered part of the object. This property only works if ÚdajeClosed is true and if the curve does not self-intersect.
  • ÚdajePoints (VectorList): specifies the control points of the curve in its local coordinate system.

View

Draft

  • PohledArrow Size (Length): specifies the size of the symbol displayed at the end of the curve.
  • PohledArrow Type (Enumeration): specifies the type of symbol displayed at the end of the curve, which can be Dot, Circle, Arrow, Tick or Tick-2.
  • PohledEnd Arrow (Bool): specifies whether to show a symbol at the end of the curve, so it can be used as an annotation line.
  • PohledPattern (Enumeration): specifies the Draft Pattern with which to fill the face of the closed curve. This property only works if ÚdajeMake Face is true and if PohledDisplay Mode is Flat Lines.
  • PohledPattern Size (Float): specifies the size of the Draft Pattern.

Scripting

Skriptování

Nástroj Bezierova křivka může být využit v makrech a z konzoly Pythonu použitím následující funkce:

bezcurve = make_bezcurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None)
bezcurve = make_bezcurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None)
  • Vytvoří objekt Bezierovy křivky podle zadaného seznamu vektorů. Místo seznamu bodů můžete také vložit díl Drát.

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1000, 1000, 0)
p3 = App.Vector(2000, 0, 0)
p4 = App.Vector(1500, -2000, 0)

bezcurve1 = Draft.make_bezcurve([p1, p2, p3, p4], closed=True)
bezcurve2 = Draft.make_bezcurve([p4, 1.3*p2, p1, 4.1*p3], closed=True)
bezcurve3 = Draft.make_bezcurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True)

doc.recompute()