ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info
  • Get the coordinates of the corners of the "blue box"

    7
    0 Votes
    7 Posts
    314 Views
    thomthomT
    Get's the ComponentDefinition of the ComponentInstance or Group definition = self.get_definition(entity) Get's the bounds of the definition - note that if you get the bounds of the instance it will be a Boundingbox aligned to the model axis - not the instance axis. Which is why you need to get the definition bounds. bb = definition.bounds Now transform the points of the definition boundingbox with the transformation of the instance. pts = self.bound_points(bb).map { |pt| pt.transform( entity.transformation ) In other words, get the boundingbox of the definition and apply the instance transformation to the coordinates of that boundingbox.
  • Control over camera lens shift ?

    15
    0 Votes
    15 Posts
    4k Views
    thomthomT
    Unfortunately there is no control over the amount of lens shift in SketchUp. There is currently just 2pt perspective - as mentioned, not even that can be controlled reliably.
  • Help Needed - Using Ruby to Project a Vertical Face.

    9
    0 Votes
    9 Posts
    363 Views
    E
    Thanks sdmitch - The Updated Code Snippet does everything I wanted to achieve and it is now being used by members of the IMVU-SketchUp Community to "Antagonize/Annoy" some of those unfortunate people who mistakenly think only AutoDesk can produce 3D Model Making Software.
  • How to debug?

    46
    0 Votes
    46 Posts
    78k Views
    liquid98L
    [encourage] [/encourage]
  • Ruby Challenge

    7
    0 Votes
    7 Posts
    648 Views
    J
    @unknownuser said: @Jim I must say that I am bluffed with the speed of Ruby, thinking that all the lines are interpreted and that I use many Array operations which have a lot of code behind them.[/qoute] My thought is that it is fast because there are no objects being created. The arrays being manipulated contain only pointers to integers which there is only a single instance of in Ruby. @unknownuser said: PS: another challenge would be to create a Sudoku solution workbench in Ruby! Yes, that's a good one; and i had a similar one in mind called the "100 squares" puzzle.
  • [Code] custom file_loaded() and file_loaded?() v2.0.0

    11
    0 Votes
    11 Posts
    6k Views
    Dan RathbunD
    OK.. so, for those you who have read the thread.. looked at the template, and scratch your head and wonder why all the complexity to control a private array ?? Answer.. it's just an example, of a private library mixin module. In practice, you can rename the mixin module to whatever you like... and insert whatever proprietary functionality you wish to include in only YOUR plugins (ie, methods in the mixin sections, other class variables and constants, etc.) whilst not allowing some other "hack" to use those features in their plugins.
  • Import DWG files

    5
    0 Votes
    5 Posts
    269 Views
    thomthomT
    @arcad-uk said: So why not grab a copy of the earlier version while you can... http://support.google.com/sketchup/bin/answer.py?hl=en&answer=60107 import through the earlier version then bring it into v8? 1+ - I got SU7 and the importer plugin on disk archived.
  • Creating new variables in for-loop?

    5
    0 Votes
    5 Posts
    103 Views
    R
    Ok thank you Dan. I will try that.
  • [Code] Print the transformation matrix

    14
    0 Votes
    14 Posts
    2k Views
    D
    thank you very much Thomas and Tig that prompt reply! I will try to implement your suggestions right now
  • Draw a new component with axes at original pick point?

    14
    0 Votes
    14 Posts
    982 Views
    TIGT
    By 'hand built' I mean 'made manually', i.e. without using any code... that's all... If you make a group that straddles the origin, then its origin [axes] are located at its bounds.min... As I tried to explain... you can then move that group from its insertion_point back to the model ORIGIN, and then apply the same translation transformation BUT as an 'inverse', to the group's entities... so that it appears in the same place in the model, BUT its actual axes have been relocated to the ORIGIN...
  • Right mouse click on toolbar button

    2
    0 Votes
    2 Posts
    55 Views
    Rich O BrienR
    Not that i know of....
  • Kill external process

    7
    0 Votes
    7 Posts
    269 Views
    M
    Thanks Dan, Your suggestion to write callback that is called from killing object, was very useful idea - and makes nice readable code. Much better idea then various signals I planned to use before. Thanks again, Marija
  • Identify/locate the Subclass

    4
    0 Votes
    4 Posts
    68 Views
    A
    @dan rathbun said: obj.respond_to?(:activate) Thanks Dan, description - sure will help. Edited: Previously, I used obj.methods.include?(someMethod). - That will give an error if the object wouldn't be a class, nor module. But using respond_to? will work on any selected object without errors. Jst true or false I was wrong in blue words. Actually, .methods can be implemented in any object. 134.methods, nil.methods, "dsfg".methods, false.methods, Class.methods will always work.
  • DATA in Ruby 1.8 working?

    4
    0 Votes
    4 Posts
    105 Views
    Dan RathbunD
    So assuming you want some data encapsulated within the script file itself, that will use it. A Here Doc, or Array or Hash, would seem to be a much easier solution.
  • Making a face

    3
    0 Votes
    3 Posts
    162 Views
    A
    Thanks a bunch TIG, I forgot you could get the arcs edges! Still organizing all this information
  • Component definition script problem?

    7
    0 Votes
    7 Posts
    160 Views
    T
    @tig said: You are only ever giving us half the story... Sorry about that! I clearly had some difficulty thinking outside the box. The empty definition did not work in this case, so I added a dummy line definition entity and erased it. #----Do dummy line entities = def_stair.entities # def line = entities.add_line (@p8, @p7) entities.erase_entities line all is well now, thanks! [image: ApAv_stair1.png]
  • Wish List - Ruby interpreter and libraries

    8
    0 Votes
    8 Posts
    2k Views
    Dan RathbunD
    @thomthom said: Don't know about 1.8.7 - but they tried 1.9 I think. So did I !! The main issue is that that they (the Ruby Core guys,) renamed functions on the c-side, without leaving aliases that would properly call the newer named functions. This is the character encoding realm.
  • OnActiveModelObserver

    14
    0 Votes
    14 Posts
    232 Views
    Dan RathbunD
    @jim said: Either way, can't you just get the active model from the selected entity.. Or from the Selection itself? Keeping in mind that on Mac there can be multiple model objects open.. each with it's OWN selection object, which it's it's OWN selected entity.
  • [Code] Win32 - Get SketchUp Window Handle (WIP)

    40
    0 Votes
    40 Posts
    10k Views
    A
    @dan rathbun said: You neglect to show the require() staement that loads Dan Berger's win32-api extensions. (This example does not use the Win32API.so file, that comes "out-of-the-box" with Ruby.) Thanks for pointing that out. Yep, the code above requires win32-api
  • Webdialog - trouble passing array from JS to Ruby

    12
    0 Votes
    12 Posts
    916 Views
    Dan RathbunD
    @rvs1977 said: I wonder why the eval-rescue solution has to be avoided? Is it slow? ALL String operations in Ruby 1.8.x are slow. eval() is the Ruby code parser.. so it is a very large method (actually a C-side function.) But I cannot see it being slower than the 2 iterator methods you are using, in addition to the type converter. But it works... and you understand how it works. If speed is not an issue, then go with it ... Also if you KNEW each numeric was separated by a "," then you also do: @YV_array = yv_array.split(',').map{|i| i.to_i}

Advertisement