Blender (jusqu'à 2.49)
Python
scripts/macro python 
Sélectionne les segments 
(s'il en existe)
qui constituent le contour du maillage. 
    Début   Index
précédentScript Python
En chantier Suivant

Sélectionner les contours d'un maillage rapidement peut être utile pour travailler les valeurs crease/pliage d'un modificateur Subsurf (voir Figure 1). 


Figure 1

Télécharger un fichier d'exemple

Sur un maillage propre offrant une surface continue, on peut obtenir le même résultat avec le raccourci (Ctrl+Maj+Alt+M) ou l'entrée Non-Manifold dans le menu Select en mode Edit. Cependant s'il existe des segments isolés non raccordés à une face, en mode d'affichage Edge/segment, seuls ces segments seront repérés (voir Figure 3). 


Figure 2

En mode vertex/sommet, si des segments sont connectés à plus de deux faces les résultats sont inutilisables(voir Figure 3).


Figure 3

Alors que le script se positionne automatiquement sur le mode d'affichage adéquat et donne le résultat escompter (voir Figure 4).


Figure 4

Télécharger un fichier d'exemple
 


#!BPY
# """
# Name: 'Select Surface Limits/Borders'
# Blender: 247
# Group: 'Mesh'
# Tooltip: '.'
# """
# -*- coding: Latin-1 -*-
__author__ = 'Jm Soler'
__version__ = '0.0.1 2008/10/06'
__url__ = ["""jms's site, 
http://jmsoler.free.fr/didacticiel/blender/tutor/bpy_contour_selection.htm""",
"""Support forum, 
 http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender""" 
                              ]
__email__ = ["jms, jmsoler:free.fr"]
__bpydoc__ = """\
""" 

from Blender import Mesh, Object, Window
obj = Object.GetSelected()[0]
me=obj.getData(mesh=1)

edge_faces = dict([(ed.key, []) for ed in me.edges])
for f in me.faces:
    for key in f.edge_keys:
        edge_faces[key].append(f)

Contour=[]
for key, face_users in edge_faces.iteritems():
    if len(face_users)==1:
        Contour.append(key)

in_editmode = Window.EditMode()
if in_editmode: Window.EditMode(0)

Mesh.Mode(Mesh.SelectModes.EDGE)
liste_segmentw=[ed.key for ed in me.edges]
for key in Contour: 
 me.edges[liste_segmentw.index(key)].sel=1

if in_editmode: Window.EditMode(1) 
 


 
 
 
précédentScript Python
 En Chantier Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube