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

    New API doc - typos and questions

    Scheduled Pinned Locked Moved Developers' Forum
    370 Posts 35 Posters 256.4k Views 35 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.
    • thomthomT Offline
      thomthom
      last edited by

      Sketchup.read_default
      http://code.google.com/apis/sketchup/docs/ourdoc/sketchup.html#read_default

      @unknownuser said:

      True if successful, false if unsuccessful.

      Surely it would return the value being accessed?

      Thomas Thomassen β€” SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • Dan RathbunD Offline
        Dan Rathbun
        last edited by

        @thomthom said:

        Sketchup.read_default
        http://code.google.com/apis/sketchup/docs/ourdoc/sketchup.html#read_default

        True if successful, false if unsuccessful.
        Surely it would return the value being accessed?

        Verified!
        Sketchup.read_default('Preferences','SnapAngle') returns 15.0
        [My current setting; which happens in this case to be class Float.]

        The API doc is vague about the default argument. The definition should read (as things work now):
        "(optional) A value to return, if the variable is not found or empty."
        [The way it is written, I read it as being a value to write into the registry.]

        The lack of error checking in this method, can easily create false Resistry Keys.
        Example: if you misspell the key (section on the Mac,)... ie:
        [note misspelled 'Preferences']:
        Sketchup.read_default('Prefer ances','SnapAngle')
        ... the method creates a new 'Preferances' key, with nothing under this new WORTHLESS key. (No Valuename, no value.) The method then just returns nil. [On Win32, we must manually use the Registry Editor to get rid of this junk!]

        If the key is correct, but the Valuename is wrong (or does not exist,) the method just returns nil, [again,] or the default ReturnValue.

        If the the Key is correct, AND the Valuname is correct, but the Value is empty, the method returns nil, [once again,] or the default ReturnValue.

        So we have 3 situations in which the method can return nil, and no way thru the SU API to tell what the situation is. [yes we can use one of the full ruby Win32 Registry modules, and I may begin doing this.]

        A fourth situation, is if the value is an empty string, (ie '' or "" are stored in the registry value the method just returns the empty string (and NOT nil.) The return class of the method is string in this case.
        This can happen if you use Sketchup.write_default( key, valuename, ""), but its not necessary as each value in the registry has a type, and strings don't need delimiters.
        We should use instead Sketchup.write_default( key, valuename, nil) to clear a string value in the registry.

        I would propose a change to this method...

        (1 as is.) IF everything exists, it works OK, and the value is returned.

        (2 as is.) If (the Key exists, AND the Valuename exists,) AND the value is empty, then the method should return NIL without a default Return Value (3rd parameter,) OR the 3rd parameter if given.

        (3) If the EITHER the Key OR the Valuename do NOT exist, then the method should raise an exception similar to a hash index error, viz:
        Error in myprog.rb:22:in `Sketchup.read_default': key not found (IndexError) ...

        Then (reference methods for Hash class):
        CREATEseveral new boolean methods similar to Hash.has_key?, Hash.has_value? and Hash.empty? so the programmer can decide in their RESCUE block what action to perform;

        I'd envision these boolean methods to be named similar to:
        Sketchup.default_empty?
        Sketchup.default_has_key? (perhaps with a Mac alias .default_has_section? for plist files)
        Sketchup.default_has_valuename? (perhaps a Mac alias .default_has_variable? for plist files)

        .
        Thoughts?

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • Dan RathbunD Offline
          Dan Rathbun
          last edited by

          Face.mesh
          http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/face.html#mesh

          @unknownuser said:

          Valid flags are:

          [condensed: 0, 1, 2, 4 ]

          Add these numbers together to combine flags. A value of **5** will include all flags, for example.

          I seem to get 7 (as shown in the example,) when I add all the flags.
          πŸ€“

          I'm not here much anymore.

          1 Reply Last reply Reply Quote 0
          • thomthomT Offline
            thomthom
            last edited by

            Some of the methods to access toolbars needs clarification.

            UI.set_toolbar_visible UI.toolbar_names UI.toolbar_visible?
            These only works on the native Sketchup toolbars. And UI.toolbar_names doesn't list all native toolbars.

            UI.toolbar is used to return Ruby toolbars. But (!) it will never fail if you try to refer to a non-existent toolbar - it will create a new one. Have not found a way to detect if a Ruby toolbar exists or not.

            http://forums.sketchucation.com/viewtopic.php?f=180&t=21156

            Thomas Thomassen β€” SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              View.draw2d
              http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/view.html#draw2d

              In order to draw lines with an odd number thicksness without looking "fuzzy" - then you need to specify .5 to all numbers. This is because the points makes up the centre line so the points for odd numbered thickness must then lie in the middle of the pixel.

              Thomas Thomassen β€” SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • thomthomT Offline
                thomthom
                last edited by

                UI.inputbox
                http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/ui.html#inputbox

                It should be noted that the default value types you pass to the input box controls the return types.
                http://forums.sketchucation.com/viewtopic.php?f=180&t=23288&p=197300#p197298

                Thomas Thomassen β€” SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  http://code.google.com/intl/nb/apis/sketchup/docs/releases.html
                  The release notes says:

                  @unknownuser said:

                  Cleaner, hash-based syntax for initializing

                  But there's nowhere any example of what the hash should look like, keys etc.

                  Thomas Thomassen β€” SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jim
                    last edited by

                    Thom, you are right it needs to be documented.

                    This is from the webtextures_loader.rb. The constants are defined a little earlier in the code, but this gives some idea about the keys:

                    
                     # Create our dialog.
                        keys = {
                          ;dialog_title => title,
                          ;scrollable => false,
                          ;preferences_key => WT_DIALOG_REGISTRY_KEY,
                          ;height => WT_DIALOG_HEIGHT,
                          ;width => WT_DIALOG_WIDTH,
                          ;left => WT_DIALOG_X,
                          ;top => WT_DIALOG_Y,
                          ;resizable => true,
                          ;mac_only_use_nswindow => true}
                        @dialog = UI;;WebDialog.new(keys)
                       
                    

                    Hi

                    1 Reply Last reply Reply Quote 0
                    • thomthomT Offline
                      thomthom
                      last edited by

                      Thanks Jim. Would probably be able to guess most - but...

                      What's unexpected there is :mac_only_use_nswindow - Same as WebDialog.navigation_buttons_enabled?

                      Thomas Thomassen β€” SketchUp Monkey & Coding addict
                      List of my plugins and link to the CookieWare fund

                      1 Reply Last reply Reply Quote 0
                      • Dan RathbunD Offline
                        Dan Rathbun
                        last edited by

                        @thomthom said:

                        What's unexpected there is :mac_only_use_nswindow - Same as WebDialog.navigation_buttons_enabled?

                        Isn't 'nswindow' a base Cocoa (or Carbon) window class?

                        I'm not here much anymore.

                        1 Reply Last reply Reply Quote 0
                        • thomthomT Offline
                          thomthom
                          last edited by

                          @dan rathbun said:

                          @thomthom said:

                          What's unexpected there is :mac_only_use_nswindow - Same as WebDialog.navigation_buttons_enabled?

                          Isn't 'nswindow' a base Cocoa (or Carbon) window class?

                          hm... I Googled 'mac nswindow' seems that you might be onto something.
                          http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html

                          Does it give any visible difference when it's set to true as oppose to false?

                          Thomas Thomassen β€” SketchUp Monkey & Coding addict
                          List of my plugins and link to the CookieWare fund

                          1 Reply Last reply Reply Quote 0
                          • Dan RathbunD Offline
                            Dan Rathbun
                            last edited by

                            @thomthom said:

                            Does it give any visible difference when it's set to true as oppose to false?

                            I don't know. I don't have an Apple machine. [..wish I could install OSX of my 686 clone for devlopment. XCode looks like a neat IDE.] There are so many attributes, methods, etc. there it's hard to guess what the SU API is refering to.

                            I'm not here much anymore.

                            1 Reply Last reply Reply Quote 0
                            • thomthomT Offline
                              thomthom
                              last edited by

                              Edge.reversed_in?
                              http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/edge.html#reversed_in?
                              The reversed_in? method is used to determine if the EdgeUse object is traversed in the corresponding direction as its corresponding edge.

                              Apart from the EdgeUse typo - what does the method really do. I don't understand at all from the description what it does.

                              Thomas Thomassen β€” SketchUp Monkey & Coding addict
                              List of my plugins and link to the CookieWare fund

                              1 Reply Last reply Reply Quote 0
                              • TIGT Offline
                                TIG Moderator
                                last edited by

                                @thomthom said:

                                Edge.reversed_in?
                                http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/edge.html#reversed_in?
                                The reversed_in? method is used to determine if the EdgeUse object is traversed in the corresponding direction as its corresponding edge.

                                Apart from the EdgeUse typo - what does the method really do. I don't understand at all from the description what it does.

                                I use it in my 'orient faces' method - although I agree that it all seems pretty arcane and badly explained. If an edge is reversed in a face it is going contrary to that face's logical loop direction. If you test an edge belonging to a selected face and that edge has that face face plus another one that both return as being either reversed or not-reversed then you know that this other face has the same 'orientation' as the selected face: if the other face has the opposite 'reversed-ness' to the selected face then it needs to be flipped over (reversed) so it orients the same way as the selected face...

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • thomthomT Offline
                                  thomthom
                                  last edited by

                                  There's a logical orientation of the loops?

                                  Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                  List of my plugins and link to the CookieWare fund

                                  1 Reply Last reply Reply Quote 0
                                  • TIGT Offline
                                    TIG Moderator
                                    last edited by

                                    @thomthom said:

                                    There's a logical orientation of the loops?

                                    If you get a set of vertices for a face's loop it's always listed as an ordered array: it will be rotating 'counter-clockwise' to the face's normal if it's an external loop, or 'clockwise' if it's an internal loop... If an edge's start/end vertices break this 'rule' I think it's said to be 'reversed in the face' ? That is the order of the edge's vertices don't follow the loops 'handed-ness' so are flagged thus...

                                    TIG

                                    1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      jarl
                                      last edited by

                                      @unknownuser said:

                                      Your help in finding typos/missing details are very welcome!

                                      On http://code.google.com/intl/da/apis/sketchup/docs/ourdoc/point3d.html#+ it says that the argument is a Point3d, but it should say a Vector3d.

                                      Jarl

                                      1 Reply Last reply Reply Quote 0
                                      • thomthomT Offline
                                        thomthom
                                        last edited by

                                        Geom;;Point3d.new(10,10,10) + Geom;;Point3d.new(20,20,20)
                                        Error; #<ArgumentError; (eval);261;in `+'; Cannot convert argument to Sketchup;;Vector3d>
                                        (eval);261
                                        

                                        Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                        List of my plugins and link to the CookieWare fund

                                        1 Reply Last reply Reply Quote 0
                                        • TIGT Offline
                                          TIG Moderator
                                          last edited by

                                          @jarl said:

                                          @unknownuser said:

                                          Your help in finding typos/missing details are very welcome!

                                          On http://code.google.com/intl/da/apis/sketchup/docs/ourdoc/point3d.html#+ it says that the argument is a Point3d, but it should say a Vector3d.

                                          Jarl

                                          If you add two pointstogether it returns a vector (or another point if it's taken as an array) ?

                                          TIG

                                          1 Reply Last reply Reply Quote 0
                                          • thomthomT Offline
                                            thomthom
                                            last edited by

                                            Color
                                            http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/color.html

                                            When creating a Color object you can specify an alpha value. Not mentioned in the examples.

                                            Color.new
                                            http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/color.html#new
                                            The way the arguments are presented now it looks like they are all equal, but it's actually wither RGB(A) values or a String. It also takes Hex, array with Integers or Floats.

                                            Oddly enough, you can do: Sketchup::Color.new(128) and get a Red-ish color. But not Sketchup::Color.new(128, 255) - where it will throw an error saying at least 3 values are required. So if you can specify 1, 3 or 4 values for the RGBA combination.

                                            Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                            List of my plugins and link to the CookieWare fund

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 8
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 18
                                            • 19
                                            • 10 / 19
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement