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

    Simple Extension for Mac

    Scheduled Pinned Locked Moved Developers' Forum
    25 Posts 6 Posters 1.1k Views 6 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

      @al hart said:

      Has anyone interfaced to C routines from the Mac, and if so could you share a sample of some sort to get us started...

      404 — Bitbucket

      favicon

      (bitbucket.org)

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

      1 Reply Last reply Reply Quote 0
      • Al HartA Offline
        Al Hart
        last edited by

        @thomthom said:

        404 — Bitbucket

        favicon

        (bitbucket.org)

        Thanks, ThomThom, that looks like what I am looking for.

        I see you had posted it before, but I didn't know what it was at the time.

        Al Hart

        http:wiki.renderplus.comimageseefRender_plus_colored30x30%29.PNG
        IRender nXt from Render Plus

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

          Mind you, I recently found http://rubyinstaller.org/downloads/ which I think is a better choice for Windows than the Visual Studio solution I'd used.

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

          1 Reply Last reply Reply Quote 0
          • O Offline
            olilej
            last edited by

            I've been playing around with C Extension recently and I would like to know how if there is an equivalent of is_a? ruby function in C level.

            I found rb_obj_is_instance_of but it seems to be only meant for native ruby types.

            1 Reply Last reply Reply Quote 0
            • Al HartA Offline
              Al Hart
              last edited by

              [Ignore this for a minute - I need to add a second parameter for what the value to pass to is_a?]

              You can execute the equivalent of any ruby function using rb_intern() and rb_funcall()

              Try this:

              
              VALUE fid = rb_intern("is_a?");
              VALUE vret = rb_funcall(klass, fid, 0);
              
              

              Al Hart

              http:wiki.renderplus.comimageseefRender_plus_colored30x30%29.PNG
              IRender nXt from Render Plus

              1 Reply Last reply Reply Quote 0
              • Al HartA Offline
                Al Hart
                last edited by

                Here is a better example, equivalent to

                Sketchup.is_a?(Module)

                
                
                VALUE Sketchup = rb_path2class("Sketchup");
                VALUE Module= rb_intern("Module");
                VALUE is_a = rb_intern("is_a?");
                VALUE result = rb_funcall(Sketchup, is_a, Module, 0);
                
                
                

                Al Hart

                http:wiki.renderplus.comimageseefRender_plus_colored30x30%29.PNG
                IRender nXt from Render Plus

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

                  @olilej said:

                  I've been playing around with C Extension recently and I would like to know how if there is an equivalent of is_a? ruby function in C level.

                  If you have the CHM... you can click on the method description, and the C source will popup:
                  (Also works for online version, but the source link must be clicked directly, and is only visible when the mouse is hovering over the method description.)

                  Object_kind_of.png

                  💭

                  I'm not here much anymore.

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

                    So it looks like there are some macros defined in C, to make life easier ... CLASS_OF(), RCLASS_SUPER(), etc.

                    I'm not here much anymore.

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

                      • Pragmatic Programmer: Extending Ruby 1.9

                      I'm not here much anymore.

                      1 Reply Last reply Reply Quote 0
                      • O Offline
                        olilej
                        last edited by

                        Great, my goal is to make sure I'm dealing with a Entity in order to access its attributes.

                        Here is the code I've come up with.

                        VALUE result = rb_obj_is_kind_of(obj, rb_path2class("Sketchup;;Entity"));
                        if (Qtrue == result){
                        	VALUE rval = rb_funcall(obj, rb_intern("get_attribute"), 2, rb_str_new2("dynamic_attributes"), rb_str_new2("..."));
                        	...
                        }
                        
                        1 Reply Last reply Reply Quote 0
                        • Dan RathbunD Offline
                          Dan Rathbun
                          last edited by

                          Only Sketchup::ComponentDefinition and Sketchup::ComponentInstance will have dictionaries with that special name.

                          I'm not here much anymore.

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

                          Advertisement