Petite question rubiesque !

Petite question rubiesque !

Postby Matt666 » Tue Jan 15, 2008 12:19 pm

Bonjour !

Dans mon premier message, Didier Bur m'avait dit ceci :
pas moyen de faire appel à l'interpreteur de commande, du genre (command "_line" p1 p2...). Les commandes de création d'objet se font par les méthodes "add": Sketchup.active_model.entities.add_line p1,p2....
C'est pénible car si tu veux utiliser une commande d'édition ou de modification, il faut l'écrire ou la re-écrire toi-même.


Ok. Bon.. ya du boulot !!!
Voilà. J'aimerais pouvoir créer un icône (jusque là pas dur) qui permette de faire la même chose que l'outil "masquer le reste du modèle" dans le menu affichage/Modification du composant. Et là, plus dur !

Dans Autocad (désolé pour ceux qui n'aiment pas, mais je ne peux que comparer avec ce logiciel...), tous les menus sont paramétrables. C'est bien. Mais c'est surtout pratique pour connaître les noms des commandes à exécuter pour pouvoir effectuer un travail. En face de la désignation de l'outil, on a le nom de la commande...
Exemple : "masquer le reste du modèle" -> { mask }

Alors voilà : Comme le dit Didier, faut-il recréer l'outil ? Ou ya t'il un moyen de récupérer le nom de la commande Sketchup ?

Merci à vous !
A bientot.
Matt.

PS : J'ai créé mon premier code RUBY ! une commande qui permet de rendre courant le calque de l'objet sélectionné. Deux versions : Une qui dit met un message d'erreur lorsqu'on sélectionne plus d'un objet, et l'uatre sans...
je vous montre, si ça peut vous servir :
Code: Select all
# Rend le calque de l'objet courant
def laycou2
   model = Sketchup.active_model
   ss = model.selection
   if ss.empty?
      UI.messagebox("Aucune selection.")
      else
         if ss.single_object?
            model.active_layer = ss[0].layer
            ss.clear
            else
               UI.messagebox("Veuillez ne sélectionner qu'un seul objet.")
         end
   end
end

#Rend le calque de l'objet courant
def laycou
   model = Sketchup.active_model
   ss = model.selection
   if ss.empty?
      UI.messagebox("Aucune selection.")
      else
         model.active_layer = ss[0].layer
         ss.clear
   end
end


Voilà !
0
Frenglish at its best !
My scripts

Matt666 
 

Re: Petite question rubiesque !

Postby Didier Bur » Wed Jan 16, 2008 10:47 am

Bonjour,
Bon essai pour ta fonction, mais elle est déjà dans mon gestionnaire de calque (premier icône de la barre d'outils).

ya t'il un moyen de récupérer le nom de la commande Sketchup

Oui, mais pas pour toutes. Va voir la méthode "send_action" du module "Sketchup". c'est assez limité, mais peut-être qu'avec "editHide", "editUnhide" tu pourras faire qqchose. En plus, quand tu fais appel à send_action dans un script, il perd la main je crois. Il faudra sûrement passer par un scan de la base de données du modèle (Sketchup.active_model.entities.each blablabla...) pour savoir quoi masquer et quoi montrer.
Tu peux regarder le code des scripts hideall;rb et unhideall.rb, et dans ceux dont le nom commence par "hide" sur mon site, c'est dans la section "Matériaux-Rendu".
Bonne journée,
0
Didier Bur
Ecole Nationale Supérieure d'Architecture de Nancy (F)
User avatar
Didier Bur 
 

Re: Petite question rubiesque !

Postby Matt666 » Wed Jan 16, 2008 10:53 am

Bonjour Didier.
Raaah la la ! Il est fort !

Génial, c'est ce que je voulais... C'est en quelque sorte une liste des variables internes de sketchup !! Merci !
Il ne me reste plus qu'à réusssir àforcer une des variables ! Le plus gros du boulot est fait !

Merci encore !
A bientot.
Matt.
0
Frenglish at its best !
My scripts

Matt666 
 

SketchUcation One-Liner Adverts

by Ad Machine » 5 minutes ago



Ad Machine 
Robot
 



 

Return to Français

Who is online

Users browsing this forum: No registered users and 3 guests

Visit our sponsors: