# Autointersezioni e contours

**URL:** <https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411>\
**Category:** Rhino Windows\
**Created:** [22 Settembre 2023, 8:31am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411 "2023-09-22T08:31:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [22 Settembre 2023, 8:31am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/1 "2023-09-22T08:31:41Z")

</div>

Buongiorno a tutti,

mi trovo di fronte a questo problema:  
partendo da un stl devo sezionarlo n volte (ad una distanza z di ad esempio 0.005 mm) prendendo però il solo bordo esterno delle mesh (all’interno sono presenti altre mesh).

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/7/774a58dfe96cc3c1509ec9d73507b437b88c90a1.jpeg) ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/9/7/97f7f96f03d9ae9a2790b394142d764d5cc0ad62.png)

Utilizzando il comando \_Contours va ad intersecare anche le mesh interne al solido ed inoltre genera oltre 2000 autointersezioni…

A questo punto le domande sono 2:

1. C’è un modo di sezionare le mesh prendendo/intersecando i soli bordi esterni del solido?
2. Esiste un modo (magari anche con Grasshopper) per risolvere/eliminare in maniera automatica il problema delle autointersezioni nelle curve?

Lascio in allegato il file in esame:  
[Test autointersezioni.3dm](https://it.discourse.mcneel.com/uploads/short-url/8TjpwyvBTMfRuTDy7o36OkosEEQ.3dm) (2,9 MB)

Il problema delle autointersezioni con il comando \_contours mi è capitato anche in altri casi, in cui l’stl non sembrava presentare porzioni “interne”.

P.S. Ho già ridotto al massimo le tolleranze, notando che il numero di autointersezioni in generale diminuisce:  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/9/0/90341d04e099163736b74b2955855f2aacf9162f.png)

---

<div class="post-metadata">

**Author:** ![alex.coppola7](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/alex.coppola7/32/18314_2.png) [@alex.coppola7](https://it.discourse.mcneel.com/u/alex.coppola7)\
**Post date:** [22 Settembre 2023, 9:48am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/2 "2023-09-22T09:48:51Z")

</div>

Ciao, a giudicare dalla geometria sembra che non ti servano delle parti presenti nello spessore (che poi sono i 1340 bordi non-manifold…) mentre vorresti quelle sul rilievo:

- quando lanci il comando Contour ti chiede in alto se vuoi effettuarlo su un “range” → dopo averci cliccato ti basta dare come base point un vertice del bordo superiore;
- mentre per i bordi esterni basta prendere la prima curva creata dal countour e fare un array lineare verso il basso di quanto vuoi.

Se ho capito quello che vuoi

---

<div class="post-metadata">

**Author:** ![leopoldomonzani](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/leopoldomonzani/32/17957_2.png) [@leopoldomonzani](https://it.discourse.mcneel.com/u/leopoldomonzani)\
**Post date:** [22 Settembre 2023, 10:03am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/3 "2023-09-22T10:03:40Z")

</div>

Giusto quello che dice Alex, però secondo me va rifatto il solido.  
Ci sono facce che si intersecano rendendo impossibile qualunque operazione.  
Almeno così credo io.

 ![img1](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/5/75efef43f28d0f3d10a038bffbec1e4e16a136b8.jpeg)  
 ![img2](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/c/3/c31d7c56b2dee5d6ea75848d19d19e7be38616c8.jpeg)

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [22 Settembre 2023, 10:20am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/4 "2023-09-22T10:20:21Z")

</div>

> [@alex.coppola7](#):
>
> - quando lanci il comando Contour ti chiede in alto se vuoi effettuarlo su un “range” → dopo averci cliccato ti basta dare come base point un vertice del bordo superiore;

In ordine eseguo:

- \_contour  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/0/7/07606473e5607444a13396fb34a206e132593098.png)
- seleziono il solido e premo invio
- clicco su “intervallo”  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/c/c/ccf9e7ade3fbf401f3547109958263a28773a572.png)
- seleziono il bordo esterno in 2 punti  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/b/c/bc8cdd7911debacdc1118faffcfb04d5157ddc67.png)
- inserisco il valore della distanza (es. 0.005) e premo invio  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/6/9/69a8062136ea61628b0d534e89dae886dc4a1265.png)

Così facendo però mi effettua la sezione anche delle porzioni “interne” e non solamente quelle esterne. Cosa sbaglio?  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/3/9/39467adb4cb38bda28a5a44943a11c24cb452566.png)

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [22 Settembre 2023, 10:22am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/5 "2023-09-22T10:22:49Z")

</div>

> [@leopoldomonzani](#):
>
> va rifatto il solido

ahimè non è stato realizzato da me, non posso modificarlo/rifarlo.  
Tuttavia la stessa problematica mi si è verificata anche con altri stl.

Invece per quanto riguarda le curve autointersecanti c’è qualche modo per risolverle in modo automatico?

---

<div class="post-metadata">

**Author:** ![alex.coppola7](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/alex.coppola7/32/18314_2.png) [@alex.coppola7](https://it.discourse.mcneel.com/u/alex.coppola7)\
**Post date:** [22 Settembre 2023, 10:27am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/6 "2023-09-22T10:27:16Z")

</div>

Perché la direzione del contour l’hai data verso il basso, mentre i contorni che ti servono a 0.005 sono quelli dal bordo superiore e poi verso l’alto (giusto?)

Se ti servono poi anche solo quelle del bordo esterno verso il basso: prendi la prima curva del contour e la copi verso il basso ogni 0.005 con un array lineare

PS: si la mesh così com’è è sballata quindi non sono sicurissimo che la soluzione ti dia quello che vuoi

PPS: quando hai curve intersecanti puoi usare anche boolean curve (facendo attenzione a mettere remove:yes o ti sposti su un altro layer) e poi cliccando sull’esterno. Ovviamente per ogni curva (o solo la prima e poi array lineare). Quindi questa forse converrebbe farla su gh per automatizzare

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [22 Settembre 2023, 10:31am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/7 "2023-09-22T10:31:25Z")

</div>

Purtroppo si, mi serve sezionarlo completamente lungo z e prendere solamente tutti i contorni esterni.

> [@alex.coppola7](#):
>
> Se ti servono poi anche solo quelle del bordo esterno verso il basso: prendi la prima curva del contour e la copi verso il basso ogni 0.005 con un array lineare

Si chiaro, ma speravo esistesse un qualche modo “automatico” che consentisse di realizzarlo piuttosto che doverlo fare a mano. Anche perchè mi si verifica anche su altre tipologie di stl, per cui cercavo una soluzione il più generica possibile…

---

<div class="post-metadata">

**Author:** ![leopoldomonzani](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/leopoldomonzani/32/17957_2.png) [@leopoldomonzani](https://it.discourse.mcneel.com/u/leopoldomonzani)\
**Post date:** [22 Settembre 2023, 10:37am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/8 "2023-09-22T10:37:18Z")

</div>

Forse con uno script.

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [26 Settembre 2023, 1:30pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/9 "2023-09-26T13:30:39Z")

</div>

@leopoldomonzani @alex.coppola7  
in un caso come questo, in cui trovo 3 autointersezioni, come posso fare per generare un riempimento senza utilizzare le curve limite e modificare manualmente le curve? Esiste un modo?

Vorrei trovare un modo per aggirare questo limite delle autointersezioni…

[TEST autointersezioni.dxf](https://it.discourse.mcneel.com/uploads/short-url/3Ym22t7qtDm7TEJKZwNMaEvgfS4.dxf) (614,9 KB)

---

<div class="post-metadata">

**Author:** ![leopoldomonzani](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/leopoldomonzani/32/17957_2.png) [@leopoldomonzani](https://it.discourse.mcneel.com/u/leopoldomonzani)\
**Post date:** [26 Settembre 2023, 1:57pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/10 "2023-09-26T13:57:43Z")

</div>

Visto che le intersezioni sono solo tre si possono selezionare i punti che determinano le intersezioni e spostarli senza alterare la forma della curva.

 ![img1](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/1/e/1e0f91882f7db86f1bf4cbf1543a341efbb4a53a.jpeg)

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [26 Settembre 2023, 3:36pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/11 "2023-09-26T15:36:25Z")

</div>

Grazie Leopoldo, ma dato che questa cosa si ripete su diversi layer (per un totale di 44 o 200 autointersezioni al valiare delle tolleranze utilizzate), ho bisogno di un comando/procedura per eliminarle tutte in maniera “automatica” e non manualmente.

Se vuoi, ti lascio in allegato il file stl in cui i “\_contour” (a distanza Z 0.01) mi danno le 44 autointersezioni che vorrei evitare:  
[Test autointersezioni.3dm](https://it.discourse.mcneel.com/uploads/short-url/kW7c1yFxSRXeJWKaO3XVD9s3Zgz.3dm) (493,2 KB)

---

<div class="post-metadata">

**Author:** ![leopoldomonzani](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/leopoldomonzani/32/17957_2.png) [@leopoldomonzani](https://it.discourse.mcneel.com/u/leopoldomonzani)\
**Post date:** [26 Settembre 2023, 5:50pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/12 "2023-09-26T17:50:20Z")

</div>

La mesh non ha problemi io comunque ottengo 84 intersezioni con Rhino 7.  
Prova con Rhino 8: nessuna intersezione.

---

<div class="post-metadata">

**Author:** ![alex.coppola7](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/alex.coppola7/32/18314_2.png) [@alex.coppola7](https://it.discourse.mcneel.com/u/alex.coppola7)\
**Post date:** [27 Settembre 2023, 7:47am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/13 "2023-09-27T07:47:33Z")

</div>

Ciao allora per questo caso sembra funzionare una procedura abbastanza semplice ma ripetitiva, quindi ne ho scritto una macro:

-\_SelSelfIntersectingCrv  
\_Explode  
\_SelNone  
\_SelDupAll  
\_Delete  
\_SelAll  
\_Join  
\_SelNone  
\_SelSelfIntersectingCrv

Se ti copi questi comandi così come sono scritti nel Macro Editor e lo lanci, dovrebbe andare (se ho capito bene lo scopo… che poi quale sarebbe di preciso?). L’ultimo comando l’ho inserito solo come verifica.  
Se ho tempo verifico sul file 3dm dopo il contour.  
E se funziona puoi anche crearti un button dedicato per questo: tasto destro sulla barra, new button e copi e incolli la macro nello spazio command, poi gli dai un nome ecc

---

<div class="post-metadata">

**Author:** ![alex.coppola7](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/alex.coppola7/32/18314_2.png) [@alex.coppola7](https://it.discourse.mcneel.com/u/alex.coppola7)\
**Post date:** [27 Settembre 2023, 7:51am UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/14 "2023-09-27T07:51:44Z")

</div>

Per quanto riguarda quest’altra mesh… ho fatto qualche prova anche su GH e su MeshMixer ma sembra che il problema sia doppio: sembra quasi che qualcuno abbia tappato dei fori presenti sulla mesh originale. Comunque se ho tempo ci riguardo, tuttavia se ci dicessi a cosa servono queste passate così precise, magari ci sono soluzione completamente diverse dal contour.

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [27 Settembre 2023, 12:03pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/15 "2023-09-27T12:03:33Z")

</div>

Ciao Leopoldo,

se installo Rhino 8 WIP, mi rimuove/aggiorna in automatico Rhino 7 o posso utilizzare entrambi?

---

<div class="post-metadata">

**Author:** ![leopoldomonzani](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/leopoldomonzani/32/17957_2.png) [@leopoldomonzani](https://it.discourse.mcneel.com/u/leopoldomonzani)\
**Post date:** [27 Settembre 2023, 12:06pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/16 "2023-09-27T12:06:21Z")

</div>

Io li utilizzo entrambi.

---

<div class="post-metadata">

**Author:** ![riccardo\_vise](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/riccardo_vise/32/16251_2.png) [@riccardo\_vise](https://it.discourse.mcneel.com/u/riccardo_vise)\
**Post date:** [27 Settembre 2023, 1:00pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/17 "2023-09-27T13:00:12Z")

</div>

> [@marco11a2](#):
>
> Rhino 8 WIP

…ora è già disponibile la versione Beta di Rhino 8

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [27 Settembre 2023, 1:46pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/18 "2023-09-27T13:46:12Z")

</div>

Si, grazie, ho installato quella e confermo, fortunatamente si può usare in contemporanea a Rhino 7

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [27 Settembre 2023, 1:48pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/19 "2023-09-27T13:48:27Z")

</div>

Grazie Leopoldo!  
Rhino 8 sembra aver risolto parzialmente il problema delle autointersezioni dato che le unità/tolleranze sono diminuite di ulteriori 1/2 cifre decimali.

Tuttavia in casi complessi in cui su rhino 7 avevo 2000 autointersezioni, su rhino 8 continuo ad avere 200 autointersezioni.  
Monitorerò la cosa nei prossimi giorni su altri modelli.

---

<div class="post-metadata">

**Author:** ![marco11a2](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marco11a2/32/20363_2.png) [@marco11a2](https://it.discourse.mcneel.com/u/marco11a2)\
**Post date:** [27 Settembre 2023, 1:50pm UTC](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411/20 "2023-09-27T13:50:02Z")

</div>

Grazie per la risposta Alex!

La macro sembra funzionare correttamente, tuttavia in alcuni punti (in disegni complessi) mi ha generato una serie di artefatti (oltre a richiedere un discreto tempo computazionale).

Per ora con rhino 8 le cose sembrano andare meglio, testerò nei prossimi giorni la tua macro anche su altri modelli!

[Pagina seguente](https://it.discourse.mcneel.com/t/autointersezioni-e-contours/5411.md?page=2)
