by vonlinne » Mon May 21, 2012 6:54 pm
Bonjour à tous
Voilà des années que j'utilise Sketchup avec plaisir et je viens tout juste de découvrir que ce plaisir pouvait devenir un vrai bonheur grâce aux plugins!
Me voilà donc en train d'essayer tout ces merveilleux jouets et mon écran est désormais paré d'un beau collier qui ne cesse de s'enrichir et dont je remercie les généreux auteurs chaque jour.
Mais un petit regret vient atténuer mon enthousiasme : il y a aussi plein de ces merveilles qui n'ont pas ces barres d'outils si pratiques et qui reste dans l'obscurité incommode et fatigante des arborescences.
Je me suis donc mis en quête de la recette de la barre d'outils et après un sérieux moment ai trouvé dans ce forum sous la plume de Tig, un des plus méritants auteurs, une recette séduisante : je vous la livre ci-dessous :
Créer un fichier.rb indépendant venant compléter le fichier sans barre d'outils : ### require 'le nom du plugin.rb' ### toolbar=UI::Toolbar.new("le nom de la barre d'outils") toolbar.restore if new_toolbar.get_last_state==TB_VISIBLE ### cmd1=UI::Command.new("le nom de la commande"){la commande()} png1="le dossier image/l'image.png" if File.exist?(png1) cmd1.small_icon=png1 cmd1.large_icon=png1 toolbar.add_item(cmd1) end ###
Malheureusement, mon inexpérience totale en matière de langage ruby m'empêche d'aller au delà d'une simple ouverture du fichier et –si il est bien organiser- d'y picorer au petit bonheur quelques informations.
Bref, si j'arrive à obtenir une belle barre d'outils avec son icône, celle-ci ne réagit point quand je la sollicite : je dois me tromper quelque part, probablement dans l'intitulé de la commande que j'ai du mal à repérer et à décrire dans le fichier.rb.
Je serai donc ravi s'il se trouvait quelqu'un qui puisse répondre à cette requête dont j'ai presque honte tant elle est basique
Par avance, merci beaucoup François
-
vonlinne
-
- Posts: 2
- Joined: Fri Apr 20, 2012 9:03 am
- Name: VonLinne
by Pilou » Mon May 21, 2012 9:39 pm
Il ne suffit pas de prendre n'importe quel plugin qui utilise une barre d'outil et de regarder par similitude ce qui ne va pas ? oui bouffre, j'ai essayé, il me manque aussi quelques bases!  pourtant j'avais retrouvé le postde TIG mais niet il veut pas de la ligne new_toolbar undefined local variable or method `new_toolbar' for main:Object
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by DareDevil » Mon May 21, 2012 11:17 pm
En regardant rapidement (parce que je ne peux pas essayer), il faut trouver la commande qui est lancée à partir du menu. Dans le fichier .rb du plugin, il faut trouver quelque chose du genre UI.menu("Plugins").add_item("nom de la commande") { commande }qui ajoute une entrée dans un des menus (ici Plugins), pour récupérer la syntaxe de la commande à la fin entre accolades, et la remettre dans le .rb de la barre d'outil cmd1=UI::Command.new("le nom de la commande"){ commande }En espérant que sa fonctionne 
-

DareDevil
-
- Posts: 360
- Joined: Sun Mar 15, 2009 10:19 pm
- Location: Marseille, France
- Name: Didier D
by Pilou » Tue May 22, 2012 12:04 am
j'ai rajouté le bout de code qui commence par trois ### require 'Multiple Offsets.rb' et finit par end ### mais j'ai toujours le même message d'erreur Error Loading File Multiple Offsets.rb undefined local variable or method `new_toolbar' for main:Object
toujours aussi stressant la programmation, la syntaxe, le sens et le reste! - Code: Select all
#------------------------------------------------------------------------------------------------ # Permission to use, copy, modify, and distribute this software for # any purpose and without fee is hereby granted. #------------------------------------------------------------------------------------------------ # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # ----------------------------------------------------------------------------------------------- # THIS PLUGIN WAS DEVELOPED AND TESTED UNDER WINDOWS VISTA ONLY AND MAY OR MAY NOT WORK ON A MAC. # ----------------------------------------------------------------------------------------------- # Name: Multiple Offsets # By: sdmitch # Usage: Create multiple offsets to a selected face(s) using one of the following options. # Constant: Input number of offsets, distance between offsets, direction to # offset, either inside, outside, or both, and whether the selected face(s) and all # created faces are to be deleted, select No to keep faces. # Formula: Enter number of offsets, distance to first offset, direction to offset, # delete faces Yes or No, select operator + or *, and value to add or multiply by. # List: Select direction of offsets, delete faces Yes or No, a list of offsets seperated # by commas, choose type of offset either absolute value or a delta to be added to the # last offset value. If the offsets are a repeated sequence, end the list with *X, # where X = the number of repititions for the offsets entered. # Note: This version does not address the issue of overlap of "Inside" offsets. # Date: Feb 2012 #------------------------------------------------------------------------------------------------ # require 'Sketchup' # if not file_loaded?(File.basename(__FILE__)) UI.menu('Plugins').add_item('Multiple Offsets') { SDM_Multiple_Offsets.do_offsets } file_loaded(File.basename(__FILE__)) end #
### 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 ###
module SDM_Multiple_Offsets
def self.do_offsets @mod=Sketchup.active_model @ent=@mod.active_entities @sel=@mod.selection unless @sel.empty? @method = "Constant" if !@method inp=UI.inputbox(["Offset Method:"],[@method],["Constant|Formula|List"],"Multiple Offsets By:") if inp @mod.start_operation("Multiple Offsets",true); @method = inp[0] @existing_faces=[]; @selected_faces=[] @ent.each{|f| @existing_faces<<f if f.is_a?(Sketchup::Face)}# collect all existing faces @sel.each{|f| @selected_faces<<f if f.is_a?(Sketchup::Face)}# collect all selected faces case @method when "Constant" : self.do_offsets_constant when "Formula" : self.do_offsets_formula when "List" : self.do_offsets_list end if @del == "Yes" @selected_faces.each{|f| @ent.erase_entities(f)} # erase selected faces @ent.each{|f| @ent.erase_entities(f) if f.is_a?(Sketchup::Face) && !@existing_faces.include?(f)} # erase new faces else @sel.each{|e| e.find_faces if e.class==Sketchup::Edge and e.curve} # create faces for offsets end @sel.clear; @mod.commit_operation end else UI.messagebox "Nothing selected. Select face(s) to be offset" end end
def self.do_offsets_constant @cnt = 1 if !@cnt; @dir = "Outside" if !@dir; @dis = 1.inch if !@dis; @del = "No" if !@del prompts = [" Number:","Distance:","Direction:","Del Face:"] inp=UI.inputbox(prompts,[@cnt,@dis,@dir,@del],[nil,nil,"Inside|Outside|Both","Yes|No"],"Multiple Offsets by Constant") if !inp then;return;end @cnt = inp[0].to_i; @dis=inp[1].to_l; @dir = inp[2]; @del = inp[3];@sel.clear for f in @selected_faces osd = @dis; osd = -osd if @dir == "Inside" for i in 1..@cnt f.offset(-osd*i,@ent,@sel) if @dir == "Both" f.offset(osd*i,@ent,@sel) end end end
def self.do_offsets_formula @cnt = 1 if !@cnt; @dir = "Outside" if !@dir; @dis = 1.inch if !@dis; @del = "No" if !@del; @opr = "+" if !@opr; @val = 1.inch if !@val prompts = [" Number:","Distance:","Direction:","Del Face:","Operator:","Add/Mult:"] inp=UI.inputbox(prompts,[@cnt,@dis,@dir,@del,@opr,@val],[nil,nil,"Inside|Outside|Both","Yes|No","+|*"],"Multiple Offsets by Formula") if !inp then;return;end @cnt = inp[0].to_i; @dis=inp[1].to_l; @dir = inp[2]; @del = inp[3]; @opr = inp[4]; @val = inp[5].to_l;@sel.clear for f in @selected_faces osd = @dis; osd = -osd if @dir == "Inside" for i in 1..@cnt f.offset(-osd,@ent,@sel) if @dir == "Both" f.offset(+osd,@ent,@sel) case @opr when "+" osd = osd + @val if @dir != "Inside" osd = osd - @val if @dir == "Inside" when "*" osd = osd * @val end end end end
def self.do_offsets_list @dir = "Outside" if !@dir; @del = "No" if !@del; @lst = "1,2,3,4,5,6,7,8,9" if !@lst; @ost = "Absolute" if !@ost prompts = ["Direction:","Del Face:"," Offsets:"," OS Type:"] inp=UI.inputbox(prompts,[@dir,@del,@lst,@ost],["Inside|Outside|Both","Yes|No",nil,"Absolute|Delta"],"Multiple Offsets by List") if !inp then;return;end @dir = inp[0]; @del = inp[1]; @lst = inp[2]; @ost = inp[3]; osd,rep=@lst.split("*");dis=osd.split(","); (cnt = rep.to_i * dis.length-dis.length;@ost="Delta";for i in 0...cnt;dis.push dis[i];end) if rep @cnt = dis.length;@sel.clear; tosd = 0 for f in @selected_faces for i in 0...@cnt (@ost == "Absolute") ? (osd = dis[i].to_l) : (tosd += dis[i].to_l; osd=tosd) osd = -osd if @dir == "Inside" f.offset(-osd,@ent,@sel) if @dir == "Both" f.offset(+osd,@ent,@sel) end end end
# Code copied from offset.rb # Copyright 2004,2005,2006,2009 by Rick Wilson - All Rights Reserved
class Sketchup::Face def offset(dist,ent,sel) begin pi = Math::PI if (not ((dist.class==Fixnum || dist.class==Float || dist.class==Length) && dist!=0)) return nil end verts=self.outer_loop.vertices;pts = [];vecs = [] verts.reverse! if self.outer_loop.edges[0].reversed_in?(self) # CREATE ARRAY pts OF OFFSET POINTS FROM FACE 0.upto(verts.length-1) do |a| vec1 = (verts[a].position-verts[a-(verts.length-1)].position).normalize vec2 = (verts[a].position-verts[a-1].position).normalize vec3 = (vec1+vec2).normalize if vec3.valid? ang = vec1.angle_between(vec2)/2 ang = pi/2 if vec1.parallel?(vec2) vec3.length = dist/Math::sin(ang) vecs << vec3 t = Geom::Transformation.new(vec3) if pts.length > 0 vec4 = pts.last.vector_to(verts[a].position.transform(t)) if vec4.valid? unless (vec2.parallel?(vec4)) t = Geom::Transformation.new(vec3.reverse) end end end pts.push(verts[a].position.transform(t)) else puts "#{a} - vec3 is invalid" end end # CHECK FOR DUPLICATE POINTS IN pts ARRAY duplicates = [] pts.each_index do |a| pts.each_index do |b| next if b==a duplicates<<b if pts[a]===pts[b] end break if a==pts.length-1 end duplicates.reverse.each{|a| pts.delete(pts[a])} # CREATE CURVE FROM POINTS IN pts ARRAY (pts.length > 2) ? (pts.push pts[0];cur = ent.add_curve(pts);sel.add cur[0]) : (return nil) rescue puts "#{self} did not offset: #{pts}" return nil end end end end
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by vonlinne » Wed May 23, 2012 10:43 am
Bonjour à tous Formidable, merci Didier, c'est exactement le renseignement qu'il me fallait! Je récapitule l'ensemble pour tous ceux que cela pourrait intéresser (sur la base d'un post de Tig, d'un guide dans Developpers Google et d'un très bon conseil de Daredevil/Didier): Soit un plugin sans barre d'outils fichier.rb Créer un plugin indépendant venant compléter le fichier sans barre d'outils : fichier_barreoutils.rb Créer naturellement un dossier pour les icônes : fichier_icones et le garnir des icônes désirées de type png : icone1, icone2… Lui donner une forme de ce genre (pour une barre avec 2 icônes et un séparateur au milieu): ### require fichier.rb' ### toolbar=UI::Toolbar.new("le nom de la barre d'outils") ### cmd1=UI::Command.new("le nom de la commande n°1"){la commande n°1 } cmd1.small_icon= " fichier_icones / icone1.png" cmd1.large_icon= " fichier_icones / icone1.png" cmd1.status_bar_text = "texte explicatif commande n°1 dans la barre de status" toolbar = toolbar.add_item cmd1 toolbar.show ### toolbar=toolbar.add_separator ### Cmd2=UI::Command.new("le nom de la commande n°2"){la commande n°2 } cmd2.small_icon= " fichier_icones / icone2.png" cmd2.large_icon= " fichier_icones / icone2.png" cmd2.status_bar_text = "texte explicatif commande n°2 dans la barre de status" toolbar = toolbar.add_item cmd2 toolbar.show ### et ça fonctionne à merveille! 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 } Encore merci à vous Didier ainsi qu'à Pilou pour avoir bien voulu jeter un œil sur ce petit problème  . François
-
vonlinne
-
- Posts: 2
- Joined: Fri Apr 20, 2012 9:03 am
- Name: VonLinne
by adebeo » Wed May 23, 2012 12:22 pm
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/ ... oc/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
-
adebeo
-
- Posts: 350
- Joined: Wed Feb 24, 2010 1:43 pm
- Name: adebeo
- Operating system: Mac
- SketchUp version: 8
- License type: Pro
- SketchUp use: other
- Level of SketchUp: Advanced
-
by Pilou » Wed May 23, 2012 1:42 pm
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) ... - Code: Select all
### 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 ###
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by adebeo » Wed May 23, 2012 2:17 pm
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 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
-
adebeo
-
- Posts: 350
- Joined: Wed Feb 24, 2010 1:43 pm
- Name: adebeo
- Operating system: Mac
- SketchUp version: 8
- License type: Pro
- SketchUp use: other
- Level of SketchUp: Advanced
-
by Pilou » Wed May 23, 2012 2:37 pm
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
Please, register (free) to access all the attachments on the forums.
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by chri » Wed May 23, 2012 7:04 pm
VonLinne wrote: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
-

chri
-
- Posts: 291
- Joined: Sat Jul 03, 2010 11:29 am
- Location: champlay FRANCE
- Name: christian
- Operating system: Windows
- SketchUp version: 8
- License type: Pro
- SketchUp use: engineering and mechanical design
- Level of SketchUp: Advanced
by Pilou » Wed May 23, 2012 10:13 pm
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! 
Last edited by Pilou on Thu May 24, 2012 1:40 pm, edited 1 time in total.
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Matt666 » Thu May 24, 2012 10:19 am
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 : - Code: Select all
if File.exist?(png1) puts "ok" cmd1.small_icon=png1 cmd1.large_icon=png1 toolbar = toolbar.add_item cmd1 end
-
Matt666
-
- Posts: 829
- Joined: Wed Dec 05, 2007 8:38 am
- Location: 48.1184, -1.675
- Name: Matt
-
by adebeo » Thu May 24, 2012 12:40 pm
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.
-
adebeo
-
- Posts: 350
- Joined: Wed Feb 24, 2010 1:43 pm
- Name: adebeo
- Operating system: Mac
- SketchUp version: 8
- License type: Pro
- SketchUp use: other
- Level of SketchUp: Advanced
-
by adebeo » Thu May 24, 2012 12:55 pm
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.
Please, register (free) to access all the attachments on the forums.
-
adebeo
-
- Posts: 350
- Joined: Wed Feb 24, 2010 1:43 pm
- Name: adebeo
- Operating system: Mac
- SketchUp version: 8
- License type: Pro
- SketchUp use: other
- Level of SketchUp: Advanced
-
by Pilou » Thu May 24, 2012 1:52 pm
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" 
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Pilou » Thu May 24, 2012 2:18 pm
J'ai l'impression que pour une raison mystérieuse au passage dans le test If la condition n'est pas remplie J'ai volontairement tout groupé dans le Test If et là rien ne se passe! Mais pas de message d'erreur  - Code: Select all
### 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 ###
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Matt666 » Thu May 24, 2012 2:23 pm
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.
Please, register (free) to access all the attachments on the forums.
-
Matt666
-
- Posts: 829
- Joined: Wed Dec 05, 2007 8:38 am
- Location: 48.1184, -1.675
- Name: Matt
-
by Pilou » Thu May 24, 2012 2:33 pm
Voilà le script et l'image png offsets16x16.png
Please, register (free) to access all the attachments on the forums.
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Pilou » Thu May 24, 2012 2:39 pm
Et oui je vois bien la barre d'outils variés du Matt  Et les outils fonctionnent  Maintenant faut que j'épluche pour voir comment la barre a été rajoutée 
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Matt666 » Thu May 24, 2012 2:51 pm
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 classe File. Si ton icone en small ou large est identique, voici le code que tu peux écrire à la place de la ligne 44 à 48 : - Code: Select all
png1="offsets16x16.png" cmd1.small_icon=cmd1.large_icon=png1
-
Matt666
-
- Posts: 829
- Joined: Wed Dec 05, 2007 8:38 am
- Location: 48.1184, -1.675
- Name: Matt
-
by Pilou » Thu May 24, 2012 3:12 pm
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! 
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Pilou » Thu May 24, 2012 3:19 pm
Donc si je comprends bien il faudrait modifier tous les posts explicatifs du dessus qui utilisaient cette syntaxe! 
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Matt666 » Thu May 24, 2012 3:23 pm
Ben ouais, ce serait plus clair pour tout le monde !
-
Matt666
-
- Posts: 829
- Joined: Wed Dec 05, 2007 8:38 am
- Location: 48.1184, -1.675
- Name: Matt
-
by Matt666 » Thu May 24, 2012 5:48 pm
adebeo wrote: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 ! ^^
-
Matt666
-
- Posts: 829
- Joined: Wed Dec 05, 2007 8:38 am
- Location: 48.1184, -1.675
- Name: Matt
-
by chri » Thu May 24, 2012 9:17 pm
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 pixel
je 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
Please, register (free) to access all the attachments on the forums.
-

chri
-
- Posts: 291
- Joined: Sat Jul 03, 2010 11:29 am
- Location: champlay FRANCE
- Name: christian
- Operating system: Windows
- SketchUp version: 8
- License type: Pro
- SketchUp use: engineering and mechanical design
- Level of SketchUp: Advanced
by Pilou » Thu May 24, 2012 9:24 pm
Je suppose que l'on pourrait regrouper tous les additifs dans un seul "Meta additif" ? En changeant bien sûr les noms de cmd1, cmd2 etc
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by chri » Thu May 24, 2012 9:30 pm
Pilou wrote:Je suppose que l'on pourrait regrouper tous les additifs dans un seul "Meta additif" ? En changeant bien sûr les noms de cmd1, cmd2 etc
bonsoir PILOU ben oui , finalement ! pleins de fichiers tout simples ou bien , un bon gros structuré . ( le fichier joint remplace les plugins test1.rb test2.rb test3.rb ) chri
Please, register (free) to access all the attachments on the forums.
-

chri
-
- Posts: 291
- Joined: Sat Jul 03, 2010 11:29 am
- Location: champlay FRANCE
- Name: christian
- Operating system: Windows
- SketchUp version: 8
- License type: Pro
- SketchUp use: engineering and mechanical design
- Level of SketchUp: Advanced
by Pilou » Thu May 24, 2012 9:50 pm
Bien mieux que la multiplication des petits pains!  Maintenant reste à savoir s'il vaut mieux faire ce genre de chose, où l'intégrer unitairement directement dans le plugin concerné, puisqu'on est obligé de l'ouvrir pour voir le nom de commande employé  D'un autre côté le faire à l'extérieur peut aussi avoir son avantage, car cela reste valable même quand il y a une mise à jour! 
Last edited by Pilou on Thu May 24, 2012 9:53 pm, edited 2 times in total.
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by chri » Thu May 24, 2012 9:52 pm
Pilou wrote:Bien mieux que la multiplication des petits pains!  Maintenant reste à savoir s'il vaut mieux faire ce genre de chose, où l'intégrer unitairement directement dans le plugin concerné, puisqu'on est obligé de l'ouvrir pour voir le nom de commande employé  D'un autre côté le faire à l'extérieur peut aussi avoir son avantage, car cela reste valable même quand il y a une mise à jour! 
je penche pour la 2eme solution ( à l’extérieur) le plugin "d'auteur" reste intègre.
Last edited by chri on Thu May 24, 2012 9:56 pm, edited 1 time in total.
-

chri
-
- Posts: 291
- Joined: Sat Jul 03, 2010 11:29 am
- Location: champlay FRANCE
- Name: christian
- Operating system: Windows
- SketchUp version: 8
- License type: Pro
- SketchUp use: engineering and mechanical design
- Level of SketchUp: Advanced
by Pilou » Thu May 24, 2012 9:55 pm
Et que l'on a pas à se casser la tête de savoir où le mettre dans le code!  Ni de problème de barre déjà pré-existante!  Donc "meta multiple" et peut-être aussi avec un dossier pour les icône car si elles se baladent partout c'est pas top  Mais là qu'elle est la syntaxe ?
-

Pilou
- Top SketchUcator
-
- Posts: 10078
- Joined: Wed Jan 23, 2008 10:33 pm
- Operating system: Windows
- SketchUp version: 6
- License type: Free/Make
- SketchUp use: hobby
- Level of SketchUp: Advanced
-
by Ad Machine » 5 minutes ago
Not a Premium Member yet? Check out the great time-limited deal we are offering.
-
Ad Machine
- Robot
-
- Posts: 2012
-
Return to Français
|