sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Angular Dimension

    Scheduled Pinned Locked Moved Plugins
    63 Posts 14 Posters 68.7k Views 14 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      slbaumgartner
      last edited by

      @driven said:

      Hi,
      I just read your script and your cursors use all UPPERCASE which was actually failing gracefully, ie. '@cursor' not defined, but the tool still works.

      I had a look at your cursor images and see that they had never appeared. I'm getting the 'snap to' squares...

      I'll downcase the cursor names and see if that works, but I suspect 'Tab' key will be an issue on mac.

      john

      That seems unlikely...all uppercase is pretty typical convention for constants in Ruby, and should have nothing to do with Mac vs PC. If you are finding @cursor not defined, that seems more likely a problem with the path to the icon files. Are they installed in Plugins/draw_dim_angle?

      Try this: open the Ruby Console window and type DrawAngleDimTool::IN_ICON into the input space. The output space should then display the path for interior.png. If the path is mangled or isn't where you installed the png image, that is the problem. You can also type DrawAngleDimTool::IN_CURSOR and you should get a number back, probably somewhere a bit more than 50000. If that doesn't work, SketchUp failed to load the image file.

      If you look at onKeyDown, there is a code snippet to print the keycode you get on the Mac. Please let me know what value you get and I'll see if I can code in a trap for PC vs Mac.

      1 Reply Last reply Reply Quote 0
      • D Offline
        driven
        last edited by

        Hi,

        on closer inspection, everything seems fine? except the onKeyDown. EDIT: swapped from Tab to Esc and I still can't get outside dims or cursors

        very few ' onKeyDown' work on macs. here's a list from today.

        PLATFORM = i686-darwin8.10.1

        SEQUENCE 0 of 5 [Function Keys]
        DN F2 Key 50 flags 0 rpt 1
        UP F2 Key 50 flags 256 rpt 1
        DN F3 Key 51 flags 0 rpt 1
        UP F3 Key 51 flags 256 rpt 1
        DN F6 Key 54 flags 0 rpt 1
        UP F6 Key 54 flags 256 rpt 1
        DN F12 Key 63243 flags 0 rpt 1
        UP F12 Key 63243 flags 8388864 rpt 1

        SEQUENCE 1 of 5 [Modifiers Keys]
        DN Shift alone Key 131072 flags 131330 rpt 1
        UP Shift alone Key 131072 flags 256 rpt 1
        DN Ctrl alone Key 262144 flags 262401 rpt 1
        UP Ctrl alone Key 262144 flags 256 rpt 1
        DN Alt alone Key 524288 flags 524576 rpt 1
        UP Alt alone Key 524288 flags 256 rpt 1
        DN Cmd alone Key 1048576 flags 1048840 rpt 1
        UP Cmd alone Key 1048576 flags 256 rpt 1

        SEQUENCE 2 of 5 [Arrow Keys]
        UP UP Key 63232 flags 10486016 rpt 1
        UP RIGHT Key 63235 flags 10486016 rpt 1
        UP DOWN Key 63233 flags 10486016 rpt 1
        UP LEFT Key 63234 flags 10486016 rpt 1

        SEQUENCE 3 of 5 [Validation Keys]
        DN RETURN Key 13 flags 0 rpt 1
        UP RETURN Key 13 flags 256 rpt 1
        UP TAB Key 9 flags 256 rpt 1
        UP DEL Key 127 flags 256 rpt 1
        UP BACKSPACE Key 63272 flags 8388864 rpt 1
        DN ESCAPE Key 27 flags 0 rpt 1
        UP ESCAPE Key 27 flags 256 rpt 1

        SEQUENCE 4 of 5 [Numbers Keys (Numpad not common)]
        UP 1 Key 49 flags 256 rpt 1
        UP 2 Key 50 flags 256 rpt 1
        UP 3 Key 51 flags 256 rpt 1
        UP 4 Key 52 flags 256 rpt 1
        UP 5 Key 53 flags 256 rpt 1
        UP 6 Key 54 flags 256 rpt 1
        UP 7 Key 55 flags 256 rpt 1
        UP 8 Key 56 flags 256 rpt 1
        UP 9 Key 57 flags 256 rpt 1
        UP 0 Key 48 flags 256 rpt 1
        UP - Key 45 flags 256 rpt 1
        UP = Key 61 flags 256 rpt 1
        UP / Key 47 flags 256 rpt 1
        UP [ Key 91 flags 256 rpt 1
        UP ] Key 93 flags 256 rpt 1

        SEQUENCE 5 of 5 [Alpha keys (do not use Shift)]
        UP s Key 115 flags 256 rpt 1
        UP c Key 99 flags 256 rpt 1
        UP r Key 114 flags 256 rpt 1

        complements of a Fredo script c.2007 with a slight update.
        john

        learn from the mistakes of others, you may not live long enough to make them all yourself...

        1 Reply Last reply Reply Quote 0
        • S Offline
          slbaumgartner
          last edited by

          @driven said:

          Hi,

          on closer inspection, everything seems fine? except the onKeyDown. EDIT: swapped from Tab to Esc and I still can't get outside dims or cursors

          very few ' onKeyDown' work on macs. here's a list from today.

          PLATFORM = i686-darwin8.10.1

          SEQUENCE 0 of 5 [Function Keys]
          DN F2 Key 50 flags 0 rpt 1
          UP F2 Key 50 flags 256 rpt 1
          DN F3 Key 51 flags 0 rpt 1
          UP F3 Key 51 flags 256 rpt 1
          DN F6 Key 54 flags 0 rpt 1
          UP F6 Key 54 flags 256 rpt 1
          DN F12 Key 63243 flags 0 rpt 1
          UP F12 Key 63243 flags 8388864 rpt 1

          SEQUENCE 1 of 5 [Modifiers Keys]
          DN Shift alone Key 131072 flags 131330 rpt 1
          UP Shift alone Key 131072 flags 256 rpt 1
          DN Ctrl alone Key 262144 flags 262401 rpt 1
          UP Ctrl alone Key 262144 flags 256 rpt 1
          DN Alt alone Key 524288 flags 524576 rpt 1
          UP Alt alone Key 524288 flags 256 rpt 1
          DN Cmd alone Key 1048576 flags 1048840 rpt 1
          UP Cmd alone Key 1048576 flags 256 rpt 1

          SEQUENCE 2 of 5 [Arrow Keys]
          UP UP Key 63232 flags 10486016 rpt 1
          UP RIGHT Key 63235 flags 10486016 rpt 1
          UP DOWN Key 63233 flags 10486016 rpt 1
          UP LEFT Key 63234 flags 10486016 rpt 1

          SEQUENCE 3 of 5 [Validation Keys]
          DN RETURN Key 13 flags 0 rpt 1
          UP RETURN Key 13 flags 256 rpt 1
          UP TAB Key 9 flags 256 rpt 1
          UP DEL Key 127 flags 256 rpt 1
          UP BACKSPACE Key 63272 flags 8388864 rpt 1
          DN ESCAPE Key 27 flags 0 rpt 1
          UP ESCAPE Key 27 flags 256 rpt 1

          SEQUENCE 4 of 5 [Numbers Keys (Numpad not common)]
          UP 1 Key 49 flags 256 rpt 1
          UP 2 Key 50 flags 256 rpt 1
          UP 3 Key 51 flags 256 rpt 1
          UP 4 Key 52 flags 256 rpt 1
          UP 5 Key 53 flags 256 rpt 1
          UP 6 Key 54 flags 256 rpt 1
          UP 7 Key 55 flags 256 rpt 1
          UP 8 Key 56 flags 256 rpt 1
          UP 9 Key 57 flags 256 rpt 1
          UP 0 Key 48 flags 256 rpt 1
          UP - Key 45 flags 256 rpt 1
          UP = Key 61 flags 256 rpt 1
          UP / Key 47 flags 256 rpt 1
          UP [ Key 91 flags 256 rpt 1
          UP ] Key 93 flags 256 rpt 1

          SEQUENCE 5 of 5 [Alpha keys (do not use Shift)]
          UP s Key 115 flags 256 rpt 1
          UP c Key 99 flags 256 rpt 1
          UP r Key 114 flags 256 rpt 1

          complements of a Fredo script c.2007 with a slight update.
          john

          Based on this, it looks like maybe it would work if you rename onKeyDown to onKeyUp, as it looks like the up is reported for TAB as key 9. Could you try that and let me know if it works?

          Thanks
          Steve

          1 Reply Last reply Reply Quote 0
          • D Offline
            driven
            last edited by

            > load('/Library/Application Support/Google SketchUp 8/SketchUp/plugins/draw_angle_dim.rb')
            true
            > @cursor
            nil
            > DrawAngleDimTool;;IN_CURSOR
            50013
            > DrawAngleDimTool;;OUT_CURSOR
            50014
            

            No cursor, no outside dims
            Pressing Tab just strobes the 'Input Box'

            john

            learn from the mistakes of others, you may not live long enough to make them all yourself...

            1 Reply Last reply Reply Quote 0
            • S Offline
              slbaumgartner
              last edited by

              @driven said:

              > load('/Library/Application Support/Google SketchUp 8/SketchUp/plugins/draw_angle_dim.rb')
              > true
              > > @cursor
              > nil
              > > DrawAngleDimTool;;IN_CURSOR
              > 50013
              > > DrawAngleDimTool;;OUT_CURSOR
              > 50014
              

              No cursor, no outside dims
              Pressing Tab just strobes the 'Input Box'

              john

              The responses to IN_CURSOR and OUT_CURSOR say that the cursors were created, though I'm not sure that means they found the image files. The response of nil to @cursor indicates nothing, since @cursor is an instance variable not a global. So, the problem still seems to be that the keypress is not toggling the mode to outside. Please try the attached, which looks for the up key event (will not trigger until tab key is released) and let me know if it works.


              draw_angle_dim.rb

              1 Reply Last reply Reply Quote 0
              • D Offline
                driven
                last edited by

                Hi,

                the path is fine, I just didn't have that in the log I posted, so it's included here.

                > load('/Library/Application Support/Google SketchUp 8/SketchUp/plugins/draw_angle_dim.rb')
                true
                > DrawAngleDimTool;;IN_ICON
                /Library/Application Support/Google SketchUp 8/SketchUp/plugins/draw_angle_dim/interior.png
                > puts "cursor File Exists? " + File.exists?(DrawAngleDimTool;;IN_ICON).to_s
                cursor File Exists? true
                nil
                

                with the latest file the Dim Angle itself is switching, but still no custom cursors.

                because Tab also toggels focus on the Inputbox, I changed that to use VK_ALT || 524288
                which is more in line with the standard tools and avoids the focus toggling issue.

                so the tool functions fully now, just no curors...
                john

                learn from the mistakes of others, you may not live long enough to make them all yourself...

                1 Reply Last reply Reply Quote 0
                • S Offline
                  slbaumgartner
                  last edited by

                  I have to admit that I am lost and without a Mac I don't know what else to suggest...sorry! If anyone else can figure this out, I'd love to hear.

                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    Michaelv
                    last edited by

                    Same as John,

                    Substituted VK_ALT on line 350 for == 9 so that option key toggles.
                    I have no cursor, but I'm working on it.
                    Also I will include a text to outline what key toggles.

                    Otherwise functions great.

                    Thanks

                    1 Reply Last reply Reply Quote 0
                    • S Offline
                      slbaumgartner
                      last edited by

                      The mode key seems to be a no-win situation! Maybe I should think of a different mechanism to change the mode. On a PC the TAB key is unassigned, but the VK_ALT activates the File menu! On a Mac, the TAB key is preassigned, but not VK_ALT! By the way, when I try to use VK_ALT on the PC, the cursor alternately disappears and reappears as I press the key! Something similar may be what is happening on the Mac.

                      1 Reply Last reply Reply Quote 0
                      • D Offline
                        driven
                        last edited by

                        @Michaelv,

                        the key generator is on the forum, but if you want a slightly updated version, that's easy to add to... I'll PM it to you.

                        BTW. if you use either one VK_ALT or 524288 it toggles from the Alt key, but if you use the ruby either/or VK_ALT || 524288 then not only does ALT toggle, so does RETURN!! which shows as 13 when I ran the test. SU key mapping needs checking.

                        as for the icons, they work on toolbars, so the file and path are ok (but I made new ones as well), their just not being seen by ruby,

                        I'm having a similar problem in another script where only the 'before' half an if not block being seen. Is this a Ruby 1.8.5 (mac SU ruby) issue?

                        john

                        learn from the mistakes of others, you may not live long enough to make them all yourself...

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          driven
                          last edited by

                          @slbaumgartner said:

                          the VK_ALT activates the File menu!

                          Have you set that as a system shortcut?... do you have assistive devices activated?

                          Does Alt open the File Menu when you use 'move' or 'scale' tools?

                          are your Plugins still all on? [I turn mine off to test new rubies on there own]

                          john

                          EDIT: did you try **524288** that work here as well.

                          learn from the mistakes of others, you may not live long enough to make them all yourself...

                          1 Reply Last reply Reply Quote 0
                          • S Offline
                            slbaumgartner
                            last edited by

                            @driven said:

                            @slbaumgartner said:

                            the VK_ALT activates the File menu!

                            Have you set that as a system shortcut?... do you have assistive devices activated?

                            Does Alt open the File Menu when you use 'move' or 'scale' tools?

                            are your Plugins still all on? [I turn mine off to test new rubies on there own]

                            john

                            EDIT: did you try **524288** that work here as well.

                            Alt key opening a menu is a standard PC shortcut - I didn't do anything special, no assistive devices. Interestingly, ALT seems to affect just about every tool except move, on which it does nothing that I can see! And with the Paint Bucket it displays a dropper icon to let you select a Material to match so long as you hold the ALT key depressed. Goes back to the paint bucket when released. You gotta love consistency and portability!

                            I didn't turn off other plugins, but on my PC the tool functions ok so I didn't think that would add anything to this mix.

                            Regarding the cursors, is there any chance that the problem is with png files? Do you have other tools with custom cursors from png files that work?

                            1 Reply Last reply Reply Quote 0
                            • D Offline
                              driven
                              last edited by

                              @slbaumgartner said:

                              Alt key opening a menu is a standard PC shortcut -

                              thought you were taking mac...

                              @unknownuser said:

                              Interestingly, ALT seems to affect just about every tool except move,
                              it should 'move' a copy [with an added + symbol]

                              @unknownuser said:

                              You gotta love consistency and portability!
                              ohhh yerrr

                              @unknownuser said:

                              Regarding the cursors, is there any chance that the problem is with png files? Do you have other tools with custom cursors from png files that work?

                              All of SU's cursors are png's so that's not the problem.

                              I want them to work now because I made new ones.... damm
                              didn't really need the cursor before.

                              john

                              learn from the mistakes of others, you may not live long enough to make them all yourself...

                              1 Reply Last reply Reply Quote 0
                              • S Offline
                                slbaumgartner
                                last edited by

                                @driven said:

                                @slbaumgartner said:

                                Alt key opening a menu is a standard PC shortcut -

                                thought you were taking mac...

                                @unknownuser said:

                                Interestingly, ALT seems to affect just about every tool except move,
                                it should 'move' a copy [with an added + symbol]

                                @unknownuser said:

                                You gotta love consistency and portability!
                                ohhh yerrr

                                @unknownuser said:

                                Regarding the cursors, is there any chance that the problem is with png files? Do you have other tools with custom cursors from png files that work?

                                All of SU's cursors are png's so that's not the problem.

                                I want them to work now because I made new ones.... damm
                                didn't really need the cursor before.

                                john

                                I'm on a PC but trying to help get this tool to work for people with Macs...
                                On a PC, the CTRL key toggles the move tool to copy, not ALT!
                                Re the cursors, do you have any examples of a tool with custom cursors that do work? I'd like to look at the Ruby to see what it does. I thought I was following the documented code...

                                steve

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  driven
                                  last edited by

                                  some progress...

                                  if I use either of these changes, I get the inside cursor and a one-off toggle.

                                    def onKeyDown(key, rpt, flags, view)
                                        if key ==  VK_ALT 
                                      #  @inside=nil         # uncomment this with the original order below i.e. true = false
                                        !@inside = @inside     # or switch it to false = true     orig.  @inside = !@inside 
                                         if @inside
                                          @cursor = IN_CURSOR
                                          else
                                          @cursor = OUT_CURSOR
                                        end
                                  

                                  not sure what to look for next... john

                                  learn from the mistakes of others, you may not live long enough to make them all yourself...

                                  1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    driven
                                    last edited by

                                    Chris Fulmars 'shapebender.rb' come easily to mind, in the Plugin section here.

                                    I got one step more with trying versions of this, I can switch from inside to out logos once...

                                    could you split this into 2 separate actions, holding down the Alt is common for SU tools, as apposed to toggling...

                                          if key ==  VK_ALT 
                                           @inside = false && @cursor = OUT_CURSOR
                                            else
                                            if key ==  !VK_ALT 
                                             @inside = true
                                             @cursor = IN_CURSOR
                                          end
                                    

                                    learn from the mistakes of others, you may not live long enough to make them all yourself...

                                    1 Reply Last reply Reply Quote 0
                                    • D Offline
                                      driven
                                      last edited by

                                      here's some I made earlier.
                                      interior.pngexterior.png

                                      so we have to get them working.... john

                                      learn from the mistakes of others, you may not live long enough to make them all yourself...

                                      1 Reply Last reply Reply Quote 0
                                      • D Offline
                                        driven
                                        last edited by

                                        got it...... could be tidier but it's working

                                          def onKeyDown(key, rpt, flags, view)
                                              if key ==  VK_ALT 
                                               @inside = false
                                               @cursor = nil
                                               @cursor = OUT_CURSOR
                                             # end
                                              
                                              # redraw in new mode if appropriate
                                              if @drawn
                                                # undo the previous operation before redrawing
                                                # this avoids buildup of unneeded operations on
                                                # the undo stack        
                                                Sketchup.undo if @state==0
                                                draw_angle_dim
                                                else
                                                # make sure the cursor change takes effect immediately
                                                # without this it doesn't change until the user moves
                                                # the mouse
                                                UI.set_cursor(@cursor)
                                              end
                                            end
                                          end
                                          
                                        def onKeyUp(key, rpt, flags, view)
                                              if key ==  VK_ALT 
                                               @inside = true;
                                               @cursor = nil
                                               @cursor = IN_CURSOR
                                               end
                                        end
                                        

                                        learn from the mistakes of others, you may not live long enough to make them all yourself...

                                        1 Reply Last reply Reply Quote 0
                                        • S Offline
                                          slbaumgartner
                                          last edited by

                                          How strange! The key feature seems to be the assignment of nil before assignment of the new cursor. I can't imagine why that would be necessary, but if it works...

                                          1 Reply Last reply Reply Quote 0
                                          • D Offline
                                            driven
                                            last edited by

                                            This is something I was looking at today for the other ruby issue, and I just thought I'd play around with the assumption that
                                            having Booleans and conditionals mixed together Can cause issues like false = false ==> true
                                            http://stackoverflow.com/questions/3783483/odd-ruby-if-statement-question

                                            john

                                            learn from the mistakes of others, you may not live long enough to make them all yourself...

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 1 / 4
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement