Draft PathArray/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "Rysunek Roboczy: Szyk po ścieżce")
 
No edit summary
 
(66 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Page_in_progress}}
<languages/>
<languages/>


{{Docnav
{{Docnav/pl
|[[Draft_CircularArray|CircularArray]]
|[[Draft_CircularArray/pl|Szyk kołowy]]
|[[Draft_PathLinkArray|PathLinkArray]]
|[[Draft_PathLinkArray/pl|Szyk powiązań po ścieżce]]
|[[Draft_Workbench/pl|środowisko pracy Rysunek Roboczy]]
|[[Draft_Module|Draft]]
|IconL=Draft_CircularArray.svg
|IconL=Draft_CircularArray.svg
|IconR=Draft_PathLinkArray.svg
|IconR=Draft_PathLinkArray.svg
Line 11: Line 10:
}}
}}


{{GuiCommand
{{GuiCommand/pl
|Name=Draft PathArray
|Name=Draft PathArray
|Name/pl=Rysunek Roboczy: Szyk po ścieżce
|MenuLocation=Modification → Array tools → Path array
|MenuLocation=Modyfikacja → Narzędzia szyku → Szyk po ścieżce
|Workbenches=[[Draft_Module|Draft]], [[Arch_Module|Arch]]
|Workbenches=[[Draft_Workbench/pl|Rysunek Roboczy]], [[Arch_Workbench/pl|Architektura]]
|Version=0.14
|Version=0.14
|SeeAlso=[[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]], [[Draft_CircularArray|Draft CircularArray]], [[Draft_PathLinkArray|Draft PathLinkArray]], [[Draft_PointArray|Draft PointArray]], [[Draft_Clone|Draft Clone]]
|SeeAlso=[[Draft_OrthoArray/pl|Szyk ortogonalny]], [[Draft_PolarArray/pl|Szyk biegunowy]], [[Draft_CircularArray/pl|Szyk kołowy]], [[Draft_PathLinkArray/pl|Szyk powiązań po ścieżce]], [[Draft_PointArray/pl|Szyk z punktów]], [[Draft_PointLinkArray/pl|Szyk powiązań w punktach]]
}}
}}


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


Polecenie [[Image:Draft_PathArray.svg|24px]] '''Szyk po ścieżce''' tworzy zwykły szyk z wybranego obiektu przez umieszczenie kopii wzdłuż ścieżki. Zamiast tego użyj polecenia [[Draft_PathLinkArray/pl|Szyk powiązań po ścieżce]], aby utworzyć bardziej wydajny szyk [[App_Link|powiązań]]. Z wyjątkiem typu utworzonych szyków ''(szyk powiązań lub zwykły szyk)'', polecenie [[Draft_PathLinkArray/pl|Szyk powiązań po ścieżce]] jest identyczne z tym poleceniem.
The {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray|Draft PathArray]]}} tool places copies of a selected shape along a selected path, which can be a [[Draft_Wire|Draft Wire]], a [[Draft_BSpline|Draft BSpline]], and similar edges.


The PathArray tool can be used on any object that has a [[Part_TopoShape|Part TopoShape]], meaning 2D shapes created with the [[Draft_Workbench|Draft Workbench]], but also 3D solids created with other workbenches, for example, [[Part_Workbench|Part]], [[PartDesign_Workbench|PartDesign]], or [[Arch_Workbench|Arch]].
Oba polecenia mogą być używane na obiektach 2D utworzonych za pomocą środowisk pracy [[Draft_Workbench/pl|Rysunek Roboczy]] lub [[Sketcher_Workbench/pl|Szkicownik]], ale można ich również użyć dla wielu typów obiektów 3D, takich jak te utworzone za pomocą środowisk pracy [[Part_Workbench/pl|Część]], [[PartDesign_Workbench/pl|Projekt Części]] lub [[Arch_Workbench/pl|Architektura]].

* To create orthogonal, polar or circular arrays, use the corresponding {{Button|[[File:Draft_OrthoArray.svg|16px]] [[Draft_OrthoArray|OrthoArray]]}}, {{Button|[[File:Draft_PolarArray.svg|16px]] [[Draft_PolarArray|PolarArray]]}}, or {{Button|[[File:Draft_CircularArray.svg|16px]] [[Draft_CircularArray|CircularArray]]}} tools.
* To position [[App_Link|App Link]] copies along a path use {{Button|[[File:Draft_PathLinkArray.svg|16px]] [[Draft_PathLinkArray|PathLinkArray]]}}.
* To position copies at specified points use {{Button|[[File:Draft_PointArray.svg|16px]] [[Draft_PointArray|PointArray]]}} or {{Button|[[File:Draft_PointLinkArray.svg|16px]] [[Draft_PointLinkArray|PointLinkArray]]}}.
* To create copies and manually place them use {{Button|[[File:Draft_Move.svg|16px]] [[Draft_Move|Move]]}} or {{Button|[[File:Draft_Rotate.svg|16px]] [[Draft_Rotate|Rotate]]}}.
* To create exact copies and manually place or scale them, use {{Button|[[File:Draft_Clone.svg|16px]] [[Draft_Clone|Clone]]}} or {{Button|[[File:Std_LinkMake.svg|16px]] [[Std_LinkMake|Std LinkMake]]}}.


[[Image:Draft_PathArray_Example.png|400px]]
[[Image:Draft_PathArray_Example.png|400px]]
{{Caption|Object arranged along a path}}
{{Caption|Szyk po ścieżce}}


==Usage==
<span id="Usage"></span>
==Użycie==


# Wybierz obiekt, który chcesz wyświetlić.
# Select the object that you wish to distribute.
# Dodaj obiekt ścieżki do zaznaczenia. Zamiast tego można również wybrać krawędzie. Krawędzie muszą należeć do tego samego obiektu i muszą być połączone.
# Select the path object or edges along which the object will be distributed.
# Polecenie można wywołać na kilka sposobów:
# Press the {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray|PathArray]]}} button.
#* Naciśnij przycisk {{Button|[[Image:Draft_PathArray.svg|16px]] '''Szyk po ścieżce'''}}.
# The Array object is immediately created. You must change the properties of the array to change the number and direction of copies created.
#* Wybierz opcję z menu {{MenuCommand|Modyfikacja → Narzędzia szyku → [[Image:Draft_PathArray.svg|16px]] Szyk po ścieżce}}.
# Szyk zostanie utworzony.
# Opcjonalnie można zmienić [[#Właściwości|właściwości]] szyku w [[Property_editor/pl|edytorze właściwości]].


<span id="Alignment"></span>
Each element in the array is an exact clone of the original object, but the entire array is considered a single unit in terms of properties and appearance.
==Wyrównanie==


Wyrównanie elementów w Szyk po ścieżce zależy od właściwości szyku i orientacji obiektu źródłowego. Pozycja obiektu źródłowego jest ignorowana: dla celów szyku wartości {{Value|x}}, {{Value|y}} i {{Value|z}} są ustawione na {{Value|0}}. Jeśli właściwość {{PropertyData|Wyrównaj}} szyku jest ustawiona na wartość {{FALSE/pl}}, orientacja elementów szyku jest identyczna z orientacją obiektu źródłowego. Jeśli jest ustawiona na {{TRUE/pl}}, oś X lokalnego układu współrzędnych każdego umieszczonego elementu jest styczna do ścieżki. Osie Y i Z lokalnych układów współrzędnych zależą od właściwości {{PropertyData|Tryb wyrównania}} szyku. Inne właściwości szyku związane z wyrównaniem obejmują: {{PropertyData|Wektor styczny}}, {{PropertyData|Wymuś pionowo}} i {{PropertyData|Wektor pionowy}}.
{{Emphasis|Note:}} if the {{PropertyData|Base}} object doesn't seem to be positioned correctly in the path, check that its {{PropertyData|Placement}} is in the origin {{Value|(0,0,0)}}. Certain objects can be placed anywhere in the 3D space when used with the {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray|PathArray]]}} tool, but others must be at the origin, particularly those created by using {{Button|[[File:Part_Extrude.svg|16px]] [[Part_Extrude|Part Extrude]]}} with a 2D profile like a {{Button|[[File:Sketcher_NewSketch.svg|16px]] [[Sketch|Sketch]]}}.


[[Image:Draft_PathArray_example2.png|600px]]
==Options==
{{Caption|Trzy szyki oparte na tej samej nieplanarnej ścieżce. Od lewej do prawej: Wyrównanie ustawiono na {{false/pl}}, Wyrównanie ustawiono na {{true/pl}} z trybem wyrównania Original i Wyrównaj ustawiono na {{true/pl}} z trybem wyrównania Frenet.}}.


<span id="Align_Mode"></span>
There are no options for this tool. Either it works with the selected objects or not.
===Tryb wyrównania===


Dostępne są trzy tryby:
==Properties==


====Original====
A [[Draft_PathArray|PathArray]] is derived from a [[Part_Feature|Part Feature]] ({{incode|Part::Feature}} class), therefore it shares all the latter's properties. In addition to the properties described in [[Part_Feature|Part Feature]], the PathArray has the following properties in the [[property_editor|property editor]].


Ten tryb jest najbardziej zbliżony do pojedynczego {{PropertyData|Tryb wyrównania}} dostępnego w wersji 0.18. Opiera się on na stałym wektorze normalnym. Jeśli ścieżka jest płaska, wektor ten jest prostopadły do płaszczyzny ścieżki, w przeciwnym razie używany jest wektor domyślny, o dodatniej osi Z. Na podstawie tego wektora normalnego i lokalnego wektora stycznego ''(lokalna oś X)'' obliczany jest [https://en.wikipedia.org/wiki/Cross_product iloczyn krzyżowy]. Ten nowy wektor jest używany jako lokalna oś Z. Orientacja lokalnej osi Y jest określana na podstawie lokalnych osi X i Z.
{{TitleProperty|Alignment}}


====Frenet====
* {{PropertyData|Align|Bool}}: if it is {{TRUE}} the copies will be aligned to the path; otherwise they are left in their default orientation.
:{{Emphasis|Note:}} in certain cases the shape will appear flat, in reality it may have moved in the 3D space, so instead of using a flat view, change the view to axonometric.
* {{PropertyData|Align Mode|Enumeration}}: three modes, {{Value|Original}}, {{Value|Frenet}}, {{Value|Tangent}}.
* {{PropertyData|Extra Translation|VectorDistance}}: additional displacement vector {{Value|(x, y, z)}} that will be applied to each copy along the path. This is useful to make small adjustments in the position of the copies, for example, when its reference point doesn't match the center point of its shape.
* {{PropertyData|Force Vertical|Bool}}: if it is {{TRUE}}, the value of {{PropertyData|Vertical Vector}} will be used as the local Z direction, when {{PropertyData|Align Mode}} is {{Value|Original}} or {{Value|Tangent}}. {{Version|0.19}}
* {{PropertyData|Tangent Vector|Vector}}: it defaults to {{Value|(1, 0, 0)}}; alignment unit vector that will be used when {{PropertyData|Align Mode}} is {{Value|Tangent}}. {{Version|0.19}}
* {{PropertyData|Vertical Vector|Vector}}: it defaults to {{Value|(0, 0, 1)}}; unit vector of the local Z direction that will be used when {{PropertyData|Vertical Vector}} is {{TRUE}}. {{Version|0.19}}


Tryb ten wykorzystuje lokalny wektor normalny wyprowadzony ze ścieżki przy każdym umieszczeniu elementu. Jeśli nie można określić tego wektora ''(na przykład w przypadku odcinka prostego)'', zamiast niego używany jest wektor domyślny, ponownie dodatnia oś Z. Za pomocą tego wektora i lokalnego wektora stycznego lokalny układ współrzędnych jest określany przy użyciu tej samej procedury, co w poprzednim akapicie.
{{TitleProperty|Objects}}


<span id="Tangent"></span>
* {{PropertyData|Base|LinkGlobal}}: specifies the object to duplicate in the path.
===Styczna===
* {{PropertyData|Count|Integer}}: specifies the number of copies to create in the path.
* {{PropertyData|Path Object|LinkGlobal}}: specifies the object along which the copies will be distributed. It must contain {{Value|'Edges'}} in its [[Part_TopoShape|Part TopoShape]]; for example, it could be a {{Button|[[File:Draft_Wire.svg|16px]] [[Draft_Wire|Wire]]}} or {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline|BSpline]]}}.
* {{PropertyData|Path Subelements|LinkSubListGlobal}}: specifies the sub-elements (edges) of the {{PropertyData|Path Object}} on which the copies will be created. The copies will be created only on these edges. If this property is empty, the copies will be distributed on the entire {{PropertyData|Path Object}}.


Tryb ten jest podobny do {{PropertyData|Trybu wyrównania}} {{Value|Original}}, ale obejmuje możliwość wstępnego obrócenia obiektu źródłowego poprzez określenie {{PropertyData|Wektora stycznej}}.
==Scripting==


<span id="Force_Vertical_and_Vertical_Vector"></span>
See also: [https://www.freecadweb.org/api Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
===Wymuś pionowo i Wektor pionowy===


Właściwości te są dostępne tylko wtedy, gdy {{PropertyData|Tryb wyrównania}} ma wartość {{Value|Original}} lub {{Value|Styczny}}. Jeśli właściowść {{PropertyData|Wymuś pionowo}} jest ustawione na {{TRUE/pl}}, lokalny układ współrzędnych jest obliczany w inny sposób. {{PropertyData|Wektor pionowy}} jest używany jako stały wektor normalny. Z tego wektora normalnego i lokalnego wektora stycznego ''(lokalna oś X)'' ponownie obliczany jest iloczyn krzyżowy. Ale teraz ten wektor jest używany jako lokalna oś Y. Orientacja lokalnej osi Z jest określana na podstawie lokalnych osi X i Y.
The PathArray tool can be used in [[macros|macros]] and from the [[Python|Python]] console by using the following function:


Użycie tych właściwości może być wymagane, jeśli jedna z krawędzi ścieżki jest ''(prawie)'' równoległa do domyślnej normalnej ścieżki.
Older call:


<span id="Properties"></span>
{{Code|code=
==Właściwości==
path_array = makePathArray(base_object, path_object, count, xlate=None, align=False, pathobjsubs=[])
}}


Zobacz również stronę: [[Property_editor/pl|Edytor właściwości]].
New call:


Obiekt Szyk po ścieżce środowiska Rysunek Roboczy wywodzi się z obiektu [[Part_Feature/pl|Część: Cecha]] i dziedziczy wszystkie jego właściwości ''(z wyjątkiem niektórych właściwości Widoku, które nie są dziedziczone przez szyki Łączy)''. Poniższe właściwości są dodatkowe, chyba że zaznaczono inaczej:
{{Code|code=
path_array = make_path_array(base_object, path_object,
count=4, extra=App.Vector(0, 0, 0), subelements=None,
align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
use_link=True):
}}


<span id="Data"></span>
* Creates a {{incode|"PathArray"}} object from the {{incode|base_object}}, by placing as many as {{incode|count}} copies along {{incode|path_object}}.
===Dane===
** Instead of a reference to an object, {{incode|base_object}} and {{incode|path_object}} can also be {{incode|Labels}} (strings) of objects existing in the current document.
** If {{incode|extra}} is given, it is a vector that displaces each of the individual copies by a small amount.
** If {{incode|subelements}} is given, it is a list of edges of {{incode|path_object}}, for example, {{incode|['Edge1', 'Edge2']}}; the copies will be created along this shorter path.
** If {{incode|align}} is {{incode|True}}, the copies are aligned along the {{incode|path_object}} depending on the value of {{incode|align_mode}}, which may be {{incode|"Original"}}, {{incode|"Frenet"}} or {{incode|"Tangent"}}.
** If {{incode|tan_vector}} is given, it is a unit vector that defines the local tangent direction of the copy along the path. It is used when {{incode|align_mode}} is {{incode|"Tangent"}}.
** If {{incode|force_vertical}} is {{incode|True}}, the value of {{incode|vertical_vector}} is used to determine the local Z direction of the copy along the path. It is used when {{incode|align_mode}} is {{incode|"Original"}} or {{incode|"Tangent"}}.
** If {{incode|use_link}} is {{incode|True}}, the type of array created will be a [[Draft_PathLinkArray|PathLinkArray]], whose elements are [[App_Link|App Link]] instances instead of simple copies.


{{TitleProperty|Łącze}}
Example:


Właściwości w tej grupie są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie [[Std_LinkMake/pl#Właściwości|Std: Utwórz łącze]].
{{Code|code=
import FreeCAD as App
import Draft


* {{PropertyData|Skala|Float}}
doc = App.newDocument()
* {{PropertyData|Wektor skali|Vector|Ukryte}}.
* {{PropertyData|Lista skali|VectorList}}
* {{PropertyData|Lista widoczności|BoolList|Ukryte}}
* {{PropertyData|Lista umiejscowienia|PlacementList|Ukryte}}
* {{PropertyData|Lista elementów|LinkList|Ukryte}}
* {{PropertyData|_ Link Touched|Bool|Ukryte}}
* {{PropertyData|_ Child Cache|LinkList|Ukryte}}
* {{PropertyData|Elementy kolorowe|LinkSubHidden|Ukryte}}
* {{PropertyData|Przekształcenie łącza|Bool}}


{{TitleProperty|Wyrównanie}}
p1 = App.Vector(500, -1000, 0)
p2 = App.Vector(1500, 1000, 0)
p3 = App.Vector(3000, 500, 0)
p4 = App.Vector(4500, 100, 0)
spline = Draft.make_bspline([p1, p2, p3, p4])
obj = Draft.make_polygon(3, 500)


* {{PropertyData|Wyrównaj|Bool}}: określa, czy elementy w tablicy są wyrównane wzdłuż ścieżki, czy nie. Jeśli ma wartość {{FALSE/pl}}, wszystkie inne właściwości w tej grupie, z wyjątkiem {{PropertyData|Dodatkowe przesunięcie}}, nie mają zastosowania i są ukryte.
path_array = Draft.make_path_array(obj, spline, 6)
* {{PropertyData|Tryb wyrównania|Enumeration}}: określa tryb wyrównania, który może być {{Value|Original}}, {{Value|Frenet}} lub {{Value|Stycznie}}.
doc.recompute()
* {{PropertyData|Koniec odsunięcia|Length}}: określa długość od końca ścieżki do ostatniej kopii. Musi być mniejsza niż długość ścieżki minus {{PropertyData|Początek odsunięcia}}. {{Version/pl|0.21}}
* {{PropertyData|Dodatkowe przesunięcie|VectorDistance}}: określa dodatkowe przemieszczenie dla każdego elementu wzdłuż ścieżki.
* {{PropertyData|Wymuś pionowo|Bool}}: określa, czy zastąpić domyślny kierunek normalny wartością {{PropertyData|Wektor pionowy}}. Używane tylko jeśli {{PropertyData|Tryb wyrównania}} ma wartość {{Value|Original}} lub {{Value|Styczna}}.
* {{PropertyData|Przesunięcie początkowe|Length}}: określa długość od początku ścieżki do pierwszej kopii. Musi być mniejsza niż długość ścieżki. {{Version/pl|0.21}}
* {{PropertyData|Wektor styczny|Vector}}: określa wektor wyrównania. Używane tylko jeśli {{PropertyData|Tryb wyrównania}} jest {{Value|Styczna}}.
* {{PropertyData|Wektor pionowy|Vector}}: określa nadpisanie domyślnego kierunku normalnego. Używane tylko jeśli właściwość {{PropertyData|Wektor pionowy}} ma wartość {{TRUE/pl}}.


{{TitleProperty|Obiekty}}
wire = Draft.make_wire([p1, -p2, -p3, -p4])
path_array2 = Draft.make_path_array(obj, wire, count=3, extra=App.Vector(0, -500, 0), subelements=["Edge2", "Edge3"], align=True, force_vertical=True)
doc.recompute()
}}


* {{PropertyData|Baza|LinkGlobal}}: określa obiekt do powielenia w szyku.
==Technical explanation for the Align property==
* {{PropertyData|Ilość|Integer}}: określa liczbę elementów w szyku.
* {{PropertyData|Rozwiń szyk|Bool}}: określa, czy tablica ma zostać rozwinięta w [[Tree_view/pl|widoku drzewa]], aby umożliwić wybór jej poszczególnych elementów. Dostępne tylko dla szyków łączy.
* {{PropertyData|Scal|Bool}}: określa, czy nakładające się elementy w tablicy są łączone, czy nie. Nie używane dla tablic Łączy. {{Version/pl|1.0}}
* {{PropertyData|Obiekt ścieżki|LinkGlobal}}: określa obiekt, który ma być użyty dla ścieżki. Musi zawierać {{Value|Krawędzie}} w swoim [[Part_TopoShape/pl|kształcie topologicznym]].
* {{PropertyData|Elementy podżędne ścieżki|LinkSubListGlobal}}: określa listę krawędzi {{PropertyData|Obiektu ścieżki}}. Jeśli zostanie podana, tylko te krawędzie są używane dla ścieżki.


<span id="View"></span>
When {{PropertyData|Align}} is {{FALSE}}, the placement of the copied shapes is easy to understand; they are just moved to a different position in their original orientation.
===Widok===


{{TitleProperty|Łącze}}
[[Image:patharray_NoAlign.png|600px|left|Align false]]
{{clear}}
{{Caption|Object arranged along a closed path in the original orientation}}


Właściwości w tej grupie, z wyjątkiem właściwości dziedziczonej, są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie [[Std_LinkMake/pl#Właściwości|Std: Utwórz łącze]].
When {{PropertyData|Align}} is {{TRUE}}, the positioning of the shapes becomes a bit more complex:
# First, Frenet coordinate systems are built on the path: X is tangent, Z is normal, Y is binormal.
# Then the original object is copied to every on-path coordinate system, so that the global origin is matched with the on-path coordinate system origin.


* {{PropertyView|Styl kreślenia|Enumeration}}
[[Image:patharray alignment annotated.png|600px|left]]
* {{PropertyView|Szerokość linii|FloatConstraint}}
{{clear}}
* {{PropertyView|Nadpisanie materiału|Bool}}
{{Caption|Object arranged along a closed path; description of components and path}}
* {{PropertyView|Rozmiar punktu|FloatConstraint}}
* {{PropertyView|Wybieralny|Bool}}: jest to właściwość dziedziczona, która pojawia się w grupie "Wybór" dla innych szyków.
* {{PropertyView|Kształt materiału|Material}}.


{{TitleProperty|Podstawa}}
The following images show how the array is produced, depending on which plane the path is.


Właściwości w tej grupie, z wyjątkiem właściwości dziedziczonej, są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie [[Std_LinkMake/pl#Właściwości|Std: Utwórz łącze]].
Path on XY Plane:


* {{PropertyView|Dostawca widoku elementu podrzędnego|PersistentObject|Ukryte}}.
[[Image:patharray_alignment.png|600px|left]]
* {{PropertyView|Lista materiałów|MaterialList|Ukryte}}
{{clear}}
* {{PropertyView|Zastąp listę kolorów|ColorList|Ukryte}}
{{Caption|Object arranged along a closed path which is aligned to the XY plane}}
* {{PropertyView|Zastąp listę materiałów|BoolList|Ukryte}}
* {{PropertyView|Proxy|PythonObject|Ukryte}}: jest to właściwość dziedziczona.


{{TitleProperty|Opcje wyświetlania}}
Path on XZ Plane:


Właściwości w tej grupie są dziedziczone. Więcej informacji można znaleźć na stronie [[Part_Feature/pl#Własności|Część: Cecha]].
[[Image:patharray_alignment-XZ.png|600px|left]]
{{clear}}
{{Caption|Object arranged along a closed path which is aligned to the XZ plane}}


* {{PropertyView|Ramka otaczająca|Bool}}: ta właściwość nie jest dziedziczona przez szyk łączy.
Path on YZ Plane:
* {{PropertyView|Tryb wyświetlania|Enumeration}}: dla szyku Łączy może to być {{value|Link}} lub {{value|ChildView}}. Dla innych szyków może to być: {{value|Cieniowany z krawędziami}}, {{value|Cieniowany}}, {{value|Szkieletowy}} lub {{value|Punkty}}.
* {{PropertyView|Pokaż w drzewie|Bool}}
* {{PropertyView|Widoczność|Bool}}


{{TitleProperty|Rysunek Roboczy}}
[[Image:patharray_alignment-YZ.png|600px|left]]
{{clear}}
{{Caption|Object arranged along a closed path which is aligned to the YZ plane}}


* {{PropertyView|Wzór|Enumeration}}: niewykorzystane.
As you reorient the path but not the object, the result is consistent: the object remains aligned to the path the way it was before reorienting the path.
* {{PropertyView|Rozmiar wzoru|Float}}: niewykorzystane.


{{TitleProperty|Styl obiektu}}
{{Emphasis|Editor:}} thank you to user DeepSOIC for this explanation.


Właściwości w tej grupie nie są dziedziczone przez szyk łączy.
==Additional alignment modes and options introduced in v0.19==


<span id="Scripting"></span>
'''Original''' mode (the default) is the historic alignment mode as in version 0.18.
==Tworzenie skryptów==
It is not really the Frenet alignment. Original mode uses the normal parameter
from Draft.getNormal (or the default) as a constant - it does not calculate
curve normal. X follows the curve tangent, Y is the normal parameter, Z is
X.Cross(Y).


Zobacz również stronę: [https://freecad.github.io/SourceDoc/ Dokumentacja API generowana automatycznie] oraz [[FreeCAD_Scripting_Basics/pl|Podstawy pisania skryptów dla FreeCAD]].
'''Tangent''' mode is similar to '''Original''', but includes a rotation to align the
Base object's X to the TangentVector before placing copies. After the
rotation, Tangent behaves the same as Original. In previous versions this
rotation would be performed manually before invoking PathArray.


Aby utworzyć Szyk po ścieżce, należy użyć metody {{incode|make_path_array}} ({{Version/pl|0.19}}) modułu Rysunek Roboczy. Metoda ta zastępuje przestarzałą metodę {{incode|makePathArray}}.
'''Frenet''' mode orients the copies to a coordinate system along the path. X is
tangent to curve, Y is curve normal, Z is curve binormal. If a normal can not
be computed (ex a straight line), the default is used.


{{Code|code=
The ForceVertical option applies to Original and Tangent modes. When this
path_array = make_path_array(base_object, path_object,
option is applied, the normal parameter from Draft.getNormal is ignored. X
count=4, extra=App.Vector(0, 0, 0), subelements=None,
follows the curve tangent, Z is the VerticalVector property and Y is
align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
X.Cross(Z).
force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
use_link=True)
}}


* {{incode|base_object}} jest obiektem, który ma być użyty w szyku. Może to być również {{incode|Etykieta}} ''(ciąg znaków)'' obiektu w bieżącym dokumencie.
Version 18 cycle chain - Original mode
* {{incode|obiekt_ścieżki}} jest obiektem ścieżki. Może to być również {{incode|Etykieta}} ''(ciąg znaków)'' obiektu w bieżącym dokumencie.
[[Image:patharray_cycleChain.png|600px|left|Align false]]
* {{incode|Ilość}} jest liczbą elementów w tablicy.
{{clear}}
* {{incode|extra}} jest wektorem, który przesuwa każdy element.
* {{incode|Element podrzędny}} jest listą krawędzi {{incode|obiekt_ścieżki}}, na przykład {{incode|["Edge1", "Edge2"]}}. Jeśli zostanie podana, tylko te krawędzie są używane dla ścieżki.
* Jeśli {{incode|Wyrównaj}} ma wartość {{True/pl}}, elementy są wyrównywane wzdłuż ścieżki w zależności od wartości właściwości {{incode|tryb_wyrównania}}, która może mieć wartość {{incode|"Original"}}, {{incode|"Frenet"}} lub {{incode|"Styczna"}}.
* {{incode|tan_vector}} jest wektorem jednostkowym, który definiuje lokalny kierunek styczny elementów wzdłuż ścieżki. Jest on używany, gdy właściwość {{incode|tryb_wyrównania}} ma wartość {{incode|"Styczna"}}.
* Jeśli {{incode|Wymuś_pionowo}} ma wartość {{True/pl}}, {{incode|vertical_vector}} jest używany dla lokalnego kierunku Z elementów wzdłuż ścieżki. Jest on używany, gdy właściwość {{incode|tryb_wyrównania}} ma wartość {{incode|"Original"}} lub {{incode|"Styczna"}}.
* Jeśli {{incode|użyj_łaczy}} ma wartość {{True/pl}}, utworzone elementy są obiektami [[App_Link/pl|App: Łącze]] zamiast zwykłych kopii.
* {{incode|Szyk_ścieżki}} jest zwracany wraz z utworzonym obiektem szyku.


Przykład:
Railway cross ties (sleepers) - Tangent mode + ForceVertical
[[Image:patharray_railwayTies.png|600px|left|Align false]]
{{clear}}


{{Code|code=
Frenet Mode
import FreeCAD as App
[[Image:patharray_FrenetMode.png|600px|left|Align false]]
import Draft
{{clear}}

doc = App.newDocument()

p1 = App.Vector(500, -1000, 0)
p2 = App.Vector(1500, 1000, 0)
p3 = App.Vector(3000, 500, 0)
p4 = App.Vector(4500, 100, 0)
spline = Draft.make_bspline([p1, p2, p3, p4])
obj = Draft.make_polygon(3, 500)

path_array = Draft.make_path_array(obj, spline, 6)
doc.recompute()

wire = Draft.make_wire([p1, -p2, -p3, -p4])
path_array2 = Draft.make_path_array(obj, wire, count=3, extra=App.Vector(0, -500, 0), subelements=["Edge2", "Edge3"], align=True, force_vertical=True)
doc.recompute()
}}




{{Docnav
{{Docnav/pl
|[[Draft_CircularArray|CircularArray]]
|[[Draft_CircularArray/pl|Szyk kołowy]]
|[[Draft_PathLinkArray|PathLinkArray]]
|[[Draft_PathLinkArray/pl|Szyk powiązań po ścieżce]]
|[[Draft_Workbench/pl|Środowisko pracy Rysunek Roboczy]]
|[[Draft_Module|Draft]]
|IconL=Draft_CircularArray.svg
|IconL=Draft_CircularArray.svg
|IconR=Draft_PathLinkArray.svg
|IconR=Draft_PathLinkArray.svg

Latest revision as of 10:19, 21 April 2024

Rysunek Roboczy: Szyk po ścieżce

Lokalizacja w menu
Modyfikacja → Narzędzia szyku → Szyk po ścieżce
Środowisko pracy
Rysunek Roboczy, Architektura
Domyślny skrót
brak
Wprowadzono w wersji
0.14
Zobacz także
Szyk ortogonalny, Szyk biegunowy, Szyk kołowy, Szyk powiązań po ścieżce, Szyk z punktów, Szyk powiązań w punktach

Opis

Polecenie Szyk po ścieżce tworzy zwykły szyk z wybranego obiektu przez umieszczenie kopii wzdłuż ścieżki. Zamiast tego użyj polecenia Szyk powiązań po ścieżce, aby utworzyć bardziej wydajny szyk powiązań. Z wyjątkiem typu utworzonych szyków (szyk powiązań lub zwykły szyk), polecenie Szyk powiązań po ścieżce jest identyczne z tym poleceniem.

Oba polecenia mogą być używane na obiektach 2D utworzonych za pomocą środowisk pracy Rysunek Roboczy lub Szkicownik, ale można ich również użyć dla wielu typów obiektów 3D, takich jak te utworzone za pomocą środowisk pracy Część, Projekt Części lub Architektura.

Szyk po ścieżce

Użycie

  1. Wybierz obiekt, który chcesz wyświetlić.
  2. Dodaj obiekt ścieżki do zaznaczenia. Zamiast tego można również wybrać krawędzie. Krawędzie muszą należeć do tego samego obiektu i muszą być połączone.
  3. Polecenie można wywołać na kilka sposobów:
    • Naciśnij przycisk Szyk po ścieżce.
    • Wybierz opcję z menu Modyfikacja → Narzędzia szyku → Szyk po ścieżce.
  4. Szyk zostanie utworzony.
  5. Opcjonalnie można zmienić właściwości szyku w edytorze właściwości.

Wyrównanie

Wyrównanie elementów w Szyk po ścieżce zależy od właściwości szyku i orientacji obiektu źródłowego. Pozycja obiektu źródłowego jest ignorowana: dla celów szyku wartości x, y i z są ustawione na 0. Jeśli właściwość DANEWyrównaj szyku jest ustawiona na wartość FAŁSZ, orientacja elementów szyku jest identyczna z orientacją obiektu źródłowego. Jeśli jest ustawiona na PRAWDA, oś X lokalnego układu współrzędnych każdego umieszczonego elementu jest styczna do ścieżki. Osie Y i Z lokalnych układów współrzędnych zależą od właściwości DANETryb wyrównania szyku. Inne właściwości szyku związane z wyrównaniem obejmują: DANEWektor styczny, DANEWymuś pionowo i DANEWektor pionowy.

Trzy szyki oparte na tej samej nieplanarnej ścieżce. Od lewej do prawej: Wyrównanie ustawiono na Fałsz, Wyrównanie ustawiono na Prawda z trybem wyrównania Original i Wyrównaj ustawiono na Prawda z trybem wyrównania Frenet.

.

Tryb wyrównania

Dostępne są trzy tryby:

Original

Ten tryb jest najbardziej zbliżony do pojedynczego DANETryb wyrównania dostępnego w wersji 0.18. Opiera się on na stałym wektorze normalnym. Jeśli ścieżka jest płaska, wektor ten jest prostopadły do płaszczyzny ścieżki, w przeciwnym razie używany jest wektor domyślny, o dodatniej osi Z. Na podstawie tego wektora normalnego i lokalnego wektora stycznego (lokalna oś X) obliczany jest iloczyn krzyżowy. Ten nowy wektor jest używany jako lokalna oś Z. Orientacja lokalnej osi Y jest określana na podstawie lokalnych osi X i Z.

Frenet

Tryb ten wykorzystuje lokalny wektor normalny wyprowadzony ze ścieżki przy każdym umieszczeniu elementu. Jeśli nie można określić tego wektora (na przykład w przypadku odcinka prostego), zamiast niego używany jest wektor domyślny, ponownie dodatnia oś Z. Za pomocą tego wektora i lokalnego wektora stycznego lokalny układ współrzędnych jest określany przy użyciu tej samej procedury, co w poprzednim akapicie.

Styczna

Tryb ten jest podobny do DANETrybu wyrównania Original, ale obejmuje możliwość wstępnego obrócenia obiektu źródłowego poprzez określenie DANEWektora stycznej.

Wymuś pionowo i Wektor pionowy

Właściwości te są dostępne tylko wtedy, gdy DANETryb wyrównania ma wartość Original lub Styczny. Jeśli właściowść DANEWymuś pionowo jest ustawione na PRAWDA, lokalny układ współrzędnych jest obliczany w inny sposób. DANEWektor pionowy jest używany jako stały wektor normalny. Z tego wektora normalnego i lokalnego wektora stycznego (lokalna oś X) ponownie obliczany jest iloczyn krzyżowy. Ale teraz ten wektor jest używany jako lokalna oś Y. Orientacja lokalnej osi Z jest określana na podstawie lokalnych osi X i Y.

Użycie tych właściwości może być wymagane, jeśli jedna z krawędzi ścieżki jest (prawie) równoległa do domyślnej normalnej ścieżki.

Właściwości

Zobacz również stronę: Edytor właściwości.

Obiekt Szyk po ścieżce środowiska Rysunek Roboczy wywodzi się z obiektu Część: Cecha i dziedziczy wszystkie jego właściwości (z wyjątkiem niektórych właściwości Widoku, które nie są dziedziczone przez szyki Łączy). Poniższe właściwości są dodatkowe, chyba że zaznaczono inaczej:

Dane

Łącze

Właściwości w tej grupie są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie Std: Utwórz łącze.

  • DANESkala (Float)
  • DANE (Ukryte)Wektor skali (Vector).
  • DANELista skali (VectorList)
  • DANE (Ukryte)Lista widoczności (BoolList)
  • DANE (Ukryte)Lista umiejscowienia (PlacementList)
  • DANE (Ukryte)Lista elementów (LinkList)
  • DANE (Ukryte)_ Link Touched (Bool)
  • DANE (Ukryte)_ Child Cache (LinkList)
  • DANE (Ukryte)Elementy kolorowe (LinkSubHidden)
  • DANEPrzekształcenie łącza (Bool)

Wyrównanie

  • DANEWyrównaj (Bool): określa, czy elementy w tablicy są wyrównane wzdłuż ścieżki, czy nie. Jeśli ma wartość FAŁSZ, wszystkie inne właściwości w tej grupie, z wyjątkiem DANEDodatkowe przesunięcie, nie mają zastosowania i są ukryte.
  • DANETryb wyrównania (Enumeration): określa tryb wyrównania, który może być Original, Frenet lub Stycznie.
  • DANEKoniec odsunięcia (Length): określa długość od końca ścieżki do ostatniej kopii. Musi być mniejsza niż długość ścieżki minus DANEPoczątek odsunięcia. dostępne w wersji 0.21
  • DANEDodatkowe przesunięcie (VectorDistance): określa dodatkowe przemieszczenie dla każdego elementu wzdłuż ścieżki.
  • DANEWymuś pionowo (Bool): określa, czy zastąpić domyślny kierunek normalny wartością DANEWektor pionowy. Używane tylko jeśli DANETryb wyrównania ma wartość Original lub Styczna.
  • DANEPrzesunięcie początkowe (Length): określa długość od początku ścieżki do pierwszej kopii. Musi być mniejsza niż długość ścieżki. dostępne w wersji 0.21
  • DANEWektor styczny (Vector): określa wektor wyrównania. Używane tylko jeśli DANETryb wyrównania jest Styczna.
  • DANEWektor pionowy (Vector): określa nadpisanie domyślnego kierunku normalnego. Używane tylko jeśli właściwość DANEWektor pionowy ma wartość PRAWDA.

Obiekty

  • DANEBaza (LinkGlobal): określa obiekt do powielenia w szyku.
  • DANEIlość (Integer): określa liczbę elementów w szyku.
  • DANERozwiń szyk (Bool): określa, czy tablica ma zostać rozwinięta w widoku drzewa, aby umożliwić wybór jej poszczególnych elementów. Dostępne tylko dla szyków łączy.
  • DANEScal (Bool): określa, czy nakładające się elementy w tablicy są łączone, czy nie. Nie używane dla tablic Łączy. dostępne w wersji 1.0
  • DANEObiekt ścieżki (LinkGlobal): określa obiekt, który ma być użyty dla ścieżki. Musi zawierać Krawędzie w swoim kształcie topologicznym.
  • DANEElementy podżędne ścieżki (LinkSubListGlobal): określa listę krawędzi DANEObiektu ścieżki. Jeśli zostanie podana, tylko te krawędzie są używane dla ścieżki.

Widok

Łącze

Właściwości w tej grupie, z wyjątkiem właściwości dziedziczonej, są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie Std: Utwórz łącze.

  • WIDOKStyl kreślenia (Enumeration)
  • WIDOKSzerokość linii (FloatConstraint)
  • WIDOKNadpisanie materiału (Bool)
  • WIDOKRozmiar punktu (FloatConstraint)
  • WIDOKWybieralny (Bool): jest to właściwość dziedziczona, która pojawia się w grupie "Wybór" dla innych szyków.
  • WIDOKKształt materiału (Material).

Podstawa

Właściwości w tej grupie, z wyjątkiem właściwości dziedziczonej, są dostępne tylko dla szyków łączy. Więcej informacji można znaleźć na stronie Std: Utwórz łącze.

  • WIDOK (Ukryte)Dostawca widoku elementu podrzędnego (PersistentObject).
  • WIDOK (Ukryte)Lista materiałów (MaterialList)
  • WIDOK (Ukryte)Zastąp listę kolorów (ColorList)
  • WIDOK (Ukryte)Zastąp listę materiałów (BoolList)
  • WIDOK (Ukryte)Proxy (PythonObject): jest to właściwość dziedziczona.

Opcje wyświetlania

Właściwości w tej grupie są dziedziczone. Więcej informacji można znaleźć na stronie Część: Cecha.

  • WIDOKRamka otaczająca (Bool): ta właściwość nie jest dziedziczona przez szyk łączy.
  • WIDOKTryb wyświetlania (Enumeration): dla szyku Łączy może to być Link lub ChildView. Dla innych szyków może to być: Cieniowany z krawędziami, Cieniowany, Szkieletowy lub Punkty.
  • WIDOKPokaż w drzewie (Bool)
  • WIDOKWidoczność (Bool)

Rysunek Roboczy

  • WIDOKWzór (Enumeration): niewykorzystane.
  • WIDOKRozmiar wzoru (Float): niewykorzystane.

Styl obiektu

Właściwości w tej grupie nie są dziedziczone przez szyk łączy.

Tworzenie skryptów

Zobacz również stronę: Dokumentacja API generowana automatycznie oraz Podstawy pisania skryptów dla FreeCAD.

Aby utworzyć Szyk po ścieżce, należy użyć metody make_path_array (dostępne w wersji 0.19) modułu Rysunek Roboczy. Metoda ta zastępuje przestarzałą metodę makePathArray.

path_array = make_path_array(base_object, path_object,
                             count=4, extra=App.Vector(0, 0, 0), subelements=None,
                             align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
                             force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
                             use_link=True)
  • base_object jest obiektem, który ma być użyty w szyku. Może to być również Etykieta (ciąg znaków) obiektu w bieżącym dokumencie.
  • obiekt_ścieżki jest obiektem ścieżki. Może to być również Etykieta (ciąg znaków) obiektu w bieżącym dokumencie.
  • Ilość jest liczbą elementów w tablicy.
  • extra jest wektorem, który przesuwa każdy element.
  • Element podrzędny jest listą krawędzi obiekt_ścieżki, na przykład ["Edge1", "Edge2"]. Jeśli zostanie podana, tylko te krawędzie są używane dla ścieżki.
  • Jeśli Wyrównaj ma wartość Prawda, elementy są wyrównywane wzdłuż ścieżki w zależności od wartości właściwości tryb_wyrównania, która może mieć wartość "Original", "Frenet" lub "Styczna".
  • tan_vector jest wektorem jednostkowym, który definiuje lokalny kierunek styczny elementów wzdłuż ścieżki. Jest on używany, gdy właściwość tryb_wyrównania ma wartość "Styczna".
  • Jeśli Wymuś_pionowo ma wartość Prawda, vertical_vector jest używany dla lokalnego kierunku Z elementów wzdłuż ścieżki. Jest on używany, gdy właściwość tryb_wyrównania ma wartość "Original" lub "Styczna".
  • Jeśli użyj_łaczy ma wartość Prawda, utworzone elementy są obiektami App: Łącze zamiast zwykłych kopii.
  • Szyk_ścieżki jest zwracany wraz z utworzonym obiektem szyku.

Przykład:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(500, -1000, 0)
p2 = App.Vector(1500, 1000, 0)
p3 = App.Vector(3000, 500, 0)
p4 = App.Vector(4500, 100, 0)
spline = Draft.make_bspline([p1, p2, p3, p4])
obj = Draft.make_polygon(3, 500)

path_array = Draft.make_path_array(obj, spline, 6)
doc.recompute()

wire = Draft.make_wire([p1, -p2, -p3, -p4])
path_array2 = Draft.make_path_array(obj, wire, count=3, extra=App.Vector(0, -500, 0), subelements=["Edge2", "Edge3"], align=True, force_vertical=True)
doc.recompute()