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): 92
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): 3029
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 : Hier 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): 3029
Hmm pas sûr de comprendre ce que tu veux faire, mais bon tant mieux si ce script t'es utile alors.

Contribution le : Hier 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 : Hier 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): 3029
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 : Aujourd'hui 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 Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil? 6 280 Aujourd'hui 14:56:23
lucky 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 395 38429 Aujourd'hui 13:19:44
iet 
Questions & Réponses Ouvrir une définition (fichier .txt) de l'objet actif avec un raccourci depuis la vue 3D 0 36 Hier 15:30:03
Melodicpinpon 
[WIP] et travaux terminés [terminé] Utilisation de Blender pour esquisser des objets réels    [1][2] 12 192 14/09 19:18:19
MilWolf 
Graphisme alternatif les addons pour blender : bumarin etc 5 267 14/09 14:37:32
blend74 
The Blender Clan 'tchat ANNONCE IMPORTANTE : LE BLENDER CLAN REOUVRE !! Etat des lieux sur le présent et le futur :)    [1][2] 19 1671 14/09 12:20:39
Riggelm 
The Blender Clan 'tchat Les tutos de Stev ( CG Groovy ) 6 1081 13/09 11:17:43
stev 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[8] 79 5881 12/09 19:01:54
blend74 
Questions & Réponses Les objets qui voyagent seuls 2 120 12/09 14:20:48
D3DModelisation 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[21] 202 18413 11/09 20:09:34
moonboots 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[55] 544 167366 11/09 10:08:20
sbkodama 
Questions & Réponses control sur le grow mask et smooth mask en sculpt 2 134 10/09 23:50:51
maxime 
Questions & Réponses Difficultés de reprise d'un vieux projet 4 249 10/09 12:39:47
GLM 
[WIP] et travaux terminés [WIP] La gabarre '' Le Gros Ventre''    [1][2][3]...[10] 90 15715 08/09 21:11:55
yawdpwal 
Questions & Réponses Comment faire la symétrie d’une multitude d’éléments. 4 286 06/09 14:55:39
jcnouveau 
Questions & Réponses Version portable et configurée sur Mac et Linux 0 143 06/09 13:43:15
Melodicpinpon 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS Unity - Version alpha disponible + discord    [1][2][3]...[67] 668 146882 06/09 12:44:54
Hook 
The Blender Clan 'tchat Avenir du Blender Clan - sondage    [1][2] 17 1452 06/09 08:50:54
Redstar 
Questions & Réponses [résolu] Texture circulaire de briques 7 691 04/09 17:24:17
skatekitchen 
Questions & Réponses Move sans la touche 'G' 2 244 03/09 21:41:13
Melodicpinpon 

Qui est en ligne
156 utilisateur(s) en ligne (dont 62 sur Forums)

Membre(s): 16
Invité(s): 140


JamelArand, Osnow, TammyBurkh, ElisaWere, EdwardCaro, EddieGreen, TiffaniX08, ZackRinald, PercyThorn, MarylouBar, ThurmanDes, NicholasLo, DarlaEast, WinnieTill, FWBEve3968, SheldonHen, plus...
Nouveaux membres
EmeliaFitz 16/9/2021
BarbraWear 16/9/2021
MelissaA47 16/9/2021
MNMEugene 16/9/2021
DeloresKur 16/9/2021
OttoBayne 16/9/2021
JannaVandi 16/9/2021
FredricNei 16/9/2021
JanetteCor 16/9/2021
KaseyHaddo 16/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