⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update
  • Toolbar conversion

    7
    0 Szavazatok
    7 Hozzászólások
    313 Megtekintések
    D
    I sent it in a PM as a 'code block', just copy paste, no zip... john
  • Ruby Script for Adding up length of Edges

    5
    0 Szavazatok
    5 Hozzászólások
    464 Megtekintések
    D
    @tig said: You can only really parse through entities 'collections': model.entities/model.active_entities and group.entities/definition.entities AND model.selection... However, once you have a collected set from that, you can parse that set to find just the things on a certain layer, with a certain material etc... Recently the use of 'grep' has been found to speed up entity parsing significantly, I recommend you try it... So to find all groups in a selection use: gps=model.selection.grep(Sketchup::Group) Now 'gps' is an array of all groups in the current selection. To find every selected group that's assigned layer 'XXX' use xxx=[]; gps.each{|gp| xxx << gp if gp.layer.name=='XXX' } If you want to find absolutely everything in the model using that layer, then: gps=model.entities.grep(Sketchup::Group) and process 'gps'... To get matches within a group use: gps=group.entities.grep(Sketchup::Group) and process 'gps'... To find everything in the model using a certain layer try: xxx=[]; model.entities.each{|e| xxx << e if e.layer.name=='XXX' } There are several alternative methods, like 'collect', but here I just show you make an empty array 'xxx=[]' and then we add to it using 'push' [<<] when we get a match... Hello TIG, This is once again very helpful. I think I understand your examples to experiment a bit and report back what I develop using this information.
  • Set layer color with code possible?

    6
    0 Szavazatok
    6 Hozzászólások
    224 Megtekintések
    renderizaR
    Hopefully next API update includes this function...Thanks TIG!
  • Detect changes in geometry?

    7
    0 Szavazatok
    7 Hozzászólások
    326 Megtekintések
    thomthomT
    @maricanis said: However, I've never used start_operation and Undo related features, so this is good opportunity to look them too. Indeed - they are essential for a good UX so the user an go back and forth. Another note on the ToolsObserver - the tool state of the tools vary and are not consistent so you need to dig a little to figure out their behaviour. I described some of the behaviour of Move, Rotate and Scale in the comments of AutoSmooth. You can view the source at GitHub: https://github.com/thomthom/AutoSmooth
  • Using chunkyPng library with Sketchup

    3
    0 Szavazatok
    3 Hozzászólások
    744 Megtekintések
    massimoM
    Done.
  • Fit_plane_to_points problem

    9
    0 Szavazatok
    9 Hozzászólások
    615 Megtekintések
    D
    I did not understand point.offset, with this example I understand a little more, thank you very much Thom, very interesting this
  • Query: Edge transparency

    8
    0 Szavazatok
    8 Hozzászólások
    355 Megtekintések
    thomthomT
    Not is you want to use the native Select tool. But if you want to avoid observers and gain more control over your plugin's environment you could make your own tool.
  • Calculations on its own thread

    9
    0 Szavazatok
    9 Hozzászólások
    730 Megtekintések
    T
    Everything I have tried in attempting to use Thread in SketchUp has failed miserably. This works for me: timer = UI.start_timer(1.0,true) { start = Time now loop do break if Time.now-start > 0.8 ... long computation involving many loops ... end } ... call stop_timer(timer) when appropriate, perhaps from within the loop My computation is copying a file to a WebDialog; the file is output from another process, and can grow over time to be quite large. This code updates the WebDialog once per second, and permits the "Kill" button (in another WebDialog) to work. Each loop reads 1024 bytes from the file and uses WebDialog#execute_script to append it to a textarea (escape \n and " to keep the JavaScript valid); it handles multiple reads at EOF as the file can grow.
  • Forcing a Screen Update during a Ruby script

    11
    0 Szavazatok
    11 Hozzászólások
    1k Megtekintések
    thomthomT
    This is the reason the Animation class is there for: http://www.sketchup.com/intl/en/developer/docs/ourdoc/animation.php
  • Virtually Test the Fit of Bolt and Screw Hole

    2
    0 Szavazatok
    2 Hozzászólások
    277 Megtekintések
    gillesG
    Make the bolt a group or better a component, edit it and use tape tool to scale it to fit. http://support.google.com/sketchup/bin/answer.py?hl=en&answer=116447&topic=2458211&ctx=topic [image: vy36_bolt.jpg]
  • SU 2013 not allowing SU 8 to run plugins!

    10
    0 Szavazatok
    10 Hozzászólások
    671 Megtekintések
    Chris FullmerC
    Great, thanks for the update!
  • Draw cpoint on face

    5
    0 Szavazatok
    5 Hozzászólások
    335 Megtekintések
    liquid98L
    TIG, Thanx for your answer, it completely elucidates my question.
  • Non-symmetric camera frustum?

    2
    0 Szavazatok
    2 Hozzászólások
    567 Megtekintések
    TIGT
    As far as I know the FOV frustrum is always symmetrical. Good luck in you endeavors...
  • Navigation Buttons on Mac

    3
    0 Szavazatok
    3 Hozzászólások
    213 Megtekintések
    H
    so as a consequence, there is no chance to set a own adress for the home-button? To create it as a part of html isnt possible in my case .. its a portal which references to a lot of differet homepages and i can't change them .. and a test with own buttons and an iframe destroyed the possibility to get information from the website to sketchup...
  • RBZ and Components library

    5
    0 Szavazatok
    5 Hozzászólások
    417 Megtekintések
    danielbowringD
    @driven said: for a mac you can create a symbolic link the will show the skps in the 'Components Browser' lnk_skps = %x(ln -s "#{Sketchup.find_support_file("Plugins") << "/your_folder/your_skps"}" "#{Sketchup.find_support_file('Components')}" 2>&1) is there not a windows equivalent? john For Vista and higher: mklink /D LinkName TargetPath XP "supports" a similar feature called junction points, but I don't think it's available by default. For XP: links LinkName TargetPath For Vista and higher: mklink \J LinkName TargetPath
  • Newbie question

    3
    0 Szavazatok
    3 Hozzászólások
    214 Megtekintések
    TIGT
    Because SketchUp's circles are in reality finely faceted polygons the real-intersection of two arcs' circumferences is unlikely to be exactly on those arcs' edges, unless by coincidence it turns out to be at one of the arc's edge's vertices. Conversely the actual-intersection of those arcs' edges is unlikely to fall exactly on the arcs' circumferences, unless by coincidence it's at a vertex of those arcs' edges... My TrueTangent tools contain a number of algorithms to find circles/arcs' true tangents, true intersection points etc... Perhaps these will help you find what you need...
  • Sine Law?

    9
    0 Szavazatok
    9 Hozzászólások
    890 Megtekintések
    T
    @tig said: So ac=**63.0** and then in the equation ad = Math.asin(db * Math.sin(ac**.degrees**) / dc).radians Now 'ad' is in degrees again, so when you Math equation processes it uses ad.degrees I was not confused between degrees and radians. Its the same way angles are treated in many languages, I'm quite familiar having written AutoLisp routines years ago, which also uses degrees and radians. Its more about me learning how to write the same code in Ruby .........I finally see in your example how .degrees gets added, its really simple once I saw your example.
  • Need a SU Tap &amp; Die plugin

    12
    0 Szavazatok
    12 Hozzászólások
    693 Megtekintések
    M
    http://sketchup.google.com/3dwarehouse/details?mid=db27537086288b21706627b112998eff This is a small model built with some code to make it usable for sketchy physics (and perhaps 3d printing). Does anyone know how this would print on a makerbot? http://youtu.be/dqyyQF9gZeM or by just modeling with some pretty bizarre music http://youtu.be/MKrWDNDd62c
  • Concatenate a string and an integer?

    4
    0 Szavazatok
    4 Hozzászólások
    646 Megtekintések
    thomthomT
    @aerilius said: There are many ways to create strings: string concatenation: 90.to_s + " degrees" # slow because it creates a new third string object string appending: 90.to_s << " degrees" # faster because it adds the second string into the first string interpolation: "#{90} degrees" Note that string interpolation is the fastest. (And reads easier IMO)
  • Visibility in Group/Component editing

    7
    0 Szavazatok
    7 Hozzászólások
    465 Megtekintések
    thomthomT
    Ah, ok now I understand. Yes, then Model.active_path is what you need. And checking if Hide Rest of Model or Hide Similar Components is enabled.

Advertisement