> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/cs/8_coding_in_dynamo/8-2_geometry-with-design-script/8-intersection-and-trim.md).

# Průnik a oříznutí

Mnoho příkladů se dosud soustředilo na tvorbu vícerozměrných geometrií z méněrozměrných geometrií. Pomocí metod průsečíků je možné z vícerozměrných geometrií vygenerovat méněrozměrné objekty a po vytvoření geometrií lze jejich tvar dále upravit pomocí příkazů oříznutí.

Metoda *Průnik* je definována u všech geometrií aplikace Dynamo, teoreticky lze tedy provést průnik libovolných dvou geometrií. Některé průniky samozřejmě nedávají smysl, například průnik s body, protože výsledným objektem bude vždy samotný vstupní bod. Další možné kombinace průniků mezi objekty jsou uvedeny v následujícím diagramu. Následující tabulka uvádí výsledky různých operací průniku:

### **Průnik**

| *S hodnotami:* | Povrch | Křivka | Rovina      | Těleso |
| -------------- | ------ | ------ | ----------- | ------ |
| **Povrch**     | Křivka | Bod    | Bod, křivka | Povrch |
| **Křivka**     | Bod    | Bod    | Bod         | Křivka |
| **Rovina**     | Křivka | Bod    | Křivka      | Křivka |
| **Těleso**     | Povrch | Křivka | Křivka      | Těleso |

Následující velmi jednoduchý příklad ukazuje průnik roviny s plochou Nurbs. Průnik vygeneruje pole objektů NurbsCurve, které lze používat jako kterékoliv jiné objekty NurbsCurve.

![](/files/ivC8AWgphYwHTJbj7h14)

```js
// python_points_5 is a set of Points generated with
// a Python script found in Chapter 12, Section 10

surf = NurbsSurface.ByPoints(python_points_5, 3, 3);

WCS = CoordinateSystem.Identity();

pl = Plane.ByOriginNormal(WCS.Origin.Translate(0, 0,
    0.5), WCS.ZAxis);

// intersect surface, generating three closed curves
crvs = surf.Intersect(pl);

crvs_moved = crvs.Translate(0, 0, 10);
```

Metoda *Oříznutí* je velmi podobná metodě Průnik v tom, že je definována u téměř všech geometrií. Metoda *Oříznutí* je však omezenější než metoda *Průnik*.

### **Oříznutí**

|              | *Používá:* Bod | Křivka | Rovina | Plocha | Těleso |
| ------------ | -------------- | ------ | ------ | ------ | ------ |
| *Na:* Křivka | Ano            | Ne     | Ne     | Ne     | Ne     |
| Polygon      | -              | Ne     | Ano    | Ne     | Ne     |
| Plocha       | -              | Ano    | Ano    | Ano    | Ano    |
| Těleso       | -              | -      | Ano    | Ano    | Ano    |

U metody *Oříznutí* je nutné zadat výběrový bod, který určuje, která geometrie má být zahozena a která má být zachována. Aplikace vyhledá a zahodí oříznutou geometrii, která bude výběrovému bodu nejblíže.

![](/files/nau2ciVpMjR32XamEDqu)

```js
// python_points_5 is a set of Points generated with
// a Python script found in Chapter 12, Section 10

surf = NurbsSurface.ByPoints(python_points_5, 3, 3);

tool_pts = Point.ByCoordinates((-10..20..10)<1>,
    (-10..20..10)<2>, 1);

tool = NurbsSurface.ByPoints(tool_pts);

pick_point = Point.ByCoordinates(8, 1, 3);

result = surf.Trim(tool, pick_point);
```
