Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
18/02/2015 20:28
Post(s): 612
Si l'un de vous, pythoneux de tous poils, sait comment muter légèrement la bête pour que les deux magnifiques options 'add driver' et 'Copy data path' deviennent actives et fonctionnelles lors d'un RMB sur les icône en forme d'oeil de l'outliner(si possible des objets et aussi des collections)

je le PAIE

Contribution le : 08/09 17:03:19
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
Clan Afficionado
Inscrit:
12/01/2019 19:44
Post(s): 93
Bonjour,

Pourquoi ne pas investir dans un keypad programmable. Souris dans la main droite, keypad à gauche, souplesse et productivité assurée. Personnellement j'utilise un Razer Tartarus où j'ai programmé tous les raccourcis usuels.

Il y a aussi les claviers programmables, moins pratiques car oblige à quitter la souris.

Contribution le : 14/09 09:35:38
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 3035
Hello,
C'est un peu subtile et pas franchement intuitif en fait. Explications.
Le problème c'est que l'icône d'oeil est liée à une fonction qui set la visibilité de l'objet lorsqu'elle est cliquée, ce n'est pas une property:
obj.hide_set(True/False)

Donc à priori pas moyen de la lier tel quel à un driver, quoique en cherchant peut être. Mais tu peux utiliser la property "hide_viewport" à la place. Dans l'outliner clique l'icône de filtre en haut à droite, et active l'écran à côté de l'oeil. C'est l'équivalent de cacher un objet dans un calque dans Blender 2.79, c'est mieux que l'icône d'oeil car ça désactive aussi toutes les évaluations. Par exemple si tu caches avec l'oeil un objet de 50 millions de polys, ta scène va continuer de ramer même s'il est caché. Par contre si tu le cache avec l'icone d'écran, là ça na ramera plus.

Contribution le : 14/09 10:36:26
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
18/02/2015 20:28
Post(s): 612
J'ai fini par obtenir un script qui lie la visibilité e l'enfant à celle du parent (et pas l'inverse) et qui garde les lumières allumées quand des objets sont isolés:

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
bl_info = {
"name" : "Z-Anatomy",
"author" : "Marcin Zieliński, Justin Müller",
"description": "Shows all objects that contains 'always_front' front faced and 'always_show' are never hidden in viewport. Makes hiding objects inheritable.",
"blender" : (2, 80, 0),
"version" : (0, 0, 1),
"location" : "",
"warning" : "",
"category" : "Interface"
}

import bpy

def family(object):
''' Object + Grand children without ancestors '''
family = [object.children[:]+(object,)]

def rec(object, family):
family[0] += object.children
for ob in object.children:
rec(ob, family)

for ob in object.children:
rec(ob, family)

return family.pop()

class OBJECT_OT_hide_wrapper(bpy.types.Operator):
"""Hide"""
bl_idname = "object.hide_wrapper"
bl_label = "Hide"
bl_options = {'REGISTER'}

unselected: bpy.props.BoolProperty(default = False)

@classmethod
def poll(cls, context):
return context.mode == 'OBJECT' and context.object is not None

def execute(self, context):
def findRoot(ob):
while ob and ob.parent:
if ob in objects_to:
objects_to.remove(ob)
# if '%' in ob.parent.name:
if not ob.parent.parent and not self.unselected:
return ob
ob = ob.parent
return ob

roots = []
objects_to = set(context.selected_objects)
while objects_to:
ob = objects_to.pop()
roots.append(findRoot(ob))

family_obs=[ob for r in roots for ob in family(r)]
if not self.unselected:
for ob in family_obs:
ob.hide_set(True)
else:
all_objects = set(context.view_layer.objects)
lights = {l for l in context.view_layer.objects if l.type=='LIGHT'}

for ob in all_objects-set(family_obs)-lights:
ob.hide_set(True)

return {'FINISHED'}

def get_user_keymap_item(keymap_name, keymap_item_idname, multiple_entries=False):
wm = bpy.context.window_manager
kc = wm.keyconfigs.user

km = kc.keymaps.get(keymap_name)
if multiple_entries:
return km, [i[1] for i in km.keymap_items.items() if i[0] == keymap_item_idname]
else:
return km, km.keymap_items.get(keymap_item_idname)

def register_keymaps():
kc = bpy.context.window_manager.keyconfigs
areas = 'Window', 'Text', 'Object Mode', '3D View'

if not all(i in kc.active.keymaps for i in areas):
bpy.app.timers.register(register_keymaps, first_interval=0.1)
else:
# can now proceed with checking default kmis
km, kmis = get_user_keymap_item('Object Mode', 'object.hide_view_set', multiple_entries=True)
wm = bpy.context.window_manager
addon_km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
for default_kmi in kmis:
addon_kmi = addon_km.keymap_items.new(OBJECT_OT_hide_wrapper.bl_idname, default_kmi.type, default_kmi.value)
addon_kmi.map_type = default_kmi.map_type
if hasattr(addon_kmi, 'repeat'):
addon_kmi.repeat = default_kmi.repeat
addon_kmi.any = default_kmi.any
addon_kmi.shift = default_kmi.shift
addon_kmi.ctrl = default_kmi.ctrl
addon_kmi.alt = default_kmi.alt
addon_kmi.oskey = default_kmi.oskey
addon_kmi.key_modifier = default_kmi.key_modifier

addon_kmi.properties.unselected = default_kmi.properties.unselected

addon_keymaps.append((addon_km, addon_kmi))


addon_keymaps = []
def add_shortkeys():
register_keymaps()

def remove_shortkeys():
wm = bpy.context.window_manager
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)

addon_keymaps.clear()

# Follow Viewport

from bpy.props import (StringProperty,
BoolProperty,
IntProperty,
FloatProperty,
FloatVectorProperty,
EnumProperty,
PointerProperty,
)

from bpy.types import (Panel,
Operator,
AddonPreferences,
PropertyGroup,
)

from bpy.app.handlers import persistent
@persistent
def start_timer(scene=None):
def refresh():
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
area3D = area
viewport_orientation = area3D.spaces[0].region_3d.view_rotation

for obj in bpy.data.objects:
if '-label' in obj.name:
if obj.rotation_quaternion != viewport_orientation:
if obj.rotation_mode != 'QUATERNION':
obj.rotation_mode = 'QUATERNION'
obj.rotation_quaternion = viewport_orientation

if 'always_show' in obj.name and obj.hide_get():

obj.hide_set(False)
obj.hide_viewport = False
return 0.0165

bpy.app.timers.register(refresh, first_interval=0.01)

classes = (
OBJECT_OT_hide_wrapper,
)

def register():
start_timer()
bpy.app.handlers.load_post.append(start_timer)
for c in classes:
bpy.utils.register_class(c)

add_shortkeys()



def unregister():
for c in classes:
bpy.utils.unregister_class(c)
remove_shortkeys()

bpy.app.handlers.load_post.remove(start_timer)



if __name__ == "__main__":
register()

Contribution le : 15/09 10:46:31
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 3035
Hmm pas sûr de comprendre ce que tu veux faire, mais bon tant mieux si ce script t'es utile alors.

Contribution le : 15/09 18:48:03
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
18/02/2015 20:28
Post(s): 612
L'objectif initial étant de parvenir à créer des labels semblables à ceux de 'Call out tiles' mais qui disparaissent en même temps que l'objet légendé, comme ceux de MeasureIt, j'avais besoin de lier la visibilité de deux objets via les icônes d'oeil.

Ça a été résolu en liant la visibilité de l'enfant (le label) au parent (un os, ou autre),

dans la foulée, le script contraint les labels vers la vue 3D, comme MeasureIt

Et il résout aussi le problème des lumières qui s'éteignaient quand on isolait les structures avec Shift+H

Il ne me reste plus que ce petit script à obtenir:
https://blender.stackexchange.com/questions/238139/match-the-text-editor-to-the-active-objects-name
pour pouvoir entrer les définitions de chaque label, et chaque objet, et je pourrai enfin avoir un véritable atlas avec des légendes et ouvrir les définitions dans l'éditeur de texte.

Contribution le : 15/09 21:42:45
Créer un fichier PDF de la contribution Imprimer


Re: Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil?
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 3035
Je n'ai aucune idée de ce dont tu parles Melodicpinpon (Call out tiles, MeasureIt?)
Je ne sais pas si tu fais référence à un autre topic... en tout cas je comprends qu'il est question d'éclairage, de lampe qui doivent s'allumer ou s'éteindre...
Mais peut importe, problème auto résolu du coup, roulez jeunesse

Contribution le : 16/09 14:56:23
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses Blender et Mac, faisons le point 1 41 Aujourd'hui 11:01:38
ludo66 
Questions & Réponses Blender et Mac, faisons le point 0 31 Aujourd'hui 09:11:50
ludo66 
Questions & Réponses image as plane: éviter les ombres 3 67 Aujourd'hui 04:34:13
moonboots 
Questions & Réponses Aplanir plusieurs surfaces à la fois 3 43 Aujourd'hui 02:45:51
Vinke013 
Moteur de jeu GameBlender et alternatives [WIP] Godot Engine - Projet Arsenal 7 168 Hier 15:53:25
WinZs 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[10] 90 6413 Hier 14:55:18
blend74 
Questions & Réponses Texture importée déformée... HELP 0 37 Hier 13:47:10
Jreno 
Questions & Réponses message d'erreur help 0 34 Hier 12:45:05
blend74 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 13 512 Hier 11:13:07
blend74 
[WIP] et travaux terminés Anatomie open source dans Blender    [1][2] 10 1414 Hier 00:26:54
meltingman 
Questions & Réponses Smoothing groups ou équivalent ? (3dsMax to Blender)    [1][2] 12 239 22/09 20:12:19
lucky 
Questions & Réponses [non résolu] Os et FBX 2 69 22/09 14:50:56
zeromeetsinfinity 
Questions & Réponses [non résolu] Problème Aspect du verre (Glass BSDF) 1 92 20/09 19:50:51
Miaunik 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 397 39478 17/09 17:56:10
Bibi09 
Questions & Réponses [non résolu] IES Lights 4 194 17/09 16:24:14
jcnouveau 
Questions & Réponses Couleur de peau 0 116 17/09 14:31:20
Carne 
Hors Sujet !! Sinoceratops project - Ateliers suivies de A à l'Animation    [1][2][3][4] 34 4123 16/09 20:53:38
meltingman 
Questions & Réponses Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil? 6 438 16/09 14:56:23
lucky 
Questions & Réponses Ouvrir une définition (fichier .txt) de l'objet actif avec un raccourci depuis la vue 3D 0 102 15/09 15:30:03
Melodicpinpon 
[WIP] et travaux terminés [terminé] Utilisation de Blender pour esquisser des objets réels    [1][2] 12 355 14/09 19:18:19
MilWolf 

Qui est en ligne
124 utilisateur(s) en ligne (dont 56 sur Forums)

Membre(s): 8
Invité(s): 116


RosalinaMe, FerminCass, JoannaPxc, MyrtisShus, AnnelieseC, XJKJohnett, TrudiSholl, ChristenG9, plus...
Nouveaux membres
WillisQuen 24/9/2021
XiomaraStu 24/9/2021
FatimaEste 24/9/2021
MariThiele 24/9/2021
CaitlinEdm 24/9/2021
RandolphGa 24/9/2021
TreyGooseb 24/9/2021
AngelineGr 24/9/2021
ShonaLoren 24/9/2021
EugeneKirk 24/9/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Oct 8
Anniversaire du Grand Mechant Fadge
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
plus 248 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445