sketchucation logo sketchucation
    • Login
    1. Home
    2. liquid98
    3. Posts
    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!
    ⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 26
    • Posts 124
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Save user data on a per file basis

      Thanx TIG

      OK I get the idea.. I'll experiment with that.

      Its not really about a warning, the feedback is used as a reminder of the total scale-factor. So if the model is scaled up lets say 1000 times, the user has to multiply his input accordingly. When he/she saves the model and opens it later, the script can use Sketchup.active_model.set_attribute('Liquid98','scale',@sf) to scale down the model, like you suggested.

      Another question, can you use this set_attributes method as a substitute for a global variable ( $varglobal)?

      posted in Developers' Forum
      liquid98L
      liquid98
    • Save user data on a per file basis

      Hi,

      I'm working on a plugin that does a scaling operation on a model.When the model is scaled up, there's a screen note (text entity) on the screen like "Scaled up 10000 times".

      Usually the user will scale down the model before saving. The screennote then disappears to indicate that the model has back its original size.

      But when the user saves the scaled up file (including the screen-note of course), the only information about the scale-up action is in that screen-note.
      How can I save that information in a more convenient way, and for several SU-files?

      posted in Developers' Forum
      liquid98L
      liquid98
    • RE: How to debug?

      Thanx guys,

      I'm working with dynamic screen notes and dynamic tooltips, and have to restart SU all the time to get them
      refreshed.. But that's not common for most plugins I suppose.

      posted in Developers' Forum
      liquid98L
      liquid98
    • RE: How to debug?

      I know, I'm a complete outsider in this discussion, but I have a question and an idea.

      My question: In what debugging situations is it necessary to restart Sketchup?

      And my idea:

      A plugin that resets Sketchup to it's initial state. So you never have to restart SU or manually reload a plugin to test a script.

      posted in Developers' Forum
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      Hi TIG,

      @tig said:

      I don't see the problem ? On the rare occasions when the user has deleted the entire model [and why would they do that?] the scaling becomes irrelevant anyway, so they can just delete it ?

      I admit, that situation won't occur very often. But I only want to tackle it to learn new stuff... 😛

      When I put your code in a .rb file, like this:

      <span class="syntaxdefault">    require </span><span class="syntaxstring">'sketchup.rb'<br /><br /></span><span class="syntaxdefault">    class OnlyScreenTextLeftEntitiesObserver </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">EntitiesObserver<br />      def onEraseEntities</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">entities</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">messagebox </span><span class="syntaxstring">"OK"<br /></span><span class="syntaxdefault">     end<br />    end<br />  <br />   <br />    Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_observer</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">OnlyScreenTextLeftEntitiesObserver</span><span class="syntaxkeyword">.new)</span><span class="syntaxdefault"> </span>
      

      and then start sketchup, create some entities and delete them,

      Nothing happens... Why??

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @mitcorb said:

      Well, for those who work in Imperial units==inches, it would be cool if you could set the scale factor to overcome the small faces problem but type in the VCB the same numbers as you would if you had not scaled it.

      Hi mitcorb,

      That's a nice idea, but I have no clue to achieve it..

      Indeed, the script I'm working on scales up as much as you want and than scales everything down to scalefactor 1.
      In scaled up state there's a screen-note reference to the actual scale-factor.

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      Hello friends,

      I made some improvements to the boolean-helper plugin:

      • it scales everything in the model
      • it gives feedback on the total scale-factor
      • it auto zooms to the model-extents.

      But I need some help:

      When the model is scaled up, feedback is generated in the form of a sketchup::text
      entity. My problem: when the the model is deleted (not select all), the text entity remains on the screen ( entities[0]) while there is no model.

      So I have to monitor that.

      How do I do that??

      I came up with this solution:

      <span class="syntaxdefault">if  entities</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">class </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Text </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> entities</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> nil<br />         </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">xnote </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> entities</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">         </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">notetext </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"   "<br /></span><span class="syntaxdefault">         </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">xnote </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_note </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">notetext</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0.01</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0.99</span>
      

      But if I put this code in booleanhelper.rb it only runs when the user invokes it.
      While it has to run all the time.

      I've also read something about Sketchup::EntityObserver. Is that relevant in this case???

      Thnx for your help

      posted in Plugins
      liquid98L
      liquid98
    • RE: User feedback: looking for alternative to screen notes

      Hi Chris,

      Thanx for your help !

      Indeed, the problem arises when there is no geometry. The plugin I'm writing gives feedback on the scale-factor that an object is scaled with. When you press the scale-up button the object is scaled up with a factor. Then the scale-factor is presented to the user as a screen-note. The user can scale up as much as he wants to, and the screen-note will refresh accordingly.

      Then, when the 'scale-down at once button' is pressed, the object is scaled down to its original proportions and the screen-note gets deleted.

      But there arises a problem with a scaled up object and the corresponding screennote. In case the object is deleted ,so there is no geometry, the screen-note is still active. And I can find no way to correct this.

      Thnx,

      Liquid

      posted in Plugins
      liquid98L
      liquid98
    • User feedback: looking for alternative to screen notes

      Hi,

      I'm writing a plugin that gives feedback about its operations via screen-notes.

      But screen-notes are buggy:
      http://forums.sketchucation.com/viewtopic.php?f=180&t=36940&p=325358&hilit=info+about+aad_note+method#p325358.

      I was thinking about webdialogs, so I'm looking for a simple example on that.

      Or are there any other alternatives?

      Thnx

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      Working on the feedback of the scale action (X = one time scaled up XX =two times etc.)
      I have some variable (array) filled with X characters. Its called $xfeedback

      To put it on screen I use:

      @xnote = model.add_note $xfeedback.to_s, 0.01, 0.02.

      That works. But to update it I would like to delete the screen-note entity before showing it again like this:

      model = Sketchup.active_model entities = model.active_entities entities.erase_entities(@xnote) if @xnote

      I know to delete something with erase_entities it has to be an array. So I tried also this:
      entities.erase_entities(@xnote.to_a) if @xnote

      but it's not working.

      Code structure is like this:

      <span class="syntaxdefault"><br />require </span><span class="syntaxstring">'sketchup.rb'<br /><br /></span><span class="syntaxdefault">$xfeedback </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"X"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"X"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"X"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"X"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">  </span><span class="syntaxcomment"># Test situation presuming 4 times scaled up.<br /><br /></span><span class="syntaxdefault">module Test<br /><br />class Scaledown<br />    <br /><br />def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> <br />         </span><span class="syntaxcomment"># Scaling action<br /></span><span class="syntaxdefault">         <br />     model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />     entities </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />     if entities</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> nil<br />    <br />    l </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $xfeedback</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">length</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_i </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> 1  <br />    $xfeedback</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">delete_at</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">l</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />     model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />    entities </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />    entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">erase_entities</span><span class="syntaxkeyword">(@</span><span class="syntaxdefault">xnote</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">xnote<br /><br />    </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">xnote </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_note $xfeedback</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_s</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0.01</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0.02<br /><br /><br /><br />    else <br />    nil<br />    end</span><span class="syntaxcomment">#if<br /><br /><br /><br /><br /><br /><br /></span><span class="syntaxdefault">end</span><span class="syntaxcomment">#def<br /></span><span class="syntaxdefault">end</span><span class="syntaxcomment">#class<br /></span><span class="syntaxdefault">end</span><span class="syntaxcomment">#module             &nbsp;</span><span class="syntaxdefault"></span>
      

      Please help

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @ TIG

      yeah, "select all" is user language.

      model.entities.to_a = programmers language 😉

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      Hi John,

      I see! when scaling up and down a separate line or face you get all kind of weird shapes... really fast 😮

      Edge scaler is a great idea! Maybe that will be my next project... thanx for the suggestion.

      So the plugin has to select all before scaling. Thats better indeed, I'll fix that.

      What do you think about the X message-scale-feedback?

      Nice to hear it functions on Mac, too

      Liquid

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @driven said:

      hi,

      I've been following this topic due to a keen interest in 3d printing, and have wanted to make a suggestion.

      I can't find the code I played around with in the past which is the basis of my suggestion,
      however Jim mentioned where it comes from in another post today, so I'll simply pass that on...http://code.google.com/apis/sketchup/docs/ourdoc/model.html#add_note

      the idea is just write a screen note when working at scale and remove it when back to output scale.

      I was looking into actually blocking exporting at scale, but didn't get it working.

      I haven't had time yet, but I'll do some Mac tests and let you know if there are any issues.

      john

      Hi John,

      I like your idea's! I know from experience that exporting a model in the wrong scale is a common mistake in 3D printing design... Not a lethal mistake, unless you order the model in the wrong size... Maybe there's something like a Read-only or immune method in Ruby, I will look for that...

      Also the idea of model-notes is a good idea. I suggest an 'X' sign for every scale-up action. So when the model is in normal state no X sign is visible. If you've triple-scaled your model there will be three X's in the left top of the screen.
      Also the X model-note provides a good feedback on the scale action, so after the scale action the script can do viewZoomExtents without loosing your sense of scale.
      I'm also curious how this script behaves on the mac, so let me know..

      posted in Plugins
      liquid98L
      liquid98
    • RE: Good way to test a script

      @pixero said:

      Here's a topic I started with some good info about debugging scripts:
      http://forums.sketchucation.com/viewtopic.php?f=180&t=34052

      That's a really useful thread indeed, thnx 😄

      posted in Developers' Forum
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      if Sketchup.read_default('liquidsscalefactor','value', '100') == nil

      Little mistake, replaced all the read_default lines in the same way.. (in the editor)

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @ Jim, no i did not get your joke .... Lost in translation I suppose

      I've set everything to string now:

      <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /><br /></span><span class="syntaxcomment">#=============================================================================<br /></span><span class="syntaxdefault">    <br />    <br />       </span><span class="syntaxcomment">#$booleanhelper_scaleoption = 1         # Uncomment the first line of code to scale your object about the origin. ( Restart needed!)<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment"># Leave it as it is to scale your object about it's center.<br /></span><span class="syntaxdefault">    <br /><br /><br /><br /><br />module Bhelper<br /><br />   sf </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'100'<br /></span><span class="syntaxdefault">        if     Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">read_default</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> nil<br />        <br />            Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write_default</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">sf</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        <br />        end    <br />    <br />    <br />    class Tltip<br />        <br />    def initialize</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">        <br /><br />        <br />a </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">read_default</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'100'</span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">if a</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">class </span><span class="syntaxkeyword">==</span><span class="syntaxdefault">String<br />a</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">a</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_f<br />else </span><span class="syntaxcomment">### might be an Array or something else!<br /></span><span class="syntaxdefault">a</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">100.0<br />end</span><span class="syntaxcomment">#if<br /><br /><br /><br /></span><span class="syntaxdefault">b </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 1.0</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">a<br />$cmdbooleanhelperscale</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">tooltip </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Scalefactor #{b}"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> if $cmdbooleanhelperscale<br />$cmdbooleanhelperscale1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">tooltip </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Scalefactor #{a.to_i}"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> if $cmdbooleanhelperscale1<br />$cmdbooleanhelperscale</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu_text </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Scalefactor #{b}"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> if $cmdbooleanhelperscale<br />$cmdbooleanhelperscale1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu_text </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Scalefactor #{b}"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> if $cmdbooleanhelperscale1<br /> end<br /> <br /> end<br /><br /><br />class Getinfo<br />    <br />    def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> <br />        <br />        <br /><br />        </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">sf </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">read_default</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'100'</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        <br />        prompts </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Set scalefactor   "</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        <br />        defaults </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[@@</span><span class="syntaxdefault">sf</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        values </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"10|100|1000"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">  </span><span class="syntaxcomment"># For other scale factors please use the native Sketchup-scale tool . This script is intended only for quick scale up and down actions .<br /><br /></span><span class="syntaxdefault">        <br />         results </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">inputbox prompts</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> defaults</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> values</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Scalefactor."<br /></span><span class="syntaxdefault">        <br />        return if not results<br /><br />    <br />    <br />    </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">sf </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_s<br />    <br />    <br />      <br />    <br />    <br />    <br />    <br />    <br />    <br />    <br />    <br />    <br />        Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write_default</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,@@</span><span class="syntaxdefault">sf</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        <br />Bhelper</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Tltip</span><span class="syntaxkeyword">.new()<br /><br /></span><span class="syntaxdefault">        <br />        <br />    end<br /><br />end<br /><br /><br />    <br /><br /><br />class Kleiner<br />    <br />    def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> <br />    sf </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">read_default </span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'100'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_f<br />    <br />    model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />    entities </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />        selection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">selection<br />    <br />    boundbox </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds<br />    center</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> boundbox</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">center<br /><br />    <br />    if $booleanhelper_scaleoption  </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1<br />    <br />    center </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    <br />    <br />    end <br />    <br />    trans </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Geom</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Transformation</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">scaling</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">center</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 1.0</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">sf</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform_entities</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">trans</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> selection</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_a</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">#new_view = view.zoom_extents<br /></span><span class="syntaxdefault">    <br />    end<br />end<br /><br /><br /><br /><br /><br />class Groter<br />    <br />    def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> <br />    sf </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">read_default </span><span class="syntaxstring">'liquidsscalefactor'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'value'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'100'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_f<br />    <br />    model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />    entities</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />        selection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">selection<br />    <br />    <br />    <br />    boundbox </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds<br />    center</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> boundbox</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">center<br />    <br />    <br />    if $booleanhelper_scaleoption  </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1<br />    <br />    center </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    <br />    <br />    <br />    end<br /><br />    trans </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Geom</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Transformation</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">scaling</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">center</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> sf</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform_entities</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">trans</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> selection</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_a</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">#new_view = view.zoom_extents<br /></span><span class="syntaxdefault">    <br />    end<br />end<br /><br /><br /> <br /> <br /> <br /> <br /><br /></span><span class="syntaxcomment">#=============================================================================<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault"> not $booleanhelper_menu_loaded </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    <br />    add_separator_to_menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Plugins"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        new_menu </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Plugins"</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_submenu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Boolean helper"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        new_toolbar </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Toolbar</span><span class="syntaxkeyword">.new(</span><span class="syntaxstring">"Boolean helper"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        plugins </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">find_support_file</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Plugins"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        imgdir </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">plugins</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Booleanhelper"</span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">        $cmdbooleanhelperscale </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Command</span><span class="syntaxkeyword">.new(</span><span class="syntaxstring">"Scale down"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">Bhelper</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Kleiner</span><span class="syntaxkeyword">.new()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    $cmdbooleanhelperscale</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">small_icon </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imgdir</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"smaller.png"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        $cmdbooleanhelperscale</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">large_icon </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imgdir</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"smallerL.png"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />        <br /><br />        new_menu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$cmdbooleanhelperscale</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        new_toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$cmdbooleanhelperscale</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        <br />    $cmdbooleanhelperscale1</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Command</span><span class="syntaxkeyword">.new(</span><span class="syntaxstring">"Scale up"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">Bhelper</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Groter</span><span class="syntaxkeyword">.new()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    $cmdbooleanhelperscale1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">small_icon </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imgdir</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"bigger.png"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        $cmdbooleanhelperscale1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">large_icon </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imgdir</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"biggerL.png"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br /><br /><br />        new_menu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$cmdbooleanhelperscale1</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        new_toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$cmdbooleanhelperscale1</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    cmd </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Command</span><span class="syntaxkeyword">.new(</span><span class="syntaxstring">"set scale factor"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">Bhelper</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Getinfo</span><span class="syntaxkeyword">.new()}<br /></span><span class="syntaxdefault">    <br />        new_menu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">cmd</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        new_toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">show<br />Bhelper</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Tltip</span><span class="syntaxkeyword">.new()<br /></span><span class="syntaxdefault">        $booleanhelper_menu_loaded </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true<br />end <br /><br />end </span><span class="syntaxcomment">#module<br /><br /></span><span class="syntaxdefault"> </span>
      

      Is it correct like this??

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @unknownuser said:

      Oops!

      Following error code on my machine.

      Error Loading File booleanhelper1.05.rb
      undefined method `to_f' for [10]:Array

      Notice, I have been following this thread not so much as I need the plugin, just trying to keep up with the programing.

      Ken

      Hi Ken,

      Thanx for the feedback, Boolean helper writes the scalefactor to the registry. I think an old value from previous version sits there. To fix it

      Copy this code:

      Sketchup.write_default('liquidsscalefactor','value',100)
      

      And paste it in your ruby-console, press Enter and restart SU, and let me know if it worked...

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @jim said:

      How is this plugin not called "ScaleUp.rb"? 😆

      It's use is to quickly scale up and down a model. Why?
      If one is working on small parts in SU for instance for 3d printing, some operations like the boolean operations and lathe result in errors with small vertices's/faces. SU has problems handling these small entities. If you temporarily scale up your model, you don't have these problems. After the operations are done , you can scale down again.

      So that's why the plugin is named booleanhelper. Simple but effective.

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      Hello TIG,

      I got everything working now. I made a new class and put everything for the tooltips in there. I call the class in Getinfo, and in the menu-loader section.
      I got this feeling the script is finished now 😄

      Thanks again for your great help. What is keeping you busy lately ??

      Regards,

      Liquid

      posted in Plugins
      liquid98L
      liquid98
    • RE: [Plugin] Boolean helper update 08122011

      @tig said:

      $cmdbooleanhelperscale.tooltip = ("Scalefactor #{@@sf}") if $cmdbooleanhelperscale

      works ok!

      does if $variable mean introducing some variable?

      I tried to introduce #booleanhelperscale with $booleanhelperscale = nil but no succes!

      I really still have no clue were to put the code.. 😕 Because when you open Sketchup the code has to run otherwise no tooltip is available... So it has to be on two places, once in the getinfo class (to update the scalefactor and once somewere else to load at the time Sketchup application starts up. ❓:?:
      I'm sure there is some elegant solution for this problem..

      About the zoom extents, i think you misunderstood.. I was discussing the possibility of an UI.messagebox to give feedback on the scale action. Zoom extents alone provides no feedback on the scale-operation. (The same shape remains on the screen) So i don't want to put it in the script without proper feedback. Messesagebox "Scaled up! Done" is no option because you have to click on it to continue your work.

      posted in Plugins
      liquid98L
      liquid98
    • 1 / 1