sketchucation logo sketchucation
    • 登入
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🔌 Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download

    Une belle barre pour un plugin sans barre d'outils

    已排程 已置頂 已鎖定 已移動 Français
    46 貼文 6 Posters 2.8k 瀏覽 6 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • V 離線
      vonlinne
      最後由 編輯

      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

      1 條回覆 最後回覆 回覆 引用 0
      • pilouP 離線
        pilou
        最後由 編輯

        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 😮

        @unknownuser said:

        undefined local variable or method `new_toolbar' for main:Object

        Frenchy Pilou
        Is beautiful that please without concept!
        My Little site :)

        1 條回覆 最後回覆 回覆 引用 0
        • DareDevilD 離線
          DareDevil
          最後由 編輯

          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 😉

          1 條回覆 最後回覆 回覆 引用 0
          • pilouP 離線
            pilou
            最後由 編輯

            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 😒

            @unknownuser said:

            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! 💚

            #------------------------------------------------------------------------------------------------
            # 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
            

            Frenchy Pilou
            Is beautiful that please without concept!
            My Little site :)

            1 條回覆 最後回覆 回覆 引用 0
            • V 離線
              vonlinne
              最後由 編輯

              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

              1 條回覆 最後回覆 回覆 引用 0
              • A 離線
                adebeo
                最後由 編輯

                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

                adebeo
                Nos Formations sketchup
                Notre blog : www .adebeo.com/wp/
                Nos tutoriels: www .youtube.com/adebeo

                1 條回覆 最後回覆 回覆 引用 0
                • pilouP 離線
                  pilou
                  最後由 編輯

                  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
                  ###
                  

                  Frenchy Pilou
                  Is beautiful that please without concept!
                  My Little site :)

                  1 條回覆 最後回覆 回覆 引用 0
                  • A 離線
                    adebeo
                    最後由 編輯

                    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

                    adebeo
                    Nos Formations sketchup
                    Notre blog : www .adebeo.com/wp/
                    Nos tutoriels: www .youtube.com/adebeo

                    1 條回覆 最後回覆 回覆 引用 0
                    • pilouP 離線
                      pilou
                      最後由 編輯

                      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


                      Multiple Offsets.rb

                      Frenchy Pilou
                      Is beautiful that please without concept!
                      My Little site :)

                      1 條回覆 最後回覆 回覆 引用 0
                      • chriC 離線
                        chri
                        最後由 編輯

                        @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

                        1 條回覆 最後回覆 回覆 引用 0
                        • M 離線
                          Matt666
                          最後由 編輯

                          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>
                          

                          Frenglish at its best !
                          My scripts

                          1 條回覆 最後回覆 回覆 引用 0
                          • A 離線
                            adebeo
                            最後由 編輯

                            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
                            Nos Formations sketchup
                            Notre blog : www .adebeo.com/wp/
                            Nos tutoriels: www .youtube.com/adebeo

                            1 條回覆 最後回覆 回覆 引用 0
                            • A 離線
                              adebeo
                              最後由 編輯

                              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.


                              Multiple Offsets.rb

                              adebeo
                              Nos Formations sketchup
                              Notre blog : www .adebeo.com/wp/
                              Nos tutoriels: www .youtube.com/adebeo

                              1 條回覆 最後回覆 回覆 引用 0
                              • pilouP 離線
                                pilou
                                最後由 編輯

                                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! 💚

                                Frenchy Pilou
                                Is beautiful that please without concept!
                                My Little site :)

                                1 條回覆 最後回覆 回覆 引用 0
                                • pilouP 離線
                                  pilou
                                  最後由 編輯

                                  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" 😄

                                  Frenchy Pilou
                                  Is beautiful that please without concept!
                                  My Little site :)

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • pilouP 離線
                                    pilou
                                    最後由 編輯

                                    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 😄

                                    ###
                                    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
                                    ###
                                    
                                    

                                    Frenchy Pilou
                                    Is beautiful that please without concept!
                                    My Little site :)

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • M 離線
                                      Matt666
                                      最後由 編輯

                                      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.

                                      Frenglish at its best !
                                      My scripts

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • pilouP 離線
                                        pilou
                                        最後由 編輯

                                        Voilà le script et l'image png

                                        offsets16x16.png


                                        Multiple Offsets.rb

                                        Frenchy Pilou
                                        Is beautiful that please without concept!
                                        My Little site :)

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • pilouP 離線
                                          pilou
                                          最後由 編輯

                                          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 😛

                                          Frenchy Pilou
                                          Is beautiful that please without concept!
                                          My Little site :)

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • M 離線
                                            Matt666
                                            最後由 編輯

                                            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 :

                                            <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>
                                            

                                            Frenglish at its best !
                                            My scripts

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • 第一個貼文
                                              最後的貼文
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement