ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info
  • [Code] Material picker

    14
    0 Votes
    14 Posts
    2k Views
    sdmitchS
    @dan rathbun said: I looked in my 2016 Plugins folder and found what I had working last June 2016. It seems to work for me on SU2016. Thanks Dan. I have come up with a different solution to what I was attempting and it works with all versions.
  • Ruby saveas .XLSM, format code

    5
    0 Votes
    5 Posts
    2k Views
    Dan RathbunD
    I did a search in the MS Excel Dev forum on "+SaveAs +xlsm +UndefinedConversionError", and got 947 hits. (You can browse those yourself.) https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=exceldev%26amp;filter=alltypes%26amp;brandIgnore=True%26amp;sort=relevancedesc%26amp;filter=alltypes%26amp;searchTerm=%2BSaveAs+%2Bxlsm+%2BUndefinedConversionError At this point I would double-check that any macros in the Workbook do not have errors, that could give the file export routine issues.
  • Get a list of File names on the input box

    9
    0 Votes
    9 Posts
    715 Views
    Dan RathbunD
    OH! I see your booboo: inputbox always returns an array (except when the user cancels it returns false. So always check the result boolean-wise.) input = UI.inputbox prompts, defaults,list, "File Name" return unless input j = input[0]
  • Coping with SU2017 entity handling changes

    9
    0 Votes
    9 Posts
    735 Views
    Dan RathbunD
    @sdmitch said: I have tried using .clone and .dup but neither remedy the problem. Any guidance will be greatly appreciated. These two methods are Ruby Core functions that rely upon specific Ruby housekeeping methods to do the copying. The SketchUp API has not set up these "housekeeping" methods, so doing this will not work. They have only in a few places "mimicked" a clone method (mostly in the Geom classes,) and a partial cloning in Group#copy. (It does not copy over attributes and other parameters.)
  • No Implicit Conversion fron String in Messagebox

    7
    0 Votes
    7 Posts
    755 Views
    TIGT
    ALL of SketchUp's internal database lengths are stored in inches, irrespective of the units you use. In the API there are the numeric and length classes. So if you have an input value that defaults to a 'length' - e.g. 9.feet, or any other units format - then it is always 'stored' and 'processed' in inches [9*12=108"]. However, this is flexible as the user can input in any units provided they use a units suffix: however how it's displayed in the input-box depends on the current model info > units settings... Otherwise you need to default to a string value and then reverse-engineer that - e.g. h="9" [read from the input[1]] which you then reset for later use as a parallel value hft=h.to_f.feet So the input is always taken as a decimal-feet value, but then used in inches internally...
  • Fresh active_view when click on menu item

    2
    0 Votes
    2 Posts
    498 Views
    TIGT
    Try adding: Sketchup.active_model.active_view.invalidate ???
  • Delete a group in ruby

    2
    0 Votes
    2 Posts
    739 Views
    TIGT
    Assuming you have no more need of the group or its contents use: wandgroep.erase! See here: http://ruby.sketchup.com/Sketchup/Drawingelement.html#erase%21-instance_method BUT if you want to explode it and put its contents into the group's previous context, use: wandgroep.explode See here: http://ruby.sketchup.com/Sketchup/Group.html#explode-instance_method
  • Plugin debugger workflow

    3
    0 Votes
    3 Posts
    580 Views
    W
    I tried by change name of load_plugin.rb to z_load_plugin.rb but it seems not solve my problem
  • User ending a program

    6
    0 Votes
    6 Posts
    2k Views
    K
    The program I used as a model when starting used that method. However as I added more functions it became almost impossible to find how to get out to the end of the mouse click down def. Keith
  • Count excel rows

    3
    0 Votes
    3 Posts
    792 Views
    Dan RathbunD
    More Specifically: Would the Range.Find method help? Range.Find method
  • Trouble finding faces

    2
    0 Votes
    2 Posts
    494 Views
    sdmitchS
    @davesexcel said: I am using an If else statement, I got it to work earlier in the code, but now I am having an issue grouping a new entity and finding it's face, it has to do with adding an arc and not adding an arc. It seems to me that you define 'edg' twice if l=="Yes" but don't define it at all if l=='No'. #ROUND Nose Yes/No<<<<<< if l=="Yes" puts "top hanger round nose" #add arc<<<<<< edg = ent5.add_line [0,b+3,b-c], [0,b+3-0.5,b-c] ;vrt1=edg.end ent5.add_arc [0,b+3-0.5,b-(c/2)],[0,0,b+3-1],[-1,0,0],-c/2.0,0,180.degrees,12 edg = ent5.add_line [0,b+3+h,b], [0,b+2.5,b];vrt2=edg.start #end Add Arc<<<<< else puts "top hanger square nose" edg=ent5.add_line [0,b+3,b-c], [0,b+3-1,b-c]#<<<< edg ent5.add_line [0,b+3-1,b-c], [0,b+3-1,b] ent5.add_line [0,b+3-1,b] , [0,b+3+h,b] end #add the face to the entities in the model edg.find_faces; face=edg.faces[0] face.pushpull wdth [image: 9RTt_Stairs.gif]
  • Geometric Calculation with ruby

    6
    0 Votes
    6 Posts
    674 Views
    thomthomT
    Using the Geom methods, and the methods on Geom::Point3d, Geom::Vector3d as much as possible is beneficial for performance. The SketchUp API methods are implemented in C++ and will be faster than pure Ruby code.
  • Save and recall parameters of an object created with ruby

    3
    0 Votes
    3 Posts
    601 Views
    Dan RathbunD
    You should have a look at the SketchUp Team's Shapes and Window Maker example extensions. They (and a few others) use a library class called Parametric that handles creating a inputbox of parameters and saves them into an attribute dictionary attached to the (group or component) object. Why reinvent the wheel?
  • Edge observer

    2
    0 Votes
    2 Posts
    564 Views
    inteloideI
    Well, a start of explaination and solution, here : http://forums.sketchup.com/t/edge-change-observer/8184 : Put an observer on edge.start and edge.end Thanks TT !
  • Generating PDF and MS Excel Documents within SketchUp API

    2
    0 Votes
    2 Posts
    984 Views
    thomthomT
    Not sure what is available in pure Ruby, but if you create Ruby C Extensions it open up a whole lot more - as you can make use of C/C++ libraries. It's often a lot more libraries available for C/C++ when you want to go beyond the standard Ruby API.
  • Is it follow_me or followme ?

    6
    0 Votes
    6 Posts
    1k Views
    thomthomT
    As TIG said, add_line was a deviance from what the norm. I think it got named like that because in the UI you have the "Line Tool". But in the API this is an unfortunate inconsistency. And as Dan mentioned, please report documentation issues in the GitHub repo. I queued up some cleanup to the followme method: [image: drRp_2016-12-21_13h57_14.png]
  • What are the most suitable tools for coding plugins for SU?

    2
    0 Votes
    2 Posts
    540 Views
    thomthomT
    I use a mixture of Visual Studio Code/Sublime Text and RubyMine. I use VSCode/Sublime etc for quick scripts and edits. But for larger projects I use RubyMine as the IDE provide better code insight. It's Ruby debugger tools is also very nice - saving you from "puts debugging". We just uploaded some guide to setting up RubyMine: https://github.com/SketchUp/sketchup-ruby-api-tutorials/wiki/RubyMine%20Overview
  • How do I correctly set the Length formulas in a DC via Ruby

    8
    0 Votes
    8 Posts
    1k Views
    JHJ
    Whow! This seems to work, Now I just need to take care of the units. I will post a reply if I get the Script in a usable condition. It would be nice if You could take a look at it then. But I don't know when I'll get enough time for this. Maybe tomorrow, I got 2go and make Dinner, my Girlfriend already has the knife in her hand and I don't want her to use it on me. EDIT: I kept using the initial approach in setting the Lenx to _lenx_formula since the other way it left me with an unscalable Component, or at best with a scalable component which doesnt show the correct measurements as the corresponding values in the DC Dialog. But Hey, Thank You anyway, maybe someone else has use for the Code for another useful Plugin
  • Assigning &quot;Wood OSB&quot; to face with API

    12
    0 Votes
    12 Posts
    6k Views
    TIGT
    If any file is missing at the moment that there is an attempt to 'use' it - e.g. a texture image, a SKM material, or a SKP component - then the process will fail. However, once a texture image is used for a material for a model's material, or a SKM material is loaded into a model [v2017], or a SKP component is loaded into a model, then that data is bound into the model and its connectivity to the external reference is no longer needed - so if the file is subsequently deleted nothing bad happens. Unless a user goes into your extension's subfolder and removes [or renames] images, or SKMs or components, before the load attempt, then it will always [re]load. If you rely on 'shipped Materials', then if they are there they could load [v2017], but of course if they are removed by the user beforehand, it will fail...
  • Dynamic components for folding table base

    6
    0 Votes
    6 Posts
    901 Views
    E
    Thanks jim!!! Ill confess that I'm far from using math formulas like that but it gives me a good reference on how it works I dont know what you're talking about, it looks perfect to me! Thanks again! Ed

Advertisement