# 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);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/cs/8_coding_in_dynamo/8-2_geometry-with-design-script/8-intersection-and-trim.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
