πŸ”Œ Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download
  • The new? Trimble Sketchup SDK

    9
    0 Votes
    9 Posts
    2k Views
    bugraB
    Hi, sorry about the delayed response. One important thing about the current SDK is that it cannot work with the in-memory model that's live in SketchUp, it can only open existing skp files. So you'll have get the file saved first. Here are some answers to your questions. For the ones I skipped, it means we should be able to do it. @th3lurker said: 4b. I used to create new faces using a mesh(because of speed issues), but this poses several problems. The face does not "exist" until i use fill faces from mesh, so i have to store the texture information separately. Fill from mesh erases all entities that existed previously in the group, so i have to wait until i am sure i have no more faces to add to the mesh. Could i use SUFaceCreate instead? Like i said, speed is an issue here, some of out projects have thousands of entities, and 10+ faces/ entity is not uncommon. Yes, you can use SUFaceCreate but using meshes (i.e. SUGeometryInput*) is currently the only way to map textures due to various reasons. We are looking into adding that to individual faces as well. @th3lurker said: Locking the group is not that important We do not support locking groups yet. I'll make a note. @th3lurker said: Are the .skp's backwards compatible?(sketchup8, maybe even 7, i have no real idea what the clients use). We currently save only in the 2013 format. It's on our list to be able to save in older formats. Thanks!
  • Toolbar conversion

    7
    0 Votes
    7 Posts
    365 Views
    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 Votes
    5 Posts
    506 Views
    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 Votes
    6 Posts
    266 Views
    renderizaR
    Hopefully next API update includes this function...Thanks TIG!
  • Detect changes in geometry?

    7
    0 Votes
    7 Posts
    373 Views
    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 Votes
    3 Posts
    778 Views
    massimoM
    Done.
  • Fit_plane_to_points problem

    9
    0 Votes
    9 Posts
    667 Views
    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 Votes
    8 Posts
    414 Views
    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 Votes
    9 Posts
    801 Views
    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 Votes
    11 Posts
    1k Views
    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 Votes
    2 Posts
    287 Views
    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 Votes
    10 Posts
    728 Views
    Chris FullmerC
    Great, thanks for the update!
  • Draw cpoint on face

    5
    0 Votes
    5 Posts
    378 Views
    liquid98L
    TIG, Thanx for your answer, it completely elucidates my question.
  • Non-symmetric camera frustum?

    2
    0 Votes
    2 Posts
    576 Views
    TIGT
    As far as I know the FOV frustrum is always symmetrical. Good luck in you endeavors...
  • Navigation Buttons on Mac

    3
    0 Votes
    3 Posts
    260 Views
    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 Votes
    5 Posts
    449 Views
    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 Votes
    3 Posts
    237 Views
    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 Votes
    9 Posts
    963 Views
    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 Votes
    12 Posts
    769 Views
    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 Votes
    4 Posts
    709 Views
    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)

Advertisement