Une belle barre pour un plugin sans barre d'outils
-
la ligne 40 pose problème et ne sert à priori a rien ( recharger la barre d'outil .
il suffit donc de la supprimer.sinon tu remplace new_toolbar par toolbar
J'ai pas passé trop de temps a lire ton code mais ca devrait marché (sauf autre pb).
Petite explication du ruby pour les barre d'outil c'est assez simple ( voir https://developers.google.com/sketchup/docs/ourdoc/toolbar? pour plus d'info):
toolbar = UI::Toolbar.new "Test"
creer un barre d outil qui s'appelle justement toolbar
cmd = UI::Command.new("Test") {
UI.messagebox "Hello World"
}créer une comande test qui affiche une boite de dialogue "hello world"
pour faire ta propre barre d'outil , il est nécéssaire de cherche dans les script que tu veux ajouter le nom des commandes définit par les ligne UI::Command.new
cmd.small_icon = "ToolPencilSmall.png"
cmd.large_icon = "ToolPencilLarge.png"
cmd.tooltip = "Test Toolbars"
cmd.status_bar_text = "Testing the toolbars class"
cmd.menu_text = "Test"défini les icons, l'infobulle, le text en bas, le nom de la fonction
toolbar = toolbar.add_item cmd
ajoute la commande dans la barre d outil
toolbar.show
affiche la barre d outil
-
Annulation de la ligne 40
Bon plus de message d'erreur
Apparition d'une boîte d'icône, mais pas d'image de l'icône, et même vide la boîte d'icône est "non cliquable" pour appeler le plug
Le PNG doit avoir une configuration spéciale ?
La syntaxe de l'appel de l'image est-elle bonne?
le dossier "Offsets" contenant l'image "offsets16x16.png" est dans le dossier Plugins
mes noms de dossiers / fichiers sont bons (pas d'erreur de frappe)
...### require 'Multiple Offsets.rb' ### toolbar=UI;;Toolbar.new("Offsets") #toolbar.restore if new_toolbar.get_last_state==TB_VISIBLE ### cmd1=UI;;Command.new('Multiple Offsets'){SDM_Multiple_Offsets.do_offsets} png1="Offsets/offsets16x16.png" if File.exist?(png1) cmd1.small_icon=png1 cmd1.large_icon=png1 toolbar.add_item(cmd1) end ###
-
pour l'appel de l'image; je mets une png de 32x32 pour la petite et une de 64x64pixel pour la grande.
lorsque tu met
@unknownuser said:png1="le dossier image/l'image.png"
il faut que le dossier soit dans ton dossier plugin de SU (attention à la casse et à l'orthographe pas d'espace pas d'accent).
dis moi quel est ton fichier .rb ( envoie le moi) et je te dirait ou est la commande
-
C'était le fichier d'au-dessus
mais voici le dernier, c'est le plug de Sdmitch Multiple Offsets
(mon ajout de tentative étant intégré ligne 36 à 49)
et j'ai mis l'image directement dans le dossier Plugins pour éviter un éventuel problème de chemin de fichier
-
@unknownuser said:
nota : le nom de la commande et la commande se trouvent dans les lignes du fichier sous la forme
UI.menu("Plugins").add_item("le nom de la commande") { la commande }François
Bonjour FRANCOIS
Bravo pour ton travail ,
Rebuté par la programmation ruby , j'avais abandonné .J'ai pas bien compris dans quel fichier tu mets
UI.menu("Plugins").add_item("le nom de la commande") { la commande }Serai-ce abuser que tu demander de nous envoyer tes fichier .rb pour que l'on puisse les disséquer .
christian
-
Salut ! Pour moi c'est la ligne
toolbar.show
qui est mal placée. Tu montres la barre d'outil avant d'avoir ajouté les outils. Déplace cette ligne après ce bout de code :<span class="syntaxdefault">if File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">exist</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">png1</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">puts </span><span class="syntaxstring">"ok"<br /></span><span class="syntaxdefault">cmd1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">small_icon</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">png1<br />cmd1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">large_icon</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">png1<br />toolbar </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item cmd1<br />end</span>
-
Bonjour,
Matt je suis pas sur de ce que tu dis, je crois qu'on peut ajouter des boutons à la volé (après affichage). Mais je reste humble face à ta production de plugin.
-
J'ai regardé ton plugin.
Le problème viens du fait que si ton plugin ne trouve pas l'image, il ne charge pas la commande
ci-joint l'exemple qui marche même si l'image n'est pas la-> pour matt, après test, le chargement d'une tool bar vide créer un bouton vide.
-
Non ça c'est ce qui traîne dans le plugin dont on prend un bout! ("le nom de la commande") { la commande }
Tu peux te faire les dents sur le mien! (précédent post :
(juste mettre une image que l'on veut et faire correspondre le nom dans le dossier plugin)Il doit rester une toute petite broutille de rien qui empêche de voir l'image de l'icône!
Ah les joies du bricolage et la chasse aux bugs! -
Ah c'est super louche comme problème
Maintenant tout marche, sauf que je ne vois toujours pas l'icône, mais la boîte est devenue cliquable!
(un bouton vide)Le truc le plus curieux c'est que j'ai mis une autre icône marchant dans un autre plugin,
me disant que c'était peut-être mon PNG qui était foireux, mais niet même résultat pas d'icône à l'affichage!
Je sens que ce bug va être plus que dure à trouver!
C'est pas le nom de fichier non plus, car j'ai changé le nom et pris une autre icône qui marche!
Toujours le bouton "vide" -
J'ai l'impression que pour une raison mystérieuse
au passage dans le test If la condition n'est pas remplieJ'ai volontairement tout groupé dans le Test If
et là rien ne se passe! Mais pas de message d'erreur### require 'Multiple Offsets.rb' ### toolbar=UI;;Toolbar.new("Offsets") #toolbar.restore if new_toolbar.get_last_state==TB_VISIBLE ### cmd1=UI;;Command.new('Multiple Offsets'){SDM_Multiple_Offsets.do_offsets} png1="offsets16x16.png" if File.exist?(png1) cmd1.small_icon=png1 cmd1.large_icon=png1 toolbar = toolbar.add_item cmd1 toolbar.show end ###
-
Peux-tu joindre le png ET le script, stoplé ?
A titre d'exemple, je vous montre comment je fais pour avoir une barre d'outils perso.
Matt_Perso_Toolbar.zip
Si tu peux essayer d'installer ça, et me dire si ça fonctionne. -
-
Et oui je vois bien la barre d'outils variés du Matt
Et les outils fonctionnentMaintenant faut que j'épluche pour voir comment la barre a été rajoutée
-
C'est le
File.exist?
qui pose problème.
C'est normal, la variable 'png1' reste une chaine de caractères, pas un fichier. Voici quelques infos sur la classeFile
.Si ton icone en small ou large est identique, voici le code que tu peux écrire à la place de la ligne 44 à 48 :
<span class="syntaxdefault">png1</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"offsets16x16.png"<br /></span><span class="syntaxdefault">cmd1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">small_icon</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">cmd1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">large_icon</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">png1</span>
-
Bingo !
Tout roule maintenant!
Encore un truc vicieux de résolu!Bravo!
La route des barres d'outils nous est enfin ouverte sans limitation de vitesse!
-
Donc si je comprends bien il faudrait modifier tous les posts explicatifs du dessus
qui utilisaient cette syntaxe! -
Ben ouais, ce serait plus clair pour tout le monde !
-
@adebeo said:
Mais je reste humble face à ta production de plugin.
Oh ben tu sais, c'est pas grand chose ! Et puis je publie des scripts mais je n'ai pas le temps de les améliorer ou de les débugger, c'est quand même con... Mais merci à toi ! ^^
-
%(#008000)[Bonjour à tous
Si je peux tenter un résumé :
Il suffit de créer un petit programme additif en 8 lignes , en ruby pour appeler un plugin sans icone .
2 opérations à faire :
... créer ce petit plugin
... dessiner une icone 16x16 pixelje vous propose les 3 petits plugins suivants qui appellent les plugins " d'auteurs"
la barre 1 appelle le plugin test 1 et lance Multiple Offsets.rb ( icone OF )
la barre 2 appelle les plugins test 2 et test 3 et lance FloorPlan.rb et weld.rb ( icones FL JT )
(je vous ai joint les fichiers zippés)
Salutations
chri]
Advertisement