⚠️ Important | Please update Libfredo to v15.1a for bugfixes associated to SketchUp 2025 and below Download
  • Go to specified page by name using code

    4
    0 Votes
    4 Posts
    105 Views
    renderizaR
    It worked! Thank you so much!
  • [Code] AnimateSelection Example v1.0.1

    12
    0 Votes
    12 Posts
    1k Views
    T
    I understood it was an example, but the logic of the code told me it accepted primitives, and primitives didn't work like they should have, nor did the duration work as expected. As an example, for its intent, it's fine and I would not bother (other than adding comments for the learner) with any additional enhancements. Todd
  • Make Unique Texture

    7
    0 Votes
    7 Posts
    428 Views
    TIGT
    For the avoidance of doubt --- here's a base-class free version... Please implement something like this... <span class="syntaxdefault"></span><span class="syntaxcomment">### pass a 'face' as the first argument<br />### and a second optional argument to convert the image texture into a PNG format<br />### it returns the new material, or 'nil' if the face is incorrect<br />### or if there's no face.material.texture...<br /></span><span class="syntaxdefault">def material_make_unique</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">nil</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> png</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    return nil unless face<br />    return nil unless face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">is_a</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Face</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    return nil unless mat</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material<br />    return nil unless txt</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture<br />    iwi</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">txt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">width<br />    ihi</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">txt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">height<br />    </span><span class="syntaxcomment">### later we use ### texture.size=[w, h]<br /></span><span class="syntaxdefault">    tads</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">txt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">attribute_dictionaries<br />    </span><span class="syntaxcomment">###<br /></span><span class="syntaxdefault">    nam</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">display_name<br />    alp</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha<br />    col</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">color<br />    mads</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">attribute_dictionaries<br />    </span><span class="syntaxcomment">###<br /></span><span class="syntaxdefault">    mats</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials<br />    namp</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">nam</span><span class="syntaxkeyword">+</span><span class="syntaxstring">"1"<br /></span><span class="syntaxdefault">    namp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">next</span><span class="syntaxkeyword">!</span><span class="syntaxdefault"> while mats</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">namp</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    num</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">namp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">gsub</span><span class="syntaxkeyword">(/^</span><span class="syntaxcomment">#{nam}/,"")<br /></span><span class="syntaxdefault">    nmat</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">namp</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">###<br /></span><span class="syntaxdefault">    tw</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">create_texture_writer<br />    tmp</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ENV</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"TEMP"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxcomment">### it's a PC == 'TEMP' or 'TMP'<br /></span><span class="syntaxdefault">    tmp</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ENV</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"TMPDIR"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> unless tmp </span><span class="syntaxcomment">### it's a MAC<br /></span><span class="syntaxdefault">    tna</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">txt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">filename</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".*"</span><span class="syntaxkeyword">)+</span><span class="syntaxdefault">num</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">extname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">txt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">filename</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    tna</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">tna</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".*"</span><span class="syntaxkeyword">)+</span><span class="syntaxstring">".png"</span><span class="syntaxdefault"> if png<br />    pth</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">tmp</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> tna</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"\\"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"/"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    tw</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">load</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    tw</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">write</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> pth</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">###<br /></span><span class="syntaxdefault">    nmat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">alp<br />    nmat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">color</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">col<br />    mads</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">d</span><span class="syntaxkeyword">|</span><span class="syntaxdefault"> d</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each_pair</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">k</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">v</span><span class="syntaxkeyword">|</span><span class="syntaxdefault"> nmat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">set_attribute</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">d</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> k</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> v</span><span class="syntaxkeyword">)}}</span><span class="syntaxdefault"> if mads<br />    nmat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">pth<br />    ntxt</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">nmat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture<br />    ntxt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">size</span><span class="syntaxkeyword">=[</span><span class="syntaxdefault">iwi</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> ihi</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    tads</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">d</span><span class="syntaxkeyword">|</span><span class="syntaxdefault"> d</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each_pair</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">k</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">v</span><span class="syntaxkeyword">|</span><span class="syntaxdefault"> ntxt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">set_attribute</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">d</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> k</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> v</span><span class="syntaxkeyword">)}}</span><span class="syntaxdefault"> if tads<br />    return nmat<br />end<br /></span>
  • Custom selection tool

    7
    0 Votes
    7 Posts
    231 Views
    A
    @sdmitch said: Using the BoundingBox certainly works as long as the selection box is not rotated which will cause BoundingBox to be much larger than the selection box. I see no reason why the selection process should be any slower on a curved surface. It should only matter how many total entities there are in the model. Yea. That is the same thing I'm confused about as well. Unless SU has a way of selecting the cylindrical surface as one unit or a collection rather than add each face of the curved surface one after the other(which is what my code does). Also, all my conditionals could be slowing things down as well. The selection box is axis aligned, so the they bounding box and the selection box should pretty much be the same size.
  • Texture overlay on selection

    18
    0 Votes
    18 Posts
    308 Views
    A
    @dan rathbun said: What platform is this for? PC or Mac ? This is for the PC.
  • Using Netbeans as IDE for SketchUp

    2
    0 Votes
    2 Posts
    253 Views
    J
    @gwd said: At Basecamp the people of 3skeng showed a way to connect netbeans to sketchup for using it as full working IDE for SU.Does somebody knows how to do it? Hi Guy, 3skeng could have their own internal solution, you would need to ask them. There is a possible way using TBD's "bridge" plugin. You would need to configure netbeans to execute the buffer using the sub.exe file in bridge. This is a Windows plugin and I see your profile says Mac so you may be out of luck. http://labs.plugins.ro/
  • Get the Click-Style via the Ruby API?

    15
    0 Votes
    15 Posts
    628 Views
    L
    @dan rathbun said: And BTW shell commands are done with Kernel.` (backquote character) see http://phrogz.net/ProgrammingRuby/ref_m_kernel.html#Kernel._bq still a cmd window... ex:ipconfig /all
  • Making a SketchUp game named &quot;Resballiza&quot;

    27
    0 Votes
    27 Posts
    2k Views
    renderizaR
    @chris fullmer said: Hey, great job! It looks great! Chris Chris thank you very much! Video Update #3 http://www.youtube.com/watch?v=RTuhPfFGl9Y&feature=plcp To download the latest SketchUp game version go here; https://www.dropbox.com/sh/w9m7du0fnhkgwv0/bIqndmMs1S Thanks
  • [Code] position of texture pins

    16
    0 Votes
    16 Posts
    4k Views
    renderizaR
    I am so frustrated that I don’t possess the knowledge yet to understand most of this discussion. Correct me if I am wrong but could this code make animating textures possible? If so I am very interested in trying to figure how I can do this myself.
  • Intersecting Hollow Objects using intersect_with

    12
    0 Votes
    12 Posts
    714 Views
    TIGT
    There's BoolTools http://www.Smustard.com, for just $10... There's also Oscarlok's Boolean ODCoolean toolset, in the Plugins Index, which is free... http://sketchucation.com/forums/viewtopic.php?p=112055#p112055 These both replicate several of the solid tools in Free that are available only in Pro...
  • Duplicate Faces?

    10
    0 Votes
    10 Posts
    621 Views
    J
    @thomthom said: @jasef said: Awesome gents, make_unique solved it. What about ComponentInstances? I hope you're not making them uniqe - as I doubt the user will be expecting that - or be happy to see that happening... No, just Groups.
  • Trying to hunt down elusive developers

    7
    0 Votes
    7 Posts
    215 Views
    thomthomT
  • Using the Cancel btn, to return to previous menu?

    22
    0 Votes
    22 Posts
    616 Views
    T
    Thanks TIG: I would never have been able to figure out the self.run routine on my own!
  • Learning Modern 3D Graphics Programming

    2
    0 Votes
    2 Posts
    313 Views
    A
  • [API] Edge.other_vertex unexpected return value

    4
    0 Votes
    4 Posts
    59 Views
    thomthomT
    Aye! If you are dealing with vertices, and you create a bug where you mix up your vertex references you might not notice it immediately as this method happily returns the first vertex in the edge which isn't the one pass in the argument. Garbage in - garbage out.
  • Help Understanding Classes and Class objects

    30
    0 Votes
    30 Posts
    276 Views
    P
    @dan rathbun said: Bookmark that page. Done, thanks for the link. I remember doing the tutorials when DC's first came out but have forgotton the majority of what I learned so I guess I will be spending some time there first.
  • Copy along a path plugin

    13
    0 Votes
    13 Posts
    9k Views
    T
    thx a lot
  • Intersect this?

    8
    0 Votes
    8 Posts
    194 Views
    J
    It worked for me after I moved it all to another place in the space, randomly , not specifically to any place . I thought it could give you a clue . Thanks for answering .
  • Using default sketchup materials with Ruby API

    4
    0 Votes
    4 Posts
    2k Views
    S
    This code works for me: model = Sketchup.active_model materials=model.materials Adds a material as an in model material m = materials.add "Test Color" begin Returns nil if not successful, path if successful path=Sketchup.find_support_file "1.jpg","\Plugins\" # m.texture = "1.jpg" m.texture = path m.texture.size = 666 rescue UI.messagebox $!.message end
  • [Code] Transforming in custom coordinate systems

    3
    0 Votes
    3 Posts
    152 Views
    thomthomT
    Glad it helped. I spend a loong time on that - I just couldn't warp my head around what was going on. The key was the quote from the Wiki article. Everything makes so much more sense now. Figured I'd post it here to remind myself.

Advertisement