Part Loft Technical Details/ro: Difference between revisions

From FreeCAD Documentation
(Created page with "===pasul 1. Making numbers of segment in profiles match=== The Loft needs the number of segments to match in order to create surfaces between corresponding segments. If the nu...")
(Updating to match new version of source page)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
This page explains the details of how the [[Part Loft|Loft]] surface is created. This is also relevant to [[Part Sweep|Part Sweep]] done along a straight path, although there are differences.


Această pagină explică în detalii cum este creată o suprafață [[Part Loft|Loft]]. Aceasta este un caz particular de suprafața baleiată [[Part Sweep|Part Sweep]] dar creată de-a lungul unei traiectorii drepte, dar sunt și alte diferențe.
The information provided is implementation specific, and may change. Current state is relevant to FreeCAD 0.15.4119, OCC version: 6.7.0.


Informațiile furnizate sunt specifice implementării și se pot schimba. Starea actuală este relevantă pentru FreeCAD 0.15.4119, versiunea OCC: 6.7.0.
==Etapele instrumentului Loft ==
To explain the process of loft, it is convenient to divide it into stages:
# make number of segments in the profiles equal (if they are not already)
# establish correspondence between segments
# make the loft surface


==Stages of the Loft creation==
===pasul 1. Making numbers of segment in profiles match===
The Loft needs the number of segments to match in order to create surfaces between corresponding segments. If the numbers of segments match in all profiles, this step is skipped.


<div class="mw-translate-fuzzy">
If at least one of the profiles has a different number of segments, the following procedure is applied. The procedure is explained here for the case of only two profiles for simplicity.
==Etapele creării suprafeței riglate Loft ==
# the profiles are temporarily aligned so that they are coplanar and their centers of masses* match.
Pentru a explica procesul de mansardare, este convenabil să-l împărțim în etape:
# (see the picture) for every vertex in one profile, the second profile is sliced at the same polar angle (the polar center is the center of mass). If there is more than one slice possible or no slice possible at all (it can happen on very convex profiles), the Loft typically fails.
# faceți ca numărul de segmente din profiluri să fie egal (dacă acestea nu sunt deja)
# the same is done in the opposite direction.
# stabiliți corespondența între segmente
# face suprafața mansardei
</div>


===Step 1. Making numbers of segment in profiles match===
The operation is extended to all profiles, to yield the equal number of segments. The total number of segments in each profile would be equal to the sum of all numbers of segments of all profiles (provided none of the vertices happen to be at the same polar angle).

<div class="mw-translate-fuzzy">
===pasul 1. Faceți ca numărul de segment din profiluri să se potrivească===
Instrumentul Loft-ul are nevoie de numărul de segmente să se potrivească pentru a crea suprafețe între segmentele corespunzătoare. Dacă numărul de segmente se potrivește în toate profilurile, acest pas poate fi/este omis.
</div>

Dacă cel puțin unul dintre profile are un număr diferit de segmente, se aplică următoarea procedură. Procedura este explicată aici pentru cazul a numai două profiluri pentru simplitate.
# profilurile sunt aliniate temporar, astfel încât acestea să fie coplanare și să se potrivească centrele lor de masă.
# (vezi imaginea) pentru fiecare vârf dintr-un profil, al doilea profil este tăiat la același unghi polar (centrul polar este centrul masei). Dacă există mai mult de o felie posibilă sau nicio felie deloc posibilă (se poate întâmpla pe profile foarte convexe), Loft-ul eșuează în mod obișnuit.
# același lucru se face în sens opus.

Operația este extinsă la toate profilurile, pentru a obține un număr egal de segmente. Numărul total de segmente din fiecare profil ar fi egal cu suma tuturor numerelor de segmente ale tuturor profilurilor (cu condiția ca nici unul dintre vârfuri să nu aibă același unghi polar).


{|style="margin: 0 auto;"
{|style="margin: 0 auto;"
Line 26: Line 35:


===Step 2. Establishing correspondence between segments===
===Step 2. Establishing correspondence between segments===

<div class="mw-translate-fuzzy">
===Pasul 2. Establishing correspondence between segments===
[[File:Loft Number of verts match.png|thumb|300px|Demonstration of Loft keeping the number of segments in profiles when they match. Note how 3 edges of the top square "collapse" into a small polygonal piece of the bottom profile.]]
[[File:Loft Number of verts match.png|thumb|300px|Demonstration of Loft keeping the number of segments in profiles when they match. Note how 3 edges of the top square "collapse" into a small polygonal piece of the bottom profile.]]
În cazul în care numărul de segmente din toate profilurile nu este egal, felierea a fost făcută în pasul 1, iar corespondența este trivială.
In case numbers of segments in all profiles were not equal, slicing was done in Step 1, and the correspondence is trivial.
În cazul în care numerele de segmente din toate profilurile au fost egale, segmentele existente sunt utilizate (vezi imaginea), iar acesta este momentul în care trebuie stabilită corespondența.
In case numbers of segments in all profiles were equal, existing segments are used (see the picture), and this is when the correspondence must be established.
</div>


Algoritmul exact de a găsi segmente corespunzătoare este complex, dar, în general, tinde să minimizeze răsucirea Loft-ului rezultat. Aceasta înseamnă că, dacă se face o mansardă/loft între două pătrate, este posibilă o răsturnare maximă de <45 °. Rotirea ulterioară a unuia dintre pătrate va face Loft-ul să sară la alte noduri.
The exact algorithm to find corresponding segments is complex, but generally it tends to minimize the twisting of the resulting Loft. This means that if one is doing a loft between two squares, the maximum twist possible is <45°. Further rotation of one of the squares will cause the Loft to jump to other vertices.


Corespondența dintre profilurile învecinate se face independent. Aceasta înseamnă că răsucirea suplimentară poate fi obținută prin adăugarea de mai multe profiluri.
The correspondence between neighboring profiles is made independently. This means that additional twisting can be obtained by adding more profiles.


Un alt lucru care trebuie remarcat este că atunci când numărul de segmente în profiluri este egal, loftul rezultat este substanțial mai robust în ceea ce privește profilurile complexe, în special pentru cele ne-convexe.
Another thing to note is that when numbers of segments in profiles are equal, the resulting Loft is substantially more robust with respect to complex profiles, especially for non-convex ones.
{{clear}}
{{clear}}

===Step 3. Making the loft surface.===
===Step 3. Making the loft surface===

<div class="mw-translate-fuzzy">
===Pasul 3. Making the loft surface.===
[[File:Loft B-spline.png|thumb|400px|A spline interpolation curve (red) that follows the loft surface. The points to interpolate through are shown as red squares.]]
[[File:Loft B-spline.png|thumb|400px|A spline interpolation curve (red) that follows the loft surface. The points to interpolate through are shown as red squares.]]
Dacă există doar două profiluri, suprafețele create sunt suprafețe riglate între segmentele corespunzătoare ale profilurilor. Muchiile/marginile drepte sunt create pentru a conecta vârfurile corespunzătoare ale profilurilor.
If there are only two profiles, the surfaces created are ruled surfaces between corresponding segments of the profiles. Straight edges are created to connect corresponding vertices of the profiles.
</div>


Dacă există mai mult de două profile, suprafețele sunt realizate din curbe spline în același mod în care liniile drepte formează suprafețe riglate. Curbele Spline imaginare pe care suprafața este "realizată" sunt desenate prin punctele corespunzătoare ale segmentelor corespunzătoare ale profilurilor.
If there are more than two profiles, the surfaces are made of splines in the same manner as straight lines form ruled surfaces. The imaginary splines the surface is "made of" are drawn through corresponding points of the corresponding segments of the profiles.


The splines are B-spline interpolation.
Curebele sunt interpolare B-spline.
* If the number of profiles is below 10, interpolation is done with by a B-spline with a maximum possible degree (i.e. degree = number_of_profiles - 1).
* Dacă numărul de profile este mai mic de 10, interpolarea se face cu o funcție B-spline cu un grad maxim posibil (adică grad = number_of_profiles - 1).
* În cazul în care numărul de profile depășește 10, interpolarea este trecută la funcții B-splinele de gradul 3.
* If the number of profiles exceeds 10, the interpolation is switched to 3rd degree B-splines.


The knotting method used is "approximate chord length". Approximate stands for the fact that the knot vector is exactly the same for every spline in a loft. For more info on what is B-spline interpolation, knot vector, chord length method, see, for example, [http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/INT-APP/CURVE-INT-global.html cs.mtu.edu Curve Global Interpolation ].
Metoda de îmbinare utilizată este "lungimea aproximativă a coardei". Aproximarea constă în faptul vectorul nodului este exact același pentru fiecare curbă spline dintr-o mansardă/loft. Pentru mai multe informații despre ceea ce este interpolarea B-spline, vectorul nodului, metoda lungimii coardei, a se vedea, de exemplu,[http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/INT-APP/CURVE-INT-global.html cs.mtu.edu Curve Global Interpolation ].


Rețineți că Loft are o proprietate "Riglat". Dacă este setat la adevărat, suprafețele riglate sunt realizate între profilurile învecinate chiar și atunci când există mai multe profiluri. Asta este, interpolarea funcției B-spline este înlocuită cu o interpolare liniară pe bucăți/părți.
Note that Loft has a "Ruled" property. If it is set to true, ruled surfaces are made between neighboring profiles even when there's more than one profile. That is, B-spline interpolation is replaced by piecewise linear interpolation.
{{clear}}
{{clear}}

==The essence==
==The main point==
* The loft is doing B-spline interpolation between the provided profiles. The interpolation is switched to piecewise linear when "Ruled" property is set to true.

* When number of profiles exceeds 9, interpolation degree is dropped to 3. This switchover can substantially reduce wiggling.
<div class="mw-translate-fuzzy">
* Matching the number of segments (aka number of vertices) in the profiles allows one to give the loft a slight twist, and typically permits using more complex profiles.
==Esența instrumentului ==
* When numbers of segments are not matched, it's best to keep the profiles to be representable by a proper r(phi) function in polar coordinates.
* Instrumentul Loft efectuează o interpolare B-spline între profilurile furnizate. Interpolarea este comutată în liniară pe bucăți/părți atunci când proprietatea "Ruled" este setată la true.
* Când numărul de profile depășește 9, gradul de interpolare este de 3. Această comutare poate reduce semnificativ agitarea/termurul.
* Dacă se potrivește numărul de segmente (sau numărul de noduri) din profiluri aceasta oferă Loft-ului o răsucire ușoară și, în general, vă permite să utilizați profiluri mai complexe.
* Când numărul de segmente nu se potrivește, este mai bine să păstrați profilurile astfel încât să poată fi reprezentate de o funcție corespunzătoare (phi) în coordonate polare.
</div>


==Additional remarks==
==Additional remarks==

* It is not required that the profiles are parallel (see a picture below).
<div class="mw-translate-fuzzy">
* For Loft, it is not required that the profiles are separated (see a picture below). They can be coplanar, but they should not intersect.
==Observații suplimentare==
* When "closed" property of the Loft is "true", there is a cusp joint in all the splines forming the Loft (see a picture below). There is no reliable way to close the loft smoothly now.
* Nu este necesar ca profilurile să fie paralele (a se vedea imaginea de mai jos).
* Pentru Loft, nu este necesar ca profilurile să fie separate (a se vedea o imagine de mai jos). Ele pot fi coplanare, dar nu ar trebui să se intersecteze.
* Când proprietatea "închisă" a Loft-ului este "adevărată", există o îmbinare la vârf între toate curbele spline care formează Loft-ul (vezi imaginea de mai jos). Nu există nici o modalitate sigură de a închide Loft-ul fără asperități/probleme.
</div>


{|style="margin: 0 auto;"
{|style="margin: 0 auto;"
Line 67: Line 94:
|}
|}


[[Category:User Documentation]]


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

Latest revision as of 08:44, 23 April 2023

Other languages:

Această pagină explică în detalii cum este creată o suprafață Loft. Aceasta este un caz particular de suprafața baleiată Part Sweep dar creată de-a lungul unei traiectorii drepte, dar sunt și alte diferențe.

Informațiile furnizate sunt specifice implementării și se pot schimba. Starea actuală este relevantă pentru FreeCAD 0.15.4119, versiunea OCC: 6.7.0.

Stages of the Loft creation

Etapele creării suprafeței riglate Loft

Pentru a explica procesul de mansardare, este convenabil să-l împărțim în etape:

  1. faceți ca numărul de segmente din profiluri să fie egal (dacă acestea nu sunt deja)
  2. stabiliți corespondența între segmente
  3. face suprafața mansardei

Step 1. Making numbers of segment in profiles match

pasul 1. Faceți ca numărul de segment din profiluri să se potrivească

Instrumentul Loft-ul are nevoie de numărul de segmente să se potrivească pentru a crea suprafețe între segmentele corespunzătoare. Dacă numărul de segmente se potrivește în toate profilurile, acest pas poate fi/este omis.

Dacă cel puțin unul dintre profile are un număr diferit de segmente, se aplică următoarea procedură. Procedura este explicată aici pentru cazul a numai două profiluri pentru simplitate.

  1. profilurile sunt aliniate temporar, astfel încât acestea să fie coplanare și să se potrivească centrele lor de masă.
  2. (vezi imaginea) pentru fiecare vârf dintr-un profil, al doilea profil este tăiat la același unghi polar (centrul polar este centrul masei). Dacă există mai mult de o felie posibilă sau nicio felie deloc posibilă (se poate întâmpla pe profile foarte convexe), Loft-ul eșuează în mod obișnuit.
  3. același lucru se face în sens opus.

Operația este extinsă la toate profilurile, pentru a obține un număr egal de segmente. Numărul total de segmente din fiecare profil ar fi egal cu suma tuturor numerelor de segmente ale tuturor profilurilor (cu condiția ca nici unul dintre vârfuri să nu aibă același unghi polar).

The process of slicing profile2 (white crescent-like shape) to create joints corresponding to vertices of profile1 (purple pentagon). The inserted joints are marked by yellow arrows.
The result of loft relevant to the picture on the left.

Step 2. Establishing correspondence between segments

Pasul 2. Establishing correspondence between segments

Demonstration of Loft keeping the number of segments in profiles when they match. Note how 3 edges of the top square "collapse" into a small polygonal piece of the bottom profile.

În cazul în care numărul de segmente din toate profilurile nu este egal, felierea a fost făcută în pasul 1, iar corespondența este trivială. În cazul în care numerele de segmente din toate profilurile au fost egale, segmentele existente sunt utilizate (vezi imaginea), iar acesta este momentul în care trebuie stabilită corespondența.

Algoritmul exact de a găsi segmente corespunzătoare este complex, dar, în general, tinde să minimizeze răsucirea Loft-ului rezultat. Aceasta înseamnă că, dacă se face o mansardă/loft între două pătrate, este posibilă o răsturnare maximă de <45 °. Rotirea ulterioară a unuia dintre pătrate va face Loft-ul să sară la alte noduri.

Corespondența dintre profilurile învecinate se face independent. Aceasta înseamnă că răsucirea suplimentară poate fi obținută prin adăugarea de mai multe profiluri.

Un alt lucru care trebuie remarcat este că atunci când numărul de segmente în profiluri este egal, loftul rezultat este substanțial mai robust în ceea ce privește profilurile complexe, în special pentru cele ne-convexe.

Step 3. Making the loft surface

Pasul 3. Making the loft surface.

A spline interpolation curve (red) that follows the loft surface. The points to interpolate through are shown as red squares.

Dacă există doar două profiluri, suprafețele create sunt suprafețe riglate între segmentele corespunzătoare ale profilurilor. Muchiile/marginile drepte sunt create pentru a conecta vârfurile corespunzătoare ale profilurilor.

Dacă există mai mult de două profile, suprafețele sunt realizate din curbe spline în același mod în care liniile drepte formează suprafețe riglate. Curbele Spline imaginare pe care suprafața este "realizată" sunt desenate prin punctele corespunzătoare ale segmentelor corespunzătoare ale profilurilor.

Curebele sunt interpolare B-spline.

  • Dacă numărul de profile este mai mic de 10, interpolarea se face cu o funcție B-spline cu un grad maxim posibil (adică grad = number_of_profiles - 1).
  • În cazul în care numărul de profile depășește 10, interpolarea este trecută la funcții B-splinele de gradul 3.

Metoda de îmbinare utilizată este "lungimea aproximativă a coardei". Aproximarea constă în faptul că vectorul nodului este exact același pentru fiecare curbă spline dintr-o mansardă/loft. Pentru mai multe informații despre ceea ce este interpolarea B-spline, vectorul nodului, metoda lungimii coardei, a se vedea, de exemplu,cs.mtu.edu Curve Global Interpolation .

Rețineți că Loft are o proprietate "Riglat". Dacă este setat la adevărat, suprafețele riglate sunt realizate între profilurile învecinate chiar și atunci când există mai multe profiluri. Asta este, interpolarea funcției B-spline este înlocuită cu o interpolare liniară pe bucăți/părți.

The main point

Esența instrumentului

  • Instrumentul Loft efectuează o interpolare B-spline între profilurile furnizate. Interpolarea este comutată în liniară pe bucăți/părți atunci când proprietatea "Ruled" este setată la true.
  • Când numărul de profile depășește 9, gradul de interpolare este de 3. Această comutare poate reduce semnificativ agitarea/termurul.
  • Dacă se potrivește numărul de segmente (sau numărul de noduri) din profiluri aceasta oferă Loft-ului o răsucire ușoară și, în general, vă permite să utilizați profiluri mai complexe.
  • Când numărul de segmente nu se potrivește, este mai bine să păstrați profilurile astfel încât să poată fi reprezentate de o funcție corespunzătoare (phi) în coordonate polare.

Additional remarks

Observații suplimentare

  • Nu este necesar ca profilurile să fie paralele (a se vedea imaginea de mai jos).
  • Pentru Loft, nu este necesar ca profilurile să fie separate (a se vedea o imagine de mai jos). Ele pot fi coplanare, dar nu ar trebui să se intersecteze.
  • Când proprietatea "închisă" a Loft-ului este "adevărată", există o îmbinare la vârf între toate curbele spline care formează Loft-ul (vezi imaginea de mai jos). Nu există nici o modalitate sigură de a închide Loft-ul fără asperități/probleme.
It is not required that the profiles are parallel.
In Loft, the profiles can be coplanar. In this example, two of three profiles are coplanar.
An example of a closed loft between three pentagonal profiles (white). Note the non-smooth joint at the outermost profile. This is the first profile in the closed loft.