Détermination des surfaces en contact avec aucune autre

Je cherche à savoir comment déterminer les surfaces qui sont en contact avec rien c’et à dire avec l’air ambiant.


Merci d’avance

Bonjour,

Regardez de côté du nœud Geometry.DoesIntersect avec le nœud If.

JF

Oui effectivement mais puis je faire avec if, je n’ai pas réussi, je suis débutant dans le domaine

Bonjour,

Dans l’image si dessous je veux obtenir les surfaces en contact avec rien pour mes murs:

Le script python sert à déterminer si les intersections entre les géométries sont des bien des surfaces (le noeud Does.Intersect détecte sinon une intersection entre une face verticale et le sol sous forme d’une ligne):

# Charger les bibliothèques DesignScript et Standard Python
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Les entrées effectuées dans ce noeud sont stockées sous forme de liste dans les variables IN.
intersects = IN[0]
out=[]

for intersect in intersects:
	for i in intersect:
		test = False
		try:
			area = i.Area
			test = True
			break
		except:
			continue
	out.append(test)

# Placer votre code au-dessous de cette ligne

# Affectez la sortie à la variable OUT.
OUT = out

La sortie IN est donc la surface en contact et la sortie OUT correspond aux surfaces en contact avec rien :slight_smile:

AP

1 J'aime

Voici un exemple:

J’ai appliqué cette démarche à mon problème qui est basé sur six briques identiques que je vais devoir déplacer afin d’obtenir un nouveau calcul.
Il s’avère que les calculs ne sont pas cohérents.

Voici un autre exemple avec plusieurs briques, ici je n’ai pas considéré de briques en surplomb, mais c’est sans doute possible d’intégrer ce cas de figure.

1 J'aime


Pour cette configuration, j’ai déplacer le in et le out au niveau de « List.FilterByBoolMask » pour obtenir un résultat intéressant. Est-ce Normal?

Su mon dernier exemple:
Le Noeud Does. Intersect est en combinaison « Le plus long »
Le dernier noeud du script est une soustraction.

Après modification, cela a l’aire d’être bon. je vais encore essayer les deux autres configurations demain.
Merci pour les conseils.

J’ai enfin réussi à mettre le script Python et j’obtiens une réponse blizzard où l’on voit apparaître une face de Coté d’une brique. A votre avis pourquoi?
Merci d’avance

import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *


intersects = IN[0]
out=[]

for intersect in intersects:
	for i in intersect:
		test = False
		try:
			area = i.Area
			test = True
			break
		except:
			continue
out.append(test)

Hello,

Il faut que tu mettes le noeud Geometry.Intersect en combinaison vectorielle. Clique-droit dessus puis Combinaison puis vectorielle :slight_smile:

AP

Merci pour la réponse qui fonctionne très bien.
Mais puis-je avoir la surface totale chiffrée de la géométrie en contact avec le vide ?
Avec un autre script ou avec des noeuds et lesquels?
Merci d’avance

On fait comme ça :

Bonne journée!
AP